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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
addFrameScript(0, frame1);
}
public function setSpeed(e){
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
addFrameScript(0, frame1);
}
public function goSponsor(e=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(){
super();
addFrameScript(0, frame1);
}
public function goSponsor(e=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;
public function BubbleBoxLogoGraphicMc_82(){
super();
}
}
}//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(){
super();
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(){
super();
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(e=null){
if (sponsorintro.currentFrame == sponsorintro.totalFrames){
sponsorintro.removeEventListener(Event.ENTER_FRAME, moveSponsorIntro);
play();
};
}
public function goSubmitMap(e=null){
var targetURL:*;
targetURL = "http://www.bubblebox.com/clickreg.php?type=gamestats&id=1473&subid=map&action=map";
navigateToURL(new URLRequest(targetURL), "_blank");
}
public function doPlay(e){
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 = "c7d3518b0acb0cd6";
prerollid = "834QB9F12906";
itlevelid = "835QB2FB99B7";
mochibotid = "093050b3";
usead = true;
usecpmad = true;
usemochiad = false;
usemochibot = true;
usestatic = false;
usekong = true;
noadsites = ["armorgames.com", "artlogicgames"];
nocpmadsites = ["armorgames.com", "kongregate.com", "artlogicgames"];
nomochiadsites = [];
nomochibotsites = ["armorgames.com"];
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)));
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(e){
goSponsor("intro");
}
public function moveArtIntro(e=null){
if (artintro.currentFrame == artintro.totalFrames){
artintro.removeEventListener(Event.ENTER_FRAME, moveArtIntro);
play();
};
}
public function goSponsorLocked(e){
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(e=null){
var targetURL:*;
targetURL = "http://www.bubblebox.com/clickreg.php?type=gamestats&id=1473&subid=walkthrough&action=walkthrough";
navigateToURL(new URLRequest(targetURL), "_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(e){
navigateToURL(new URLRequest(((("http://www.bubblebox.com/clickreg.php?type=gamestats&id=" + bboxid) + "&subid=") + e)), "_blank");
}
public function goSponsorCover(e){
goSponsor("cover");
}
public function goArtlogic(e=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(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
mtl = stage.getChildAt(0);
initialized = false;
}
public function showDialog(){
var i:*;
i = 0;
while (i < (buttons.length - 1)) {
if (!datamgr.unlockallachievement){
if (!datamgr.achievementstatus[i]){
btnmgr.lockButton(i);
} else {
btnmgr.unlockButton(i);
};
} else {
btnmgr.unlockButton(i);
};
i++;
};
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(e){
achievementscroller.moveClip();
btnmgr.moveClip(mtl.ctrlmgr.MOUSEPOS, mtl.ctrlmgr.MOUSEPRESS);
detectButtons();
}
public function init(){
var i:*;
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);
i = 0;
while (i < (buttons.length - 1)) {
btnmgr.registerFunction(i, this, {onover:showText, onout:hideText, onselect:selectButton});
i++;
};
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(_idx){
achievementnametxt.text = buttontext[_idx];
achievementnotetxt.text = buttontext2[_idx];
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(_idx){
if (achievementnametxt.text == buttontext[_idx]){
achievementnametxt.text = "";
achievementnotetxt.text = "";
};
}
public function showText(_idx){
achievementnametxt.text = buttontext[_idx];
achievementnotetxt.text = buttontext2[_idx];
}
}
}//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(){
super();
addFrameScript(0, frame1);
}
public function goSponsor(e){
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){
};
};
};
}
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(){
super();
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(e){
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(){
super();
addFrameScript(0, frame1, 1, frame2, 9, frame10);
}
public function goOk(e=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(e=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(){
super();
addFrameScript(0, frame1);
}
public function init(_title, _text){
if (!initialized){
btcontinue.addEventListener(MouseEvent.CLICK, closeResult, false, 0, true);
this.addEventListener(Event.ENTER_FRAME, moveClip, false, 0, true);
initialized = true;
};
titletxt.text = _title;
texttxt.text = _text;
clipstatus = "ready";
this.y = -470;
}
public function closeResult(e){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
btcontinue.removeEventListener(MouseEvent.CLICK, closeResult);
clipstatus = "finished";
}
function frame1(){
stop();
initialized = false;
clipstatus = "idle";
}
public function moveClip(e){
}
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(){
super();
addFrameScript(0, frame1, 1, frame2, 17, frame18);
}
public function goOk(e=null){
dialogstatus = "finished";
System.setClipboard(dialogcode);
btok.removeEventListener(MouseEvent.CLICK, goOk);
play();
}
public function activateDialog(_code){
dialogcode = _code;
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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 mcloaderbar:MovieClip;
public var btloaderplay:SimpleButton;
public var loadertext:TextField;
public function mc_loader_1(){
super();
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(e){
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(e){
var bl:*;
var bt:*;
var pt:*;
bl = this.loaderInfo.bytesLoaded;
bt = this.loaderInfo.bytesTotal;
pt = (Math.floor(((bl / bt) * 100)) + 1);
if (mcloaderbar.currentFrame < pt){
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(){
super();
addFrameScript(0, frame1);
}
public function musicOn(e){
btbgmon.visible = false;
mtl.sndmgr.adjustBGM(0);
playSFX();
}
public function musicOff(e){
btbgmon.visible = true;
mtl.sndmgr.adjustBGM(1);
playSFX();
}
public function soundOn(e){
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(e=null){
mtl.sndmgr.playSFX("guiselect");
}
public function goWalkthrough(e){
mtl.goWalkthrough();
playSFX();
}
public function soundOff(e){
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(){
super();
addFrameScript(0, frame1, 1, frame2, 17, frame18);
}
public function goOk(e=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(e=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(){
super();
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;
public function mc_panelnotes_262(){
super();
}
}
}//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;
public function mc_preloaderbig_6(){
super();
}
}
}//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(){
super();
addFrameScript(0, frame1, 1, frame2, 14, frame15, 98, frame99, 112, frame113);
}
public function cancelSave(e){
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(e){
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(){
super();
addFrameScript(0, frame1, 16, frame17, 21, frame22);
}
public function activateDialog(){
dialogstatus = "activating";
selectedlevel = 0;
this.gotoAndPlay(2);
this.visible = true;
}
public function goLevel1(e=null){
this.play();
selectedlevel = 0;
btlevel1.removeEventListener(MouseEvent.CLICK, goLevel1);
}
public function goLevel2(e=null){
this.play();
selectedlevel = 1;
btlevel2.removeEventListener(MouseEvent.CLICK, goLevel2);
}
public function goLevel4(e=null){
this.play();
selectedlevel = 3;
btlevel4.removeEventListener(MouseEvent.CLICK, goLevel4);
}
public function goLevel3(e=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(e=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(){
super();
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){
};
};
};
}
public function goSponsor(e){
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(contentspotid:String){
super();
this.contentspotid = contentspotid;
addEventListener(Event.ADDED, addedHandler);
}
private function addedHandler(event:Event):void{
var cpmstarViewSWFUrl:String;
var container:DisplayObjectContainer;
removeEventListener(Event.ADDED, addedHandler);
Security.allowDomain("server.cpmstar.com");
cpmstarViewSWFUrl = "http://server.cpmstar.com/adviewas3.swf";
container = parent;
cpmstarLoader = new Loader();
cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler);
cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler);
cpmstarLoader.load(new URLRequest(((cpmstarViewSWFUrl + "?contentspotid=") + contentspotid)));
addChild(cpmstarLoader);
}
private function dispatchHandler(event:Event):void{
dispatchEvent(event);
}
}
}//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(){
super();
sndObj = this;
sndChannel = null;
sndTransform = null;
sndVolume = 1;
sndPan = 0;
sndPosTime = 0;
sndFadeIn = false;
sndFadeOut = false;
loop = false;
}
public function setVolume(vol:Number, fading=false):void{
var sndTransform:SoundTransform;
if (((!(fading)) && (sndTimer))){
sndTimer.stop();
};
sndVolume = vol;
if (sndChannel){
sndTransform = sndChannel.soundTransform;
sndTransform.volume = sndVolume;
sndChannel.soundTransform = sndTransform;
};
}
public function stopSound():void{
if (sndChannel){
sndPlaying = false;
sndChannel.stop();
sndChannel.removeEventListener(Event.SOUND_COMPLETE, sound_loop);
loop = false;
};
}
public function fadeOut(init:Boolean):void{
sndFadeOut = true;
sndFadeIn = false;
if (init){
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(init:Boolean):void{
sndFadeIn = true;
sndFadeOut = false;
if (init){
this.setVolume(0, true);
};
if (!sndTimer){
sndTimer = new Timer(50);
sndTimer.addEventListener(TimerEvent.TIMER, sndTimerHandler, false, 0, true);
sndTimer.start();
};
}
private function sndTimerHandler(event: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(pan:Number):void{
var sndTransform:SoundTransform;
sndPan = pan;
if (sndChannel){
sndTransform = sndChannel.soundTransform;
sndTransform.pan = sndPan;
sndChannel.soundTransform = sndTransform;
};
}
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(event:Event){
sndChannel.removeEventListener(Event.SOUND_COMPLETE, sound_complete);
sndPlaying = false;
}
private function sound_loop(event: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 {
public function bgm_maintheme(){
super();
}
}
}//package
Section 105
//bt_ach1 (bt_ach1)
package {
import flash.display.*;
public dynamic class bt_ach1 extends MovieClip {
public function bt_ach1(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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(){
super();
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 {
public function bt_unitwave(){
super();
}
}
}//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(_tower, _gs=1){
super();
bulletrect = new Rectangle(5, 5, 630, 310);
gamespeed = 1;
bulletstatus = "idle";
bullettype = _tower.towertype;
bulletrange = (_tower.towerrange * _tower.getFactor());
if (Math.random() < 0.05){
bulletattack = ((_tower.towerattack * _tower.getFactor()) + ((Math.random() * _tower.towerattack) / 2));
} else {
bulletattack = ((_tower.towerattack * _tower.getFactor()) + ((Math.random() * _tower.towerattack) / 10));
};
bullettarget = _tower.towertarget;
this.x = _tower.x;
this.y = _tower.y;
this.rotation = _tower.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(_obj):Number{
var dx:*;
var dy:*;
dx = (_obj.x - this.x);
dy = (_obj.y - this.y);
return (((Math.atan2(dy, dx) / Math.PI) * 180));
}
public function getDistance(_obj):Number{
var dx:*;
var dy:*;
dx = (_obj.x - this.x);
dy = (_obj.y - this.y);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
public function moveClip(_speed){
var newangle:*;
gamespeed = _speed;
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:
newangle = getAngle(bullettarget);
this.rotation = (this.rotation + (newangle - 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(_btn, _group=null, _groupmode=null){
var i:*;
var j:*;
super();
functions = new Array();
status = new Array();
button = new Array();
rect = new Array();
i = 0;
while (i < _btn.length) {
functions.push({scope:null, onover:null, onout:null, onselect:null, ondeselect:null});
status.push(0);
button.push(_btn[i]);
rect.push(new Rectangle((_btn[i].x - (_btn[i].width / 2)), (_btn[i].y - (_btn[i].height / 2)), _btn[i].width, _btn[i].height));
button[i].buttonMode = true;
i++;
};
group = new Array();
groupmode = new Array();
if (_group){
i = 0;
while (i < _group.length) {
group.push(new Array());
j = 0;
while (j < _group[i].length) {
group[i].push(_group[i][j]);
j++;
};
groupmode.push(_groupmode[i]);
if (groupmode[i] == "toggle"){
btnActivate(button[group[i][0]]);
};
i++;
};
};
}
public function activateButton(_idx){
if (status[_idx] > -1){
btnActivate(button[_idx]);
};
}
public function disableButton(_idx){
if (status[_idx] > -1){
status[_idx] = -1;
button[_idx].gotoAndStop("disabled");
};
}
public function resetButtons(){
var i:*;
i = 0;
while (i < button.length) {
button[i].gotoAndStop(1);
status[i] = 0;
i++;
};
i = 0;
while (i < groupmode.length) {
if (groupmode[i] == "toggle"){
btnActivate(button[group[i][0]]);
};
i++;
};
}
private function btnShrink(_btn){
if (_btn.currentLabel == "blow"){
_btn.gotoAndPlay("shrink");
applyFunction(btnIndex(_btn), "onout");
};
}
public function moveClip(_pos, _press){
var i:*;
var cek:*;
curpos = _pos;
prepress = curpress;
curpress = _press;
cek = false;
i = 0;
while (i < button.length) {
if (status[i] == 2){
status[i] = 0;
};
rect[i].x = (button[i].x - (button[i].width / 2));
rect[i].y = (button[i].y - (button[i].height / 2));
rect[i].width = button[i].width;
rect[i].height = button[i].height;
if (((rect[i].containsPoint(curpos)) && (button[i].visible))){
if (((prepress) && (!(curpress)))){
btnActivate(button[i]);
} else {
btnBlow(button[i]);
};
} else {
btnShrink(button[i]);
};
i++;
};
}
private function btnGroup(_btn):int{
var idx:*;
var res:*;
var i:*;
idx = btnIndex(_btn);
if (idx > -1){
res = -1;
i = 0;
while ((((res < 0)) && ((i < group.length)))) {
if (group[i].indexOf(idx) > -1){
res = group[i].indexOf(idx);
};
i++;
};
if (res > -1){
return ((i - 1));
};
return (-1);
//unresolved jump
};
return (-1);
}
public function enableButton(_idx){
if (status[_idx] == -1){
status[_idx] = 0;
button[_idx].gotoAndPlay("shrink");
};
}
public function unlockButton(_idx){
if (status[_idx] == -2){
status[_idx] = 0;
button[_idx].gotoAndPlay("shrink");
};
}
public function registerFunction(_idx, _scope, _params){
functions[_idx]["scope"] = _scope;
if (_params["onover"]){
functions[_idx]["onover"] = _params["onover"];
};
if (_params["onout"]){
functions[_idx]["onout"] = _params["onout"];
};
if (_params["onselect"]){
functions[_idx]["onselect"] = _params["onselect"];
};
if (_params["ondeselect"]){
functions[_idx]["ondeselect"] = _params["ondeselect"];
};
if (_params["ondisabledselect"]){
functions[_idx]["ondisabledselect"] = _params["ondisabledselect"];
};
if (_params["onlockedselect"]){
functions[_idx]["onlockedselect"] = _params["onlockedselect"];
};
}
private function btnIndex(_btn):int{
return (button.indexOf(_btn));
}
public function deactivateButton(_idx){
if (status[_idx] > -1){
btnDeactivate(button[_idx]);
};
}
private function applyFunction(_idx, _event){
if (((functions[_idx]["scope"]) && (functions[_idx][_event]))){
functions[_idx][_event].apply(functions[_idx]["scope"], [_idx]);
};
}
private function btnBlow(_btn){
if ((((_btn.currentFrame == 1)) || ((_btn.currentLabel == "shrink")))){
_btn.gotoAndPlay("blow");
applyFunction(btnIndex(_btn), "onover");
};
}
private function btnActivate(_btn){
var grp:*;
var idx:*;
var i:*;
grp = btnGroup(_btn);
idx = btnIndex(_btn);
if (status[idx] > -1){
if (grp > -1){
i = 0;
while (i < group[grp].length) {
if (group[grp][i] != idx){
btnDeactivate(button[group[grp][i]]);
} else {
if (status[idx] != 1){
status[idx] = 1;
_btn.gotoAndPlay("activate");
applyFunction(idx, "onselect");
} else {
if (groupmode[grp] == "normal"){
status[idx] = 0;
_btn.gotoAndPlay("deactivate");
applyFunction(idx, "ondeselect");
};
};
};
i++;
};
} else {
status[idx] = 2;
_btn.gotoAndPlay("blow");
applyFunction(idx, "onselect");
};
} else {
if (status[idx] == -1){
applyFunction(idx, "ondisabledselect");
} else {
if (status[idx] == -2){
applyFunction(idx, "onlockedselect");
};
};
};
}
private function btnDeactivate(_btn){
var idx:*;
idx = btnIndex(_btn);
if (status[idx] > -1){
status[idx] = 0;
if (_btn.currentLabel == "activate"){
_btn.gotoAndPlay("deactivate");
applyFunction(idx, "ondeselect");
};
};
}
public function deactivateGroup(_grp){
var i:*;
i = 0;
while (i < group[_grp].length) {
if ((((status[group[_grp][i]] > -1)) && (!((status[group[_grp][i]] == 0))))){
btnDeactivate(button[group[_grp][i]]);
};
i++;
};
}
public function unregisterFunction(_idx, _params){
if (_params["onover"]){
functions[_idx]["onover"] = null;
};
if (_params["onout"]){
functions[_idx]["onout"] = null;
};
if (_params["onselect"]){
functions[_idx]["onselect"] = null;
};
if (_params["ondeselect"]){
functions[_idx]["ondeselect"] = null;
};
if (_params["ondisabledselect"]){
functions[_idx]["ondisabledselect"] = null;
};
if (_params["onlockedselect"]){
functions[_idx]["onlockedselect"] = null;
};
}
public function lockButton(_idx){
if (status[_idx] > -2){
status[_idx] = -2;
button[_idx].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(stage=null){
MOUSEPOS = new Point(0, 0);
MOUSEPRESS = 0;
MOUSESCROLL = 0;
KEYPRESS = new Array();
super();
if (stage){
startListeners(stage);
};
}
public function keyReleaseHandler(e){
KEYPRESS[e.keyCode] = 0;
}
public function mouseDownHandler(e){
MOUSEPRESS = (MOUSEPRESS) ? 1 : 2;
}
public function keyPressHandler(e){
KEYPRESS[e.keyCode] = (KEYPRESS[e.keyCode]) ? 1 : 2;
}
public function mouseUpHandler(e){
MOUSEPRESS = 0;
}
public function stopListeners(stage){
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMovementHandler);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
stage.removeEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressHandler);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleaseHandler);
}
public function mouseMovementHandler(e){
MOUSEPOS.x = e.stageX;
MOUSEPOS.y = e.stageY;
}
public function moveClip(){
var i:*;
MOUSEPRESS = (MOUSEPRESS) ? 1 : 0;
MOUSESCROLL = 0;
i = 0;
while (i < KEYPRESS.length) {
KEYPRESS[i] = (KEYPRESS[i]) ? 1 : 0;
i++;
};
}
public function mouseWheelHandler(e){
MOUSESCROLL = e.delta;
}
public function startListeners(stage){
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMovementHandler, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, false, 0, true);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressHandler, false, 0, true);
stage.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 sendspacer:int;
public var lastindex:int;
public function EnemyWaveManager(_udatamgr){
tracing = false;
super();
udatamgr = _udatamgr;
wavearray = new Array();
wavetime = new Array();
sendcounter = 0;
}
public function createEnemyWave(_path, _typed, _lvl=0){
var newwave:Array;
var newwavetime:Array;
var newwavecount:int;
var curunitfactor:Number;
var wavedef:Array;
var i:*;
var j:*;
var k:int;
if (tracing){
trace("\nEnemyWaveManager:CreateEnemyWave: Start creating enemy wave");
};
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: enemy level:", _lvl);
};
newwave = new Array();
wavetype = _typed;
if (_typed == "wave"){
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: enemy type: wave");
};
wavedef = udatamgr.defaultwavelevel[_lvl];
} else {
if (_typed == "time"){
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: enemy type: time");
};
wavedef = udatamgr.defaulttimelevel[_lvl];
};
};
curunitfactor = 1;
j = 0;
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: Group count:", wavedef.length);
};
while (j < wavedef.length) {
newwave = new Array();
newwavetime = new Array();
if (wavedef[j] == 5){
newwavecount = (4 + (Math.random() * 3));
i = 0;
while (i < newwavecount) {
newwave.push(new TracerUnitBase(_lvl, wavedef[j], curunitfactor, _path, udatamgr));
newwavetime.push((i * 3));
i++;
};
} else {
if (wavedef[j] == 3){
newwavecount = (10 + (Math.random() * 3));
i = 0;
while (i < newwavecount) {
newwave.push(new TracerUnitBase(_lvl, wavedef[j], curunitfactor, _path, udatamgr));
newwavetime.push((i * 3));
i++;
};
} else {
if ((((((wavedef[j] == 0)) || ((wavedef[j] == 1)))) || ((wavedef[j] == 2)))){
newwavecount = (30 + (Math.random() * 5));
i = 0;
while (i < newwavecount) {
newwave.push(new TracerUnitBase(_lvl, wavedef[j], curunitfactor, _path, udatamgr));
newwavetime.push(i);
i++;
};
} else {
newwavecount = (20 + (Math.random() * 5));
i = 0;
while (i < newwavecount) {
newwave.push(new TracerUnitBase(_lvl, wavedef[j], curunitfactor, _path, udatamgr));
newwavetime.push(i);
i++;
};
};
};
};
if (tracing){
trace("EnemyWaveManager:CreateEnemyWave: Created Group:", (j + 1), ", with type:", udatamgr.defaultunittype[wavedef[j]], ", with:", newwave.length, " members");
};
wavearray.push(newwave);
wavetime.push(newwavetime);
if (_typed == "wave"){
curunitfactor = (curunitfactor + udatamgr.defaultlevelfactor[_lvl]);
} else {
if (_typed == "time"){
curunitfactor = (curunitfactor + udatamgr.defaultlevelfactor[Math.floor(((5 * _lvl) + (j / 6)))]);
};
};
j++;
};
}
public function getWaveDescString():Array{
var res:*;
var s:*;
var i:*;
res = new Array();
i = 0;
while (i < wavearray.length) {
s = (wavearray[i][0].unittype + "\n");
s = (s + (String(wavearray[i].length) + "\n"));
s = (s + (String(Math.floor(wavearray[i][0].unithealth)) + "\n"));
switch (wavearray[i][0].unittypeint){
case 0:
case 1:
s = (s + "None");
break;
case 2:
s = (s + "Speedy");
break;
case 3:
s = (s + "Stronger");
break;
case 4:
s = (s + "Healing");
break;
case 5:
s = (s + "Bossy");
break;
case 6:
s = (s + "Spawny");
break;
case 7:
s = (s + "Immune");
break;
};
res.push(s);
i++;
};
return (res);
}
public function dispatchEnemyUnit(_idx, _idxprogress, _enemycount=99):Object{
var i:*;
var res:*;
var curwaveidx:*;
var curwaveprg:*;
if (!lastdispatched){
if (_idxprogress > 0){
res = wavearray[0][0];
wavearray[0].splice(0, 1);
wavetime[0].splice(0, 1);
};
} else {
if ((((lastdispatched.pathidx > 0)) || ((lastdispatched.unithealth < 1)))){
curwaveidx = _idx;
curwaveprg = Math.floor((_idxprogress / 4));
if (curwaveidx < wavearray.length){
if ((((wavetime[curwaveidx].length > 0)) && ((((wavetime[curwaveidx][0] <= curwaveprg)) || ((sendspacer < 2)))))){
if ((((((((wavearray[curwaveidx].length > 0)) && ((((((wavearray[curwaveidx][0].unittypeint == 0)) || ((wavearray[curwaveidx][0].unittypeint == 1)))) || ((wavearray[curwaveidx][0].unittypeint == 2)))))) && ((wavearray[curwaveidx].length < 10)))) && ((wavearray[curwaveidx].length > 3)))){
sendspacer = 0;
};
sendspacer++;
if (sendspacer > 5){
sendspacer = 0;
};
res = wavearray[curwaveidx][0];
wavearray[curwaveidx].splice(0, 1);
wavetime[curwaveidx].splice(0, 1);
if (sendspacer < 2){
i = 0;
while (i < wavetime.length) {
var _local8 = wavetime[curwaveidx];
var _local9 = i;
var _local10 = (_local8[_local9] - 1);
_local8[_local9] = _local10;
i++;
};
};
} else {
if (curwaveidx > 0){
i = 0;
while (i < curwaveidx) {
if (((!(res)) && ((wavearray[i].length > 0)))){
res = wavearray[i][0];
wavearray[i].splice(0, 1);
wavetime[i].splice(0, 1);
};
i++;
};
};
};
} else {
i = 0;
while (i < wavearray.length) {
if (((!(res)) && ((wavearray[i].length > 0)))){
res = wavearray[i][0];
wavearray[i].splice(0, 1);
wavetime[i].splice(0, 1);
};
i++;
};
};
};
};
lastindex = _idx;
if (res){
lastdispatched = res;
};
return (res);
}
public function getTotalEnemyCount():int{
var i:*;
var res:*;
res = 0;
i = 0;
while (i < wavearray.length) {
res = (res + wavearray[i].length);
i++;
};
return (res);
}
public function getWaveString(_typed, _id):Array{
var i:*;
var res:*;
res = new Array();
if (tracing){
trace("EnemyWaveManager:getWaveString: Getting enemy list:", _typed, ", with level:", _id);
};
if (_typed == "wave"){
i = 0;
while (i < udatamgr.defaultwavelevel[_id].length) {
res.push(udatamgr.defaultunittype[udatamgr.defaultwavelevel[_id][i]]);
i++;
};
} else {
if (_typed == "time"){
i = 0;
while (i < udatamgr.defaulttimelevel[_id].length) {
res.push(udatamgr.defaultunittype[udatamgr.defaulttimelevel[_id][i]]);
i++;
};
};
};
if (tracing){
trace("EnemyWaveManager:getWaveString: Returning enemy list with ", res.length, " members");
};
return (res);
}
public function getWaveEnemyCount():int{
var i:*;
var res:*;
res = 0;
if (lastindex >= wavearray.length){
lastindex = (wavearray.length - 1);
};
i = 0;
while (i <= lastindex) {
res = (res + wavearray[i].length);
i++;
};
return (res);
}
}
}//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(mtl){
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 = mtl;
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(_obj){
tweenmgr.register(_obj, {live:30, ease:"easeincirc", x:510, y:535, alpha:0, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:stopTween});
if (skin.indexOf(_obj) == skinindex){
if (skinindex < (skin.length - 1)){
skinindex++;
startTween(skin[skinindex]);
};
};
}
public function getTotalKill(_type=-1):int{
var i:*;
var res:*;
if (_type > -1){
return (totalkill[_type]);
};
res = 0;
i = 0;
while (i < totalkill.length) {
res = (res + totalkill[i]);
i++;
};
return (res);
}
public function getCurrentScore():int{
var i:*;
var res:*;
res = 0;
res = (res + totalcurenergy);
res = (res + (curenergy * 10));
res = (res + (curlive * 100));
res = (res + (curlive * 100));
i = 0;
while (i < curkill.length) {
res = (res + (i * curkill[i]));
i++;
};
i = 0;
while (i < curbuild.length) {
res = (res + ((i * curbuild[i]) * 10));
i++;
};
i = 0;
while (i < cursell.length) {
res = (res + ((i * cursell[i]) * 5));
i++;
};
return (res);
}
private function pauseTween(_obj){
tweenmgr.register(_obj, {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 i:*;
var res:*;
res = 0;
i = 0;
while (i < achievementstatus.length) {
if (achievementstatus[i] != 0){
res++;
};
i++;
};
return (res);
}
private function startTween(_obj){
tweenmgr.register(_obj, {live:30, ease:"easeoutcirc", x:510, y:310, alpha:1, rotation:0, scalex:1, scaley:1}, {scope:this, onfinished:pauseTween});
}
public function addBuild(_n, _build){
if (_build > 0){
curbuild[_n] = (curbuild[_n] + _build);
};
}
public function reduceLive(_lv){
if (_lv > 0){
curlive = (curlive - _lv);
};
}
public function getCurSell(_type=-1):int{
var i:*;
var res:*;
if (_type > -1){
return (cursell[_type]);
};
res = 0;
i = 0;
while (i < cursell.length) {
res = (res + cursell[i]);
i++;
};
return (res);
}
public function getTotalBuild(_type=-1):int{
var i:*;
var res:*;
if (_type > -1){
return (totalbuild[_type]);
};
res = 0;
i = 0;
while (i < totalbuild.length) {
res = (res + totalbuild[i]);
i++;
};
return (res);
}
public function detectAchievement(gamewin=false, _n=-1){
var i:*;
var cek:*;
if (_n == -1){
trace(gamewin, _n);
if (achievementstatus[1] == 0){
if ((((totallost > 0)) || (!(gamewin)))){
achievementstatus[1] = 2;
createSkin(1);
};
};
if (achievementstatus[15] == 0){
if (((((!(gamewin)) && ((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 (((((((((((gamewin) && (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 (((gamewin) && ((curenergy >= 5000)))){
achievementstatus[35] = 2;
createSkin(35);
};
};
if (achievementstatus[38] == 0){
if (totalstreak >= 5){
achievementstatus[38] = 2;
createSkin(38);
};
};
} else {
switch (_n){
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(_type=-1):int{
var i:*;
var res:*;
if (_type > -1){
return (curkill[_type]);
};
res = 0;
i = 0;
while (i < curkill.length) {
res = (res + curkill[i]);
i++;
};
return (res);
}
public function getCurBuild(_type=-1):int{
var i:*;
var res:*;
if (_type > -1){
return (curbuild[_type]);
};
res = 0;
i = 0;
while (i < curbuild.length) {
res = (res + curbuild[i]);
i++;
};
return (res);
}
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(_n, _kill){
if (_kill > 0){
curkill[_n] = (curkill[_n] + _kill);
};
}
private function createSkin(_n){
var obj:*;
var ico:*;
switch (_n){
case 0:
ico = new bt_ach1();
break;
case 1:
ico = new bt_ach2();
break;
case 2:
ico = new bt_ach3();
break;
case 3:
ico = new bt_ach4();
break;
case 4:
ico = new bt_ach5();
break;
case 5:
ico = new bt_ach6();
break;
case 6:
ico = new bt_ach7();
break;
case 7:
ico = new bt_ach8();
break;
case 8:
ico = new bt_ach9();
break;
case 9:
ico = new bt_ach10();
break;
case 10:
ico = new bt_ach11();
break;
case 11:
ico = new bt_ach12();
break;
case 12:
ico = new bt_ach13();
break;
case 13:
ico = new bt_ach14();
break;
case 14:
ico = new bt_ach15();
break;
case 15:
ico = new bt_ach16();
break;
case 16:
ico = new bt_ach17();
break;
case 17:
ico = new bt_ach18();
break;
case 18:
ico = new bt_ach19();
break;
case 19:
ico = new bt_ach20();
break;
case 20:
ico = new bt_ach21();
break;
case 21:
ico = new bt_ach22();
break;
case 22:
ico = new bt_ach23();
break;
case 23:
ico = new bt_ach24();
break;
case 24:
ico = new bt_ach25();
break;
case 25:
ico = new bt_ach26();
break;
case 26:
ico = new bt_ach27();
break;
case 27:
ico = new bt_ach28();
break;
case 28:
ico = new bt_ach29();
break;
case 29:
ico = new bt_ach30();
break;
case 30:
ico = new bt_ach31();
break;
case 31:
ico = new bt_ach32();
break;
case 32:
ico = new bt_ach33();
break;
case 33:
ico = new bt_ach34();
break;
case 34:
ico = new bt_ach35();
break;
case 35:
ico = new bt_ach36();
break;
case 36:
ico = new bt_ach37();
break;
case 37:
ico = new bt_ach38();
break;
case 38:
ico = new bt_ach39();
break;
case 39:
ico = new bt_ach40();
break;
};
obj = new mc_achievementnote();
obj.content.addChild(ico);
obj.x = 510;
obj.y = -55;
obj.descriptiontxt.text = achievementheader[_n];
maintimeline.addChild(obj);
skin.push(obj);
if (skin.length == 1){
skinindex = 0;
startTween(skin[skinindex]);
};
}
public function addEnergy(_eng){
curenergy = (curenergy + _eng);
if (_eng > 0){
totalcurenergy = (totalcurenergy + _eng);
};
}
public function commitData(){
var i:*;
var gamewin:*;
var mapmgr:*;
var kongvar:*;
if (curlive > 0){
gamewin = true;
} else {
gamewin = false;
};
totalenergyused = (totalenergyused + (totalcurenergy - curenergy));
totalenergyleft = (totalenergyleft + curenergy);
totallivelost = (totallivelost + (20 - curlive));
totalliveleft = (totalliveleft + curlive);
i = 0;
while (i < curkill.length) {
totalkill[i] = (totalkill[i] + curkill[i]);
i++;
};
i = 0;
while (i < curbuild.length) {
totalbuild[i] = (totalbuild[i] + curbuild[i]);
i++;
};
if (gamewin){
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;
};
};
i = 0;
while (i < mapstatus.length) {
if (mapstatus[i] == 3){
mapstatus[i] = 1;
};
i++;
};
if (mapstatus[gamelevel] == 1){
mapstatus[gamelevel] = 2;
};
if ((mapstatus[(gamelevel + 1)] == 0)){
mapstatus[(gamelevel + 1)] = 3;
};
if (gametype == "wave"){
mapmgr = new MapDataManager();
mapmgr.addMap(mapmgr.defmapname[gamelevel], mapmgr.defmapdata[gamelevel]);
};
i = 0;
while (i < achievementstatus.length) {
if (achievementstatus[i] == 2){
achievementstatus[i] = 1;
};
i++;
};
detectAchievement(gamewin, -1);
} else {
totallost++;
totalstreak = 0;
detectAchievement(gamewin, -1);
};
saveData();
if (usekong){
kongvar = {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(kongvar);
};
}
public function getLastCampaignLevel():int{
var i:*;
i = 0;
while (mapstatus[i] == 2) {
i++;
};
return (i);
}
private function loadData(){
var so:*;
if (tracing){
trace("GameDataManager:loadData: :Loading Data");
};
so = SharedObject.getLocal(savename);
if (so.size == 0){
resetData();
saveData();
};
resetData();
if (so.data.totalenergyused){
totalenergyused = so.data.totalenergyused;
totalenergyleft = so.data.totalenergyleft;
totallivelost = so.data.totallivelost;
totalliveleft = so.data.totalliveleft;
totalkill = so.data.totalkill;
totalbuild = so.data.totalbuild;
totalwin = so.data.totalwin;
totallost = so.data.totallost;
totalstreak = so.data.totalstreak;
totalscore = so.data.totalscore;
towerstatus = so.data.towerstatus;
colorstatus = so.data.colorstatus;
mapstatus = so.data.mapstatus;
achievementstatus = so.data.achievementstatus;
tutorial = so.data.tutorial;
};
}
public function addSell(_n, _sell){
if (_sell > 0){
cursell[_n] = (cursell[_n] + _sell);
};
}
public function saveData(){
var so:*;
if (tracing){
trace("GameDataManager:saveData: Saving Data");
};
so = SharedObject.getLocal(savename);
if (savedata){
so.data.totalenergyused = totalenergyused;
so.data.totalenergyleft = totalenergyleft;
so.data.totallivelost = totallivelost;
so.data.totalliveleft = totalliveleft;
so.data.totalkill = totalkill;
so.data.totalbuild = totalbuild;
so.data.totalwin = totalwin;
so.data.totallost = totallost;
so.data.totalstreak = totalstreak;
so.data.totalscore = totalscore;
so.data.towerstatus = towerstatus;
so.data.colorstatus = colorstatus;
so.data.mapstatus = mapstatus;
so.data.achievementstatus = achievementstatus;
so.data.tutorial = tutorial;
so.flush();
};
}
private function stopTween(_obj){
if (skin.indexOf(_obj) == skinindex){
if (skinindex < (skin.length - 1)){
skinindex++;
startTween(skin[skinindex]);
};
};
skinindex--;
skin.splice(skin.indexOf(_obj), 1);
maintimeline.removeChild(_obj);
}
public function startNewGame(_typ, _lv, _map){
var i:*;
gametype = _typ;
gamelevel = _lv;
gamemap = _map;
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(_mtl){
super();
maintimeline = _mtl;
cheatcode = "";
tweenmgr = _mtl.tweenmgr;
sndmgr = _mtl.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(_obj){
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 i:*;
var s:*;
if (scenemgr.curenergy != 0){
datamgr.addEnergy(scenemgr.curenergy);
scenemgr.curenergy = 0;
panelmgr.inktxt.text = "cc ";
panelmgr.inktxt.appendText(String(datamgr.curenergy));
};
s = panelmgr.getWaveName();
if (s != panelmgr.wavetxt.text){
panelmgr.wavetxt.text = s;
};
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;
};
};
i = 0;
while (i < datamgr.curkill.length) {
datamgr.addKill(i, scenemgr.curkill[i]);
scenemgr.curkill[i] = 0;
if (datamgr.achievementstatus[(i + 7)] == 0){
if ((datamgr.getTotalKill(i) + datamgr.getCurKill(i)) > 0){
datamgr.detectAchievement(false, (i + 7));
};
};
i++;
};
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);
};
};
};
};
};
};
i = 0;
while (i < datamgr.curbuild.length) {
datamgr.addBuild(i, scenemgr.curbuild[i]);
scenemgr.curbuild[i] = 0;
if (datamgr.achievementstatus[(i + 2)] == 0){
if ((datamgr.getTotalBuild(i) + datamgr.getCurBuild(i)) > 0){
datamgr.detectAchievement(false, (i + 2));
};
};
i++;
};
i = 0;
while (i < datamgr.cursell.length) {
datamgr.addSell(i, scenemgr.cursell[i]);
scenemgr.cursell[i] = 0;
if (datamgr.getCurSell() >= 5){
datamgr.detectAchievement(false, 32);
};
i++;
};
panelmgr.critterstxt.text = String(scenemgr.getWaveEnemyLast());
panelmgr.critterstxt.appendText(" / ");
panelmgr.critterstxt.appendText(String(scenemgr.enemyunit.length));
}
private function moveClip(e=null){
var i:*;
var res:*;
var restitle:*;
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;
};
i = 0;
while (i < scenemgr.mouseattacktime.length) {
panelmgr.setInkButtonLevel((9 + i), Math.floor(((scenemgr.mouseattacktime[i] / scenemgr.mouseattackmax[i]) * 10)));
if (Math.floor(((scenemgr.mouseattacktime[i] / scenemgr.mouseattackmax[i]) * 10)) == 10){
panelmgr.enableButton((9 + i));
};
i++;
};
};
panelmgr.moveClip();
break;
case "paused":
gamestatus = panelmgr.panelstatus;
detectPanel();
panelmgr.moveClip();
break;
case "endplayerwin":
if (!restitle){
restitle = "You win!";
};
case "endplayerlost":
if (!restitle){
restitle = "You lost!";
};
case "endplayerrequest":
waitcounter--;
if (waitcounter == 0){
if (!restitle){
restitle = "You left the game!";
};
res = "Result for level #";
if ((gamelevel + 1) < 10){
res = (res + ("0" + String((gamelevel + 1))));
} else {
res = (res + String((gamelevel + 1)));
};
res = (res + (("\n\nTotal " + String(scenemgr.udatamgr.defaultwavelevel[gamelevel].length)) + " waves"));
if (datamgr.curlive > 1){
res = (res + (("\n" + String(datamgr.curlive)) + " lifes remain"));
} else {
res = (res + (("\n" + String(datamgr.curlive)) + " life remain"));
};
res = (res + (("\n" + String(datamgr.getCurKill())) + " critters destroyed"));
res = (res + (("\n" + String(datamgr.getCurBuild())) + " towers built"));
res = (res + (("\nCollected " + String(datamgr.totalcurenergy)) + " cc of ink"));
if (gamestatus == "endplayerwin"){
res = (res + (("\n\nScored " + String(datamgr.getCurrentScore())) + " pt"));
res = (res + (("\nand Totally Scored " + String((datamgr.totalscore + datamgr.getCurrentScore()))) + " pt"));
} else {
res = (res + "\n\nScored 0 pt");
res = (res + (("\nand Totally Scored " + String(datamgr.totalscore)) + " pt"));
};
if (resultmgr.clipstatus == "idle"){
resultmgr.init(restitle, res);
};
if (gamestatus != "endplayerrequest"){
if (scenemgr.towerunit.length > 0){
res = true;
i = 0;
while (i < scenemgr.towerunit.length) {
res = ((res) && ((scenemgr.towerunit[i].towerlevel == 4)));
i++;
};
if (res){
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 i:*;
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";
i = (maintimeline.numChildren - 1);
while (i > -1) {
maintimeline.removeChild(maintimeline.getChildAt(i));
i--;
};
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 JumpNoticeBase(){
super();
}
public function start(_parent, _x, _y, _border, _moveright=true){
dx = (_moveright) ? 6 : -6;
dy = -15;
ddy = 1;
_parent.addChild(this);
this.x = _x;
this.y = _y;
rect = _border;
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(e){
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(_mtl){
kongregateServiceLoaded = false;
super();
maintimeline = _mtl;
kongregate = new KongregateAPI();
maintimeline.addChild(kongregate);
kongregate.addEventListener(KongregateEvent.COMPLETE, serviceLoaded, false, 0, true);
}
private function serviceLoaded(e:KongregateEvent):void{
kongregate.services.connect();
kongregateServiceLoaded = true;
}
public function submitStat(_params){
var i:*;
if (((kongregate) && (kongregateServiceLoaded))){
for (i in _params) {
kongregate.stats.submit(i, _params[i]);
};
};
}
}
}//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;
public function MapBrowserContainer(){
super();
}
private function activateButton(_n){
var i:*;
if (buttontoggle[_n]){
if (button[_n].currentLabel != "activate"){
button[_n].gotoAndPlay("activate");
i = 0;
while (i < button.length) {
if (i != _n){
if (button[i].currentLabel == "activate"){
button[i].gotoAndPlay("deactivate");
};
};
i++;
};
};
} else {
button[_n].gotoAndPlay("blow");
};
}
private function goPlayGame(obj){
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(obj){
browserstatus = "browsing";
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("editorpage");
}
private function loadMap(){
var i:int;
var newmaploader:MapDrawerBase;
maptracerstatus = "idle";
i = 3;
while (i < maploaderarray.length) {
this.removeChild(maploaderarray[i]);
i++;
};
maploaderarray = [map1, map2, map3];
i = 0;
while ((((i < 3)) && ((i < mapmgr.mapname.length)))) {
if (i == 0){
maploaderpreview.setMap(mapmgr.mapname[i], mapmgr.mapdata[i]);
mapselected = 0;
};
maploaderarray[i].setMap(mapmgr.mapname[i], mapmgr.mapdata[i]);
maploaderarray[i].x = mapdefpos[i][0];
maploaderarray[i].y = mapdefpos[i][1];
i++;
};
while (i < 3) {
if (i == 0){
maploaderpreview.setMap("", "");
mapselected = 0;
};
maploaderarray[i].setMap("", "");
maploaderarray[i].gotoAndStop(2);
maploaderarray[i].x = mapdefpos[i][0];
maploaderarray[i].y = mapdefpos[i][1];
i++;
};
while (i < mapmgr.mapname.length) {
newmaploader = new mc_singlemaploader();
newmaploader.setMap(mapmgr.mapname[i], mapmgr.mapdata[i]);
newmaploader.x = 740;
newmaploader.y = mapdefpos[0][1];
newmaploader.scaleX = 0.25;
newmaploader.scaleY = 0.25;
this.addChild(newmaploader);
maploaderarray.push(newmaploader);
i++;
};
i = 0;
while (i < maploaderarray.length) {
maploaderarray[i].buttonMode = true;
maploaderrect.push(new Rectangle(maploaderarray[i].x, maploaderarray[i].y, maploaderarray[i].width, maploaderarray[i].height));
i++;
};
mcmapscroller.init(maploaderarray, null, 1, 3);
this.setChildIndex(mcmapscroller, (this.numChildren - 1));
}
private function shrinkButton(_n){
if (button[_n].currentLabel != "activate"){
if (button[_n].currentLabel == "blow"){
button[_n].gotoAndPlay("shrink");
notes.text = "";
};
};
}
private function moveClip(e){
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(_n){
switch (_n){
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 i:*;
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();
i = 0;
while (i < button.length) {
buttonrect.push(new Rectangle((button[i].x - (button[i].width / 2)), (button[i].y - (button[i].height / 2)), button[i].width, button[i].height));
i++;
};
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(x1, y1, x2, y2):Number{
var dx:*;
var dy:*;
dx = (x2 - x1);
dy = (y2 - y1);
return (((Math.atan2(dy, dx) / Math.PI) * 180));
}
private function getDistance(x1, y1, x2, y2):Number{
var dx:*;
var dy:*;
dx = (x2 - x1);
dy = (y2 - y1);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
private function blowButton(_n){
if (button[_n].currentLabel != "activate"){
if (button[_n].currentLabel != "blow"){
button[_n].gotoAndPlay("blow");
notes.text = buttontext[_n];
};
};
}
private function goMenuPage(obj){
browserstatus = "browsing";
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("menupage");
}
private function detectButton(){
var i:*;
if (ctrlmgr.MOUSEPRESS == 2){
i = 0;
while (i < buttonrect.length) {
if (buttonrect[i].containsPoint(ctrlmgr.MOUSEPOS)){
checkSelectedButton(i);
activateButton(i);
};
i++;
};
} else {
if (ctrlmgr.MOUSEPRESS == 0){
i = 0;
while (i < buttonrect.length) {
if (buttonrect[i].containsPoint(ctrlmgr.MOUSEPOS)){
blowButton(i);
} else {
shrinkButton(i);
};
i++;
};
};
};
}
private function detectMap(){
var i:*;
if (ctrlmgr.MOUSEPRESS == 2){
i = 0;
while (i < maploaderrect.length) {
if (((((maploaderrect[i].containsPoint(ctrlmgr.MOUSEPOS)) && ((i < mapmgr.mapname.length)))) && (!((maploaderpreview.maplabel.text == mapmgr.mapname[i]))))){
maploaderpreview.clearMap();
maploaderpreview.setMap(mapmgr.mapname[i], mapmgr.mapdata[i]);
mapselected = i;
};
i++;
};
};
mcmapscroller.moveClip();
i = 0;
while (i < maploaderarray.length) {
maploaderrect[i].x = maploaderarray[i].x;
maploaderrect[i].y = maploaderarray[i].y;
maploaderrect[i].width = maploaderarray[i].width;
maploaderrect[i].height = maploaderarray[i].height;
i++;
};
}
}
}//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 so:*;
if (tracing){
trace("MapDataManager:loadData: :Loading maps");
};
so = SharedObject.getLocal(savename);
if (so.size == 0){
saveData();
};
mapname = so.data.mapname;
mapdata = so.data.mapdata;
}
public function removeMap(_mapname){
var i:int;
if (tracing){
trace("MapDataManager:removeMap: Removing map", _mapname);
};
i = 0;
while (((!((mapname[i] == _mapname))) && ((i < mapname.length)))) {
i++;
};
if (i < mapname.length){
mapname.splice(i, 1);
mapdata.splice(i, 1);
};
saveData();
}
public function addMap(_mapname, _mapdata){
if (tracing){
trace("MapDataManager:addMap: Adding map", _mapname);
};
if (((!((_mapname == ""))) && (!((_mapdata == ""))))){
if (mapname.indexOf(_mapname) != -1){
mapdata[mapname.indexOf(_mapname)] = _mapdata;
} else {
mapname.push(_mapname);
mapdata.push(_mapdata);
};
saveData();
};
}
private function saveData(){
var so:*;
if (tracing){
trace("MapDataManager:saveData: Saving maps");
};
so = SharedObject.getLocal(savename);
so.data.mapname = mapname;
so.data.mapdata = mapdata;
so.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(_pt1, _pt2):Boolean{
return ((((_pt1[0] == _pt2[0])) && ((_pt1[1] == _pt2[1]))));
}
private function decryptPoint(s:String):Array{
var n:Array;
var res:Array;
n = [0, 0, 0, 0];
res = [0, 0];
switch (s.charAt(0)){
case "A":
n[0] = 0;
break;
case "B":
n[0] = 1;
break;
case "C":
n[0] = 2;
break;
case "D":
n[0] = 3;
break;
case "E":
n[0] = 4;
break;
case "F":
n[0] = 5;
break;
case "G":
n[0] = 6;
break;
case "H":
n[0] = 7;
break;
case "I":
n[0] = 8;
break;
default:
return (null);
};
switch (s.charAt(1)){
case "Q":
n[1] = 0;
break;
case "R":
n[1] = 1;
break;
case "S":
n[1] = 2;
break;
case "T":
n[1] = 3;
break;
case "U":
n[1] = 4;
break;
case "V":
n[1] = 5;
break;
case "W":
n[1] = 6;
break;
case "X":
n[1] = 7;
break;
case "Y":
n[1] = 8;
break;
default:
return (null);
};
switch (s.charAt(2)){
case "m":
n[2] = 0;
break;
case "n":
n[2] = 1;
break;
case "o":
n[2] = 2;
break;
case "p":
n[2] = 3;
break;
case "q":
n[2] = 4;
break;
case "r":
n[2] = 5;
break;
case "s":
n[2] = 6;
break;
case "t":
n[2] = 7;
break;
case "u":
n[2] = 8;
break;
case "v":
n[2] = 9;
break;
case "w":
n[2] = 10;
break;
case "x":
n[2] = 11;
break;
case "y":
n[2] = 12;
break;
default:
return (null);
};
switch (s.charAt(3)){
case "a":
n[3] = 0;
break;
case "b":
n[3] = 1;
break;
case "c":
n[3] = 2;
break;
case "d":
n[3] = 3;
break;
case "e":
n[3] = 4;
break;
case "f":
n[3] = 5;
break;
case "g":
n[3] = 6;
break;
case "h":
n[3] = 7;
break;
case "i":
n[3] = 8;
break;
case "j":
n[3] = 9;
break;
case "k":
n[3] = 10;
break;
case "l":
n[3] = 11;
break;
case "m":
n[3] = 12;
break;
default:
return (null);
};
res[1] = (((n[0] * 9) + n[1]) * 4);
res[0] = (((n[2] * 13) + n[3]) * 4);
return (res);
}
public function stopLine(){
}
private function encryptPoint(xx, yy):String{
var res:String;
var xxx:*;
var yyy:int;
var n:Array;
res = "";
xxx = Math.floor((xx / 4));
yyy = Math.floor((yy / 4));
n = [Math.floor(((yy / 4) / 9)), Math.floor(((yy / 4) % 9)), Math.floor(((xx / 4) / 13)), Math.floor(((xx / 4) % 13))];
switch (n[0]){
case 0:
res = (res + "A");
break;
case 1:
res = (res + "B");
break;
case 2:
res = (res + "C");
break;
case 3:
res = (res + "D");
break;
case 4:
res = (res + "E");
break;
case 5:
res = (res + "F");
break;
case 6:
res = (res + "G");
break;
case 7:
res = (res + "H");
break;
case 8:
res = (res + "I");
break;
default:
res = (res + "?");
break;
};
switch (n[1]){
case 0:
res = (res + "Q");
break;
case 1:
res = (res + "R");
break;
case 2:
res = (res + "S");
break;
case 3:
res = (res + "T");
break;
case 4:
res = (res + "U");
break;
case 5:
res = (res + "V");
break;
case 6:
res = (res + "W");
break;
case 7:
res = (res + "X");
break;
case 8:
res = (res + "Y");
break;
default:
res = (res + "?");
break;
};
switch (n[2]){
case 0:
res = (res + "m");
break;
case 1:
res = (res + "n");
break;
case 2:
res = (res + "o");
break;
case 3:
res = (res + "p");
break;
case 4:
res = (res + "q");
break;
case 5:
res = (res + "r");
break;
case 6:
res = (res + "s");
break;
case 7:
res = (res + "t");
break;
case 8:
res = (res + "u");
break;
case 9:
res = (res + "v");
break;
case 10:
res = (res + "w");
break;
case 11:
res = (res + "x");
break;
case 12:
res = (res + "y");
break;
default:
res = (res + "?");
break;
};
switch (n[3]){
case 0:
res = (res + "a");
break;
case 1:
res = (res + "b");
break;
case 2:
res = (res + "c");
break;
case 3:
res = (res + "d");
break;
case 4:
res = (res + "e");
break;
case 5:
res = (res + "f");
break;
case 6:
res = (res + "g");
break;
case 7:
res = (res + "h");
break;
case 8:
res = (res + "i");
break;
case 9:
res = (res + "j");
break;
case 10:
res = (res + "k");
break;
case 11:
res = (res + "l");
break;
case 12:
res = (res + "m");
break;
default:
res = (res + "?");
break;
};
return (res);
}
private function isNodeConnected(n1, n2):Boolean{
return ((((n1[2] == n2[0])) && ((n1[3] == n2[1]))));
}
private function getAngle(x1, y1, x2, y2):Number{
var dx:Number;
var dy:Number;
dx = (x2 - x1);
dy = (y2 - y1);
return (((Math.atan2(dy, dx) / Math.PI) * 180));
}
public function continueLine(xx, yy){
var snappt:Array;
var lastidx:*;
var newnode:*;
var jnode:*;
if (lastpoint){
snappt = snapPoint(xx, yy, "continue");
if (((!((snappt[0] == lastpoint[0]))) || (!((snappt[1] == lastpoint[1]))))){
lastidx = (pointarray.length - 1);
newnode = [lastpoint[0], lastpoint[1], snappt[0], snappt[1]];
if (lastidx > -1){
jnode = joinNode(pointarray[lastidx], newnode);
};
if (((jnode) && ((Math.abs((getNodeAngle(pointarray[lastidx]) - getNodeAngle(newnode))) < 10)))){
pointarray[lastidx] = jnode;
} else {
pointarray.push(newnode);
};
lastpoint = snappt;
drawLine();
};
} else {
startLine(xx, yy);
};
}
private function joinNode(_n1, _n2):Array{
var res:*;
if (isOnPos([_n1[0], _n1[1]], [_n2[0], _n2[1]])){
res = [_n2[2], _n2[3], _n1[2], _n1[3]];
} else {
if (isOnPos([_n1[0], _n1[1]], [_n2[2], _n2[3]])){
res = [_n2[0], _n2[1], _n1[2], _n1[3]];
} else {
if (isOnPos([_n1[2], _n1[3]], [_n2[0], _n2[1]])){
res = [_n1[0], _n1[1], _n2[2], _n2[3]];
} else {
if (isOnPos([_n1[2], _n1[3]], [_n2[2], _n2[3]])){
res = [_n1[0], _n1[1], _n2[0], _n2[1]];
};
};
};
};
return (res);
}
private function drawLine(){
var i:*;
this.graphics.clear();
this.graphics.lineStyle(3, 10524310, 1);
i = (pointarray.length - 2);
while (i > -1) {
if (getNodeDistance(pointarray[i]) < (snapdist * 3)){
if (pointarray[(i + 1)][1] == pointarray[i][3]){
pointarray[(i + 1)][0] = pointarray[i][0];
pointarray[(i + 1)][1] = pointarray[i][1];
pointarray.splice(i, 1);
};
};
i--;
};
i = 0;
while (i < pointarray.length) {
if (i == 0){
this.graphics.moveTo(pointarray[i][0], pointarray[i][1]);
} else {
if (((!((pointarray[i][0] == pointarray[(i - 1)][2]))) && (!((pointarray[i][1] == pointarray[(i - 1)][3]))))){
this.graphics.moveTo(pointarray[i][0], pointarray[i][1]);
} else {
this.graphics.lineTo(pointarray[i][2], pointarray[i][3]);
};
};
i++;
};
}
private function getDistance(x1, y1, x2, y2):Number{
var dx:Number;
var dy:Number;
dx = (x2 - x1);
dy = (y2 - y1);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
public function startLine(xx, yy){
var snappt:Array;
if (!pointarray){
pointarray = new Array();
} else {
if (pointarray.length > 0){
snappt = snapPoint(xx, yy, "start");
};
};
snappt = snapPoint(xx, yy, "start");
lastpoint = [snappt[0], snappt[1]];
}
public function setMap(_mapname, _mapcode){
mapname = _mapname;
decryptMap(_mapcode);
if (maplabel){
maplabel.text = mapname;
};
}
private function compressMap(s):String{
var res:*;
res = s.substr(0, 2);
return (s);
}
public function decryptMap(s:String):Boolean{
var i:int;
var pt1:Array;
var pt2:Array;
encryptedmap = s;
i = 0;
pointarray = new Array();
while (i < s.length) {
if (i == 0){
if (((!((s.charAt(0) == "m"))) || (!((s.charAt((s.length - 1)) == "l"))))){
cryptostatus = "invalid map code";
return (false);
};
i++;
} else {
if (i < (s.length - 4)){
if (pt1){
pt2 = decryptPoint(s.substr(i, 4));
if (!pt2){
cryptostatus = "invalid map sequence";
return (false);
};
pointarray.push([pt1[0], pt1[1], pt2[0], pt2[1]]);
i = (i + 4);
if (s.charAt(i) == "l"){
pt1 = null;
i++;
} else {
pt1 = pt2;
};
} else {
pt1 = decryptPoint(s.substr(i, 4));
if (!pt1){
cryptostatus = "invalid map sequence";
return (false);
};
i = (i + 4);
if (s.charAt(i) == "l"){
cryptostatus = "invalid map sequence";
return (false);
};
};
} else {
cryptostatus = "unfinished map sequence";
return (false);
};
};
};
drawLine();
return (true);
}
private function getNodeDistance(_n:Array):Number{
var dx:Number;
var dy:Number;
dx = (_n[2] - _n[0]);
dy = (_n[3] - _n[1]);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
public function encryptMap(){
var i:int;
encryptedmap = "";
i = 0;
while (i < pointarray.length) {
if (i == 0){
encryptedmap = "m";
};
encryptedmap = (encryptedmap + encryptPoint(pointarray[i][0], pointarray[i][1]));
if ((((i == (pointarray.length - 1))) || (!(isNodeConnected(pointarray[i], pointarray[(i + 1)]))))){
encryptedmap = (encryptedmap + encryptPoint(pointarray[i][2], pointarray[i][3]));
encryptedmap = (encryptedmap + "l");
};
i++;
};
}
private function getClosestNode(xx, yy):Array{
var i:int;
var lastdist:*;
var res:Array;
i = 0;
while (i < pointarray.length) {
if ((((((i == 0)) || ((getDistance(pointarray[i][0], pointarray[i][1], xx, yy) < lastdist)))) || ((getDistance(pointarray[i][2], pointarray[i][3], xx, yy) < lastdist)))){
res = pointarray[i];
lastdist = Math.min(getDistance(pointarray[i][0], pointarray[i][1], xx, yy), getDistance(pointarray[i][2], pointarray[i][3], xx, yy));
};
i++;
};
return (res);
}
public function clearMap(){
this.graphics.clear();
pointarray = new Array();
lastpoint = null;
}
private function getNodeAngle(_n:Array):Number{
var dx:Number;
var dy:Number;
dx = (_n[2] - _n[0]);
dy = (_n[3] - _n[1]);
return (((Math.atan2(dy, dx) / Math.PI) * 180));
}
public function eraseLine(xx, yy, rr=10){
var i:*;
var j:int;
i = (pointarray.length - 1);
while (i > -1) {
if ((((getDistance(pointarray[i][0], pointarray[i][1], xx, yy) < rr)) || ((getDistance(pointarray[i][2], pointarray[i][3], xx, yy) < rr)))){
pointarray.splice(i, 1);
};
i--;
};
drawLine();
}
private function getNodeAt(_pt):int{
var res:*;
var i:*;
res = 0;
i = 0;
while ((((i < pointarray.length)) && (!(res)))) {
if (((isOnPos([pointarray[i][0], pointarray[i][1]], _pt)) || (isOnPos([pointarray[i][2], pointarray[i][3]], _pt)))){
res = (i + 1);
};
i++;
};
return (res);
}
private function snapPoint(xx, yy, _type="continue"):Array{
var res:Array;
var closestnode:Array;
var nextdist:*;
var dist:*;
var dist1:*;
var dist2:*;
var div:int;
res = [0, 0];
if (_type == "continue"){
nextdist = (snapdist / 2);
} else {
if ((((_type == "start")) || ((_type == "stop")))){
nextdist = (snapdist * 10);
};
};
closestnode = getClosestNode(xx, yy);
if (closestnode){
dist1 = getDistance(xx, yy, closestnode[0], closestnode[1]);
dist2 = getDistance(xx, yy, closestnode[2], closestnode[3]);
dist = Math.min(dist1, dist2);
};
if (((closestnode) && ((dist < nextdist)))){
if (Math.min(dist1, dist2) == dist1){
res = [closestnode[0], closestnode[1]];
} else {
res = [closestnode[2], closestnode[3]];
};
} else {
div = Math.floor((xx / snapdist));
res[0] = Math.floor((div * snapdist));
div = Math.floor((yy / snapdist));
res[1] = Math.floor((div * snapdist));
};
return (res);
}
}
}//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;
public function MapEditorContainer(){
super();
}
private function activateButton(_n){
var i:*;
if (buttontoggle[_n]){
if (button[_n].currentLabel != "activate"){
button[_n].gotoAndPlay("activate");
i = 0;
while (i < button.length) {
if (i != _n){
if (button[i].currentLabel == "activate"){
button[i].gotoAndPlay("deactivate");
};
};
i++;
};
};
} else {
button[_n].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(_n){
if (button[_n].currentLabel != "activate"){
if (button[_n].currentLabel == "blow"){
button[_n].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(e){
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(_n){
switch (_n){
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 i:*;
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();
i = 0;
while (i < button.length) {
buttonrect.push(new Rectangle((button[i].x - (button[i].width / 2)), (button[i].y - (button[i].height / 2)), button[i].width, button[i].height));
i++;
};
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(_obj){
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(x1, y1, x2, y2):Number{
var dx:*;
var dy:*;
dx = (x2 - x1);
dy = (y2 - y1);
return (((Math.atan2(dy, dx) / 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 res:Boolean;
res = pathcreator.createMesh(drawboard.pointarray);
if (res){
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(x1, y1, x2, y2):Number{
var dx:*;
var dy:*;
dx = (x2 - x1);
dy = (y2 - y1);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
private function startLine(){
if (drawmode){
drawboard.startLine(mcpointer.x, (mcpointer.y - 80));
} else {
drawboard.eraseLine(mcpointer.x, (mcpointer.y - 80));
};
}
private function blowButton(_n){
if (button[_n].currentLabel != "activate"){
if (button[_n].currentLabel != "blow"){
button[_n].gotoAndPlay("blow");
notes.text = buttontext[_n];
};
};
}
private function goMenuPage(_obj){
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 i:*;
if (ctrlmgr.MOUSEPRESS == 2){
i = 0;
while (i < buttonrect.length) {
if (buttonrect[i].containsPoint(ctrlmgr.MOUSEPOS)){
checkSelectedButton(i);
activateButton(i);
};
i++;
};
} else {
if (ctrlmgr.MOUSEPRESS == 0){
i = 0;
while (i < buttonrect.length) {
if (buttonrect[i].containsPoint(ctrlmgr.MOUSEPOS)){
blowButton(i);
} else {
shrinkButton(i);
};
i++;
};
};
};
}
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(_map, _defpos, _row=1, _col=3){
var i:int;
if (tracing){
trace("\nMapScrollerBase:$init: Initializing map scroller");
};
mtl = MovieClip(this.stage.getChildAt(0));
maprow = _row;
mapcol = _col;
maptotalcol = Math.floor((_map.length / maprow));
if ((_map.length % maprow) > 0){
maptotalcol++;
};
mapidx = 0;
leftpos = -200;
rightpos = 740;
setMap(_map, _defpos);
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(e=null){
mtl.sndmgr.playSFX("guiselect");
if (mapidx > 0){
if (btbrowseleft.currentFrame == 1){
btbrowseleft.gotoAndPlay((btbrowseleft.totalFrames - 5));
};
};
}
public function reset(){
var i:*;
var j:int;
mapidx = 0;
leftpos = -200;
rightpos = 740;
i = 0;
while (i < map.length) {
j = 0;
while (j < map[i].length) {
map[i][j].y = defpos[0][(j + 1)];
if (i < mapcol){
map[i][j].x = defpos[i][0];
} else {
map[i][j].x = rightpos;
};
mappos[i][j] = [map[i][j].x, map[i][j].y];
j++;
};
i++;
};
}
public function setMapPos(){
var i:*;
var j:int;
if (tracing){
trace("MapScrollerBase:setMapPos: Setting defpos:", defpos);
};
i = 0;
while (i < maptotalcol) {
if (i < mapidx){
j = 0;
while (j < map[i].length) {
mappos[i][j][0] = leftpos;
j++;
};
} else {
if (i < (mapidx + mapcol)){
j = 0;
while (j < map[i].length) {
mappos[i][j][0] = defpos[(i - mapidx)][0];
j++;
};
} else {
j = 0;
while (j < map[i].length) {
mappos[i][j][0] = rightpos;
j++;
};
};
};
i++;
};
if (tracing){
trace("MapScrollerBase:setMapPos: Setting map position, mapidx:", mapidx, "defpos:", defpos, "mappos:", mappos);
};
}
public function moveLeft(e=null){
if (mapidx > 0){
mapidx--;
setMapPos();
btbrowseleft.gotoAndPlay((btbrowseleft.totalFrames - 5));
};
if (tracing){
trace("MapScrollerBase:moveLeft: mapidx:", mapidx);
};
}
public function setMap(_map, _defpos){
var i:*;
var j:int;
map = new Array();
mappos = new Array();
defpos = new Array();
i = 0;
while (i < _map.length) {
map.push(new Array());
j = 0;
while (j < maprow) {
if (i < _map.length){
map[Math.floor((i / maprow))].push(_map[i]);
};
i++;
j++;
};
};
i = 0;
while (i < mapcol) {
defpos.push(new Array());
defpos[i].push(map[i][0].x);
j = 0;
while (j < maprow) {
defpos[i].push(map[i][j].y);
j++;
};
i++;
};
i = 0;
while (i < map.length) {
mappos.push(new Array());
j = 0;
while (j < map[i].length) {
map[i][j].y = defpos[0][(j + 1)];
if (i < mapcol){
map[i][j].x = defpos[i][0];
} else {
map[i][j].x = rightpos;
};
mappos[i].push([map[i][j].x, map[i][j].y]);
j++;
};
i++;
};
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(e=null){
mtl.sndmgr.playSFX("guiselect");
if (mapidx < (maptotalcol - mapcol)){
if (btbrowseright.currentFrame == 1){
btbrowseright.gotoAndPlay((btbrowseright.totalFrames - 5));
};
};
}
public function moveClip(){
var i:*;
var j:int;
var dist: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;
};
};
i = 0;
while (i < maptotalcol) {
dist = (mappos[i][0][0] - map[i][0].x);
if (Math.abs(dist) > 1){
j = 0;
while (j < maprow) {
map[i][j].x = (map[i][j].x + (dist / 5));
j++;
};
};
i++;
};
}
public function moveRight(e=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;
public function mc_achievementnote(){
super();
}
}
}//package
Section 160
//mc_achievementnotecontent (mc_achievementnotecontent)
package {
import flash.display.*;
public dynamic class mc_achievementnotecontent extends MovieClip {
public function mc_achievementnotecontent(){
super();
}
}
}//package
Section 161
//mc_achievementscroller (mc_achievementscroller)
package {
public dynamic class mc_achievementscroller extends MapScrollerBase {
public function mc_achievementscroller(){
super();
}
}
}//package
Section 162
//mc_blood1 (mc_blood1)
package {
import flash.display.*;
public dynamic class mc_blood1 extends Sprite {
public function mc_blood1(){
super();
}
}
}//package
Section 163
//mc_blood2 (mc_blood2)
package {
import flash.display.*;
public dynamic class mc_blood2 extends Sprite {
public function mc_blood2(){
super();
}
}
}//package
Section 164
//mc_blood3 (mc_blood3)
package {
import flash.display.*;
public dynamic class mc_blood3 extends Sprite {
public function mc_blood3(){
super();
}
}
}//package
Section 165
//mc_blood4 (mc_blood4)
package {
import flash.display.*;
public dynamic class mc_blood4 extends Sprite {
public function mc_blood4(){
super();
}
}
}//package
Section 166
//mc_blood5 (mc_blood5)
package {
import flash.display.*;
public dynamic class mc_blood5 extends Sprite {
public function mc_blood5(){
super();
}
}
}//package
Section 167
//mc_blood6 (mc_blood6)
package {
import flash.display.*;
public dynamic class mc_blood6 extends Sprite {
public function mc_blood6(){
super();
}
}
}//package
Section 168
//mc_blood7 (mc_blood7)
package {
import flash.display.*;
public dynamic class mc_blood7 extends Sprite {
public function mc_blood7(){
super();
}
}
}//package
Section 169
//mc_blood8 (mc_blood8)
package {
import flash.display.*;
public dynamic class mc_blood8 extends Sprite {
public function mc_blood8(){
super();
}
}
}//package
Section 170
//mc_blowarea (mc_blowarea)
package {
import flash.display.*;
public dynamic class mc_blowarea extends Sprite {
public function mc_blowarea(){
super();
}
}
}//package
Section 171
//mc_bullet1 (mc_bullet1)
package {
import flash.display.*;
public dynamic class mc_bullet1 extends MovieClip {
public function mc_bullet1(){
super();
}
}
}//package
Section 172
//mc_bullet2 (mc_bullet2)
package {
import flash.display.*;
public dynamic class mc_bullet2 extends MovieClip {
public function mc_bullet2(){
super();
}
}
}//package
Section 173
//mc_bullet3 (mc_bullet3)
package {
import flash.display.*;
public dynamic class mc_bullet3 extends MovieClip {
public function mc_bullet3(){
super();
}
}
}//package
Section 174
//mc_bullet5 (mc_bullet5)
package {
import flash.display.*;
public dynamic class mc_bullet5 extends MovieClip {
public function mc_bullet5(){
super();
}
}
}//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;
public function mc_damagedone(){
super();
}
}
}//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(){
super();
addFrameScript(0, frame1, 1, frame2);
}
public function finishTutorial(e=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(_step, _ctr=0){
if ((((((_step == 1)) || ((_step == 3)))) || ((_step == 4)))){
ctr = -1;
} else {
ctr = _ctr;
};
step = (_step + 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(e){
if (ctr == 0){
if (currentFrame != totalFrames){
hideTutorial();
} else {
finishTutorial();
};
} else {
ctr--;
};
}
public function hideTutorial(e=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(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function hide(e=null){
gotoAndStop(1);
removeEventListener(Event.ENTER_FRAME, moveClip);
if (parent.contains(this)){
parent.removeChild(this);
};
showing = false;
}
public function moveClip(e){
if (ctr == 0){
hide();
} else {
ctr--;
};
}
public function show(_step, _ctr=0){
ctr = _ctr;
gotoAndStop(_step);
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(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 179
//mc_gamestatic (mc_gamestatic)
package {
import flash.display.*;
public dynamic class mc_gamestatic extends SimpleButton {
public function mc_gamestatic(){
super();
}
}
}//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(){
super();
addFrameScript(0, frame1, 1, frame2);
}
public function finishTutorial(e=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(_step, _ctr=0){
if ((((((_step == 1)) || ((_step == 3)))) || ((_step == 4)))){
ctr = -1;
} else {
ctr = _ctr;
};
step = (_step + 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(e){
if (ctr == 0){
if (currentFrame != totalFrames){
hideTutorial();
} else {
finishTutorial();
};
} else {
ctr--;
};
}
public function hideTutorial(e=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;
public function mc_inkreceived(){
super();
}
}
}//package
Section 182
//mc_locknotice (mc_locknotice)
package {
public dynamic class mc_locknotice extends JumpNoticeBase {
public function mc_locknotice(){
super();
}
}
}//package
Section 183
//mc_mapbrowser (mc_mapbrowser)
package {
public dynamic class mc_mapbrowser extends MapBrowserContainer {
public function mc_mapbrowser(){
super();
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(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 185
//mc_mapscroller (mc_mapscroller)
package {
public dynamic class mc_mapscroller extends MapScrollerBase {
public function mc_mapscroller(){
super();
}
}
}//package
Section 186
//mc_menupage (mc_menupage)
package {
public dynamic class mc_menupage extends MenuPageContainer {
public function mc_menupage(){
super();
}
}
}//package
Section 187
//mc_movingcritternote (mc_movingcritternote)
package {
public dynamic class mc_movingcritternote extends MovingCritterNoteBase {
public function mc_movingcritternote(){
super();
}
}
}//package
Section 188
//mc_noinknotice (mc_noinknotice)
package {
public dynamic class mc_noinknotice extends JumpNoticeBase {
public function mc_noinknotice(){
super();
}
}
}//package
Section 189
//mc_selectlevel (mc_selectlevel)
package {
public dynamic class mc_selectlevel extends SelectLevelContainer {
public function mc_selectlevel(){
super();
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(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 191
//mc_singlemaploadernotitle (mc_singlemaploadernotitle)
package {
public dynamic class mc_singlemaploadernotitle extends MapDrawerBase {
public function mc_singlemaploadernotitle(){
super();
}
}
}//package
Section 192
//mc_stagepanel (mc_stagepanel)
package {
public dynamic class mc_stagepanel extends StagePanelContainer {
public function mc_stagepanel(){
super();
}
}
}//package
Section 193
//mc_stagescene (mc_stagescene)
package {
public dynamic class mc_stagescene extends StageSceneContainer {
public function mc_stagescene(){
super();
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(){
super();
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;
public function mc_tower1(){
super();
}
}
}//package
Section 196
//mc_tower1_pointer (mc_tower1_pointer)
package {
import flash.display.*;
public dynamic class mc_tower1_pointer extends Sprite {
public function mc_tower1_pointer(){
super();
}
}
}//package
Section 197
//mc_tower1_progress (mc_tower1_progress)
package {
import flash.display.*;
public dynamic class mc_tower1_progress extends MovieClip {
public function mc_tower1_progress(){
super();
}
}
}//package
Section 198
//mc_tower2 (mc_tower2)
package {
import flash.display.*;
public dynamic class mc_tower2 extends MovieClip {
public var part:MovieClip;
public function mc_tower2(){
super();
}
}
}//package
Section 199
//mc_tower2_pointer (mc_tower2_pointer)
package {
import flash.display.*;
public dynamic class mc_tower2_pointer extends Sprite {
public function mc_tower2_pointer(){
super();
}
}
}//package
Section 200
//mc_tower2_progress (mc_tower2_progress)
package {
import flash.display.*;
public dynamic class mc_tower2_progress extends MovieClip {
public function mc_tower2_progress(){
super();
}
}
}//package
Section 201
//mc_tower3 (mc_tower3)
package {
import flash.display.*;
public dynamic class mc_tower3 extends MovieClip {
public var part:MovieClip;
public function mc_tower3(){
super();
}
}
}//package
Section 202
//mc_tower3_pointer (mc_tower3_pointer)
package {
import flash.display.*;
public dynamic class mc_tower3_pointer extends Sprite {
public function mc_tower3_pointer(){
super();
}
}
}//package
Section 203
//mc_tower3_progress (mc_tower3_progress)
package {
import flash.display.*;
public dynamic class mc_tower3_progress extends MovieClip {
public function mc_tower3_progress(){
super();
}
}
}//package
Section 204
//mc_tower4 (mc_tower4)
package {
import flash.display.*;
public dynamic class mc_tower4 extends MovieClip {
public var part:MovieClip;
public function mc_tower4(){
super();
}
}
}//package
Section 205
//mc_tower4_pointer (mc_tower4_pointer)
package {
import flash.display.*;
public dynamic class mc_tower4_pointer extends Sprite {
public function mc_tower4_pointer(){
super();
}
}
}//package
Section 206
//mc_tower4_progress (mc_tower4_progress)
package {
import flash.display.*;
public dynamic class mc_tower4_progress extends MovieClip {
public function mc_tower4_progress(){
super();
}
}
}//package
Section 207
//mc_tower5 (mc_tower5)
package {
import flash.display.*;
public dynamic class mc_tower5 extends MovieClip {
public var part:MovieClip;
public function mc_tower5(){
super();
}
}
}//package
Section 208
//mc_tower5_pointer (mc_tower5_pointer)
package {
import flash.display.*;
public dynamic class mc_tower5_pointer extends Sprite {
public function mc_tower5_pointer(){
super();
}
}
}//package
Section 209
//mc_tower5_progress (mc_tower5_progress)
package {
import flash.display.*;
public dynamic class mc_tower5_progress extends MovieClip {
public function mc_tower5_progress(){
super();
}
}
}//package
Section 210
//mc_towerlvl (mc_towerlvl)
package {
import flash.display.*;
public dynamic class mc_towerlvl extends MovieClip {
public function mc_towerlvl(){
super();
}
}
}//package
Section 211
//mc_towerrangecircle (mc_towerrangecircle)
package {
import flash.display.*;
public dynamic class mc_towerrangecircle extends MovieClip {
public function mc_towerrangecircle(){
super();
}
}
}//package
Section 212
//mc_towerrangecross (mc_towerrangecross)
package {
import flash.display.*;
public dynamic class mc_towerrangecross extends MovieClip {
public function mc_towerrangecross(){
super();
}
}
}//package
Section 213
//mc_towerupgradenote (mc_towerupgradenote)
package {
public dynamic class mc_towerupgradenote extends TowerUpgradeNoteBase {
public function mc_towerupgradenote(){
super();
}
}
}//package
Section 214
//mc_tracer (mc_tracer)
package {
public dynamic class mc_tracer extends PathTracerBase {
public function mc_tracer(){
super();
}
}
}//package
Section 215
//mc_unit1 (mc_unit1)
package {
import flash.display.*;
public dynamic class mc_unit1 extends MovieClip {
public function mc_unit1(){
super();
}
}
}//package
Section 216
//mc_unit1_frozen (mc_unit1_frozen)
package {
import flash.display.*;
public dynamic class mc_unit1_frozen extends MovieClip {
public function mc_unit1_frozen(){
super();
}
}
}//package
Section 217
//mc_unit2 (mc_unit2)
package {
import flash.display.*;
public dynamic class mc_unit2 extends MovieClip {
public function mc_unit2(){
super();
}
}
}//package
Section 218
//mc_unit2_frozen (mc_unit2_frozen)
package {
import flash.display.*;
public dynamic class mc_unit2_frozen extends MovieClip {
public function mc_unit2_frozen(){
super();
}
}
}//package
Section 219
//mc_unit3 (mc_unit3)
package {
import flash.display.*;
public dynamic class mc_unit3 extends MovieClip {
public function mc_unit3(){
super();
}
}
}//package
Section 220
//mc_unit3_frozen (mc_unit3_frozen)
package {
import flash.display.*;
public dynamic class mc_unit3_frozen extends MovieClip {
public function mc_unit3_frozen(){
super();
}
}
}//package
Section 221
//mc_unit4 (mc_unit4)
package {
import flash.display.*;
public dynamic class mc_unit4 extends MovieClip {
public function mc_unit4(){
super();
}
}
}//package
Section 222
//mc_unit4_frozen (mc_unit4_frozen)
package {
import flash.display.*;
public dynamic class mc_unit4_frozen extends MovieClip {
public function mc_unit4_frozen(){
super();
}
}
}//package
Section 223
//mc_unit5 (mc_unit5)
package {
import flash.display.*;
public dynamic class mc_unit5 extends MovieClip {
public function mc_unit5(){
super();
}
}
}//package
Section 224
//mc_unit5_frozen (mc_unit5_frozen)
package {
import flash.display.*;
public dynamic class mc_unit5_frozen extends MovieClip {
public function mc_unit5_frozen(){
super();
}
}
}//package
Section 225
//mc_unit6 (mc_unit6)
package {
import flash.display.*;
public dynamic class mc_unit6 extends MovieClip {
public function mc_unit6(){
super();
}
}
}//package
Section 226
//mc_unit6_frozen (mc_unit6_frozen)
package {
import flash.display.*;
public dynamic class mc_unit6_frozen extends MovieClip {
public function mc_unit6_frozen(){
super();
}
}
}//package
Section 227
//mc_unit7 (mc_unit7)
package {
import flash.display.*;
public dynamic class mc_unit7 extends MovieClip {
public function mc_unit7(){
super();
}
}
}//package
Section 228
//mc_unit7_frozen (mc_unit7_frozen)
package {
import flash.display.*;
public dynamic class mc_unit7_frozen extends MovieClip {
public function mc_unit7_frozen(){
super();
}
}
}//package
Section 229
//mc_unit7a (mc_unit7a)
package {
import flash.display.*;
public dynamic class mc_unit7a extends MovieClip {
public function mc_unit7a(){
super();
}
}
}//package
Section 230
//mc_unit7a_frozen (mc_unit7a_frozen)
package {
import flash.display.*;
public dynamic class mc_unit7a_frozen extends MovieClip {
public function mc_unit7a_frozen(){
super();
}
}
}//package
Section 231
//mc_unit7b (mc_unit7b)
package {
import flash.display.*;
public dynamic class mc_unit7b extends MovieClip {
public function mc_unit7b(){
super();
}
}
}//package
Section 232
//mc_unit7b_frozen (mc_unit7b_frozen)
package {
import flash.display.*;
public dynamic class mc_unit7b_frozen extends MovieClip {
public function mc_unit7b_frozen(){
super();
}
}
}//package
Section 233
//mc_unit8 (mc_unit8)
package {
import flash.display.*;
public dynamic class mc_unit8 extends MovieClip {
public function mc_unit8(){
super();
}
}
}//package
Section 234
//mc_unit8_frozen (mc_unit8_frozen)
package {
import flash.display.*;
public dynamic class mc_unit8_frozen extends MovieClip {
public function mc_unit8_frozen(){
super();
}
}
}//package
Section 235
//mc_unithealth (mc_unithealth)
package {
import flash.display.*;
public dynamic class mc_unithealth extends MovieClip {
public function mc_unithealth(){
super();
}
}
}//package
Section 236
//mc_wavecounter (mc_wavecounter)
package {
public dynamic class mc_wavecounter extends WaveCounterBase {
public function mc_wavecounter(){
super();
}
}
}//package
Section 237
//mc_wrongplacementnotice (mc_wrongplacementnotice)
package {
public dynamic class mc_wrongplacementnotice extends JumpNoticeBase {
public function mc_wrongplacementnotice(){
super();
}
}
}//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(_mtl){
var i:*;
if (tracing){
trace("MenuPageContainer:init: starting... maintimeline:", _mtl);
};
maintimeline = _mtl;
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);
i = 0;
while (i < button.length) {
btnmgr.registerFunction(i, this, {onover:showText, onout:hideText});
i++;
};
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(_idx){
if (menunotes.text == buttontext[_idx]){
menunotes.text = "";
};
}
public function hideAchievement(){
this.addEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.mcachievements.hideDialog();
}
private function moveClip(e=null){
btnmgr.moveClip(ctrlmgr.MOUSEPOS, ctrlmgr.MOUSEPRESS);
detectButtons();
}
function showText(_idx){
menunotes.text = buttontext[_idx];
}
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(_point, _parent, _atstart=false, _atstop=false){
tracing = false;
super();
point = _point;
parent = _parent;
atstart = _atstart;
atstop = _atstop;
child = new Array();
if (tracing){
trace("MeshNode.$init: New node at:", point, ", start:", atstart, ", stop:", atstop);
};
}
public function isOnPos(_point):Boolean{
return ((((_point[0] == point[0])) && ((_point[1] == point[1]))));
}
public function addChild(_node){
child.push(_node);
}
}
}//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(_start=null, _stop=null){
tracing = false;
super();
stopnode = null;
meshnodes = new Array();
path = new Array();
pathstatus = "none";
if (_start){
startpt = [Math.floor(_start[0]), Math.floor(_start[1])];
};
if (_stop){
stoppt = [Math.floor(_stop[0]), Math.floor(_stop[1])];
};
if (((_start) && (_stop))){
if (tracing){
trace("\nMeshPath.$init: Start:", startpt, " Stop:", stoppt);
};
};
}
public function addNode(_pt1, _pt2):Boolean{
var parentnode:MeshNode;
var newnode:MeshNode;
if (!_pt1){
if (getNode(_pt2)){
if (tracing){
trace("MeshPath.addNode: Start node already registered");
};
return (true);
};
newnode = new MeshNode(_pt2, null, true, isOnPos(_pt2, stoppt));
meshnodes.push(newnode);
if (tracing){
trace("MeshPath.addNode: Start node added");
};
return (true);
};
if (!_pt2){
newnode = new MeshNode(_pt1, null, true, isOnPos(_pt1, stoppt));
meshnodes.push(newnode);
if (tracing){
trace("MeshPath.addNode: Start node added");
};
return (true);
};
parentnode = getNode(_pt1);
if (parentnode){
if (getNode(_pt2)){
if (tracing){
trace("MeshPath.addNode: Node at", _pt2, " already registered");
};
return (true);
};
newnode = new MeshNode(_pt2, parentnode, false, isOnPos(_pt2, stoppt));
meshnodes.push(newnode);
if (newnode.atstop){
stopnode = newnode;
stopparentcandidate.push(parentnode);
if (tracing){
trace("MeshPath.addNode: Stop node found at", _pt2);
};
} else {
parentnode.addChild(newnode);
if (tracing){
trace("MeshPath.addNode: Node added at", _pt2);
};
};
return (true);
};
parentnode = getNode(_pt2);
if (parentnode){
newnode = new MeshNode(_pt1, parentnode, false, isOnPos(_pt1, stoppt));
meshnodes.push(newnode);
if (newnode.atstop){
stopnode = newnode;
stopparentcandidate.push(parentnode);
if (tracing){
trace("MeshPath.addNode: Stop node found at", _pt1);
};
} else {
parentnode.addChild(newnode);
if (tracing){
trace("MeshPath.addNode: Node added at", _pt1);
};
};
return (true);
};
return (false);
}
public function createMesh(_path, _start=null, _stop=null):Boolean{
var q:Array;
var i:*;
if (tracing){
trace("\nMeshPath.createMesh: Start creating mesh");
};
q = new Array();
if (_start){
startpt = [Math.floor(_start[0]), Math.floor(_start[1])];
};
if (_stop){
stoppt = [Math.floor(_stop[0]), Math.floor(_stop[1])];
};
if (((_start) && (_stop))){
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);
q = copyArray(_path);
i = (q.length - 1);
while (((!(stopnode)) && ((i > -1)))) {
if (((getNode([q[i][0], q[i][1]])) || (getNode([q[i][2], q[i][3]])))){
addNode([q[i][0], q[i][1]], [q[i][2], q[i][3]]);
q.splice(i, 1);
i = (q.length - 1);
} else {
i--;
};
};
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 curnode:MeshNode;
path = new Array();
curnode = stopnode;
path.push(curnode.point);
while (curnode.parent) {
curnode = curnode.parent;
path.push(curnode.point);
};
path = reverseArray(path);
pathstatus = "ready";
return (path);
}
private function putStopNode(){
var i:int;
var mindepth:int;
var minparent:MeshNode;
i = 0;
while (i < stopparentcandidate.length) {
if ((((i == 0)) || ((mindepth > getNodeDepth(stopparentcandidate[i]))))){
mindepth = getNodeDepth(stopparentcandidate[i]);
minparent = stopparentcandidate[i];
};
i++;
};
minparent.addChild(stopnode);
stopnode.parent = minparent;
}
private function isOnPos(_pt1, _pt2):Boolean{
return ((((_pt1[0] == _pt2[0])) && ((_pt1[1] == _pt2[1]))));
}
private function reverseArray(_arr):Array{
var i:*;
var res:Array;
res = new Array();
i = (_arr.length - 1);
while (i > -1) {
res.push(_arr[i]);
i--;
};
return (res);
}
public function getNodeDepth(_node):int{
var depth:int;
var curnode:MeshNode;
depth = 1;
curnode = _node;
path.push(curnode.point);
while (curnode.parent) {
curnode = curnode.parent;
path.push(curnode.point);
depth++;
};
return (depth);
}
public function getNode(_pt):MeshNode{
var i:int;
var res:MeshNode;
i = 0;
while (((!(res)) && ((i < meshnodes.length)))) {
if (meshnodes[i].isOnPos(_pt)){
res = meshnodes[i];
};
i++;
};
return (res);
}
private function copyArray(_arr):Array{
var i:*;
var res:Array;
res = new Array();
i = 0;
while (i < _arr.length) {
res.push(_arr[i]);
i++;
};
return (res);
}
}
}//package
Section 241
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.system.*;
import flash.net.*;
public dynamic class MochiBot extends Sprite {
public function MochiBot(){
super();
}
public static function track(parent:Sprite, tag:String):MochiBot{
var self:MochiBot;
var server:String;
var lv:URLVariables;
var url:String;
var req:URLRequest;
var loader:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
self = new (MochiBot);
parent.addChild(self);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
server = "http://core.mochibot.com/my/core.swf";
lv = new URLVariables();
lv["sb"] = Security.sandboxType;
lv["v"] = Capabilities.version;
lv["swfid"] = tag;
lv["mv"] = "8";
lv["fv"] = "9";
url = self.root.loaderInfo.loaderURL;
if (url.indexOf("http") == 0){
lv["url"] = url;
} else {
lv["url"] = "local";
};
req = new URLRequest(server);
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader = new Loader();
self.addChild(loader);
loader.load(req);
return (self);
}
}
}//package
Section 242
//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 MovingCritterNoteBase(){
super();
}
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(_critter){
if (_critter != critter){
critter = _critter;
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 243
//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 PathTracerBase(){
super();
}
public function init(_path, _topspace=0){
topspace = _topspace;
speed = 4;
minspeed = 2;
maxspeed = 8;
accel = 0.05;
gravity = 0.2;
this.visible = false;
setPath(_path);
}
public function getAngle(x1, y1, x2, y2):Number{
var dx:*;
var dy:*;
dx = (x2 - x1);
dy = (y2 - y1);
return (((Math.atan2(dy, dx) / Math.PI) * 180));
}
public function getDistance(x1, y1, x2, y2):Number{
var dx:*;
var dy:*;
dx = (x2 - x1);
dy = (y2 - y1);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
public function detectPathIndex(_gamespeed=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 * _gamespeed)){
prevpathidx = pathidx;
pathidx++;
};
}
public function setPath(_path){
path = _path;
pathidx = 0;
prevpathidx = pathidx;
}
public function getX2(x1, rad, ang):Number{
return ((x1 + (rad * Math.cos(((ang * Math.PI) / 180)))));
}
public function setPosition(_ang, _gamespeed=1){
if ((((_ang < -15)) && ((_ang > -165)))){
if (speed > minspeed){
speed = (speed - gravity);
};
} else {
if ((((_ang > 15)) && ((_ang < 165)))){
if (speed < maxspeed){
speed = (speed + (gravity + accel));
};
};
};
this.x = getX2(this.x, (speed * _gamespeed), _ang);
this.y = getY2(this.y, (speed * _gamespeed), _ang);
}
public function moveClip(e=null){
var ang:Number;
if (((path) && ((pathidx < path.length)))){
detectPathIndex();
if (pathidx < path.length){
this.visible = true;
ang = getAngle(this.x, this.y, path[pathidx][0], (path[pathidx][1] + topspace));
setPosition(ang);
this.rotation = ang;
};
} else {
this.visible = false;
};
}
public function getY2(y1, rad, ang):Number{
return ((y1 + (rad * Math.sin(((ang * Math.PI) / 180)))));
}
}
}//package
Section 244
//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;
public function SelectLevelContainer(){
super();
}
private function goPlayGame(_obj){
datamgr.startNewGame(selectedtype, selectedlevel, 0);
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("gamepage");
}
private function moveClip(e=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(_mtl){
var i:*;
maintimeline = _mtl;
tweenmgr = _mtl.tweenmgr;
sndmgr = _mtl.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"]);
i = 0;
while (i < button.length) {
btnmgr.registerFunction(i, this, {onover:showText, onout:hideText, onselect:doSound});
i++;
};
i = 0;
while (i < datamgr.mapstatus.length) {
if (datamgr.unlockallmap){
btnmgr.unlockButton(i);
} else {
if (datamgr.mapstatus[i] == 0){
btnmgr.lockButton(i);
};
};
i++;
};
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(_idx){
maintimeline.sndmgr.playSFX("guiselect");
}
private function detectButtons(){
var i:*;
var cek:*;
if (curbtn > -1){
prevbtn = curbtn;
};
curbtn = -1;
cek = false;
i = 0;
while (i < btnmgr.status.length) {
if ((((btnmgr.status[i] > 0)) && (!((i == prevbtn))))){
curbtn = i;
};
if (btnmgr.status[i] > 0){
cek = true;
};
i++;
};
if (!cek){
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(_idx){
if (notetext.text == buttontext[_idx]){
if (selectedlevel == -1){
notetext.text = "";
} else {
notetext.text = buttontext[selectedlevel];
};
};
}
private function goMenuPage(_obj){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
maintimeline.gotoAndPlay("menupage");
}
private function showText(_idx){
notetext.text = buttontext[_idx];
}
}
}//package
Section 245
//sfx_enemyreachend (sfx_enemyreachend)
package {
public dynamic class sfx_enemyreachend extends BaseSound {
public function sfx_enemyreachend(){
super();
}
}
}//package
Section 246
//sfx_enemystart (sfx_enemystart)
package {
public dynamic class sfx_enemystart extends BaseSound {
public function sfx_enemystart(){
super();
}
}
}//package
Section 247
//sfx_enemystart2 (sfx_enemystart2)
package {
public dynamic class sfx_enemystart2 extends BaseSound {
public function sfx_enemystart2(){
super();
}
}
}//package
Section 248
//sfx_explodemine (sfx_explodemine)
package {
public dynamic class sfx_explodemine extends BaseSound {
public function sfx_explodemine(){
super();
}
}
}//package
Section 249
//sfx_explodenormal (sfx_explodenormal)
package {
public dynamic class sfx_explodenormal extends BaseSound {
public function sfx_explodenormal(){
super();
}
}
}//package
Section 250
//sfx_exploderocket (sfx_exploderocket)
package {
public dynamic class sfx_exploderocket extends BaseSound {
public function sfx_exploderocket(){
super();
}
}
}//package
Section 251
//sfx_explodeslow (sfx_explodeslow)
package {
public dynamic class sfx_explodeslow extends BaseSound {
public function sfx_explodeslow(){
super();
}
}
}//package
Section 252
//sfx_guiselect (sfx_guiselect)
package {
public dynamic class sfx_guiselect extends BaseSound {
public function sfx_guiselect(){
super();
}
}
}//package
Section 253
//sfx_negative (sfx_negative)
package {
public dynamic class sfx_negative extends BaseSound {
public function sfx_negative(){
super();
}
}
}//package
Section 254
//sfx_papertear01 (sfx_papertear01)
package {
public dynamic class sfx_papertear01 extends BaseSound {
public function sfx_papertear01(){
super();
}
}
}//package
Section 255
//sfx_papertear02 (sfx_papertear02)
package {
public dynamic class sfx_papertear02 extends BaseSound {
public function sfx_papertear02(){
super();
}
}
}//package
Section 256
//sfx_papertear03 (sfx_papertear03)
package {
public dynamic class sfx_papertear03 extends BaseSound {
public function sfx_papertear03(){
super();
}
}
}//package
Section 257
//sfx_supporttowerbuilt (sfx_supporttowerbuilt)
package {
public dynamic class sfx_supporttowerbuilt extends BaseSound {
public function sfx_supporttowerbuilt(){
super();
}
}
}//package
Section 258
//sfx_towerconstruct (sfx_towerconstruct)
package {
public dynamic class sfx_towerconstruct extends BaseSound {
public function sfx_towerconstruct(){
super();
}
}
}//package
Section 259
//sfx_towerfinishedconstruct (sfx_towerfinishedconstruct)
package {
public dynamic class sfx_towerfinishedconstruct extends BaseSound {
public function sfx_towerfinishedconstruct(){
super();
}
}
}//package
Section 260
//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(_txt, xx, yy, type, tweener){
var ang:*;
super();
ang = (Math.random() * 360);
this.x = xx;
this.y = yy;
if (type == "damage"){
skin = new mc_damagedone();
tweener.register(this, {live:30, ease:"easeoutquint", x:xx, y:(yy + 50), alpha:0, rotation:0, scalex:1, scaley:1, startx:0, starty:0, startalpha:1, startrotation:0, startscalex:1, startscaley:1});
} else {
if (type == "ink"){
skin = new mc_inkreceived();
tweener.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 = _txt;
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(x1, rad, ang):Number{
return ((x1 + (rad * Math.cos(((ang * Math.PI) / 180)))));
}
public function moveClip(e){
if (this.alpha < 0.1){
this.removeEventListener(Event.ENTER_FRAME, moveClip);
if (this.parent.contains(this)){
this.parent.removeChild(this);
};
};
}
public function getY2(y1, rad, ang):Number{
return ((y1 + (rad * Math.sin(((ang * Math.PI) / 180)))));
}
}
}//package
Section 261
//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(_usearray=true){
tracing = false;
bgmvolume = 1;
sfxvolume = 1;
super();
if (tracing){
trace("Sound Manager:$init: Use array : ", _usearray);
};
usingsfxarray = _usearray;
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(_val=1){
bgmvolume = _val;
refreshVolume();
if (tracing){
trace("Sound Manager:adjustBGM: Adjusted to : ", bgmvolume);
};
}
private function startSFX(_snd, _vol=1){
var i:*;
i = 0;
if (sndfx.length < 20){
_snd.playSound();
_snd.setVolume((_vol * sfxvolume));
sndfx.push(_snd);
} else {
i = (sndfx.length - 1);
while (i >= 0) {
if (!sndfx[i].sndPlaying){
sndfx[i].stopSound();
sndfx.splice(i, 1);
};
i--;
};
if (_snd){
_snd.playSound();
_snd.setVolume((_vol * sfxvolume));
sndfx.push(_snd);
};
};
}
public function adjustSFX(_val=1){
sfxvolume = _val;
if (tracing){
trace("Sound Manager:adjustSFX: Adjusted to : ", sfxvolume);
};
}
public function refreshVolume(){
if (sndbgm){
sndbgm.setVolume(bgmvolume);
};
}
private function startSFX2(_snd, _vol=1){
_snd.playSound();
_snd.setVolume((_vol * sfxvolume));
}
public function stopSFX(){
var i:*;
var j:*;
if (usingsfxarray){
i = (sndfx.length - 1);
while (i >= 0) {
if (sndfx[i].sndPlaying){
sndfx[i].stopSound();
};
sndfx.splice(i, 1);
i--;
};
} else {
for each (j in sfxdefault) {
if (j.sndPlaying){
j.stopSound();
};
};
};
}
private function createSFX(_param):BaseSound{
switch (_param){
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(_param:String=""){
var res:*;
var rand:*;
var played:*;
var i:*;
rand = Math.random();
played = false;
i = 0;
if (usingsfxarray){
if (sfxdefault[_param]){
startSFX(createSFX(_param), sfxdefaultvolume[_param]);
if (tracing){
trace("Sound Manager:playSFX: Playing sfx : ", _param);
};
} else {
if (tracing){
trace("Sound Manager:playSFX: Invalid sfx param : ", _param);
};
};
} else {
if (sfxdefault[_param]){
startSFX2(sfxdefault[_param], sfxdefaultvolume[_param]);
if (tracing){
trace("Sound Manager:playSFX: Playing sfx : ", _param);
};
} else {
if (tracing){
trace("Sound Manager:playSFX: Invalid sfx param : ", _param);
};
};
};
}
public function playBGM(_param:String=""){
if (bgmdefault[_param]){
if (sndbgm != bgmdefault[_param]){
stopBGM();
sndbgm = bgmdefault[_param];
sndbgm.playSoundLoop();
sndbgm.setVolume((bgmvolume * bgmdefaultvolume[_param]));
sndbgm.fadeIn(true);
if (tracing){
trace("Sound Manager:playBGM: play bgm : ", _param);
};
} else {
sndbgm.setVolume((1 * bgmvolume));
if (tracing){
trace("Sound Manager:playBGM: play bgm : ", _param);
};
};
} else {
if (tracing){
trace("Sound Manager:playBGM: Invalid bgm param : ", _param);
};
};
}
}
}//package
Section 262
//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(_unit, _type="blood"){
super();
type = _type;
this.x = _unit.x;
this.y = _unit.y;
if (type == "blood"){
switch (_unit.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 263
//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(_n){
btnmgr.activateButton(_n);
}
private function showTowerNote(_idx){
var _idx = _idx;
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(_idx){
var obj:*;
obj = new mc_locknotice();
obj.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(_n){
btnmgr.lockButton(_n);
}
public function showNoInkNotice(_idx){
var obj:*;
obj = new mc_noinknotice();
obj.start(this, ctrlmgr.MOUSEPOS.x, ctrlmgr.MOUSEPOS.y, new Rectangle(0, 0, 640, 480), (ctrlmgr.MOUSEPOS.x < 320));
sndmgr.playSFX("negative");
}
public function disableButton(_n){
btnmgr.disableButton(_n);
}
public function deactivateGroup(_grp){
btnmgr.deactivateGroup(_grp);
}
public function enableButton(_n){
btnmgr.enableButton(_n);
}
public function getWaveName():String{
var s:*;
if (waveindex < 0){
s = ("#01 _ " + stagewave[waveindex]);
};
if (waveindex > stagewave.length){
s = (((("#" + ((stagewave.length < 10)) ? "0" : "") + String((stagewave.length + 1))) + " _ ") + stagewave[waveindex]);
} else {
s = (((("#" + ((waveindex < 10)) ? "0" : "") + String((waveindex + 1))) + " _ ") + stagewave[waveindex]);
};
return (s);
}
private function showWaveNote(_idx){
var _idx = _idx;
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(_n, _lvl){
if (_lvl < 10){
if (button[_n].mcinkreload.currentFrame != (_lvl + 1)){
button[_n].mcinkreload.gotoAndStop((_lvl + 1));
};
} else {
if (button[_n].mcinkreload.currentFrame < 11){
button[_n].mcinkreload.gotoAndPlay(11);
};
};
}
public function deactivateButton(_n){
btnmgr.deactivateButton(_n);
}
public function moveClip(e=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(_typed, _waves, _wavesdata, _towersdata){
var i:*;
sndmgr = MovieClip(this.stage.getChildAt(0)).sndmgr;
ctrlmgr = MovieClip(this.stage.getChildAt(0)).ctrlmgr;
mouseovertowerbuttonidx = -1;
mouseovercolorbuttonidx = -1;
stagetime = 900000;
stagewave = _waves;
stagewavedata = _wavesdata;
stagetowerdata = _towersdata;
stagetype = _typed;
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();
i = 0;
while (i < (button.length - 1)) {
btnmgr.registerFunction(i, this, {onover:showText, onout:hideText, onselect:doSound});
i++;
};
i = 0;
while (i < 5) {
btnmgr.registerFunction(i, this, {ondisabledselect:showNoInkNotice, onlockedselect:showLockedNotice});
i++;
};
i = 9;
while (i < 13) {
btnmgr.registerFunction(i, this, {onlockedselect:showLockedNotice});
i++;
};
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(_idx){
sndmgr.playSFX("guiselect");
}
public function speedUpWave(){
mcwavecounter.speedup = true;
}
private function showColorNote(_idx){
var _idx = _idx;
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(_idx){
if (notes.text == buttontext[_idx]){
notes.text = "";
};
}
private function detectButton(){
var i:int;
var cek:Boolean;
cek = false;
i = 0;
while (i < btnmgr.rect.length) {
if (btnmgr.rect[i].containsPoint(ctrlmgr.MOUSEPOS)){
if ((((i < 5)) && ((btnmgr.status[i] > -2)))){
mouseovertowerbuttonidx = (i + 1000);
} else {
if ((((((i > 8)) && ((i < 13)))) && ((btnmgr.status[i] > -2)))){
mouseovercolorbuttonidx = ((i - 9) + 1100);
} else {
mouseovertowerbuttonidx = -1;
};
};
cek = true;
};
i++;
};
if (!cek){
mouseovertowerbuttonidx = -1;
mouseovercolorbuttonidx = -1;
} else {
if (mouseovertowerbuttonidx > -1){
mouseovercolorbuttonidx = -1;
};
if (mouseovercolorbuttonidx > -1){
mouseovertowerbuttonidx = -1;
};
};
gamespeed = btspeed.currentFrame;
checkSelectedButton();
}
public function unlockButton(_n){
btnmgr.unlockButton(_n);
}
function showText(_idx){
notes.text = buttontext[_idx];
}
}
}//package
Section 264
//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(_obj){
if (layerdead.contains(_obj)){
layerdead.removeChild(_obj);
};
}
public function getTotalEnemyLast():int{
return ((enemymgr.getTotalEnemyCount() + enemyunit.length));
}
public function getWaveString():Array{
return (enemymgr.getWaveString(wavetype, waveid));
}
private function createBloodSplat(_unit){
if (layerfxtmp.numChildren < 10){
layerfxtmp.addChild(new SplashBase(_unit, "blood"));
layerfxtmp.addChild(new SplashBase(_unit, "blood"));
layerfxtmp.addChild(new SplashBase(_unit, "blood"));
} else {
layerfxtmp.addChild(new SplashBase(_unit, "blood"));
};
}
private function createBlowArea(_blt){
var obj:*;
obj = new mc_blowarea();
obj.x = _blt.x;
obj.y = _blt.y;
obj.alpha = 1;
obj.scaleX = ((_blt.bulletrange * 0.5) / 50);
obj.scaleY = ((_blt.bulletrange * 0.5) / 50);
layerdead.addChild(obj);
tweenmgr.register(obj, {live:5, ease:"easenone", x:obj.x, y:obj.y, alpha:0, rotation:0, scalex:((_blt.bulletrange * 2) / 50), scaley:((_blt.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(_ttype, _xx, _yy){
var obj:*;
curbuild[_ttype] = (curbuild[_ttype] + 1);
obj = new TowerUnitBase(_ttype, udatamgr, towerunit);
obj.x = _xx;
obj.y = _yy;
layertower.addChild(obj);
if (_ttype == 3){
obj.supportTowersInRange();
} else {
obj.checkSupportTowersInRange();
};
towerunit.push(obj);
}
public function cancelCreateTower(){
if (layercreate.towerstatus != "idle"){
layercreate.cancelCreateTower();
};
}
private function detectMouseAttack(){
var i:*;
var obj:*;
var closeenemy:*;
i = 0;
while (i < mouseattacktime.length) {
if (mouseattacktime[i] < mouseattackmax[i]){
mouseattacktime[i] = (mouseattacktime[i] + ((1 / (i + 1)) / 10));
};
i++;
};
i = 0;
closeenemy = false;
while ((((i < enemyunit.length)) && (!(closeenemy)))) {
closeenemy = (enemyunit[i].getDistance(mousepos.x, mousepos.y, enemyunit[i].x, enemyunit[i].y) < 50);
i++;
};
if (((!((prevmousepos.x == mousepos.x))) || (!((prevmousepos.y == mousepos.y))))){
mouseattack = ((mousepress) || (closeenemy));
} 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;
};
i = 0;
while (i < enemyunit.length) {
if (enemyunit[i].getDistance(mousepos.x, mousepos.y, enemyunit[i].x, enemyunit[i].y) < (enemyunit[i].width / 2)){
sndmgr.playSFX("mouseattack");
createBloodSplat(enemyunit[i]);
switch (mouseattackcolorindex){
case 0:
enemyunit[i].reduceHealth((3 + ((Math.random() * enemyunit[i].unitfactor) / 2)));
obj = new SmallNote(String(Math.floor((3 + (Math.random() * enemyunit[i].unitfactor)))), enemyunit[i].x, enemyunit[i].y, "damage", tweenmgr);
layerdead.addChild(obj);
break;
case 1:
enemyunit[i].reduceHealth((7 + ((Math.random() * enemyunit[i].unitfactor) / 2)));
obj = new SmallNote(String(Math.floor((7 + (Math.random() * enemyunit[i].unitfactor)))), enemyunit[i].x, enemyunit[i].y, "damage", tweenmgr);
layerdead.addChild(obj);
break;
case 2:
enemyunit[i].slowUnit();
enemyunit[i].reduceHealth((12 + ((Math.random() * enemyunit[i].unitfactor) / 2)));
obj = new SmallNote(String(Math.floor((12 + (Math.random() * enemyunit[i].unitfactor)))), enemyunit[i].x, enemyunit[i].y, "damage", tweenmgr);
layerdead.addChild(obj);
break;
case 3:
enemyunit[i].freezeUnit();
enemyunit[i].reduceHealth((12 + ((Math.random() * enemyunit[i].unitfactor) / 2)));
obj = new SmallNote(String(Math.floor((12 + (Math.random() * enemyunit[i].unitfactor)))), enemyunit[i].x, enemyunit[i].y, "damage", tweenmgr);
layerdead.addChild(obj);
break;
};
};
i++;
};
};
};
}
public function moveClip(_pos, _press, _speed){
var i:*;
var j:*;
var obj:*;
var cek:*;
prevmousepos = mousepos;
mousepos = this.globalToLocal(_pos);
mousepress = _press;
gamespeed = _speed;
detectMouseAttack();
moveUnit();
i = 0;
while (i < layerfxtmp.numChildren) {
obj = layerfxtmp.getChildAt(i);
if (layerfxtmp.numChildren > 15){
obj.alphaminus = (obj.alphaminus * 1.5);
};
obj.moveClip();
if (obj.status == "finished"){
datafx.lock();
drawmatrix.tx = obj.x;
drawmatrix.ty = obj.y;
datafx.draw(obj, drawmatrix, null, BlendMode.NORMAL);
datafx.unlock();
layerfxtmp.removeChild(obj);
};
i++;
};
}
public function getWaveDescString():Array{
return (enemymgr.getWaveDescString());
}
private function getEnemyInRange(_obj, _objtype="tower"):Array{
var i:*;
var res:Array;
var objrange:*;
if (_objtype == "tower"){
objrange = _obj.towerrange;
} else {
if (_objtype == "bullet"){
objrange = _obj.bulletrange;
};
};
res = new Array();
i = 0;
while (i < enemyunit.length) {
if (_obj.getDistance(enemyunit[i]) < objrange){
res.push(enemyunit[i]);
};
i++;
};
return (res);
}
private function moveUnit(){
var i:*;
var obj:*;
var cek:*;
i = (bulletunit.length - 1);
while (i > -1) {
bulletunit[i].moveClip(gamespeed);
detectHit(bulletunit[i]);
switch (bulletunit[i].bulletstatus){
case "hit":
case "destroyed":
case "outbordered":
if (layerscene.contains(bulletunit[i])){
layerscene.removeChild(bulletunit[i]);
};
bulletunit.splice(i, 1);
break;
};
i--;
};
i = (enemyunit.length - 1);
while (i > -1) {
if (enemyunit[i].unithealth == 0){
if (enemyunit[i].unittypeint == 6){
obj = new TracerUnitBase(waveid, 8, enemyunit[i].unitfactor, enemyunit[i].path, udatamgr);
obj.x = ((enemyunit[i].x + 50) - (Math.random() * 100));
obj.y = ((enemyunit[i].y + 50) - (Math.random() * 100));
obj.pathidx = enemyunit[i].pathidx;
obj.unitskin.alpha = 1;
obj.unitskin.scaleX = 1;
obj.unitskin.scaleY = 1;
enemyunit.push(obj);
layerscene.addChild(obj);
obj = new TracerUnitBase(waveid, 8, enemyunit[i].unitfactor, enemyunit[i].path, udatamgr);
obj.x = ((enemyunit[i].x + 50) - (Math.random() * 100));
obj.y = ((enemyunit[i].y + 50) - (Math.random() * 100));
obj.pathidx = enemyunit[i].pathidx;
obj.unitskin.alpha = 1;
obj.unitskin.scaleX = 1;
obj.unitskin.scaleY = 1;
enemyunit.push(obj);
layerscene.addChild(obj);
};
if (layerscene.contains(enemyunit[i])){
layerscene.removeChild(enemyunit[i]);
};
curenergy = (curenergy + enemyunit[i].unitenergy);
obj = new SmallNote(String(Math.floor(enemyunit[i].unitenergy)), enemyunit[i].x, enemyunit[i].y, "ink", tweenmgr);
layerdead.addChild(obj);
curkill[udatamgr.defaultunittype.indexOf(enemyunit[i].unittype)] = (curkill[udatamgr.defaultunittype.indexOf(enemyunit[i].unittype)] + 1);
enemyunit.splice(i, 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[i].pathidx == enemyunit[i].prevpathidx))) && ((enemyunit[i].pathidx == enemyunit[i].path.length)))){
sndmgr.playSFX("enemyreachend");
enemyunit[i].prevpathidx = enemyunit[i].pathidx;
curlivelost = (curlivelost + 1);
} else {
if (enemyunit.length > 10){
enemyunit[i].freezeSkin();
};
enemyunit[i].moveClip(gamespeed);
};
};
i--;
};
cek = false;
i = (enemyunit.length - 1);
while (i > -1) {
if (enemyunit[i].getDistance(enemyunit[i].x, enemyunit[i].y, mousepos.x, mousepos.y) < (enemyunit[i].width / 3)){
cek = true;
mcmovingcritternote.showNote(enemyunit[i]);
ctrmovingcritternote = 0;
};
i--;
};
if (!cek){
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();
};
};
i = (towerunit.length - 1);
while (i > -1) {
towerunit[i].moveClip(mousepos, mousepress, getEnemyInRange(towerunit[i]), gamespeed);
if (towerunit[i].towerstatus == "attack"){
addBulletUnit(towerunit[i]);
} else {
if (towerunit[i].towerstatus == "almostready"){
switch (towerunit[i].towertype){
case 0:
case 1:
case 2:
case 4:
sndmgr.playSFX("towerfinishedconstruct");
break;
case 3:
sndmgr.playSFX("supporttowerbuilt");
break;
};
};
};
i--;
};
cek = false;
i = (towerunit.length - 1);
while (i > -1) {
if (towerunit[i].towerstatus != "build"){
if (towerunit[i].getDistance(mousepos) < (towerunit[i].width / 3)){
cek = true;
if (mousepress){
mctowerupgradenote.showDockedNote(towerunit[i]);
ctrtowerupgradenote = 0;
} else {
ctrtowerupgradenote++;
if (ctrtowerupgradenote > 15){
mctowerupgradenote.showNote(towerunit[i]);
ctrtowerupgradenote = 0;
};
};
};
};
i--;
};
if (!cek){
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(_gs=1){
gamespeed = _gs;
}
public function init(_mapid, _type, _typeid){
mapid = _mapid;
wavetype = _type;
waveid = _typeid;
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(_tower){
var obj:*;
obj = new BulletObjectBase(_tower);
layerscene.addChild(obj);
bulletunit.push(obj);
}
public function showWrongPlacementNotice(){
var obj:*;
obj = new mc_wrongplacementnotice();
obj.start(this, mousepos.x, mousepos.y, new Rectangle(0, 0, 640, 480), (mousepos.x < 320));
sndmgr.playSFX("negative");
}
public function getDistance(_obj1, _obj2):Number{
var dx:*;
var dy:*;
dx = (_obj2.x - _obj1.x);
dy = (_obj2.y - _obj1.y);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
private function joinArray(_arr1, _arr2):Array{
var res:*;
var i:*;
res = new Array();
i = 0;
while (i < _arr1.length) {
res.push(_arr1[i]);
i++;
};
i = 0;
while (i < _arr2.length) {
res.push(_arr2[i]);
i++;
};
return (res);
}
public function getPrice(_unittype):int{
return (udatamgr.defaulttowerprice[0][_unittype]);
}
public function getWaveEnemyLast():int{
return (enemymgr.getWaveEnemyCount());
}
public function startCreateTower(_typed){
if ((((layercreate.towerstatus == "idle")) || (!((layercreate.towertype == _typed))))){
layercreate.cancelCreateTower();
layercreate.startCreateTower(_typed, towerunit, databg, udatamgr);
mctowerupgradenote.hideDockedNote();
};
}
public function getTowerDescString():Array{
var res:*;
var s:*;
var i:*;
res = new Array();
i = 0;
while (i < udatamgr.defaulttowertype.length) {
s = (udatamgr.defaulttowertype[i] + "\n");
s = (s + (("cc " + String(Math.floor(udatamgr.defaulttowerprice[0][i]))) + "\n"));
s = (s + (String(Math.floor(udatamgr.defaulttowerattack[0][i])) + "\n"));
switch (i){
case 0:
s = (s + "None");
break;
case 1:
s = (s + "Slow (area)");
break;
case 2:
s = (s + "Missile (area)");
break;
case 3:
s = (s + "Support");
break;
case 4:
s = (s + "Mine (area)");
break;
};
res.push(s);
i++;
};
return (res);
}
public function createMouseTrack(_unit){
var ln:*;
var obj:*;
obj = new SplashBase(_unit, "mouse");
if (prevmousepos){
ln = new Sprite();
ln.graphics.lineStyle(3, mouseattackcolor[mouseattackcolorindex]);
ln.graphics.moveTo(0, 0);
ln.graphics.lineTo((prevmousepos.x - mousepos.x), (prevmousepos.y - mousepos.y));
obj.addChild(ln);
};
layerfxtmp.addChild(obj);
}
public function dispatchEnemyUnit(_idx, _idxprogress){
var newenemy:*;
newenemy = enemymgr.dispatchEnemyUnit(_idx, _idxprogress, enemyunit.length);
if (newenemy){
if (newenemy.unittypeint > 2){
sndmgr.playSFX("enemystart");
} else {
sndmgr.playSFX("enemystart2");
};
layerscene.addChild(newenemy);
enemyunit.push(newenemy);
};
}
private function detectHit(_blt){
var i:*;
var j:*;
var closeenemy:*;
var obj:*;
closeenemy = new Array();
i = 0;
while (i < enemyunit.length) {
if (_blt.getDistance(enemyunit[i]) < 10){
_blt.bulletstatus = "hit";
switch (_blt.bullettype){
case 0:
sndmgr.playSFX("explodenormal");
createBloodSplat(enemyunit[i]);
enemyunit[i].reduceHealth(_blt.bulletattack);
obj = new SmallNote(String(Math.floor(_blt.bulletattack)), enemyunit[i].x, enemyunit[i].y, "damage", tweenmgr);
layerdead.addChild(obj);
i = enemyunit.length;
break;
case 1:
sndmgr.playSFX("explodeslow");
closeenemy = getEnemyInRange(_blt, "bullet");
j = 0;
while (j < closeenemy.length) {
createBloodSplat(closeenemy[j]);
closeenemy[j].reduceHealth((_blt.bulletattack + (Math.random() * 3)));
obj = new SmallNote(String(Math.floor((_blt.bulletattack + (Math.random() * 3)))), closeenemy[j].x, closeenemy[j].y, "damage", tweenmgr);
layerdead.addChild(obj);
closeenemy[j].slowUnit();
if (closeenemy[j].speed < 0.5){
closeenemy[j].speed = 0.5;
};
j++;
};
i = enemyunit.length;
break;
case 2:
sndmgr.playSFX("exploderocket");
closeenemy = getEnemyInRange(_blt, "bullet");
j = 0;
while (j < closeenemy.length) {
createBloodSplat(closeenemy[j]);
closeenemy[j].reduceHealth((_blt.bulletattack + (Math.random() * 3)));
obj = new SmallNote(String(Math.floor((_blt.bulletattack + (Math.random() * 3)))), closeenemy[j].x, closeenemy[j].y, "damage", tweenmgr);
layerdead.addChild(obj);
j++;
};
i = enemyunit.length;
break;
case 4:
sndmgr.playSFX("explodemine");
closeenemy = getEnemyInRange(_blt, "bullet");
j = 0;
while (j < closeenemy.length) {
createBloodSplat(closeenemy[j]);
closeenemy[j].reduceHealth((_blt.bulletattack + (Math.random() * 3)));
obj = new SmallNote(String(Math.floor((_blt.bulletattack + (Math.random() * 3)))), closeenemy[j].x, closeenemy[j].y, "damage", tweenmgr);
layerdead.addChild(obj);
j++;
};
i = enemyunit.length;
break;
};
};
i++;
};
if (((!((_blt.bullettype == 0))) && ((_blt.bulletstatus == "hit")))){
createBlowArea(_blt);
};
}
public function destroy(){
this.removeChild(layerbg);
this.removeChild(layerfx);
this.removeChild(layertower);
this.removeChild(layerscene);
this.removeChild(layercreate);
}
}
}//package
Section 265
//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(_val=1){
speed = _val;
progressstep = Math.floor(((maxtime / 1000) / speed));
framestep = Math.floor(((maxtime / 1000) / speed));
if (tracing){
trace("TimeCounterBase:setSpeed: Set counter speed:", speed);
};
}
public function startCounter(_maxtime){
starttime = getTimer();
maxtime = _maxtime;
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 266
//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(_time=null){
super();
if (_time){
time = _time;
} else {
time = getTimer();
};
parse(time);
}
public function parse(_time:uint, _sep:String=":"):String{
time = _time;
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 + _sep) + sminute) + _sep) + ssecond) + _sep) + smsecond);
} else {
stime = ((((sminute + _sep) + ssecond) + _sep) + smsecond);
};
return (stime);
}
}
}//package
Section 267
//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 TowerCreateBase(){
super();
}
public function stopCreateTower(){
this.removeChild(pointerskin);
this.removeChild(pointerrange);
towerstatus = "finish";
}
private function detectTower(_obj):Boolean{
var i:*;
var obj:*;
var dist:*;
var dist2:*;
i = 0;
while (i < towers.length) {
dist2 = getDistance(_obj.x, _obj.y, towers[i].x, towers[i].y);
if ((((i == 0)) || ((dist2 < dist)))){
obj = towers[i];
dist = dist2;
};
i++;
};
if (obj){
return ((dist < (_obj.width * 1.1)));
};
return (false);
}
private function getDistance(x1, y1, x2, y2):Number{
var dx:*;
var dy:*;
dx = (x2 - x1);
dy = (y2 - y1);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
public function cancelCreateTower(){
if (((pointerskin) && (this.contains(pointerskin)))){
this.removeChild(pointerskin);
};
if (((pointerrange) && (this.contains(pointerrange)))){
this.removeChild(pointerrange);
};
towerstatus = "cancel";
}
private function detectBitmap(_obj):Boolean{
var res:*;
var px:*;
var pt:*;
var mult:*;
res = false;
pt = new Point(_obj.x, _obj.y);
px = mapdata.getPixel(pt.x, pt.y);
res = ((res) || (!((px == 0))));
mult = 0.1;
while (mult < 1) {
pt = new Point((_obj.x + (_obj.width * 0.4)), ((_obj.y - (_obj.height * 0.4)) + (_obj.height * mult)));
px = mapdata.getPixel(pt.x, pt.y);
res = ((res) || (!((px == 0))));
pt = new Point((_obj.x - (_obj.width * 0.4)), ((_obj.y - (_obj.height * 0.4)) + (_obj.height * mult)));
px = mapdata.getPixel(pt.x, pt.y);
res = ((res) || (!((px == 0))));
pt = new Point(((_obj.x - (_obj.width * 0.4)) + (_obj.width * mult)), (_obj.y + (_obj.height * 0.4)));
px = mapdata.getPixel(pt.x, pt.y);
res = ((res) || (!((px == 0))));
pt = new Point(((_obj.x - (_obj.width * 0.4)) + (_obj.width * mult)), (_obj.y - (_obj.height * 0.4)));
px = mapdata.getPixel(pt.x, pt.y);
res = ((res) || (!((px == 0))));
mult = (mult + 0.1);
};
return (res);
}
public function startCreateTower(_typed, _towers, _mapdata, _udatamgr){
udatamgr = _udatamgr;
towertype = _typed;
towers = _towers;
mapdata = _mapdata;
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][_typed] * 2) / 100);
pointerrange.scaleY = ((udatamgr.defaulttowerrange[0][_typed] * 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(_pos, _press){
if (towerstatus == "ready"){
if (towerrec.containsPoint(_pos)){
this.x = _pos.x;
this.y = _pos.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) && (!(_press)))){
if (pointerskin.alpha == 1){
stopCreateTower();
} else {
cancelCreateTower();
};
};
} else {
if (((lastpress) && (!(_press)))){
cancelCreateTower();
};
};
lastpress = _press;
} else {
if (towerstatus != "idle"){
towerstatus = "idle";
};
};
}
}
}//package
Section 268
//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(_ttype, _udatamgr, _tower){
var i:*;
super();
udatamgr = _udatamgr;
towertype = _ttype;
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 = _tower;
towerstatus = "build";
}
public function getAngle(_obj):Number{
var dx:*;
var dy:*;
dx = (_obj.x - this.x);
dy = (_obj.y - this.y);
return (((Math.atan2(dy, dx) / Math.PI) * 180));
}
public function getFactor():Number{
var i:*;
var res:*;
res = 1;
i = 0;
while (i < towersupport.length) {
res = (res + (towersupport[i].towerattack / 100));
i++;
};
return (res);
}
public function hideRange(){
if (this.contains(towerrangeskin)){
this.removeChild(towerrangeskin);
};
}
public function addFactor(_tower){
if (((!((towertype == 3))) && ((_tower.towertype == 3)))){
if (towersupport.indexOf(_tower) == -1){
towersupport.push(_tower);
};
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(_obj):Number{
var dx:*;
var dy:*;
dx = (_obj.x - this.x);
dy = (_obj.y - this.y);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
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(_enm):Object{
var i:*;
var res:*;
var d1:*;
var d2:*;
i = 0;
while (i < _enm.length) {
d2 = getDistance(_enm[i]);
if ((((i == 0)) || ((d2 < d1)))){
res = _enm[i];
d1 = d2;
};
i++;
};
return (res);
}
private function setRangeSkin(){
towerrangeskin.scaleX = ((towerrange * 2) / 100);
towerrangeskin.scaleY = ((towerrange * 2) / 100);
}
public function getBestAngle(_enm):Object{
var i:*;
var res:*;
var d1:*;
var d2:*;
i = 0;
while (i < _enm.length) {
d2 = Math.min((getAngle(_enm[i]) / 90), Math.abs(((getAngle(_enm[i]) / 90) - 90)));
if ((((i == 0)) || ((d2 < d1)))){
res = _enm[i];
d1 = d2;
};
i++;
};
return (res);
}
public function supportTowersInRange(){
var i:*;
i = 0;
while (i < towerunit.length) {
if (((!((towerunit[i].towertype == 3))) && ((getDistance(towerunit[i]) <= towerrange)))){
towerunit[i].addFactor(this);
};
i++;
};
}
public function upgradeTower(){
var i:*;
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(_enm){
var target:*;
var targetangle:*;
switch (towertype){
case 0:
case 1:
if (_enm.length > 0){
target = _enm[0];
};
if (target){
towerskin.part.rotation = getAngle(target);
};
break;
case 2:
if (_enm.length > 0){
target = getBestAngle(_enm);
};
if (target){
targetangle = getAngle(target);
if (Math.abs(targetangle) < 10){
towerskin.part.rotation = 0;
} else {
if (Math.abs(targetangle) < 45){
towerskin.part.rotation = 0;
if (Math.random() < 0.7){
towerattackcounter = (towerattackcounter - gamespeed);
};
} else {
if (Math.abs((targetangle - 90)) < 10){
towerskin.part.rotation = 90;
} else {
if (Math.abs((targetangle - 90)) < 45){
towerskin.part.rotation = 90;
if (Math.random() < 0.7){
towerattackcounter = (towerattackcounter - gamespeed);
};
} else {
if ((180 - Math.abs(targetangle)) < 10){
towerskin.part.rotation = 180;
} else {
if ((180 - Math.abs(targetangle)) < 45){
towerskin.part.rotation = 180;
if (Math.random() < 0.7){
towerattackcounter = (towerattackcounter - gamespeed);
};
} else {
if (Math.abs((targetangle + 90)) < 10){
towerskin.part.rotation = -90;
} else {
if (Math.abs((targetangle + 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 = target;
towerangle = towerskin.part.rotation;
}
public function moveClip(_pos, _press, _enemy, _speed){
var i:*;
gamespeed = _speed;
if (towerstatus == "build"){
detectProgress();
} else {
if (towerstatus == "almostready"){
towerstatus = "ready";
} else {
if (towerstatus == "ready"){
towerattackcounter = (towerattackcounter + (gamespeed * gamespeed));
detectEnemy(_enemy);
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 i:*;
i = 0;
while (i < towerunit.length) {
if ((((towerunit[i].towertype == 3)) && ((getDistance(towerunit[i]) <= towerunit[i].towerrange)))){
addFactor(towerunit[i]);
};
i++;
};
}
public function sellTower(){
var i:*;
if (towertype == 3){
i = 0;
while (i < towerunit.length) {
if (((!((towerunit[i] == this))) && (!((towerunit[i].towertype == 3))))){
towerunit[i].removeFactor(this);
};
i++;
};
};
}
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(_tower){
var idx:*;
idx = towersupport.indexOf(_tower);
if (idx != -1){
towersupport.splice(idx, 1);
towerrange = (udatamgr.defaulttowerrange[towerlevel][towertype] * getFactor());
towerspeed = udatamgr.defaulttowerspeed[towerlevel][towertype];
towerattack = (udatamgr.defaulttowerattack[towerlevel][towertype] * getFactor());
setRangeSkin();
};
}
}
}//package
Section 269
//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 TowerUpgradeNoteBase(){
super();
}
public function showDockedNote(_tower){
if (!initialized){
init();
};
status = "idle";
if (_tower != tower){
if (tower){
tower.hideRange();
};
tower = _tower;
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(e=null){
if (((tower) && (checkLimit()))){
status = "upgrade";
upgradelimit = (upgradelimit - tower.udatamgr.defaulttowerprice[(tower.towerlevel + 1)][tower.towertype]);
};
}
public function setLimit(_eng){
if (((!((status == "upgrade"))) && (!((_eng == upgradelimit))))){
upgradelimit = _eng;
btupgrade.visible = checkLimit();
};
}
public function showNote(_tower){
if (!initialized){
init();
};
status = "idle";
if (_tower != tower){
if (!docked){
if (tower){
tower.hideRange();
};
tower = _tower;
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 nextlvl:*;
if (tower){
nextlvl = (tower.towerlevel + 1);
btupgrade.visible = false;
if (nextlvl < 5){
if (upgradelimit >= tower.udatamgr.defaulttowerprice[nextlvl][tower.towertype]){
return (true);
};
};
};
return (false);
}
public function moveClip(w){
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(e=null){
if (((tower) && (btsell.enabled))){
status = "sell";
};
}
}
}//package
Section 270
//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(_gamelv, _type, _factor, _path, _udatamgr){
var typeint:*;
super();
udatamgr = _udatamgr;
this.topspace = 0;
this.setPath(_path);
typeint = _type;
unittypeint = typeint;
unittype = udatamgr.defaultunittype[typeint];
unitfactor = _factor;
unitmaxhealth = (Math.floor((udatamgr.defaultunithealth[typeint] * _factor)) + Math.floor(((Math.random() * udatamgr.defaultunithealth[typeint]) / 10)));
unithealth = unitmaxhealth;
if (_gamelv < 5){
unitenergy = Math.floor((udatamgr.defaultunitenergy[typeint] + _factor));
} else {
if (_gamelv < 13){
unitenergy = Math.floor((udatamgr.defaultunitenergy[typeint] + (_factor * 0.95)));
} else {
if (_gamelv < 17){
unitenergy = Math.floor((udatamgr.defaultunitenergy[typeint] + (_factor * 0.85)));
} else {
unitenergy = Math.floor((udatamgr.defaultunitenergy[typeint] + (_factor * 0.75)));
};
};
};
this.speed = (udatamgr.defaultunitspeed[typeint] - (Math.random() / 4));
this.minspeed = udatamgr.defaultunitminspeed[typeint];
this.maxspeed = udatamgr.defaultunitmaxspeed[typeint];
this.accel = udatamgr.defaultunitaccel[typeint];
this.gravity = udatamgr.defaultunitgravity[typeint];
initSkin(typeint);
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(_count){
unithealth = (unithealth - _count);
if (unithealth <= 0){
unithealth = 0;
};
unithealthbar.gotoAndStop((Math.floor(((unithealth / unitmaxhealth) * 100)) + 1));
}
public function setSkinRotation(_ang){
switch (unittype){
case "bodyguard":
unitskin.rotation = 0;
break;
default:
unitskin.rotation = _ang;
break;
};
}
private function initSkin(_n){
switch (_n){
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 ((((((_n == 5)) || ((_n == 4)))) || ((_n == 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 bd:BitmapData;
var mt:Matrix;
if (!bmpskin){
unitskin.alpha = 1;
unitskin.scaleX = 1;
unitskin.scaleY = 1;
unitskin.rotation = 0;
mt = new Matrix();
mt.tx = (unitskin.width / 2);
mt.ty = (unitskin.height / 2);
bd = new BitmapData(unitskin.width, unitskin.height, true, 0xFFFFFF);
bd.draw(unitskin, mt);
bmpskin = new Bitmap(bd, "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(_gamespeed=1){
var ang: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 - _gamespeed);
if (slowtimer < 0){
slowtimer = 0;
};
this.detectPathIndex(_gamespeed);
if (this.pathidx < this.path.length){
this.visible = true;
ang = this.getAngle(this.x, this.y, this.path[pathidx][0], (this.path[pathidx][1] + this.topspace));
this.setPosition(ang, _gamespeed);
unitskin.rotation = ang;
};
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 - _gamespeed);
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 271
//TweenEquations (TweenEquations)
package {
public class TweenEquations {
public static var equations:Array = new Array();
public function TweenEquations(){
super();
trace("TweenEquations is a static class and should not be instantiated.");
}
public static function easeOutBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
if (t < (1 / 2.75)){
return (((c * ((7.5625 * t) * t)) + b));
};
if (t < (2 / 2.75)){
t = (t - (1.5 / 2.75));
return (((c * (((7.5625 * t) * t) + 0.75)) + b));
};
if (t < (2.5 / 2.75)){
t = (t - (2.25 / 2.75));
return (((c * (((7.5625 * t) * t) + 0.9375)) + b));
};
t = (t - (2.625 / 2.75));
return (((c * (((7.5625 * t) * t) + 0.984375)) + b));
}
public static function easeInOutElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var p:Number;
var s:Number;
var a:Number;
if (t == 0){
return (b);
};
t = (t / (d / 2));
if (t == 2){
return ((b + c));
};
p = (((!(Boolean(p_params))) || (isNaN(p_params.period)))) ? (d * (0.3 * 1.5)) : p_params.period;
a = (((!(Boolean(p_params))) || (isNaN(p_params.amplitude)))) ? 0 : p_params.amplitude;
if (((!(Boolean(a))) || ((a < Math.abs(c))))){
a = c;
s = (p / 4);
} else {
s = ((p / (2 * Math.PI)) * Math.asin((c / a)));
};
if (t < 1){
--t;
return (((-0.5 * ((a * Math.pow(2, (10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p)))) + b));
};
--t;
return ((((((a * Math.pow(2, (-10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p))) * 0.5) + c) + b));
}
public static function easeInOutQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return (((((c / 2) * t) * t) + b));
};
--t;
return ((((-(c) / 2) * ((t * (t - 2)) - 1)) + b));
}
public static function easeInOutBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (((easeInBounce((t * 2), 0, c, d) * 0.5) + b));
};
return ((((easeOutBounce(((t * 2) - d), 0, c, d) * 0.5) + (c * 0.5)) + b));
}
public static function easeInOutBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var s:Number;
s = (((!(Boolean(p_params))) || (isNaN(p_params.overshoot)))) ? 1.70158 : p_params.overshoot;
t = (t / (d / 2));
if (t < 1){
s = (s * 1.525);
return ((((c / 2) * ((t * t) * (((s + 1) * t) - s))) + b));
};
t = (t - 2);
s = (s * 1.525);
return ((((c / 2) * (((t * t) * (((s + 1) * t) + s)) + 2)) + b));
}
public static function easeOutInCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutCubic((t * 2), b, (c / 2), d, p_params));
};
return (easeInCubic(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeNone(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return ((((c * t) / d) + b));
}
public static function easeOutBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var s:Number;
s = (((!(Boolean(p_params))) || (isNaN(p_params.overshoot)))) ? 1.70158 : p_params.overshoot;
t = ((t / d) - 1);
return (((c * (((t * t) * (((s + 1) * t) + s)) + 1)) + b));
}
public static function easeInOutSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return ((((-(c) / 2) * (Math.cos(((Math.PI * t) / d)) - 1)) + b));
}
public static function easeInBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var s:Number;
s = (((!(Boolean(p_params))) || (isNaN(p_params.overshoot)))) ? 1.70158 : p_params.overshoot;
t = (t / d);
return (((((c * t) * t) * (((s + 1) * t) - s)) + b));
}
public static function easeInQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return ((((((c * t) * t) * t) * t) + b));
}
public static function easeOutInQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutQuint((t * 2), b, (c / 2), d, p_params));
};
return (easeInQuint(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeOutInBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutBounce((t * 2), b, (c / 2), d, p_params));
};
return (easeInBounce(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
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(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return (((t)==d) ? (b + c) : (((c * 1.001) * (-(Math.pow(2, ((-10 * t) / d))) + 1)) + b));
}
public static function easeOutInBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutBack((t * 2), b, (c / 2), d, p_params));
};
return (easeInBack(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeInExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return (((t)==0) ? b : (((c * Math.pow(2, (10 * ((t / d) - 1)))) + b) - (c * 0.001)));
}
public static function easeInCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return (((((c * t) * t) * t) + b));
}
public static function easeInQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return (((((((c * t) * t) * t) * t) * t) + b));
}
public static function easeInOutCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return ((((-(c) / 2) * (Math.sqrt((1 - (t * t))) - 1)) + b));
};
t = (t - 2);
return ((((c / 2) * (Math.sqrt((1 - (t * t))) + 1)) + b));
}
public static function easeInQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return ((((c * t) * t) + b));
}
public static function easeInBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return (((c - easeOutBounce((d - t), 0, c, d)) + b));
}
public static function easeOutInExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutExpo((t * 2), b, (c / 2), d, p_params));
};
return (easeInExpo(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeOutQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = ((t / d) - 1);
return (((-(c) * ((((t * t) * t) * t) - 1)) + b));
}
public static function easeInSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return ((((-(c) * Math.cos(((t / d) * (Math.PI / 2)))) + c) + b));
}
public static function easeInOutQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return (((((((c / 2) * t) * t) * t) * t) + b));
};
t = (t - 2);
return ((((-(c) / 2) * ((((t * t) * t) * t) - 2)) + b));
}
public static function easeOutInElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutElastic((t * 2), b, (c / 2), d, p_params));
};
return (easeInElastic(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeInElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var p:Number;
var s:Number;
var a:Number;
if (t == 0){
return (b);
};
t = (t / d);
if (t == 1){
return ((b + c));
};
p = (((!(Boolean(p_params))) || (isNaN(p_params.period)))) ? (d * 0.3) : p_params.period;
a = (((!(Boolean(p_params))) || (isNaN(p_params.amplitude)))) ? 0 : p_params.amplitude;
if (((!(Boolean(a))) || ((a < Math.abs(c))))){
a = c;
s = (p / 4);
} else {
s = ((p / (2 * Math.PI)) * Math.asin((c / a)));
};
--t;
return ((-(((a * Math.pow(2, (10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p)))) + b));
}
public static function easeOutCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = ((t / d) - 1);
return (((c * (((t * t) * t) + 1)) + b));
}
public static function easeOutQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = ((t / d) - 1);
return (((c * (((((t * t) * t) * t) * t) + 1)) + b));
}
public static function easeOutInQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutQuad((t * 2), b, (c / 2), d, p_params));
};
return (easeInQuad(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeOutSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return (((c * Math.sin(((t / d) * (Math.PI / 2)))) + b));
}
public static function easeOutQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return ((((-(c) * t) * (t - 2)) + b));
}
public static function easeInOutCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return ((((((c / 2) * t) * t) * t) + b));
};
t = (t - 2);
return ((((c / 2) * (((t * t) * t) + 2)) + b));
}
public static function easeInOutQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return ((((((((c / 2) * t) * t) * t) * t) * t) + b));
};
t = (t - 2);
return ((((c / 2) * (((((t * t) * t) * t) * t) + 2)) + b));
}
public static function easeInCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return (((-(c) * (Math.sqrt((1 - (t * t))) - 1)) + b));
}
public static function easeOutInSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutSine((t * 2), b, (c / 2), d, p_params));
};
return (easeInSine(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeInOutExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t == 0){
return (b);
};
if (t == d){
return ((b + c));
};
t = (t / (d / 2));
if (t < 1){
return (((((c / 2) * Math.pow(2, (10 * (t - 1)))) + b) - (c * 0.0005)));
};
--t;
return (((((c / 2) * 1.0005) * (-(Math.pow(2, (-10 * t))) + 2)) + b));
}
public static function easeOutElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var p:Number;
var s:Number;
var a:Number;
if (t == 0){
return (b);
};
t = (t / d);
if (t == 1){
return ((b + c));
};
p = (((!(Boolean(p_params))) || (isNaN(p_params.period)))) ? (d * 0.3) : p_params.period;
a = (((!(Boolean(p_params))) || (isNaN(p_params.amplitude)))) ? 0 : p_params.amplitude;
if (((!(Boolean(a))) || ((a < Math.abs(c))))){
a = c;
s = (p / 4);
} else {
s = ((p / (2 * Math.PI)) * Math.asin((c / a)));
};
return (((((a * Math.pow(2, (-10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p))) + c) + b));
}
public static function easeOutCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = ((t / d) - 1);
return (((c * Math.sqrt((1 - (t * t)))) + b));
}
public static function easeOutInQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutQuart((t * 2), b, (c / 2), d, p_params));
};
return (easeInQuart(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeOutInCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutCirc((t * 2), b, (c / 2), d, p_params));
};
return (easeInCirc(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
}
}//package
Section 272
//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(){
super();
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(_mc, _params, _function=null){
var i:*;
i = clip.indexOf(_mc);
if (i > -1){
clip.splice(i, 1);
curlive.splice(i, 1);
clipparams.splice(i, 1);
functions.splice(i, 1);
};
i = clip.length;
clip.push(_mc);
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[i].live = _params.live;
clipparams[i].ease = _params.ease;
clipparams[i].x = _params.x;
clipparams[i].y = _params.y;
clipparams[i].alpha = _params.alpha;
clipparams[i].rotation = _params.rotation;
clipparams[i].scalex = _params.scalex;
clipparams[i].scaley = _params.scaley;
clipparams[i].startx = clip[i].x;
clipparams[i].starty = clip[i].y;
clipparams[i].startalpha = clip[i].alpha;
clipparams[i].startrotation = clip[i].rotation;
clipparams[i].startscalex = clip[i].scaleX;
clipparams[i].startscaley = clip[i].scaleY;
if (((_function) && (_function["scope"]))){
functions.push(_function);
} else {
functions.push({scope:null});
};
}
private function applyFunction(_n, _event){
if (((functions[_n]["scope"]) && (functions[_n][_event]))){
functions[_n][_event].apply(functions[_n]["scope"], [clip[_n]]);
};
}
private function moveClip(e){
var i:*;
var cek:*;
cek = true;
i = (clip.length - 1);
while (i > -1) {
var _local4 = curlive;
var _local5 = i;
var _local6 = (_local4[_local5] + 1);
_local4[_local5] = _local6;
if (curlive[i] <= clipparams[i].live){
if (Math.abs((clipparams[i].x - clip[i].x)) > 1){
cek = false;
clip[i].x = TweenEquations.equations[clipparams[i].ease].apply(clip, [curlive[i], clipparams[i].startx, (clipparams[i].x - clipparams[i].startx), clipparams[i].live]);
};
if (Math.abs((clipparams[i].y - clip[i].y)) > 1){
cek = false;
clip[i].y = TweenEquations.equations[clipparams[i].ease].apply(clip, [curlive[i], clipparams[i].starty, (clipparams[i].y - clipparams[i].starty), clipparams[i].live]);
};
if (Math.abs((clipparams[i].alpha - clip[i].alpha)) > 0.01){
cek = false;
clip[i].alpha = TweenEquations.equations[clipparams[i].ease].apply(clip, [curlive[i], clipparams[i].startalpha, (clipparams[i].alpha - clipparams[i].startalpha), clipparams[i].live]);
};
if (Math.abs((clipparams[i].rotation - clip[i].rotation)) > 1){
cek = false;
clip[i].rotation = TweenEquations.equations[clipparams[i].ease].apply(clip, [curlive[i], clipparams[i].startrotation, (clipparams[i].rotation - clipparams[i].startrotation), clipparams[i].live]);
};
if (Math.abs((clipparams[i].scalex - clip[i].scaleX)) > 0.01){
cek = false;
clip[i].scaleX = TweenEquations.equations[clipparams[i].ease].apply(clip, [curlive[i], clipparams[i].startscalex, (clipparams[i].scalex - clipparams[i].startscalex), clipparams[i].live]);
};
if (Math.abs((clipparams[i].scaley - clip[i].scaleY)) > 0.01){
cek = false;
clip[i].scaleY = TweenEquations.equations[clipparams[i].ease].apply(clip, [curlive[i], clipparams[i].startscaley, (clipparams[i].scaley - clipparams[i].startscaley), clipparams[i].live]);
};
};
if (((cek) || ((curlive[i] > clipparams[i].live)))){
unregister(i);
};
i--;
};
}
public function unregister(_n){
var f:*;
var p:*;
var o:*;
f = functions[_n];
p = clipparams[_n];
o = clip[_n];
clip.splice(_n, 1);
curlive.splice(_n, 1);
clipparams.splice(_n, 1);
functions.splice(_n, 1);
if (((f["scope"]) && (f["onfinished"]))){
f["onfinished"].apply(f["scope"], [o]);
};
}
}
}//package
Section 273
//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, 2, 0, 3], [0, 0, 0, 1, 0, 2, 0, 3], [0, 0, 0, 1, 1, 0, 2, 0, 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(_arr){
var res:Array;
var i:int;
res = new Array();
i = 0;
while (i < _arr.length) {
res.push(_arr[i]);
i++;
};
return (res);
}
}
}//package
Section 274
//wallpaperdata (wallpaperdata)
package {
import flash.display.*;
public dynamic class wallpaperdata extends BitmapData {
public function wallpaperdata(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 275
//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 WaveButtonBase(){
super();
}
public function init(_idx, _label, _typed){
indexed = _idx;
labeled = _label;
typed = _typed;
indextxt.text = String(indexed);
labeltxt.text = labeled;
}
}
}//package
Section 276
//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(_val=1){
speed = _val;
if (tracing){
trace("WaveCounterBase:setSpeed: Set counter speed:", speed);
};
}
public function init(){
var i:*;
if (wavebutton){
i = 0;
while (i < wavebutton.length) {
if (mccontainer.contains(wavebutton[i])){
mccontainer.removeChild(wavebutton[i]);
};
i++;
};
};
speed = 1;
mouseoveridx = -1;
progress = 9999;
waveindex = -1;
wavearray = new Array();
wavebutton = new Array();
wavebuttonrect = new Array();
speedup = false;
speedupall = true;
}
public function startCounter(_wv){
var i:*;
var obj:*;
init();
if (tracing){
trace("\nWaveCounterBase:startCounter: Initializing wave counter");
};
wavearray = _wv;
i = 0;
while (i < wavearray.length) {
obj = new bt_unitwave();
obj.init((i + 1), wavearray[i], "");
if (i > 0){
obj.x = ((wavebutton[(wavebutton.length - 1)].x + wavebutton[(wavebutton.length - 1)].width) + btspace);
obj.y = wavebutton[(wavebutton.length - 1)].y;
} else {
obj.x = btleftmost;
obj.y = bttopmost;
};
mccontainer.addChild(obj);
wavebutton.push(obj);
wavebuttonrect.push(new Rectangle(obj.x, obj.y, obj.width, obj.height));
i++;
};
if (tracing){
trace("WaveCounterBase:startCounter: Wave initialized,", wavearray.length, " groups added to queue");
};
}
public function moveClip(_mousepos, _mousepress){
var i:*;
if (waveindex < wavebutton.length){
mousepos = this.globalToLocal(_mousepos);
prevmousepress = mousepress;
mousepress = _mousepress;
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;
};
};
};
i = 0;
while (i < wavebutton.length) {
wavebutton[i].x = (wavebutton[i].x - 6);
wavebuttonrect[i].x = wavebutton[i].x;
i++;
};
} 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){
i = 0;
while (i < wavebutton.length) {
wavebutton[i].x = (wavebutton[i].x - 1);
wavebuttonrect[i].x = wavebutton[i].x;
i++;
};
movecounter = 0;
};
};
if (waveindex > -1){
progress = Math.floor((wavebutton[waveindex].x * -1));
};
if (progress > 100){
progress = 100;
};
if (progress < 0){
progress = 0;
};
mouseoveridx = -1;
i = 0;
while ((((i < wavebuttonrect.length)) && ((mouseoveridx == -1)))) {
if (((wavebutton[i].visible) && (wavebuttonrect[i].containsPoint(mousepos)))){
mouseoveridx = i;
};
i++;
};
};
}
}
}//package