Section 1
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent)
package com.kongregate.as3.client.events {
import flash.events.*;
public class KongregateEvent extends Event {
public static const COMPLETE:String = "component_api_available";
public function KongregateEvent(_arg1:String){
super(_arg1);
}
}
}//package com.kongregate.as3.client.events
Section 2
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService)
package com.kongregate.as3.client.services {
import flash.events.*;
public class AbstractShadowService extends EventDispatcher {
protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{
trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4));
}
}
}//package com.kongregate.as3.client.services
Section 3
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow)
package com.kongregate.as3.client.services {
public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices {
private var mode:String;
public function HighScoreServiceShadow(){
mode = "";
}
public function submit(_arg1:Number, _arg2:String=null):void{
alert("IHighScoreServices", "submit", arguments);
}
public function connect():Boolean{
alert("IKongregateServices", "connect");
return (true);
}
public function requestList(_arg1:Function):void{
alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]"));
_arg1({success:false});
}
public function setMode(_arg1:String):void{
alert("IHighScoreServices", "setMode", arguments);
this.mode = _arg1;
}
}
}//package com.kongregate.as3.client.services
Section 4
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices)
package com.kongregate.as3.client.services {
public interface IHighScoreServices {
function setMode(_arg1:String):void;
function submit(_arg1:Number, _arg2:String=null):void;
function requestList(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 5
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices)
package com.kongregate.as3.client.services {
import flash.events.*;
public interface IKongregateServices extends IEventDispatcher {
function getPlayerInfo(_arg1:Function):void;
function connect(_arg1:Number=-1):Boolean;
}
}//package com.kongregate.as3.client.services
Section 6
//IStatServices (com.kongregate.as3.client.services.IStatServices)
package com.kongregate.as3.client.services {
public interface IStatServices {
function submitArray(_arg1:Array):void;
function submit(_arg1:String, _arg2:Number):void;
}
}//package com.kongregate.as3.client.services
Section 7
//IUserServices (com.kongregate.as3.client.services.IUserServices)
package com.kongregate.as3.client.services {
public interface IUserServices {
function getName():String;
function getPlayerInfo(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 8
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow)
package com.kongregate.as3.client.services {
public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices {
public function getName():String{
alert("IKongregateServices", "getName");
return ("Guest");
}
public function connect(_arg1:Number=-1):Boolean{
alert("IKongregateServices", "connect", arguments);
return (true);
}
public function getPlayerInfo(_arg1:Function):void{
alert("IKongregateServices", "getPlayerInfo");
_arg1(new Object());
}
}
}//package com.kongregate.as3.client.services
Section 9
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow)
package com.kongregate.as3.client.services {
public class StatServiceShadow extends AbstractShadowService implements IStatServices {
public function submitArray(_arg1:Array):void{
alert("IStatServices", "submitArray", arguments);
}
public function submit(_arg1:String, _arg2:Number):void{
alert("IStatServices", "submitStat", arguments);
}
}
}//package com.kongregate.as3.client.services
Section 10
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow)
package com.kongregate.as3.client.services {
public class UserServiceShadow extends AbstractShadowService implements IUserServices {
public function getName():String{
alert("UserService", "getName");
return ("Guest");
}
public function getPlayerInfo(_arg1:Function):void{
alert("UserService", "getPlayerInfo");
_arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""});
}
}
}//package com.kongregate.as3.client.services
Section 11
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
public interface IAPIBootstrap {
function init(_arg1:Event=null, _arg2:Stage=null):void;
function hideLog():void;
function showLog(_arg1:int=0):void;
}
}//package com.kongregate.as3.client
Section 12
//KongregateAPI (com.kongregate.as3.client.KongregateAPI)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
import com.kongregate.as3.client.events.*;
import com.kongregate.as3.client.services.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
import flash.errors.*;
public class KongregateAPI extends Sprite {
private const VERSION:Number = 1;
private var loader:Loader;
private var loadedDomain:ApplicationDomain;
private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices";
private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices";
private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices";
private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices";
private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf";
private static var _connected:Boolean;
private static var kUser:IUserServices;
private static var _loaded:Boolean;
private static var kServices:IKongregateServices;
private static var kScores:IHighScoreServices;
private static var mInstance:KongregateAPI;
private static var kStats:IStatServices;
private static var kAPI:IAPIBootstrap;
public function KongregateAPI(){
if (mInstance != null){
throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access."));
};
mInstance = this;
this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
public function get loaded():Boolean{
return (_loaded);
}
public function get connected():Boolean{
return (_connected);
}
private function alertConnected(_arg1:TimerEvent=null):void{
var _local2:KongregateEvent;
var _local3:Boolean;
_local2 = new KongregateEvent(KongregateEvent.COMPLETE);
_local3 = this.dispatchEvent(_local2);
}
private function init(_arg1:Event):void{
var _local2:Object;
var _local3:String;
var _local4:URLRequest;
var _local5:LoaderContext;
this.removeEventListener(Event.ADDED_TO_STAGE, init);
_loaded = false;
_connected = false;
_local2 = LoaderInfo(root.loaderInfo).parameters;
_local3 = _local2.api_path;
if (_local3 == null){
trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded.");
createShadowServices();
return;
};
Security.allowDomain("*.kongregate.com");
Security.allowDomain("kongregatetrunk.com");
_local4 = new URLRequest(_local3);
_local5 = new LoaderContext(false);
_local5.applicationDomain = ApplicationDomain.currentDomain;
_local5.securityDomain = SecurityDomain.currentDomain;
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(_local4, _local5);
}
public function get api():IAPIBootstrap{
return (kAPI);
}
private function loadComplete(_arg1:Event):void{
getServices();
}
public function get scores():IHighScoreServices{
return (kScores);
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
throw (new IOError(("API file not found. " + _arg1)));
}
public function get services():IKongregateServices{
return (kServices);
}
public function get stats():IStatServices{
return (kStats);
}
private function createShadowServices():void{
var _local1:Timer;
trace(">>> Kongregate Shadow Services instantiated for local development..");
kServices = new KongregateServiceShadow();
kScores = new HighScoreServiceShadow();
kStats = new StatServiceShadow();
kUser = new UserServiceShadow();
_local1 = new Timer(200, 1);
_local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected);
_local1.start();
_connected = true;
}
public function get user():IUserServices{
return (kUser);
}
private function getServices():void{
var _local1:ApplicationDomain;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local1 = ApplicationDomain.currentDomain;
kAPI = IAPIBootstrap(loader.getChildAt(0));
this.addChild(loader);
_local2 = _local1.getDefinition(CLASS_SERVICES);
trace(_local2);
kServices = _local2.getInstance();
_local3 = _local1.getDefinition(CLASS_SCORES);
kScores = _local3.getInstance();
_local4 = _local1.getDefinition(CLASS_STATS);
kStats = _local4.getInstance();
_local5 = _local1.getDefinition(CLASS_USER);
kUser = _local5.getInstance();
kServices.connect(VERSION);
_loaded = true;
_connected = true;
alertConnected();
}
public static function getInstance():KongregateAPI{
if (!mInstance){
throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it."));
};
return (mInstance);
}
}
}//package com.kongregate.as3.client
Section 13
//artlogic_logo_modif_86 (paperdefense_fla.artlogic_logo_modif_86)
package paperdefense_fla {
import flash.display.*;
public dynamic class artlogic_logo_modif_86 extends MovieClip {
public var btn_sponsor:SimpleButton;
public function artlogic_logo_modif_86(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 14
//bt_achievements_184 (paperdefense_fla.bt_achievements_184)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_achievements_184 extends MovieClip {
public function bt_achievements_184(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 15
//bt_browseleft_115 (paperdefense_fla.bt_browseleft_115)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_browseleft_115 extends MovieClip {
public function bt_browseleft_115(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 16
//bt_browseright_116 (paperdefense_fla.bt_browseright_116)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_browseright_116 extends MovieClip {
public function bt_browseright_116(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 17
//bt_clear_90 (paperdefense_fla.bt_clear_90)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_clear_90 extends MovieClip {
public function bt_clear_90(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 18
//bt_closewindow_176 (paperdefense_fla.bt_closewindow_176)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_closewindow_176 extends MovieClip {
public function bt_closewindow_176(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 19
//bt_color1_250 (paperdefense_fla.bt_color1_250)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_color1_250 extends MovieClip {
public var mcinkreload:MovieClip;
public function bt_color1_250(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame16(){
stop();
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 20
//bt_color2_252 (paperdefense_fla.bt_color2_252)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_color2_252 extends MovieClip {
public var mcinkreload:MovieClip;
public function bt_color2_252(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame16(){
stop();
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 21
//bt_color3_254 (paperdefense_fla.bt_color3_254)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_color3_254 extends MovieClip {
public var mcinkreload:MovieClip;
public function bt_color3_254(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame16(){
stop();
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 22
//bt_color4_256 (paperdefense_fla.bt_color4_256)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_color4_256 extends MovieClip {
public var mcinkreload:MovieClip;
public function bt_color4_256(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame16(){
stop();
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 23
//bt_copyclipboard_94 (paperdefense_fla.bt_copyclipboard_94)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_copyclipboard_94 extends MovieClip {
public function bt_copyclipboard_94(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 24
//bt_copypath_110 (paperdefense_fla.bt_copypath_110)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_copypath_110 extends MovieClip {
public function bt_copypath_110(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 25
//bt_createmap_185 (paperdefense_fla.bt_createmap_185)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_createmap_185 extends MovieClip {
public function bt_createmap_185(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 26
//bt_credits_183 (paperdefense_fla.bt_credits_183)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_credits_183 extends MovieClip {
public function bt_credits_183(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 27
//bt_erasepath_109 (paperdefense_fla.bt_erasepath_109)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_erasepath_109 extends MovieClip {
public function bt_erasepath_109(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 28
//bt_eraser_89 (paperdefense_fla.bt_eraser_89)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_eraser_89 extends MovieClip {
public function bt_eraser_89(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 29
//bt_exiteditor_108 (paperdefense_fla.bt_exiteditor_108)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_exiteditor_108 extends MovieClip {
public function bt_exiteditor_108(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 30
//bt_exiteditor_232 (paperdefense_fla.bt_exiteditor_232)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_exiteditor_232 extends MovieClip {
public function bt_exiteditor_232(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 31
//bt_exiteditor_95 (paperdefense_fla.bt_exiteditor_95)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_exiteditor_95 extends MovieClip {
public function bt_exiteditor_95(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 32
//bt_loadpath_107 (paperdefense_fla.bt_loadpath_107)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_loadpath_107 extends MovieClip {
public function bt_loadpath_107(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 33
//bt_loadpath_93 (paperdefense_fla.bt_loadpath_93)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_loadpath_93 extends MovieClip {
public function bt_loadpath_93(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 34
//bt_lvl01_190 (paperdefense_fla.bt_lvl01_190)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl01_190 extends MovieClip {
public function bt_lvl01_190(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 35
//bt_lvl02_191 (paperdefense_fla.bt_lvl02_191)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl02_191 extends MovieClip {
public function bt_lvl02_191(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 36
//bt_lvl03_192 (paperdefense_fla.bt_lvl03_192)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl03_192 extends MovieClip {
public function bt_lvl03_192(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 37
//bt_lvl04_193 (paperdefense_fla.bt_lvl04_193)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl04_193 extends MovieClip {
public function bt_lvl04_193(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 38
//bt_lvl05_194 (paperdefense_fla.bt_lvl05_194)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl05_194 extends MovieClip {
public function bt_lvl05_194(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 39
//bt_lvl06_195 (paperdefense_fla.bt_lvl06_195)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl06_195 extends MovieClip {
public function bt_lvl06_195(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 40
//bt_lvl07_196 (paperdefense_fla.bt_lvl07_196)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl07_196 extends MovieClip {
public function bt_lvl07_196(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 41
//bt_lvl08_197 (paperdefense_fla.bt_lvl08_197)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl08_197 extends MovieClip {
public function bt_lvl08_197(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 42
//bt_lvl09_198 (paperdefense_fla.bt_lvl09_198)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl09_198 extends MovieClip {
public function bt_lvl09_198(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 43
//bt_lvl10_199 (paperdefense_fla.bt_lvl10_199)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl10_199 extends MovieClip {
public function bt_lvl10_199(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 44
//bt_lvl11_200 (paperdefense_fla.bt_lvl11_200)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl11_200 extends MovieClip {
public function bt_lvl11_200(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 45
//bt_lvl12_201 (paperdefense_fla.bt_lvl12_201)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl12_201 extends MovieClip {
public function bt_lvl12_201(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 46
//bt_lvl13_202 (paperdefense_fla.bt_lvl13_202)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl13_202 extends MovieClip {
public function bt_lvl13_202(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 47
//bt_lvl14_203 (paperdefense_fla.bt_lvl14_203)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl14_203 extends MovieClip {
public function bt_lvl14_203(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 48
//bt_lvl15_204 (paperdefense_fla.bt_lvl15_204)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl15_204 extends MovieClip {
public function bt_lvl15_204(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 49
//bt_lvl16_205 (paperdefense_fla.bt_lvl16_205)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl16_205 extends MovieClip {
public function bt_lvl16_205(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 50
//bt_lvl17_206 (paperdefense_fla.bt_lvl17_206)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl17_206 extends MovieClip {
public function bt_lvl17_206(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 51
//bt_lvl18_207 (paperdefense_fla.bt_lvl18_207)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl18_207 extends MovieClip {
public function bt_lvl18_207(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 52
//bt_lvl19_208 (paperdefense_fla.bt_lvl19_208)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl19_208 extends MovieClip {
public function bt_lvl19_208(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 53
//bt_lvl20_209 (paperdefense_fla.bt_lvl20_209)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_lvl20_209 extends MovieClip {
public function bt_lvl20_209(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 54
//bt_mapcancel_213 (paperdefense_fla.bt_mapcancel_213)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_mapcancel_213 extends MovieClip {
public function bt_mapcancel_213(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 55
//bt_mapselect_212 (paperdefense_fla.bt_mapselect_212)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_mapselect_212 extends MovieClip {
public function bt_mapselect_212(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 56
//bt_pause_248 (paperdefense_fla.bt_pause_248)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_pause_248 extends MovieClip {
public function bt_pause_248(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 57
//bt_pencil_88 (paperdefense_fla.bt_pencil_88)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_pencil_88 extends MovieClip {
public function bt_pencil_88(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 58
//bt_playcampaign_187 (paperdefense_fla.bt_playcampaign_187)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_playcampaign_187 extends MovieClip {
public function bt_playcampaign_187(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 59
//bt_playcustom_186 (paperdefense_fla.bt_playcustom_186)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_playcustom_186 extends MovieClip {
public function bt_playcustom_186(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 60
//bt_playmap_111 (paperdefense_fla.bt_playmap_111)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_playmap_111 extends MovieClip {
public function bt_playmap_111(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 61
//bt_playmoregames_182 (paperdefense_fla.bt_playmoregames_182)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_playmoregames_182 extends MovieClip {
public function bt_playmoregames_182(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 62
//bt_restart_247 (paperdefense_fla.bt_restart_247)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_restart_247 extends MovieClip {
public function bt_restart_247(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 63
//bt_savepath_92 (paperdefense_fla.bt_savepath_92)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_savepath_92 extends MovieClip {
public function bt_savepath_92(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 64
//bt_scrollerbrowseleft_178 (paperdefense_fla.bt_scrollerbrowseleft_178)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_scrollerbrowseleft_178 extends MovieClip {
public function bt_scrollerbrowseleft_178(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 65
//bt_scrollerbrowseright_179 (paperdefense_fla.bt_scrollerbrowseright_179)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_scrollerbrowseright_179 extends MovieClip {
public function bt_scrollerbrowseright_179(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 66
//bt_sound_249 (paperdefense_fla.bt_sound_249)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_sound_249 extends MovieClip {
public function bt_sound_249(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 67
//bt_speed_261 (paperdefense_fla.bt_speed_261)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class bt_speed_261 extends MovieClip {
public var thisparent;
public function bt_speed_261(){
addFrameScript(0, frame1);
}
public function setSpeed(_arg1){
if (this.currentFrame < this.totalFrames){
this.gotoAndStop((this.currentFrame + 1));
} else {
this.gotoAndStop(1);
};
thisparent.mcwavecounter.setSpeed(this.currentFrame);
thisparent.mctimecounter.setSpeed(this.currentFrame);
}
function frame1(){
stop();
thisparent = parent;
this.addEventListener(MouseEvent.CLICK, setSpeed, false, 0, true);
this.buttonMode = true;
}
}
}//package paperdefense_fla
Section 68
//bt_submitmap_188 (paperdefense_fla.bt_submitmap_188)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_submitmap_188 extends MovieClip {
public function bt_submitmap_188(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 69
//bt_testpath_106 (paperdefense_fla.bt_testpath_106)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_testpath_106 extends MovieClip {
public function bt_testpath_106(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 70
//bt_testpath_91 (paperdefense_fla.bt_testpath_91)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_testpath_91 extends MovieClip {
public function bt_testpath_91(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 71
//bt_tower1_233 (paperdefense_fla.bt_tower1_233)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_tower1_233 extends MovieClip {
public function bt_tower1_233(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 72
//bt_tower2_236 (paperdefense_fla.bt_tower2_236)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_tower2_236 extends MovieClip {
public function bt_tower2_236(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 73
//bt_tower3_239 (paperdefense_fla.bt_tower3_239)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_tower3_239 extends MovieClip {
public function bt_tower3_239(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 74
//bt_tower4_242 (paperdefense_fla.bt_tower4_242)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_tower4_242 extends MovieClip {
public function bt_tower4_242(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 75
//bt_tower5_245 (paperdefense_fla.bt_tower5_245)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_tower5_245 extends MovieClip {
public function bt_tower5_245(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 76
//bt_walkthrough_259 (paperdefense_fla.bt_walkthrough_259)
package paperdefense_fla {
import flash.display.*;
public dynamic class bt_walkthrough_259 extends MovieClip {
public function bt_walkthrough_259(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame11(){
gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 77
//bubble_logo3_83 (paperdefense_fla.bubble_logo3_83)
package paperdefense_fla {
import flash.display.*;
public dynamic class bubble_logo3_83 extends MovieClip {
public function bubble_logo3_83(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
stop();
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 78
//bubblebox_smallLogo2_8 (paperdefense_fla.bubblebox_smallLogo2_8)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class bubblebox_smallLogo2_8 extends MovieClip {
public var mtl;
public function bubblebox_smallLogo2_8(){
addFrameScript(0, frame1);
}
public function goSponsor(_arg1=null){
mtl.goSponsor("loader");
}
function frame1(){
stop();
mtl = stage.getChildAt(0);
addEventListener(MouseEvent.MOUSE_UP, goSponsor, false, 0, true);
}
}
}//package paperdefense_fla
Section 79
//bubblebox_smallLogo2_gameplay_258 (paperdefense_fla.bubblebox_smallLogo2_gameplay_258)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class bubblebox_smallLogo2_gameplay_258 extends MovieClip {
public var maintimeline;
public function bubblebox_smallLogo2_gameplay_258(){
addFrameScript(0, frame1);
}
public function goSponsor(_arg1=null){
maintimeline.goSponsor("gameplay");
}
function frame1(){
stop();
maintimeline = stage.getChildAt(0);
addEventListener(MouseEvent.CLICK, goSponsor, false, 0, true);
}
}
}//package paperdefense_fla
Section 80
//BubbleBoxLogoGraphicMc_82 (paperdefense_fla.BubbleBoxLogoGraphicMc_82)
package paperdefense_fla {
import flash.display.*;
public dynamic class BubbleBoxLogoGraphicMc_82 extends MovieClip {
public var btn_sponsor:SimpleButton;
public var play_latest_text:MovieClip;
}
}//package paperdefense_fla
Section 81
//BubbleBoxSplash_81 (paperdefense_fla.BubbleBoxSplash_81)
package paperdefense_fla {
import flash.display.*;
public dynamic class BubbleBoxSplash_81 extends MovieClip {
public var btn_sponsor:SimpleButton;
public var play_latest_text:MovieClip;
public function BubbleBoxSplash_81(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 82
//MainTimeline (paperdefense_fla.MainTimeline)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var mcmenupage:mc_menupage;
public var nomochiadsites;
public var sndmgr;
public var itlevelid;
public var usekong;
public var datamgr;
public var bboxname;
public var mclogo:MovieClip;
public var mccredits:MovieClip;
public var nomochibotsites;
public var mcbg:MovieClip;
public var mcmapbrowser;
public var i;
public var usestaticsites;
public var usecpmad;
public var mcgameresult:MovieClip;
public var mochibotid;
public var nocpmadsites;
public var usestatic;
public var prerollid;
public var gamemgr;
public var noadsites;
public var mprerollid;
public var mcmapeditor;
public var obj;
public var mcadbox:MovieClip;
public var bboxid;
public var bboxsmalllogo:MovieClip;
public var mcloader:MovieClip;
public var myMenu;
public var mapmgr;
public var usemochibot;
public var url;
public var item1:ContextMenuItem;
public var sponsorintro:MovieClip;
public var algid;
public var mcachievements:MovieClip;
public var ctrlmgr;
public var mcstagepanel:mc_stagepanel;
public var tweenmgr;
public var artintro:MovieClip;
public var usead;
public var usemochiad;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 10, frame11, 19, frame20, 29, frame30, 39, frame40, 49, frame50, 59, frame60, 69, frame70);
}
public function moveSponsorIntro(_arg1=null){
if (sponsorintro.currentFrame == sponsorintro.totalFrames){
sponsorintro.removeEventListener(Event.ENTER_FRAME, moveSponsorIntro);
play();
};
}
public function goSubmitMap(_arg1=null){
var _local2:*;
_local2 = "http://www.bubblebox.com/clickreg.php?type=gamestats&id=1473&subid=map&action=map";
navigateToURL(new URLRequest(_local2), "_blank");
}
public function doPlay(_arg1){
play();
}
function frame3(){
stop();
tweenmgr.register(mcbg, {live:30, ease:"easeoutcirc", x:320, y:240, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:doPlay});
}
function frame4(){
stop();
}
function frame1(){
stop();
stage.scaleMode = StageScaleMode.NO_SCALE;
mprerollid = "357a9f990b57ea7d";
prerollid = "834QB9F12906";
itlevelid = "835QB2FB99B7";
mochibotid = "093050b3";
usead = true;
usecpmad = true;
usemochiad = false;
usemochibot = true;
usestatic = false;
usekong = false;
noadsites = [];
nocpmadsites = [];
nomochiadsites = [];
nomochibotsites = [];
usestaticsites = [];
url = loaderInfo.loaderURL;
i = 0;
while (i < noadsites.length) {
if (url.indexOf(noadsites[i]) > -1){
usead = false;
};
i++;
};
i = 0;
while (i < nocpmadsites.length) {
if (url.indexOf(nocpmadsites[i]) > -1){
usecpmad = false;
};
i++;
};
i = 0;
while (i < nomochiadsites.length) {
if (url.indexOf(nomochiadsites[i]) > -1){
usemochiad = false;
};
i++;
};
i = 0;
while (i < nomochibotsites.length) {
if (url.indexOf(nomochibotsites[i]) > -1){
usemochibot = false;
};
i++;
};
i = 0;
while (i < usestaticsites.length) {
if (((usestatic) && ((url.indexOf(usestaticsites[i]) > -1)))){
usestatic = false;
};
i++;
};
usecpmad = ((usecpmad) && (usead));
usemochiad = ((((usemochiad) && (!(usecpmad)))) && (usead));
if (usemochibot){
MochiBot.track(this, mochibotid);
};
usekong = ((usekong) && ((url.indexOf("kongregate.com") > -1)));
trace(usead, usecpmad, usemochiad, usemochibot, usestatic, usekong);
ctrlmgr = new ControlManager(stage);
tweenmgr = new TweenManager();
datamgr = new GameDataManager(this);
mapmgr = new MapDataManager();
item1 = new ContextMenuItem("© 2009 Artlogic Games™");
item1.separatorBefore = true;
item1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, goArtlogic);
myMenu = new ContextMenu();
myMenu.customItems.push(item1);
this.contextMenu = myMenu;
mcloader.init();
algid = "paperwar";
bboxname = "paperwar";
bboxid = "1473";
tweenmgr.register(mcloader, {live:30, ease:"easeoutcirc", x:320, y:410, alpha:1, rotation:0, scalex:1, scaley:1});
tweenmgr.register(mcadbox, {live:60, ease:"easeoutcirc", x:170, y:90, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:doPlay});
tweenmgr.register(bboxsmalllogo, {live:30, ease:"easeoutcirc", x:320, y:50, alpha:1, rotation:0, scalex:0.66, scaley:0.66});
}
function frame11(){
stop();
initSponsorIntro();
}
function frame2(){
stop();
tweenmgr.register(mcloader, {live:30, ease:"easeoutcirc", x:470, y:410, alpha:1, rotation:0, scalex:1, scaley:1});
tweenmgr.register(mcadbox, {live:30, ease:"easeoutcirc", x:320, y:90, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:doPlay});
tweenmgr.register(bboxsmalllogo, {live:30, ease:"easeoutcirc", x:470, y:50, alpha:1, rotation:0, scalex:0.66, scaley:0.66});
tweenmgr.register(mclogo, {live:60, ease:"easeoutcirc", x:160, y:120, alpha:1, rotation:0, scalex:1, scaley:1});
}
function frame20(){
stop();
initArtIntro();
}
function frame30(){
stop();
if (!sndmgr){
sndmgr = new SoundManager();
};
sponsorintro.addEventListener(MouseEvent.CLICK, goSponsorCover, false, 0, true);
artintro.addEventListener(MouseEvent.CLICK, goArtlogic, false, 0, true);
if (usestatic){
if (this.contains(mcmenupage)){
this.removeChild(mcmenupage);
};
obj = new mc_gamestatic();
this.addChild(obj);
obj.addEventListener(MouseEvent.CLICK, goSponsorLocked, false, 0, true);
} else {
mcmenupage.init(this);
};
}
public function initSponsorIntro(){
sponsorintro.gotoAndPlay(2);
sponsorintro.addEventListener(Event.ENTER_FRAME, moveSponsorIntro, false, 0, true);
sponsorintro.addEventListener(MouseEvent.CLICK, goSponsorIntro, false, 0, true);
}
function frame40(){
stop();
if (usestatic){
gotoAndPlay("intropage");
};
}
public function goSponsorIntro(_arg1){
goSponsor("intro");
}
public function moveArtIntro(_arg1=null){
if (artintro.currentFrame == artintro.totalFrames){
artintro.removeEventListener(Event.ENTER_FRAME, moveArtIntro);
play();
};
}
public function goSponsorLocked(_arg1){
goSponsor("locked");
}
function frame50(){
stop();
if (!mcmapbrowser){
mcmapbrowser = new mc_mapbrowser();
} else {
if (this.contains(mcmapbrowser)){
this.removeChild(mcmapbrowser);
mcmapbrowser = new mc_mapbrowser();
};
};
if (!this.contains(mcmapbrowser)){
this.addChild(mcmapbrowser);
};
mcmapbrowser.init();
}
public function goWalkthrough(_arg1=null){
var _local2:*;
_local2 = "http://www.bubblebox.com/clickreg.php?type=gamestats&id=1473&subid=walkthrough&action=walkthrough";
navigateToURL(new URLRequest(_local2), "_blank");
}
function frame60(){
stop();
if (!mcmapeditor){
mcmapeditor = new mc_mapeditor();
} else {
if (this.contains(mcmapeditor)){
this.removeChild(mcmapeditor);
mcmapeditor = new mc_mapeditor();
};
};
if (!this.contains(mcmapeditor)){
this.addChild(mcmapeditor);
};
mcmapeditor.init();
}
public function initArtIntro(){
artintro.gotoAndPlay(2);
artintro.addEventListener(Event.ENTER_FRAME, moveArtIntro, false, 0, true);
artintro.addEventListener(MouseEvent.CLICK, goArtlogic, false, 0, true);
}
function frame70(){
stop();
if (gamemgr){
gamemgr.destroy();
};
gamemgr = new GameManager(this);
}
public function goSponsor(_arg1){
navigateToURL(new URLRequest(((("http://www.bubblebox.com/clickreg.php?type=gamestats&id=" + bboxid) + "&subid=") + _arg1)), "_blank");
}
public function goSponsorCover(_arg1){
goSponsor("cover");
}
public function goArtlogic(_arg1=null){
navigateToURL(new URLRequest(("http://artlogicgames.com/?gamereferral=" + algid)), "_blank");
}
}
}//package paperdefense_fla
Section 83
//mc_achievements_135 (paperdefense_fla.mc_achievements_135)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class mc_achievements_135 extends MovieClip {
public var btach10:bt_ach10;
public var btach13:bt_ach13;
public var btach14:bt_ach14;
public var btach15:bt_ach15;
public var btach17:bt_ach17;
public var btach11:bt_ach11;
public var btach19:bt_ach19;
public var btach16:bt_ach16;
public var btach18:bt_ach18;
public var btach12:bt_ach12;
public var btach20:bt_ach20;
public var btach21:bt_ach21;
public var btach22:bt_ach22;
public var btach23:bt_ach23;
public var btach24:bt_ach24;
public var btach25:bt_ach25;
public var btach29:bt_ach29;
public var btnmgr:ButtonGroupManager;
public var btach26:bt_ach26;
public var datamgr:GameDataManager;
public var btach27:bt_ach27;
public var btach28:bt_ach28;
public var btach31:bt_ach31;
public var btach36:bt_ach36;
public var btach37:bt_ach37;
public var btach38:bt_ach38;
public var btach33:bt_ach33;
public var btclosewindow:MovieClip;
public var btach30:bt_ach30;
public var btach39:bt_ach39;
public var btach32:bt_ach32;
public var achievementscroller:mc_achievementscroller;
public var btach34:bt_ach34;
public var btach40:bt_ach40;
public var btach35:bt_ach35;
public var buttontext2:Array;
public var headertxt:TextField;
public var initialized;
public var achievementnotetxt:TextField;
public var buttontext:Array;
public var buttons:Array;
public var mtl;
public var btach1:bt_ach1;
public var btach2:bt_ach2;
public var btach4:bt_ach4;
public var btach5:bt_ach5;
public var btach6:bt_ach6;
public var btach7:bt_ach7;
public var btach9:bt_ach9;
public var tweenmgr:TweenManager;
public var btach3:bt_ach3;
public var btach8:bt_ach8;
public var achievementnametxt:TextField;
public function mc_achievements_135(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
mtl = stage.getChildAt(0);
initialized = false;
}
public function showDialog(){
var _local1:*;
_local1 = 0;
while (_local1 < (buttons.length - 1)) {
if (!datamgr.unlockallachievement){
if (!datamgr.achievementstatus[_local1]){
btnmgr.lockButton(_local1);
} else {
btnmgr.unlockButton(_local1);
};
} else {
btnmgr.unlockButton(_local1);
};
_local1++;
};
headertxt.text = (((("Achievements ( " + datamgr.getUnlockedAchievement()) + " / ") + datamgr.achievementstatus.length) + " )");
this.y = -500;
tweenmgr.register(this, {live:15, ease:"easeoutback", x:0, y:0, alpha:1, rotation:0, scalex:1, scaley:1});
}
public function moveClip(_arg1){
achievementscroller.moveClip();
btnmgr.moveClip(mtl.ctrlmgr.MOUSEPOS, mtl.ctrlmgr.MOUSEPRESS);
detectButtons();
}
public function init(){
var _local1:*;
if (!initialized){
tweenmgr = mtl.tweenmgr;
datamgr = mtl.datamgr;
buttons = [btach1, btach2, btach3, btach4, btach5, btach6, btach7, btach8, btach9, btach10, btach11, btach12, btach13, btach14, btach15, btach16, btach17, btach18, btach19, btach20, btach21, btach22, btach23, btach24, btach25, btach26, btach27, btach28, btach29, btach30, btach31, btach32, btach33, btach34, btach35, btach36, btach37, btach38, btach39, btach40];
buttontext = datamgr.achievementheader;
buttontext2 = datamgr.achievementtext;
achievementscroller.init(buttons, null, 4, 5);
buttons.push(btclosewindow);
btnmgr = new ButtonGroupManager(buttons);
_local1 = 0;
while (_local1 < (buttons.length - 1)) {
btnmgr.registerFunction(_local1, this, {onover:showText, onout:hideText, onselect:selectButton});
_local1++;
};
this.y = -500;
} else {
achievementscroller.reset();
};
initialized = true;
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
}
public function hideDialog(){
tweenmgr.register(this, {live:15, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1});
}
public function selectButton(_arg1){
achievementnametxt.text = buttontext[_arg1];
achievementnotetxt.text = buttontext2[_arg1];
mtl.sndmgr.playSFX("guiselect");
}
public function detectButtons(){
if (btnmgr.status[(buttons.length - 1)]){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
mtl.mcmenupage.hideAchievement();
mtl.sndmgr.playSFX("guiselect");
};
}
public function hideText(_arg1){
if (achievementnametxt.text == buttontext[_arg1]){
achievementnametxt.text = "";
achievementnotetxt.text = "";
};
}
public function showText(_arg1){
achievementnametxt.text = buttontext[_arg1];
achievementnotetxt.text = buttontext2[_arg1];
}
}
}//package paperdefense_fla
Section 84
//mc_adbox_5 (paperdefense_fla.mc_adbox_5)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class mc_adbox_5 extends MovieClip {
public var mcpreloaderbig:MovieClip;
public var mtl;
public var cpmad;
public function mc_adbox_5(){
addFrameScript(0, frame1);
}
public function goSponsor(_arg1){
mtl.goSponsor("loader");
}
function frame1(){
stop();
mtl = this.stage.getChildAt(0);
mcpreloaderbig.addEventListener(MouseEvent.CLICK, goSponsor, false, 0, true);
if (!mtl.usead){
this.visible = false;
} else {
if (mtl.usecpmad){
cpmad = new AdLoader(mtl.prerollid);
this.addChild(cpmad);
} else {
if (mtl.usemochiad){
MochiAd.showClickAwayAd({clip:this, id:mtl.mprerollid});
};
};
};
}
public function unload(){
if (mtl.usead){
if (mtl.usecpmad){
if (((cpmad) && (this.contains(cpmad)))){
this.removeChild(cpmad);
};
} else {
if (mtl.usemochiad){
};
};
};
}
}
}//package paperdefense_fla
Section 85
//mc_credits_180 (paperdefense_fla.mc_credits_180)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class mc_credits_180 extends MovieClip {
public var datamgr;
public var btnmgr:ButtonGroupManager;
public var btclosewindow:MovieClip;
public var mtl;
public var tweenmgr:TweenManager;
public var initialized;
public function mc_credits_180(){
addFrameScript(0, frame1);
}
public function init(){
if (!initialized){
this.y = -500;
tweenmgr = mtl.tweenmgr;
btnmgr = new ButtonGroupManager([btclosewindow]);
};
initialized = true;
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
}
public function hideDialog(){
tweenmgr.register(this, {live:15, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1});
}
function frame1(){
stop();
mtl = stage.getChildAt(0);
datamgr = mtl.datamgr;
initialized = false;
}
public function detectButtons(){
if (btnmgr.status[0]){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
mtl.mcmenupage.hideCredits();
mtl.sndmgr.playSFX("guiselect");
};
}
public function moveClip(_arg1){
btnmgr.moveClip(mtl.ctrlmgr.MOUSEPOS, mtl.ctrlmgr.MOUSEPRESS);
detectButtons();
}
public function showDialog(){
datamgr.detectAchievement(false, 37);
datamgr.saveData();
this.y = -500;
tweenmgr.register(this, {live:15, ease:"easeoutback", x:0, y:0, alpha:1, rotation:0, scalex:1, scaley:1});
}
}
}//package paperdefense_fla
Section 86
//mc_deletedialog_123 (paperdefense_fla.mc_deletedialog_123)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
public dynamic class mc_deletedialog_123 extends MovieClip {
public var btcancel:SimpleButton;
public var dialogres;
public var dialogstatus;
public var btok:SimpleButton;
public function mc_deletedialog_123(){
addFrameScript(0, frame1, 1, frame2, 9, frame10);
}
public function goOk(_arg1=null){
dialogstatus = "finished";
dialogres = true;
btok.removeEventListener(MouseEvent.CLICK, goOk);
btcancel.removeEventListener(MouseEvent.CLICK, goCancel);
play();
}
public function activateDialog(){
this.gotoAndPlay(2);
}
function frame10(){
stop();
dialogstatus = "waiting";
btok.addEventListener(MouseEvent.CLICK, goOk, false, 0, true);
btcancel.addEventListener(MouseEvent.CLICK, goCancel, false, 0, true);
}
function frame1(){
stop();
dialogstatus = "idle";
dialogres = false;
this.visible = false;
}
function frame2(){
this.visible = true;
}
public function goCancel(_arg1=null){
dialogstatus = "finished";
dialogres = false;
btok.removeEventListener(MouseEvent.CLICK, goOk);
btcancel.removeEventListener(MouseEvent.CLICK, goCancel);
play();
}
}
}//package paperdefense_fla
Section 87
//mc_gameresult_216 (paperdefense_fla.mc_gameresult_216)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class mc_gameresult_216 extends MovieClip {
public var btcontinue:SimpleButton;
public var texttxt:TextField;
public var titletxt:TextField;
public var clipstatus;
public var initialized;
public var mcadbox:MovieClip;
public function mc_gameresult_216(){
addFrameScript(0, frame1);
}
public function init(_arg1, _arg2){
if (!initialized){
btcontinue.addEventListener(MouseEvent.CLICK, closeResult, false, 0, true);
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
initialized = true;
};
titletxt.text = _arg1;
texttxt.text = _arg2;
clipstatus = "ready";
this.y = -470;
}
public function closeResult(_arg1){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
btcontinue.removeEventListener(MouseEvent.CLICK, closeResult);
clipstatus = "finished";
}
function frame1(){
stop();
initialized = false;
clipstatus = "idle";
}
public function moveClip(_arg1){
}
public function load(){
mcadbox.init();
}
public function unload(){
mcadbox.unload();
}
}
}//package paperdefense_fla
Section 88
//mc_getcodedialog_127 (paperdefense_fla.mc_getcodedialog_127)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.system.*;
import flash.text.*;
public dynamic class mc_getcodedialog_127 extends MovieClip {
public var dialogcode;
public var dialogstatus;
public var newmapcode:TextField;
public var btok:SimpleButton;
public function mc_getcodedialog_127(){
addFrameScript(0, frame1, 1, frame2, 17, frame18);
}
public function goOk(_arg1=null){
dialogstatus = "finished";
System.setClipboard(dialogcode);
btok.removeEventListener(MouseEvent.CLICK, goOk);
play();
}
public function activateDialog(_arg1){
dialogcode = _arg1;
this.gotoAndPlay(2);
}
function frame18(){
stop();
dialogstatus = "waiting";
this.stage.focus = newmapcode;
newmapcode.text = dialogcode;
btok.addEventListener(MouseEvent.CLICK, goOk, false, 0, true);
}
function frame1(){
stop();
dialogstatus = "idle";
dialogcode = "";
this.visible = false;
}
function frame2(){
this.visible = true;
}
}
}//package paperdefense_fla
Section 89
//mc_inkreload1_251 (paperdefense_fla.mc_inkreload1_251)
package paperdefense_fla {
import flash.display.*;
public dynamic class mc_inkreload1_251 extends MovieClip {
public function mc_inkreload1_251(){
addFrameScript(0, frame1, 15, frame16);
}
function frame16(){
stop();
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 90
//mc_inkreload2_253 (paperdefense_fla.mc_inkreload2_253)
package paperdefense_fla {
import flash.display.*;
public dynamic class mc_inkreload2_253 extends MovieClip {
public function mc_inkreload2_253(){
addFrameScript(0, frame1, 15, frame16);
}
function frame16(){
stop();
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 91
//mc_inkreload3_255 (paperdefense_fla.mc_inkreload3_255)
package paperdefense_fla {
import flash.display.*;
public dynamic class mc_inkreload3_255 extends MovieClip {
public function mc_inkreload3_255(){
addFrameScript(0, frame1, 15, frame16);
}
function frame16(){
stop();
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 92
//mc_inkreload4_257 (paperdefense_fla.mc_inkreload4_257)
package paperdefense_fla {
import flash.display.*;
public dynamic class mc_inkreload4_257 extends MovieClip {
public function mc_inkreload4_257(){
addFrameScript(0, frame1, 15, frame16);
}
function frame16(){
stop();
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 93
//mc_loader_1 (paperdefense_fla.mc_loader_1)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class mc_loader_1 extends MovieClip {
public var maintimeline;
public var ctr;
public var mcloaderbar:MovieClip;
public var btloaderplay:SimpleButton;
public var loadertext:TextField;
public function mc_loader_1(){
addFrameScript(0, frame1, 11, frame12, 12, frame13);
}
public function init(){
mcloaderbar.gotoAndStop(1);
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
}
public function closeLoader(_arg1){
btloaderplay.removeEventListener(MouseEvent.CLICK, closeLoader);
play();
}
function frame12(){
stop();
maintimeline = this.stage.getChildAt(0);
btloaderplay.addEventListener(MouseEvent.CLICK, closeLoader, false, 0, true);
}
function frame1(){
stop();
}
function frame13(){
stop();
maintimeline.gotoAndPlay(5);
}
public function moveClip(_arg1){
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = this.loaderInfo.bytesLoaded;
_local3 = this.loaderInfo.bytesTotal;
_local4 = (Math.floor(((_local2 / _local3) * 100)) + 1);
if (mcloaderbar.currentFrame < _local4){
mcloaderbar.gotoAndStop((mcloaderbar.currentFrame + 1));
};
loadertext.text = (("Completed " + String((mcloaderbar.currentFrame - 1))) + "%");
if (mcloaderbar.currentFrame == mcloaderbar.totalFrames){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
play();
};
}
}
}//package paperdefense_fla
Section 94
//mc_menupanel_117 (paperdefense_fla.mc_menupanel_117)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class mc_menupanel_117 extends MovieClip {
public var btsoundoff:SimpleButton;
public var btwalkthrough:SimpleButton;
public var btbgmoff:SimpleButton;
public var btbgmon:SimpleButton;
public var mtl;
public var btsoundon:SimpleButton;
public function mc_menupanel_117(){
addFrameScript(0, frame1);
}
public function musicOn(_arg1){
btbgmon.visible = false;
mtl.sndmgr.adjustBGM(0);
playSFX();
}
public function musicOff(_arg1){
btbgmon.visible = true;
mtl.sndmgr.adjustBGM(1);
playSFX();
}
public function soundOn(_arg1){
btsoundon.visible = false;
mtl.sndmgr.adjustSFX(0);
playSFX();
}
function frame1(){
stop();
mtl = this.stage.getChildAt(0);
btsoundon.visible = (mtl.sndmgr.sfxvolume > 0);
btbgmon.visible = (mtl.sndmgr.bgmvolume > 0);
btwalkthrough.visible = mtl.usead;
btwalkthrough.addEventListener(MouseEvent.CLICK, goWalkthrough, false, 0, true);
btsoundon.addEventListener(MouseEvent.CLICK, soundOn, false, 0, true);
btsoundoff.addEventListener(MouseEvent.CLICK, soundOff, false, 0, true);
btbgmon.addEventListener(MouseEvent.CLICK, musicOn, false, 0, true);
btbgmoff.addEventListener(MouseEvent.CLICK, musicOff, false, 0, true);
}
public function playSFX(_arg1=null){
mtl.sndmgr.playSFX("guiselect");
}
public function goWalkthrough(_arg1){
mtl.goWalkthrough();
playSFX();
}
public function soundOff(_arg1){
btsoundon.visible = true;
mtl.sndmgr.adjustSFX(1);
playSFX();
}
}
}//package paperdefense_fla
Section 95
//mc_newcodedialog_126 (paperdefense_fla.mc_newcodedialog_126)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public dynamic class mc_newcodedialog_126 extends MovieClip {
public var dialogcode;
public var btcancel:SimpleButton;
public var newmapname:TextField;
public var dialogstatus;
public var newmapcode:TextField;
public var btok:SimpleButton;
public var dialogname;
public function mc_newcodedialog_126(){
addFrameScript(0, frame1, 1, frame2, 17, frame18);
}
public function goOk(_arg1=null){
if (((!((newmapname.text == ""))) && (!((newmapcode.text == ""))))){
dialogstatus = "finished";
dialogcode = newmapcode.text;
dialogname = newmapname.text;
btok.removeEventListener(MouseEvent.CLICK, goOk);
btcancel.removeEventListener(MouseEvent.CLICK, goCancel);
play();
};
}
public function activateDialog(){
this.gotoAndPlay(2);
}
function frame18(){
stop();
dialogstatus = "waiting";
this.stage.focus = newmapcode;
newmapcode.text = "";
newmapname.text = "";
btok.addEventListener(MouseEvent.CLICK, goOk, false, 0, true);
btcancel.addEventListener(MouseEvent.CLICK, goCancel, false, 0, true);
}
function frame1(){
stop();
dialogstatus = "idle";
dialogname = "";
dialogcode = "";
this.visible = false;
}
function frame2(){
this.visible = true;
}
public function goCancel(_arg1=null){
dialogstatus = "finished";
dialogcode = "";
dialogname = "";
btok.removeEventListener(MouseEvent.CLICK, goOk);
btcancel.removeEventListener(MouseEvent.CLICK, goCancel);
play();
}
}
}//package paperdefense_fla
Section 96
//mc_panelnotecontent1_263 (paperdefense_fla.mc_panelnotecontent1_263)
package paperdefense_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mc_panelnotecontent1_263 extends MovieClip {
public var notetext:TextField;
public var notelabel:TextField;
public var noteheader:TextField;
public function mc_panelnotecontent1_263(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package paperdefense_fla
Section 97
//mc_panelnotes_262 (paperdefense_fla.mc_panelnotes_262)
package paperdefense_fla {
import flash.display.*;
public dynamic class mc_panelnotes_262 extends MovieClip {
public var notecontent:MovieClip;
}
}//package paperdefense_fla
Section 98
//mc_preloaderbig_6 (paperdefense_fla.mc_preloaderbig_6)
package paperdefense_fla {
import flash.display.*;
public dynamic class mc_preloaderbig_6 extends MovieClip {
public var link:SimpleButton;
}
}//package paperdefense_fla
Section 99
//mc_saveprogress_98 (paperdefense_fla.mc_saveprogress_98)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public dynamic class mc_saveprogress_98 extends MovieClip {
public var filename:String;
public var btcancel:SimpleButton;
public var fnameinput:TextField;
public var savestatus:String;
public var btsubmit:SimpleButton;
public function mc_saveprogress_98(){
addFrameScript(0, frame1, 1, frame2, 14, frame15, 98, frame99, 112, frame113);
}
public function cancelSave(_arg1){
btsubmit.removeEventListener(MouseEvent.CLICK, checkFileName);
btcancel.removeEventListener(MouseEvent.CLICK, cancelSave);
savestatus = "cancel";
this.gotoAndPlay("cancel");
}
function frame15(){
stop();
btsubmit.addEventListener(MouseEvent.CLICK, checkFileName, false, 0, true);
btcancel.addEventListener(MouseEvent.CLICK, cancelSave, false, 0, true);
this.stage.focus = fnameinput;
}
function frame1(){
filename = "";
this.visible = false;
stop();
}
public function checkFileName(_arg1){
if (fnameinput.text != ""){
filename = fnameinput.text;
savestatus = "ready";
btsubmit.removeEventListener(MouseEvent.CLICK, checkFileName);
btcancel.removeEventListener(MouseEvent.CLICK, cancelSave);
this.gotoAndPlay("startsave");
};
}
function frame2(){
this.visible = true;
savestatus = "starting";
}
function frame113(){
savestatus = "finished";
this.gotoAndStop(1);
}
public function goSave(){
savestatus = "idle";
this.gotoAndPlay("blow");
}
function frame99(){
savestatus = "finished";
this.gotoAndStop(1);
}
}
}//package paperdefense_fla
Section 100
//mc_selectleveldialog_129 (paperdefense_fla.mc_selectleveldialog_129)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
public dynamic class mc_selectleveldialog_129 extends MovieClip {
public var btlevel2:SimpleButton;
public var btlevel3:SimpleButton;
public var btlevel4:SimpleButton;
public var maintimeline;
public var btlevelcancel:SimpleButton;
public var dialogstatus;
public var selectedlevel:int;
public var btlevel1:SimpleButton;
public function mc_selectleveldialog_129(){
addFrameScript(0, frame1, 16, frame17, 21, frame22);
}
public function activateDialog(){
dialogstatus = "activating";
selectedlevel = 0;
this.gotoAndPlay(2);
this.visible = true;
}
public function goLevel1(_arg1=null){
this.play();
selectedlevel = 0;
btlevel1.removeEventListener(MouseEvent.CLICK, goLevel1);
}
public function goLevel2(_arg1=null){
this.play();
selectedlevel = 1;
btlevel2.removeEventListener(MouseEvent.CLICK, goLevel2);
}
public function goLevel4(_arg1=null){
this.play();
selectedlevel = 3;
btlevel4.removeEventListener(MouseEvent.CLICK, goLevel4);
}
public function goLevel3(_arg1=null){
this.play();
selectedlevel = 2;
btlevel3.removeEventListener(MouseEvent.CLICK, goLevel3);
}
function frame1(){
stop();
maintimeline = this.stage.getChildAt(0);
dialogstatus = "idle";
this.visible = false;
}
function frame22(){
dialogstatus = "finished";
}
function frame17(){
stop();
dialogstatus = "waiting";
btlevel1.addEventListener(MouseEvent.CLICK, goLevel1, false, 0, true);
btlevel2.addEventListener(MouseEvent.CLICK, goLevel2, false, 0, true);
btlevel3.addEventListener(MouseEvent.CLICK, goLevel3, false, 0, true);
btlevel4.addEventListener(MouseEvent.CLICK, goLevel4, false, 0, true);
btlevelcancel.addEventListener(MouseEvent.CLICK, goCancel, false, 0, true);
}
public function goCancel(_arg1=null){
this.play();
selectedlevel = -1;
btlevelcancel.removeEventListener(MouseEvent.CLICK, goCancel);
}
}
}//package paperdefense_fla
Section 101
//mc_statsadbox_217 (paperdefense_fla.mc_statsadbox_217)
package paperdefense_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class mc_statsadbox_217 extends MovieClip {
public var mcpreloaderbig:MovieClip;
public var mtl;
public var cpmad;
public function mc_statsadbox_217(){
addFrameScript(0, frame1);
}
public function init(){
mtl = this.stage.getChildAt(0);
mcpreloaderbig.addEventListener(MouseEvent.CLICK, goSponsor, false, 0, true);
if (!mtl.usead){
this.visible = false;
} else {
if (mtl.usecpmad){
cpmad = new AdLoader(mtl.itlevelid);
this.addChild(cpmad);
} else {
if (mtl.usemochiad){
MochiAd.showClickAwayAd({clip:this, id:mtl.mprerollid});
};
};
};
}
public function goSponsor(_arg1){
mtl.goSponsor("result");
}
function frame1(){
stop();
}
public function unload(){
if (mtl.usead){
if (mtl.usecpmad){
if (((cpmad) && (this.contains(cpmad)))){
this.removeChild(cpmad);
};
} else {
if (mtl.usemochiad){
};
};
};
}
}
}//package paperdefense_fla
Section 102
//AdLoader (AdLoader)
package {
import flash.events.*;
import flash.display.*;
import flash.system.*;
import flash.net.*;
public class AdLoader extends Sprite {
private var contentspotid:String;
private var cpmstarLoader:Loader;
public function AdLoader(_arg1:String){
this.contentspotid = _arg1;
addEventListener(Event.ADDED, addedHandler);
}
private function addedHandler(_arg1:Event):void{
var _local2:String;
var _local3:DisplayObjectContainer;
removeEventListener(Event.ADDED, addedHandler);
Security.allowDomain("server.cpmstar.com");
_local2 = "http://server.cpmstar.com/adviewas3.swf";
_local3 = 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
Section 103
//BaseSound (BaseSound)
package {
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class BaseSound extends Sound {
private var sndTransform:SoundTransform;
public var sndPlaying:Boolean;
private var sndFadeOut:Boolean;
private var sndFadeIn:Boolean;
private var sndPosTime:Number;
private var loop:Boolean;
private var sndObj:Sound;
private var sndChannel:SoundChannel;
private var sndTimer:Timer;
private var sndVolume:Number;
private var sndPan:Number;
public function BaseSound(){
sndObj = this;
sndChannel = null;
sndTransform = null;
sndVolume = 1;
sndPan = 0;
sndPosTime = 0;
sndFadeIn = false;
sndFadeOut = false;
loop = false;
}
public function setVolume(_arg1:Number, _arg2=false):void{
var _local3:SoundTransform;
if (((!(_arg2)) && (sndTimer))){
sndTimer.stop();
};
sndVolume = _arg1;
if (sndChannel){
_local3 = sndChannel.soundTransform;
_local3.volume = sndVolume;
sndChannel.soundTransform = _local3;
};
}
public function stopSound():void{
if (sndChannel){
sndPlaying = false;
sndChannel.stop();
sndChannel.removeEventListener(Event.SOUND_COMPLETE, sound_loop);
loop = false;
};
}
public function fadeOut(_arg1:Boolean):void{
sndFadeOut = true;
sndFadeIn = false;
if (_arg1){
setVolume(1, true);
};
if (!sndTimer){
sndTimer = new Timer(50);
sndTimer.addEventListener(TimerEvent.TIMER, sndTimerHandler, false, 0, true);
sndTimer.start();
};
}
public function pauseSound():void{
if (sndChannel){
sndPlaying = false;
sndPosTime = sndChannel.position;
sndChannel.stop();
sndChannel.removeEventListener(Event.SOUND_COMPLETE, sound_loop);
};
}
public function playSound():void{
stopSound();
sndChannel = sndObj.play();
sndChannel.addEventListener(Event.SOUND_COMPLETE, sound_complete, false, 0, true);
setVolume(sndVolume);
setPan(sndPan);
sndPlaying = true;
}
public function fadeIn(_arg1:Boolean):void{
sndFadeIn = true;
sndFadeOut = false;
if (_arg1){
this.setVolume(0, true);
};
if (!sndTimer){
sndTimer = new Timer(50);
sndTimer.addEventListener(TimerEvent.TIMER, sndTimerHandler, false, 0, true);
sndTimer.start();
};
}
private function sndTimerHandler(_arg1:TimerEvent):void{
if (((sndFadeIn) && (sndFadeOut))){
sndFadeIn = false;
sndFadeOut = false;
setVolume(1, true);
};
if (sndFadeIn){
sndVolume = (sndVolume + 0.01);
if (sndVolume > 1){
setVolume(1, true);
sndFadeIn = false;
} else {
setVolume(sndVolume, true);
};
};
if (sndFadeOut){
sndVolume = (sndVolume - 0.01);
if (sndVolume < 0){
setVolume(0, true);
sndFadeOut = false;
} else {
setVolume(sndVolume, true);
};
};
}
public function setPan(_arg1:Number):void{
var _local2:SoundTransform;
sndPan = _arg1;
if (sndChannel){
_local2 = sndChannel.soundTransform;
_local2.pan = sndPan;
sndChannel.soundTransform = _local2;
};
}
public function resumeSound():void{
stopSound();
sndChannel = sndObj.play(sndPosTime);
if (loop){
sndChannel.addEventListener(Event.SOUND_COMPLETE, sound_loop, false, 0, true);
};
setVolume(sndVolume);
setPan(sndPan);
sndPlaying = true;
}
private function sound_complete(_arg1:Event){
sndChannel.removeEventListener(Event.SOUND_COMPLETE, sound_complete);
sndPlaying = false;
}
private function sound_loop(_arg1:Event){
sndChannel = sndObj.play();
setVolume(sndVolume);
setPan(sndPan);
sndPlaying = true;
sndChannel.addEventListener(Event.SOUND_COMPLETE, sound_loop, false, 0, true);
}
public function playSoundLoop():void{
stopSound();
sndChannel = sndObj.play();
sndChannel.addEventListener(Event.SOUND_COMPLETE, sound_loop, false, 0, true);
setVolume(sndVolume);
setPan(sndPan);
sndPlaying = true;
loop = true;
}
}
}//package
Section 104
//bgm_maintheme (bgm_maintheme)
package {
public dynamic class bgm_maintheme extends BaseSound {
}
}//package
Section 105
//bt_ach1 (bt_ach1)
package {
import flash.display.*;
public dynamic class bt_ach1 extends MovieClip {
public function bt_ach1(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 106
//bt_ach10 (bt_ach10)
package {
import flash.display.*;
public dynamic class bt_ach10 extends MovieClip {
public function bt_ach10(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 107
//bt_ach11 (bt_ach11)
package {
import flash.display.*;
public dynamic class bt_ach11 extends MovieClip {
public function bt_ach11(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 108
//bt_ach12 (bt_ach12)
package {
import flash.display.*;
public dynamic class bt_ach12 extends MovieClip {
public function bt_ach12(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 109
//bt_ach13 (bt_ach13)
package {
import flash.display.*;
public dynamic class bt_ach13 extends MovieClip {
public function bt_ach13(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 110
//bt_ach14 (bt_ach14)
package {
import flash.display.*;
public dynamic class bt_ach14 extends MovieClip {
public function bt_ach14(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 111
//bt_ach15 (bt_ach15)
package {
import flash.display.*;
public dynamic class bt_ach15 extends MovieClip {
public function bt_ach15(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 112
//bt_ach16 (bt_ach16)
package {
import flash.display.*;
public dynamic class bt_ach16 extends MovieClip {
public function bt_ach16(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 113
//bt_ach17 (bt_ach17)
package {
import flash.display.*;
public dynamic class bt_ach17 extends MovieClip {
public function bt_ach17(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 114
//bt_ach18 (bt_ach18)
package {
import flash.display.*;
public dynamic class bt_ach18 extends MovieClip {
public function bt_ach18(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 115
//bt_ach19 (bt_ach19)
package {
import flash.display.*;
public dynamic class bt_ach19 extends MovieClip {
public function bt_ach19(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 116
//bt_ach2 (bt_ach2)
package {
import flash.display.*;
public dynamic class bt_ach2 extends MovieClip {
public function bt_ach2(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 117
//bt_ach20 (bt_ach20)
package {
import flash.display.*;
public dynamic class bt_ach20 extends MovieClip {
public function bt_ach20(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 118
//bt_ach21 (bt_ach21)
package {
import flash.display.*;
public dynamic class bt_ach21 extends MovieClip {
public function bt_ach21(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 119
//bt_ach22 (bt_ach22)
package {
import flash.display.*;
public dynamic class bt_ach22 extends MovieClip {
public function bt_ach22(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 120
//bt_ach23 (bt_ach23)
package {
import flash.display.*;
public dynamic class bt_ach23 extends MovieClip {
public function bt_ach23(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 121
//bt_ach24 (bt_ach24)
package {
import flash.display.*;
public dynamic class bt_ach24 extends MovieClip {
public function bt_ach24(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 122
//bt_ach25 (bt_ach25)
package {
import flash.display.*;
public dynamic class bt_ach25 extends MovieClip {
public function bt_ach25(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 123
//bt_ach26 (bt_ach26)
package {
import flash.display.*;
public dynamic class bt_ach26 extends MovieClip {
public function bt_ach26(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 124
//bt_ach27 (bt_ach27)
package {
import flash.display.*;
public dynamic class bt_ach27 extends MovieClip {
public function bt_ach27(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 125
//bt_ach28 (bt_ach28)
package {
import flash.display.*;
public dynamic class bt_ach28 extends MovieClip {
public function bt_ach28(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 126
//bt_ach29 (bt_ach29)
package {
import flash.display.*;
public dynamic class bt_ach29 extends MovieClip {
public function bt_ach29(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 127
//bt_ach3 (bt_ach3)
package {
import flash.display.*;
public dynamic class bt_ach3 extends MovieClip {
public function bt_ach3(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 128
//bt_ach30 (bt_ach30)
package {
import flash.display.*;
public dynamic class bt_ach30 extends MovieClip {
public function bt_ach30(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 129
//bt_ach31 (bt_ach31)
package {
import flash.display.*;
public dynamic class bt_ach31 extends MovieClip {
public function bt_ach31(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 130
//bt_ach32 (bt_ach32)
package {
import flash.display.*;
public dynamic class bt_ach32 extends MovieClip {
public function bt_ach32(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 131
//bt_ach33 (bt_ach33)
package {
import flash.display.*;
public dynamic class bt_ach33 extends MovieClip {
public function bt_ach33(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 132
//bt_ach34 (bt_ach34)
package {
import flash.display.*;
public dynamic class bt_ach34 extends MovieClip {
public function bt_ach34(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 133
//bt_ach35 (bt_ach35)
package {
import flash.display.*;
public dynamic class bt_ach35 extends MovieClip {
public function bt_ach35(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 134
//bt_ach36 (bt_ach36)
package {
import flash.display.*;
public dynamic class bt_ach36 extends MovieClip {
public function bt_ach36(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 135
//bt_ach37 (bt_ach37)
package {
import flash.display.*;
public dynamic class bt_ach37 extends MovieClip {
public function bt_ach37(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 136
//bt_ach38 (bt_ach38)
package {
import flash.display.*;
public dynamic class bt_ach38 extends MovieClip {
public function bt_ach38(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 137
//bt_ach39 (bt_ach39)
package {
import flash.display.*;
public dynamic class bt_ach39 extends MovieClip {
public function bt_ach39(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 138
//bt_ach4 (bt_ach4)
package {
import flash.display.*;
public dynamic class bt_ach4 extends MovieClip {
public function bt_ach4(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 139
//bt_ach40 (bt_ach40)
package {
import flash.display.*;
public dynamic class bt_ach40 extends MovieClip {
public function bt_ach40(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 140
//bt_ach5 (bt_ach5)
package {
import flash.display.*;
public dynamic class bt_ach5 extends MovieClip {
public function bt_ach5(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 141
//bt_ach6 (bt_ach6)
package {
import flash.display.*;
public dynamic class bt_ach6 extends MovieClip {
public function bt_ach6(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 142
//bt_ach7 (bt_ach7)
package {
import flash.display.*;
public dynamic class bt_ach7 extends MovieClip {
public function bt_ach7(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 143
//bt_ach8 (bt_ach8)
package {
import flash.display.*;
public dynamic class bt_ach8 extends MovieClip {
public function bt_ach8(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 144
//bt_ach9 (bt_ach9)
package {
import flash.display.*;
public dynamic class bt_ach9 extends MovieClip {
public function bt_ach9(){
addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16, 20, frame21, 25, frame26, 30, frame31);
}
function frame6(){
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame26(){
stop();
}
function frame21(){
gotoAndStop(1);
}
function frame31(){
stop();
}
function frame11(){
gotoAndStop(1);
}
}
}//package
Section 145
//bt_unitwave (bt_unitwave)
package {
public dynamic class bt_unitwave extends WaveButtonBase {
}
}//package
Section 146
//BulletObjectBase (BulletObjectBase)
package {
import flash.display.*;
import flash.geom.*;
public class BulletObjectBase extends MovieClip {
public var bullettarget:Object;
public var bullettype:int;
public var bulletstatus:String;
public var bulletrange:Number;
private var gamespeed:int;
private var bulletskin:MovieClip;
private var dy:Number;
private var dx:Number;
public var bulletattack:Number;
private var bulletrect:Rectangle;
private var bulletlive:int;
public function BulletObjectBase(_arg1, _arg2=1){
bulletrect = new Rectangle(5, 5, 630, 310);
gamespeed = 1;
bulletstatus = "idle";
bullettype = _arg1.towertype;
bulletrange = (_arg1.towerrange * _arg1.getFactor());
if (Math.random() < 0.05){
bulletattack = ((_arg1.towerattack * _arg1.getFactor()) + ((Math.random() * _arg1.towerattack) / 2));
} else {
bulletattack = ((_arg1.towerattack * _arg1.getFactor()) + ((Math.random() * _arg1.towerattack) / 10));
};
bullettarget = _arg1.towertarget;
this.x = _arg1.x;
this.y = _arg1.y;
this.rotation = _arg1.towerangle;
switch (bullettype){
case 0:
bulletlive = 15;
dy = (10 * Math.sin(((this.rotation * Math.PI) / 180)));
dx = (10 * Math.cos(((this.rotation * Math.PI) / 180)));
bulletskin = new mc_bullet1();
break;
case 1:
bulletlive = 15;
dy = (10 * Math.sin(((this.rotation * Math.PI) / 180)));
dx = (10 * Math.cos(((this.rotation * Math.PI) / 180)));
bulletskin = new mc_bullet2();
break;
case 2:
bulletlive = 120;
dy = (5 * Math.sin(((this.rotation * Math.PI) / 180)));
dx = (5 * Math.cos(((this.rotation * Math.PI) / 180)));
bulletskin = new mc_bullet3();
break;
case 4:
bulletlive = 60;
dy = (1 * Math.sin(((this.rotation * Math.PI) / 180)));
dx = (1 * Math.cos(((this.rotation * Math.PI) / 180)));
bulletskin = new mc_bullet5();
break;
};
this.addChild(bulletskin);
}
public function getAngle(_arg1):Number{
var _local2:*;
var _local3:*;
_local2 = (_arg1.x - this.x);
_local3 = (_arg1.y - this.y);
return (((Math.atan2(_local3, _local2) / Math.PI) * 180));
}
public function getDistance(_arg1):Number{
var _local2:*;
var _local3:*;
_local2 = (_arg1.x - this.x);
_local3 = (_arg1.y - this.y);
return (Math.sqrt(((_local2 * _local2) + (_local3 * _local3))));
}
public function moveClip(_arg1){
var _local2:*;
gamespeed = _arg1;
switch (bullettype){
case 0:
this.y = (this.y + (dy * gamespeed));
this.x = (this.x + (dx * gamespeed));
bulletskin.rotation = (bulletskin.rotation + 5);
break;
case 1:
this.y = (this.y + (dy * gamespeed));
this.x = (this.x + (dx * gamespeed));
break;
case 2:
_local2 = getAngle(bullettarget);
this.rotation = (this.rotation + (_local2 - this.rotation));
dy = (dy + (0.5 * Math.sin(((this.rotation * Math.PI) / 180))));
dx = (dx + (0.5 * Math.cos(((this.rotation * Math.PI) / 180))));
this.y = (this.y + (dy * gamespeed));
this.x = (this.x + (dx * gamespeed));
this.rotation = ((Math.atan2(dy, dx) * 180) / Math.PI);
break;
case 4:
this.y = (this.y + ((1 * dy) * gamespeed));
this.x = (this.x + ((1 * dx) * gamespeed));
this.alpha = (this.alpha - (0.01 * gamespeed));
this.bulletattack = (this.bulletattack - (0.05 * gamespeed));
bulletskin.rotation = (bulletskin.rotation + 15);
break;
};
bulletlive = (bulletlive - gamespeed);
if (bulletlive <= 0){
this.bulletstatus = "destroyed";
} else {
if (!bulletrect.contains(this.x, this.y)){
this.bulletstatus = "outbordered";
};
};
}
}
}//package
Section 147
//ButtonGroupManager (ButtonGroupManager)
package {
import flash.geom.*;
public class ButtonGroupManager {
private var prepress:Boolean;
private var curpress:Boolean;
private var tweenmgr:TweenManager;
private var curpos:Point;
private var groupmode:Array;
private var functions:Array;
private var button:Array;
public var rect:Array;
public var status:Array;
private var group:Array;
public function ButtonGroupManager(_arg1, _arg2=null, _arg3=null){
var _local4:*;
var _local5:*;
super();
functions = new Array();
status = new Array();
button = new Array();
rect = new Array();
_local4 = 0;
while (_local4 < _arg1.length) {
functions.push({scope:null, onover:null, onout:null, onselect:null, ondeselect:null});
status.push(0);
button.push(_arg1[_local4]);
rect.push(new Rectangle((_arg1[_local4].x - (_arg1[_local4].width / 2)), (_arg1[_local4].y - (_arg1[_local4].height / 2)), _arg1[_local4].width, _arg1[_local4].height));
button[_local4].buttonMode = true;
_local4++;
};
group = new Array();
groupmode = new Array();
if (_arg2){
_local4 = 0;
while (_local4 < _arg2.length) {
group.push(new Array());
_local5 = 0;
while (_local5 < _arg2[_local4].length) {
group[_local4].push(_arg2[_local4][_local5]);
_local5++;
};
groupmode.push(_arg3[_local4]);
if (groupmode[_local4] == "toggle"){
btnActivate(button[group[_local4][0]]);
};
_local4++;
};
};
}
public function activateButton(_arg1){
if (status[_arg1] > -1){
btnActivate(button[_arg1]);
};
}
public function disableButton(_arg1){
if (status[_arg1] > -1){
status[_arg1] = -1;
button[_arg1].gotoAndStop("disabled");
};
}
public function resetButtons(){
var _local1:*;
_local1 = 0;
while (_local1 < button.length) {
button[_local1].gotoAndStop(1);
status[_local1] = 0;
_local1++;
};
_local1 = 0;
while (_local1 < groupmode.length) {
if (groupmode[_local1] == "toggle"){
btnActivate(button[group[_local1][0]]);
};
_local1++;
};
}
private function btnShrink(_arg1){
if (_arg1.currentLabel == "blow"){
_arg1.gotoAndPlay("shrink");
applyFunction(btnIndex(_arg1), "onout");
};
}
public function moveClip(_arg1, _arg2){
var _local3:*;
var _local4:*;
curpos = _arg1;
prepress = curpress;
curpress = _arg2;
_local4 = false;
_local3 = 0;
while (_local3 < button.length) {
if (status[_local3] == 2){
status[_local3] = 0;
};
rect[_local3].x = (button[_local3].x - (button[_local3].width / 2));
rect[_local3].y = (button[_local3].y - (button[_local3].height / 2));
rect[_local3].width = button[_local3].width;
rect[_local3].height = button[_local3].height;
if (((rect[_local3].containsPoint(curpos)) && (button[_local3].visible))){
if (((prepress) && (!(curpress)))){
btnActivate(button[_local3]);
} else {
btnBlow(button[_local3]);
};
} else {
btnShrink(button[_local3]);
};
_local3++;
};
}
private function btnGroup(_arg1):int{
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = btnIndex(_arg1);
if (_local2 > -1){
_local3 = -1;
_local4 = 0;
while ((((_local3 < 0)) && ((_local4 < group.length)))) {
if (group[_local4].indexOf(_local2) > -1){
_local3 = group[_local4].indexOf(_local2);
};
_local4++;
};
if (_local3 > -1){
return ((_local4 - 1));
};
return (-1);
//unresolved jump
};
return (-1);
}
public function enableButton(_arg1){
if (status[_arg1] == -1){
status[_arg1] = 0;
button[_arg1].gotoAndPlay("shrink");
};
}
public function unlockButton(_arg1){
if (status[_arg1] == -2){
status[_arg1] = 0;
button[_arg1].gotoAndPlay("shrink");
};
}
public function registerFunction(_arg1, _arg2, _arg3){
functions[_arg1]["scope"] = _arg2;
if (_arg3["onover"]){
functions[_arg1]["onover"] = _arg3["onover"];
};
if (_arg3["onout"]){
functions[_arg1]["onout"] = _arg3["onout"];
};
if (_arg3["onselect"]){
functions[_arg1]["onselect"] = _arg3["onselect"];
};
if (_arg3["ondeselect"]){
functions[_arg1]["ondeselect"] = _arg3["ondeselect"];
};
if (_arg3["ondisabledselect"]){
functions[_arg1]["ondisabledselect"] = _arg3["ondisabledselect"];
};
if (_arg3["onlockedselect"]){
functions[_arg1]["onlockedselect"] = _arg3["onlockedselect"];
};
}
private function btnIndex(_arg1):int{
return (button.indexOf(_arg1));
}
public function deactivateButton(_arg1){
if (status[_arg1] > -1){
btnDeactivate(button[_arg1]);
};
}
private function applyFunction(_arg1, _arg2){
if (((functions[_arg1]["scope"]) && (functions[_arg1][_arg2]))){
functions[_arg1][_arg2].apply(functions[_arg1]["scope"], [_arg1]);
};
}
private function btnBlow(_arg1){
if ((((_arg1.currentFrame == 1)) || ((_arg1.currentLabel == "shrink")))){
_arg1.gotoAndPlay("blow");
applyFunction(btnIndex(_arg1), "onover");
};
}
private function btnActivate(_arg1){
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = btnGroup(_arg1);
_local3 = btnIndex(_arg1);
if (status[_local3] > -1){
if (_local2 > -1){
_local4 = 0;
while (_local4 < group[_local2].length) {
if (group[_local2][_local4] != _local3){
btnDeactivate(button[group[_local2][_local4]]);
} else {
if (status[_local3] != 1){
status[_local3] = 1;
_arg1.gotoAndPlay("activate");
applyFunction(_local3, "onselect");
} else {
if (groupmode[_local2] == "normal"){
status[_local3] = 0;
_arg1.gotoAndPlay("deactivate");
applyFunction(_local3, "ondeselect");
};
};
};
_local4++;
};
} else {
status[_local3] = 2;
_arg1.gotoAndPlay("blow");
applyFunction(_local3, "onselect");
};
} else {
if (status[_local3] == -1){
applyFunction(_local3, "ondisabledselect");
} else {
if (status[_local3] == -2){
applyFunction(_local3, "onlockedselect");
};
};
};
}
private function btnDeactivate(_arg1){
var _local2:*;
_local2 = btnIndex(_arg1);
if (status[_local2] > -1){
status[_local2] = 0;
if (_arg1.currentLabel == "activate"){
_arg1.gotoAndPlay("deactivate");
applyFunction(_local2, "ondeselect");
};
};
}
public function deactivateGroup(_arg1){
var _local2:*;
_local2 = 0;
while (_local2 < group[_arg1].length) {
if ((((status[group[_arg1][_local2]] > -1)) && (!((status[group[_arg1][_local2]] == 0))))){
btnDeactivate(button[group[_arg1][_local2]]);
};
_local2++;
};
}
public function unregisterFunction(_arg1, _arg2){
if (_arg2["onover"]){
functions[_arg1]["onover"] = null;
};
if (_arg2["onout"]){
functions[_arg1]["onout"] = null;
};
if (_arg2["onselect"]){
functions[_arg1]["onselect"] = null;
};
if (_arg2["ondeselect"]){
functions[_arg1]["ondeselect"] = null;
};
if (_arg2["ondisabledselect"]){
functions[_arg1]["ondisabledselect"] = null;
};
if (_arg2["onlockedselect"]){
functions[_arg1]["onlockedselect"] = null;
};
}
public function lockButton(_arg1){
if (status[_arg1] > -2){
status[_arg1] = -2;
button[_arg1].gotoAndStop("locked");
};
}
}
}//package
Section 148
//ControlManager (ControlManager)
package {
import flash.events.*;
import flash.geom.*;
public class ControlManager {
public var MOUSEPRESS;// = 0
public var KEYPRESS;
public var MOUSESCROLL;// = 0
public var MOUSEPOS;
public function ControlManager(_arg1=null){
MOUSEPOS = new Point(0, 0);
MOUSEPRESS = 0;
MOUSESCROLL = 0;
KEYPRESS = new Array();
super();
if (_arg1){
startListeners(_arg1);
};
}
public function keyReleaseHandler(_arg1){
KEYPRESS[_arg1.keyCode] = 0;
}
public function mouseDownHandler(_arg1){
MOUSEPRESS = (MOUSEPRESS) ? 1 : 2;
}
public function keyPressHandler(_arg1){
KEYPRESS[_arg1.keyCode] = (KEYPRESS[_arg1.keyCode]) ? 1 : 2;
}
public function mouseUpHandler(_arg1){
MOUSEPRESS = 0;
}
public function stopListeners(_arg1){
_arg1.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMovementHandler);
_arg1.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
_arg1.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
_arg1.removeEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
_arg1.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressHandler);
_arg1.removeEventListener(KeyboardEvent.KEY_UP, keyReleaseHandler);
}
public function mouseMovementHandler(_arg1){
MOUSEPOS.x = _arg1.stageX;
MOUSEPOS.y = _arg1.stageY;
}
public function moveClip(){
var _local1:*;
MOUSEPRESS = (MOUSEPRESS) ? 1 : 0;
MOUSESCROLL = 0;
_local1 = 0;
while (_local1 < KEYPRESS.length) {
KEYPRESS[_local1] = (KEYPRESS[_local1]) ? 1 : 0;
_local1++;
};
}
public function mouseWheelHandler(_arg1){
MOUSESCROLL = _arg1.delta;
}
public function startListeners(_arg1){
_arg1.addEventListener(MouseEvent.MOUSE_MOVE, mouseMovementHandler, false, 0, true);
_arg1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler, false, 0, true);
_arg1.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler, false, 0, true);
_arg1.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, false, 0, true);
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressHandler, false, 0, true);
_arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleaseHandler, false, 0, true);
}
}
}//package
Section 149
//EnemyWaveManager (EnemyWaveManager)
package {
public class EnemyWaveManager {
public var wavearray:Array;
private var tracing:Boolean;// = false
public var wavetime:Array;
private var udatamgr:UnitDataManager;
public var wavetype:String;
private var sendcounter:int;
private var lastdispatched:Object;
private var dispatchskip:int;
private var sendspacer:int;
public var lastindex:int;
public function EnemyWaveManager(_arg1){
tracing = false;
super();
udatamgr = _arg1;
wavearray = new Array();
wavetime = new Array();
sendcounter = 0;
}
public function createEnemyWave(_arg1, _arg2, _arg3=0){
var _local4:Array;
var _local5:Array;
var _local6:int;
var _local7:Number;
var _local8:Array;
var _local9:*;
var _local10:*;
var _local11:int;
if (tracing){
trace("\nEnemyWaveManager:CreateEnemyWave: Start creating enemy wave");
};
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: enemy level:", _arg3);
};
_local4 = new Array();
wavetype = _arg2;
if (_arg2 == "wave"){
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: enemy type: wave");
};
_local8 = udatamgr.defaultwavelevel[_arg3];
} else {
if (_arg2 == "time"){
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: enemy type: time");
};
_local8 = udatamgr.defaulttimelevel[_arg3];
};
};
_local7 = 1;
_local10 = 0;
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: Group count:", _local8.length);
};
while (_local10 < _local8.length) {
_local4 = new Array();
_local5 = new Array();
if (_local8[_local10] == 5){
_local6 = (4 + (Math.random() * 3));
_local9 = 0;
while (_local9 < _local6) {
_local4.push(new TracerUnitBase(_arg3, _local8[_local10], _local7, _arg1, udatamgr));
_local5.push((_local9 * 3));
_local9++;
};
} else {
if (_local8[_local10] == 3){
_local6 = (10 + (Math.random() * 3));
_local9 = 0;
while (_local9 < _local6) {
_local4.push(new TracerUnitBase(_arg3, _local8[_local10], _local7, _arg1, udatamgr));
_local5.push((_local9 * 3));
_local9++;
};
} else {
if ((((((_local8[_local10] == 0)) || ((_local8[_local10] == 1)))) || ((_local8[_local10] == 2)))){
_local6 = (30 + (Math.random() * 5));
_local9 = 0;
while (_local9 < _local6) {
_local4.push(new TracerUnitBase(_arg3, _local8[_local10], _local7, _arg1, udatamgr));
_local5.push(_local9);
_local9++;
};
} else {
_local6 = (20 + (Math.random() * 5));
_local9 = 0;
while (_local9 < _local6) {
_local4.push(new TracerUnitBase(_arg3, _local8[_local10], _local7, _arg1, udatamgr));
_local5.push(_local9);
_local9++;
};
};
};
};
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: Created Group:", (_local10 + 1), ", with type:", udatamgr.defaultunittype[_local8[_local10]], ", with:", _local4.length, " members");
};
wavearray.push(_local4);
wavetime.push(_local5);
if (_arg2 == "wave"){
_local7 = (_local7 + udatamgr.defaultlevelfactor[_arg3]);
} else {
if (_arg2 == "time"){
_local7 = (_local7 + udatamgr.defaultlevelfactor[Math.floor(((5 * _arg3) + (_local10 / 6)))]);
};
};
_local10++;
};
}
public function getWaveDescString():Array{
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = new Array();
_local3 = 0;
while (_local3 < wavearray.length) {
_local2 = (wavearray[_local3][0].unittype + "\n");
_local2 = (_local2 + (String(wavearray[_local3].length) + "\n"));
_local2 = (_local2 + (String(Math.floor(wavearray[_local3][0].unithealth)) + "\n"));
switch (wavearray[_local3][0].unittypeint){
case 0:
case 1:
_local2 = (_local2 + "None");
break;
case 2:
_local2 = (_local2 + "Speedy");
break;
case 3:
_local2 = (_local2 + "Stronger");
break;
case 4:
_local2 = (_local2 + "Healing");
break;
case 5:
_local2 = (_local2 + "Bossy");
break;
case 6:
_local2 = (_local2 + "Spawny");
break;
case 7:
_local2 = (_local2 + "Immune");
break;
};
_local1.push(_local2);
_local3++;
};
return (_local1);
}
public function dispatchEnemyUnit(_arg1, _arg2, _arg3=99):Object{
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
if (_arg3 == 0){
dispatchskip++;
};
if (!lastdispatched){
if (_arg2 > 0){
_local5 = wavearray[0][0];
wavearray[0].splice(0, 1);
wavetime[0].splice(0, 1);
};
} else {
if ((((((lastdispatched.pathidx > 0)) || ((lastdispatched.unithealth < 5)))) || ((dispatchskip >= 150)))){
dispatchskip = 0;
_local6 = _arg1;
_local7 = Math.floor((_arg2 / 4));
if (_local6 < wavearray.length){
if ((((wavetime[_local6].length > 0)) && ((((wavetime[_local6][0] <= _local7)) || ((sendspacer < 2)))))){
if ((((((((wavearray[_local6].length > 0)) && ((((((wavearray[_local6][0].unittypeint == 0)) || ((wavearray[_local6][0].unittypeint == 1)))) || ((wavearray[_local6][0].unittypeint == 2)))))) && ((wavearray[_local6].length < 10)))) && ((wavearray[_local6].length > 3)))){
sendspacer = 0;
};
sendspacer++;
if (sendspacer > 5){
sendspacer = 0;
};
_local5 = wavearray[_local6][0];
wavearray[_local6].splice(0, 1);
wavetime[_local6].splice(0, 1);
if (sendspacer < 2){
_local4 = 0;
while (_local4 < wavetime.length) {
var _local8 = wavetime[_local6];
var _local9 = _local4;
var _local10 = (_local8[_local9] - 1);
_local8[_local9] = _local10;
_local4++;
};
};
} else {
if (_local6 > 0){
_local4 = 0;
while (_local4 < _local6) {
if (((!(_local5)) && ((wavearray[_local4].length > 0)))){
_local5 = wavearray[_local4][0];
wavearray[_local4].splice(0, 1);
wavetime[_local4].splice(0, 1);
};
_local4++;
};
};
};
} else {
_local4 = 0;
while (_local4 < wavearray.length) {
if (((!(_local5)) && ((wavearray[_local4].length > 0)))){
_local5 = wavearray[_local4][0];
wavearray[_local4].splice(0, 1);
wavetime[_local4].splice(0, 1);
};
_local4++;
};
};
};
};
lastindex = _arg1;
if (_local5){
lastdispatched = _local5;
};
return (_local5);
}
public function getTotalEnemyCount():int{
var _local1:*;
var _local2:*;
_local2 = 0;
_local1 = 0;
while (_local1 < wavearray.length) {
_local2 = (_local2 + wavearray[_local1].length);
_local1++;
};
return (_local2);
}
public function getWaveString(_arg1, _arg2):Array{
var _local3:*;
var _local4:*;
_local4 = new Array();
if (tracing){
trace("EnemyWaveManager:getWaveString: Getting enemy list:", _arg1, ", with level:", _arg2);
};
if (_arg1 == "wave"){
_local3 = 0;
while (_local3 < udatamgr.defaultwavelevel[_arg2].length) {
_local4.push(udatamgr.defaultunittype[udatamgr.defaultwavelevel[_arg2][_local3]]);
_local3++;
};
} else {
if (_arg1 == "time"){
_local3 = 0;
while (_local3 < udatamgr.defaulttimelevel[_arg2].length) {
_local4.push(udatamgr.defaultunittype[udatamgr.defaulttimelevel[_arg2][_local3]]);
_local3++;
};
};
};
if (tracing){
trace("EnemyWaveManager:getWaveString: Returning enemy list with ", _local4.length, " members");
};
return (_local4);
}
public function getWaveEnemyCount():int{
var _local1:*;
var _local2:*;
_local2 = 0;
if (lastindex >= wavearray.length){
lastindex = (wavearray.length - 1);
};
_local1 = 0;
while (_local1 <= lastindex) {
_local2 = (_local2 + wavearray[_local1].length);
_local1++;
};
return (_local2);
}
}
}//package
Section 150
//GameDataManager (GameDataManager)
package {
import flash.display.*;
import flash.net.*;
public class GameDataManager {
private var maintimeline:MovieClip;
public var totalcurenergy:int;
public var editmap:String;
public var colorstatus:Array;
public var totalwin:int;
private var savepath:String;
private var usekong:Boolean;// = true
public var gametype:String;
public var curbuild:Array;
public var gamemap:int;
public var unlockallachievement:Boolean;// = false
public var totalliveleft:int;
public var curlive:int;
public var towerstatus:Array;
public var unlockalltower:Boolean;// = false
public var curscore:int;
public var mapstatus:Array;
public var totallivelost:int;
public var tutorial:Array;
public var unlockallmap:Boolean;// = false
public var totallost:int;
private var skinindex:int;
public var resetdata:Boolean;// = false
private var skin:Array;
public var achievementheader:Array;
private var savename:String;
public var totalenergyused:int;
public var cursell:Array;
public var editname:String;
public var curkill:Array;
public var totalkill:Array;
public var unlockallcolor:Boolean;// = false
public var savedata:Boolean;
public var totalbuild:Array;
private var tracing:Boolean;// = false
public var curenergy:int;
public var totalstreak:int;
private var tweenmgr:TweenManager;
public var totalscore:int;
public var gamelevel:int;
public var totalenergyleft:int;
private var kongmgr:KongregateDataManager;
public var achievementtext:Array;
public var achievementstatus:Array;
public function GameDataManager(_arg1){
tracing = false;
usekong = true;
resetdata = false;
unlockallachievement = false;
unlockallmap = false;
unlockalltower = false;
unlockallcolor = false;
achievementheader = ["Born to kill", "Fail is good!", "Welcome home, private!", "Mass attacker", "The sniper", "Guardian of the assassins", "Land mine is against the law of war", "That's the problem with regular", "Their blood is red.. er.. purple.. or something!", "Bargaining with speed", "Strength is no match for brain", "Healer is overrated", "Now, who's the boss!", "They never give up!", "lmmunity is overrated", "This game is no screen saver!", "Well done, Private!", "Well, you have progress", "Hmm, a little more and you'll finish", "Now your rank is Sergeant", "This game is easy!", "Normal game is ok!", "The harder the better!", "lt's me that say that is possible!", "Hey, I have talent!", "God wants me to be happy", "13 is not bad luck", "300", "December 21, 2012", "Boredom Killer General", "Normal Weapon Mastery", "Totally Upgraded", "Tower Wholesale", "A genius is nothing more than talent", "Bring me hell", "l don't need much ink", "Drawing is so relaxing", "Ahh, so these are them", "Winning is a matter of luck", "The Achiever"];
achievementtext = ["Achieved for getting 1 kill", "Achieved for start doing some lost in this game", "Achieved for building a normal tower", "Achieved for building an area tower", "Achieved for building a targeting tower", "Achieved for creating a supporting tower", "Achieved for creating a mine tower", "Achieved for killing a regular creep", "Achieved for killing a spicy creep", "Achieved for killing a speedy creep", "Achieved for killing a strength creep", "Achieved for killing a healing creep", "Achieved for killing a bossy creep", "Achieved for killing a swarming creep", "Achieved for killing an immunity creep", "Achieved by starting a game and doing nothing\n(your friends say, \"that's lame!\" Believe me, it's not!)", "Achieved for finishing the first 5 maps.\nThey made the game seem too easy.", "Achieved for finishing the seconds 5 maps.", "Achieved for finishing another 5 maps\nthat bring you closer to the end", "Achieved for finishing the last 5 maps\nthat made this game needs a sequel", "Achieved for finishing an easy custom map\n(and say that it's too easy. Now you know why it's called easy!)", "Achieved for finishing a map on normal mode", "Achieved for finishing a map on hard mode.", "Achieved for finishing a map on very hard mode\n(it's called very hard, not impossible)", "Achieved for creating a custom map", "Achieved for playing a custom map", "Achieved for killing thirteen creeps ( So you know that theres achievement for something )", "Achieved for fighting 300 creeps led by King Leonidas", "Achieved for defeating 2012 agents of armageddon", "Achieved for eating all boredom while eliminating 10000 cute critters", "Achieved for winning a game with only normal towers", "Achieved for fully upgrading all tower in a game", "Achieved for Achieved for selling more than 5 towers in a single game", "Achieved for winning a game without losing a life", "Achieved for sending all waves early", "Achieved for having cc5000 unused ink at the end of a game", "Achieved for using all 4 pen color in a single game", "Achieved for watching the credits page", "Achieved for winning 5 games in a row without ever lost", "Achieved for achieving all unachieved achievements. Well, too many achievement to be achieved could be achievefull, I hope you achieve what I mean.."];
super();
if (tracing){
trace("GameDataManager:$init: Initiating game data manager");
};
editmap = "";
editname = "";
maintimeline = _arg1;
tweenmgr = maintimeline.tweenmgr;
usekong = maintimeline.usekong;
if (usekong){
kongmgr = new KongregateDataManager(maintimeline);
};
skin = new Array();
skinindex = -1;
savename = "x_paperdefensegamedata.11_x";
savepath = "";
savedata = true;
resetData();
if (resetdata){
saveData();
};
loadData();
}
private function continueTween(_arg1){
tweenmgr.register(_arg1, {live:30, ease:"easeincirc", x:510, y:535, alpha:0, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:stopTween});
if (skin.indexOf(_arg1) == skinindex){
if (skinindex < (skin.length - 1)){
skinindex++;
startTween(skin[skinindex]);
};
};
}
public function getTotalKill(_arg1=-1):int{
var _local2:*;
var _local3:*;
if (_arg1 > -1){
return (totalkill[_arg1]);
};
_local3 = 0;
_local2 = 0;
while (_local2 < totalkill.length) {
_local3 = (_local3 + totalkill[_local2]);
_local2++;
};
return (_local3);
}
public function getCurrentScore():int{
var _local1:*;
var _local2:*;
_local2 = 0;
_local2 = (_local2 + totalcurenergy);
_local2 = (_local2 + (curenergy * 10));
_local2 = (_local2 + (curlive * 100));
_local2 = (_local2 + (curlive * 100));
_local1 = 0;
while (_local1 < curkill.length) {
_local2 = (_local2 + (_local1 * curkill[_local1]));
_local1++;
};
_local1 = 0;
while (_local1 < curbuild.length) {
_local2 = (_local2 + ((_local1 * curbuild[_local1]) * 10));
_local1++;
};
_local1 = 0;
while (_local1 < cursell.length) {
_local2 = (_local2 + ((_local1 * cursell[_local1]) * 5));
_local1++;
};
return (_local2);
}
private function pauseTween(_arg1){
tweenmgr.register(_arg1, {live:30, ease:"easenone", x:510, y:320, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:continueTween});
}
public function getUnlockedAchievement():int{
var _local1:*;
var _local2:*;
_local2 = 0;
_local1 = 0;
while (_local1 < achievementstatus.length) {
if (achievementstatus[_local1] != 0){
_local2++;
};
_local1++;
};
return (_local2);
}
private function startTween(_arg1){
tweenmgr.register(_arg1, {live:30, ease:"easeoutcirc", x:510, y:310, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:pauseTween});
}
public function addBuild(_arg1, _arg2){
if (_arg2 > 0){
curbuild[_arg1] = (curbuild[_arg1] + _arg2);
};
}
public function reduceLive(_arg1){
if (_arg1 > 0){
curlive = (curlive - _arg1);
};
}
public function getCurSell(_arg1=-1):int{
var _local2:*;
var _local3:*;
if (_arg1 > -1){
return (cursell[_arg1]);
};
_local3 = 0;
_local2 = 0;
while (_local2 < cursell.length) {
_local3 = (_local3 + cursell[_local2]);
_local2++;
};
return (_local3);
}
public function getTotalBuild(_arg1=-1):int{
var _local2:*;
var _local3:*;
if (_arg1 > -1){
return (totalbuild[_arg1]);
};
_local3 = 0;
_local2 = 0;
while (_local2 < totalbuild.length) {
_local3 = (_local3 + totalbuild[_local2]);
_local2++;
};
return (_local3);
}
public function detectAchievement(_arg1=false, _arg2=-1){
var _local3:*;
var _local4:*;
if (_arg2 == -1){
trace(_arg1, _arg2);
if (achievementstatus[1] == 0){
if ((((totallost > 0)) || (!(_arg1)))){
achievementstatus[1] = 2;
createSkin(1);
};
};
if (achievementstatus[15] == 0){
if (((((!(_arg1)) && ((getCurKill() == 0)))) && ((getCurBuild() == 0)))){
achievementstatus[15] = 2;
createSkin(15);
};
};
if (achievementstatus[16] == 0){
if ((((((((((mapstatus[0] == 2)) && ((mapstatus[1] == 2)))) && ((mapstatus[2] == 2)))) && ((mapstatus[3] == 2)))) && ((mapstatus[4] == 2)))){
achievementstatus[16] = 2;
createSkin(16);
};
};
if (achievementstatus[17] == 0){
if ((((((((((mapstatus[5] == 2)) && ((mapstatus[6] == 2)))) && ((mapstatus[7] == 2)))) && ((mapstatus[8] == 2)))) && ((mapstatus[9] == 2)))){
achievementstatus[17] = 2;
createSkin(17);
};
};
if (achievementstatus[18] == 0){
if ((((((((((mapstatus[10] == 2)) && ((mapstatus[11] == 2)))) && ((mapstatus[12] == 2)))) && ((mapstatus[13] == 2)))) && ((mapstatus[14] == 2)))){
achievementstatus[18] = 2;
createSkin(18);
};
};
if (achievementstatus[19] == 0){
if ((((((((((mapstatus[15] == 2)) && ((mapstatus[16] == 2)))) && ((mapstatus[17] == 2)))) && ((mapstatus[18] == 2)))) && ((mapstatus[19] == 2)))){
achievementstatus[19] = 2;
createSkin(19);
};
};
if (achievementstatus[30] == 0){
if (((((((((((_arg1) && (curbuild[0]))) && (!(curbuild[1])))) && (!(curbuild[2])))) && (!(curbuild[3])))) && (!(curbuild[4])))){
achievementstatus[30] = 2;
createSkin(30);
};
};
if (achievementstatus[33] == 0){
if (curlive == 20){
achievementstatus[33] = 2;
createSkin(33);
};
};
if (achievementstatus[35] == 0){
if (((_arg1) && ((curenergy >= 5000)))){
achievementstatus[35] = 2;
createSkin(35);
};
};
if (achievementstatus[38] == 0){
if (totalstreak >= 5){
achievementstatus[38] = 2;
createSkin(38);
};
};
} else {
switch (_arg2){
case 0:
if (achievementstatus[0] == 0){
achievementstatus[0] = 2;
createSkin(0);
};
break;
case 2:
if (achievementstatus[2] == 0){
achievementstatus[2] = 2;
createSkin(2);
};
break;
case 3:
if (achievementstatus[3] == 0){
achievementstatus[3] = 2;
createSkin(3);
};
break;
case 4:
if (achievementstatus[4] == 0){
achievementstatus[4] = 2;
createSkin(4);
};
break;
case 5:
if (achievementstatus[5] == 0){
achievementstatus[5] = 2;
createSkin(5);
};
break;
case 6:
if (achievementstatus[6] == 0){
achievementstatus[6] = 2;
createSkin(6);
};
break;
case 7:
if (achievementstatus[7] == 0){
achievementstatus[7] = 2;
createSkin(7);
};
break;
case 8:
if (achievementstatus[8] == 0){
achievementstatus[8] = 2;
createSkin(8);
};
break;
case 9:
if (achievementstatus[9] == 0){
achievementstatus[9] = 2;
createSkin(9);
};
break;
case 10:
if (achievementstatus[10] == 0){
achievementstatus[10] = 2;
createSkin(10);
};
break;
case 11:
if (achievementstatus[11] == 0){
achievementstatus[11] = 2;
createSkin(11);
};
break;
case 12:
if (achievementstatus[12] == 0){
achievementstatus[12] = 2;
createSkin(12);
};
break;
case 13:
if (achievementstatus[13] == 0){
achievementstatus[13] = 2;
createSkin(13);
};
break;
case 14:
if (achievementstatus[14] == 0){
achievementstatus[14] = 2;
createSkin(14);
};
break;
case 20:
if (achievementstatus[20] == 0){
achievementstatus[20] = 2;
createSkin(20);
};
break;
case 21:
if (achievementstatus[21] == 0){
achievementstatus[21] = 2;
createSkin(21);
};
break;
case 22:
if (achievementstatus[22] == 0){
achievementstatus[22] = 2;
createSkin(22);
};
break;
case 23:
if (achievementstatus[23] == 0){
achievementstatus[23] = 2;
createSkin(23);
};
break;
case 24:
if (achievementstatus[24] == 0){
achievementstatus[24] = 2;
createSkin(24);
};
break;
case 25:
if (achievementstatus[25] == 0){
achievementstatus[25] = 2;
createSkin(25);
};
break;
case 26:
if (achievementstatus[26] == 0){
achievementstatus[26] = 2;
createSkin(26);
};
break;
case 27:
if (achievementstatus[27] == 0){
achievementstatus[27] = 2;
createSkin(27);
};
break;
case 28:
if (achievementstatus[28] == 0){
achievementstatus[28] = 2;
createSkin(28);
};
break;
case 29:
if (achievementstatus[29] == 0){
achievementstatus[29] = 2;
createSkin(29);
};
break;
case 31:
if (achievementstatus[31] == 0){
achievementstatus[31] = 2;
createSkin(31);
};
break;
case 32:
if (achievementstatus[32] == 0){
achievementstatus[32] = 2;
createSkin(32);
};
break;
case 34:
if (achievementstatus[34] == 0){
achievementstatus[34] = 2;
createSkin(34);
};
break;
case 36:
if (achievementstatus[36] == 0){
achievementstatus[36] = 2;
createSkin(36);
};
break;
case 37:
if (achievementstatus[37] == 0){
achievementstatus[37] = 2;
createSkin(37);
};
break;
};
};
if ((((achievementstatus[39] == 0)) && ((getUnlockedAchievement() == (achievementstatus.length - 1))))){
achievementstatus[39] = 2;
createSkin(39);
};
}
public function getCurKill(_arg1=-1):int{
var _local2:*;
var _local3:*;
if (_arg1 > -1){
return (curkill[_arg1]);
};
_local3 = 0;
_local2 = 0;
while (_local2 < curkill.length) {
_local3 = (_local3 + curkill[_local2]);
_local2++;
};
return (_local3);
}
public function getCurBuild(_arg1=-1):int{
var _local2:*;
var _local3:*;
if (_arg1 > -1){
return (curbuild[_arg1]);
};
_local3 = 0;
_local2 = 0;
while (_local2 < curbuild.length) {
_local3 = (_local3 + curbuild[_local2]);
_local2++;
};
return (_local3);
}
public function resetData(){
gametype = "wave";
gamelevel = 0;
gamemap = 0;
curenergy = 200;
totalcurenergy = curenergy;
curlive = 20;
curkill = [0, 0, 0, 0, 0, 0, 0, 0];
curbuild = [0, 0, 0, 0, 0];
cursell = [0, 0, 0, 0, 0];
curscore = 0;
totalenergyused = 0;
totalenergyleft = 0;
totallivelost = 0;
totalliveleft = 0;
totalkill = [0, 0, 0, 0, 0, 0, 0, 0];
totalbuild = [0, 0, 0, 0, 0];
totalwin = 0;
totallost = 0;
totalstreak = 0;
totalscore = 0;
towerstatus = [1, 0, 0, 0, 0];
colorstatus = [1, 0, 0, 0];
mapstatus = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
achievementstatus = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
tutorial = [true, true];
}
public function addKill(_arg1, _arg2){
if (_arg2 > 0){
curkill[_arg1] = (curkill[_arg1] + _arg2);
};
}
private function createSkin(_arg1){
var _local2:*;
var _local3:*;
switch (_arg1){
case 0:
_local3 = new bt_ach1();
break;
case 1:
_local3 = new bt_ach2();
break;
case 2:
_local3 = new bt_ach3();
break;
case 3:
_local3 = new bt_ach4();
break;
case 4:
_local3 = new bt_ach5();
break;
case 5:
_local3 = new bt_ach6();
break;
case 6:
_local3 = new bt_ach7();
break;
case 7:
_local3 = new bt_ach8();
break;
case 8:
_local3 = new bt_ach9();
break;
case 9:
_local3 = new bt_ach10();
break;
case 10:
_local3 = new bt_ach11();
break;
case 11:
_local3 = new bt_ach12();
break;
case 12:
_local3 = new bt_ach13();
break;
case 13:
_local3 = new bt_ach14();
break;
case 14:
_local3 = new bt_ach15();
break;
case 15:
_local3 = new bt_ach16();
break;
case 16:
_local3 = new bt_ach17();
break;
case 17:
_local3 = new bt_ach18();
break;
case 18:
_local3 = new bt_ach19();
break;
case 19:
_local3 = new bt_ach20();
break;
case 20:
_local3 = new bt_ach21();
break;
case 21:
_local3 = new bt_ach22();
break;
case 22:
_local3 = new bt_ach23();
break;
case 23:
_local3 = new bt_ach24();
break;
case 24:
_local3 = new bt_ach25();
break;
case 25:
_local3 = new bt_ach26();
break;
case 26:
_local3 = new bt_ach27();
break;
case 27:
_local3 = new bt_ach28();
break;
case 28:
_local3 = new bt_ach29();
break;
case 29:
_local3 = new bt_ach30();
break;
case 30:
_local3 = new bt_ach31();
break;
case 31:
_local3 = new bt_ach32();
break;
case 32:
_local3 = new bt_ach33();
break;
case 33:
_local3 = new bt_ach34();
break;
case 34:
_local3 = new bt_ach35();
break;
case 35:
_local3 = new bt_ach36();
break;
case 36:
_local3 = new bt_ach37();
break;
case 37:
_local3 = new bt_ach38();
break;
case 38:
_local3 = new bt_ach39();
break;
case 39:
_local3 = new bt_ach40();
break;
};
_local2 = new mc_achievementnote();
_local2.content.addChild(_local3);
_local2.x = 510;
_local2.y = -55;
_local2.descriptiontxt.text = achievementheader[_arg1];
maintimeline.addChild(_local2);
skin.push(_local2);
if (skin.length == 1){
skinindex = 0;
startTween(skin[skinindex]);
};
}
public function addEnergy(_arg1){
curenergy = (curenergy + _arg1);
if (_arg1 > 0){
totalcurenergy = (totalcurenergy + _arg1);
};
}
public function commitData(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
if (curlive > 0){
_local2 = true;
} else {
_local2 = false;
};
totalenergyused = (totalenergyused + (totalcurenergy - curenergy));
totalenergyleft = (totalenergyleft + curenergy);
totallivelost = (totallivelost + (20 - curlive));
totalliveleft = (totalliveleft + curlive);
_local1 = 0;
while (_local1 < curkill.length) {
totalkill[_local1] = (totalkill[_local1] + curkill[_local1]);
_local1++;
};
_local1 = 0;
while (_local1 < curbuild.length) {
totalbuild[_local1] = (totalbuild[_local1] + curbuild[_local1]);
_local1++;
};
if (_local2){
totalwin++;
totalstreak++;
totalscore = (totalscore + getCurrentScore());
if ((((towerstatus[1] == 0)) && ((gamelevel >= 1)))){
towerstatus[1] = 2;
} else {
if (towerstatus[1] == 2){
towerstatus[1] = 1;
};
};
if ((((towerstatus[2] == 0)) && ((gamelevel >= 2)))){
towerstatus[2] = 2;
} else {
if (towerstatus[2] == 2){
towerstatus[2] = 1;
};
};
if ((((towerstatus[3] == 0)) && ((gamelevel >= 5)))){
towerstatus[3] = 2;
} else {
if (towerstatus[3] == 2){
towerstatus[3] = 1;
};
};
if ((((towerstatus[4] == 0)) && ((gamelevel >= 7)))){
towerstatus[4] = 2;
} else {
if (towerstatus[4] == 2){
towerstatus[4] = 1;
};
};
if ((((colorstatus[1] == 0)) && ((gamelevel >= 3)))){
colorstatus[1] = 2;
} else {
if (colorstatus[1] == 2){
colorstatus[1] = 1;
};
};
if ((((colorstatus[2] == 0)) && ((gamelevel >= 4)))){
colorstatus[2] = 2;
} else {
if (colorstatus[2] == 2){
colorstatus[2] = 1;
};
};
if ((((colorstatus[3] == 0)) && ((gamelevel >= 6)))){
colorstatus[3] = 2;
} else {
if (colorstatus[3] == 2){
colorstatus[3] = 1;
};
};
_local1 = 0;
while (_local1 < mapstatus.length) {
if (mapstatus[_local1] == 3){
mapstatus[_local1] = 1;
};
_local1++;
};
if (mapstatus[gamelevel] == 1){
mapstatus[gamelevel] = 2;
};
if ((mapstatus[(gamelevel + 1)] == 0)){
mapstatus[(gamelevel + 1)] = 3;
};
if (gametype == "wave"){
_local3 = new MapDataManager();
_local3.addMap(_local3.defmapname[gamelevel], _local3.defmapdata[gamelevel]);
};
_local1 = 0;
while (_local1 < achievementstatus.length) {
if (achievementstatus[_local1] == 2){
achievementstatus[_local1] = 1;
};
_local1++;
};
detectAchievement(_local2, -1);
} else {
totallost++;
totalstreak = 0;
detectAchievement(_local2, -1);
};
saveData();
if (usekong){
_local4 = {BEST_HIGHSCORE:totalscore, BEST_ACHIEVEMENTS_UNLOCKED:getUnlockedAchievement(), BEST_WIN_STREAK:totalstreak, BEST_UNITS_KILLED:getTotalKill(), BEST_TOWERS_BUILT:getTotalBuild(), BEST_INK_COLLECTED:(totalenergyused + totalenergyleft), BEST_CAMPAIGN_LEVEL:getLastCampaignLevel()};
kongmgr.submitStat(_local4);
};
}
public function getLastCampaignLevel():int{
var _local1:*;
_local1 = 0;
while (mapstatus[_local1] == 2) {
_local1++;
};
return (_local1);
}
private function loadData(){
var _local1:*;
if (tracing){
trace("GameDataManager:loadData: :Loading Data");
};
_local1 = SharedObject.getLocal(savename);
if (_local1.size == 0){
resetData();
saveData();
};
resetData();
if (_local1.data.totalenergyused){
totalenergyused = _local1.data.totalenergyused;
totalenergyleft = _local1.data.totalenergyleft;
totallivelost = _local1.data.totallivelost;
totalliveleft = _local1.data.totalliveleft;
totalkill = _local1.data.totalkill;
totalbuild = _local1.data.totalbuild;
totalwin = _local1.data.totalwin;
totallost = _local1.data.totallost;
totalstreak = _local1.data.totalstreak;
totalscore = _local1.data.totalscore;
towerstatus = _local1.data.towerstatus;
colorstatus = _local1.data.colorstatus;
mapstatus = _local1.data.mapstatus;
achievementstatus = _local1.data.achievementstatus;
tutorial = _local1.data.tutorial;
};
}
public function addSell(_arg1, _arg2){
if (_arg2 > 0){
cursell[_arg1] = (cursell[_arg1] + _arg2);
};
}
public function saveData(){
var _local1:*;
if (tracing){
trace("GameDataManager:saveData: Saving Data");
};
_local1 = SharedObject.getLocal(savename);
if (savedata){
_local1.data.totalenergyused = totalenergyused;
_local1.data.totalenergyleft = totalenergyleft;
_local1.data.totallivelost = totallivelost;
_local1.data.totalliveleft = totalliveleft;
_local1.data.totalkill = totalkill;
_local1.data.totalbuild = totalbuild;
_local1.data.totalwin = totalwin;
_local1.data.totallost = totallost;
_local1.data.totalstreak = totalstreak;
_local1.data.totalscore = totalscore;
_local1.data.towerstatus = towerstatus;
_local1.data.colorstatus = colorstatus;
_local1.data.mapstatus = mapstatus;
_local1.data.achievementstatus = achievementstatus;
_local1.data.tutorial = tutorial;
_local1.flush();
};
}
private function stopTween(_arg1){
if (skin.indexOf(_arg1) == skinindex){
if (skinindex < (skin.length - 1)){
skinindex++;
startTween(skin[skinindex]);
};
};
skinindex--;
skin.splice(skin.indexOf(_arg1), 1);
maintimeline.removeChild(_arg1);
}
public function startNewGame(_arg1, _arg2, _arg3){
var _local4:*;
gametype = _arg1;
gamelevel = _arg2;
gamemap = _arg3;
curenergy = 200;
totalcurenergy = curenergy;
curlive = 20;
curkill = [0, 0, 0, 0, 0, 0, 0, 0];
curbuild = [0, 0, 0, 0, 0];
cursell = [0, 0, 0, 0, 0];
curscore = 0;
}
}
}//package
Section 151
//GameManager (GameManager)
package {
import flash.events.*;
import flash.display.*;
import flash.ui.*;
public class GameManager extends MovieClip {
private var maintimeline:MovieClip;
private var scenemgr:StageSceneContainer;
private var sndmgr:SoundManager;
private var gametype:String;
private var datamgr:GameDataManager;
private var gamemap:int;
private var waveprogress:int;
private var mctutorial:MovieClip;
private var gamestatus:String;
private var cheatcode:String;
private var waveindex:int;
private var panelmgr:StagePanelContainer;
private var mcgamepointer:MovieClip;
private var gamebg:Bitmap;
private var tweenmgr:TweenManager;
private var gamelevel:int;
private var ctrlmgr:ControlManager;
private var resultmgr:MovieClip;
private var waitcounter:int;
public function GameManager(_arg1){
maintimeline = _arg1;
cheatcode = "";
tweenmgr = _arg1.tweenmgr;
sndmgr = _arg1.sndmgr;
gamebg = new Bitmap(new wallpaperdata(640, 480));
panelmgr = maintimeline.mcstagepanel;
ctrlmgr = maintimeline.ctrlmgr;
datamgr = maintimeline.datamgr;
resultmgr = maintimeline.mcgameresult;
resultmgr.y = -500;
gametype = datamgr.gametype;
gamelevel = datamgr.gamelevel;
gamemap = datamgr.gamemap;
panelmgr.btwalkthrough.visible = maintimeline.usead;
startNewGame();
}
public function destroy(){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
if (maintimeline.contains(this)){
maintimeline.removeChild(this);
};
}
private function detectPanel(){
if (ctrlmgr.KEYPRESS[80] == 2){
panelmgr.activateButton(7);
};
switch (cheatcode){
case "":
if (ctrlmgr.KEYPRESS[77]){
cheatcode = (cheatcode + "m");
};
if (ctrlmgr.KEYPRESS[82]){
cheatcode = (cheatcode + "r");
};
if (ctrlmgr.KEYPRESS[85]){
cheatcode = (cheatcode + "u");
};
break;
case "m":
case "unl":
if (ctrlmgr.KEYPRESS[79]){
cheatcode = (cheatcode + "o");
};
break;
case "un":
if (ctrlmgr.KEYPRESS[76]){
cheatcode = (cheatcode + "l");
};
break;
case "u":
case "mo":
if (ctrlmgr.KEYPRESS[78]){
cheatcode = (cheatcode + "n");
};
break;
case "re":
if (ctrlmgr.KEYPRESS[83]){
cheatcode = (cheatcode + "s");
};
break;
case "r":
case "res":
case "mon":
if (ctrlmgr.KEYPRESS[69]){
cheatcode = (cheatcode + "e");
};
break;
case "unlo":
if (ctrlmgr.KEYPRESS[67]){
cheatcode = (cheatcode + "c");
};
break;
case "mone":
if (ctrlmgr.KEYPRESS[89]){
cheatcode = "";
datamgr.curenergy = (datamgr.curenergy + 1000);
panelmgr.inktxt.text = "cc ";
panelmgr.inktxt.appendText(String(datamgr.curenergy));
datamgr.savedata = false;
};
break;
case "rese":
if (ctrlmgr.KEYPRESS[84]){
datamgr.resetData();
datamgr.saveData();
exitGameManager(null);
datamgr.savedata = false;
};
break;
case "unloc":
if (ctrlmgr.KEYPRESS[75]){
datamgr.unlockallachievement = true;
datamgr.unlockallmap = true;
datamgr.unlockalltower = true;
datamgr.unlockallcolor = true;
exitGameManager(null);
datamgr.savedata = false;
};
break;
default:
cheatcode = "";
break;
};
if (gamestatus == "playing"){
if (datamgr.curenergy < scenemgr.getPrice(0)){
panelmgr.disableButton(0);
} else {
panelmgr.enableButton(0);
};
if (datamgr.curenergy < scenemgr.getPrice(1)){
panelmgr.disableButton(1);
} else {
panelmgr.enableButton(1);
};
if (datamgr.curenergy < scenemgr.getPrice(2)){
panelmgr.disableButton(2);
} else {
panelmgr.enableButton(2);
};
if (datamgr.curenergy < scenemgr.getPrice(3)){
panelmgr.disableButton(3);
} else {
panelmgr.enableButton(3);
};
if (datamgr.curenergy < scenemgr.getPrice(4)){
panelmgr.disableButton(4);
} else {
panelmgr.enableButton(4);
};
if (scenemgr.layercreate.towerstatus == "finish"){
panelmgr.deactivateGroup(0);
};
if (ctrlmgr.KEYPRESS[49] == 2){
panelmgr.activateButton(0);
} else {
if (ctrlmgr.KEYPRESS[50] == 2){
panelmgr.activateButton(1);
} else {
if (ctrlmgr.KEYPRESS[51] == 2){
panelmgr.activateButton(2);
} else {
if (ctrlmgr.KEYPRESS[52] == 2){
panelmgr.activateButton(3);
} else {
if (ctrlmgr.KEYPRESS[53] == 2){
panelmgr.activateButton(4);
} else {
if (ctrlmgr.KEYPRESS[Keyboard.ESCAPE] == 2){
scenemgr.cancelCreateTower();
panelmgr.deactivateGroup(0);
};
};
};
};
};
};
if ((((panelmgr.buttonstatus[0] > 0)) && ((datamgr.curenergy >= scenemgr.getPrice(0))))){
scenemgr.startCreateTower(0);
if (!mctutorial.finished){
if (mctutorial.step == 4){
mctutorial.hideTutorial();
mctutorial.showTutorial(4);
};
};
} else {
if ((((panelmgr.buttonstatus[1] > 0)) && ((datamgr.curenergy >= scenemgr.getPrice(1))))){
scenemgr.startCreateTower(1);
} else {
if ((((panelmgr.buttonstatus[2] > 0)) && ((datamgr.curenergy >= scenemgr.getPrice(2))))){
scenemgr.startCreateTower(2);
} else {
if ((((panelmgr.buttonstatus[3] > 0)) && ((datamgr.curenergy >= scenemgr.getPrice(3))))){
scenemgr.startCreateTower(3);
} else {
if ((((panelmgr.buttonstatus[4] > 0)) && ((datamgr.curenergy >= scenemgr.getPrice(4))))){
scenemgr.startCreateTower(4);
};
};
};
};
};
if (ctrlmgr.KEYPRESS[81] == 2){
panelmgr.activateButton(9);
} else {
if (ctrlmgr.KEYPRESS[87] == 2){
panelmgr.activateButton(10);
} else {
if (ctrlmgr.KEYPRESS[69] == 2){
panelmgr.activateButton(11);
} else {
if (ctrlmgr.KEYPRESS[82] == 2){
panelmgr.activateButton(12);
};
};
};
};
if (panelmgr.buttonstatus[9] > 0){
scenemgr.mouseattackcolorindex = 0;
scenemgr.usedcolor[1] = true;
} else {
if (panelmgr.buttonstatus[10] > 0){
scenemgr.mouseattackcolorindex = 1;
scenemgr.usedcolor[1] = true;
} else {
if (panelmgr.buttonstatus[11] > 0){
scenemgr.mouseattackcolorindex = 2;
scenemgr.usedcolor[2] = true;
} else {
if (panelmgr.buttonstatus[12] > 0){
scenemgr.mouseattackcolorindex = 3;
scenemgr.usedcolor[3] = true;
};
};
};
};
if (((((((scenemgr.usedcolor[0]) && (scenemgr.usedcolor[1]))) && (scenemgr.usedcolor[2]))) && (scenemgr.usedcolor[3]))){
datamgr.detectAchievement(false, 36);
};
if (panelmgr.buttonstatus[8] > 0){
sndmgr.adjustSFX(0);
} else {
sndmgr.adjustSFX(1);
};
if (scenemgr.mctowerupgradenote.showing){
if (ctrlmgr.KEYPRESS[85]){
scenemgr.mctowerupgradenote.upgradeTower();
};
if (ctrlmgr.KEYPRESS[83]){
scenemgr.mctowerupgradenote.sellTower();
};
};
};
}
private function exitGameManager(_arg1){
this.removeChild(mcgamepointer);
this.removeChild(gamebg);
this.removeChild(scenemgr);
this.removeChild(panelmgr);
this.removeEventListener(Event.ENTER_FRAME, moveClip);
Mouse.show();
if (datamgr.gametype == "wave"){
maintimeline.gotoAndPlay("wavepage");
} else {
maintimeline.gotoAndPlay("browserpage");
};
}
private function refreshGameData(){
var _local1:*;
var _local2:*;
if (scenemgr.curenergy != 0){
datamgr.addEnergy(scenemgr.curenergy);
scenemgr.curenergy = 0;
panelmgr.inktxt.text = "cc ";
panelmgr.inktxt.appendText(String(datamgr.curenergy));
};
_local2 = panelmgr.getWaveName();
if (_local2 != panelmgr.wavetxt.text){
panelmgr.wavetxt.text = _local2;
};
if (scenemgr.curlivelost != 0){
datamgr.reduceLive(scenemgr.curlivelost);
scenemgr.curlivelost = 0;
panelmgr.mclivecounter.gotoAndStop((datamgr.curlive + 1));
if (datamgr.curlive <= 0){
datamgr.curlive = 0;
maintimeline.addChild(resultmgr);
resultmgr.load();
resultmgr.y = -500;
gamestatus = "endplayerlost";
waitcounter = 30;
};
};
_local1 = 0;
while (_local1 < datamgr.curkill.length) {
datamgr.addKill(_local1, scenemgr.curkill[_local1]);
scenemgr.curkill[_local1] = 0;
if (datamgr.achievementstatus[(_local1 + 7)] == 0){
if ((datamgr.getTotalKill(_local1) + datamgr.getCurKill(_local1)) > 0){
datamgr.detectAchievement(false, (_local1 + 7));
};
};
_local1++;
};
if (datamgr.achievementstatus[0] == 0){
if ((datamgr.getTotalKill() + datamgr.getCurKill()) > 0){
datamgr.detectAchievement(false, 0);
};
} else {
if (datamgr.achievementstatus[26] == 0){
if ((datamgr.getTotalKill() + datamgr.getCurKill()) >= 13){
datamgr.detectAchievement(false, 26);
};
} else {
if (datamgr.achievementstatus[27] == 0){
if ((datamgr.getTotalKill() + datamgr.getCurKill()) >= 300){
datamgr.detectAchievement(false, 27);
};
} else {
if (datamgr.achievementstatus[28] == 0){
if ((datamgr.getTotalKill() + datamgr.getCurKill()) >= 2012){
datamgr.detectAchievement(false, 28);
};
} else {
if (datamgr.achievementstatus[29] == 0){
if ((datamgr.getTotalKill() + datamgr.getCurKill()) >= 10000){
datamgr.detectAchievement(false, 29);
};
};
};
};
};
};
_local1 = 0;
while (_local1 < datamgr.curbuild.length) {
datamgr.addBuild(_local1, scenemgr.curbuild[_local1]);
scenemgr.curbuild[_local1] = 0;
if (datamgr.achievementstatus[(_local1 + 2)] == 0){
if ((datamgr.getTotalBuild(_local1) + datamgr.getCurBuild(_local1)) > 0){
datamgr.detectAchievement(false, (_local1 + 2));
};
};
_local1++;
};
_local1 = 0;
while (_local1 < datamgr.cursell.length) {
datamgr.addSell(_local1, scenemgr.cursell[_local1]);
scenemgr.cursell[_local1] = 0;
if (datamgr.getCurSell() >= 5){
datamgr.detectAchievement(false, 32);
};
_local1++;
};
panelmgr.critterstxt.text = String(scenemgr.getWaveEnemyLast());
panelmgr.critterstxt.appendText(" / ");
panelmgr.critterstxt.appendText(String(scenemgr.enemyunit.length));
}
private function moveClip(_arg1=null){
var _local2:*;
var _local3:*;
var _local4:*;
mcgamepointer.x = ctrlmgr.MOUSEPOS.x;
mcgamepointer.y = ctrlmgr.MOUSEPOS.y;
switch (gamestatus){
case "waiting":
waitcounter--;
if (waitcounter <= 0){
waitcounter = 0;
gamestatus = "playing";
};
panelmgr.moveClip();
break;
case "restarting":
startNewGame();
panelmgr.panelstatus = "playing";
panelmgr.moveClip();
break;
case "playing":
maintimeline.stage.focus = maintimeline;
scenemgr.mctowerupgradenote.setLimit(datamgr.curenergy);
gamestatus = panelmgr.panelstatus;
if (gamestatus == "endplayerrequest"){
maintimeline.addChild(resultmgr);
resultmgr.load();
resultmgr.y = -500;
waitcounter = 30;
};
if (gamestatus != "paused"){
if (((!(mctutorial.finished)) && (!(mctutorial.showing)))){
if (mctutorial.step == 0){
mctutorial.showTutorial(1);
} else {
if (mctutorial.step == 2){
mctutorial.showTutorial(2, 600);
} else {
if (mctutorial.step == 3){
mctutorial.showTutorial(3);
} else {
if (mctutorial.step == 6){
mctutorial.showTutorial(6, 600);
} else {
if (mctutorial.step == 7){
mctutorial.showTutorial(7, 600);
};
};
};
};
};
};
detectPanel();
scenemgr.moveClip(ctrlmgr.MOUSEPOS, ctrlmgr.MOUSEPRESS, panelmgr.gamespeed);
refreshGameData();
if (scenemgr.mouseattack){
mcgamepointer.gotoAndStop(2);
} else {
mcgamepointer.gotoAndStop(1);
};
if (Math.abs((panelmgr.progress - waveprogress)) >= 1){
waveprogress = panelmgr.progress;
waveindex = panelmgr.waveindex;
scenemgr.dispatchEnemyUnit(waveindex, waveprogress);
} else {
if (waveprogress >= 99){
if (waveindex >= (scenemgr.enemymgr.wavearray.length - 1)){
if (scenemgr.getTotalEnemyLast() > 0){
waveindex = scenemgr.enemymgr.wavearray.length;
scenemgr.dispatchEnemyUnit(waveindex, 0);
};
};
};
};
if (scenemgr.getTotalEnemyLast() == 0){
maintimeline.addChild(resultmgr);
resultmgr.load();
resultmgr.y = -500;
gamestatus = "endplayerwin";
waitcounter = 30;
};
if (scenemgr.mouseattacktime[scenemgr.mouseattackcolorindex] < 1){
if (scenemgr.mouseattackcolorindex > 0){
panelmgr.disableButton((9 + scenemgr.mouseattackcolorindex));
};
panelmgr.activateButton(9);
scenemgr.mouseattackcolorindex = 0;
};
_local2 = 0;
while (_local2 < scenemgr.mouseattacktime.length) {
panelmgr.setInkButtonLevel((9 + _local2), Math.floor(((scenemgr.mouseattacktime[_local2] / scenemgr.mouseattackmax[_local2]) * 10)));
if (Math.floor(((scenemgr.mouseattacktime[_local2] / scenemgr.mouseattackmax[_local2]) * 10)) == 10){
panelmgr.enableButton((9 + _local2));
};
_local2++;
};
};
panelmgr.moveClip();
break;
case "paused":
gamestatus = panelmgr.panelstatus;
detectPanel();
panelmgr.moveClip();
break;
case "endplayerwin":
if (!_local4){
_local4 = "You win!";
};
case "endplayerlost":
if (!_local4){
_local4 = "You lost!";
};
case "endplayerrequest":
waitcounter--;
if (waitcounter == 0){
if (!_local4){
_local4 = "You left the game!";
};
_local3 = "Result for level #";
if ((gamelevel + 1) < 10){
_local3 = (_local3 + ("0" + String((gamelevel + 1))));
} else {
_local3 = (_local3 + String((gamelevel + 1)));
};
_local3 = (_local3 + (("\n\nTotal " + String(scenemgr.udatamgr.defaultwavelevel[gamelevel].length)) + " waves"));
if (datamgr.curlive > 1){
_local3 = (_local3 + (("\n" + String(datamgr.curlive)) + " lifes remain"));
} else {
_local3 = (_local3 + (("\n" + String(datamgr.curlive)) + " life remain"));
};
_local3 = (_local3 + (("\n" + String(datamgr.getCurKill())) + " critters destroyed"));
_local3 = (_local3 + (("\n" + String(datamgr.getCurBuild())) + " towers built"));
_local3 = (_local3 + (("\nCollected " + String(datamgr.totalcurenergy)) + " cc of ink"));
if (gamestatus == "endplayerwin"){
_local3 = (_local3 + (("\n\nScored " + String(datamgr.getCurrentScore())) + " pt"));
_local3 = (_local3 + (("\nand Totally Scored " + String((datamgr.totalscore + datamgr.getCurrentScore()))) + " pt"));
} else {
_local3 = (_local3 + "\n\nScored 0 pt");
_local3 = (_local3 + (("\nand Totally Scored " + String(datamgr.totalscore)) + " pt"));
};
if (resultmgr.clipstatus == "idle"){
resultmgr.init(_local4, _local3);
};
if (gamestatus != "endplayerrequest"){
if (scenemgr.towerunit.length > 0){
_local3 = true;
_local2 = 0;
while (_local2 < scenemgr.towerunit.length) {
_local3 = ((_local3) && ((scenemgr.towerunit[_local2].towerlevel == 4)));
_local2++;
};
if (_local3){
datamgr.detectAchievement(false, 31);
};
};
if (panelmgr.mcwavecounter.speedupall){
datamgr.detectAchievement(false, 34);
};
if ((((gametype == "time")) && ((gamestatus == "endplayerwin")))){
switch (gamelevel){
case 0:
datamgr.detectAchievement(false, 20);
break;
case 1:
datamgr.detectAchievement(false, 21);
break;
case 2:
datamgr.detectAchievement(false, 22);
break;
case 3:
datamgr.detectAchievement(false, 23);
break;
};
};
datamgr.commitData();
};
waitcounter = 30;
tweenmgr.register(resultmgr, {live:30, ease:"easeoutback", x:0, y:0, alpha:1, rotation:0, scalex:1, scaley:1});
gamestatus = "waitingresult";
mcgamepointer.visible = false;
Mouse.show();
};
break;
case "waitingresult":
waitcounter--;
if (waitcounter <= 0){
if (resultmgr.clipstatus == "finished"){
tweenmgr.register(resultmgr, {live:30, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:exitGameManager});
tweenmgr.register(panelmgr, {live:30, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1});
tweenmgr.register(scenemgr, {live:30, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1});
resultmgr.clipstatus = "ready";
};
};
break;
};
ctrlmgr.moveClip();
}
private function startNewGame(){
var _local1:*;
sndmgr.stopBGM();
if (scenemgr){
scenemgr.destroy();
this.removeChild(scenemgr);
scenemgr = null;
};
scenemgr = new mc_stagescene();
scenemgr.sndmgr = sndmgr;
scenemgr.tweenmgr = tweenmgr;
scenemgr.y = 80;
scenemgr.init(gamemap, gametype, gamelevel);
panelmgr.init(gametype, scenemgr.getWaveString(), scenemgr.getWaveDescString(), scenemgr.getTowerDescString());
scenemgr.curenergy = 0;
scenemgr.curlivelost = 0;
scenemgr.curkill = [0, 0, 0, 0, 0, 0, 0, 0];
scenemgr.curbuild = [0, 0, 0, 0, 0];
scenemgr.cursell = [0, 0, 0, 0, 0];
datamgr.startNewGame(gametype, gamelevel, gamemap);
panelmgr.inktxt.text = ("cc " + String(datamgr.curenergy));
panelmgr.mclivecounter.gotoAndStop((datamgr.curlive + 1));
waveprogress = 0;
waveindex = 0;
waitcounter = 20;
gamestatus = "waiting";
panelmgr.buttontext[0] = "Create Normal Tower";
panelmgr.buttontext[1] = "Create Slow Tower";
panelmgr.buttontext[2] = "Create Misile Tower";
panelmgr.buttontext[3] = "Create Support Tower";
panelmgr.buttontext[4] = "Create Mine Tower";
_local1 = (maintimeline.numChildren - 1);
while (_local1 > -1) {
maintimeline.removeChild(maintimeline.getChildAt(_local1));
_local1--;
};
maintimeline.addChild(this);
maintimeline.setChildIndex(this, 0);
this.addChild(gamebg);
this.addChild(scenemgr);
this.addChild(panelmgr);
mctutorial = new mc_gametutorial();
scenemgr.mctutorial = mctutorial;
if (((((datamgr.tutorial[0]) && ((gamelevel == 0)))) && ((gametype == "wave")))){
mctutorial.finished = false;
this.addChild(mctutorial);
} else {
mctutorial.finished = true;
};
if (((((!((gamelevel == 0))) && ((gamelevel < 9)))) && ((gametype == "wave")))){
mctutorial = new mc_gamenewfeature();
if ((((gamelevel == 2)) && ((datamgr.towerstatus[1] == 2)))){
this.addChild(mctutorial);
mctutorial.show(2, 600);
};
if ((((gamelevel == 3)) && ((datamgr.towerstatus[2] == 2)))){
this.addChild(mctutorial);
mctutorial.show(3, 600);
};
if ((((gamelevel == 6)) && ((datamgr.towerstatus[3] == 2)))){
this.addChild(mctutorial);
mctutorial.show(4, 600);
};
if ((((gamelevel == 8)) && ((datamgr.towerstatus[4] == 2)))){
this.addChild(mctutorial);
mctutorial.show(5, 600);
};
if ((((gamelevel == 4)) && ((datamgr.colorstatus[1] == 2)))){
this.addChild(mctutorial);
mctutorial.show(6, 600);
};
if ((((gamelevel == 5)) && ((datamgr.colorstatus[2] == 2)))){
this.addChild(mctutorial);
mctutorial.show(7, 600);
};
if ((((gamelevel == 7)) && ((datamgr.colorstatus[3] == 2)))){
this.addChild(mctutorial);
mctutorial.show(8, 600);
};
};
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
panelmgr.y = -480;
scenemgr.y = -400;
mcgamepointer = new mc_gamepointer();
this.addChild(mcgamepointer);
Mouse.hide();
tweenmgr.register(panelmgr, {live:15, ease:"easeoutback", x:0, y:0, alpha:1, rotation:0, scalex:1, scaley:1});
tweenmgr.register(scenemgr, {live:15, ease:"easeoutback", x:0, y:80, alpha:1, rotation:0, scalex:1, scaley:1});
if (!datamgr.unlockalltower){
if (!datamgr.towerstatus[0]){
panelmgr.lockButton(0);
};
if (!datamgr.towerstatus[1]){
panelmgr.lockButton(1);
};
if (!datamgr.towerstatus[2]){
panelmgr.lockButton(2);
};
if (!datamgr.towerstatus[3]){
panelmgr.lockButton(3);
};
if (!datamgr.towerstatus[4]){
panelmgr.lockButton(4);
};
};
if (!datamgr.unlockallcolor){
if (!datamgr.colorstatus[0]){
panelmgr.lockButton(9);
};
if (!datamgr.colorstatus[1]){
panelmgr.lockButton(10);
};
if (!datamgr.colorstatus[2]){
panelmgr.lockButton(11);
};
if (!datamgr.colorstatus[3]){
panelmgr.lockButton(12);
};
};
if (gametype == "time"){
datamgr.detectAchievement(false, 25);
};
if (sndmgr.sfxvolume == 0){
panelmgr.activateButton(8);
} else {
panelmgr.deactivateButton(8);
};
}
}
}//package
Section 152
//JumpNoticeBase (JumpNoticeBase)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
public class JumpNoticeBase extends MovieClip {
private var rect:Rectangle;
private var dy:Number;
private var dx:Number;
private var ddy:Number;
public function start(_arg1, _arg2, _arg3, _arg4, _arg5=true){
dx = (_arg5) ? 6 : -6;
dy = -15;
ddy = 1;
_arg1.addChild(this);
this.x = _arg2;
this.y = _arg3;
rect = _arg4;
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
}
public function stopClip(){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
this.parent.removeChild(this);
}
public function moveClip(_arg1){
this.x = (this.x + dx);
this.y = (this.y + dy);
dy = (dy + ddy);
if (!rect.contains(this.x, this.y)){
stopClip();
};
}
}
}//package
Section 153
//KongregateDataManager (KongregateDataManager)
package {
import com.kongregate.as3.client.events.*;
import com.kongregate.as3.client.*;
public class KongregateDataManager {
private var maintimeline;
private var kongregate:KongregateAPI;
private var kongregateServiceLoaded:Boolean;// = false
public function KongregateDataManager(_arg1){
kongregateServiceLoaded = false;
super();
maintimeline = _arg1;
kongregate = new KongregateAPI();
maintimeline.addChild(kongregate);
kongregate.addEventListener(KongregateEvent.COMPLETE, serviceLoaded, false, 0, true);
}
private function serviceLoaded(_arg1:KongregateEvent):void{
kongregate.services.connect();
kongregateServiceLoaded = true;
}
public function submitStat(_arg1){
var _local2:*;
if (((kongregate) && (kongregateServiceLoaded))){
for (_local2 in _arg1) {
kongregate.stats.submit(_local2, _arg1[_local2]);
};
};
}
}
}//package
Section 154
//MapBrowserContainer (MapBrowserContainer)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.text.*;
public class MapBrowserContainer extends MovieClip {
public var bttestpath:MovieClip;
private var buttonrect:Array;
private var path:Array;
private var maptracer:PathTracerBase;
private var datamgr:GameDataManager;
public var map3:mc_singlemaploader;
public var mcmapscroller:mc_mapscroller;
public var map2:mc_singlemaploader;
private var pathcreator:MeshPath;
public var map1:mc_singlemaploader;
public var btloadpath:MovieClip;
public var mcloaderpreview:mc_singlemaploader;
public var bteditmap:MovieClip;
private var maploaderpreview:MapDrawerBase;
private var mapdefpos:Array;
public var mcselectleveldialog:MovieClip;
public var notes:TextField;
public var btcreatemap:MovieClip;
private var maploaderrect:Array;
private var initialized:Boolean;
public var mctracer:mc_tracer;
private var maintimeline:Object;
private var buttontoggle:Array;
private var browserstatus:String;
public var btplaymap:MovieClip;
private var button:Array;
private var mapmgr:MapDataManager;
public var mcnewcodedialog:MovieClip;
public var mcdeletedialog:MovieClip;
private var maptracerstatus:String;
private var buttontext:Array;
private var maploaderarray:Array;
public var btcopypath:MovieClip;
public var mcgetcodedialog:MovieClip;
private var maploaderpos:Array;
private var stoppt:Array;
public var bterasepath:MovieClip;
private var ctrlmgr:ControlManager;
public var btexiteditor:MovieClip;
private var tweenmgr:TweenManager;
private var startpt:Array;
private var mapselected:int;
private function activateButton(_arg1){
var _local2:*;
if (buttontoggle[_arg1]){
if (button[_arg1].currentLabel != "activate"){
button[_arg1].gotoAndPlay("activate");
_local2 = 0;
while (_local2 < button.length) {
if (_local2 != _arg1){
if (button[_local2].currentLabel == "activate"){
button[_local2].gotoAndPlay("deactivate");
};
};
_local2++;
};
};
} else {
button[_arg1].gotoAndPlay("blow");
};
}
private function goPlayGame(_arg1){
browserstatus = "browsing";
maintimeline.datamgr.startNewGame("time", mcselectleveldialog.selectedlevel, mapmgr.mapname.indexOf(maploaderpreview.mapname));
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("gamepage");
}
private function goEditor(_arg1){
browserstatus = "browsing";
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("editorpage");
}
private function loadMap(){
var _local1:int;
var _local2:MapDrawerBase;
maptracerstatus = "idle";
_local1 = 3;
while (_local1 < maploaderarray.length) {
this.removeChild(maploaderarray[_local1]);
_local1++;
};
maploaderarray = [map1, map2, map3];
_local1 = 0;
while ((((_local1 < 3)) && ((_local1 < mapmgr.mapname.length)))) {
if (_local1 == 0){
maploaderpreview.setMap(mapmgr.mapname[_local1], mapmgr.mapdata[_local1]);
mapselected = 0;
};
maploaderarray[_local1].setMap(mapmgr.mapname[_local1], mapmgr.mapdata[_local1]);
maploaderarray[_local1].x = mapdefpos[_local1][0];
maploaderarray[_local1].y = mapdefpos[_local1][1];
_local1++;
};
while (_local1 < 3) {
if (_local1 == 0){
maploaderpreview.setMap("", "");
mapselected = 0;
};
maploaderarray[_local1].setMap("", "");
maploaderarray[_local1].gotoAndStop(2);
maploaderarray[_local1].x = mapdefpos[_local1][0];
maploaderarray[_local1].y = mapdefpos[_local1][1];
_local1++;
};
while (_local1 < mapmgr.mapname.length) {
_local2 = new mc_singlemaploader();
_local2.setMap(mapmgr.mapname[_local1], mapmgr.mapdata[_local1]);
_local2.x = 740;
_local2.y = mapdefpos[0][1];
_local2.scaleX = 0.25;
_local2.scaleY = 0.25;
this.addChild(_local2);
maploaderarray.push(_local2);
_local1++;
};
_local1 = 0;
while (_local1 < maploaderarray.length) {
maploaderarray[_local1].buttonMode = true;
maploaderrect.push(new Rectangle(maploaderarray[_local1].x, maploaderarray[_local1].y, maploaderarray[_local1].width, maploaderarray[_local1].height));
_local1++;
};
mcmapscroller.init(maploaderarray, null, 1, 3);
this.setChildIndex(mcmapscroller, (this.numChildren - 1));
}
private function shrinkButton(_arg1){
if (button[_arg1].currentLabel != "activate"){
if (button[_arg1].currentLabel == "blow"){
button[_arg1].gotoAndPlay("shrink");
notes.text = "";
};
};
}
private function moveClip(_arg1){
if (browserstatus == "browsing"){
detectMap();
detectButton();
} else {
if (browserstatus == "deleting"){
if (mcdeletedialog.dialogstatus == "finished"){
browserstatus = "browsing";
if (mcdeletedialog.dialogres){
mapmgr.removeMap(mapmgr.mapname[mapselected]);
loadMap();
};
};
} else {
if (browserstatus == "newmapcode"){
if (mcnewcodedialog.dialogstatus == "finished"){
browserstatus = "browsing";
mapmgr.addMap(mcnewcodedialog.dialogname, mcnewcodedialog.dialogcode);
loadMap();
};
} else {
if (browserstatus == "getmapcode"){
if (mcgetcodedialog.dialogstatus == "finished"){
browserstatus = "browsing";
};
} else {
if (browserstatus == "getgamelevel"){
if (mcselectleveldialog.dialogstatus == "finished"){
if (mcselectleveldialog.selectedlevel > -1){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:0, y:-510, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:goPlayGame});
} else {
browserstatus = "browsing";
};
};
} else {
if (browserstatus == "backtomain"){
tweenmgr.register(this, {live:15, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:goMenuPage});
browserstatus = "waiting";
} else {
if (browserstatus == "goeditor"){
tweenmgr.register(this, {live:15, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:goEditor});
browserstatus = "waiting";
};
};
};
};
};
};
};
if (maptracerstatus == "playing"){
if (!maploaderpreview.contains(maptracer)){
maploaderpreview.addChild(maptracer);
};
maptracer.moveClip();
if (!maptracer.visible){
maptracerstatus = "idle";
};
} else {
if (maptracerstatus == "idle"){
if (maploaderpreview.contains(maptracer)){
maploaderpreview.removeChild(maptracer);
};
};
};
ctrlmgr.moveClip();
}
private function checkSelectedButton(_arg1){
switch (_arg1){
case 0:
browserstatus = "newmapcode";
mcnewcodedialog.activateDialog();
maintimeline.sndmgr.playSFX("guiselect");
break;
case 1:
if (maploaderpreview.encryptedmap != ""){
datamgr.editmap = maploaderpreview.encryptedmap;
datamgr.editname = maploaderpreview.mapname;
browserstatus = "goeditor";
};
maintimeline.sndmgr.playSFX("guiselect");
break;
case 2:
if (maploaderpreview.encryptedmap != ""){
maptracerstatus = "idle";
browserstatus = "getmapcode";
mcgetcodedialog.activateDialog(maploaderpreview.encryptedmap);
};
maintimeline.sndmgr.playSFX("guiselect");
break;
case 3:
browserstatus = "goeditor";
datamgr.editmap = "";
datamgr.editname = "none";
maintimeline.sndmgr.playSFX("guiselect");
break;
case 4:
if (maploaderpreview.pointarray.length > 0){
if (pathcreator.createMesh(maploaderpreview.pointarray)){
path = pathcreator.path;
maptracer.setPath(path);
maptracerstatus = "playing";
};
};
maintimeline.sndmgr.playSFX("guiselect");
break;
case 5:
if (mapselected < mapmgr.mapname.length){
browserstatus = "deleting";
mcdeletedialog.activateDialog();
};
break;
case 6:
if (maploaderpreview.mapname != ""){
browserstatus = "getgamelevel";
mcselectleveldialog.activateDialog();
};
maintimeline.sndmgr.playSFX("guiselect");
break;
case 7:
browserstatus = "backtomain";
maintimeline.sndmgr.playSFX("guiselect");
break;
};
}
public function init(){
var _local1:*;
if (!initialized){
initialized = true;
maintimeline = MovieClip(this.stage.getChildAt(0));
ctrlmgr = maintimeline.ctrlmgr;
datamgr = maintimeline.datamgr;
browserstatus = "browsing";
tweenmgr = maintimeline.tweenmgr;
mapmgr = maintimeline.mapmgr;
button = [btloadpath, bteditmap, btcopypath, btcreatemap, bttestpath, bterasepath, btplaymap, btexiteditor];
buttontoggle = [false, false, false, false, false, false, false, false];
buttontext = new Array("Load map code", "Edit current map", "Copy map to clipboard", "Create new map", "Test map", "Erase map", "Play 30 waves game using this map", "Exit map browser");
buttonrect = new Array();
_local1 = 0;
while (_local1 < button.length) {
buttonrect.push(new Rectangle((button[_local1].x - (button[_local1].width / 2)), (button[_local1].y - (button[_local1].height / 2)), button[_local1].width, button[_local1].height));
_local1++;
};
mapdefpos = new Array([map1.x, map1.y], [map2.x, map2.y], [map3.x, map3.y]);
maploaderpreview = mcloaderpreview;
maploaderpos = [[map1.x, map1.y], [map2.x, map2.y], [map3.x, map3.y]];
maploaderarray = [map1, map2, map3];
maploaderrect = new Array();
this.setChildIndex(mcmapscroller, (this.numChildren - 1));
maptracer = mctracer;
maptracer.init(null, 0);
this.removeChild(maptracer);
maptracerstatus = "idle";
startpt = [maploaderpreview.mcstart.x, maploaderpreview.mcstart.y];
stoppt = [maploaderpreview.mcstop.x, maploaderpreview.mcstop.y];
pathcreator = new MeshPath(startpt, stoppt);
};
loadMap();
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
this.y = -490;
tweenmgr.register(this, {live:15, ease:"easeoutback", x:0, y:0, alpha:1, rotation:0, scalex:1, scaley:1});
}
private function getAngle(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:*;
var _local6:*;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (((Math.atan2(_local6, _local5) / Math.PI) * 180));
}
private function getDistance(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:*;
var _local6:*;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
private function blowButton(_arg1){
if (button[_arg1].currentLabel != "activate"){
if (button[_arg1].currentLabel != "blow"){
button[_arg1].gotoAndPlay("blow");
notes.text = buttontext[_arg1];
};
};
}
private function goMenuPage(_arg1){
browserstatus = "browsing";
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("menupage");
}
private function detectButton(){
var _local1:*;
if (ctrlmgr.MOUSEPRESS == 2){
_local1 = 0;
while (_local1 < buttonrect.length) {
if (buttonrect[_local1].containsPoint(ctrlmgr.MOUSEPOS)){
checkSelectedButton(_local1);
activateButton(_local1);
};
_local1++;
};
} else {
if (ctrlmgr.MOUSEPRESS == 0){
_local1 = 0;
while (_local1 < buttonrect.length) {
if (buttonrect[_local1].containsPoint(ctrlmgr.MOUSEPOS)){
blowButton(_local1);
} else {
shrinkButton(_local1);
};
_local1++;
};
};
};
}
private function detectMap(){
var _local1:*;
if (ctrlmgr.MOUSEPRESS == 2){
_local1 = 0;
while (_local1 < maploaderrect.length) {
if (((((maploaderrect[_local1].containsPoint(ctrlmgr.MOUSEPOS)) && ((_local1 < mapmgr.mapname.length)))) && (!((maploaderpreview.maplabel.text == mapmgr.mapname[_local1]))))){
maploaderpreview.clearMap();
maploaderpreview.setMap(mapmgr.mapname[_local1], mapmgr.mapdata[_local1]);
mapselected = _local1;
};
_local1++;
};
};
mcmapscroller.moveClip();
_local1 = 0;
while (_local1 < maploaderarray.length) {
maploaderrect[_local1].x = maploaderarray[_local1].x;
maploaderrect[_local1].y = maploaderarray[_local1].y;
maploaderrect[_local1].width = maploaderarray[_local1].width;
maploaderrect[_local1].height = maploaderarray[_local1].height;
_local1++;
};
}
}
}//package
Section 155
//MapDataManager (MapDataManager)
package {
import flash.net.*;
public class MapDataManager {
private var tracing:Boolean;// = false
public var mapdata:Array;
private var savename:String;
private var savepath:String;
public var defmapname:Array;
public var mapname:Array;
public var defmapdata:Array;
public function MapDataManager(){
tracing = false;
super();
if (tracing){
trace("MapDataManager:$init: Initiating map manager");
};
savename = "x_paperdefensemapdata_x";
savepath = "";
mapname = new Array();
mapdata = new Array();
defmapname = ["defaultmap_01", "defaultmap_02", "defaultmap_03", "defaultmap_04", "defaultmap_05", "defaultmap_06", "defaultmap_07", "defaultmap_08", "defaultmap_09", "defaultmap_10", "defaultmap_11", "defaultmap_12", "defaultmap_13", "defaultmap_14", "defaultmap_15", "defaultmap_16", "defaultmap_17", "defaultmap_18", "defaultmap_19", "defaultmap_20"];
defmapdata = ["mEUmiDXnbDUndCWnjCTnlBYocBWofBTokBSpbBRpeBRpkBTqaBVqeBXqhCTqmCVrcCXrgDRrkDUrmDVscDYseERshETskEWsmFQtaGRtaGTskGUsgGTscGSrmGQrjFWreFRqmEWqfEUqcEQplDWpeDWokDYohEWoaFQnkFSnhFVnfFYndGSncGWncHQndHTnfHWnjHXoaHYodHYoiHVolHTpbGSpbFYpdFXpgFWpjFWqbFYqeGRqhGUqjGXqmHRraHUrdHVrgHWrjHYrmHYskHWtaHUtdHRtfGXthGUtjGRtkFXtlEVtlEQtiDWtfDTtcDQtaCXskCTsgCQsfBWseBQseAWshAWskAVtaAVtdAWtgAYtjBRtmBTucBVufBYuhCSuiCVulCYvaDSvcDVveDWvhDWvkDVwaDQwfCUwhCRwiBXwkBUxaBVxdCQxhCTxiCYxiDSxgDVxeEQxaESwkEVwfEXwcFQvmFWveFYvbGSulGWukHQulHTvbHUveHUvlHTwbHSwfHQwjGXwmGUxbGRxdEXxdEVxgEUxjl", "mEUmiETmlERnbDYngDYolEQpbESpeEVpjEXpmEXqfEVqiESqlDYqmDVrbDSreCWsbCWsgCYsjDTteDWtgEQthEXthFStgFWtdFXtaFXskFUshFRsgEXsgEUseESsaEUriEXrfFRreFWrfGRrhGUrkGWsbGWslGVtbGVteGRtkFWuaEYudEQudDVucDRuaCXtmCSthBXtaBXskBUsaBUrhBYqjCSqfCWqdDSqaETqaFTqeFWqgGRqkGUqmGYrcHTrmHUseHUshHTskHTtbHQtkGVudFXukFQvbESvdDYvdCWumCTukCQujBVufBTubBQtlAWtfAVtaAVskAUsfAUrfAWqkAXqgBRqaBWphCUpeCXpeDRpdDUpdDYpcEXpcFXpgHSqfHVqiHXqlIQrbISrgISrmITsdITslIStbIRtfIQtkHXubHUufHRukGUvdGQvgFUviFQvlETweETwhESwkESxcETxfEUxjl", "mEUmiEYnfFSnjFVnmGRoeGUogGXohHSohHVofHXnmHXngHVndHQndGWngGTnjGQobFVofFUoiFRpaEYpdEXpgEXqbFRqdFUqfFYqgGYqlHTrcHTriHQrlGWrmFSrmEUriERrgDXrdDVraDUqkDTqgDSqcDSplCYpfCVpdCQpfBVpkBSqcBQqfAYqiAYqlAXrdAXtdAYtiBUuiCSvdCVveCYvdDTvbDVulDVuiDWueDWuaDYtiEQtfEStcEVtaEYskFSsjFVsjGQsiGVskGXtaGYtdGXtgGWtjGQucFWueFSuiEYukEWvaEVvdEVviEWvlFQwaFUweFXwgGTwiGXwiHUwiHWwfHXwbHWvlHVviHSvgGUvjGRwaFXwdFUwfFTwiFQwkEXxaEWxdEUxjl", "mEUmiETmmETolCYolCYocDQnmDQnjDRnfDRmlBSmlBSndBTnhBTnkBUocBUofBVojBVpaBWpdBWplCRplDTpiDXpiERphGRphFYpcFYomFXoiFXnjFWngFWnaGRnaGVnbIQnbIQpaIRpdIRqhHVqhHRqgBQqgBQrkIRrkIRsjHXsiEXsiEXtgIRtgIRtmIQucIQumGVumGRulDYulDYtfEQtbEQslDVslDRskCXsjBXsjBXvkAVvkAWwbAXwgAXwmDTwmDTvkHYvkHYwmHVwmHSwlGYwlGSwjERwjERxgEUxjl", "mEUmiETmmESncESngDYnjDSnmCXoaCTocBXoeBUogBRoiBQolBSpdBUpgBXpiCQplCTqaDVqfEVqhGTqhGXqfHRqcHSplHSpiGYpfGQpdFVpdDYphDRpkCVqaBYqfBVqkBTraBSrdBVriCRsbCUsdDUsjEQslGQslGXsiHQsfGXsaGTrlFXrjFRrjDVsbCTsiCQslBWtaBVtdBUtgBWtlCSudCWufDSuiESulFQulFTumGQumGUulGYuiHQueGXubGUtmGQtlFWtlERucDWueCYugCUuiCRulBXvaBTveBSvhBSvlBVwbCVwgDQwhDVwkERwmEUxbEVxeEUxjl", "mEUmiDWndBXpaBUphBSpkBSqdBUqhBWrbBYreCRrlCTsbCVsgDRtaDStdDWtiDYtlESuaEWucFRudFUucFWtkFWtfFTshFRsdEQrdDXqlDUqgDTqdDTpiDWphERpiEVpkFSqcFWqfGSqiGVqkHRrcHSrfHRriGYrmFXslFRtcEUtiERtkDVubDRueCTuiCQuhBWueBVtmBUthBUteCRsgCUsdCYrkDTrgDWrbEUqgEXqcFSpmFYpjGSpiGVphHRphHUpiHXplIUqlIUrbIVreIVrmIUscITshHYteHVtjHSubGUukGRvbGQveFRwaEXwgEVwjETxaETxgEUxjl", "mEUmiDSnjCYnlCSofBYojBUpaBSpdBQpgAXpjAYqaBWqhCYrdDUrgEQrlEVsbFUsjFXslGRtaGUtdGYtiHRtlHTubHWudIQueITueIUubIUtgITtdITqaISpkISoaIRnkHYnhHUnhESqdDYqfCSrhCQrkBVsbBTseBSshBQskAXtaAVtdAWthAYtlBTucDRvaDWveESvhEVvjFSwbFVwdFYwgGSwiGVwkGYwmHSwmHSwdHRvlHRtkHQtfHRrcHQqmGYqiGVqhGSqjGQrcFQshDUubCWujCUvaBWvhBTvmBRwcBRwgBVwkBYwlCUxcCXxdDTxfDWxgEUxjl", "mEUmiFQnaFSndFTngFTnjFQnlEUnlEQnkDWnjCVnjCRoaCRodCTogCWoiDQojEYojFSoiGUoiGWolGYpbGYpeGVphGRpiFWpjCWpjCTpkBVpkBSplAYqaAXqdAXqgBQqjBUqkBYqlEXqlFRqmHQqmHUrbIQrhHYrkHVsaHSsbGUsbGQscEWscESsdDVsdDSseBUseAYsgAVshAVsmAXtcBQtfBTthBWtjGUtjGXtlHRtmHRudGUujGRukFWulFTumDVumDSvaCYvbCVvcCSveCQvhBYvkBYwaCSwcCWwfDRwgEXwgFRwhFUwiFXwkFWxaFUxdFRxfEXxgEUxjl", "mEUmiETmlETobEWobFRnmFVnmGQnlHSnlHUobHUpbGSpbFYpaBQpaAYpeAYpmBQqcBQsaBTsaBVrkBYrjCWrcDQraDSqkDVqhDYqgEQqjEQrkERsaFUsaFTrkFTrhFSreFSqfFVqeHSqeHTqhHTrgHSrjHSueGWueGTudFVudFTtjFTtaFQsmBSsmBRtcBRukBSvaBVvbEWvbFRvaHTvaHTwiHQwhGWwhGSwgEUwgETwjEUwmEUxjl", "mEUmiERmjDXmlCSnlCQobBYoeBWohBTpcBTqcBUqfBWqiBXqlCWrfDXrlERrmEYsdFSsdFVseFYseGSsdGVsaGYrlHSrhHVrbHWqkHWpkHUpdHSolGXohFYodFUodFRoeETogDVokDRpbDQpeDQpkDTqdDWqhEQqkFRrcFVrdFYrdGSreGVrbHQqgHQqcGXpkGSphFXpiFSplEYqdETqlDWscDWsfDVsiDVtfDWtjERueEUujEYvaFSvbGSvbGTulGTugGQuaFStjETtjDXtlDUucDSufDRuiDSumDVvfDYvjESvmEWwcFRweFWweGQwfGUweGXwdHRwcHUvmIQvcIRulISuhIRudHXtjHTtgHQtdGTtaFYtaFVsmFSsmEXslEUslDRtbCQthBUtlBTubBQujAYvaAYveBRvjBRvmBUwdBXwhCRwjCUwmCYxbDSxdDVxfDYxhEUxjl", "mEUmiETmmETnfEUnkEVobEXogFRoiFUokFXomGRpaHRpjHTpmHVqcHXqfHYqiHYrbHVrdHRrcGXraGUqlGSqiFYqfFTqaFQpkEVpgESpdDYpcDVomCYojCRojBXolBUpcBTpfBSpkBSqeBTqhBTqmBVrdBYrfCTrjCXrkDSrlERrlEUrjEYreEXraEUqjERqhDXqhDTrbDRrgDRtdDStgDWtiEQtjETtiEVteEVtaEUskERsiDVsfDRseCVsfBYskBVtaBStgBRtkBRufBSujBTumBVvcCRvfDSvfEUumFSueFVuaGQtiGVtdHRtdHVthHWtlHWuiHRvfGWvjGSvlFYwaFTwfEYwjEWxaEVxdEUxgEUxjl", "mEUmiEVmlEVngETnlEQnmDSodCWofCTojCQomBWpfBVpjBUpmDRpbEUolFRolGQpbGTpdGXpgHRpkHUqbHWqeHRqdGWqcFYqcEUqgERqiDXqjDSqmCVreCSrgBYrjBWsbCRsaCUsaDQrmDXrmERsaFSsdGUsjHTteHXtjHTtiGWthGRtfFQtfDXtjDQucCWufCUuiCSulCQvbBXveBWvhCQvfCVvdDQvcDTvcDYvbFUvbGSvdGXvgHRviHUvlHVwbHWweHWwhGWwdGTwcFTwcFQweEWwhEVwkEUxaEUxjl", "mEUmiEXmmEXndEYnhEVnmERodDXofDUogDQogCSojBWomBQpfAXpiAXqaBRqcBYqcCTqbETpdEWpaFTojFXogGUodGXobHRoaHXoaHXpaHVpdHRpiGXplGUqaEQrdDWreDTrgCTrmCQscBWsfBTskBRtaBQtdBQtgBUtiCStiESslEVsiEYsgFUsaFYrjGSreGWraGYqkHSqjHVqiHXqmHXreHYriHYteHVtfHQtdGVsmFVsfFTscFQsaEUriEQrfDUrcDRraCWqlCTqjCQqiBUqiBRqkBQraBQrhBVsaCRsfCVsiDStaDWtdEQtfEVtjEYtlFStmFVucGRufGXukHRumHUveHVviHWvlHTwbHQwbGVwcGRwcFVwbFSvmESviDYvfCSukBXujBUuiBSulBQvbBQvfBTviBWvkCQvmCTwcDQwfDTwiDWwkEQwmETxdEUxgEUxjl", "mEUmiGUniHVoiHXolHYpcHVpfHTpiEUrcDYrfDVrhDSriCXrkCUsaCRsbBWrmBVrjBVrcBXqkDTpaDUojDUobDSniCYnfCUndCRndBVnkBVoaBUodBUokBWpdCWqeDQqlDTrdDXsaDXtaDWteCYufCTulBYvdBVvkBVwaBUweBWwiCQwlCTwmCYwmDSwjDVwbDVvhDSuiCYudCUuaCRtlBWthBWtaCQslCUslDQtaDVtdEQtgEUtjEXtlGQueHQujHUvaHVvdHUvgHRwbFUxbFQxeEWxgEUxjl", "mEUmiFUnkFVobFXoeGQojGRpbGSpfGSplGQqdFVqjCYsiCUtbBYthBSuhBRumBRvfBUvhBYvhCWveDTvaERufEUtmEXtiGRreGTrbGUqlGXqhHRqfHUqgHVqkHVrkHWsaHWtcHVtgHUtkHSuaGYuaGVtlGTtiFTrhFRreEYqkEWqhEVqdEQphDTpcDQpbCRpbBXpcBUpfBTpjBSpmBSqdBWqmEYtlFQubFSueFVumFVvcFWvfFWwaFVweFUwhFRwlFQxbEXxeEUxjl", "mEUmiESmmESnfETniEUnlFTnlFWnkGQniGTngGWneHQndHTneHWnjHWpaHVpeHUpiGUqaFYqaFQpkEUphDXpcDSomCYojCUoiCRohBVojBQpfAYpjBRqdBSqhBWqlCQraCXrgDTriGSsjGVsmHRtdHTtgHUtjHUtmHRuaGXubGUuaGRtkFXthFVtcFTsmFSsjFSsdFRrlFUrdFWraGQqkGUqiGYqjHSqlHTrcHTrfGRsbDWslDSsmCYtbCRteBXthBTtlBQudAYugAXukAXvbAYveBQviBSvmBVwbCQwcCYwcDYvmESvkFUvhGRvhHQvlHUwcHVwfHVwjHTwmHQxbGVxbGRxaFWwmFTwlFQwmEWxaEUxdEUxjl", "mEUmiEXnaEXndEYngEXnjEUnkERnkDVniDSngCXndCUncBYneBUnhBTnlBSocBSohBWolCRomDRomDUolEQokEUohEYoeFVnkGRneGXnbHUnbHXnfIQnjIRobIRofISoiISpaIRpdIRpgHXqaHUqcGXqcGTqaGQqaEVpiESpiDUpgDRpgCXpfBYpfBVpiBRqcBRqfBQqiBQrcBRrgBTrjCQrmCVrmCYsaDSsaDVrmDYrmFSrhGTrcGWraHSraHWreHWsgHVsjHVsmHStgGWtiGTthFXtgFUteFRtdDWsiDTshCYsgCUshBWtaBTthBStlBSugBUukCQvbCWveDTveFWujGRuiGUuhGYuhHSujHVumHWvdHXvhHXwaHWweHTwhGYwgGVwgGRweFXweFQwcEWwcDYwaDVwaCYvlCTvlBYvkBUvlBRwaAYwdAXwgAYwjBQwmBSxcBWxdCTxdCWxcDRxbDUxaDXwmERwlEVwlEWxbEWxgEUxjl", "mEUmiEVrfEWrkEWseEVshEUskETtaEQtfDWtgDTthDQtgCUteCStaCTskCVshCXseDQsbDQrlCXrhCSrbCQqkCQqgCUqcDQqcDUqfESqjEYrbFSrdFVrfFYrhGRrkGTsaGUsdGUsgGSskFYtcFVteEWtkDWucDTudBYudBVubBStmBRtjBRsiBTseBVrmBWriBWrfBVrcBUqmAXqfAWqcAWplAXpiBQpfBTpdBWpbCQpaCTomDWpeEWpkFWqfGRqiGWraHQrdHTriHWsaIRsiIRtdHYthGXueGUugFXulFRvbEXveEUvgESvjERwaERwmESxcEUxjl", "mEUmiEUrdETrhEQrmDVsaDRrmCVrjCSrcCSqmCWqdDTqaDYplEUpmEXqaFSqbFYqhGSqmGTrcGTrmGRsgFUsmFRtbEVteDTteCYtdCUtbCQsmBUshBQsaAYrkAYqmBQqiBQqfBRqcBWpgCSpdCXpaDRolDVokFSokFVolGRpbGVpeHSqcHTqgHTqlHUrbHUsiHStbHSteGYtkGTudGQugFWuiFSukETukEQujDVuiDSuiCYuhCVuhCSuiBYujBVvaBSvcBRvfBQvjBSvmBTwcBYwhCSwiCVwjDQwkERwkFRwlFUwmFXwmGWwkHRwiHUwdHTwaHRvkGXvhGTvgFWvgFSviEYvlEWwcEVwgEVxgEUxjl", "mEUmiEVmlEVndEWnhEWodEUpbESpgEQpjDWpmDQqbCQqbBUpjBSpgBSomBUogCSocCVodDUojFVqgGQqiGVqiHVqeHYqaHYpkIQphHXpbHVolHRoiGWohGToiFUpeCYsmCVtbCStdBYtcBVsmBUsiBTseBTrkBVrfBYrcCTrbDSreDVrgDXrjERrmGQtiGUtkGXtlHStkHVtiHXtfHXslHVsfHSsaGUrkGRrkFVsaFSsdCYvgCUvlCQvlBWvjBUveBUvbBTukBWueCQuaCTtlCXtkDStlERueFYvjGSvmGWwbHSwbHWvkHXvhHWvcHUulHRujGUujFXulFTvcFQvhEVwdEUwgETwkETxfEUxjl"];
loadData();
if (tracing){
trace("MapDataManager:$init: Containing", mapname.length, " map[s]");
};
}
private function loadData(){
var _local1:*;
if (tracing){
trace("MapDataManager:loadData: :Loading maps");
};
_local1 = SharedObject.getLocal(savename);
if (_local1.size == 0){
saveData();
};
mapname = _local1.data.mapname;
mapdata = _local1.data.mapdata;
}
public function removeMap(_arg1){
var _local2:int;
if (tracing){
trace("MapDataManager:removeMap: Removing map", _arg1);
};
_local2 = 0;
while (((!((mapname[_local2] == _arg1))) && ((_local2 < mapname.length)))) {
_local2++;
};
if (_local2 < mapname.length){
mapname.splice(_local2, 1);
mapdata.splice(_local2, 1);
};
saveData();
}
public function addMap(_arg1, _arg2){
if (tracing){
trace("MapDataManager:addMap: Adding map", _arg1);
};
if (((!((_arg1 == ""))) && (!((_arg2 == ""))))){
if (mapname.indexOf(_arg1) != -1){
mapdata[mapname.indexOf(_arg1)] = _arg2;
} else {
mapname.push(_arg1);
mapdata.push(_arg2);
};
saveData();
};
}
private function saveData(){
var _local1:*;
if (tracing){
trace("MapDataManager:saveData: Saving maps");
};
_local1 = SharedObject.getLocal(savename);
_local1.data.mapname = mapname;
_local1.data.mapdata = mapdata;
_local1.flush();
}
}
}//package
Section 156
//MapDrawerBase (MapDrawerBase)
package {
import flash.display.*;
import flash.text.*;
public class MapDrawerBase extends MovieClip {
public var cryptostatus:String;
public var maplabel:TextField;
private var tmppointarray:Array;
private var snapdist:Number;// = 4
public var mcstop:MovieClip;
public var mcstart:MovieClip;
private var lastpoint:Array;
public var encryptedmap:String;
public var pointarray:Array;
public var mapname:String;
public function MapDrawerBase(){
snapdist = 4;
super();
pointarray = new Array();
encryptedmap = "";
}
private function isOnPos(_arg1, _arg2):Boolean{
return ((((_arg1[0] == _arg2[0])) && ((_arg1[1] == _arg2[1]))));
}
private function decryptPoint(_arg1:String):Array{
var _local2:Array;
var _local3:Array;
_local2 = [0, 0, 0, 0];
_local3 = [0, 0];
switch (_arg1.charAt(0)){
case "A":
_local2[0] = 0;
break;
case "B":
_local2[0] = 1;
break;
case "C":
_local2[0] = 2;
break;
case "D":
_local2[0] = 3;
break;
case "E":
_local2[0] = 4;
break;
case "F":
_local2[0] = 5;
break;
case "G":
_local2[0] = 6;
break;
case "H":
_local2[0] = 7;
break;
case "I":
_local2[0] = 8;
break;
default:
return (null);
};
switch (_arg1.charAt(1)){
case "Q":
_local2[1] = 0;
break;
case "R":
_local2[1] = 1;
break;
case "S":
_local2[1] = 2;
break;
case "T":
_local2[1] = 3;
break;
case "U":
_local2[1] = 4;
break;
case "V":
_local2[1] = 5;
break;
case "W":
_local2[1] = 6;
break;
case "X":
_local2[1] = 7;
break;
case "Y":
_local2[1] = 8;
break;
default:
return (null);
};
switch (_arg1.charAt(2)){
case "m":
_local2[2] = 0;
break;
case "n":
_local2[2] = 1;
break;
case "o":
_local2[2] = 2;
break;
case "p":
_local2[2] = 3;
break;
case "q":
_local2[2] = 4;
break;
case "r":
_local2[2] = 5;
break;
case "s":
_local2[2] = 6;
break;
case "t":
_local2[2] = 7;
break;
case "u":
_local2[2] = 8;
break;
case "v":
_local2[2] = 9;
break;
case "w":
_local2[2] = 10;
break;
case "x":
_local2[2] = 11;
break;
case "y":
_local2[2] = 12;
break;
default:
return (null);
};
switch (_arg1.charAt(3)){
case "a":
_local2[3] = 0;
break;
case "b":
_local2[3] = 1;
break;
case "c":
_local2[3] = 2;
break;
case "d":
_local2[3] = 3;
break;
case "e":
_local2[3] = 4;
break;
case "f":
_local2[3] = 5;
break;
case "g":
_local2[3] = 6;
break;
case "h":
_local2[3] = 7;
break;
case "i":
_local2[3] = 8;
break;
case "j":
_local2[3] = 9;
break;
case "k":
_local2[3] = 10;
break;
case "l":
_local2[3] = 11;
break;
case "m":
_local2[3] = 12;
break;
default:
return (null);
};
_local3[1] = (((_local2[0] * 9) + _local2[1]) * 4);
_local3[0] = (((_local2[2] * 13) + _local2[3]) * 4);
return (_local3);
}
public function stopLine(){
}
private function encryptPoint(_arg1, _arg2):String{
var _local3:String;
var _local4:*;
var _local5:int;
var _local6:Array;
_local3 = "";
_local4 = Math.floor((_arg1 / 4));
_local5 = Math.floor((_arg2 / 4));
_local6 = [Math.floor(((_arg2 / 4) / 9)), Math.floor(((_arg2 / 4) % 9)), Math.floor(((_arg1 / 4) / 13)), Math.floor(((_arg1 / 4) % 13))];
switch (_local6[0]){
case 0:
_local3 = (_local3 + "A");
break;
case 1:
_local3 = (_local3 + "B");
break;
case 2:
_local3 = (_local3 + "C");
break;
case 3:
_local3 = (_local3 + "D");
break;
case 4:
_local3 = (_local3 + "E");
break;
case 5:
_local3 = (_local3 + "F");
break;
case 6:
_local3 = (_local3 + "G");
break;
case 7:
_local3 = (_local3 + "H");
break;
case 8:
_local3 = (_local3 + "I");
break;
default:
_local3 = (_local3 + "?");
break;
};
switch (_local6[1]){
case 0:
_local3 = (_local3 + "Q");
break;
case 1:
_local3 = (_local3 + "R");
break;
case 2:
_local3 = (_local3 + "S");
break;
case 3:
_local3 = (_local3 + "T");
break;
case 4:
_local3 = (_local3 + "U");
break;
case 5:
_local3 = (_local3 + "V");
break;
case 6:
_local3 = (_local3 + "W");
break;
case 7:
_local3 = (_local3 + "X");
break;
case 8:
_local3 = (_local3 + "Y");
break;
default:
_local3 = (_local3 + "?");
break;
};
switch (_local6[2]){
case 0:
_local3 = (_local3 + "m");
break;
case 1:
_local3 = (_local3 + "n");
break;
case 2:
_local3 = (_local3 + "o");
break;
case 3:
_local3 = (_local3 + "p");
break;
case 4:
_local3 = (_local3 + "q");
break;
case 5:
_local3 = (_local3 + "r");
break;
case 6:
_local3 = (_local3 + "s");
break;
case 7:
_local3 = (_local3 + "t");
break;
case 8:
_local3 = (_local3 + "u");
break;
case 9:
_local3 = (_local3 + "v");
break;
case 10:
_local3 = (_local3 + "w");
break;
case 11:
_local3 = (_local3 + "x");
break;
case 12:
_local3 = (_local3 + "y");
break;
default:
_local3 = (_local3 + "?");
break;
};
switch (_local6[3]){
case 0:
_local3 = (_local3 + "a");
break;
case 1:
_local3 = (_local3 + "b");
break;
case 2:
_local3 = (_local3 + "c");
break;
case 3:
_local3 = (_local3 + "d");
break;
case 4:
_local3 = (_local3 + "e");
break;
case 5:
_local3 = (_local3 + "f");
break;
case 6:
_local3 = (_local3 + "g");
break;
case 7:
_local3 = (_local3 + "h");
break;
case 8:
_local3 = (_local3 + "i");
break;
case 9:
_local3 = (_local3 + "j");
break;
case 10:
_local3 = (_local3 + "k");
break;
case 11:
_local3 = (_local3 + "l");
break;
case 12:
_local3 = (_local3 + "m");
break;
default:
_local3 = (_local3 + "?");
break;
};
return (_local3);
}
private function isNodeConnected(_arg1, _arg2):Boolean{
return ((((_arg1[2] == _arg2[0])) && ((_arg1[3] == _arg2[1]))));
}
private function getAngle(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (((Math.atan2(_local6, _local5) / Math.PI) * 180));
}
public function continueLine(_arg1, _arg2){
var _local3:Array;
var _local4:*;
var _local5:*;
var _local6:*;
if (lastpoint){
_local3 = snapPoint(_arg1, _arg2, "continue");
if (((!((_local3[0] == lastpoint[0]))) || (!((_local3[1] == lastpoint[1]))))){
_local4 = (pointarray.length - 1);
_local5 = [lastpoint[0], lastpoint[1], _local3[0], _local3[1]];
if (_local4 > -1){
_local6 = joinNode(pointarray[_local4], _local5);
};
if (((_local6) && ((Math.abs((getNodeAngle(pointarray[_local4]) - getNodeAngle(_local5))) < 10)))){
pointarray[_local4] = _local6;
} else {
pointarray.push(_local5);
};
lastpoint = _local3;
drawLine();
};
} else {
startLine(_arg1, _arg2);
};
}
private function joinNode(_arg1, _arg2):Array{
var _local3:*;
if (isOnPos([_arg1[0], _arg1[1]], [_arg2[0], _arg2[1]])){
_local3 = [_arg2[2], _arg2[3], _arg1[2], _arg1[3]];
} else {
if (isOnPos([_arg1[0], _arg1[1]], [_arg2[2], _arg2[3]])){
_local3 = [_arg2[0], _arg2[1], _arg1[2], _arg1[3]];
} else {
if (isOnPos([_arg1[2], _arg1[3]], [_arg2[0], _arg2[1]])){
_local3 = [_arg1[0], _arg1[1], _arg2[2], _arg2[3]];
} else {
if (isOnPos([_arg1[2], _arg1[3]], [_arg2[2], _arg2[3]])){
_local3 = [_arg1[0], _arg1[1], _arg2[0], _arg2[1]];
};
};
};
};
return (_local3);
}
private function drawLine(){
var _local1:*;
this.graphics.clear();
this.graphics.lineStyle(3, 10524310, 1);
_local1 = (pointarray.length - 2);
while (_local1 > -1) {
if (getNodeDistance(pointarray[_local1]) < (snapdist * 3)){
if (pointarray[(_local1 + 1)][1] == pointarray[_local1][3]){
pointarray[(_local1 + 1)][0] = pointarray[_local1][0];
pointarray[(_local1 + 1)][1] = pointarray[_local1][1];
pointarray.splice(_local1, 1);
};
};
_local1--;
};
_local1 = 0;
while (_local1 < pointarray.length) {
if (_local1 == 0){
this.graphics.moveTo(pointarray[_local1][0], pointarray[_local1][1]);
} else {
if (((!((pointarray[_local1][0] == pointarray[(_local1 - 1)][2]))) && (!((pointarray[_local1][1] == pointarray[(_local1 - 1)][3]))))){
this.graphics.moveTo(pointarray[_local1][0], pointarray[_local1][1]);
} else {
this.graphics.lineTo(pointarray[_local1][2], pointarray[_local1][3]);
};
};
_local1++;
};
}
private function getDistance(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
public function startLine(_arg1, _arg2){
var _local3:Array;
if (!pointarray){
pointarray = new Array();
} else {
if (pointarray.length > 0){
_local3 = snapPoint(_arg1, _arg2, "start");
};
};
_local3 = snapPoint(_arg1, _arg2, "start");
lastpoint = [_local3[0], _local3[1]];
}
public function setMap(_arg1, _arg2){
mapname = _arg1;
decryptMap(_arg2);
if (maplabel){
maplabel.text = mapname;
};
}
private function compressMap(_arg1):String{
var _local2:*;
_local2 = _arg1.substr(0, 2);
return (_arg1);
}
public function decryptMap(_arg1:String):Boolean{
var _local2:int;
var _local3:Array;
var _local4:Array;
encryptedmap = _arg1;
_local2 = 0;
pointarray = new Array();
while (_local2 < _arg1.length) {
if (_local2 == 0){
if (((!((_arg1.charAt(0) == "m"))) || (!((_arg1.charAt((_arg1.length - 1)) == "l"))))){
cryptostatus = "invalid map code";
return (false);
};
_local2++;
} else {
if (_local2 < (_arg1.length - 4)){
if (_local3){
_local4 = decryptPoint(_arg1.substr(_local2, 4));
if (!_local4){
cryptostatus = "invalid map sequence";
return (false);
};
pointarray.push([_local3[0], _local3[1], _local4[0], _local4[1]]);
_local2 = (_local2 + 4);
if (_arg1.charAt(_local2) == "l"){
_local3 = null;
_local2++;
} else {
_local3 = _local4;
};
} else {
_local3 = decryptPoint(_arg1.substr(_local2, 4));
if (!_local3){
cryptostatus = "invalid map sequence";
return (false);
};
_local2 = (_local2 + 4);
if (_arg1.charAt(_local2) == "l"){
cryptostatus = "invalid map sequence";
return (false);
};
};
} else {
cryptostatus = "unfinished map sequence";
return (false);
};
};
};
drawLine();
return (true);
}
private function getNodeDistance(_arg1:Array):Number{
var _local2:Number;
var _local3:Number;
_local2 = (_arg1[2] - _arg1[0]);
_local3 = (_arg1[3] - _arg1[1]);
return (Math.sqrt(((_local2 * _local2) + (_local3 * _local3))));
}
public function encryptMap(){
var _local1:int;
encryptedmap = "";
_local1 = 0;
while (_local1 < pointarray.length) {
if (_local1 == 0){
encryptedmap = "m";
};
encryptedmap = (encryptedmap + encryptPoint(pointarray[_local1][0], pointarray[_local1][1]));
if ((((_local1 == (pointarray.length - 1))) || (!(isNodeConnected(pointarray[_local1], pointarray[(_local1 + 1)]))))){
encryptedmap = (encryptedmap + encryptPoint(pointarray[_local1][2], pointarray[_local1][3]));
encryptedmap = (encryptedmap + "l");
};
_local1++;
};
}
private function getClosestNode(_arg1, _arg2):Array{
var _local3:int;
var _local4:*;
var _local5:Array;
_local3 = 0;
while (_local3 < pointarray.length) {
if ((((((_local3 == 0)) || ((getDistance(pointarray[_local3][0], pointarray[_local3][1], _arg1, _arg2) < _local4)))) || ((getDistance(pointarray[_local3][2], pointarray[_local3][3], _arg1, _arg2) < _local4)))){
_local5 = pointarray[_local3];
_local4 = Math.min(getDistance(pointarray[_local3][0], pointarray[_local3][1], _arg1, _arg2), getDistance(pointarray[_local3][2], pointarray[_local3][3], _arg1, _arg2));
};
_local3++;
};
return (_local5);
}
public function clearMap(){
this.graphics.clear();
pointarray = new Array();
lastpoint = null;
}
private function getNodeAngle(_arg1:Array):Number{
var _local2:Number;
var _local3:Number;
_local2 = (_arg1[2] - _arg1[0]);
_local3 = (_arg1[3] - _arg1[1]);
return (((Math.atan2(_local3, _local2) / Math.PI) * 180));
}
public function eraseLine(_arg1, _arg2, _arg3=10){
var _local4:*;
var _local5:int;
_local4 = (pointarray.length - 1);
while (_local4 > -1) {
if ((((getDistance(pointarray[_local4][0], pointarray[_local4][1], _arg1, _arg2) < _arg3)) || ((getDistance(pointarray[_local4][2], pointarray[_local4][3], _arg1, _arg2) < _arg3)))){
pointarray.splice(_local4, 1);
};
_local4--;
};
drawLine();
}
private function getNodeAt(_arg1):int{
var _local2:*;
var _local3:*;
_local2 = 0;
_local3 = 0;
while ((((_local3 < pointarray.length)) && (!(_local2)))) {
if (((isOnPos([pointarray[_local3][0], pointarray[_local3][1]], _arg1)) || (isOnPos([pointarray[_local3][2], pointarray[_local3][3]], _arg1)))){
_local2 = (_local3 + 1);
};
_local3++;
};
return (_local2);
}
private function snapPoint(_arg1, _arg2, _arg3="continue"):Array{
var _local4:Array;
var _local5:Array;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:int;
_local4 = [0, 0];
if (_arg3 == "continue"){
_local6 = (snapdist / 2);
} else {
if ((((_arg3 == "start")) || ((_arg3 == "stop")))){
_local6 = (snapdist * 10);
};
};
_local5 = getClosestNode(_arg1, _arg2);
if (_local5){
_local8 = getDistance(_arg1, _arg2, _local5[0], _local5[1]);
_local9 = getDistance(_arg1, _arg2, _local5[2], _local5[3]);
_local7 = Math.min(_local8, _local9);
};
if (((_local5) && ((_local7 < _local6)))){
if (Math.min(_local8, _local9) == _local8){
_local4 = [_local5[0], _local5[1]];
} else {
_local4 = [_local5[2], _local5[3]];
};
} else {
_local10 = Math.floor((_arg1 / snapdist));
_local4[0] = Math.floor((_local10 * snapdist));
_local10 = Math.floor((_arg2 / snapdist));
_local4[1] = Math.floor((_local10 * snapdist));
};
return (_local4);
}
}
}//package
Section 157
//MapEditorContainer (MapEditorContainer)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
public class MapEditorContainer extends MovieClip {
var curpress:int;
public var bttestpath:MovieClip;
var buttonrect:Array;
var drawboard:MapDrawerBase;
public var encryptedtxt:TextField;
private var datamgr:GameDataManager;
var drawstatus:String;
public var btcopytoclipboard:MovieClip;
public var btloadpath:MovieClip;
var pathcreator:MeshPath;
public var mcstart:MovieClip;
public var mcstop:MovieClip;
public var notes:TextField;
private var initialized:Boolean;
public var mctracer:mc_tracer;
var drawmode:Boolean;
private var maintimeline:Object;
var mctutorial:MovieClip;
var drawboardrect:Rectangle;
var buttontoggle:Array;
var button:Array;
public var btclear:MovieClip;
var mapmgr:MapDataManager;
public var mcsaveprogress:MovieClip;
var buttontext:Array;
public var bteraser:MovieClip;
var tracestatus:String;
public var btsavepath:MovieClip;
private var ctrlmgr:ControlManager;
public var btexiteditor:MovieClip;
public var btpencil:MovieClip;
var tweenmgr:TweenManager;
public var mcpointer:MovieClip;
var prevpress:int;
private function activateButton(_arg1){
var _local2:*;
if (buttontoggle[_arg1]){
if (button[_arg1].currentLabel != "activate"){
button[_arg1].gotoAndPlay("activate");
_local2 = 0;
while (_local2 < button.length) {
if (_local2 != _arg1){
if (button[_local2].currentLabel == "activate"){
button[_local2].gotoAndPlay("deactivate");
};
};
_local2++;
};
};
} else {
button[_arg1].gotoAndPlay("blow");
};
}
private function loadMap(){
tracestatus = "idle";
if (drawboard.decryptMap(encryptedtxt.text)){
notes.text = "Load completed";
} else {
notes.text = ("Load failed, " + drawboard.cryptostatus);
};
}
private function shrinkButton(_arg1){
if (button[_arg1].currentLabel != "activate"){
if (button[_arg1].currentLabel == "blow"){
button[_arg1].gotoAndPlay("shrink");
notes.text = "";
};
};
}
private function saveMap(){
tracestatus = "idle";
drawboard.encryptMap();
encryptedtxt.text = drawboard.encryptedmap;
notes.text = "Map coded";
Mouse.show();
mcpointer.visible = false;
drawstatus = "saving";
mcsaveprogress.goSave();
}
private function checkSaverStatus(){
switch (mcsaveprogress.savestatus){
case "ready":
mapmgr.addMap(mcsaveprogress.filename, drawboard.encryptedmap);
mcsaveprogress.savestatus = "saved";
break;
case "finished":
datamgr.detectAchievement(false, 24);
datamgr.saveData();
case "cancel":
drawstatus = "drawing";
Mouse.hide();
mcpointer.visible = true;
break;
};
}
private function moveClip(_arg1){
prevpress = curpress;
curpress = ctrlmgr.MOUSEPRESS;
if (drawstatus == "tutorial"){
movePointer();
if (((!(mctutorial.finished)) && (!(mctutorial.showing)))){
if (mctutorial.step == 0){
mctutorial.showTutorial(1);
} else {
if (mctutorial.step == 2){
mctutorial.showTutorial(2, 600);
} else {
if (mctutorial.step == 3){
mctutorial.showTutorial(3, 600);
} else {
if (mctutorial.step == 4){
mctutorial.showTutorial(4, 600);
};
};
};
};
} else {
if (mctutorial.finished){
datamgr.tutorial[1] = false;
datamgr.saveData();
drawstatus = "drawing";
};
};
} else {
if (drawstatus == "drawing"){
movePointer();
if ((((prevpress == 0)) && ((curpress > 0)))){
startLine();
} else {
if (curpress){
continueLine();
} else {
if ((((prevpress > 0)) && ((curpress == 0)))){
stopLine();
};
};
};
detectButton();
} else {
if (drawstatus == "saving"){
checkSaverStatus();
} else {
if (drawstatus == "backtomain"){
tweenmgr.register(this, {live:15, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:goMenuPage});
drawstatus = "waiting";
} else {
if (drawstatus == "gobrowser"){
tweenmgr.register(this, {live:15, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:goBrowser});
drawstatus = "waiting";
};
};
};
};
};
moveTracer();
ctrlmgr.moveClip();
}
private function checkSelectedButton(_arg1){
switch (_arg1){
case 0:
drawmode = true;
maintimeline.sndmgr.playSFX("guiselect");
break;
case 1:
drawmode = false;
maintimeline.sndmgr.playSFX("guiselect");
break;
case 2:
clearDrawing();
maintimeline.sndmgr.playSFX("guiselect");
break;
case 3:
createPath();
maintimeline.sndmgr.playSFX("guiselect");
break;
case 4:
saveMap();
maintimeline.sndmgr.playSFX("guiselect");
break;
case 5:
loadMap();
maintimeline.sndmgr.playSFX("guiselect");
break;
case 6:
copyMap();
maintimeline.sndmgr.playSFX("guiselect");
break;
case 7:
maintimeline.sndmgr.playSFX("guiselect");
if (datamgr.editname != ""){
datamgr.editname = "";
drawstatus = "gobrowser";
} else {
drawstatus = "backtomain";
};
break;
};
}
private function moveTracer(){
if (tracestatus == "playing"){
mctracer.moveClip();
if (!mctracer.visible){
tracestatus = "idle";
};
} else {
mctracer.visible = false;
};
}
public function init(){
var _local1:*;
maintimeline = MovieClip(this.stage.getChildAt(0));
ctrlmgr = maintimeline.ctrlmgr;
datamgr = maintimeline.datamgr;
tweenmgr = maintimeline.tweenmgr;
mapmgr = maintimeline.mapmgr;
button = [btpencil, bteraser, btclear, bttestpath, btsavepath, btloadpath, btcopytoclipboard, btexiteditor];
buttontoggle = [true, true, false, false, false, false, false, false];
buttontext = new Array("Draw line", "Erase line", "Clear map", "Test map", "Create map code", "Load map code", "Copy map code to clipboard", "Exit map editor");
buttonrect = new Array();
_local1 = 0;
while (_local1 < button.length) {
buttonrect.push(new Rectangle((button[_local1].x - (button[_local1].width / 2)), (button[_local1].y - (button[_local1].height / 2)), button[_local1].width, button[_local1].height));
_local1++;
};
drawstatus = "drawing";
drawmode = true;
drawboard = new MapDrawerBase();
drawboard.y = 80;
this.addChild(drawboard);
drawboardrect = new Rectangle((drawboard.x + 8), (drawboard.y + 8), (640 - 16), (320 - 16));
mcpointer.gotoAndStop(1);
Mouse.hide();
mcpointer.x = ctrlmgr.MOUSEPOS.x;
mcpointer.y = ctrlmgr.MOUSEPOS.y;
mcsaveprogress.parent.setChildIndex(mcsaveprogress, (mcsaveprogress.parent.numChildren - 1));
mcpointer.parent.setChildIndex(mcpointer, (mcpointer.parent.numChildren - 1));
activateButton(0);
pathcreator = new MeshPath([mcstart.x, (mcstart.y - 80)], [mcstop.x, (mcstop.y - 80)]);
tracestatus = "idle";
mctracer.init(null, 80);
mctutorial = new mc_editortutorial();
if (datamgr.tutorial[1]){
this.addChild(mctutorial);
drawstatus = "tutorial";
mctutorial.finished = false;
this.setChildIndex(mctutorial, (this.numChildren - 2));
};
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
this.y = -490;
tweenmgr.register(this, {live:15, ease:"easeoutback", x:0, y:0, alpha:1, rotation:0, scalex:1, scaley:1});
if (datamgr.editmap != ""){
drawboard.decryptMap(datamgr.editmap);
};
}
private function goBrowser(_arg1){
drawstatus = "drawing";
this.removeEventListener(Event.ENTER_FRAME, moveClip);
Mouse.show();
maintimeline.gotoAndPlay("browserpage");
}
private function stopLine(){
if (drawmode){
drawboard.stopLine();
};
}
private function clearDrawing(){
drawboard.clearMap();
tracestatus = "idle";
}
private function movePointer(){
mcpointer.x = (mcpointer.x + ((ctrlmgr.MOUSEPOS.x - mcpointer.x) * 0.5));
mcpointer.y = (mcpointer.y + ((ctrlmgr.MOUSEPOS.y - mcpointer.y) * 0.5));
if (getDistance(mcpointer.x, mcpointer.y, mcstart.x, mcstart.y) < 10){
mcpointer.x = mcstart.x;
mcpointer.y = mcstart.y;
} else {
if (getDistance(mcpointer.x, mcpointer.y, mcstop.x, mcstop.y) < 10){
mcpointer.x = mcstop.x;
mcpointer.y = mcstop.y;
};
};
if (drawboardrect.contains(mcpointer.x, mcpointer.y)){
Mouse.hide();
mcpointer.visible = true;
if (drawmode){
mcpointer.gotoAndStop(2);
} else {
mcpointer.gotoAndStop(3);
};
} else {
Mouse.show();
mcpointer.visible = false;
mcpointer.gotoAndStop(1);
};
}
private function getAngle(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:*;
var _local6:*;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (((Math.atan2(_local6, _local5) / Math.PI) * 180));
}
private function continueLine(){
if (drawmode){
if (drawboardrect.contains(mcpointer.x, mcpointer.y)){
drawboard.continueLine(mcpointer.x, (mcpointer.y - 80));
} else {
drawboard.startLine(mcpointer.x, (mcpointer.y - 80));
};
} else {
drawboard.eraseLine(mcpointer.x, (mcpointer.y - 80));
};
}
private function createPath(){
var _local1:Boolean;
_local1 = pathcreator.createMesh(drawboard.pointarray);
if (_local1){
notes.text = "Path found";
mctracer.parent.setChildIndex(mctracer, (mctracer.parent.numChildren - 1));
mctracer.setPath(pathcreator.path);
tracestatus = "playing";
} else {
notes.text = "Can't found path";
tracestatus = "idle";
};
}
private function getDistance(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:*;
var _local6:*;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
private function startLine(){
if (drawmode){
drawboard.startLine(mcpointer.x, (mcpointer.y - 80));
} else {
drawboard.eraseLine(mcpointer.x, (mcpointer.y - 80));
};
}
private function blowButton(_arg1){
if (button[_arg1].currentLabel != "activate"){
if (button[_arg1].currentLabel != "blow"){
button[_arg1].gotoAndPlay("blow");
notes.text = buttontext[_arg1];
};
};
}
private function goMenuPage(_arg1){
drawstatus = "drawing";
this.removeEventListener(Event.ENTER_FRAME, moveClip);
Mouse.show();
maintimeline.gotoAndPlay("menupage");
}
private function copyMap(){
System.setClipboard(encryptedtxt.text);
encryptedtxt.setSelection(0, (encryptedtxt.text.length - 1));
notes.text = "Map code copied to clipboard";
}
private function detectButton(){
var _local1:*;
if (ctrlmgr.MOUSEPRESS == 2){
_local1 = 0;
while (_local1 < buttonrect.length) {
if (buttonrect[_local1].containsPoint(ctrlmgr.MOUSEPOS)){
checkSelectedButton(_local1);
activateButton(_local1);
};
_local1++;
};
} else {
if (ctrlmgr.MOUSEPRESS == 0){
_local1 = 0;
while (_local1 < buttonrect.length) {
if (buttonrect[_local1].containsPoint(ctrlmgr.MOUSEPOS)){
blowButton(_local1);
} else {
shrinkButton(_local1);
};
_local1++;
};
};
};
}
private function commitLine(){
}
}
}//package
Section 158
//MapScrollerBase (MapScrollerBase)
package {
import flash.events.*;
import flash.display.*;
public class MapScrollerBase extends Sprite {
private var maprow:int;
private var defpos:Array;
private var maptotalcol:int;
public var btbrowseright:MovieClip;
public var btbrowseleft:MovieClip;
private var map:Array;
private var mappos:Array;
private var mapcol:int;
private var mtl:MovieClip;
private var tracing:Boolean;// = false
private var rightpos:int;
private var mapidx:int;
private var leftpos:int;
public function MapScrollerBase(){
tracing = false;
super();
}
public function init(_arg1, _arg2, _arg3=1, _arg4=3){
var _local5:int;
if (tracing){
trace("\nMapScrollerBase:$init: Initializing map scroller");
};
mtl = MovieClip(this.stage.getChildAt(0));
maprow = _arg3;
mapcol = _arg4;
maptotalcol = Math.floor((_arg1.length / maprow));
if ((_arg1.length % maprow) > 0){
maptotalcol++;
};
mapidx = 0;
leftpos = -200;
rightpos = 740;
setMap(_arg1, _arg2);
btbrowseleft.buttonMode = true;
btbrowseright.buttonMode = true;
btbrowseleft.addEventListener(MouseEvent.MOUSE_UP, moveLeft, false, 0, true);
btbrowseright.addEventListener(MouseEvent.MOUSE_UP, moveRight, false, 0, true);
}
public function overLeft(_arg1=null){
mtl.sndmgr.playSFX("guiselect");
if (mapidx > 0){
if (btbrowseleft.currentFrame == 1){
btbrowseleft.gotoAndPlay((btbrowseleft.totalFrames - 5));
};
};
}
public function reset(){
var _local1:*;
var _local2:int;
mapidx = 0;
leftpos = -200;
rightpos = 740;
_local1 = 0;
while (_local1 < map.length) {
_local2 = 0;
while (_local2 < map[_local1].length) {
map[_local1][_local2].y = defpos[0][(_local2 + 1)];
if (_local1 < mapcol){
map[_local1][_local2].x = defpos[_local1][0];
} else {
map[_local1][_local2].x = rightpos;
};
mappos[_local1][_local2] = [map[_local1][_local2].x, map[_local1][_local2].y];
_local2++;
};
_local1++;
};
}
public function setMapPos(){
var _local1:*;
var _local2:int;
if (tracing){
trace("MapScrollerBase:setMapPos: Setting defpos:", defpos);
};
_local1 = 0;
while (_local1 < maptotalcol) {
if (_local1 < mapidx){
_local2 = 0;
while (_local2 < map[_local1].length) {
mappos[_local1][_local2][0] = leftpos;
_local2++;
};
} else {
if (_local1 < (mapidx + mapcol)){
_local2 = 0;
while (_local2 < map[_local1].length) {
mappos[_local1][_local2][0] = defpos[(_local1 - mapidx)][0];
_local2++;
};
} else {
_local2 = 0;
while (_local2 < map[_local1].length) {
mappos[_local1][_local2][0] = rightpos;
_local2++;
};
};
};
_local1++;
};
if (tracing){
trace("MapScrollerBase:setMapPos: Setting map position, mapidx:", mapidx, "defpos:", defpos, "mappos:", mappos);
};
}
public function moveLeft(_arg1=null){
if (mapidx > 0){
mapidx--;
setMapPos();
btbrowseleft.gotoAndPlay((btbrowseleft.totalFrames - 5));
};
if (tracing){
trace("MapScrollerBase:moveLeft: mapidx:", mapidx);
};
}
public function setMap(_arg1, _arg2){
var _local3:*;
var _local4:int;
map = new Array();
mappos = new Array();
defpos = new Array();
_local3 = 0;
while (_local3 < _arg1.length) {
map.push(new Array());
_local4 = 0;
while (_local4 < maprow) {
if (_local3 < _arg1.length){
map[Math.floor((_local3 / maprow))].push(_arg1[_local3]);
};
_local3++;
_local4++;
};
};
_local3 = 0;
while (_local3 < mapcol) {
defpos.push(new Array());
defpos[_local3].push(map[_local3][0].x);
_local4 = 0;
while (_local4 < maprow) {
defpos[_local3].push(map[_local3][_local4].y);
_local4++;
};
_local3++;
};
_local3 = 0;
while (_local3 < map.length) {
mappos.push(new Array());
_local4 = 0;
while (_local4 < map[_local3].length) {
map[_local3][_local4].y = defpos[0][(_local4 + 1)];
if (_local3 < mapcol){
map[_local3][_local4].x = defpos[_local3][0];
} else {
map[_local3][_local4].x = rightpos;
};
mappos[_local3].push([map[_local3][_local4].x, map[_local3][_local4].y]);
_local4++;
};
_local3++;
};
if (tracing){
trace("MapScrollerBase:setMap: Map count:", map.length);
};
if (tracing){
trace("MapScrollerBase:setMap: Setting defpos:", defpos);
};
if (tracing){
trace("MapScrollerBase:setMap: Found mappos:", mappos);
};
}
public function overRight(_arg1=null){
mtl.sndmgr.playSFX("guiselect");
if (mapidx < (maptotalcol - mapcol)){
if (btbrowseright.currentFrame == 1){
btbrowseright.gotoAndPlay((btbrowseright.totalFrames - 5));
};
};
}
public function moveClip(){
var _local1:*;
var _local2:int;
var _local3:Number;
if ((((mapidx == 0)) && (btbrowseleft.visible))){
btbrowseleft.visible = false;
} else {
if (mapidx > 0){
btbrowseleft.visible = true;
};
};
if ((((mapidx == (maptotalcol - mapcol))) && (btbrowseright.visible))){
btbrowseright.visible = false;
} else {
if (mapidx < (maptotalcol - mapcol)){
btbrowseright.visible = true;
};
};
_local1 = 0;
while (_local1 < maptotalcol) {
_local3 = (mappos[_local1][0][0] - map[_local1][0].x);
if (Math.abs(_local3) > 1){
_local2 = 0;
while (_local2 < maprow) {
map[_local1][_local2].x = (map[_local1][_local2].x + (_local3 / 5));
_local2++;
};
};
_local1++;
};
}
public function moveRight(_arg1=null){
if (mapidx < (maptotalcol - mapcol)){
mapidx++;
setMapPos();
btbrowseright.gotoAndPlay((btbrowseright.totalFrames - 5));
};
if (tracing){
trace("MapScrollerBase:moveRight: mapidx:", mapidx);
};
}
}
}//package
Section 159
//mc_achievementnote (mc_achievementnote)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mc_achievementnote extends MovieClip {
public var descriptiontxt:TextField;
public var content:mc_achievementnotecontent;
}
}//package
Section 160
//mc_achievementnotecontent (mc_achievementnotecontent)
package {
import flash.display.*;
public dynamic class mc_achievementnotecontent extends MovieClip {
}
}//package
Section 161
//mc_achievementscroller (mc_achievementscroller)
package {
public dynamic class mc_achievementscroller extends MapScrollerBase {
}
}//package
Section 162
//mc_blood1 (mc_blood1)
package {
import flash.display.*;
public dynamic class mc_blood1 extends Sprite {
}
}//package
Section 163
//mc_blood2 (mc_blood2)
package {
import flash.display.*;
public dynamic class mc_blood2 extends Sprite {
}
}//package
Section 164
//mc_blood3 (mc_blood3)
package {
import flash.display.*;
public dynamic class mc_blood3 extends Sprite {
}
}//package
Section 165
//mc_blood4 (mc_blood4)
package {
import flash.display.*;
public dynamic class mc_blood4 extends Sprite {
}
}//package
Section 166
//mc_blood5 (mc_blood5)
package {
import flash.display.*;
public dynamic class mc_blood5 extends Sprite {
}
}//package
Section 167
//mc_blood6 (mc_blood6)
package {
import flash.display.*;
public dynamic class mc_blood6 extends Sprite {
}
}//package
Section 168
//mc_blood7 (mc_blood7)
package {
import flash.display.*;
public dynamic class mc_blood7 extends Sprite {
}
}//package
Section 169
//mc_blood8 (mc_blood8)
package {
import flash.display.*;
public dynamic class mc_blood8 extends Sprite {
}
}//package
Section 170
//mc_blowarea (mc_blowarea)
package {
import flash.display.*;
public dynamic class mc_blowarea extends Sprite {
}
}//package
Section 171
//mc_bullet1 (mc_bullet1)
package {
import flash.display.*;
public dynamic class mc_bullet1 extends MovieClip {
}
}//package
Section 172
//mc_bullet2 (mc_bullet2)
package {
import flash.display.*;
public dynamic class mc_bullet2 extends MovieClip {
}
}//package
Section 173
//mc_bullet3 (mc_bullet3)
package {
import flash.display.*;
public dynamic class mc_bullet3 extends MovieClip {
}
}//package
Section 174
//mc_bullet5 (mc_bullet5)
package {
import flash.display.*;
public dynamic class mc_bullet5 extends MovieClip {
}
}//package
Section 175
//mc_damagedone (mc_damagedone)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mc_damagedone extends MovieClip {
public var txt:TextField;
}
}//package
Section 176
//mc_editortutorial (mc_editortutorial)
package {
import flash.events.*;
import flash.display.*;
public dynamic class mc_editortutorial extends MovieClip {
public var ctr:int;
public var btyes:SimpleButton;
public var btno:SimpleButton;
public var finished:Boolean;
public var showing:Boolean;
public var step:int;
public function mc_editortutorial(){
addFrameScript(0, frame1, 1, frame2);
}
public function finishTutorial(_arg1=null){
finished = true;
gotoAndStop(1);
removeEventListener(Event.ENTER_FRAME, moveClip);
showing = false;
removeEventListener(MouseEvent.CLICK, hideTutorial);
parent.removeChild(this);
}
function frame1(){
stop();
}
function frame2(){
stop();
btyes.addEventListener(MouseEvent.CLICK, hideTutorial, false, 0, true);
btno.addEventListener(MouseEvent.CLICK, finishTutorial, false, 0, true);
}
public function showTutorial(_arg1, _arg2=0){
if ((((((_arg1 == 1)) || ((_arg1 == 3)))) || ((_arg1 == 4)))){
ctr = -1;
} else {
ctr = _arg2;
};
step = (_arg1 + 1);
gotoAndStop(step);
if (step == totalFrames){
addEventListener(MouseEvent.CLICK, finishTutorial, false, 0, true);
} else {
if (step > 2){
addEventListener(MouseEvent.CLICK, hideTutorial, false, 0, true);
};
};
addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
showing = true;
}
public function moveClip(_arg1){
if (ctr == 0){
if (currentFrame != totalFrames){
hideTutorial();
} else {
finishTutorial();
};
} else {
ctr--;
};
}
public function hideTutorial(_arg1=null){
gotoAndStop(1);
removeEventListener(Event.ENTER_FRAME, moveClip);
showing = false;
}
}
}//package
Section 177
//mc_gamenewfeature (mc_gamenewfeature)
package {
import flash.events.*;
import flash.display.*;
public dynamic class mc_gamenewfeature extends MovieClip {
public var ctr:int;
public var finished:Boolean;
public var showing:Boolean;
public function mc_gamenewfeature(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function hide(_arg1=null){
gotoAndStop(1);
removeEventListener(Event.ENTER_FRAME, moveClip);
if (parent.contains(this)){
parent.removeChild(this);
};
showing = false;
}
public function moveClip(_arg1){
if (ctr == 0){
hide();
} else {
ctr--;
};
}
public function show(_arg1, _arg2=0){
ctr = _arg2;
gotoAndStop(_arg1);
addEventListener(MouseEvent.CLICK, hide, false, 0, true);
addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
showing = true;
}
}
}//package
Section 178
//mc_gamepointer (mc_gamepointer)
package {
import flash.display.*;
public dynamic class mc_gamepointer extends MovieClip {
public function mc_gamepointer(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 179
//mc_gamestatic (mc_gamestatic)
package {
import flash.display.*;
public dynamic class mc_gamestatic extends SimpleButton {
}
}//package
Section 180
//mc_gametutorial (mc_gametutorial)
package {
import flash.events.*;
import flash.display.*;
public dynamic class mc_gametutorial extends MovieClip {
public var ctr:int;
public var btyes:SimpleButton;
public var btno:SimpleButton;
public var finished:Boolean;
public var showing:Boolean;
public var step:int;
public function mc_gametutorial(){
addFrameScript(0, frame1, 1, frame2);
}
public function finishTutorial(_arg1=null){
finished = true;
gotoAndStop(1);
removeEventListener(Event.ENTER_FRAME, moveClip);
showing = false;
removeEventListener(MouseEvent.CLICK, hideTutorial);
parent.removeChild(this);
}
function frame1(){
stop();
}
function frame2(){
stop();
btyes.addEventListener(MouseEvent.CLICK, hideTutorial, false, 0, true);
btno.addEventListener(MouseEvent.CLICK, finishTutorial, false, 0, true);
}
public function showTutorial(_arg1, _arg2=0){
if ((((((_arg1 == 1)) || ((_arg1 == 3)))) || ((_arg1 == 4)))){
ctr = -1;
} else {
ctr = _arg2;
};
step = (_arg1 + 1);
gotoAndStop(step);
if (step == totalFrames){
addEventListener(MouseEvent.CLICK, finishTutorial, false, 0, true);
} else {
if (step > 2){
addEventListener(MouseEvent.CLICK, hideTutorial, false, 0, true);
};
};
addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
showing = true;
}
public function moveClip(_arg1){
if (ctr == 0){
if (currentFrame != totalFrames){
hideTutorial();
} else {
finishTutorial();
};
} else {
ctr--;
};
}
public function hideTutorial(_arg1=null){
gotoAndStop(1);
removeEventListener(Event.ENTER_FRAME, moveClip);
showing = false;
}
}
}//package
Section 181
//mc_inkreceived (mc_inkreceived)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mc_inkreceived extends MovieClip {
public var txt:TextField;
}
}//package
Section 182
//mc_locknotice (mc_locknotice)
package {
public dynamic class mc_locknotice extends JumpNoticeBase {
}
}//package
Section 183
//mc_mapbrowser (mc_mapbrowser)
package {
public dynamic class mc_mapbrowser extends MapBrowserContainer {
public function mc_mapbrowser(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 184
//mc_mapeditor (mc_mapeditor)
package {
public dynamic class mc_mapeditor extends MapEditorContainer {
public function mc_mapeditor(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 185
//mc_mapscroller (mc_mapscroller)
package {
public dynamic class mc_mapscroller extends MapScrollerBase {
}
}//package
Section 186
//mc_menupage (mc_menupage)
package {
public dynamic class mc_menupage extends MenuPageContainer {
}
}//package
Section 187
//mc_movingcritternote (mc_movingcritternote)
package {
public dynamic class mc_movingcritternote extends MovingCritterNoteBase {
}
}//package
Section 188
//mc_noinknotice (mc_noinknotice)
package {
public dynamic class mc_noinknotice extends JumpNoticeBase {
}
}//package
Section 189
//mc_selectlevel (mc_selectlevel)
package {
public dynamic class mc_selectlevel extends SelectLevelContainer {
public function mc_selectlevel(){
addFrameScript(0, frame1);
}
function frame1(){
init(this.parent);
}
}
}//package
Section 190
//mc_singlemaploader (mc_singlemaploader)
package {
public dynamic class mc_singlemaploader extends MapDrawerBase {
public function mc_singlemaploader(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 191
//mc_singlemaploadernotitle (mc_singlemaploadernotitle)
package {
public dynamic class mc_singlemaploadernotitle extends MapDrawerBase {
}
}//package
Section 192
//mc_stagepanel (mc_stagepanel)
package {
public dynamic class mc_stagepanel extends StagePanelContainer {
}
}//package
Section 193
//mc_stagescene (mc_stagescene)
package {
public dynamic class mc_stagescene extends StageSceneContainer {
public function mc_stagescene(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 194
//mc_timecounter (mc_timecounter)
package {
public dynamic class mc_timecounter extends TimeCounterBase {
public function mc_timecounter(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 195
//mc_tower1 (mc_tower1)
package {
import flash.display.*;
public dynamic class mc_tower1 extends MovieClip {
public var part:MovieClip;
}
}//package
Section 196
//mc_tower1_pointer (mc_tower1_pointer)
package {
import flash.display.*;
public dynamic class mc_tower1_pointer extends Sprite {
}
}//package
Section 197
//mc_tower1_progress (mc_tower1_progress)
package {
import flash.display.*;
public dynamic class mc_tower1_progress extends MovieClip {
}
}//package
Section 198
//mc_tower2 (mc_tower2)
package {
import flash.display.*;
public dynamic class mc_tower2 extends MovieClip {
public var part:MovieClip;
}
}//package
Section 199
//mc_tower2_pointer (mc_tower2_pointer)
package {
import flash.display.*;
public dynamic class mc_tower2_pointer extends Sprite {
}
}//package
Section 200
//mc_tower2_progress (mc_tower2_progress)
package {
import flash.display.*;
public dynamic class mc_tower2_progress extends MovieClip {
}
}//package
Section 201
//mc_tower3 (mc_tower3)
package {
import flash.display.*;
public dynamic class mc_tower3 extends MovieClip {
public var part:MovieClip;
}
}//package
Section 202
//mc_tower3_pointer (mc_tower3_pointer)
package {
import flash.display.*;
public dynamic class mc_tower3_pointer extends Sprite {
}
}//package
Section 203
//mc_tower3_progress (mc_tower3_progress)
package {
import flash.display.*;
public dynamic class mc_tower3_progress extends MovieClip {
}
}//package
Section 204
//mc_tower4 (mc_tower4)
package {
import flash.display.*;
public dynamic class mc_tower4 extends MovieClip {
public var part:MovieClip;
}
}//package
Section 205
//mc_tower4_pointer (mc_tower4_pointer)
package {
import flash.display.*;
public dynamic class mc_tower4_pointer extends Sprite {
}
}//package
Section 206
//mc_tower4_progress (mc_tower4_progress)
package {
import flash.display.*;
public dynamic class mc_tower4_progress extends MovieClip {
}
}//package
Section 207
//mc_tower5 (mc_tower5)
package {
import flash.display.*;
public dynamic class mc_tower5 extends MovieClip {
public var part:MovieClip;
}
}//package
Section 208
//mc_tower5_pointer (mc_tower5_pointer)
package {
import flash.display.*;
public dynamic class mc_tower5_pointer extends Sprite {
}
}//package
Section 209
//mc_tower5_progress (mc_tower5_progress)
package {
import flash.display.*;
public dynamic class mc_tower5_progress extends MovieClip {
}
}//package
Section 210
//mc_towerlvl (mc_towerlvl)
package {
import flash.display.*;
public dynamic class mc_towerlvl extends MovieClip {
}
}//package
Section 211
//mc_towerrangecircle (mc_towerrangecircle)
package {
import flash.display.*;
public dynamic class mc_towerrangecircle extends MovieClip {
}
}//package
Section 212
//mc_towerrangecross (mc_towerrangecross)
package {
import flash.display.*;
public dynamic class mc_towerrangecross extends MovieClip {
}
}//package
Section 213
//mc_towerupgradenote (mc_towerupgradenote)
package {
public dynamic class mc_towerupgradenote extends TowerUpgradeNoteBase {
}
}//package
Section 214
//mc_tracer (mc_tracer)
package {
public dynamic class mc_tracer extends PathTracerBase {
}
}//package
Section 215
//mc_unit1 (mc_unit1)
package {
import flash.display.*;
public dynamic class mc_unit1 extends MovieClip {
}
}//package
Section 216
//mc_unit1_frozen (mc_unit1_frozen)
package {
import flash.display.*;
public dynamic class mc_unit1_frozen extends MovieClip {
}
}//package
Section 217
//mc_unit2 (mc_unit2)
package {
import flash.display.*;
public dynamic class mc_unit2 extends MovieClip {
}
}//package
Section 218
//mc_unit2_frozen (mc_unit2_frozen)
package {
import flash.display.*;
public dynamic class mc_unit2_frozen extends MovieClip {
}
}//package
Section 219
//mc_unit3 (mc_unit3)
package {
import flash.display.*;
public dynamic class mc_unit3 extends MovieClip {
}
}//package
Section 220
//mc_unit3_frozen (mc_unit3_frozen)
package {
import flash.display.*;
public dynamic class mc_unit3_frozen extends MovieClip {
}
}//package
Section 221
//mc_unit4 (mc_unit4)
package {
import flash.display.*;
public dynamic class mc_unit4 extends MovieClip {
}
}//package
Section 222
//mc_unit4_frozen (mc_unit4_frozen)
package {
import flash.display.*;
public dynamic class mc_unit4_frozen extends MovieClip {
}
}//package
Section 223
//mc_unit5 (mc_unit5)
package {
import flash.display.*;
public dynamic class mc_unit5 extends MovieClip {
}
}//package
Section 224
//mc_unit5_frozen (mc_unit5_frozen)
package {
import flash.display.*;
public dynamic class mc_unit5_frozen extends MovieClip {
}
}//package
Section 225
//mc_unit6 (mc_unit6)
package {
import flash.display.*;
public dynamic class mc_unit6 extends MovieClip {
}
}//package
Section 226
//mc_unit6_frozen (mc_unit6_frozen)
package {
import flash.display.*;
public dynamic class mc_unit6_frozen extends MovieClip {
}
}//package
Section 227
//mc_unit7 (mc_unit7)
package {
import flash.display.*;
public dynamic class mc_unit7 extends MovieClip {
}
}//package
Section 228
//mc_unit7_frozen (mc_unit7_frozen)
package {
import flash.display.*;
public dynamic class mc_unit7_frozen extends MovieClip {
}
}//package
Section 229
//mc_unit7a (mc_unit7a)
package {
import flash.display.*;
public dynamic class mc_unit7a extends MovieClip {
}
}//package
Section 230
//mc_unit7a_frozen (mc_unit7a_frozen)
package {
import flash.display.*;
public dynamic class mc_unit7a_frozen extends MovieClip {
}
}//package
Section 231
//mc_unit7b (mc_unit7b)
package {
import flash.display.*;
public dynamic class mc_unit7b extends MovieClip {
}
}//package
Section 232
//mc_unit7b_frozen (mc_unit7b_frozen)
package {
import flash.display.*;
public dynamic class mc_unit7b_frozen extends MovieClip {
}
}//package
Section 233
//mc_unit8 (mc_unit8)
package {
import flash.display.*;
public dynamic class mc_unit8 extends MovieClip {
}
}//package
Section 234
//mc_unit8_frozen (mc_unit8_frozen)
package {
import flash.display.*;
public dynamic class mc_unit8_frozen extends MovieClip {
}
}//package
Section 235
//mc_unithealth (mc_unithealth)
package {
import flash.display.*;
public dynamic class mc_unithealth extends MovieClip {
}
}//package
Section 236
//mc_wavecounter (mc_wavecounter)
package {
public dynamic class mc_wavecounter extends WaveCounterBase {
}
}//package
Section 237
//mc_wrongplacementnotice (mc_wrongplacementnotice)
package {
public dynamic class mc_wrongplacementnotice extends JumpNoticeBase {
}
}//package
Section 238
//MenuPageContainer (MenuPageContainer)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class MenuPageContainer extends MovieClip {
private var maintimeline:Object;
public var btcredits:MovieClip;
private var sndmgr:SoundManager;
private var creditswindow:MovieClip;
public var btsubmitmap:MovieClip;
private var btnmgr:ButtonGroupManager;
private var button:Array;
private var buttontext:Array;
public var btachievements:MovieClip;
public var btplaycustom:MovieClip;
public var btplaycampaign:MovieClip;
private var buttongroup:Array;
public var menunotes:TextField;
private var tracing:Boolean;// = false
public var btplaymoregames:MovieClip;
public var btcreatemap:MovieClip;
private var ctrlmgr:ControlManager;
private var achievementwindow:MovieClip;
public function MenuPageContainer(){
tracing = false;
super();
}
public function init(_arg1){
var _local2:*;
if (tracing){
trace("MenuPageContainer:init: starting... maintimeline:", _arg1);
};
maintimeline = _arg1;
ctrlmgr = maintimeline.ctrlmgr;
sndmgr = maintimeline.sndmgr;
button = [btplaycampaign, btplaycustom, btcreatemap, btachievements, btcredits, btplaymoregames, btsubmitmap];
buttongroup = [[]];
buttontext = ["Play campaign", "Play with your own map", "Create/load a new map", "Achievements", "Credits", "Play more tower defense games", "Submit your map"];
btnmgr = new ButtonGroupManager(button);
_local2 = 0;
while (_local2 < button.length) {
btnmgr.registerFunction(_local2, this, {onover:showText, onout:hideText});
_local2++;
};
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
if (tracing){
trace("MenuPageContainer:init: buttons:", button);
};
sndmgr.playBGM("maintheme");
btsubmitmap.visible = maintimeline.usead;
btplaymoregames.visible = maintimeline.usead;
}
private function detectButtons(){
if (btnmgr.status[0]){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("wavepage");
sndmgr.playSFX("guiselect");
} else {
if (btnmgr.status[1]){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("browserpage");
sndmgr.stopBGM();
sndmgr.playSFX("guiselect");
} else {
if (btnmgr.status[2]){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("editorpage");
sndmgr.stopBGM();
sndmgr.playSFX("guiselect");
} else {
if (btnmgr.status[3]){
showAchievement();
sndmgr.playSFX("guiselect");
} else {
if (btnmgr.status[4]){
showCredits();
sndmgr.playSFX("guiselect");
} else {
if (btnmgr.status[5]){
maintimeline.goSponsor("menupage");
sndmgr.playSFX("guiselect");
} else {
if (btnmgr.status[6]){
maintimeline.goSubmitMap();
sndmgr.playSFX("guiselect");
};
};
};
};
};
};
};
}
function hideText(_arg1){
if (menunotes.text == buttontext[_arg1]){
menunotes.text = "";
};
}
public function hideAchievement(){
this.addEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.mcachievements.hideDialog();
}
private function moveClip(_arg1=null){
btnmgr.moveClip(ctrlmgr.MOUSEPOS, ctrlmgr.MOUSEPRESS);
detectButtons();
}
function showText(_arg1){
menunotes.text = buttontext[_arg1];
}
public function showCredits(){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.setChildIndex(maintimeline.mccredits, (maintimeline.numChildren - 1));
maintimeline.mccredits.init();
maintimeline.mccredits.showDialog();
}
public function showAchievement(){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.setChildIndex(maintimeline.mcachievements, (maintimeline.numChildren - 1));
maintimeline.mcachievements.init();
maintimeline.mcachievements.showDialog();
}
public function hideCredits(){
this.addEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.mccredits.hideDialog();
}
}
}//package
Section 239
//MeshNode (MeshNode)
package {
public class MeshNode {
private var tracing;// = false
public var parent:MeshNode;
public var atstart:Boolean;
public var point:Array;
public var atstop:Boolean;
public var child:Array;
public function MeshNode(_arg1, _arg2, _arg3=false, _arg4=false){
tracing = false;
super();
point = _arg1;
parent = _arg2;
atstart = _arg3;
atstop = _arg4;
child = new Array();
if (tracing){
trace("MeshNode.$init: New node at:", point, ", start:", atstart, ", stop:", atstop);
};
}
public function isOnPos(_arg1):Boolean{
return ((((_arg1[0] == point[0])) && ((_arg1[1] == point[1]))));
}
public function addChild(_arg1){
child.push(_arg1);
}
}
}//package
Section 240
//MeshPath (MeshPath)
package {
public class MeshPath {
private var tracing;// = false
private var stoppt:Array;
private var stopnode:MeshNode;
private var stopparentcandidate:Array;
public var pathstatus:String;
public var meshnodes:Array;
public var path:Array;
private var startpt:Array;
public function MeshPath(_arg1=null, _arg2=null){
tracing = false;
super();
stopnode = null;
meshnodes = new Array();
path = new Array();
pathstatus = "none";
if (_arg1){
startpt = [Math.floor(_arg1[0]), Math.floor(_arg1[1])];
};
if (_arg2){
stoppt = [Math.floor(_arg2[0]), Math.floor(_arg2[1])];
};
if (((_arg1) && (_arg2))){
if (tracing){
trace("\nMeshPath.$init: Start:", startpt, " Stop:", stoppt);
};
};
}
public function addNode(_arg1, _arg2):Boolean{
var _local3:MeshNode;
var _local4:MeshNode;
if (!_arg1){
if (getNode(_arg2)){
if (tracing){
trace("MeshPath.addNode: Start node already registered");
};
return (true);
};
_local4 = new MeshNode(_arg2, null, true, isOnPos(_arg2, stoppt));
meshnodes.push(_local4);
if (tracing){
trace("MeshPath.addNode: Start node added");
};
return (true);
};
if (!_arg2){
_local4 = new MeshNode(_arg1, null, true, isOnPos(_arg1, stoppt));
meshnodes.push(_local4);
if (tracing){
trace("MeshPath.addNode: Start node added");
};
return (true);
};
_local3 = getNode(_arg1);
if (_local3){
if (getNode(_arg2)){
if (tracing){
trace("MeshPath.addNode: Node at", _arg2, " already registered");
};
return (true);
};
_local4 = new MeshNode(_arg2, _local3, false, isOnPos(_arg2, stoppt));
meshnodes.push(_local4);
if (_local4.atstop){
stopnode = _local4;
stopparentcandidate.push(_local3);
if (tracing){
trace("MeshPath.addNode: Stop node found at", _arg2);
};
} else {
_local3.addChild(_local4);
if (tracing){
trace("MeshPath.addNode: Node added at", _arg2);
};
};
return (true);
};
_local3 = getNode(_arg2);
if (_local3){
_local4 = new MeshNode(_arg1, _local3, false, isOnPos(_arg1, stoppt));
meshnodes.push(_local4);
if (_local4.atstop){
stopnode = _local4;
stopparentcandidate.push(_local3);
if (tracing){
trace("MeshPath.addNode: Stop node found at", _arg1);
};
} else {
_local3.addChild(_local4);
if (tracing){
trace("MeshPath.addNode: Node added at", _arg1);
};
};
return (true);
};
return (false);
}
public function createMesh(_arg1, _arg2=null, _arg3=null):Boolean{
var _local4:Array;
var _local5:*;
if (tracing){
trace("\nMeshPath.createMesh: Start creating mesh");
};
_local4 = new Array();
if (_arg2){
startpt = [Math.floor(_arg2[0]), Math.floor(_arg2[1])];
};
if (_arg3){
stoppt = [Math.floor(_arg3[0]), Math.floor(_arg3[1])];
};
if (((_arg2) && (_arg3))){
if (tracing){
trace("\nMeshPath.createMesh: Start:", startpt, " Stop:", stoppt);
};
};
stopnode = null;
meshnodes = new Array();
path = new Array();
pathstatus = "none";
stopparentcandidate = new Array();
if (!startpt){
if (tracing){
trace("MeshPath.createMesh: Create mesh failed, no start point defined");
};
return (false);
};
if (!stoppt){
if (tracing){
trace("MeshPath.createMesh: Create mesh failed, no stop point defined");
};
return (false);
};
addNode(startpt, null);
_local4 = copyArray(_arg1);
_local5 = (_local4.length - 1);
while (((!(stopnode)) && ((_local5 > -1)))) {
if (((getNode([_local4[_local5][0], _local4[_local5][1]])) || (getNode([_local4[_local5][2], _local4[_local5][3]])))){
addNode([_local4[_local5][0], _local4[_local5][1]], [_local4[_local5][2], _local4[_local5][3]]);
_local4.splice(_local5, 1);
_local5 = (_local4.length - 1);
} else {
_local5--;
};
};
if (!stopnode){
if (tracing){
trace("MeshPath.createMesh: Invalid mesh, not connected to stop point");
};
return (false);
} else {
if (tracing){
trace("MeshPath.createMesh: Mesh created, call createPath to generate path");
};
putStopNode();
createPath();
};
return (true);
}
public function createPath():Array{
var _local1:MeshNode;
path = new Array();
_local1 = stopnode;
path.push(_local1.point);
while (_local1.parent) {
_local1 = _local1.parent;
path.push(_local1.point);
};
path = reverseArray(path);
pathstatus = "ready";
return (path);
}
private function putStopNode(){
var _local1:int;
var _local2:int;
var _local3:MeshNode;
_local1 = 0;
while (_local1 < stopparentcandidate.length) {
if ((((_local1 == 0)) || ((_local2 > getNodeDepth(stopparentcandidate[_local1]))))){
_local2 = getNodeDepth(stopparentcandidate[_local1]);
_local3 = stopparentcandidate[_local1];
};
_local1++;
};
_local3.addChild(stopnode);
stopnode.parent = _local3;
}
private function isOnPos(_arg1, _arg2):Boolean{
return ((((_arg1[0] == _arg2[0])) && ((_arg1[1] == _arg2[1]))));
}
private function reverseArray(_arg1):Array{
var _local2:*;
var _local3:Array;
_local3 = new Array();
_local2 = (_arg1.length - 1);
while (_local2 > -1) {
_local3.push(_arg1[_local2]);
_local2--;
};
return (_local3);
}
public function getNodeDepth(_arg1):int{
var _local2:int;
var _local3:MeshNode;
_local2 = 1;
_local3 = _arg1;
path.push(_local3.point);
while (_local3.parent) {
_local3 = _local3.parent;
path.push(_local3.point);
_local2++;
};
return (_local2);
}
public function getNode(_arg1):MeshNode{
var _local2:int;
var _local3:MeshNode;
_local2 = 0;
while (((!(_local3)) && ((_local2 < meshnodes.length)))) {
if (meshnodes[_local2].isOnPos(_arg1)){
_local3 = meshnodes[_local2];
};
_local2++;
};
return (_local3);
}
private function copyArray(_arg1):Array{
var _local2:*;
var _local3:Array;
_local3 = new Array();
_local2 = 0;
while (_local2 < _arg1.length) {
_local3.push(_arg1[_local2]);
_local2++;
};
return (_local3);
}
}
}//package
Section 241
//MochiAd (MochiAd)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
public class MochiAd {
public static function getVersion():String{
return ("2.7");
}
public static function showClickAwayAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_timeout:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var sendHostProgress:Boolean;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
sendHostProgress = false;
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local3:Object;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var idx:Number;
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
idx = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var depth:Number;
var mc:MovieClip;
var wh:Array;
var lv:URLVariables;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
wh = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
lv = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{
var _local4:Array;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip;
_local4 = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Array;
_local3 = _arg2.getBounds(_arg2.root);
_local4 = 0;
_local5 = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array;
var _local4:Number;
_local3 = _arg2.split(".");
_local4 = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = MochiAd.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + _arg3.id));
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
public static function showPreGameAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var bar:MovieClip;
var bar_color:Number;
var bar_background:Number;
var bar_outline:Number;
var backing_mc:MovieClip;
var backing:Object;
var inside_mc:MovieClip;
var inside:Object;
var outline_mc:MovieClip;
var outline:Object;
var complete:Boolean;
var unloaded:Boolean;
var f:Function;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (_arg1:Number):void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
MochiAd._cleanup(mc);
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
bar = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = 10;
bar.y = (h - 20);
};
bar_color = options.color;
delete options.color;
bar_background = options.background;
delete options.background;
bar_outline = options.outline;
delete options.outline;
backing_mc = createEmptyMovieClip(bar, "_outline", 1);
backing = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
inside_mc = createEmptyMovieClip(bar, "_inside", 2);
inside = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
outline_mc = createEmptyMovieClip(bar, "_outline", 3);
outline = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
f = function (_arg1:Event):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
trace(("[MOCHIAD rpcTestFn] " + _arg1));
return (_arg1);
};
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Object;
var _local10:Number;
var _local11:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
_local1 = this.parent.parent.root;
_local2 = this.parent._mochiad_ctr;
_local3 = (getTimer() - this.started);
_local4 = false;
_local5 = _local1.loaderInfo.bytesTotal;
_local6 = _local1.loaderInfo.bytesLoaded;
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
_local7 = ((100 * _local6) / _local5);
_local8 = ((100 * _local3) / chk.ad_msec);
_local9 = this._mochiad_bar._inside;
_local10 = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
options.ad_progress(_local10);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7});
if (_local7 == 100){
sendHostProgress = false;
};
};
if (!chk.showing){
_local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local11 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){
options.ad_failed();
_local4 = true;
};
};
};
if (_local3 > chk.ad_msec){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
MochiAd.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
MochiAd.showInterLevelAd(_arg1);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var f:Function;
var mc = _arg1;
f = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package
Section 242
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.system.*;
import flash.net.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 243
//MovingCritterNoteBase (MovingCritterNoteBase)
package {
import flash.display.*;
import flash.text.*;
public class MovingCritterNoteBase extends MovieClip {
public var critter;
public var docked;
public var descriptiontxt:TextField;
public var headertxt:TextField;
public var showing;
public var tweenmgr:TweenManager;
public function hideNote(){
if (critter){
if (showing){
showing = false;
if (this.x > 320){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:740, y:280, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 740;
this.y = 280;
};
} else {
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:-100, y:280, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = -100;
this.y = 280;
};
};
};
critter = null;
};
}
public function showNote(_arg1){
if (_arg1 != critter){
critter = _arg1;
headertxt.text = (critter.unittype + " Critter");
descriptiontxt.text = ("Speed : " + String(critter.maxspeed));
descriptiontxt.text = ("Reward : cc " + String(critter.unitenergy));
descriptiontxt.appendText(("\nHealth : " + String(critter.unithealth)));
switch (critter.unittypeint){
case 0:
descriptiontxt.appendText("\nJust walking and killing");
break;
case 1:
descriptiontxt.appendText("\nSimply regular but stronger");
break;
case 2:
descriptiontxt.appendText("\nRunner type, weak but dangerous");
break;
case 3:
descriptiontxt.appendText("\nDefinitely strong, but slow");
break;
case 4:
descriptiontxt.appendText("\nHealer, slowly regain their health");
break;
case 5:
descriptiontxt.appendText("\nBossy type of enemy, healing and strong, and stuff");
break;
case 6:
descriptiontxt.appendText("\nSpawner, two born for one kill");
break;
case 7:
descriptiontxt.appendText("\nImmunity, not affected by slow bomb");
break;
};
if (!showing){
showing = true;
if (critter.x < 320){
this.x = 740;
this.y = 280;
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:550, y:280, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 540;
this.y = 280;
};
} else {
this.x = -100;
this.y = 280;
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:90, y:280, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 100;
this.y = 280;
};
};
} else {
if (critter.x < 200){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:550, y:280, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 540;
this.y = 280;
};
} else {
if (critter.x > 440){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:90, y:280, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 100;
this.y = 280;
};
};
};
};
} else {
descriptiontxt.text = ("Speed : " + String(critter.maxspeed));
descriptiontxt.text = ("Reward : cc " + String(critter.unitenergy));
descriptiontxt.appendText(("\nHealth : " + String(critter.unithealth)));
switch (critter.unittypeint){
case 0:
descriptiontxt.appendText("\nJust walking and killing");
break;
case 1:
descriptiontxt.appendText("\nSimply regular but stronger");
break;
case 2:
descriptiontxt.appendText("\nRunner type, weak but dangerous");
break;
case 3:
descriptiontxt.appendText("\nDefinitely strong, but slow");
break;
case 4:
descriptiontxt.appendText("\nHealer, slowly regain their health");
break;
case 5:
descriptiontxt.appendText("\nBossy type of enemy, healing and strong, and stuff");
break;
case 6:
descriptiontxt.appendText("\nSpawner, two born for one kill");
break;
case 7:
descriptiontxt.appendText("\nImmunity, not affected by slow bomb");
break;
};
if (critter.x < 200){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:550, y:280, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 540;
this.y = 280;
};
} else {
if (critter.x > 440){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:90, y:280, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 100;
this.y = 280;
};
};
};
};
}
}
}//package
Section 244
//PathTracerBase (PathTracerBase)
package {
import flash.display.*;
public class PathTracerBase extends MovieClip {
public var path:Array;
public var minspeed:Number;
public var gravity:Number;
public var speed:Number;
public var maxspeed:Number;
public var pathidx:int;
public var topspace:Number;
public var prevpathidx:int;
public var accel:Number;
public function init(_arg1, _arg2=0){
topspace = _arg2;
speed = 4;
minspeed = 2;
maxspeed = 8;
accel = 0.05;
gravity = 0.2;
this.visible = false;
setPath(_arg1);
}
public function getAngle(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:*;
var _local6:*;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (((Math.atan2(_local6, _local5) / Math.PI) * 180));
}
public function getDistance(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:*;
var _local6:*;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
public function detectPathIndex(_arg1=1){
if (pathidx == 0){
this.x = path[pathidx][0];
this.y = (path[pathidx][1] + topspace);
prevpathidx = pathidx;
pathidx++;
};
if (getDistance(this.x, this.y, path[pathidx][0], (path[pathidx][1] + topspace)) < (speed * _arg1)){
prevpathidx = pathidx;
pathidx++;
};
}
public function setPath(_arg1){
path = _arg1;
pathidx = 0;
prevpathidx = pathidx;
}
public function getX2(_arg1, _arg2, _arg3):Number{
return ((_arg1 + (_arg2 * Math.cos(((_arg3 * Math.PI) / 180)))));
}
public function setPosition(_arg1, _arg2=1){
if ((((_arg1 < -15)) && ((_arg1 > -165)))){
if (speed > minspeed){
speed = (speed - gravity);
};
} else {
if ((((_arg1 > 15)) && ((_arg1 < 165)))){
if (speed < maxspeed){
speed = (speed + (gravity + accel));
};
};
};
this.x = getX2(this.x, (speed * _arg2), _arg1);
this.y = getY2(this.y, (speed * _arg2), _arg1);
}
public function moveClip(_arg1=null){
var _local2:Number;
if (((path) && ((pathidx < path.length)))){
detectPathIndex();
if (pathidx < path.length){
this.visible = true;
_local2 = getAngle(this.x, this.y, path[pathidx][0], (path[pathidx][1] + topspace));
setPosition(_local2);
this.rotation = _local2;
};
} else {
this.visible = false;
};
}
public function getY2(_arg1, _arg2, _arg3):Number{
return ((_arg1 + (_arg2 * Math.sin(((_arg3 * Math.PI) / 180)))));
}
}
}//package
Section 245
//SelectLevelContainer (SelectLevelContainer)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class SelectLevelContainer extends MovieClip {
private var sndmgr:SoundManager;
private var menustatus;
private var curbtn:int;
public var notetext:TextField;
private var datamgr:GameDataManager;
private var btnmgr:ButtonGroupManager;
private var selectedtype:String;
public var maploader:mc_singlemaploadernotitle;
public var btlvl01:MovieClip;
public var btlvl04:MovieClip;
public var btlvl05:MovieClip;
public var btlvl06:MovieClip;
public var btlvl07:MovieClip;
public var btlvl02:MovieClip;
public var btlvl08:MovieClip;
public var btlvl03:MovieClip;
private var buttongroup:Array;
public var btlvl09:MovieClip;
public var btlvl10:MovieClip;
public var btlvl11:MovieClip;
public var btlvl12:MovieClip;
public var btlvl14:MovieClip;
public var btlvl16:MovieClip;
public var btlvl18:MovieClip;
public var btlvl19:MovieClip;
public var btlvl13:MovieClip;
public var btlvl15:MovieClip;
public var btlvl17:MovieClip;
public var btlvl20:MovieClip;
private var maintimeline:Object;
private var button:Array;
private var mapmgr:MapDataManager;
private var prevbtn:int;
public var btcancel:MovieClip;
private var buttontext:Array;
public var btok:MovieClip;
private var selectedlevel:int;
private var tweenmgr:TweenManager;
private var ctrlmgr:ControlManager;
private function goPlayGame(_arg1){
datamgr.startNewGame(selectedtype, selectedlevel, 0);
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("gamepage");
}
private function moveClip(_arg1=null){
btnmgr.moveClip(ctrlmgr.MOUSEPOS, ctrlmgr.MOUSEPRESS);
detectButtons();
if (menustatus == "backtomain"){
tweenmgr.register(this, {live:15, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:goMenuPage});
menustatus = "waiting";
} else {
if (menustatus == "goplaygame"){
tweenmgr.register(this, {live:15, ease:"easeinback", x:0, y:500, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:goPlayGame});
menustatus = "waiting";
};
};
}
public function init(_arg1){
var _local2:*;
maintimeline = _arg1;
tweenmgr = _arg1.tweenmgr;
sndmgr = _arg1.sndmgr;
ctrlmgr = maintimeline.ctrlmgr;
datamgr = maintimeline.datamgr;
button = [btlvl01, btlvl02, btlvl03, btlvl04, btlvl05, btlvl06, btlvl07, btlvl08, btlvl09, btlvl10, btlvl11, btlvl12, btlvl13, btlvl14, btlvl15, btlvl16, btlvl17, btlvl18, btlvl19, btlvl20, btok, btcancel];
buttongroup = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]];
buttontext = ["Play level 1 : 6 wave of critters ", "Play level 2 : 7 wave of critters ", "Play level 3 : 8 wave of critters ", "Play level 4 : 9 wave of critters ", "Play level 5 : 10 wave of critters ", "Play level 6 : 15 wave of critters ", "Play level 7 : 15 wave of critters ", "Play level 8 : 15 wave of critters ", "Play level 9 : 15 wave of critters ", "Play level 10 : 15 wave of critters ", "Play level 11 : 20 wave of critters ", "Play level 12 : 20 wave of critters ", "Play level 13 : 20 wave of critters ", "Play level 14 : 20 wave of critters ", "Play level 15 : 20 wave of critters ", "Play level 16 : 25 wave of critters ", "Play level 17 : 25 wave of critters ", "Play level 18 : 25 wave of critters ", "Play level 19 : 25 wave of critters ", "Play level 20 : 25 wave of critters ", "Play selected", "Back to Main Menu"];
btnmgr = new ButtonGroupManager(button, buttongroup, ["toggle"]);
_local2 = 0;
while (_local2 < button.length) {
btnmgr.registerFunction(_local2, this, {onover:showText, onout:hideText, onselect:doSound});
_local2++;
};
_local2 = 0;
while (_local2 < datamgr.mapstatus.length) {
if (datamgr.unlockallmap){
btnmgr.unlockButton(_local2);
} else {
if (datamgr.mapstatus[_local2] == 0){
btnmgr.lockButton(_local2);
};
};
_local2++;
};
btnmgr.activateButton(datamgr.getLastCampaignLevel());
mapmgr = new MapDataManager();
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
maploader.gotoAndStop(2);
prevbtn = -1;
curbtn = -1;
menustatus = "idle";
this.y = -490;
tweenmgr.register(this, {live:15, ease:"easeoutback", x:0, y:0, alpha:1, rotation:0, scalex:1, scaley:1});
sndmgr.playBGM("maintheme");
}
private function doSound(_arg1){
maintimeline.sndmgr.playSFX("guiselect");
}
private function detectButtons(){
var _local1:*;
var _local2:*;
if (curbtn > -1){
prevbtn = curbtn;
};
curbtn = -1;
_local2 = false;
_local1 = 0;
while (_local1 < btnmgr.status.length) {
if ((((btnmgr.status[_local1] > 0)) && (!((_local1 == prevbtn))))){
curbtn = _local1;
};
if (btnmgr.status[_local1] > 0){
_local2 = true;
};
_local1++;
};
if (!_local2){
maploader.clearMap();
maploader.gotoAndStop(2);
selectedtype = "";
selectedlevel = -1;
};
if ((((curbtn < 20)) && ((curbtn > -1)))){
maploader.gotoAndStop(1);
maploader.setMap(mapmgr.defmapname[curbtn], mapmgr.defmapdata[curbtn]);
selectedtype = "wave";
selectedlevel = curbtn;
} else {
if (curbtn == 20){
if (((!((selectedtype == ""))) && (!((selectedlevel == -1))))){
menustatus = "goplaygame";
};
} else {
if (curbtn == 21){
menustatus = "backtomain";
};
};
};
}
private function hideText(_arg1){
if (notetext.text == buttontext[_arg1]){
if (selectedlevel == -1){
notetext.text = "";
} else {
notetext.text = buttontext[selectedlevel];
};
};
}
private function goMenuPage(_arg1){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("menupage");
}
private function showText(_arg1){
notetext.text = buttontext[_arg1];
}
}
}//package
Section 246
//sfx_enemyreachend (sfx_enemyreachend)
package {
public dynamic class sfx_enemyreachend extends BaseSound {
}
}//package
Section 247
//sfx_enemystart (sfx_enemystart)
package {
public dynamic class sfx_enemystart extends BaseSound {
}
}//package
Section 248
//sfx_enemystart2 (sfx_enemystart2)
package {
public dynamic class sfx_enemystart2 extends BaseSound {
}
}//package
Section 249
//sfx_explodemine (sfx_explodemine)
package {
public dynamic class sfx_explodemine extends BaseSound {
}
}//package
Section 250
//sfx_explodenormal (sfx_explodenormal)
package {
public dynamic class sfx_explodenormal extends BaseSound {
}
}//package
Section 251
//sfx_exploderocket (sfx_exploderocket)
package {
public dynamic class sfx_exploderocket extends BaseSound {
}
}//package
Section 252
//sfx_explodeslow (sfx_explodeslow)
package {
public dynamic class sfx_explodeslow extends BaseSound {
}
}//package
Section 253
//sfx_guiselect (sfx_guiselect)
package {
public dynamic class sfx_guiselect extends BaseSound {
}
}//package
Section 254
//sfx_negative (sfx_negative)
package {
public dynamic class sfx_negative extends BaseSound {
}
}//package
Section 255
//sfx_papertear01 (sfx_papertear01)
package {
public dynamic class sfx_papertear01 extends BaseSound {
}
}//package
Section 256
//sfx_papertear02 (sfx_papertear02)
package {
public dynamic class sfx_papertear02 extends BaseSound {
}
}//package
Section 257
//sfx_papertear03 (sfx_papertear03)
package {
public dynamic class sfx_papertear03 extends BaseSound {
}
}//package
Section 258
//sfx_supporttowerbuilt (sfx_supporttowerbuilt)
package {
public dynamic class sfx_supporttowerbuilt extends BaseSound {
}
}//package
Section 259
//sfx_towerconstruct (sfx_towerconstruct)
package {
public dynamic class sfx_towerconstruct extends BaseSound {
}
}//package
Section 260
//sfx_towerfinishedconstruct (sfx_towerfinishedconstruct)
package {
public dynamic class sfx_towerfinishedconstruct extends BaseSound {
}
}//package
Section 261
//SmallNote (SmallNote)
package {
import flash.events.*;
import flash.display.*;
public class SmallNote extends MovieClip {
private var skin:MovieClip;
private var bmpskin:Bitmap;
private var bdskin:BitmapData;
public function SmallNote(_arg1, _arg2, _arg3, _arg4, _arg5){
var _local6:*;
super();
_local6 = (Math.random() * 360);
this.x = _arg2;
this.y = _arg3;
if (_arg4 == "damage"){
skin = new mc_damagedone();
_arg5.register(this, {live:30, ease:"easeoutquint", x:_arg2, y:(_arg3 + 50), alpha:0, rotation:0, scalex:1, scaley:1, startx:0, starty:0, startalpha:1, startrotation:0, startscalex:1, startscaley:1});
} else {
if (_arg4 == "ink"){
skin = new mc_inkreceived();
_arg5.register(this, {live:30, ease:"easenone", x:590, y:330, alpha:0, rotation:0, scalex:1, scaley:1, startx:0, starty:0, startalpha:1, startrotation:0, startscalex:1, startscaley:1});
};
};
skin.txt.text = _arg1;
bdskin = new BitmapData(skin.width, skin.height, true, 0xFFFFFF);
bdskin.lock();
bdskin.draw(skin);
bdskin.unlock();
bmpskin = new Bitmap(bdskin, "auto", true);
bmpskin.x = (bmpskin.x - (bmpskin.width / 2));
bmpskin.y = (bmpskin.y - (bmpskin.height / 2));
this.addChild(bmpskin);
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
}
public function getX2(_arg1, _arg2, _arg3):Number{
return ((_arg1 + (_arg2 * Math.cos(((_arg3 * Math.PI) / 180)))));
}
public function moveClip(_arg1){
if (this.alpha < 0.1){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
if (this.parent.contains(this)){
this.parent.removeChild(this);
};
};
}
public function getY2(_arg1, _arg2, _arg3):Number{
return ((_arg1 + (_arg2 * Math.sin(((_arg3 * Math.PI) / 180)))));
}
}
}//package
Section 262
//SoundManager (SoundManager)
package {
public class SoundManager {
private var tracing:Boolean;// = false
private var bgmdefaultvolume:Array;
private var sfxdefault:Array;
public var sfxvolume:Number;// = 1
public var bgmvolume:Number;// = 1
private var sfxdefaultvolume:Array;
private var usingsfxarray:Boolean;
private var bgmdefault:Array;
private var sndfx:Array;
private var sndbgm:BaseSound;
public function SoundManager(_arg1=true){
tracing = false;
bgmvolume = 1;
sfxvolume = 1;
super();
if (tracing){
trace("Sound Manager:$init: Use array : ", _arg1);
};
usingsfxarray = _arg1;
bgmdefault = new Array();
bgmdefaultvolume = new Array();
sfxdefault = new Array();
sfxdefaultvolume = new Array();
sndfx = new Array();
bgmdefault["maintheme"] = new bgm_maintheme();
bgmdefaultvolume["maintheme"] = 1;
if (usingsfxarray){
sfxdefault["negative"] = new sfx_negative();
sfxdefault["explodemine"] = new sfx_explodemine();
sfxdefault["explodenormal"] = new sfx_explodenormal();
sfxdefault["exploderocket"] = new sfx_exploderocket();
sfxdefault["explodeslow"] = new sfx_explodeslow();
sfxdefault["guiselect"] = new sfx_guiselect();
sfxdefault["papertear01"] = new sfx_papertear01();
sfxdefault["papertear02"] = new sfx_papertear02();
sfxdefault["papertear03"] = new sfx_papertear03();
sfxdefault["mouseattack"] = new sfx_papertear03();
sfxdefault["supporttowerbuilt"] = new sfx_supporttowerbuilt();
sfxdefault["towerconstruct"] = new sfx_towerconstruct();
sfxdefault["towerfinishedconstruct"] = new sfx_towerfinishedconstruct();
sfxdefault["enemyreachend"] = new sfx_enemyreachend();
sfxdefault["enemystart"] = new sfx_enemystart();
sfxdefault["enemystart2"] = new sfx_enemystart2();
};
sfxdefaultvolume["negative"] = 1;
sfxdefaultvolume["explodemine"] = 0.5;
sfxdefaultvolume["explodenormal"] = 0.5;
sfxdefaultvolume["exploderocket"] = 0.5;
sfxdefaultvolume["explodeslow"] = 0.5;
sfxdefaultvolume["guiselect"] = 1;
sfxdefaultvolume["papertear01"] = 0.5;
sfxdefaultvolume["papertear02"] = 0.5;
sfxdefaultvolume["papertear03"] = 0.5;
sfxdefaultvolume["mouseattack"] = 0.05;
sfxdefaultvolume["supporttowerbuilt"] = 0.5;
sfxdefaultvolume["towerconstruct"] = 0.5;
sfxdefaultvolume["towerfinishedconstruct"] = 0.5;
sfxdefaultvolume["enemyreachend"] = 0.7;
sfxdefaultvolume["enemystart"] = 1;
sfxdefaultvolume["enemystart2"] = 1;
}
public function adjustBGM(_arg1=1){
bgmvolume = _arg1;
refreshVolume();
if (tracing){
trace("Sound Manager:adjustBGM: Adjusted to : ", bgmvolume);
};
}
private function startSFX(_arg1, _arg2=1){
var _local3:*;
_local3 = 0;
if (sndfx.length < 20){
_arg1.playSound();
_arg1.setVolume((_arg2 * sfxvolume));
sndfx.push(_arg1);
} else {
_local3 = (sndfx.length - 1);
while (_local3 >= 0) {
if (!sndfx[_local3].sndPlaying){
sndfx[_local3].stopSound();
sndfx.splice(_local3, 1);
};
_local3--;
};
if (_arg1){
_arg1.playSound();
_arg1.setVolume((_arg2 * sfxvolume));
sndfx.push(_arg1);
};
};
}
public function adjustSFX(_arg1=1){
sfxvolume = _arg1;
if (tracing){
trace("Sound Manager:adjustSFX: Adjusted to : ", sfxvolume);
};
}
public function refreshVolume(){
if (sndbgm){
sndbgm.setVolume(bgmvolume);
};
}
private function startSFX2(_arg1, _arg2=1){
_arg1.playSound();
_arg1.setVolume((_arg2 * sfxvolume));
}
public function stopSFX(){
var _local1:*;
var _local2:*;
if (usingsfxarray){
_local1 = (sndfx.length - 1);
while (_local1 >= 0) {
if (sndfx[_local1].sndPlaying){
sndfx[_local1].stopSound();
};
sndfx.splice(_local1, 1);
_local1--;
};
} else {
for each (_local2 in sfxdefault) {
if (_local2.sndPlaying){
_local2.stopSound();
};
};
};
}
private function createSFX(_arg1):BaseSound{
switch (_arg1){
case "negative":
return (new sfx_negative());
case "explodemine":
return (new sfx_explodemine());
case "explodenormal":
return (new sfx_explodenormal());
case "exploderocket":
return (new sfx_exploderocket());
case "explodeslow":
return (new sfx_explodeslow());
case "guiselect":
return (new sfx_guiselect());
case "papertear01":
return (new sfx_papertear01());
case "papertear02":
return (new sfx_papertear02());
case "papertear03":
return (new sfx_papertear03());
case "mouseattack":
if (Math.random() > 0.6){
return (new sfx_papertear01());
};
if (Math.random() > 0.6){
return (new sfx_papertear02());
};
return (new sfx_papertear03());
case "supporttowerbuilt":
return (new sfx_supporttowerbuilt());
case "towerconstruct":
return (new sfx_towerconstruct());
case "towerfinishedconstruct":
return (new sfx_towerfinishedconstruct());
case "enemyreachend":
return (new sfx_enemyreachend());
case "enemystart":
return (new sfx_enemystart());
case "enemystart2":
return (new sfx_enemystart2());
};
return (null);
}
public function stopBGM(){
if (sndbgm){
if (tracing){
trace("Sound Manager:stopBGM: BGM stopped");
};
sndbgm.stopSound();
sndbgm = null;
};
}
public function playSFX(_arg1:String=""){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local3 = Math.random();
_local4 = false;
_local5 = 0;
if (usingsfxarray){
if (sfxdefault[_arg1]){
startSFX(createSFX(_arg1), sfxdefaultvolume[_arg1]);
if (tracing){
trace("Sound Manager:playSFX: Playing sfx : ", _arg1);
};
} else {
if (tracing){
trace("Sound Manager:playSFX: Invalid sfx param : ", _arg1);
};
};
} else {
if (sfxdefault[_arg1]){
startSFX2(sfxdefault[_arg1], sfxdefaultvolume[_arg1]);
if (tracing){
trace("Sound Manager:playSFX: Playing sfx : ", _arg1);
};
} else {
if (tracing){
trace("Sound Manager:playSFX: Invalid sfx param : ", _arg1);
};
};
};
}
public function playBGM(_arg1:String=""){
if (bgmdefault[_arg1]){
if (sndbgm != bgmdefault[_arg1]){
stopBGM();
sndbgm = bgmdefault[_arg1];
sndbgm.playSoundLoop();
sndbgm.setVolume((bgmvolume * bgmdefaultvolume[_arg1]));
sndbgm.fadeIn(true);
if (tracing){
trace("Sound Manager:playBGM: play bgm : ", _arg1);
};
} else {
sndbgm.setVolume((1 * bgmvolume));
if (tracing){
trace("Sound Manager:playBGM: play bgm : ", _arg1);
};
};
} else {
if (tracing){
trace("Sound Manager:playBGM: Invalid bgm param : ", _arg1);
};
};
}
}
}//package
Section 263
//SplashBase (SplashBase)
package {
import flash.display.*;
public class SplashBase extends Sprite {
private var live:int;
private var movespeed:Number;
private var startscale:Number;
private var type:String;
private var skin:Sprite;
private var stopscale:Number;
private var stopy:Number;
private var stopx:Number;
public var alphaminus:Number;
public var status:String;
public function SplashBase(_arg1, _arg2="blood"){
type = _arg2;
this.x = _arg1.x;
this.y = _arg1.y;
if (type == "blood"){
switch (_arg1.unittypeint){
case 0:
skin = new mc_blood1();
break;
case 1:
skin = new mc_blood2();
break;
case 2:
skin = new mc_blood3();
break;
case 3:
skin = new mc_blood4();
break;
case 4:
skin = new mc_blood5();
break;
case 5:
skin = new mc_blood6();
break;
case 6:
skin = new mc_blood7();
break;
case 7:
default:
skin = new mc_blood8();
break;
};
alphaminus = 1E-5;
movespeed = (1 - (Math.random() / 5));
startscale = (1 - (Math.random() / 4));
stopscale = (2 - (Math.random() / 2));
stopx = (this.x + ((-50 * Math.random()) + 25));
stopy = (this.y + ((-50 * Math.random()) + 25));
skin.rotation = ((Math.random() * 360) - 180);
skin.scaleX = startscale;
skin.scaleY = startscale;
this.addChild(skin);
} else {
if (type == "mouse"){
live = 15;
};
};
status = "idle";
}
public function moveClip(){
if (type == "blood"){
if ((stopscale - skin.scaleY) > 0.01){
skin.scaleX = (skin.scaleX + ((stopscale - skin.scaleX) * movespeed));
skin.scaleY = (skin.scaleY + ((stopscale - skin.scaleY) * movespeed));
this.x = (this.x + ((stopx - this.x) * movespeed));
this.y = (this.y + ((stopy - this.y) * movespeed));
} else {
if ((stopscale - skin.scaleY) < 0.01){
if (skin.alpha > 0.15){
skin.alpha = (skin.alpha - alphaminus);
} else {
skin.alpha = 1;
status = "finished";
};
};
};
} else {
if (type == "mouse"){
live--;
if (live <= 0){
status = "finished";
};
};
};
}
}
}//package
Section 264
//StagePanelContainer (StagePanelContainer)
package {
import flash.display.*;
import flash.geom.*;
import flash.text.*;
public class StagePanelContainer extends MovieClip {
public var btcolor1:MovieClip;
public var btcolor2:MovieClip;
public var btcolor4:MovieClip;
private var sndmgr:SoundManager;
public var btcolor3:MovieClip;
private var noteindex:int;
public var progress:int;
private var btnmgr:ButtonGroupManager;
public var mclivecounter:MovieClip;
private var stagecolordata:Array;
public var btexit:MovieClip;
private var mouseovertowerbuttonidx:int;
public var buttongroup:Array;
public var notes:TextField;
private var tracing:Boolean;// = false
public var inktxt:TextField;
private var stagetime:int;
public var wavetxt:TextField;
public var btpause:MovieClip;
private var stagetowerdata:Array;
public var panelstatus:String;
private var stagewave:Array;
public var bttower2:MovieClip;
public var bttower3:MovieClip;
public var bttower5:MovieClip;
public var bttower1:MovieClip;
public var bttower4:MovieClip;
private var stagewavedata:Array;
public var button:Array;
public var btspeed:MovieClip;
private var stagetype:String;
public var mctimecounter:mc_timecounter;
public var mcsaveprogress:MovieClip;
public var mcpanelnotes:MovieClip;
public var buttontext:Array;
public var btwalkthrough:MovieClip;
public var waveindex:int;
public var btrestart:MovieClip;
private var mouseovercolorbuttonidx:int;
public var gamespeed:int;
public var mcwavecounter:mc_wavecounter;
public var critterstxt:TextField;
public var buttonstatus:Array;
private var notecounter:int;
private var ctrlmgr:ControlManager;
public var buttonmode:Array;
public var btsound:MovieClip;
public function StagePanelContainer(){
tracing = false;
super();
}
public function activateButton(_arg1){
btnmgr.activateButton(_arg1);
}
private function showTowerNote(_arg1){
var _idx = _arg1;
mcpanelnotes.x = ctrlmgr.MOUSEPOS.x;
mcpanelnotes.y = ctrlmgr.MOUSEPOS.y;
if (mcpanelnotes.y > 240){
mcpanelnotes.y = (mcpanelnotes.y - 20);
if ((((mcpanelnotes.x > 320)) && (!((mcpanelnotes.currentFrame == 2))))){
mcpanelnotes.gotoAndStop(2);
} else {
if ((((mcpanelnotes.x <= 320)) && (!((mcpanelnotes.currentFrame == 1))))){
mcpanelnotes.gotoAndStop(1);
};
};
} else {
mcpanelnotes.y = (mcpanelnotes.y + 20);
if ((((mcpanelnotes.x > 320)) && (!((mcpanelnotes.currentFrame == 4))))){
mcpanelnotes.gotoAndStop(4);
} else {
if ((((mcpanelnotes.x <= 320)) && (!((mcpanelnotes.currentFrame == 3))))){
mcpanelnotes.gotoAndStop(3);
};
};
};
if (noteindex != _idx){
notecounter = 0;
noteindex = _idx;
var _local3 = mcpanelnotes.notecontent;
with (_local3) {
gotoAndStop(1);
noteheader.text = buttontext[(noteindex - 1000)];
notelabel.text = "Type\nCost\nAttack\nSpecialty";
notetext.text = stagetowerdata[(noteindex - 1000)];
};
mcpanelnotes.visible = true;
};
}
public function showLockedNotice(_arg1){
var _local2:*;
_local2 = new mc_locknotice();
_local2.start(this, ctrlmgr.MOUSEPOS.x, ctrlmgr.MOUSEPOS.y, new Rectangle(0, 0, 640, 480), (ctrlmgr.MOUSEPOS.x < 320));
sndmgr.playSFX("negative");
}
public function toggleGamePause(){
if (panelstatus == "paused"){
panelstatus = "playing";
} else {
if (panelstatus == "playing"){
panelstatus = "paused";
notes.text = "Game paused";
};
};
}
public function lockButton(_arg1){
btnmgr.lockButton(_arg1);
}
public function showNoInkNotice(_arg1){
var _local2:*;
_local2 = new mc_noinknotice();
_local2.start(this, ctrlmgr.MOUSEPOS.x, ctrlmgr.MOUSEPOS.y, new Rectangle(0, 0, 640, 480), (ctrlmgr.MOUSEPOS.x < 320));
sndmgr.playSFX("negative");
}
public function disableButton(_arg1){
btnmgr.disableButton(_arg1);
}
public function deactivateGroup(_arg1){
btnmgr.deactivateGroup(_arg1);
}
public function enableButton(_arg1){
btnmgr.enableButton(_arg1);
}
public function getWaveName():String{
var _local1:*;
if (waveindex < 0){
_local1 = ("#01 _ " + stagewave[waveindex]);
};
if (waveindex > stagewave.length){
_local1 = (((("#" + ((stagewave.length < 10)) ? "0" : "") + String((stagewave.length + 1))) + " _ ") + stagewave[waveindex]);
} else {
_local1 = (((("#" + ((waveindex < 10)) ? "0" : "") + String((waveindex + 1))) + " _ ") + stagewave[waveindex]);
};
return (_local1);
}
private function showWaveNote(_arg1){
var _idx = _arg1;
mcpanelnotes.x = ctrlmgr.MOUSEPOS.x;
mcpanelnotes.y = ctrlmgr.MOUSEPOS.y;
if (mcpanelnotes.y > 240){
mcpanelnotes.y = (mcpanelnotes.y - 20);
if ((((mcpanelnotes.x > 320)) && (!((mcpanelnotes.currentFrame == 2))))){
mcpanelnotes.gotoAndStop(2);
} else {
if ((((mcpanelnotes.x <= 320)) && (!((mcpanelnotes.currentFrame == 1))))){
mcpanelnotes.gotoAndStop(1);
};
};
} else {
mcpanelnotes.y = (mcpanelnotes.y + 20);
if ((((mcpanelnotes.x > 320)) && (!((mcpanelnotes.currentFrame == 4))))){
mcpanelnotes.gotoAndStop(4);
} else {
if ((((mcpanelnotes.x <= 320)) && (!((mcpanelnotes.currentFrame == 3))))){
mcpanelnotes.gotoAndStop(3);
};
};
};
if (noteindex != _idx){
notecounter = 0;
noteindex = _idx;
var _local3 = mcpanelnotes.notecontent;
with (_local3) {
gotoAndStop(1);
noteheader.text = ("Critter wave #" + String((noteindex + 1)));
notelabel.text = "Type\nCount\nHealth\nAbility";
notetext.text = stagewavedata[noteindex];
};
mcpanelnotes.visible = true;
};
}
public function setInkButtonLevel(_arg1, _arg2){
if (_arg2 < 10){
if (button[_arg1].mcinkreload.currentFrame != (_arg2 + 1)){
button[_arg1].mcinkreload.gotoAndStop((_arg2 + 1));
};
} else {
if (button[_arg1].mcinkreload.currentFrame < 11){
button[_arg1].mcinkreload.gotoAndPlay(11);
};
};
}
public function deactivateButton(_arg1){
btnmgr.deactivateButton(_arg1);
}
public function moveClip(_arg1=null){
btnmgr.moveClip(ctrlmgr.MOUSEPOS, ctrlmgr.MOUSEPRESS);
detectButton();
if (panelstatus == "playing"){
if (mouseovertowerbuttonidx > -1){
showTowerNote(mouseovertowerbuttonidx);
} else {
if (mouseovercolorbuttonidx > -1){
showColorNote(mouseovercolorbuttonidx);
} else {
noteindex = -1;
};
};
mcwavecounter.moveClip(ctrlmgr.MOUSEPOS, (ctrlmgr.MOUSEPRESS > 0));
if (mcwavecounter.waveindex > -1){
waveindex = mcwavecounter.waveindex;
progress = mcwavecounter.progress;
};
if (mcwavecounter.mouseoveridx > -1){
showWaveNote(mcwavecounter.mouseoveridx);
};
notecounter++;
if ((((notecounter > 90)) || ((noteindex < 0)))){
mcpanelnotes.visible = false;
};
};
ctrlmgr.moveClip();
}
private function checkSelectedButton(){
if (buttonstatus[0]){
};
if (buttonstatus[1]){
};
if (buttonstatus[2]){
};
if (buttonstatus[3]){
};
if (buttonstatus[4]){
};
if (buttonstatus[5]){
panelstatus = "endplayerrequest";
};
if (buttonstatus[6]){
if (panelstatus == "playing"){
panelstatus = "restarting";
if (stagetype == "wave"){
mcwavecounter.startCounter(stagewave);
} else {
if (stagetype == "time"){
mctimecounter.startCounter(stagetime);
};
};
};
};
if (buttonstatus[7]){
if (panelstatus == "playing"){
panelstatus = "paused";
notes.text = "Game paused";
};
} else {
if (panelstatus == "paused"){
panelstatus = "playing";
notes.text = "";
};
};
if (buttonstatus[8]){
};
if (buttonstatus[9]){
};
if (buttonstatus[10]){
};
if (buttonstatus[11]){
};
if (buttonstatus[12]){
};
if (buttonstatus[13]){
MovieClip(this.stage.getChildAt(0)).goWalkthrough();
};
}
public function init(_arg1, _arg2, _arg3, _arg4){
var _local5:*;
sndmgr = MovieClip(this.stage.getChildAt(0)).sndmgr;
ctrlmgr = MovieClip(this.stage.getChildAt(0)).ctrlmgr;
mouseovertowerbuttonidx = -1;
mouseovercolorbuttonidx = -1;
stagetime = 900000;
stagewave = _arg2;
stagewavedata = _arg3;
stagetowerdata = _arg4;
stagetype = _arg1;
stagecolordata = new Array("Normal\n3\nunlimited\nnone", "Triple Attack\n6\n20 s\nnone", "Slow Attack\n12\n10 s\nslow", "Freeze Attack\n12\n5 s\nfreeze");
mcwavecounter.visible = true;
mctimecounter.visible = false;
mcwavecounter.startCounter(stagewave);
button = [bttower1, bttower2, bttower3, bttower4, bttower5, btexit, btrestart, btpause, btsound, btcolor1, btcolor2, btcolor3, btcolor4, btwalkthrough];
buttongroup = [[0, 1, 2, 3, 4], [9, 10, 11, 12], [7], [8]];
buttonmode = ["normal", "toggle", "normal", "normal"];
buttontext = new Array("Create normal tower", "Create area tower", "Create accuration tower", "Create support tower", "Create chain mine tower", "Back to menu", "Restart current game", "Pause/resume game", "Toggle sound", "Use color #01", "Use color #02", "Use color #03", "Use color #04", "See game walkthrough");
btnmgr = new ButtonGroupManager(button, buttongroup, buttonmode);
buttonstatus = btnmgr.status;
btnmgr.resetButtons();
_local5 = 0;
while (_local5 < (button.length - 1)) {
btnmgr.registerFunction(_local5, this, {onover:showText, onout:hideText, onselect:doSound});
_local5++;
};
_local5 = 0;
while (_local5 < 5) {
btnmgr.registerFunction(_local5, this, {ondisabledselect:showNoInkNotice, onlockedselect:showLockedNotice});
_local5++;
};
_local5 = 9;
while (_local5 < 13) {
btnmgr.registerFunction(_local5, this, {onlockedselect:showLockedNotice});
_local5++;
};
if (tracing){
trace("StagePanelContainer:init: Starting counter, time:", String((stagetime / 60000)), " min, wave:", stagewave);
};
mclivecounter.gotoAndStop(21);
panelstatus = "playing";
gamespeed = 1;
btspeed.gotoAndStop(1);
waveindex = 0;
progress = 0;
mcpanelnotes.visible = false;
}
private function doSound(_arg1){
sndmgr.playSFX("guiselect");
}
public function speedUpWave(){
mcwavecounter.speedup = true;
}
private function showColorNote(_arg1){
var _idx = _arg1;
mcpanelnotes.x = ctrlmgr.MOUSEPOS.x;
mcpanelnotes.y = ctrlmgr.MOUSEPOS.y;
if (mcpanelnotes.y > 240){
mcpanelnotes.y = (mcpanelnotes.y - 20);
if ((((mcpanelnotes.x > 320)) && (!((mcpanelnotes.currentFrame == 2))))){
mcpanelnotes.gotoAndStop(2);
} else {
if ((((mcpanelnotes.x <= 320)) && (!((mcpanelnotes.currentFrame == 1))))){
mcpanelnotes.gotoAndStop(1);
};
};
} else {
mcpanelnotes.y = (mcpanelnotes.y + 20);
if ((((mcpanelnotes.x > 320)) && (!((mcpanelnotes.currentFrame == 4))))){
mcpanelnotes.gotoAndStop(4);
} else {
if ((((mcpanelnotes.x <= 320)) && (!((mcpanelnotes.currentFrame == 3))))){
mcpanelnotes.gotoAndStop(3);
};
};
};
if (noteindex != _idx){
notecounter = 0;
noteindex = _idx;
var _local3 = mcpanelnotes.notecontent;
with (_local3) {
gotoAndStop(1);
noteheader.text = buttontext[((noteindex - 1100) + 9)];
notelabel.text = "Type\nAttack\nTime\nSpecialty";
notetext.text = stagecolordata[(noteindex - 1100)];
};
mcpanelnotes.visible = true;
};
}
function hideText(_arg1){
if (notes.text == buttontext[_arg1]){
notes.text = "";
};
}
private function detectButton(){
var _local1:int;
var _local2:Boolean;
_local2 = false;
_local1 = 0;
while (_local1 < btnmgr.rect.length) {
if (btnmgr.rect[_local1].containsPoint(ctrlmgr.MOUSEPOS)){
if ((((_local1 < 5)) && ((btnmgr.status[_local1] > -2)))){
mouseovertowerbuttonidx = (_local1 + 1000);
} else {
if ((((((_local1 > 8)) && ((_local1 < 13)))) && ((btnmgr.status[_local1] > -2)))){
mouseovercolorbuttonidx = ((_local1 - 9) + 1100);
} else {
mouseovertowerbuttonidx = -1;
};
};
_local2 = true;
};
_local1++;
};
if (!_local2){
mouseovertowerbuttonidx = -1;
mouseovercolorbuttonidx = -1;
} else {
if (mouseovertowerbuttonidx > -1){
mouseovercolorbuttonidx = -1;
};
if (mouseovercolorbuttonidx > -1){
mouseovertowerbuttonidx = -1;
};
};
gamespeed = btspeed.currentFrame;
checkSelectedButton();
}
public function unlockButton(_arg1){
btnmgr.unlockButton(_arg1);
}
function showText(_arg1){
notes.text = buttontext[_arg1];
}
}
}//package
Section 265
//StageSceneContainer (StageSceneContainer)
package {
import flash.display.*;
import flash.geom.*;
public class StageSceneContainer extends MovieClip {
private var mouseattackctr:int;
private var drawmatrix:Matrix;
public var towerunit:Array;
public var sndmgr:SoundManager;
public var udatamgr:UnitDataManager;
private var path:Array;
public var curbuild:Array;
public var mouseattackcolorindex:int;// = 0
public var curlivelost:int;
private var layertower:Sprite;
private var layerfxtmp:Sprite;
private var mouseattackcolor:Array;
private var pathcreator:MeshPath;
public var mcstart:MovieClip;
private var mcmovingcritternote:MovieClip;
public var mcstop:MovieClip;
private var mousepress:int;
private var prevmousepos:Point;
public var curenergy:int;
public var mctutorial:MovieClip;
public var mouseattackmax:Array;
public var enemyunit:Array;
public var mouseattack:Boolean;
private var layerdead:Sprite;
public var mapmgr:MapDataManager;
private var recttowerupgradenote:Rectangle;
private var mapdrawer:MapDrawerBase;
public var mctowerupgradenote:MovieClip;
private var layerbg:Bitmap;
private var ctrmovingcritternote:int;
private var databg:BitmapData;
private var mapid:int;
public var mouseattacktime:Array;
private var mousepos:Point;
public var enemymgr:EnemyWaveManager;
public var cursell:Array;
private var gamespeed:int;
public var layercreate:TowerCreateBase;
private var ctrtowerupgradenote:int;
public var curkill:Array;
private var wavetype:String;
public var bulletunit:Array;
public var tweenmgr:TweenManager;
private var waveid:int;
public var layerscene:Sprite;
public var usedcolor:Array;
public var layerfx:Bitmap;
private var datafx:BitmapData;
public function StageSceneContainer(){
mouseattackmax = [100, 100, 100, 100];
mouseattacktime = [50, 0, 0, 0];
mouseattackcolor = [9215330, 16629813, 13247624, 5285082];
mouseattackcolorindex = 0;
super();
}
private function removeBlowArea(_arg1){
if (layerdead.contains(_arg1)){
layerdead.removeChild(_arg1);
};
}
public function getTotalEnemyLast():int{
return ((enemymgr.getTotalEnemyCount() + enemyunit.length));
}
public function getWaveString():Array{
return (enemymgr.getWaveString(wavetype, waveid));
}
private function createBloodSplat(_arg1){
if (layerfxtmp.numChildren < 10){
layerfxtmp.addChild(new SplashBase(_arg1, "blood"));
layerfxtmp.addChild(new SplashBase(_arg1, "blood"));
layerfxtmp.addChild(new SplashBase(_arg1, "blood"));
} else {
layerfxtmp.addChild(new SplashBase(_arg1, "blood"));
};
}
private function createBlowArea(_arg1){
var _local2:*;
_local2 = new mc_blowarea();
_local2.x = _arg1.x;
_local2.y = _arg1.y;
_local2.alpha = 1;
_local2.scaleX = ((_arg1.bulletrange * 0.5) / 50);
_local2.scaleY = ((_arg1.bulletrange * 0.5) / 50);
layerdead.addChild(_local2);
tweenmgr.register(_local2, {live:5, ease:"easenone", x:_local2.x, y:_local2.y, alpha:0, rotation:0, scalex:((_arg1.bulletrange * 2) / 50), scaley:((_arg1.bulletrange * 2) / 50)}, {scope:this, onfinished:removeBlowArea});
}
public function loadMap(){
mapdrawer.clearMap();
databg.draw(mapdrawer);
datafx.draw(mapdrawer);
if (wavetype == "time"){
mapdrawer.setMap(mapmgr.mapname[mapid], mapmgr.mapdata[mapid]);
} else {
if (wavetype == "wave"){
mapdrawer.setMap(mapmgr.defmapname[waveid], mapmgr.defmapdata[waveid]);
};
};
databg.draw(mapdrawer);
if (pathcreator.createMesh(mapdrawer.pointarray)){
path = pathcreator.path;
};
enemymgr.createEnemyWave(path, wavetype, waveid);
}
public function addTowerUnit(_arg1, _arg2, _arg3){
var _local4:*;
curbuild[_arg1] = (curbuild[_arg1] + 1);
_local4 = new TowerUnitBase(_arg1, udatamgr, towerunit);
_local4.x = _arg2;
_local4.y = _arg3;
layertower.addChild(_local4);
if (_arg1 == 3){
_local4.supportTowersInRange();
} else {
_local4.checkSupportTowersInRange();
};
towerunit.push(_local4);
}
public function cancelCreateTower(){
if (layercreate.towerstatus != "idle"){
layercreate.cancelCreateTower();
};
}
private function detectMouseAttack(){
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = 0;
while (_local1 < mouseattacktime.length) {
if (mouseattacktime[_local1] < mouseattackmax[_local1]){
mouseattacktime[_local1] = (mouseattacktime[_local1] + ((1 / (_local1 + 1)) / 10));
};
_local1++;
};
_local1 = 0;
_local3 = false;
while ((((_local1 < enemyunit.length)) && (!(_local3)))) {
_local3 = (enemyunit[_local1].getDistance(mousepos.x, mousepos.y, enemyunit[_local1].x, enemyunit[_local1].y) < 50);
_local1++;
};
if (((!((prevmousepos.x == mousepos.x))) || (!((prevmousepos.y == mousepos.y))))){
mouseattack = ((mousepress) || (_local3));
} else {
mouseattack = false;
};
if (mouseattack){
createMouseTrack(mousepos);
mouseattackctr = (mouseattackctr + gamespeed);
if (mouseattackctr > 3){
mouseattackctr = 0;
mouseattacktime[mouseattackcolorindex] = (mouseattacktime[mouseattackcolorindex] - mouseattackcolorindex);
if (mouseattacktime[mouseattackcolorindex] < 0){
mouseattacktime[mouseattackcolorindex] = 0;
};
_local1 = 0;
while (_local1 < enemyunit.length) {
if (enemyunit[_local1].getDistance(mousepos.x, mousepos.y, enemyunit[_local1].x, enemyunit[_local1].y) < (enemyunit[_local1].width / 2)){
sndmgr.playSFX("mouseattack");
createBloodSplat(enemyunit[_local1]);
switch (mouseattackcolorindex){
case 0:
enemyunit[_local1].reduceHealth((3 + ((Math.random() * enemyunit[_local1].unitfactor) / 2)));
_local2 = new SmallNote(String(Math.floor((3 + (Math.random() * enemyunit[_local1].unitfactor)))), enemyunit[_local1].x, enemyunit[_local1].y, "damage", tweenmgr);
layerdead.addChild(_local2);
break;
case 1:
enemyunit[_local1].reduceHealth((7 + ((Math.random() * enemyunit[_local1].unitfactor) / 2)));
_local2 = new SmallNote(String(Math.floor((7 + (Math.random() * enemyunit[_local1].unitfactor)))), enemyunit[_local1].x, enemyunit[_local1].y, "damage", tweenmgr);
layerdead.addChild(_local2);
break;
case 2:
enemyunit[_local1].slowUnit();
enemyunit[_local1].reduceHealth((12 + ((Math.random() * enemyunit[_local1].unitfactor) / 2)));
_local2 = new SmallNote(String(Math.floor((12 + (Math.random() * enemyunit[_local1].unitfactor)))), enemyunit[_local1].x, enemyunit[_local1].y, "damage", tweenmgr);
layerdead.addChild(_local2);
break;
case 3:
enemyunit[_local1].freezeUnit();
enemyunit[_local1].reduceHealth((12 + ((Math.random() * enemyunit[_local1].unitfactor) / 2)));
_local2 = new SmallNote(String(Math.floor((12 + (Math.random() * enemyunit[_local1].unitfactor)))), enemyunit[_local1].x, enemyunit[_local1].y, "damage", tweenmgr);
layerdead.addChild(_local2);
break;
};
};
_local1++;
};
};
};
}
public function moveClip(_arg1, _arg2, _arg3){
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
prevmousepos = mousepos;
mousepos = this.globalToLocal(_arg1);
mousepress = _arg2;
gamespeed = _arg3;
detectMouseAttack();
moveUnit();
_local4 = 0;
while (_local4 < layerfxtmp.numChildren) {
_local6 = layerfxtmp.getChildAt(_local4);
if (layerfxtmp.numChildren > 15){
_local6.alphaminus = (_local6.alphaminus * 1.5);
};
_local6.moveClip();
if (_local6.status == "finished"){
datafx.lock();
drawmatrix.tx = _local6.x;
drawmatrix.ty = _local6.y;
datafx.draw(_local6, drawmatrix, null, BlendMode.NORMAL);
datafx.unlock();
layerfxtmp.removeChild(_local6);
};
_local4++;
};
}
public function getWaveDescString():Array{
return (enemymgr.getWaveDescString());
}
private function getEnemyInRange(_arg1, _arg2="tower"):Array{
var _local3:*;
var _local4:Array;
var _local5:*;
if (_arg2 == "tower"){
_local5 = _arg1.towerrange;
} else {
if (_arg2 == "bullet"){
_local5 = _arg1.bulletrange;
};
};
_local4 = new Array();
_local3 = 0;
while (_local3 < enemyunit.length) {
if (_arg1.getDistance(enemyunit[_local3]) < _local5){
_local4.push(enemyunit[_local3]);
};
_local3++;
};
return (_local4);
}
private function moveUnit(){
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = (bulletunit.length - 1);
while (_local1 > -1) {
bulletunit[_local1].moveClip(gamespeed);
detectHit(bulletunit[_local1]);
switch (bulletunit[_local1].bulletstatus){
case "hit":
case "destroyed":
case "outbordered":
if (layerscene.contains(bulletunit[_local1])){
layerscene.removeChild(bulletunit[_local1]);
};
bulletunit.splice(_local1, 1);
break;
};
_local1--;
};
_local1 = (enemyunit.length - 1);
while (_local1 > -1) {
if (enemyunit[_local1].unithealth == 0){
if (enemyunit[_local1].unittypeint == 6){
_local2 = new TracerUnitBase(waveid, 8, enemyunit[_local1].unitfactor, enemyunit[_local1].path, udatamgr);
_local2.x = ((enemyunit[_local1].x + 50) - (Math.random() * 100));
_local2.y = ((enemyunit[_local1].y + 50) - (Math.random() * 100));
_local2.pathidx = enemyunit[_local1].pathidx;
_local2.unitskin.alpha = 1;
_local2.unitskin.scaleX = 1;
_local2.unitskin.scaleY = 1;
enemyunit.push(_local2);
layerscene.addChild(_local2);
_local2 = new TracerUnitBase(waveid, 8, enemyunit[_local1].unitfactor, enemyunit[_local1].path, udatamgr);
_local2.x = ((enemyunit[_local1].x + 50) - (Math.random() * 100));
_local2.y = ((enemyunit[_local1].y + 50) - (Math.random() * 100));
_local2.pathidx = enemyunit[_local1].pathidx;
_local2.unitskin.alpha = 1;
_local2.unitskin.scaleX = 1;
_local2.unitskin.scaleY = 1;
enemyunit.push(_local2);
layerscene.addChild(_local2);
};
if (layerscene.contains(enemyunit[_local1])){
layerscene.removeChild(enemyunit[_local1]);
};
curenergy = (curenergy + enemyunit[_local1].unitenergy);
_local2 = new SmallNote(String(Math.floor(enemyunit[_local1].unitenergy)), enemyunit[_local1].x, enemyunit[_local1].y, "ink", tweenmgr);
layerdead.addChild(_local2);
curkill[udatamgr.defaultunittype.indexOf(enemyunit[_local1].unittype)] = (curkill[udatamgr.defaultunittype.indexOf(enemyunit[_local1].unittype)] + 1);
enemyunit.splice(_local1, 1);
if (Math.random() > 0.6){
sndmgr.playSFX("papertear01");
} else {
if (Math.random() > 0.3){
sndmgr.playSFX("papertear02");
} else {
sndmgr.playSFX("papertear03");
};
};
} else {
if (((!((enemyunit[_local1].pathidx == enemyunit[_local1].prevpathidx))) && ((enemyunit[_local1].pathidx == enemyunit[_local1].path.length)))){
sndmgr.playSFX("enemyreachend");
enemyunit[_local1].prevpathidx = enemyunit[_local1].pathidx;
curlivelost = (curlivelost + 1);
} else {
if (enemyunit.length > 10){
enemyunit[_local1].freezeSkin();
};
enemyunit[_local1].moveClip(gamespeed);
};
};
_local1--;
};
_local3 = false;
_local1 = (enemyunit.length - 1);
while (_local1 > -1) {
if (enemyunit[_local1].getDistance(enemyunit[_local1].x, enemyunit[_local1].y, mousepos.x, mousepos.y) < (enemyunit[_local1].width / 3)){
_local3 = true;
mcmovingcritternote.showNote(enemyunit[_local1]);
ctrmovingcritternote = 0;
};
_local1--;
};
if (!_local3){
ctrmovingcritternote++;
if (ctrmovingcritternote > 60){
mcmovingcritternote.hideNote();
};
};
layercreate.moveClip(mousepos, mousepress);
if (layercreate.towerstatus == "finish"){
if (!mctowerupgradenote.noterect.containsPoint(mousepos)){
sndmgr.playSFX("towerconstruct");
addTowerUnit(layercreate.towertype, layercreate.x, layercreate.y);
curenergy = (curenergy - getPrice(layercreate.towertype));
if (!mctutorial.finished){
if (mctutorial.step == 5){
mctutorial.hideTutorial();
mctutorial.showTutorial(5, 600);
};
};
} else {
showWrongPlacementNotice();
};
} else {
if (layercreate.towerstatus == "cancel"){
showWrongPlacementNotice();
};
};
_local1 = (towerunit.length - 1);
while (_local1 > -1) {
towerunit[_local1].moveClip(mousepos, mousepress, getEnemyInRange(towerunit[_local1]), gamespeed);
if (towerunit[_local1].towerstatus == "attack"){
addBulletUnit(towerunit[_local1]);
} else {
if (towerunit[_local1].towerstatus == "almostready"){
switch (towerunit[_local1].towertype){
case 0:
case 1:
case 2:
case 4:
sndmgr.playSFX("towerfinishedconstruct");
break;
case 3:
sndmgr.playSFX("supporttowerbuilt");
break;
};
};
};
_local1--;
};
_local3 = false;
_local1 = (towerunit.length - 1);
while (_local1 > -1) {
if (towerunit[_local1].towerstatus != "build"){
if (towerunit[_local1].getDistance(mousepos) < (towerunit[_local1].width / 3)){
_local3 = true;
if (mousepress){
mctowerupgradenote.showDockedNote(towerunit[_local1]);
ctrtowerupgradenote = 0;
} else {
ctrtowerupgradenote++;
if (ctrtowerupgradenote > 15){
mctowerupgradenote.showNote(towerunit[_local1]);
ctrtowerupgradenote = 0;
};
};
};
};
_local1--;
};
if (!_local3){
recttowerupgradenote.x = (mctowerupgradenote.x - (mctowerupgradenote.width / 2));
recttowerupgradenote.y = (mctowerupgradenote.y - (mctowerupgradenote.height / 2));
if (recttowerupgradenote.containsPoint(mousepos)){
ctrtowerupgradenote = 0;
} else {
if (mousepress){
mctowerupgradenote.hideDockedNote();
} else {
if (!mctowerupgradenote.docked){
ctrtowerupgradenote++;
if (ctrtowerupgradenote > 60){
ctrtowerupgradenote = 0;
mctowerupgradenote.hideNote();
};
};
};
};
};
switch (mctowerupgradenote.status){
case "upgrade":
if (mctowerupgradenote.tower.towerlevel < 4){
curenergy = (curenergy - udatamgr.defaulttowerprice[(mctowerupgradenote.tower.towerlevel + 1)][mctowerupgradenote.tower.towertype]);
mctowerupgradenote.tower.upgradeTower();
mctowerupgradenote.refreshNote();
};
mctowerupgradenote.status = "idle";
break;
case "sell":
mctowerupgradenote.tower.sellTower();
layertower.removeChild(mctowerupgradenote.tower);
cursell[mctowerupgradenote.tower.towertype] = (cursell[mctowerupgradenote.tower.towertype] + 1);
towerunit.splice(towerunit.indexOf(mctowerupgradenote.tower), 1);
if (mctowerupgradenote.tower.towerlevel > 0){
curenergy = (curenergy + Math.floor(((udatamgr.defaulttowerprice[0][mctowerupgradenote.tower.towertype] + mctowerupgradenote.tower.udatamgr.defaulttowerprice[mctowerupgradenote.tower.towerlevel][mctowerupgradenote.tower.towertype]) * 0.75)));
} else {
curenergy = (curenergy + Math.floor((udatamgr.defaulttowerprice[mctowerupgradenote.tower.towerlevel][mctowerupgradenote.tower.towertype] * 0.75)));
};
mctowerupgradenote.status = "idle";
mctowerupgradenote.hideDockedNote();
break;
};
}
public function setSpeed(_arg1=1){
gamespeed = _arg1;
}
public function init(_arg1, _arg2, _arg3){
mapid = _arg1;
wavetype = _arg2;
waveid = _arg3;
gamespeed = 1;
mousepos = new Point();
mapmgr = new MapDataManager();
udatamgr = new UnitDataManager();
enemymgr = new EnemyWaveManager(udatamgr);
databg = new BitmapData(640, 320, true, 0xFFFFFF);
datafx = new BitmapData(640, 320, true, 0xFFFFFF);
drawmatrix = new Matrix();
layerbg = new Bitmap(databg, "auto", true);
layerfx = new Bitmap(datafx, "auto", true);
layerfxtmp = new Sprite();
layerdead = new Sprite();
layertower = new Sprite();
layerscene = new Sprite();
layercreate = new TowerCreateBase();
mapdrawer = new MapDrawerBase();
this.addChild(layerbg);
this.addChild(layerfx);
this.addChild(layertower);
this.addChild(layerscene);
this.addChild(layerfxtmp);
this.addChild(layerdead);
this.addChild(layercreate);
mctowerupgradenote = new mc_towerupgradenote();
mctowerupgradenote.tweenmgr = tweenmgr;
mctowerupgradenote.x = -100;
mctowerupgradenote.y = 110;
this.addChild(mctowerupgradenote);
recttowerupgradenote = new Rectangle((mctowerupgradenote.x - (mctowerupgradenote.width / 2)), (mctowerupgradenote.y - (mctowerupgradenote.height / 2)), mctowerupgradenote.width, mctowerupgradenote.height);
mcmovingcritternote = new mc_movingcritternote();
mcmovingcritternote.tweenmgr = tweenmgr;
mcmovingcritternote.x = -100;
mcmovingcritternote.y = 550;
this.addChild(mcmovingcritternote);
layerbg.alpha = 0.8;
layerfx.alpha = 0.2;
pathcreator = new MeshPath([mcstart.x, mcstart.y], [mcstop.x, mcstop.y]);
path = new Array();
enemyunit = new Array();
towerunit = new Array();
bulletunit = new Array();
usedcolor = [true, false, false, false];
loadMap();
}
public function addBulletUnit(_arg1){
var _local2:*;
_local2 = new BulletObjectBase(_arg1);
layerscene.addChild(_local2);
bulletunit.push(_local2);
}
public function showWrongPlacementNotice(){
var _local1:*;
_local1 = new mc_wrongplacementnotice();
_local1.start(this, mousepos.x, mousepos.y, new Rectangle(0, 0, 640, 480), (mousepos.x < 320));
sndmgr.playSFX("negative");
}
public function getDistance(_arg1, _arg2):Number{
var _local3:*;
var _local4:*;
_local3 = (_arg2.x - _arg1.x);
_local4 = (_arg2.y - _arg1.y);
return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4))));
}
private function joinArray(_arg1, _arg2):Array{
var _local3:*;
var _local4:*;
_local3 = new Array();
_local4 = 0;
while (_local4 < _arg1.length) {
_local3.push(_arg1[_local4]);
_local4++;
};
_local4 = 0;
while (_local4 < _arg2.length) {
_local3.push(_arg2[_local4]);
_local4++;
};
return (_local3);
}
public function getPrice(_arg1):int{
return (udatamgr.defaulttowerprice[0][_arg1]);
}
public function getWaveEnemyLast():int{
return (enemymgr.getWaveEnemyCount());
}
public function startCreateTower(_arg1){
if ((((layercreate.towerstatus == "idle")) || (!((layercreate.towertype == _arg1))))){
layercreate.cancelCreateTower();
layercreate.startCreateTower(_arg1, towerunit, databg, udatamgr);
mctowerupgradenote.hideDockedNote();
};
}
public function getTowerDescString():Array{
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = new Array();
_local3 = 0;
while (_local3 < udatamgr.defaulttowertype.length) {
_local2 = (udatamgr.defaulttowertype[_local3] + "\n");
_local2 = (_local2 + (("cc " + String(Math.floor(udatamgr.defaulttowerprice[0][_local3]))) + "\n"));
_local2 = (_local2 + (String(Math.floor(udatamgr.defaulttowerattack[0][_local3])) + "\n"));
switch (_local3){
case 0:
_local2 = (_local2 + "None");
break;
case 1:
_local2 = (_local2 + "Slow (area)");
break;
case 2:
_local2 = (_local2 + "Missile (area)");
break;
case 3:
_local2 = (_local2 + "Support");
break;
case 4:
_local2 = (_local2 + "Mine (area)");
break;
};
_local1.push(_local2);
_local3++;
};
return (_local1);
}
public function createMouseTrack(_arg1){
var _local2:*;
var _local3:*;
_local3 = new SplashBase(_arg1, "mouse");
if (prevmousepos){
_local2 = new Sprite();
_local2.graphics.lineStyle(3, mouseattackcolor[mouseattackcolorindex]);
_local2.graphics.moveTo(0, 0);
_local2.graphics.lineTo((prevmousepos.x - mousepos.x), (prevmousepos.y - mousepos.y));
_local3.addChild(_local2);
};
layerfxtmp.addChild(_local3);
}
public function dispatchEnemyUnit(_arg1, _arg2){
var _local3:*;
_local3 = enemymgr.dispatchEnemyUnit(_arg1, _arg2, enemyunit.length);
if (_local3){
if (_local3.unittypeint > 2){
sndmgr.playSFX("enemystart");
} else {
sndmgr.playSFX("enemystart2");
};
layerscene.addChild(_local3);
enemyunit.push(_local3);
};
}
private function detectHit(_arg1){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local4 = new Array();
_local2 = 0;
while (_local2 < enemyunit.length) {
if (_arg1.getDistance(enemyunit[_local2]) < 10){
_arg1.bulletstatus = "hit";
switch (_arg1.bullettype){
case 0:
sndmgr.playSFX("explodenormal");
createBloodSplat(enemyunit[_local2]);
enemyunit[_local2].reduceHealth(_arg1.bulletattack);
_local5 = new SmallNote(String(Math.floor(_arg1.bulletattack)), enemyunit[_local2].x, enemyunit[_local2].y, "damage", tweenmgr);
layerdead.addChild(_local5);
_local2 = enemyunit.length;
break;
case 1:
sndmgr.playSFX("explodeslow");
_local4 = getEnemyInRange(_arg1, "bullet");
_local3 = 0;
while (_local3 < _local4.length) {
createBloodSplat(_local4[_local3]);
_local4[_local3].reduceHealth((_arg1.bulletattack + (Math.random() * 3)));
_local5 = new SmallNote(String(Math.floor((_arg1.bulletattack + (Math.random() * 3)))), _local4[_local3].x, _local4[_local3].y, "damage", tweenmgr);
layerdead.addChild(_local5);
_local4[_local3].slowUnit();
if (_local4[_local3].speed < 0.5){
_local4[_local3].speed = 0.5;
};
_local3++;
};
_local2 = enemyunit.length;
break;
case 2:
sndmgr.playSFX("exploderocket");
_local4 = getEnemyInRange(_arg1, "bullet");
_local3 = 0;
while (_local3 < _local4.length) {
createBloodSplat(_local4[_local3]);
_local4[_local3].reduceHealth((_arg1.bulletattack + (Math.random() * 3)));
_local5 = new SmallNote(String(Math.floor((_arg1.bulletattack + (Math.random() * 3)))), _local4[_local3].x, _local4[_local3].y, "damage", tweenmgr);
layerdead.addChild(_local5);
_local3++;
};
_local2 = enemyunit.length;
break;
case 4:
sndmgr.playSFX("explodemine");
_local4 = getEnemyInRange(_arg1, "bullet");
_local3 = 0;
while (_local3 < _local4.length) {
createBloodSplat(_local4[_local3]);
_local4[_local3].reduceHealth((_arg1.bulletattack + (Math.random() * 3)));
_local5 = new SmallNote(String(Math.floor((_arg1.bulletattack + (Math.random() * 3)))), _local4[_local3].x, _local4[_local3].y, "damage", tweenmgr);
layerdead.addChild(_local5);
_local3++;
};
_local2 = enemyunit.length;
break;
};
};
_local2++;
};
if (((!((_arg1.bullettype == 0))) && ((_arg1.bulletstatus == "hit")))){
createBlowArea(_arg1);
};
}
public function destroy(){
this.removeChild(layerbg);
this.removeChild(layerfx);
this.removeChild(layertower);
this.removeChild(layerscene);
this.removeChild(layercreate);
}
}
}//package
Section 266
//TimeCounterBase (TimeCounterBase)
package {
import flash.display.*;
import flash.utils.*;
import flash.text.*;
public class TimeCounterBase extends MovieClip {
private var curtime:int;
private var lastprogresstime:int;
private var maxtime:int;
private var starttime:int;
public var progress:int;
private var lastframetime:int;
private var speed:int;
public var timetxt:TextField;
private var progressstep:int;
private var tparser:TimeParser;
private var framestep:int;
private var tracing:Boolean;// = false
public function TimeCounterBase(){
tracing = false;
super();
}
public function setSpeed(_arg1=1){
speed = _arg1;
progressstep = Math.floor(((maxtime / 1000) / speed));
framestep = Math.floor(((maxtime / 1000) / speed));
if (tracing){
trace("TimeCounterBase:setSpeed: Set counter speed:", speed);
};
}
public function startCounter(_arg1){
starttime = getTimer();
maxtime = _arg1;
progressstep = Math.floor((maxtime / 1000));
framestep = Math.floor((maxtime / 1000));
lastprogresstime = starttime;
lastframetime = starttime;
speed = 1;
progress = 0;
tparser = new TimeParser();
if (tracing){
trace("TimeCounterBase:startCounter: Set max time:", maxtime, ", progressstep:", progressstep, ", framestep:", framestep);
};
this.gotoAndStop(1);
}
public function moveClip(){
if (this.currentFrame < this.totalFrames){
curtime = getTimer();
if ((curtime - lastprogresstime) > progressstep){
lastprogresstime = curtime;
progress++;
timetxt.text = tparser.parse((((progressstep * 1000) * speed) - ((progressstep * progress) * speed)));
if (tracing){
trace("TimeCounterBase:moveClip: progress:,", progress);
};
};
if ((curtime - lastframetime) > framestep){
lastframetime = curtime;
this.gotoAndStop((this.currentFrame + 1));
};
};
}
}
}//package
Section 267
//TimeParser (TimeParser)
package {
import flash.utils.*;
public class TimeParser {
public var stime:String;
public var hour:uint;
public var smsecond:String;
public var ssecond:String;
public var time:uint;
public var msecond:uint;
public var second:uint;
public var minute:uint;
public var shour:String;
public var sminute:String;
public function TimeParser(_arg1=null){
if (_arg1){
time = _arg1;
} else {
time = getTimer();
};
parse(time);
}
public function parse(_arg1:uint, _arg2:String=":"):String{
time = _arg1;
hour = Math.floor((time / 3600000));
minute = (Math.floor((time / 60000)) % 60);
second = (Math.floor((time / 1000)) % 60);
msecond = (Math.floor((time / 10)) % 100);
shour = String(hour);
if (minute < 10){
sminute = ("0" + String(minute));
} else {
sminute = String(minute);
};
if (second < 10){
ssecond = ("0" + String(second));
} else {
ssecond = String(second);
};
if (msecond < 10){
smsecond = ("0" + String(msecond));
} else {
smsecond = String(msecond);
};
if (hour > 0){
stime = ((((((shour + _arg2) + sminute) + _arg2) + ssecond) + _arg2) + smsecond);
} else {
stime = ((((sminute + _arg2) + ssecond) + _arg2) + smsecond);
};
return (stime);
}
}
}//package
Section 268
//TowerCreateBase (TowerCreateBase)
package {
import flash.display.*;
import flash.geom.*;
public class TowerCreateBase extends Sprite {
private var mapdata:BitmapData;
private var udatamgr:UnitDataManager;
private var pointerrange:MovieClip;
public var towerstatus:String;
private var pointerskin:Sprite;
private var lastpress:int;
private var towers:Array;
private var pointerrect:Rectangle;
public var towertype:int;
public var towerrec:Rectangle;
public function stopCreateTower(){
this.removeChild(pointerskin);
this.removeChild(pointerrange);
towerstatus = "finish";
}
private function detectTower(_arg1):Boolean{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = 0;
while (_local2 < towers.length) {
_local5 = getDistance(_arg1.x, _arg1.y, towers[_local2].x, towers[_local2].y);
if ((((_local2 == 0)) || ((_local5 < _local4)))){
_local3 = towers[_local2];
_local4 = _local5;
};
_local2++;
};
if (_local3){
return ((_local4 < (_arg1.width * 1.1)));
};
return (false);
}
private function getDistance(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:*;
var _local6:*;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
public function cancelCreateTower(){
if (((pointerskin) && (this.contains(pointerskin)))){
this.removeChild(pointerskin);
};
if (((pointerrange) && (this.contains(pointerrange)))){
this.removeChild(pointerrange);
};
towerstatus = "cancel";
}
private function detectBitmap(_arg1):Boolean{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = false;
_local4 = new Point(_arg1.x, _arg1.y);
_local3 = mapdata.getPixel(_local4.x, _local4.y);
_local2 = ((_local2) || (!((_local3 == 0))));
_local5 = 0.1;
while (_local5 < 1) {
_local4 = new Point((_arg1.x + (_arg1.width * 0.4)), ((_arg1.y - (_arg1.height * 0.4)) + (_arg1.height * _local5)));
_local3 = mapdata.getPixel(_local4.x, _local4.y);
_local2 = ((_local2) || (!((_local3 == 0))));
_local4 = new Point((_arg1.x - (_arg1.width * 0.4)), ((_arg1.y - (_arg1.height * 0.4)) + (_arg1.height * _local5)));
_local3 = mapdata.getPixel(_local4.x, _local4.y);
_local2 = ((_local2) || (!((_local3 == 0))));
_local4 = new Point(((_arg1.x - (_arg1.width * 0.4)) + (_arg1.width * _local5)), (_arg1.y + (_arg1.height * 0.4)));
_local3 = mapdata.getPixel(_local4.x, _local4.y);
_local2 = ((_local2) || (!((_local3 == 0))));
_local4 = new Point(((_arg1.x - (_arg1.width * 0.4)) + (_arg1.width * _local5)), (_arg1.y - (_arg1.height * 0.4)));
_local3 = mapdata.getPixel(_local4.x, _local4.y);
_local2 = ((_local2) || (!((_local3 == 0))));
_local5 = (_local5 + 0.1);
};
return (_local2);
}
public function startCreateTower(_arg1, _arg2, _arg3, _arg4){
udatamgr = _arg4;
towertype = _arg1;
towers = _arg2;
mapdata = _arg3;
switch (towertype){
case 0:
pointerrange = new mc_towerrangecircle();
pointerskin = new mc_tower1_pointer();
break;
case 1:
pointerrange = new mc_towerrangecircle();
pointerskin = new mc_tower2_pointer();
break;
case 2:
pointerrange = new mc_towerrangecross();
pointerskin = new mc_tower3_pointer();
break;
case 3:
pointerrange = new mc_towerrangecircle();
pointerskin = new mc_tower4_pointer();
break;
case 4:
pointerrange = new mc_towerrangecircle();
pointerskin = new mc_tower5_pointer();
break;
};
pointerrange.scaleX = ((udatamgr.defaulttowerrange[0][_arg1] * 2) / 100);
pointerrange.scaleY = ((udatamgr.defaulttowerrange[0][_arg1] * 2) / 100);
this.addChild(pointerrange);
this.addChild(pointerskin);
pointerrect = new Rectangle(this.x, this.y, pointerskin.width, pointerskin.height);
towerrec = new Rectangle(15, 15, 610, 290);
towerstatus = "ready";
this.x = 320;
this.y = 160;
}
public function moveClip(_arg1, _arg2){
if (towerstatus == "ready"){
if (towerrec.containsPoint(_arg1)){
this.x = _arg1.x;
this.y = _arg1.y;
pointerrect.x = this.x;
pointerrect.y = this.y;
if (((detectBitmap(pointerrect)) || (detectTower(pointerrect)))){
pointerskin.alpha = 0.25;
pointerrange.alpha = 0;
} else {
pointerskin.alpha = 1;
pointerrange.alpha = 1;
};
if (((lastpress) && (!(_arg2)))){
if (pointerskin.alpha == 1){
stopCreateTower();
} else {
cancelCreateTower();
};
};
} else {
if (((lastpress) && (!(_arg2)))){
cancelCreateTower();
};
};
lastpress = _arg2;
} else {
if (towerstatus != "idle"){
towerstatus = "idle";
};
};
}
}
}//package
Section 269
//TowerUnitBase (TowerUnitBase)
package {
import flash.display.*;
import flash.geom.*;
public class TowerUnitBase extends Sprite {
private var mouseovercounter:int;
public var towerskin:MovieClip;
public var towerunit:Array;
public var udatamgr:UnitDataManager;
public var towerlevel:int;
private var towerinrange:Array;
public var towerstatus:String;
private var towerlvskin:MovieClip;
private var towerattackcounter:int;
private var towerrangeskin:MovieClip;
public var towerangle:Number;
public var towerrect:Rectangle;
public var towerslow:Number;
public var towerattack:Number;
private var gamespeed:int;
public var towertypestr:String;
public var towersupport:Array;
public var towertype:int;
public var towertarget:Object;
public var towerrange:Number;
public var towerspeed:Number;
public function TowerUnitBase(_arg1, _arg2, _arg3){
var _local4:*;
super();
udatamgr = _arg2;
towertype = _arg1;
towertypestr = udatamgr.defaulttowertype[towertype];
gamespeed = 1;
towerattackcounter = 0;
mouseovercounter = 0;
towerlevel = 0;
towerrange = udatamgr.defaulttowerrange[towerlevel][towertype];
towerspeed = udatamgr.defaulttowerspeed[towerlevel][towertype];
towerattack = udatamgr.defaulttowerattack[towerlevel][towertype];
towerslow = 0;
towersupport = new Array();
switch (towertype){
case 0:
towerrangeskin = new mc_towerrangecircle();
towerskin = new mc_tower1_progress();
break;
case 1:
towerrangeskin = new mc_towerrangecircle();
towerskin = new mc_tower2_progress();
towerslow = udatamgr.defaulttowerslow;
break;
case 2:
towerrangeskin = new mc_towerrangecross();
towerskin = new mc_tower3_progress();
break;
case 3:
towerrangeskin = new mc_towerrangecircle();
towerskin = new mc_tower4_progress();
break;
case 4:
towerrangeskin = new mc_towerrangecircle();
towerskin = new mc_tower5_progress();
break;
};
setRangeSkin();
towerskin.alpha = 0;
towerskin.scaleX = 2;
towerskin.scaleY = 2;
this.addChild(towerskin);
towerunit = _arg3;
towerstatus = "build";
}
public function getAngle(_arg1):Number{
var _local2:*;
var _local3:*;
_local2 = (_arg1.x - this.x);
_local3 = (_arg1.y - this.y);
return (((Math.atan2(_local3, _local2) / Math.PI) * 180));
}
public function getFactor():Number{
var _local1:*;
var _local2:*;
_local2 = 1;
_local1 = 0;
while (_local1 < towersupport.length) {
_local2 = (_local2 + (towersupport[_local1].towerattack / 100));
_local1++;
};
return (_local2);
}
public function hideRange(){
if (this.contains(towerrangeskin)){
this.removeChild(towerrangeskin);
};
}
public function addFactor(_arg1){
if (((!((towertype == 3))) && ((_arg1.towertype == 3)))){
if (towersupport.indexOf(_arg1) == -1){
towersupport.push(_arg1);
};
towerrange = (udatamgr.defaulttowerrange[towerlevel][towertype] * getFactor());
towerspeed = udatamgr.defaulttowerspeed[towerlevel][towertype];
towerattack = (udatamgr.defaulttowerattack[towerlevel][towertype] * getFactor());
setRangeSkin();
};
}
public function showRange(){
this.addChild(towerrangeskin);
this.setChildIndex(towerrangeskin, 0);
setRangeSkin();
}
public function getDistance(_arg1):Number{
var _local2:*;
var _local3:*;
_local2 = (_arg1.x - this.x);
_local3 = (_arg1.y - this.y);
return (Math.sqrt(((_local2 * _local2) + (_local3 * _local3))));
}
private function changeSkin(){
towerlvskin = new mc_towerlvl();
towerlvskin.y = 15;
towerlvskin.gotoAndStop(towerlevel);
this.addChild(towerlvskin);
this.removeChild(towerskin);
switch (towertype){
case 0:
towerskin = new mc_tower1();
break;
case 1:
towerskin = new mc_tower2();
break;
case 2:
towerskin = new mc_tower3();
break;
case 3:
towerskin = new mc_tower4();
break;
case 4:
towerskin = new mc_tower5();
break;
};
towerskin.part.gotoAndStop(1);
this.addChild(towerskin);
towerrect = new Rectangle((this.x - (towerskin.width / 2)), (this.y - (towerskin.height / 2)), towerskin.width, towerskin.height);
}
public function getClosest(_arg1):Object{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = 0;
while (_local2 < _arg1.length) {
_local5 = getDistance(_arg1[_local2]);
if ((((_local2 == 0)) || ((_local5 < _local4)))){
_local3 = _arg1[_local2];
_local4 = _local5;
};
_local2++;
};
return (_local3);
}
private function setRangeSkin(){
towerrangeskin.scaleX = ((towerrange * 2) / 100);
towerrangeskin.scaleY = ((towerrange * 2) / 100);
}
public function getBestAngle(_arg1):Object{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = 0;
while (_local2 < _arg1.length) {
_local5 = Math.min((getAngle(_arg1[_local2]) / 90), Math.abs(((getAngle(_arg1[_local2]) / 90) - 90)));
if ((((_local2 == 0)) || ((_local5 < _local4)))){
_local3 = _arg1[_local2];
_local4 = _local5;
};
_local2++;
};
return (_local3);
}
public function supportTowersInRange(){
var _local1:*;
_local1 = 0;
while (_local1 < towerunit.length) {
if (((!((towerunit[_local1].towertype == 3))) && ((getDistance(towerunit[_local1]) <= towerrange)))){
towerunit[_local1].addFactor(this);
};
_local1++;
};
}
public function upgradeTower(){
var _local1:*;
if (towerlevel < 4){
towerlevel++;
};
towerrange = (udatamgr.defaulttowerrange[towerlevel][towertype] * getFactor());
towerspeed = udatamgr.defaulttowerspeed[towerlevel][towertype];
towerattack = (udatamgr.defaulttowerattack[towerlevel][towertype] * getFactor());
towerlvskin.gotoAndStop((towerlevel + 1));
if (towertype == 3){
supportTowersInRange();
};
setRangeSkin();
}
private function detectEnemy(_arg1){
var _local2:*;
var _local3:*;
switch (towertype){
case 0:
case 1:
if (_arg1.length > 0){
_local2 = _arg1[0];
};
if (_local2){
towerskin.part.rotation = getAngle(_local2);
};
break;
case 2:
if (_arg1.length > 0){
_local2 = getBestAngle(_arg1);
};
if (_local2){
_local3 = getAngle(_local2);
if (Math.abs(_local3) < 10){
towerskin.part.rotation = 0;
} else {
if (Math.abs(_local3) < 45){
towerskin.part.rotation = 0;
if (Math.random() < 0.7){
towerattackcounter = (towerattackcounter - gamespeed);
};
} else {
if (Math.abs((_local3 - 90)) < 10){
towerskin.part.rotation = 90;
} else {
if (Math.abs((_local3 - 90)) < 45){
towerskin.part.rotation = 90;
if (Math.random() < 0.7){
towerattackcounter = (towerattackcounter - gamespeed);
};
} else {
if ((180 - Math.abs(_local3)) < 10){
towerskin.part.rotation = 180;
} else {
if ((180 - Math.abs(_local3)) < 45){
towerskin.part.rotation = 180;
if (Math.random() < 0.7){
towerattackcounter = (towerattackcounter - gamespeed);
};
} else {
if (Math.abs((_local3 + 90)) < 10){
towerskin.part.rotation = -90;
} else {
if (Math.abs((_local3 + 90)) < 45){
towerskin.part.rotation = -90;
if (Math.random() < 0.7){
towerattackcounter = (towerattackcounter - gamespeed);
};
};
};
};
};
};
};
};
};
};
break;
case 3:
break;
case 4:
towerskin.part.rotation = (towerskin.part.rotation + (3 * gamespeed));
break;
};
towertarget = _local2;
towerangle = towerskin.part.rotation;
}
public function moveClip(_arg1, _arg2, _arg3, _arg4){
var _local5:*;
gamespeed = _arg4;
if (towerstatus == "build"){
detectProgress();
} else {
if (towerstatus == "almostready"){
towerstatus = "ready";
} else {
if (towerstatus == "ready"){
towerattackcounter = (towerattackcounter + (gamespeed * gamespeed));
detectEnemy(_arg3);
if (((towerskin) && (towerskin.part))){
switch (towertype){
case 0:
case 1:
case 2:
if ((((towerattackcounter > towerspeed)) && (towertarget))){
towerstatus = "attack";
towerattackcounter = 0;
towerskin.part.gotoAndPlay(2);
};
break;
case 3:
break;
case 4:
if (towerattackcounter > towerspeed){
towerstatus = "attack";
towerattackcounter = 0;
towerskin.part.gotoAndPlay(2);
};
break;
};
};
} else {
if (towerstatus == "attack"){
towerstatus = "waitattack";
} else {
if (towerstatus == "waitattack"){
if (((towerskin) && (towerskin.part))){
if (towerskin.part.currentFrame == towerskin.part.totalFrames){
towerskin.part.gotoAndStop(1);
towerstatus = "ready";
};
};
};
};
};
};
};
}
public function checkSupportTowersInRange(){
var _local1:*;
_local1 = 0;
while (_local1 < towerunit.length) {
if ((((towerunit[_local1].towertype == 3)) && ((getDistance(towerunit[_local1]) <= towerunit[_local1].towerrange)))){
addFactor(towerunit[_local1]);
};
_local1++;
};
}
public function sellTower(){
var _local1:*;
if (towertype == 3){
_local1 = 0;
while (_local1 < towerunit.length) {
if (((!((towerunit[_local1] == this))) && (!((towerunit[_local1].towertype == 3))))){
towerunit[_local1].removeFactor(this);
};
_local1++;
};
};
}
private function detectProgress(){
if (towerskin.scaleX > 1){
towerskin.alpha = (towerskin.alpha + 0.2);
towerskin.scaleX = (towerskin.scaleX - 0.2);
towerskin.scaleY = (towerskin.scaleY - 0.2);
if (towerskin.scaleX <= 1){
towerskin.alpha = 1;
towerskin.scaleX = 1;
towerskin.scaleY = 1;
};
};
if (towerskin.currentFrame == towerskin.totalFrames){
changeSkin();
towerstatus = "almostready";
};
}
public function removeFactor(_arg1){
var _local2:*;
_local2 = towersupport.indexOf(_arg1);
if (_local2 != -1){
towersupport.splice(_local2, 1);
towerrange = (udatamgr.defaulttowerrange[towerlevel][towertype] * getFactor());
towerspeed = udatamgr.defaulttowerspeed[towerlevel][towertype];
towerattack = (udatamgr.defaulttowerattack[towerlevel][towertype] * getFactor());
setRangeSkin();
};
}
}
}//package
Section 270
//TowerUpgradeNoteBase (TowerUpgradeNoteBase)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.text.*;
public class TowerUpgradeNoteBase extends MovieClip {
private var initialized:Boolean;
public var tower:TowerUnitBase;
public var descriptiontxt:TextField;
private var upgradelimit:int;
public var status:String;
public var docked:Boolean;
public var btupgrade:SimpleButton;
public var towerlvl:int;
public var btsell:SimpleButton;
public var headertxt:TextField;
public var showing:Boolean;
public var tweenmgr:TweenManager;
public var noterect:Rectangle;
public var upgradetxt:TextField;
public var selltxt:TextField;
public function showDockedNote(_arg1){
if (!initialized){
init();
};
status = "idle";
if (_arg1 != tower){
if (tower){
tower.hideRange();
};
tower = _arg1;
btupgrade.visible = checkLimit();
docked = true;
tower.showRange();
headertxt.text = (tower.towertypestr + " Tower");
descriptiontxt.text = ("Level : " + String(Math.floor((tower.towerlevel + 1))));
descriptiontxt.appendText(("\nRange : " + String(Math.floor((tower.towerrange * tower.getFactor())))));
descriptiontxt.appendText(("\nSpeed : " + String(Math.floor(tower.towerspeed))));
descriptiontxt.appendText(("\nPower : " + String(Math.floor((tower.towerattack * tower.getFactor())))));
switch (tower.towertype){
case 0:
descriptiontxt.appendText("\nRegular Attack\nSimple but deadly");
break;
case 1:
descriptiontxt.appendText("\nArea Attack\nSlow enemy in range");
break;
case 2:
descriptiontxt.appendText("\nArea Attack\nFast for horizontal & diagonal");
break;
case 3:
descriptiontxt.appendText("\nSupporting purpose\nIncrease abilities of nearby towers");
break;
case 4:
descriptiontxt.appendText("\nArea Attack\nLays chain mine around");
break;
};
if (tower.towerlevel < 4){
upgradetxt.text = ("Cost : " + String(tower.udatamgr.defaulttowerprice[(tower.towerlevel + 1)][tower.towertype]));
upgradetxt.appendText("\nRange : ");
upgradetxt.appendText(String((tower.udatamgr.defaulttowerrange[(tower.towerlevel + 1)][tower.towertype] * tower.getFactor())));
upgradetxt.appendText("\nSpeed : ");
upgradetxt.appendText(String(tower.udatamgr.defaulttowerspeed[(tower.towerlevel + 1)][tower.towertype]));
upgradetxt.appendText("\nPower : ");
upgradetxt.appendText(String((tower.udatamgr.defaulttowerattack[(tower.towerlevel + 1)][tower.towertype] * tower.getFactor())));
} else {
upgradetxt.text = "Maximum\nunit upgrade\nreached";
};
if (tower.towerlevel > 0){
selltxt.text = (("cc " + String(Math.floor(((tower.udatamgr.defaulttowerprice[0][tower.towertype] + tower.udatamgr.defaulttowerprice[tower.towerlevel][tower.towertype]) * 0.75)))) + " ink back");
} else {
selltxt.text = (("cc " + String(Math.floor((tower.udatamgr.defaulttowerprice[tower.towerlevel][tower.towertype] * 0.75)))) + " ink back");
};
if (!showing){
showing = true;
if (tower.x < 320){
this.x = 740;
this.y = 110;
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:550, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 540;
this.y = 110;
};
} else {
this.x = -100;
this.y = 110;
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:90, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 100;
this.y = 110;
};
};
} else {
if (tower.x < 200){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:550, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 540;
this.y = 110;
};
} else {
if (tower.x > 440){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:90, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 100;
this.y = 110;
};
};
};
};
} else {
docked = true;
tower.showRange();
};
}
public function hideDockedNote(){
if (!initialized){
init();
};
status = "idle";
if (tower){
tower.hideRange();
if (showing){
showing = false;
if (this.x > 320){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:740, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 740;
this.y = 110;
};
} else {
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:-100, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = -100;
this.y = 110;
};
};
};
docked = false;
tower = null;
};
}
public function init(){
btupgrade.addEventListener(MouseEvent.CLICK, upgradeTower, false, 0, true);
btsell.addEventListener(MouseEvent.CLICK, sellTower, false, 0, true);
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
initialized = true;
status = "idle";
noterect = new Rectangle((this.x - (this.width / 2)), (this.y - (this.height / 2)), this.width, this.height);
}
public function hideNote(){
if (!initialized){
init();
};
status = "idle";
if (tower){
if (!docked){
tower.hideRange();
if (showing){
showing = false;
if (this.x > 320){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:740, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 740;
this.y = 110;
};
} else {
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:-100, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = -100;
this.y = 110;
};
};
};
tower = null;
};
};
}
public function refreshNote(){
descriptiontxt.text = ("Level : " + String(Math.floor((tower.towerlevel + 1))));
descriptiontxt.appendText(("\nRange : " + String(Math.floor((tower.towerrange * tower.getFactor())))));
descriptiontxt.appendText(("\nSpeed : " + String(Math.floor(tower.towerspeed))));
descriptiontxt.appendText(("\nPower : " + String(Math.floor((tower.towerattack * tower.getFactor())))));
switch (tower.towertype){
case 0:
descriptiontxt.appendText("\nRegular Attack\nSimple but deadly");
break;
case 1:
descriptiontxt.appendText("\nArea Attack\nSlow enemy in range");
break;
case 2:
descriptiontxt.appendText("\nArea Attack\nFast for horizontal & diagonal");
break;
case 3:
descriptiontxt.appendText("\nSupporting purpose\nIncrease abilities of nearby towers");
break;
case 4:
descriptiontxt.appendText("\nArea Attack\nLays chain mine around");
break;
};
if (tower.towerlevel < 4){
upgradetxt.text = ("Cost : " + String(Math.floor(tower.udatamgr.defaulttowerprice[(tower.towerlevel + 1)][tower.towertype])));
upgradetxt.appendText("\nRange : ");
upgradetxt.appendText(String(Math.floor((tower.udatamgr.defaulttowerrange[(tower.towerlevel + 1)][tower.towertype] * tower.getFactor()))));
upgradetxt.appendText("\nSpeed : ");
upgradetxt.appendText(String(Math.floor(tower.udatamgr.defaulttowerspeed[(tower.towerlevel + 1)][tower.towertype])));
upgradetxt.appendText("\nPower : ");
upgradetxt.appendText(String(Math.floor((tower.udatamgr.defaulttowerattack[(tower.towerlevel + 1)][tower.towertype] * tower.getFactor()))));
} else {
upgradetxt.text = "Maximum\nunit upgrade\nreached";
};
if (tower.towerlevel > 0){
selltxt.text = (("cc " + String(Math.floor(((tower.udatamgr.defaulttowerprice[0][tower.towertype] + tower.udatamgr.defaulttowerprice[tower.towerlevel][tower.towertype]) * 0.75)))) + " ink back");
} else {
selltxt.text = (("cc " + String(Math.floor((tower.udatamgr.defaulttowerprice[tower.towerlevel][tower.towertype] * 0.75)))) + " ink back");
};
}
public function upgradeTower(_arg1=null){
if (((tower) && (checkLimit()))){
status = "upgrade";
upgradelimit = (upgradelimit - tower.udatamgr.defaulttowerprice[(tower.towerlevel + 1)][tower.towertype]);
};
}
public function setLimit(_arg1){
if (((!((status == "upgrade"))) && (!((_arg1 == upgradelimit))))){
upgradelimit = _arg1;
btupgrade.visible = checkLimit();
};
}
public function showNote(_arg1){
if (!initialized){
init();
};
status = "idle";
if (_arg1 != tower){
if (!docked){
if (tower){
tower.hideRange();
};
tower = _arg1;
towerlvl = tower.towerlevel;
btupgrade.visible = checkLimit();
tower.showRange();
headertxt.text = (tower.towertypestr + " Tower");
descriptiontxt.text = ("Level : " + String(Math.floor((tower.towerlevel + 1))));
descriptiontxt.appendText(("\nRange : " + String(Math.floor((tower.towerrange * tower.getFactor())))));
descriptiontxt.appendText(("\nSpeed : " + String(Math.floor(tower.towerspeed))));
descriptiontxt.appendText(("\nPower : " + String(Math.floor((tower.towerattack * tower.getFactor())))));
switch (tower.towertype){
case 0:
descriptiontxt.appendText("\nRegular Attack\nSimple but deadly");
break;
case 1:
descriptiontxt.appendText("\nArea Attack\nSlow enemy in range");
break;
case 2:
descriptiontxt.appendText("\nArea Attack\nFast for horizontal & diagonal");
break;
case 3:
descriptiontxt.appendText("\nSupporting purpose\nIncrease abilities of nearby towers");
break;
case 4:
descriptiontxt.appendText("\nArea Attack\nLays chain mine around");
break;
};
if (tower.towerlevel < 4){
upgradetxt.text = ("Cost : " + String(Math.floor(tower.udatamgr.defaulttowerprice[(tower.towerlevel + 1)][tower.towertype])));
upgradetxt.appendText("\nRange : ");
upgradetxt.appendText(String(Math.floor((tower.udatamgr.defaulttowerrange[(tower.towerlevel + 1)][tower.towertype] * tower.getFactor()))));
upgradetxt.appendText("\nSpeed : ");
upgradetxt.appendText(String(Math.floor(tower.udatamgr.defaulttowerspeed[(tower.towerlevel + 1)][tower.towertype])));
upgradetxt.appendText("\nPower : ");
upgradetxt.appendText(String(Math.floor((tower.udatamgr.defaulttowerattack[(tower.towerlevel + 1)][tower.towertype] * tower.getFactor()))));
} else {
upgradetxt.text = "Maximum\nunit upgrade\nreached";
};
if (tower.towerlevel > 0){
selltxt.text = (("cc " + String(Math.floor(((tower.udatamgr.defaulttowerprice[0][tower.towertype] + tower.udatamgr.defaulttowerprice[tower.towerlevel][tower.towertype]) * 0.75)))) + " ink back");
} else {
selltxt.text = (("cc " + String(Math.floor((tower.udatamgr.defaulttowerprice[tower.towerlevel][tower.towertype] * 0.75)))) + " ink back");
};
if (!showing){
showing = true;
if (tower.x < 320){
this.x = 740;
this.y = 110;
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:550, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 540;
this.y = 110;
};
} else {
this.x = -100;
this.y = 110;
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:90, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 100;
this.y = 110;
};
};
} else {
if (tower.x < 200){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:550, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 540;
this.y = 110;
};
} else {
if (tower.x > 440){
if (tweenmgr){
tweenmgr.register(this, {live:15, ease:"easeoutback", x:90, y:110, alpha:1, rotation:0, scalex:1, scaley:1});
} else {
this.x = 100;
this.y = 110;
};
};
};
};
};
};
}
public function checkLimit():Boolean{
var _local1:*;
if (tower){
_local1 = (tower.towerlevel + 1);
btupgrade.visible = false;
if (_local1 < 5){
if (upgradelimit >= tower.udatamgr.defaulttowerprice[_local1][tower.towertype]){
return (true);
};
};
};
return (false);
}
public function moveClip(_arg1){
noterect.x = (this.x - (this.width / 2));
noterect.y = (this.y - (this.height / 2));
if (((tower) && (!((towerlvl == tower.towerlevel))))){
refreshNote();
towerlvl = tower.towerlevel;
};
}
public function sellTower(_arg1=null){
if (((tower) && (btsell.enabled))){
status = "sell";
};
}
}
}//package
Section 271
//TracerUnitBase (TracerUnitBase)
package {
import flash.display.*;
import flash.geom.*;
public class TracerUnitBase extends PathTracerBase {
public var slowtimer:int;
public var unitskin:MovieClip;
public var unitenergy:int;
private var udatamgr:UnitDataManager;
private var unithealthbar:MovieClip;
public var unittypeint:int;
public var bmpskin:Bitmap;
public var frozentimer:int;
public var unittype:String;
public var unitmaxhealth:int;
public var unitfactor:Number;
public var unithealth:int;
public function TracerUnitBase(_arg1, _arg2, _arg3, _arg4, _arg5){
var _local6:*;
super();
udatamgr = _arg5;
this.topspace = 0;
this.setPath(_arg4);
_local6 = _arg2;
unittypeint = _local6;
unittype = udatamgr.defaultunittype[_local6];
unitfactor = _arg3;
unitmaxhealth = (Math.floor((udatamgr.defaultunithealth[_local6] * _arg3)) + Math.floor(((Math.random() * udatamgr.defaultunithealth[_local6]) / 10)));
unithealth = unitmaxhealth;
if (_arg1 < 5){
unitenergy = Math.floor((udatamgr.defaultunitenergy[_local6] + _arg3));
} else {
if (_arg1 < 13){
unitenergy = Math.floor((udatamgr.defaultunitenergy[_local6] + (_arg3 * 0.95)));
} else {
if (_arg1 < 17){
unitenergy = Math.floor((udatamgr.defaultunitenergy[_local6] + (_arg3 * 0.85)));
} else {
unitenergy = Math.floor((udatamgr.defaultunitenergy[_local6] + (_arg3 * 0.75)));
};
};
};
this.speed = (udatamgr.defaultunitspeed[_local6] - (Math.random() / 4));
this.minspeed = udatamgr.defaultunitminspeed[_local6];
this.maxspeed = udatamgr.defaultunitmaxspeed[_local6];
this.accel = udatamgr.defaultunitaccel[_local6];
this.gravity = udatamgr.defaultunitgravity[_local6];
initSkin(_local6);
unitskin.alpha = 0;
unitskin.scaleX = 0;
unitskin.scaleY = 0;
this.x = path[0][0];
this.y = path[0][1];
slowtimer = 0;
frozentimer = 0;
}
public function getUnitTypeInt():int{
return (udatamgr.defaultunittype.indexOf(unittype));
}
public function slowUnit(){
if (unittypeint != 7){
slowtimer = 10;
};
}
public function reduceHealth(_arg1){
unithealth = (unithealth - _arg1);
if (unithealth <= 0){
unithealth = 0;
};
unithealthbar.gotoAndStop((Math.floor(((unithealth / unitmaxhealth) * 100)) + 1));
}
public function setSkinRotation(_arg1){
switch (unittype){
case "bodyguard":
unitskin.rotation = 0;
break;
default:
unitskin.rotation = _arg1;
break;
};
}
private function initSkin(_arg1){
switch (_arg1){
case 0:
unitskin = new mc_unit1();
break;
case 1:
unitskin = new mc_unit2();
break;
case 2:
unitskin = new mc_unit3();
break;
case 3:
unitskin = new mc_unit4();
break;
case 4:
unitskin = new mc_unit5();
break;
case 5:
unitskin = new mc_unit6();
break;
case 6:
unitskin = new mc_unit7();
break;
case 7:
unitskin = new mc_unit8();
break;
case 8:
if (Math.random() < 0.5){
unitskin = new mc_unit7a();
} else {
unitskin = new mc_unit7b();
};
break;
};
this.addChild(unitskin);
if ((((((_arg1 == 5)) || ((_arg1 == 4)))) || ((_arg1 == 8)))){
freezeSkin();
};
unithealthbar = new mc_unithealth();
unithealthbar.gotoAndStop(101);
unithealthbar.y = -15;
this.addChild(unithealthbar);
}
public function resetUnit(){
this.pathidx = 0;
}
public function freezeSkin(){
var _local1:BitmapData;
var _local2:Matrix;
if (!bmpskin){
unitskin.alpha = 1;
unitskin.scaleX = 1;
unitskin.scaleY = 1;
unitskin.rotation = 0;
_local2 = new Matrix();
_local2.tx = (unitskin.width / 2);
_local2.ty = (unitskin.height / 2);
_local1 = new BitmapData(unitskin.width, unitskin.height, true, 0xFFFFFF);
_local1.draw(unitskin, _local2);
bmpskin = new Bitmap(_local1, "auto", true);
bmpskin.x = (bmpskin.x - (unitskin.width / 2));
bmpskin.y = (bmpskin.y - (unitskin.height / 2));
this.removeChild(unitskin);
unitskin = new MovieClip();
unitskin.addChild(bmpskin);
this.addChild(unitskin);
};
}
override public function moveClip(_arg1=1){
var _local2:Number;
if ((((this.pathidx == 0)) && ((unitskin.alpha < 1)))){
unitskin.alpha = (unitskin.alpha + 0.1);
unitskin.scaleX = (unitskin.scaleX + 0.1);
unitskin.scaleY = (unitskin.scaleY + 0.1);
unitskin.rotation = (unitskin.rotation + 15);
if (unitskin.alpha >= 1){
unitskin.alpha = 1;
unitskin.scaleX = 1;
unitskin.scaleY = 1;
};
} else {
if (((this.path) && ((this.pathidx < this.path.length)))){
if (frozentimer == 0){
if (slowtimer > 0){
this.speed = (this.minspeed / 2);
} else {
if (this.speed < this.minspeed){
this.speed = this.minspeed;
};
};
slowtimer = (slowtimer - _arg1);
if (slowtimer < 0){
slowtimer = 0;
};
this.detectPathIndex(_arg1);
if (this.pathidx < this.path.length){
this.visible = true;
_local2 = this.getAngle(this.x, this.y, this.path[pathidx][0], (this.path[pathidx][1] + this.topspace));
this.setPosition(_local2, _arg1);
unitskin.rotation = _local2;
};
if (unittypeint == 4){
unithealth = (unithealth + (unitfactor / 10));
} else {
if (unittypeint == 5){
unithealth = (unithealth + (unitfactor / 15));
};
};
if (unithealth > unitmaxhealth){
unithealth = unitmaxhealth;
};
unithealthbar.gotoAndStop((Math.floor(((unithealth / unitmaxhealth) * 100)) + 1));
} else {
frozentimer = (frozentimer - _arg1);
if (frozentimer < 0){
frozentimer = 0;
};
};
} else {
unitskin.alpha = (unitskin.alpha - 0.1);
unitskin.scaleX = (unitskin.scaleX - 0.1);
unitskin.scaleY = (unitskin.scaleY - 0.1);
unitskin.rotation = (unitskin.rotation + 15);
if (unitskin.alpha <= 0){
unitskin.alpha = 0;
unitskin.scaleX = 0;
unitskin.scaleY = 0;
unitenergy = (unitenergy / 2);
this.pathidx = 0;
this.x = path[0][0];
this.y = path[0][1];
};
};
};
}
public function freezeUnit(){
if (unittypeint != 7){
frozentimer = 15;
this.speed = (this.minspeed / 2);
};
}
}
}//package
Section 272
//TweenEquations (TweenEquations)
package {
public class TweenEquations {
public static var equations:Array = new Array();
public function TweenEquations(){
trace("TweenEquations is a static class and should not be instantiated.");
}
public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
if (_arg1 < (1 / 2.75)){
return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2));
};
if (_arg1 < (2 / 2.75)){
_arg1 = (_arg1 - (1.5 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2));
};
if (_arg1 < (2.5 / 2.75)){
_arg1 = (_arg1 - (2.25 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2));
};
_arg1 = (_arg1 - (2.625 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2));
}
public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
var _local7:Number;
var _local8:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period;
_local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
};
--_arg1;
return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2));
}
public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
};
return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
}
public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2));
};
_arg1 = (_arg1 - 2);
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2));
}
public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2));
}
public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2));
}
public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2));
}
public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function init():void{
equations = new Array();
equations["easenone"] = easeNone;
equations["linear"] = easeNone;
equations["easeinquad"] = easeInQuad;
equations["easeoutquad"] = easeOutQuad;
equations["easeinoutquad"] = easeInOutQuad;
equations["easeoutinquad"] = easeOutInQuad;
equations["easeincubic"] = easeInCubic;
equations["easeoutcubic"] = easeOutCubic;
equations["easeinoutcubic"] = easeInOutCubic;
equations["easeoutincubic"] = easeOutInCubic;
equations["easeinquart"] = easeInQuart;
equations["easeoutquart"] = easeOutQuart;
equations["easeinoutquart"] = easeInOutQuart;
equations["easeoutinquart"] = easeOutInQuart;
equations["easeinquint"] = easeInQuint;
equations["easeoutquint"] = easeOutQuint;
equations["easeinoutquint"] = easeInOutQuint;
equations["easeoutinquint"] = easeOutInQuint;
equations["easeinsine"] = easeInSine;
equations["easeoutsine"] = easeOutSine;
equations["easeinoutsine"] = easeInOutSine;
equations["easeoutinsine"] = easeOutInSine;
equations["easeincirc"] = easeInCirc;
equations["easeoutcirc"] = easeOutCirc;
equations["easeinoutcirc"] = easeInOutCirc;
equations["easeoutincirc"] = easeOutInCirc;
equations["easeinexpo"] = easeInExpo;
equations["easeoutexpo"] = easeOutExpo;
equations["easeinoutexpo"] = easeInOutExpo;
equations["easeoutinexpo"] = easeOutInExpo;
equations["easeinelastic"] = easeInElastic;
equations["easeoutelastic"] = easeOutElastic;
equations["easeinoutelastic"] = easeInOutElastic;
equations["easeoutinelastic"] = easeOutInElastic;
equations["easeinback"] = easeInBack;
equations["easeoutback"] = easeOutBack;
equations["easeinoutback"] = easeInOutBack;
equations["easeoutinback"] = easeOutInBack;
equations["easeinbounce"] = easeInBounce;
equations["easeoutbounce"] = easeOutBounce;
equations["easeinoutbounce"] = easeInOutBounce;
equations["easeoutinbounce"] = easeOutInBounce;
}
public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2));
}
public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001)));
}
public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2));
}
public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2));
}
public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2));
}
public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2));
}
public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2));
}
public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
var _local7:Number;
var _local8:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
_local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
--_arg1;
return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
}
public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2));
}
public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
}
public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 == 0){
return (_arg2);
};
if (_arg1 == _arg4){
return ((_arg2 + _arg3));
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005)));
};
--_arg1;
return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2));
}
public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
var _local7:Number;
var _local8:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
_local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2));
}
public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2));
}
public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
}
}//package
Section 273
//TweenManager (TweenManager)
package {
import flash.events.*;
import flash.display.*;
public class TweenManager {
public var tweenengine:MovieClip;
public var clip:Array;
public var curlive:Array;
public var clipparams:Array;
public var functions:Array;
public function TweenManager(){
TweenEquations.init();
tweenengine = new MovieClip();
tweenengine.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
clip = new Array();
curlive = new Array();
clipparams = new Array();
functions = new Array();
}
public function register(_arg1, _arg2, _arg3=null){
var _local4:*;
_local4 = clip.indexOf(_arg1);
if (_local4 > -1){
clip.splice(_local4, 1);
curlive.splice(_local4, 1);
clipparams.splice(_local4, 1);
functions.splice(_local4, 1);
};
_local4 = clip.length;
clip.push(_arg1);
curlive.push(0);
clipparams.push({live:0, ease:"easenone", x:0, y:0, alpha:1, rotation:0, scalex:1, scaley:1, startx:0, starty:0, startalpha:1, startrotation:0, startscalex:1, startscaley:1});
clipparams[_local4].live = _arg2.live;
clipparams[_local4].ease = _arg2.ease;
clipparams[_local4].x = _arg2.x;
clipparams[_local4].y = _arg2.y;
clipparams[_local4].alpha = _arg2.alpha;
clipparams[_local4].rotation = _arg2.rotation;
clipparams[_local4].scalex = _arg2.scalex;
clipparams[_local4].scaley = _arg2.scaley;
clipparams[_local4].startx = clip[_local4].x;
clipparams[_local4].starty = clip[_local4].y;
clipparams[_local4].startalpha = clip[_local4].alpha;
clipparams[_local4].startrotation = clip[_local4].rotation;
clipparams[_local4].startscalex = clip[_local4].scaleX;
clipparams[_local4].startscaley = clip[_local4].scaleY;
if (((_arg3) && (_arg3["scope"]))){
functions.push(_arg3);
} else {
functions.push({scope:null});
};
}
private function applyFunction(_arg1, _arg2){
if (((functions[_arg1]["scope"]) && (functions[_arg1][_arg2]))){
functions[_arg1][_arg2].apply(functions[_arg1]["scope"], [clip[_arg1]]);
};
}
private function moveClip(_arg1){
var _local2:*;
var _local3:*;
_local3 = true;
_local2 = (clip.length - 1);
while (_local2 > -1) {
var _local4 = curlive;
var _local5 = _local2;
var _local6 = (_local4[_local5] + 1);
_local4[_local5] = _local6;
if (curlive[_local2] <= clipparams[_local2].live){
if (Math.abs((clipparams[_local2].x - clip[_local2].x)) > 1){
_local3 = false;
clip[_local2].x = TweenEquations.equations[clipparams[_local2].ease].apply(clip, [curlive[_local2], clipparams[_local2].startx, (clipparams[_local2].x - clipparams[_local2].startx), clipparams[_local2].live]);
};
if (Math.abs((clipparams[_local2].y - clip[_local2].y)) > 1){
_local3 = false;
clip[_local2].y = TweenEquations.equations[clipparams[_local2].ease].apply(clip, [curlive[_local2], clipparams[_local2].starty, (clipparams[_local2].y - clipparams[_local2].starty), clipparams[_local2].live]);
};
if (Math.abs((clipparams[_local2].alpha - clip[_local2].alpha)) > 0.01){
_local3 = false;
clip[_local2].alpha = TweenEquations.equations[clipparams[_local2].ease].apply(clip, [curlive[_local2], clipparams[_local2].startalpha, (clipparams[_local2].alpha - clipparams[_local2].startalpha), clipparams[_local2].live]);
};
if (Math.abs((clipparams[_local2].rotation - clip[_local2].rotation)) > 1){
_local3 = false;
clip[_local2].rotation = TweenEquations.equations[clipparams[_local2].ease].apply(clip, [curlive[_local2], clipparams[_local2].startrotation, (clipparams[_local2].rotation - clipparams[_local2].startrotation), clipparams[_local2].live]);
};
if (Math.abs((clipparams[_local2].scalex - clip[_local2].scaleX)) > 0.01){
_local3 = false;
clip[_local2].scaleX = TweenEquations.equations[clipparams[_local2].ease].apply(clip, [curlive[_local2], clipparams[_local2].startscalex, (clipparams[_local2].scalex - clipparams[_local2].startscalex), clipparams[_local2].live]);
};
if (Math.abs((clipparams[_local2].scaley - clip[_local2].scaleY)) > 0.01){
_local3 = false;
clip[_local2].scaleY = TweenEquations.equations[clipparams[_local2].ease].apply(clip, [curlive[_local2], clipparams[_local2].startscaley, (clipparams[_local2].scaley - clipparams[_local2].startscaley), clipparams[_local2].live]);
};
};
if (((_local3) || ((curlive[_local2] > clipparams[_local2].live)))){
unregister(_local2);
};
_local2--;
};
}
public function unregister(_arg1){
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = functions[_arg1];
_local3 = clipparams[_arg1];
_local4 = clip[_arg1];
clip.splice(_arg1, 1);
curlive.splice(_arg1, 1);
clipparams.splice(_arg1, 1);
functions.splice(_arg1, 1);
if (((_local2["scope"]) && (_local2["onfinished"]))){
_local2["onfinished"].apply(_local2["scope"], [_local4]);
};
}
}
}//package
Section 274
//UnitDataManager (UnitDataManager)
package {
public class UnitDataManager {
public var defaultunitaccel:Array;
public var defaultwavelevel:Array;
public var defaultlevelcount:Array;
public var defaultunitenergy:Array;
public var defaulttowerrange:Array;
public var defaulttowerspeed:Array;
public var defaultunithealth:Array;
public var defaultunitspeed:Array;
public var defaultunitmaxspeed:Array;
public var defaultunitgravity:Array;
public var defaulttowerattack:Array;
public var defaulttowertype:Array;
public var defaultlevelfactor:Array;
public var defaulttimelevel;
public var defaulttowerslow:Number;// = 0.5
public var defaulttowerprice:Array;
public var defaultunitminspeed:Array;
public var defaultunittype:Array;
public function UnitDataManager(){
defaultunittype = ["Regular", "Spicy", "Runner", "Bodyguard", "Healer", "Boss", "Spawner", "Immune", "Child"];
defaultunitspeed = [2, 2, 2, 1, 1, 1.5, 2, 1.5, 1.5];
defaultunitminspeed = [1, 1, 2, 0.5, 0.5, 0.5, 1, 1.5, 1.5];
defaultunitmaxspeed = [3, 3, 4, 1.5, 1.5, 2.5, 3, 3, 3];
defaultunitaccel = [0.05, 0.05, 0.1, 0.02, 0.02, 0.03, 0.05, 0.03, 0.05];
defaultunitgravity = [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2];
defaultunithealth = [50, 75, 60, 200, 75, 500, 75, 75, 50];
defaultunitenergy = [5, 6, 7, 20, 7, 100, 10, 10, 6];
defaultwavelevel = [[0, 0, 0, 1, 0, 2], [0, 0, 0, 1, 0, 2, 3], [0, 0, 0, 1, 0, 2, 0, 3], [0, 0, 0, 1, 0, 1, 0, 2, 3], [0, 0, 0, 1, 0, 2, 0, 3, 1, 3], [0, 0, 0, 1, 1, 2, 0, 0, 3, 1, 0, 0, 5], [0, 0, 0, 1, 1, 2, 1, 2, 3, 1, 0, 3, 4], [0, 0, 0, 1, 1, 2, 1, 2, 3, 1, 0, 4, 4], [0, 0, 0, 1, 1, 2, 1, 2, 3, 1, 0, 4, 3], [0, 0, 0, 1, 1, 2, 1, 2, 3, 1, 1, 3, 5], [0, 0, 0, 1, 1, 2, 0, 0, 2, 2, 0, 0, 0, 4, 6], [0, 0, 0, 1, 1, 1, 2, 0, 3, 1, 1, 4, 0, 1, 6], [0, 0, 0, 1, 1, 1, 2, 1, 3, 1, 1, 4, 1, 1, 7], [0, 0, 0, 1, 1, 1, 2, 1, 3, 1, 1, 4, 2, 1, 7], [0, 0, 0, 1, 1, 1, 2, 1, 3, 4, 1, 4, 2, 1, 7], [0, 0, 0, 1, 1, 1, 1, 1, 2, 3, 2, 0, 0, 2, 3, 0, 0, 0, 4, 6], [0, 0, 0, 1, 1, 1, 1, 1, 2, 1, 1, 3, 0, 3, 4, 1, 6, 0, 1, 6], [0, 0, 0, 1, 1, 1, 1, 1, 2, 1, 1, 4, 1, 3, 2, 1, 6, 1, 1, 6], [0, 0, 0, 1, 1, 1, 1, 1, 2, 1, 1, 3, 1, 3, 4, 1, 6, 2, 1, 5], [0, 0, 0, 1, 1, 1, 1, 1, 2, 1, 1, 6, 1, 3, 3, 1, 4, 2, 1, 5]];
defaulttimelevel = [[0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 2, 1, 3, 1, 2, 3, 0, 0, 1, 1, 2, 1, 3, 0, 0, 4], [0, 0, 0, 1, 0, 0, 1, 0, 2, 2, 1, 1, 1, 4, 0, 1, 4, 0, 3, 1, 2, 1, 3, 4, 1, 1, 4, 2, 1, 5], [0, 0, 0, 1, 0, 0, 2, 0, 4, 0, 6, 1, 0, 3, 0, 1, 4, 0, 1, 7, 6, 1, 3, 0, 7, 1, 4, 2, 1, 5], [0, 0, 0, 1, 0, 0, 3, 0, 4, 0, 6, 1, 0, 7, 0, 1, 6, 0, 3, 0, 6, 1, 3, 1, 2, 1, 6, 7, 1, 5]];
defaultlevelcount = [5, 5, 6, 6, 7, 5, 6, 6, 7, 7, 5, 6, 7, 7, 8, 6, 7, 8, 8, 8];
defaultlevelfactor = [1.5, 1.6, 1.7, 1.8, 1.9, 2, 2, 2, 2.05, 2.05, 2.1, 2.1, 2.1, 2.15, 2.15, 2.2, 2.2, 2.2, 2.25, 2.25];
defaulttowertype = ["Normal", "Area", "Missile", "Support", "ChainMine"];
defaulttowerrange = [[35, 40, 50, 50, 60], [40, 45, 60, 55, 60], [45, 50, 70, 60, 60], [50, 55, 80, 65, 60], [50, 60, 80, 65, 60]];
defaulttowerspeed = [[15, 15, 15, 0, 8], [14, 14, 14, 0, 8], [13, 13, 13, 0, 7], [12, 12, 12, 0, 7], [11, 11, 11, 0, 6]];
defaulttowerattack = [[10, 8, 15, 10, 15], [30, 15, 30, 12, 30], [70, 35, 70, 15, 70], [120, 75, 120, 19, 120], [200, 100, 200, 25, 200]];
defaulttowerprice = [[75, 150, 250, 300, 350], [50, 100, 200, 300, 250], [100, 200, 400, 600, 500], [300, 600, 1000, 1200, 1200], [600, 1200, 2000, 2500, 2500]];
defaulttowerslow = 0.5;
super();
}
public function copyArray(_arg1){
var _local2:Array;
var _local3:int;
_local2 = new Array();
_local3 = 0;
while (_local3 < _arg1.length) {
_local2.push(_arg1[_local3]);
_local3++;
};
return (_local2);
}
}
}//package
Section 275
//wallpaperdata (wallpaperdata)
package {
import flash.display.*;
public dynamic class wallpaperdata extends BitmapData {
public function wallpaperdata(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 276
//WaveButtonBase (WaveButtonBase)
package {
import flash.display.*;
import flash.text.*;
public class WaveButtonBase extends MovieClip {
public var labeltxt:TextField;
var typed:String;
public var btunitwavehit:SimpleButton;
public var indextxt:TextField;
var labeled:String;
var indexed:int;
public function init(_arg1, _arg2, _arg3){
indexed = _arg1;
labeled = _arg2;
typed = _arg3;
indextxt.text = String(indexed);
labeltxt.text = labeled;
}
}
}//package
Section 277
//WaveCounterBase (WaveCounterBase)
package {
import flash.display.*;
import flash.geom.*;
public class WaveCounterBase extends MovieClip {
private var wavearray:Array;
private var movecounter:int;
public var speedup:Boolean;
public var mouseoveridx:int;
public var progress:int;
private var prevmousepress:Boolean;
public var speedupall:Boolean;
private var btspace:Number;// = 2
private var speed:int;
private var btleftmost:Number;// = 100
private var wavebutton:Array;
public var waveindex:int;
private var mousepos:Point;
public var mccontainer:MovieClip;
private var mousepress:Boolean;
public var tracing:Boolean;// = false
private var bttopmost:Number;// = 2.5
private var wavebuttonrect:Array;
public function WaveCounterBase(){
tracing = false;
btleftmost = 100;
bttopmost = 2.5;
btspace = 2;
super();
}
public function setSpeed(_arg1=1){
speed = _arg1;
if (tracing){
trace("WaveCounterBase:setSpeed: Set counter speed:", speed);
};
}
public function init(){
var _local1:*;
if (wavebutton){
_local1 = 0;
while (_local1 < wavebutton.length) {
if (mccontainer.contains(wavebutton[_local1])){
mccontainer.removeChild(wavebutton[_local1]);
};
_local1++;
};
};
speed = 1;
mouseoveridx = -1;
progress = 9999;
waveindex = -1;
wavearray = new Array();
wavebutton = new Array();
wavebuttonrect = new Array();
speedup = false;
speedupall = true;
}
public function startCounter(_arg1){
var _local2:*;
var _local3:*;
init();
if (tracing){
trace("\nWaveCounterBase:startCounter: Initializing wave counter");
};
wavearray = _arg1;
_local2 = 0;
while (_local2 < wavearray.length) {
_local3 = new bt_unitwave();
_local3.init((_local2 + 1), wavearray[_local2], "");
if (_local2 > 0){
_local3.x = ((wavebutton[(wavebutton.length - 1)].x + wavebutton[(wavebutton.length - 1)].width) + btspace);
_local3.y = wavebutton[(wavebutton.length - 1)].y;
} else {
_local3.x = btleftmost;
_local3.y = bttopmost;
};
mccontainer.addChild(_local3);
wavebutton.push(_local3);
wavebuttonrect.push(new Rectangle(_local3.x, _local3.y, _local3.width, _local3.height));
_local2++;
};
if (tracing){
trace("WaveCounterBase:startCounter: Wave initialized,", wavearray.length, " groups added to queue");
};
}
public function moveClip(_arg1, _arg2){
var _local3:*;
if (waveindex < wavebutton.length){
mousepos = this.globalToLocal(_arg1);
prevmousepress = mousepress;
mousepress = _arg2;
if (speedup){
if (waveindex == -1){
if (wavebutton[0].x < 0){
speedup = false;
waveindex = 0;
mccontainer.removeChild(wavebutton[0]);
movecounter = 0;
};
} else {
if (waveindex < (wavebutton.length - 1)){
if (wavebutton[(waveindex + 1)].x < 0){
speedup = false;
waveindex++;
mccontainer.removeChild(wavebutton[waveindex]);
movecounter = 0;
};
};
};
_local3 = 0;
while (_local3 < wavebutton.length) {
wavebutton[_local3].x = (wavebutton[_local3].x - 6);
wavebuttonrect[_local3].x = wavebutton[_local3].x;
_local3++;
};
} else {
if (((!(mousepress)) && (prevmousepress))){
if ((((waveindex < (wavebuttonrect.length - 1))) && (wavebuttonrect[(waveindex + 1)].containsPoint(mousepos)))){
speedup = true;
if (tracing){
trace("WaveCounterBase:moveClip: Button", (waveindex + 1), "clicked, speeding and move to wave ", (waveindex + 1));
};
};
};
if (waveindex == -1){
if (wavebutton[0].x < 0){
waveindex = 0;
mccontainer.removeChild(wavebutton[0]);
speedupall = false;
};
} else {
if (waveindex < (wavebutton.length - 1)){
if (wavebutton[(waveindex + 1)].x < 0){
waveindex++;
mccontainer.removeChild(wavebutton[waveindex]);
speedupall = false;
};
};
};
movecounter = (movecounter + speed);
if (movecounter > 20){
_local3 = 0;
while (_local3 < wavebutton.length) {
wavebutton[_local3].x = (wavebutton[_local3].x - 1);
wavebuttonrect[_local3].x = wavebutton[_local3].x;
_local3++;
};
movecounter = 0;
};
};
if (waveindex > -1){
progress = Math.floor((wavebutton[waveindex].x * -1));
};
if (progress > 100){
progress = 100;
};
if (progress < 0){
progress = 0;
};
mouseoveridx = -1;
_local3 = 0;
while ((((_local3 < wavebuttonrect.length)) && ((mouseoveridx == -1)))) {
if (((wavebutton[_local3].visible) && (wavebuttonrect[_local3].containsPoint(mousepos)))){
mouseoveridx = _local3;
};
_local3++;
};
};
}
}
}//package