Section 1
//MainTimeline (autotanks_fla.MainTimeline)
package autotanks_fla {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
import flash.filters.*;
import mochi.*;
import flash.media.*;
import flash.text.*;
import CPMStar.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
import flash.system.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var bytestotal;
public var readyToContinue:Boolean;
public var noAdDomains:Array;
public var onSinisterSea:Boolean;
public var ad:DisplayObject;
public var CPMStarContentSpotID:String;
public var adBox:AdBox;
public var adTimer:Timer;
public var domName;
public var bytesloaded;
public var showAds:Boolean;
public var loadCounter:TextField;
public var sclbar;
public var i:int;
public var playATButton:PlayATButton;
public function MainTimeline(){
addFrameScript(0, frame1, 2, frame3);
}
public function playClicked(_arg1:MouseEvent){
playATButton.removeEventListener(MouseEvent.CLICK, playClicked);
removeChild(adBox);
play();
}
public function stepFrame(_arg1:Event){
var _local2 = "";
bytestotal = stage.loaderInfo.bytesTotal;
bytesloaded = stage.loaderInfo.bytesLoaded;
sclbar = Math.round(((bytesloaded * 100) / bytestotal));
if ((((adTimer.currentCount < sclbar)) && (showAds))){
_local2 = String(adTimer.currentCount);
} else {
_local2 = String(sclbar);
};
loadCounter.text = (("Loading AutoTanks\n" + _local2) + "%");
if ((((bytesloaded >= bytestotal)) && (readyToContinue))){
adTimer.stop();
adTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, timerDone);
removeEventListener(Event.ENTER_FRAME, stepFrame);
if (showAds){
loadCounter.text = "";
playATButton.visible = true;
playATButton.addEventListener(MouseEvent.CLICK, playClicked);
} else {
play();
};
};
}
public function timerDone(_arg1:TimerEvent){
readyToContinue = true;
}
function frame1(){
stop();
MochiBot.track(this, "c3cc6b62");
MochiServices.connect("4e5755645ae94375", root);
bytestotal = stage.loaderInfo.bytesTotal;
bytesloaded = stage.loaderInfo.bytesLoaded;
sclbar = Math.round(((bytesloaded * 100) / bytestotal));
domName = loaderInfo.loaderURL.toUpperCase();
onSinisterSea = false;
noAdDomains = ["SINISTERSEA.COM", "NEWGROUNDS.COM", "KONGREGATE.COM"];
showAds = true;
adTimer = new Timer(25, 100);
readyToContinue = false;
playATButton.visible = false;
adTimer.addEventListener(TimerEvent.TIMER_COMPLETE, timerDone);
adTimer.start();
i = 0;
while (i < noAdDomains.length) {
if (domName.indexOf(noAdDomains[i]) == -1){
} else {
showAds = false;
};
i++;
};
if (domName.indexOf("SINISTERSEA.COM") == -1){
onSinisterSea = false;
} else {
onSinisterSea = true;
};
if (showAds){
CPMStarContentSpotID = "780Q8B4A2605";
ad = new AdLoader(CPMStarContentSpotID);
adBox.addChild(ad);
} else {
readyToContinue = true;
loadCounter.y = 230;
removeChild(adBox);
};
addEventListener(Event.ENTER_FRAME, stepFrame);
}
function frame3(){
stop();
addChild(GameManager.screenDisplay);
addChild(GameManager.interfaceDisplay);
addChild(GameManager.fadeDisplay);
GameManager.setStage(stage);
GameManager.onSinisterSea = onSinisterSea;
GameManager.initiate();
}
}
}//package autotanks_fla
Section 2
//AuxFunctions (caurina.transitions.AuxFunctions)
package caurina.transitions {
public class AuxFunctions {
public static function getObjectLength(_arg1:Object):uint{
var _local3:String;
var _local2:uint;
for (_local3 in _arg1) {
_local2++;
};
return (_local2);
}
public static function numberToG(_arg1:Number):Number{
return (((_arg1 & 0xFF00) >> 8));
}
public static function numberToB(_arg1:Number):Number{
return ((_arg1 & 0xFF));
}
public static function numberToR(_arg1:Number):Number{
return (((_arg1 & 0xFF0000) >> 16));
}
public static function concatObjects(... _args):Object{
var _local3:Object;
var _local5:String;
var _local2:Object = {};
var _local4:int;
while (_local4 < _args.length) {
_local3 = _args[_local4];
for (_local5 in _local3) {
if (_local3[_local5] == null){
delete _local2[_local5];
} else {
_local2[_local5] = _local3[_local5];
};
};
_local4++;
};
return (_local2);
}
}
}//package caurina.transitions
Section 3
//Equations (caurina.transitions.Equations)
package caurina.transitions {
public class Equations {
public function Equations(){
trace("Equations is a static class and should not be instantiated.");
}
public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
if (_arg1 < (1 / 2.75)){
return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2));
};
if (_arg1 < (2 / 2.75)){
_arg1 = (_arg1 - (1.5 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2));
};
if (_arg1 < (2.5 / 2.75)){
_arg1 = (_arg1 - (2.25 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2));
};
_arg1 = (_arg1 - (2.625 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2));
}
public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period;
var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
};
--_arg1;
return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2));
}
public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
};
return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
}
public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2));
};
_arg1 = (_arg1 - 2);
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2));
}
public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2));
}
public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2));
}
public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2));
}
public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function init():void{
Tweener.registerTransition("easenone", easeNone);
Tweener.registerTransition("linear", easeNone);
Tweener.registerTransition("easeinquad", easeInQuad);
Tweener.registerTransition("easeoutquad", easeOutQuad);
Tweener.registerTransition("easeinoutquad", easeInOutQuad);
Tweener.registerTransition("easeoutinquad", easeOutInQuad);
Tweener.registerTransition("easeincubic", easeInCubic);
Tweener.registerTransition("easeoutcubic", easeOutCubic);
Tweener.registerTransition("easeinoutcubic", easeInOutCubic);
Tweener.registerTransition("easeoutincubic", easeOutInCubic);
Tweener.registerTransition("easeinquart", easeInQuart);
Tweener.registerTransition("easeoutquart", easeOutQuart);
Tweener.registerTransition("easeinoutquart", easeInOutQuart);
Tweener.registerTransition("easeoutinquart", easeOutInQuart);
Tweener.registerTransition("easeinquint", easeInQuint);
Tweener.registerTransition("easeoutquint", easeOutQuint);
Tweener.registerTransition("easeinoutquint", easeInOutQuint);
Tweener.registerTransition("easeoutinquint", easeOutInQuint);
Tweener.registerTransition("easeinsine", easeInSine);
Tweener.registerTransition("easeoutsine", easeOutSine);
Tweener.registerTransition("easeinoutsine", easeInOutSine);
Tweener.registerTransition("easeoutinsine", easeOutInSine);
Tweener.registerTransition("easeincirc", easeInCirc);
Tweener.registerTransition("easeoutcirc", easeOutCirc);
Tweener.registerTransition("easeinoutcirc", easeInOutCirc);
Tweener.registerTransition("easeoutincirc", easeOutInCirc);
Tweener.registerTransition("easeinexpo", easeInExpo);
Tweener.registerTransition("easeoutexpo", easeOutExpo);
Tweener.registerTransition("easeinoutexpo", easeInOutExpo);
Tweener.registerTransition("easeoutinexpo", easeOutInExpo);
Tweener.registerTransition("easeinelastic", easeInElastic);
Tweener.registerTransition("easeoutelastic", easeOutElastic);
Tweener.registerTransition("easeinoutelastic", easeInOutElastic);
Tweener.registerTransition("easeoutinelastic", easeOutInElastic);
Tweener.registerTransition("easeinback", easeInBack);
Tweener.registerTransition("easeoutback", easeOutBack);
Tweener.registerTransition("easeinoutback", easeInOutBack);
Tweener.registerTransition("easeoutinback", easeOutInBack);
Tweener.registerTransition("easeinbounce", easeInBounce);
Tweener.registerTransition("easeoutbounce", easeOutBounce);
Tweener.registerTransition("easeinoutbounce", easeInOutBounce);
Tweener.registerTransition("easeoutinbounce", easeOutInBounce);
}
public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2));
}
public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001)));
}
public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2));
}
public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2));
}
public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2));
}
public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2));
}
public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2));
}
public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
--_arg1;
return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
}
public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2));
}
public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
}
public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 == 0){
return (_arg2);
};
if (_arg1 == _arg4){
return ((_arg2 + _arg3));
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005)));
};
--_arg1;
return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2));
}
public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2));
}
public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2));
}
public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
}
}//package caurina.transitions
Section 4
//PropertyInfoObj (caurina.transitions.PropertyInfoObj)
package caurina.transitions {
public class PropertyInfoObj {
public var modifierParameters:Array;
public var isSpecialProperty:Boolean;
public var valueComplete:Number;
public var modifierFunction:Function;
public var extra:Object;
public var valueStart:Number;
public var hasModifier:Boolean;
public var arrayIndex:Number;
public var originalValueComplete:Object;
public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){
valueStart = _arg1;
valueComplete = _arg2;
originalValueComplete = _arg3;
arrayIndex = _arg4;
extra = _arg5;
isSpecialProperty = _arg6;
hasModifier = Boolean(_arg7);
modifierFunction = _arg7;
modifierParameters = _arg8;
}
public function toString():String{
var _local1 = "\n[PropertyInfoObj ";
_local1 = (_local1 + ("valueStart:" + String(valueStart)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("valueComplete:" + String(valueComplete)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("arrayIndex:" + String(arrayIndex)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("extra:" + String(extra)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("hasModifier:" + String(hasModifier)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("modifierFunction:" + String(modifierFunction)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("modifierParameters:" + String(modifierParameters)));
_local1 = (_local1 + "]\n");
return (_local1);
}
public function clone():PropertyInfoObj{
var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters);
return (_local1);
}
}
}//package caurina.transitions
Section 5
//SpecialProperty (caurina.transitions.SpecialProperty)
package caurina.transitions {
public class SpecialProperty {
public var parameters:Array;
public var getValue:Function;
public var preProcess:Function;
public var setValue:Function;
public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){
getValue = _arg1;
setValue = _arg2;
parameters = _arg3;
preProcess = _arg4;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialProperty ");
_local1 = (_local1 + ("getValue:" + String(getValue)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("setValue:" + String(setValue)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("parameters:" + String(parameters)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("preProcess:" + String(preProcess)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 6
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier)
package caurina.transitions {
public class SpecialPropertyModifier {
public var getValue:Function;
public var modifyValues:Function;
public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){
modifyValues = _arg1;
getValue = _arg2;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialPropertyModifier ");
_local1 = (_local1 + ("modifyValues:" + String(modifyValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("getValue:" + String(getValue)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 7
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter)
package caurina.transitions {
public class SpecialPropertySplitter {
public var parameters:Array;
public var splitValues:Function;
public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){
splitValues = _arg1;
parameters = _arg2;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialPropertySplitter ");
_local1 = (_local1 + ("splitValues:" + String(splitValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("parameters:" + String(parameters)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 8
//Tweener (caurina.transitions.Tweener)
package caurina.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tweener {
private static var _timeScale:Number = 1;
private static var _currentTimeFrame:Number;
private static var _specialPropertySplitterList:Object;
private static var _engineExists:Boolean = false;
private static var _specialPropertyModifierList:Object;
private static var _currentTime:Number;
private static var _tweenList:Array;
private static var _specialPropertyList:Object;
private static var _transitionList:Object;
private static var _inited:Boolean = false;
private static var __tweener_controller__:MovieClip;
public function Tweener(){
trace("Tweener is a static class and should not be instantiated.");
}
public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{
if (!_inited){
init();
};
var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3);
_specialPropertyModifierList[_arg1] = _local4;
}
public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{
if (!_inited){
init();
};
var _local6:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4, _arg5);
_specialPropertyList[_arg1] = _local6;
}
public static function init(... _args):void{
_inited = true;
_transitionList = new Object();
Equations.init();
_specialPropertyList = new Object();
_specialPropertyModifierList = new Object();
_specialPropertySplitterList = new Object();
}
private static function updateTweens():Boolean{
var _local1:int;
if (_tweenList.length == 0){
return (false);
};
_local1 = 0;
while (_local1 < _tweenList.length) {
if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){
if (!updateTweenByIndex(_local1)){
removeTweenByIndex(_local1);
};
if (_tweenList[_local1] == null){
removeTweenByIndex(_local1, true);
_local1--;
};
};
_local1++;
};
return (true);
}
public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{
var _local3:Number;
var _local4:Array;
var _local8:Function;
var _local9:TweenListObj;
var _local10:Number;
var _local11:String;
if (!Boolean(_arg1)){
return (false);
};
if ((_arg1 is Array)){
_local4 = _arg1.concat();
} else {
_local4 = [_arg1];
};
var _local5:Object = _arg2;
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time;
var _local7:Number = (isNaN(_local5.delay)) ? 0 : _local5.delay;
if (typeof(_local5.transition) == "string"){
_local11 = _local5.transition.toLowerCase();
_local8 = _transitionList[_local11];
} else {
_local8 = _local5.transition;
};
if (!Boolean(_local8)){
_local8 = _transitionList["easeoutexpo"];
};
_local3 = 0;
while (_local3 < _local4.length) {
if (_local5.useFrames == true){
_local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams);
} else {
_local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams);
};
_local9.properties = null;
_local9.onStart = _local5.onStart;
_local9.onUpdate = _local5.onUpdate;
_local9.onComplete = _local5.onComplete;
_local9.onOverwrite = _local5.onOverwrite;
_local9.onStartParams = _local5.onStartParams;
_local9.onUpdateParams = _local5.onUpdateParams;
_local9.onCompleteParams = _local5.onCompleteParams;
_local9.onOverwriteParams = _local5.onOverwriteParams;
_local9.onStartScope = _local5.onStartScope;
_local9.onUpdateScope = _local5.onUpdateScope;
_local9.onCompleteScope = _local5.onCompleteScope;
_local9.onOverwriteScope = _local5.onOverwriteScope;
_local9.onErrorScope = _local5.onErrorScope;
_local9.isCaller = true;
_local9.count = _local5.count;
_local9.waitFrames = _local5.waitFrames;
_tweenList.push(_local9);
if ((((_local6 == 0)) && ((_local7 == 0)))){
_local10 = (_tweenList.length - 1);
updateTweenByIndex(_local10);
removeTweenByIndex(_local10);
};
_local3++;
};
return (true);
}
public static function pauseAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
pauseTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function removeTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local5:SpecialPropertySplitter;
var _local6:Array;
var _local7:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){
if (_specialPropertySplitterList[_args[_local4]]){
_local5 = _specialPropertySplitterList[_args[_local4]];
_local6 = _local5.splitValues(_arg1, null);
_local7 = 0;
while (_local7 < _local6.length) {
_local3.push(_local6[_local7].name);
_local7++;
};
} else {
_local3.push(_args[_local4]);
};
};
_local4++;
};
return (affectTweens(removeTweenByIndex, _arg1, _local3));
}
public static function splitTweens(_arg1:Number, _arg2:Array):uint{
var _local5:uint;
var _local6:String;
var _local7:Boolean;
var _local3:TweenListObj = _tweenList[_arg1];
var _local4:TweenListObj = _local3.clone(false);
_local5 = 0;
while (_local5 < _arg2.length) {
_local6 = _arg2[_local5];
if (Boolean(_local3.properties[_local6])){
_local3.properties[_local6] = undefined;
delete _local3.properties[_local6];
};
_local5++;
};
for (_local6 in _local4.properties) {
_local7 = false;
_local5 = 0;
while (_local5 < _arg2.length) {
if (_arg2[_local5] == _local6){
_local7 = true;
break;
};
_local5++;
};
if (!_local7){
_local4.properties[_local6] = undefined;
delete _local4.properties[_local6];
};
};
_tweenList.push(_local4);
return ((_tweenList.length - 1));
}
public static function updateFrame():void{
_currentTimeFrame++;
}
public static function resumeTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj = _tweenList[_arg1];
if ((((_local2 == null)) || (!(_local2.isPaused)))){
return (false);
};
var _local3:Number = getCurrentTweeningTime(_local2);
_local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused));
_local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused));
_local2.timePaused = undefined;
_local2.isPaused = false;
return (true);
}
public static function getVersion():String{
return ("AS3 1.31.74");
}
public static function onEnterFrame(_arg1:Event):void{
updateTime();
updateFrame();
var _local2:Boolean;
_local2 = updateTweens();
if (!_local2){
stopEngine();
};
}
public static function updateTime():void{
_currentTime = getTimer();
}
private static function updateTweenByIndex(_arg1:Number):Boolean{
var tTweening:TweenListObj;
var mustUpdate:Boolean;
var nv:Number;
var t:Number;
var b:Number;
var c:Number;
var d:Number;
var pName:String;
var eventScope:Object;
var tScope:Object;
var tProperty:Object;
var pv:Number;
var i = _arg1;
tTweening = _tweenList[i];
if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){
return (false);
};
var isOver:Boolean;
var cTime:Number = getCurrentTweeningTime(tTweening);
if (cTime >= tTweening.timeStart){
tScope = tTweening.scope;
if (tTweening.isCaller){
do {
t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1));
b = tTweening.timeStart;
c = (tTweening.timeComplete - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d);
} while (!(cTime >= nv));
} else {
mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates)));
if (cTime >= tTweening.timeComplete){
isOver = true;
mustUpdate = true;
};
if (!tTweening.hasStarted){
if (Boolean(tTweening.onStart)){
eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope;
try {
tTweening.onStart.apply(eventScope, tTweening.onStartParams);
} catch(e2:Error) {
handleError(tTweening, e2, "onStart");
};
};
for (pName in tTweening.properties) {
if (tTweening.properties[pName].isSpecialProperty){
if (Boolean(_specialPropertyList[pName].preProcess)){
tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra);
};
pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra);
} else {
pv = tScope[pName];
};
tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv;
};
mustUpdate = true;
tTweening.hasStarted = true;
};
if (mustUpdate){
for (pName in tTweening.properties) {
tProperty = tTweening.properties[pName];
if (isOver){
nv = tProperty.valueComplete;
} else {
if (tProperty.hasModifier){
t = (cTime - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams);
nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters);
} else {
t = (cTime - tTweening.timeStart);
b = tProperty.valueStart;
c = (tProperty.valueComplete - tProperty.valueStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d, tTweening.transitionParams);
};
};
if (tTweening.rounded){
nv = Math.round(nv);
};
if (tProperty.isSpecialProperty){
_specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra);
} else {
tScope[pName] = nv;
};
};
tTweening.updatesSkipped = 0;
if (Boolean(tTweening.onUpdate)){
eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope;
try {
tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams);
} catch(e3:Error) {
handleError(tTweening, e3, "onUpdate");
};
};
} else {
tTweening.updatesSkipped++;
};
};
if (((isOver) && (Boolean(tTweening.onComplete)))){
eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope;
try {
tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams);
} catch(e4:Error) {
handleError(tTweening, e4, "onComplete");
};
};
return (!(isOver));
};
return (true);
}
public static function setTimeScale(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
if (isNaN(_arg1)){
_arg1 = 1;
};
if (_arg1 < 1E-5){
_arg1 = 1E-5;
};
if (_arg1 != _timeScale){
if (_tweenList != null){
_local2 = 0;
while (_local2 < _tweenList.length) {
_local3 = getCurrentTweeningTime(_tweenList[_local2]);
_tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1));
_tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1));
if (_tweenList[_local2].timePaused != undefined){
_tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1));
};
_local2++;
};
};
_timeScale = _arg1;
};
}
public static function resumeAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
resumeTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{
var eventScope:Object;
var pTweening = _arg1;
var pError = _arg2;
var pCallBackName = _arg3;
if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){
eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope;
try {
pTweening.onError.apply(eventScope, [pTweening.scope, pError]);
} catch(metaError:Error) {
printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace()));
};
} else {
if (!Boolean(pTweening.onError)){
printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace()));
};
};
}
private static function startEngine():void{
_engineExists = true;
_tweenList = new Array();
__tweener_controller__ = new MovieClip();
__tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
_currentTimeFrame = 0;
updateTime();
}
public static function removeAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
removeTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:Array;
var _local13:Function;
var _local14:Object;
var _local15:TweenListObj;
var _local16:Number;
var _local17:Array;
var _local18:Array;
var _local19:Array;
var _local20:String;
if (!Boolean(_arg1)){
return (false);
};
if ((_arg1 is Array)){
_local6 = _arg1.concat();
} else {
_local6 = [_arg1];
};
var _local7:Object = TweenListObj.makePropertiesChain(_arg2);
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time;
var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay;
var _local10:Array = new Array();
var _local11:Object = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true};
var _local12:Object = new Object();
for (_local5 in _local7) {
if (!_local11[_local5]){
if (_specialPropertySplitterList[_local5]){
_local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters);
_local3 = 0;
while (_local3 < _local17.length) {
if (_specialPropertySplitterList[_local17[_local3].name]){
_local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters);
_local4 = 0;
while (_local4 < _local18.length) {
_local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false};
_local4++;
};
} else {
_local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false};
};
_local3++;
};
} else {
if (_specialPropertyModifierList[_local5] != undefined){
_local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]);
_local3 = 0;
while (_local3 < _local19.length) {
_local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue};
_local3++;
};
} else {
_local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]};
};
};
};
};
for (_local5 in _local10) {
if (_specialPropertyList[_local5] != undefined){
_local10[_local5].isSpecialProperty = true;
} else {
if (_local6[0][_local5] == undefined){
printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property."));
};
};
};
for (_local5 in _local12) {
if (_local10[_local5] != undefined){
_local10[_local5].modifierParameters = _local12[_local5].modifierParameters;
_local10[_local5].modifierFunction = _local12[_local5].modifierFunction;
};
};
if (typeof(_local7.transition) == "string"){
_local20 = _local7.transition.toLowerCase();
_local13 = _transitionList[_local20];
} else {
_local13 = _local7.transition;
};
if (!Boolean(_local13)){
_local13 = _transitionList["easeoutexpo"];
};
_local3 = 0;
while (_local3 < _local6.length) {
_local14 = new Object();
for (_local5 in _local10) {
_local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters);
};
if (_local7.useFrames == true){
_local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams);
} else {
_local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams);
};
_local15.properties = _local14;
_local15.onStart = _local7.onStart;
_local15.onUpdate = _local7.onUpdate;
_local15.onComplete = _local7.onComplete;
_local15.onOverwrite = _local7.onOverwrite;
_local15.onError = _local7.onError;
_local15.onStartParams = _local7.onStartParams;
_local15.onUpdateParams = _local7.onUpdateParams;
_local15.onCompleteParams = _local7.onCompleteParams;
_local15.onOverwriteParams = _local7.onOverwriteParams;
_local15.onStartScope = _local7.onStartScope;
_local15.onUpdateScope = _local7.onUpdateScope;
_local15.onCompleteScope = _local7.onCompleteScope;
_local15.onOverwriteScope = _local7.onOverwriteScope;
_local15.onErrorScope = _local7.onErrorScope;
_local15.rounded = _local7.rounded;
_local15.skipUpdates = _local7.skipUpdates;
removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete);
_tweenList.push(_local15);
if ((((_local8 == 0)) && ((_local9 == 0)))){
_local16 = (_tweenList.length - 1);
updateTweenByIndex(_local16);
removeTweenByIndex(_local16);
};
_local3++;
};
return (true);
}
public static function registerTransition(_arg1:String, _arg2:Function):void{
if (!_inited){
init();
};
_transitionList[_arg1] = _arg2;
}
public static function printError(_arg1:String):void{
trace(("## [Tweener] Error: " + _arg1));
}
private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{
var _local5:uint;
var _local6:Array;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local4:Boolean;
if (!Boolean(_tweenList)){
return (false);
};
_local5 = 0;
while (_local5 < _tweenList.length) {
if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){
if (_arg3.length == 0){
_arg1(_local5);
_local4 = true;
} else {
_local6 = new Array();
_local7 = 0;
while (_local7 < _arg3.length) {
if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){
_local6.push(_arg3[_local7]);
};
_local7++;
};
if (_local6.length > 0){
_local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties);
if (_local8 == _local6.length){
_arg1(_local5);
_local4 = true;
} else {
_local9 = splitTweens(_local5, _local6);
_arg1(_local9);
_local4 = true;
};
};
};
};
_local5++;
};
return (_local4);
}
public static function getTweens(_arg1:Object):Array{
var _local2:uint;
var _local3:String;
if (!Boolean(_tweenList)){
return ([]);
};
var _local4:Array = new Array();
_local2 = 0;
while (_local2 < _tweenList.length) {
if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){
for (_local3 in _tweenList[_local2].properties) {
_local4.push(_local3);
};
};
_local2++;
};
return (_local4);
}
public static function isTweening(_arg1:Object):Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local2 = 0;
while (_local2 < _tweenList.length) {
if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){
return (true);
};
_local2++;
};
return (false);
}
public static function pauseTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj = _tweenList[_arg1];
if ((((_local2 == null)) || (_local2.isPaused))){
return (false);
};
_local2.timePaused = getCurrentTweeningTime(_local2);
_local2.isPaused = true;
return (true);
}
public static function getCurrentTweeningTime(_arg1:Object):Number{
return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime);
}
public static function getTweenCount(_arg1:Object):Number{
var _local2:uint;
if (!Boolean(_tweenList)){
return (0);
};
var _local3:Number = 0;
_local2 = 0;
while (_local2 < _tweenList.length) {
if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){
_local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties));
};
_local2++;
};
return (_local3);
}
private static function stopEngine():void{
_engineExists = false;
_tweenList = null;
_currentTime = 0;
_currentTimeFrame = 0;
__tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
__tweener_controller__ = null;
}
public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{
var removedLocally:Boolean;
var i:uint;
var pName:String;
var eventScope:Object;
var p_scope = _arg1;
var p_properties = _arg2;
var p_timeStart = _arg3;
var p_timeComplete = _arg4;
var removed:Boolean;
var tl:uint = _tweenList.length;
i = 0;
while (i < tl) {
if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){
if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){
removedLocally = false;
for (pName in _tweenList[i].properties) {
if (Boolean(p_properties[pName])){
if (Boolean(_tweenList[i].onOverwrite)){
eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope;
try {
_tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams);
} catch(e:Error) {
handleError(_tweenList[i], e, "onOverwrite");
};
};
_tweenList[i].properties[pName] = undefined;
delete _tweenList[i].properties[pName];
removedLocally = true;
removed = true;
};
};
if (removedLocally){
if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){
removeTweenByIndex(i);
};
};
};
};
i = (i + 1);
};
return (removed);
}
public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{
if (!_inited){
init();
};
var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3);
_specialPropertySplitterList[_arg1] = _local4;
}
public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{
_tweenList[_arg1] = null;
if (_arg2){
_tweenList.splice(_arg1, 1);
};
return (true);
}
public static function resumeTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(resumeTweenByIndex, _arg1, _local3));
}
public static function pauseTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(pauseTweenByIndex, _arg1, _local3));
}
}
}//package caurina.transitions
Section 9
//TweenListObj (caurina.transitions.TweenListObj)
package caurina.transitions {
public class TweenListObj {
public var hasStarted:Boolean;
public var onUpdate:Function;
public var useFrames:Boolean;
public var count:Number;
public var onOverwriteParams:Array;
public var timeStart:Number;
public var timeComplete:Number;
public var onStartParams:Array;
public var onUpdateScope:Object;
public var rounded:Boolean;
public var onUpdateParams:Array;
public var properties:Object;
public var onComplete:Function;
public var transitionParams:Object;
public var updatesSkipped:Number;
public var onStart:Function;
public var onOverwriteScope:Object;
public var skipUpdates:Number;
public var onStartScope:Object;
public var scope:Object;
public var isCaller:Boolean;
public var timePaused:Number;
public var transition:Function;
public var onCompleteParams:Array;
public var onError:Function;
public var timesCalled:Number;
public var onErrorScope:Object;
public var onOverwrite:Function;
public var isPaused:Boolean;
public var waitFrames:Boolean;
public var onCompleteScope:Object;
public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){
scope = _arg1;
timeStart = _arg2;
timeComplete = _arg3;
useFrames = _arg4;
transition = _arg5;
transitionParams = _arg6;
properties = new Object();
isPaused = false;
timePaused = undefined;
isCaller = false;
updatesSkipped = 0;
timesCalled = 0;
skipUpdates = 0;
hasStarted = false;
}
public function clone(_arg1:Boolean):TweenListObj{
var _local3:String;
var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams);
_local2.properties = new Array();
for (_local3 in properties) {
_local2.properties[_local3] = properties[_local3].clone();
};
_local2.skipUpdates = skipUpdates;
_local2.updatesSkipped = updatesSkipped;
if (!_arg1){
_local2.onStart = onStart;
_local2.onUpdate = onUpdate;
_local2.onComplete = onComplete;
_local2.onOverwrite = onOverwrite;
_local2.onError = onError;
_local2.onStartParams = onStartParams;
_local2.onUpdateParams = onUpdateParams;
_local2.onCompleteParams = onCompleteParams;
_local2.onOverwriteParams = onOverwriteParams;
_local2.onStartScope = onStartScope;
_local2.onUpdateScope = onUpdateScope;
_local2.onCompleteScope = onCompleteScope;
_local2.onOverwriteScope = onOverwriteScope;
_local2.onErrorScope = onErrorScope;
};
_local2.rounded = rounded;
_local2.isPaused = isPaused;
_local2.timePaused = timePaused;
_local2.isCaller = isCaller;
_local2.count = count;
_local2.timesCalled = timesCalled;
_local2.waitFrames = waitFrames;
_local2.hasStarted = hasStarted;
return (_local2);
}
public function toString():String{
var _local3:String;
var _local1 = "\n[TweenListObj ";
_local1 = (_local1 + ("scope:" + String(scope)));
_local1 = (_local1 + ", properties:");
var _local2:Boolean;
for (_local3 in properties) {
if (!_local2){
_local1 = (_local1 + ",");
};
_local1 = (_local1 + ("[name:" + properties[_local3].name));
_local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart));
_local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete));
_local1 = (_local1 + "]");
_local2 = false;
};
_local1 = (_local1 + (", timeStart:" + String(timeStart)));
_local1 = (_local1 + (", timeComplete:" + String(timeComplete)));
_local1 = (_local1 + (", useFrames:" + String(useFrames)));
_local1 = (_local1 + (", transition:" + String(transition)));
_local1 = (_local1 + (", transitionParams:" + String(transitionParams)));
if (skipUpdates){
_local1 = (_local1 + (", skipUpdates:" + String(skipUpdates)));
};
if (updatesSkipped){
_local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped)));
};
if (Boolean(onStart)){
_local1 = (_local1 + (", onStart:" + String(onStart)));
};
if (Boolean(onUpdate)){
_local1 = (_local1 + (", onUpdate:" + String(onUpdate)));
};
if (Boolean(onComplete)){
_local1 = (_local1 + (", onComplete:" + String(onComplete)));
};
if (Boolean(onOverwrite)){
_local1 = (_local1 + (", onOverwrite:" + String(onOverwrite)));
};
if (Boolean(onError)){
_local1 = (_local1 + (", onError:" + String(onError)));
};
if (onStartParams){
_local1 = (_local1 + (", onStartParams:" + String(onStartParams)));
};
if (onUpdateParams){
_local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams)));
};
if (onCompleteParams){
_local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams)));
};
if (onOverwriteParams){
_local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams)));
};
if (onStartScope){
_local1 = (_local1 + (", onStartScope:" + String(onStartScope)));
};
if (onUpdateScope){
_local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope)));
};
if (onCompleteScope){
_local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope)));
};
if (onOverwriteScope){
_local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope)));
};
if (onErrorScope){
_local1 = (_local1 + (", onErrorScope:" + String(onErrorScope)));
};
if (rounded){
_local1 = (_local1 + (", rounded:" + String(rounded)));
};
if (isPaused){
_local1 = (_local1 + (", isPaused:" + String(isPaused)));
};
if (timePaused){
_local1 = (_local1 + (", timePaused:" + String(timePaused)));
};
if (isCaller){
_local1 = (_local1 + (", isCaller:" + String(isCaller)));
};
if (count){
_local1 = (_local1 + (", count:" + String(count)));
};
if (timesCalled){
_local1 = (_local1 + (", timesCalled:" + String(timesCalled)));
};
if (waitFrames){
_local1 = (_local1 + (", waitFrames:" + String(waitFrames)));
};
if (hasStarted){
_local1 = (_local1 + (", hasStarted:" + String(hasStarted)));
};
_local1 = (_local1 + "]\n");
return (_local1);
}
public static function makePropertiesChain(_arg1:Object):Object{
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local2:Object = _arg1.base;
if (_local2){
_local3 = {};
if ((_local2 is Array)){
_local4 = [];
_local8 = 0;
while (_local8 < _local2.length) {
_local4.push(_local2[_local8]);
_local8++;
};
} else {
_local4 = [_local2];
};
_local4.push(_arg1);
_local6 = _local4.length;
_local7 = 0;
while (_local7 < _local6) {
if (_local4[_local7]["base"]){
_local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]);
} else {
_local5 = _local4[_local7];
};
_local3 = AuxFunctions.concatObjects(_local3, _local5);
_local7++;
};
if (_local3["base"]){
delete _local3["base"];
};
return (_local3);
//unresolved jump
};
return (_arg1);
}
}
}//package caurina.transitions
Section 10
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class AdLoader extends Sprite {
private var cpmstarLoader:Loader;
private var contentspotid:String;
public function AdLoader(_arg1:String){
this.contentspotid = _arg1;
addEventListener(Event.ADDED, addedHandler);
}
private function dispatchHandler(_arg1:Event):void{
dispatchEvent(_arg1);
}
private function addedHandler(_arg1:Event):void{
removeEventListener(Event.ADDED, addedHandler);
Security.allowDomain("server.cpmstar.com");
var _local2 = "http://server.cpmstar.com/adviewas3.swf";
var _local3:DisplayObjectContainer = parent;
cpmstarLoader = new Loader();
cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler);
cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler);
cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid)));
addChild(cpmstarLoader);
}
}
}//package CPMStar
Section 11
//Strong (fl.transitions.easing.Strong)
package fl.transitions.easing {
public class Strong {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
}
}//package fl.transitions.easing
Section 12
//Tween (fl.transitions.Tween)
package fl.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tween extends EventDispatcher {
private var _position:Number;// = NAN
public var prevTime:Number;// = NAN
public var prevPos:Number;// = NAN
public var isPlaying:Boolean;// = false
private var _fps:Number;// = NAN
private var _time:Number;// = NAN
public var begin:Number;// = NAN
private var _finish:Number;// = NAN
public var change:Number;// = NAN
public var looping:Boolean;// = false
private var _intervalID:uint;// = 0
public var func:Function;
private var _timer:Timer;// = null
private var _startTime:Number;// = NAN
public var prop:String;// = ""
private var _duration:Number;// = NAN
public var obj:Object;// = null
public var useSeconds:Boolean;// = false
protected static var _mc:MovieClip = new MovieClip();
public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){
this.func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
};
super();
if (!arguments.length){
return;
};
this.obj = _arg1;
this.prop = _arg2;
this.begin = _arg4;
this.position = _arg4;
this.duration = _arg6;
this.useSeconds = _arg7;
if ((_arg3 is Function)){
this.func = _arg3;
};
this.finish = _arg5;
this._timer = new Timer(100);
this.start();
}
public function continueTo(_arg1:Number, _arg2:Number):void{
this.begin = this.position;
this.finish = _arg1;
if (!isNaN(_arg2)){
this.duration = _arg2;
};
this.start();
}
protected function startEnterFrame():void{
var _local1:Number;
if (isNaN(this._fps)){
_mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true);
} else {
_local1 = (1000 / this._fps);
this._timer.delay = _local1;
this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true);
this._timer.start();
};
this.isPlaying = true;
}
public function stop():void{
this.stopEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position));
}
private function fixTime():void{
if (this.useSeconds){
this._startTime = (getTimer() - (this._time * 1000));
};
}
public function set FPS(_arg1:Number):void{
var _local2:Boolean = this.isPlaying;
this.stopEnterFrame();
this._fps = _arg1;
if (_local2){
this.startEnterFrame();
};
}
public function get finish():Number{
return ((this.begin + this.change));
}
public function get duration():Number{
return (this._duration);
}
protected function stopEnterFrame():void{
if (isNaN(this._fps)){
_mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame);
} else {
this._timer.stop();
};
this.isPlaying = false;
}
public function set time(_arg1:Number):void{
this.prevTime = this._time;
if (_arg1 > this.duration){
if (this.looping){
this.rewind((_arg1 - this._duration));
this.update();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position));
} else {
if (this.useSeconds){
this._time = this._duration;
this.update();
};
this.stop();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position));
};
} else {
if (_arg1 < 0){
this.rewind();
this.update();
} else {
this._time = _arg1;
this.update();
};
};
}
public function getPosition(_arg1:Number=NaN):Number{
if (isNaN(_arg1)){
_arg1 = this._time;
};
return (this.func(_arg1, this.begin, this.change, this._duration));
}
public function set finish(_arg1:Number):void{
this.change = (_arg1 - this.begin);
}
public function set duration(_arg1:Number):void{
this._duration = ((_arg1)<=0) ? Infinity : _arg1;
}
public function get position():Number{
return (this.getPosition(this._time));
}
public function setPosition(_arg1:Number):void{
this.prevPos = this._position;
if (this.prop.length){
this.obj[this.prop] = (this._position = _arg1);
};
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position));
}
public function resume():void{
this.fixTime();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position));
}
public function fforward():void{
this.time = this._duration;
this.fixTime();
}
protected function onEnterFrame(_arg1:Event):void{
this.nextFrame();
}
public function yoyo():void{
this.continueTo(this.begin, this.time);
}
public function nextFrame():void{
if (this.useSeconds){
this.time = ((getTimer() - this._startTime) / 1000);
} else {
this.time = (this._time + 1);
};
}
protected function timerHandler(_arg1:TimerEvent):void{
this.nextFrame();
_arg1.updateAfterEvent();
}
public function get FPS():Number{
return (this._fps);
}
public function rewind(_arg1:Number=0):void{
this._time = _arg1;
this.fixTime();
this.update();
}
public function set position(_arg1:Number):void{
this.setPosition(_arg1);
}
public function get time():Number{
return (this._time);
}
private function update():void{
this.setPosition(this.getPosition(this._time));
}
public function start():void{
this.rewind();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position));
}
public function prevFrame():void{
if (!this.useSeconds){
this.time = (this._time - 1);
};
}
}
}//package fl.transitions
Section 13
//TweenEvent (fl.transitions.TweenEvent)
package fl.transitions {
import flash.events.*;
public class TweenEvent extends Event {
public var position:Number;// = NAN
public var time:Number;// = NAN
public static const MOTION_START:String = "motionStart";
public static const MOTION_STOP:String = "motionStop";
public static const MOTION_LOOP:String = "motionLoop";
public static const MOTION_CHANGE:String = "motionChange";
public static const MOTION_FINISH:String = "motionFinish";
public static const MOTION_RESUME:String = "motionResume";
public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){
super(_arg1, _arg4, _arg5);
this.time = _arg2;
this.position = _arg3;
}
override public function clone():Event{
return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable));
}
}
}//package fl.transitions
Section 14
//MochiDigits (mochi.MochiDigits)
package mochi {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{
Encoder = 0;
setValue(_arg1, _arg2);
}
public function reencode():void{
var _local1:uint = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (_local1 ^ Encoder));
Encoder = _local1;
}
public function set value(_arg1:Number):void{
setValue(_arg1);
}
public function toString():String{
var _local1:String = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
_local1 = (_local1 + Sibling.toString());
};
return (_local1);
}
public function setValue(_arg1:Number=0, _arg2:uint=0):void{
var _local3:String = _arg1.toString();
var _temp1 = _arg2;
_arg2 = (_arg2 + 1);
Fragment = (_local3.charCodeAt(_temp1) ^ Encoder);
if (_arg2 < _local3.length){
Sibling = new MochiDigits(_arg1, _arg2);
} else {
Sibling = null;
};
reencode();
}
public function get value():Number{
return (Number(this.toString()));
}
public function addValue(_arg1:Number):void{
value = (value + _arg1);
}
}
}//package mochi
Section 15
//MochiScores (mochi.MochiScores)
package mochi {
import flash.display.*;
import flash.text.*;
public class MochiScores {
private static var boardID:String;
public static var onErrorHandler:Object;
public static var onCloseHandler:Object;
public static function showLeaderboard(_arg1:Object=null):void{
var n:Number;
var options = _arg1;
if (options != null){
if (options.clip != null){
if ((options.clip is Sprite)){
MochiServices.setContainer(options.clip);
};
delete options.clip;
} else {
MochiServices.setContainer();
};
MochiServices.stayOnTop();
if (options.name != null){
if ((options.name is TextField)){
if (options.name.text.length > 0){
options.name = options.name.text;
};
};
};
if (options.score != null){
if ((options.score is TextField)){
if (options.score.text.length > 0){
options.score = options.score.text;
};
} else {
if ((options.score is MochiDigits)){
options.score = options.score.value;
};
};
n = Number(options.score);
if (isNaN(n)){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(n) != n){
trace((("WARNING: Submitted score '" + options.score) + "' will be truncated"));
};
options.score = n;
};
};
};
if (options.onDisplay != null){
options.onDisplay();
} else {
if (MochiServices.clip != null){
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
};
} else {
options = {};
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
if (options.onClose != null){
onCloseHandler = options.onClose;
} else {
onCloseHandler = function ():void{
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.play();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onClose.");
};
};
};
if (options.onError != null){
onErrorHandler = options.onError;
} else {
onErrorHandler = null;
};
if (options.boardID == null){
if (MochiScores.boardID != null){
options.boardID = MochiScores.boardID;
};
};
MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose);
}
public static function closeLeaderboard():void{
MochiServices.send("scores_closeLeaderboard");
}
public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2);
}
public static function requestList(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_requestList", null, _arg1, _arg2);
}
public static function scoresArrayToObjects(_arg1:Object):Object{
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:Object;
var _local7:String;
var _local8:String;
var _local2:Object = {};
for (_local7 in _arg1) {
if (typeof(_arg1[_local7]) == "object"){
if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){
_local2[_local7] = [];
_local5 = _arg1[_local7];
_local4 = 0;
while (_local4 < _local5.rows.length) {
_local6 = {};
_local3 = 0;
while (_local3 < _local5.cols.length) {
_local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3];
_local3++;
};
_local2[_local7].push(_local6);
_local4++;
};
} else {
_local2[_local7] = {};
for (_local8 in _arg1[_local7]) {
_local2[_local7][_local8] = _arg1[_local7][_local8];
};
};
} else {
_local2[_local7] = _arg1[_local7];
};
};
return (_local2);
}
public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{
_arg1 = Number(_arg1);
if (isNaN(_arg1)){
trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(_arg1) != _arg1){
trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated"));
};
_arg1 = Number(_arg1);
};
};
MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4);
}
public static function onClose(_arg1:Object=null):void{
if (_arg1 != null){
if (_arg1.error != null){
if (_arg1.error == true){
if (onErrorHandler != null){
if (_arg1.errorCode == null){
_arg1.errorCode = "IOError";
};
onErrorHandler(_arg1.errorCode);
MochiServices.doClose();
return;
};
};
};
};
onCloseHandler();
MochiServices.doClose();
}
public static function setBoardID(_arg1:String):void{
MochiScores.boardID = _arg1;
MochiServices.send("scores_setBoardID", {boardID:_arg1});
}
}
}//package mochi
Section 16
//MochiServices (mochi.MochiServices)
package mochi {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
import flash.net.*;
import flash.system.*;
public class MochiServices {
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _swfVersion:String;
public static var netupAttempted:Boolean = false;
private static var _sendChannel:LocalConnection;
private static var _clip:MovieClip;
private static var _loader:Loader;
private static var _id:String;
private static var _listenChannel:LocalConnection;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _startTime:Number;
private static var _connecting:Boolean = false;
public static var onError:Object;
private static var _listenChannelName:String = "__ms_";
private static var _servicesURL:String = "http://www.mochiads.com/static/lib/services/services.swf";
public static var netup:Boolean = true;
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{
if (_connected){
_sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
onError("NotConnected");
handleError(_arg2, _arg3, _arg4);
flush(true);
return;
};
_clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
};
if (_clip != null){
if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){
_clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4};
_clip._nextcallbackID++;
};
};
}
public static function get connected():Boolean{
return (_connected);
}
private static function flush(_arg1:Boolean):void{
var _local2:Object;
var _local3:Object;
if (_clip != null){
if (_clip._queue != null){
while (_clip._queue.length > 0) {
_local2 = _clip._queue.shift();
_local3 = null;
if (_local2 != null){
if (_local2.callbackID != null){
_local3 = _clip._callbacks[_local2.callbackID];
};
delete _clip._callbacks[_local2.callbackID];
if (((_arg1) && (!((_local3 == null))))){
handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod);
};
};
};
};
};
}
private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{
var _local4:int;
var _local14:Loader;
var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23];
var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3];
var _local6:Array = [0, 64, 0, 0, 0];
var _local7:MovieClip = new MovieClip();
var _local8:LocalConnection = new LocalConnection();
var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().getTime()));
_local8 = new LocalConnection();
_local7.lc = _local8;
_local7.click = _arg2;
_local8.client = _local7;
_local8.connect(_local9);
var _local10:ByteArray = new ByteArray();
var _local11:ByteArray = new ByteArray();
_local11.endian = Endian.LITTLE_ENDIAN;
_local11.writeShort(1);
_local11.writeUTFBytes(((_arg1 + " ") + _local9));
_local11.writeByte(0);
var _local12:uint = ((_local3.length + _local11.length) + 4);
var _local13:uint = (_local12 + 35);
_local10.endian = Endian.LITTLE_ENDIAN;
_local10.writeUTFBytes("FWS");
_local10.writeByte(8);
_local10.writeUnsignedInt(_local13);
for each (_local4 in _local5) {
_local10.writeByte(_local4);
};
_local10.writeUnsignedInt(_local12);
_local10.writeByte(136);
_local10.writeShort(_local11.length);
_local10.writeBytes(_local11);
for each (_local4 in _local3) {
_local10.writeByte(_local4);
};
for each (_local4 in _local6) {
_local10.writeByte(_local4);
};
_local14 = new Loader();
_local14.loadBytes(_local10);
_local7.addChild(_local14);
return (_local7);
}
private static function init(_arg1:String, _arg2:Object):void{
_id = _arg1;
if (_arg2 != null){
_container = _arg2;
loadCommunicator(_arg1, _container);
};
}
public static function get childClip():Object{
return (_clip);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{
var avm1Click:DisplayObject;
var x:String;
var req:URLRequest;
var loader:Loader;
var setURL:Function;
var err:Function;
var complete:Function;
var url = _arg1;
var burl = _arg2;
var btn = _arg3;
var onClick = _arg4;
var vars:Object = new Object();
vars["mav"] = getVersion();
vars["swfv"] = "9";
vars["swfurl"] = btn.loaderInfo.loaderURL;
vars["fv"] = Capabilities.version;
vars["os"] = Capabilities.os;
vars["lang"] = Capabilities.language;
vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY);
var s = "?";
var i:Number = 0;
for (x in vars) {
if (i != 0){
s = (s + "&");
};
i = (i + 1);
s = (((s + x) + "=") + escape(vars[x]));
};
req = new URLRequest("http://x.mochiads.com/linkping.swf");
loader = new Loader();
setURL = function (_arg1:String):void{
if (avm1Click){
btn.removeChild(avm1Click);
};
avm1Click = clickMovie(_arg1, onClick);
var _local2:Rectangle = btn.getBounds(btn);
btn.addChild(avm1Click);
avm1Click.x = _local2.x;
avm1Click.y = _local2.y;
avm1Click.scaleX = (0.01 * _local2.width);
avm1Click.scaleY = (0.01 * _local2.height);
};
err = function (_arg1:Object):void{
netup = false;
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
setURL(burl);
};
complete = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
if (netup){
setURL((url + s));
} else {
setURL(burl);
};
if (!((netupAttempted) || (_connected))){
netupAttempted = true;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.load(req);
};
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
try {
_listenChannel.close();
} catch(error:Error) {
};
};
if (_timer != null){
try {
_timer.stop();
} catch(error:Error) {
};
};
}
public static function allowDomains(_arg1:String):String{
var _local2:String;
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
if (_arg1.indexOf("http://") != -1){
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
};
return (_local2);
}
public static function getVersion():String{
return ("1.43");
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
if (_clip.parent != null){
Sprite(_clip.parent).removeChild(_clip);
};
}
private static function onStatus(_arg1:StatusEvent):void{
switch (_arg1.level){
case "error":
_connected = false;
_listenChannel.connect(_listenChannelName);
break;
};
}
public static function get id():String{
return (_id);
}
private static function urlOptions(_arg1:Object):Object{
var _local4:Array;
var _local5:Number;
var _local6:Array;
var _local2:Object = {};
var _local3:String = _arg1.loaderInfo.parameters.mochiad_options;
if (_local3){
_local4 = _local3.split("&");
_local5 = 0;
while (_local5 < _local4.length) {
_local6 = _local4[_local5].split("=");
_local2[unescape(_local6[0])] = unescape(_local6[1]);
_local5++;
};
};
return (_local2);
}
public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{
if (_arg1 != null){
if ((_arg1 is Sprite)){
_container = _arg1;
};
};
if (_arg2){
if ((_container is Sprite)){
Sprite(_container).addChild(_clip);
};
};
}
private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{
var args = _arg1;
var callbackObject = _arg2;
var callbackMethod = _arg3;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
if (((!((args.options == null))) && (!((args.options.onError == null))))){
args.options.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
try {
var _local5 = callbackObject;
_local5[callbackMethod](args);
} catch(error:Error) {
};
} else {
if (callbackMethod != null){
try {
callbackMethod.apply(args);
} catch(error:Error) {
};
};
};
};
}
private static function initComChannels():void{
if (!_connected){
_sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL});
_listenChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_clip.onReceive = function (_arg1:Object):void{
var methodName:String;
var pkg = _arg1;
var cb:String = pkg.callbackID;
var cblst:Object = this.client._callbacks[cb];
if (!cblst){
return;
};
var method:* = cblst.callbackMethod;
methodName = "";
var obj:Object = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
} else {
trace((("Error: Method " + method) + " does not exist."));
};
};
if (method != undefined){
try {
method.apply(obj, pkg.args);
} catch(error:Error) {
trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString()));
};
} else {
if (obj != null){
try {
obj(pkg.args);
} catch(error:Error) {
trace(("Error invoking method on object: " + error.toString()));
};
};
};
delete this.client._callbacks[cb];
};
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
trace("connected!");
_connecting = false;
_connected = true;
while (_clip._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift());
};
};
}
private static function listen():void{
_listenChannel = new LocalConnection();
_listenChannel.client = _clip;
_clip.handshake = function (_arg1:Object):void{
MochiServices.comChannelName = _arg1.newChannel;
};
_listenChannel.allowDomain("*", "localhost");
_listenChannel.allowInsecureDomain("*", "localhost");
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
public static function set comChannelName(_arg1:String):void{
if (_arg1 != null){
if (_arg1.length > 3){
_sendChannelName = (_arg1 + "_fromgame");
initComChannels();
};
};
}
private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{
var id = _arg1;
var clip = _arg2;
var clipname:String = ("_mochiservices_com_" + id);
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
if (urlOptions(clip).servicesURL != undefined){
_servicesURL = urlOptions(clip).servicesURL;
};
MochiServices.allowDomains(_servicesURL);
_clip = createEmptyMovieClip(clip, clipname, 10336, false);
_loader = new Loader();
_timer = new Timer(1000, 0);
_startTime = getTimer();
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
var f:Function = function (_arg1:Object):void{
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_listenChannelName = (_listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor((Math.random() * 99999))));
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
var req:URLRequest = new URLRequest(_servicesURL);
var vars:URLVariables = new URLVariables();
vars.listenLC = _listenChannelName;
vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options;
req.data = vars;
_loader.load(req);
_clip.addChild(_loader);
_clip._mochiservices_com = _loader;
_sendChannel = new LocalConnection();
_clip._queue = [];
_clip._nextcallbackID = 0;
_clip._callbacks = {};
listen();
return (_clip);
}
public static function get clip():Object{
return (_container);
}
public static function bringToTop(_arg1:Event):void{
var e = _arg1;
if (MochiServices.clip != null){
if (MochiServices.childClip != null){
try {
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
} catch(errorObject:Error) {
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
};
}
public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{
var id = _arg1;
var clip = _arg2;
var onError = _arg3;
if ((clip is DisplayObject)){
if (((!(_connected)) && ((_clip == null)))){
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
};
} else {
trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (_arg1:String):void{
trace(_arg1);
};
};
};
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{
var parent = _arg1;
var name = _arg2;
var depth = _arg3;
var doAdd = _arg4;
var mc:MovieClip = new MovieClip();
if (doAdd){
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
};
try {
parent[name] = mc;
} catch(e:Error) {
throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
mc["_name"] = name;
return (mc);
}
public static function connectWait(_arg1:TimerEvent):void{
if ((getTimer() - _startTime) > 10000){
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_timer.stop();
};
}
}
}//package mochi
Section 17
//Action (org.flintparticles.common.actions.Action)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public interface Action {
function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void;
function addedToEmitter(_arg1:Emitter):void;
function removedFromEmitter(_arg1:Emitter):void;
function getDefaultPriority():Number;
}
}//package org.flintparticles.common.actions
Section 18
//ActionBase (org.flintparticles.common.actions.ActionBase)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class ActionBase implements Action {
public function addedToEmitter(_arg1:Emitter):void{
}
public function removedFromEmitter(_arg1:Emitter):void{
}
public function getDefaultPriority():Number{
return (0);
}
public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
}
}
}//package org.flintparticles.common.actions
Section 19
//Age (org.flintparticles.common.actions.Age)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.energyEasing.*;
public class Age extends ActionBase {
private var _easing:Function;
public function Age(_arg1:Function=null){
if (_arg1 == null){
_easing = Linear.easeNone;
} else {
_easing = _arg1;
};
}
public function set easing(_arg1:Function):void{
_easing = _arg1;
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
_arg2.age = (_arg2.age + _arg3);
if (_arg2.age >= _arg2.lifetime){
_arg2.energy = 0;
_arg2.isDead = true;
} else {
_arg2.energy = _easing(_arg2.age, _arg2.lifetime);
};
}
public function get easing():Function{
return (_easing);
}
}
}//package org.flintparticles.common.actions
Section 20
//ColorChange (org.flintparticles.common.actions.ColorChange)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.utils.*;
public class ColorChange extends ActionBase {
private var _startColor:uint;
private var _endColor:uint;
public function ColorChange(_arg1:uint, _arg2:uint){
_startColor = _arg1;
_endColor = _arg2;
}
public function get startColor():uint{
return (_startColor);
}
public function set startColor(_arg1:uint):void{
_startColor = _arg1;
}
public function get endColor():uint{
return (_endColor);
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
_arg2.color = interpolateColors(_startColor, _endColor, _arg2.energy);
}
public function set endColor(_arg1:uint):void{
_endColor = _arg1;
}
}
}//package org.flintparticles.common.actions
Section 21
//Fade (org.flintparticles.common.actions.Fade)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class Fade extends ActionBase {
private var _endAlpha:Number;
private var _diffAlpha:Number;
public function Fade(_arg1:Number=1, _arg2:Number=0){
_diffAlpha = (_arg1 - _arg2);
_endAlpha = _arg2;
}
public function get endAlpha():Number{
return (_endAlpha);
}
public function set endAlpha(_arg1:Number):void{
_diffAlpha = ((_endAlpha + _diffAlpha) - _arg1);
_endAlpha = _arg1;
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
var _local4:Number = (_endAlpha + (_diffAlpha * _arg2.energy));
_arg2.color = ((_arg2.color & 0xFFFFFF) | (Math.round((_local4 * 0xFF)) << 24));
}
override public function getDefaultPriority():Number{
return (-5);
}
public function set startAlpha(_arg1:Number):void{
_diffAlpha = (_arg1 - _endAlpha);
}
public function get startAlpha():Number{
return ((_endAlpha + _diffAlpha));
}
}
}//package org.flintparticles.common.actions
Section 22
//ScaleImage (org.flintparticles.common.actions.ScaleImage)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class ScaleImage extends ActionBase {
private var _diffScale:Number;
private var _endScale:Number;
public function ScaleImage(_arg1:Number=1, _arg2:Number=1){
_diffScale = (_arg1 - _arg2);
_endScale = _arg2;
}
public function set startScale(_arg1:Number):void{
_diffScale = (_arg1 - _endScale);
}
public function set endScale(_arg1:Number):void{
_diffScale = ((_endScale + _diffScale) - _arg1);
_endScale = _arg1;
}
public function get startScale():Number{
return ((_endScale + _diffScale));
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
_arg2.scale = (_endScale + (_diffScale * _arg2.energy));
}
public function get endScale():Number{
return (_endScale);
}
}
}//package org.flintparticles.common.actions
Section 23
//Activity (org.flintparticles.common.activities.Activity)
package org.flintparticles.common.activities {
import org.flintparticles.common.emitters.*;
public interface Activity {
function initialize(_arg1:Emitter):void;
function removedFromEmitter(_arg1:Emitter):void;
function update(_arg1:Emitter, _arg2:Number):void;
function addedToEmitter(_arg1:Emitter):void;
function getDefaultPriority():Number;
}
}//package org.flintparticles.common.activities
Section 24
//Blast (org.flintparticles.common.counters.Blast)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public class Blast implements Counter {
private var _startCount:uint;
public function Blast(_arg1:uint){
_startCount = _arg1;
}
public function stop():void{
}
public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{
return (0);
}
public function startEmitter(_arg1:Emitter):uint{
return (_startCount);
}
public function resume():void{
}
public function set startCount(_arg1:Number):void{
_startCount = _arg1;
}
public function get startCount():Number{
return (_startCount);
}
}
}//package org.flintparticles.common.counters
Section 25
//Counter (org.flintparticles.common.counters.Counter)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public interface Counter {
function stop():void;
function startEmitter(_arg1:Emitter):uint;
function updateEmitter(_arg1:Emitter, _arg2:Number):uint;
function resume():void;
}
}//package org.flintparticles.common.counters
Section 26
//ZeroCounter (org.flintparticles.common.counters.ZeroCounter)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public class ZeroCounter implements Counter {
public function stop():void{
}
public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{
return (0);
}
public function startEmitter(_arg1:Emitter):uint{
return (0);
}
public function resume():void{
}
}
}//package org.flintparticles.common.counters
Section 27
//Dot (org.flintparticles.common.displayObjects.Dot)
package org.flintparticles.common.displayObjects {
import flash.display.*;
public class Dot extends Shape {
public function Dot(_arg1:Number, _arg2:uint=0xFFFFFF, _arg3:String="normal"){
graphics.beginFill(_arg2);
graphics.drawCircle(0, 0, _arg1);
graphics.endFill();
blendMode = _arg3;
}
}
}//package org.flintparticles.common.displayObjects
Section 28
//RadialDot (org.flintparticles.common.displayObjects.RadialDot)
package org.flintparticles.common.displayObjects {
import flash.display.*;
import flash.geom.*;
public class RadialDot extends Shape {
public function RadialDot(_arg1:Number, _arg2:uint=0xFFFFFF, _arg3:String="normal"){
var _local4:Matrix = new Matrix();
_local4.createGradientBox((_arg1 * 2), (_arg1 * 2), 0, -(_arg1), -(_arg1));
graphics.beginGradientFill(GradientType.RADIAL, [_arg2, _arg2], [1, 0], [0, 0xFF], _local4);
graphics.drawCircle(0, 0, _arg1);
graphics.endFill();
blendMode = _arg3;
}
}
}//package org.flintparticles.common.displayObjects
Section 29
//Emitter (org.flintparticles.common.emitters.Emitter)
package org.flintparticles.common.emitters {
import flash.events.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.activities.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.common.events.*;
import org.flintparticles.common.utils.*;
public class Emitter extends EventDispatcher {
protected var _running:Boolean;// = false
protected var _activities:PriorityArray;
protected var _particles:Array;
protected var _initializers:PriorityArray;
protected var _counter:Counter;
protected var _started:Boolean;// = false
protected var _actions:PriorityArray;
protected var _useInternalTick:Boolean;// = true
protected var _particleFactory:ParticleFactory;
protected var _fixedFrameTime:Number;// = 0
protected var _maximumFrameTime:Number;// = 0.1
public function Emitter(){
_particles = new Array();
_actions = new PriorityArray();
_initializers = new PriorityArray();
_activities = new PriorityArray();
_counter = new ZeroCounter();
}
public function addInitializer(_arg1:Initializer, _arg2:Number=NaN):void{
if (isNaN(_arg2)){
_arg2 = _arg1.getDefaultPriority();
};
_initializers.add(_arg1, _arg2);
_arg1.addedToEmitter(this);
}
public function stop():void{
if (_useInternalTick){
FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener);
};
_started = false;
killAllParticles();
}
public function killAllParticles():void{
var _local1:int = _particles.length;
var _local2:int;
while (_local2 < _local1) {
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, _particles[_local2]));
_particleFactory.disposeParticle(_particles[_local2]);
_local2++;
};
_particles.length = 0;
}
public function set fixedFrameTime(_arg1:Number):void{
_fixedFrameTime = _arg1;
}
public function get maximumFrameTime():Number{
return (_maximumFrameTime);
}
public function get useInternalTick():Boolean{
return (_useInternalTick);
}
protected function createParticle():Particle{
var _local1:Particle = _particleFactory.createParticle();
var _local2:int = _initializers.length;
initParticle(_local1);
var _local3:int;
while (_local3 < _local2) {
_initializers[_local3].initialize(this, _local1);
_local3++;
};
_particles.push(_local1);
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_CREATED, _local1));
return (_local1);
}
public function get particleFactory():ParticleFactory{
return (_particleFactory);
}
private function updateEventListener(_arg1:UpdateEvent):void{
if (_fixedFrameTime){
update(_fixedFrameTime);
} else {
update(_arg1.time);
};
}
public function get particles():Array{
return (_particles);
}
protected function sortParticles():void{
}
public function removeActivity(_arg1:Activity):void{
if (_activities.remove(_arg1)){
_arg1.removedFromEmitter(this);
};
}
public function set maximumFrameTime(_arg1:Number):void{
_maximumFrameTime = _arg1;
}
protected function initParticle(_arg1:Particle):void{
}
public function addAction(_arg1:Action, _arg2:Number=NaN):void{
if (isNaN(_arg2)){
_arg2 = _arg1.getDefaultPriority();
};
_actions.add(_arg1, _arg2);
_arg1.addedToEmitter(this);
}
public function hasInitializerOfType(_arg1:Class):Boolean{
var _local2:uint = _initializers.length;
var _local3:uint;
while (_local3 < _local2) {
if ((_initializers[_local3] is _arg1)){
return (true);
};
_local3++;
};
return (false);
}
public function resume():void{
_running = true;
}
public function removeInitializer(_arg1:Initializer):void{
if (_initializers.remove(_arg1)){
_arg1.removedFromEmitter(this);
};
}
public function get running():Boolean{
return (_running);
}
public function hasActionOfType(_arg1:Class):Boolean{
var _local2:uint = _actions.length;
var _local3:uint;
while (_local3 < _local2) {
if ((_actions[_local3] is _arg1)){
return (true);
};
_local3++;
};
return (false);
}
public function get fixedFrameTime():Number{
return (_fixedFrameTime);
}
public function set particleFactory(_arg1:ParticleFactory):void{
_particleFactory = _arg1;
}
public function hasActivity(_arg1:Activity):Boolean{
return (_activities.contains(_arg1));
}
public function addActivity(_arg1:Activity, _arg2:Number=NaN):void{
if (isNaN(_arg2)){
_arg2 = _arg1.getDefaultPriority();
};
_activities.add(_arg1, _arg2);
_arg1.addedToEmitter(this);
}
public function update(_arg1:Number):void{
var _local2:int;
var _local3:Particle;
var _local5:Action;
var _local6:int;
var _local7:int;
if (!_running){
return;
};
if (_arg1 > _maximumFrameTime){
_arg1 = _maximumFrameTime;
};
var _local4:int = _counter.updateEmitter(this, _arg1);
_local2 = 0;
while (_local2 < _local4) {
createParticle();
_local2++;
};
sortParticles();
_local4 = _activities.length;
_local2 = 0;
while (_local2 < _local4) {
_activities[_local2].update(this, _arg1);
_local2++;
};
if (_particles.length > 0){
_local4 = _actions.length;
_local6 = _particles.length;
_local7 = 0;
while (_local7 < _local4) {
_local5 = _actions[_local7];
_local2 = 0;
while (_local2 < _local6) {
_local3 = _particles[_local2];
_local5.update(this, _local3, _arg1);
_local2++;
};
_local7++;
};
_local2 = _local6;
while (_local2--) {
_local3 = _particles[_local2];
if (_local3.isDead){
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, _local3));
_particleFactory.disposeParticle(_local3);
_particles.splice(_local2, 1);
};
};
} else {
dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_EMPTY));
};
dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_UPDATED));
}
public function addExistingParticles(_arg1:Array, _arg2:Boolean=false):void{
var _local4:int;
var _local5:int;
var _local6:int;
var _local3:int = _arg1.length;
if (_arg2){
_local5 = _initializers.length;
_local6 = 0;
while (_local6 < _local5) {
_local4 = 0;
while (_local4 < _local3) {
_initializers[_local6].initialize(this, _arg1[_local4]);
_local4++;
};
_local6++;
};
};
_local4 = 0;
while (_local4 < _local3) {
_particles.push(_arg1[_local4]);
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_ADDED, _arg1[_local4]));
_local4++;
};
}
public function removeAction(_arg1:Action):void{
if (_actions.remove(_arg1)){
_arg1.removedFromEmitter(this);
};
}
public function hasActivityOfType(_arg1:Class):Boolean{
var _local2:uint = _activities.length;
var _local3:uint;
while (_local3 < _local2) {
if ((_activities[_local3] is _arg1)){
return (true);
};
_local3++;
};
return (false);
}
public function set useInternalTick(_arg1:Boolean):void{
if (_useInternalTick != _arg1){
_useInternalTick = _arg1;
if (_started){
if (_useInternalTick){
FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener, false, 0, true);
} else {
FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener);
};
};
};
}
public function hasInitializer(_arg1:Initializer):Boolean{
return (_initializers.contains(_arg1));
}
public function start():void{
if (_useInternalTick){
FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener, false, 0, true);
};
_started = true;
_running = true;
var _local1:int = _activities.length;
var _local2:int;
while (_local2 < _local1) {
_activities[_local2].initialize(this);
_local2++;
};
_local1 = _counter.startEmitter(this);
_local2 = 0;
while (_local2 < _local1) {
createParticle();
_local2++;
};
}
public function hasAction(_arg1:Action):Boolean{
return (_actions.contains(_arg1));
}
public function pause():void{
_running = false;
}
public function set counter(_arg1:Counter):void{
_counter = _arg1;
}
public function get counter():Counter{
return (_counter);
}
public function runAhead(_arg1:Number, _arg2:Number=10):void{
var _local3:Number = _maximumFrameTime;
var _local4:Number = (1 / _arg2);
_maximumFrameTime = _local4;
while (_arg1 > 0) {
_arg1 = (_arg1 - _local4);
update(_local4);
};
_maximumFrameTime = _local3;
}
}
}//package org.flintparticles.common.emitters
Section 30
//Linear (org.flintparticles.common.energyEasing.Linear)
package org.flintparticles.common.energyEasing {
public class Linear {
public static function easeOut(_arg1:Number, _arg2:Number):Number{
return ((1 - (_arg1 / _arg2)));
}
public static function easeIn(_arg1:Number, _arg2:Number):Number{
return ((1 - (_arg1 / _arg2)));
}
public static function easeInOut(_arg1:Number, _arg2:Number):Number{
return ((1 - (_arg1 / _arg2)));
}
public static function easeNone(_arg1:Number, _arg2:Number):Number{
return ((1 - (_arg1 / _arg2)));
}
}
}//package org.flintparticles.common.energyEasing
Section 31
//EmitterEvent (org.flintparticles.common.events.EmitterEvent)
package org.flintparticles.common.events {
import flash.events.*;
public class EmitterEvent extends Event {
public static var EMITTER_UPDATED:String = "emitterUpdated";
public static var EMITTER_EMPTY:String = "emitterEmpty";
public function EmitterEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
}
}//package org.flintparticles.common.events
Section 32
//ParticleEvent (org.flintparticles.common.events.ParticleEvent)
package org.flintparticles.common.events {
import flash.events.*;
import org.flintparticles.common.particles.*;
public class ParticleEvent extends Event {
public var particle:Particle;
public static var PARTICLE_ADDED:String = "particleAdded";
public static var PARTICLE_DEAD:String = "particleDead";
public static var PARTICLE_CREATED:String = "particleCreated";
public function ParticleEvent(_arg1:String, _arg2:Particle=null, _arg3:Boolean=false, _arg4:Boolean=false){
super(_arg1, _arg3, _arg4);
this.particle = _arg2;
}
}
}//package org.flintparticles.common.events
Section 33
//UpdateEvent (org.flintparticles.common.events.UpdateEvent)
package org.flintparticles.common.events {
import flash.events.*;
public class UpdateEvent extends Event {
public var time:Number;
public static var UPDATE:String = "update";
public function UpdateEvent(_arg1:String, _arg2:Number=NaN, _arg3:Boolean=false, _arg4:Boolean=false){
super(_arg1, _arg3, _arg4);
this.time = _arg2;
}
}
}//package org.flintparticles.common.events
Section 34
//ColorInit (org.flintparticles.common.initializers.ColorInit)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.utils.*;
public class ColorInit extends InitializerBase {
private var _max:uint;
private var _min:uint;
public function ColorInit(_arg1:uint, _arg2:uint){
_min = _arg1;
_max = _arg2;
}
public function set minColor(_arg1:uint):void{
_min = _arg1;
}
public function get color():uint{
return (((_min == _max)) ? _min : interpolateColors(_max, _min, 0.5));
}
public function set color(_arg1:uint):void{
_max = (_min = _arg1);
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
if (_max == _min){
_arg2.color = _min;
} else {
_arg2.color = interpolateColors(_min, _max, Math.random());
};
}
public function get minColor():uint{
return (_min);
}
public function set maxColor(_arg1:uint):void{
_max = _arg1;
}
public function get maxColor():uint{
return (_max);
}
}
}//package org.flintparticles.common.initializers
Section 35
//Initializer (org.flintparticles.common.initializers.Initializer)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public interface Initializer {
function initialize(_arg1:Emitter, _arg2:Particle):void;
function addedToEmitter(_arg1:Emitter):void;
function removedFromEmitter(_arg1:Emitter):void;
function getDefaultPriority():Number;
}
}//package org.flintparticles.common.initializers
Section 36
//InitializerBase (org.flintparticles.common.initializers.InitializerBase)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class InitializerBase implements Initializer {
public function initialize(_arg1:Emitter, _arg2:Particle):void{
}
public function addedToEmitter(_arg1:Emitter):void{
}
public function removedFromEmitter(_arg1:Emitter):void{
}
public function getDefaultPriority():Number{
return (0);
}
}
}//package org.flintparticles.common.initializers
Section 37
//Lifetime (org.flintparticles.common.initializers.Lifetime)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class Lifetime extends InitializerBase {
private var _max:Number;
private var _min:Number;
public function Lifetime(_arg1:Number, _arg2:Number=NaN){
_max = _arg2;
_min = _arg1;
}
public function get lifetime():Number{
return (((_min == _max)) ? _min : ((_max + _min) * 0.5));
}
public function get maxLifetime():Number{
return (_max);
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
if (isNaN(_max)){
_arg2.lifetime = _min;
} else {
_arg2.lifetime = (_min + (Math.random() * (_max - _min)));
};
}
public function set lifetime(_arg1:Number):void{
_max = (_min = _arg1);
}
public function set minLifetime(_arg1:Number):void{
_min = _arg1;
}
public function set maxLifetime(_arg1:Number):void{
_max = _arg1;
}
public function get minLifetime():Number{
return (_min);
}
}
}//package org.flintparticles.common.initializers
Section 38
//SharedImage (org.flintparticles.common.initializers.SharedImage)
package org.flintparticles.common.initializers {
import flash.display.*;
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class SharedImage extends InitializerBase {
private var _image:DisplayObject;
public function SharedImage(_arg1:DisplayObject){
_image = _arg1;
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
_arg2.image = _image;
}
public function set image(_arg1:DisplayObject):void{
_image = _arg1;
}
public function get image():DisplayObject{
return (_image);
}
}
}//package org.flintparticles.common.initializers
Section 39
//Particle (org.flintparticles.common.particles.Particle)
package org.flintparticles.common.particles {
import flash.utils.*;
import flash.geom.*;
public class Particle {
public var energy:Number;// = 1
public var lifetime:Number;// = 0
public var scale:Number;// = 1
public var image;// = null
public var color:uint;// = 4294967295
public var collisionRadius:Number;// = 1
private var _colorTransform:ColorTransform;// = null
private var _previousColor:uint;
public var isDead:Boolean;// = false
public var mass:Number;// = 1
private var _dictionary:Dictionary;// = null
public var age:Number;// = 0
public function get dictionary():Dictionary{
if (_dictionary == null){
_dictionary = new Dictionary();
};
return (_dictionary);
}
public function get colorTransform():ColorTransform{
if (((!(_colorTransform)) || (!((_previousColor == color))))){
_colorTransform = new ColorTransform((((color >>> 16) & 0xFF) / 0xFF), (((color >>> 8) & 0xFF) / 0xFF), ((color & 0xFF) / 0xFF), (((color >>> 24) & 0xFF) / 0xFF), 0, 0, 0, 0);
_previousColor = color;
};
return (_colorTransform);
}
public function get alpha():Number{
return ((((color & 4278190080) >>> 24) / 0xFF));
}
public function initialize():void{
color = 4294967295;
scale = 1;
mass = 1;
collisionRadius = 1;
lifetime = 0;
age = 0;
energy = 1;
isDead = false;
image = null;
_dictionary = null;
_colorTransform = null;
}
}
}//package org.flintparticles.common.particles
Section 40
//ParticleFactory (org.flintparticles.common.particles.ParticleFactory)
package org.flintparticles.common.particles {
public interface ParticleFactory {
function createParticle():Particle;
function disposeParticle(_arg1:Particle):void;
}
}//package org.flintparticles.common.particles
Section 41
//Renderer (org.flintparticles.common.renderers.Renderer)
package org.flintparticles.common.renderers {
import org.flintparticles.common.emitters.*;
public interface Renderer {
function removeEmitter(_arg1:Emitter):void;
function addEmitter(_arg1:Emitter):void;
}
}//package org.flintparticles.common.renderers
Section 42
//SpriteRendererBase (org.flintparticles.common.renderers.SpriteRendererBase)
package org.flintparticles.common.renderers {
import flash.events.*;
import flash.display.*;
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.events.*;
public class SpriteRendererBase extends Sprite implements Renderer {
protected var _emitters:Array;
public function SpriteRendererBase(){
_emitters = new Array();
mouseEnabled = false;
mouseChildren = false;
addEventListener(Event.ADDED_TO_STAGE, addedToStage, false, 0, true);
}
private function particleAdded(_arg1:ParticleEvent):void{
addParticle(_arg1.particle);
if (stage){
stage.invalidate();
};
}
private function addedToStage(_arg1:Event):void{
if (stage){
stage.invalidate();
};
}
public function get emitters():Array{
return (_emitters);
}
protected function addParticle(_arg1:Particle):void{
}
private function updateParticles(_arg1:Event):void{
var _local2:Array = new Array();
var _local3:int;
while (_local3 < _emitters.length) {
_local2 = _local2.concat(_emitters[_local3].particles);
_local3++;
};
renderParticles(_local2);
}
private function emitterUpdated(_arg1:EmitterEvent):void{
if (stage){
stage.invalidate();
};
}
public function removeEmitter(_arg1:Emitter):void{
var _local3:Particle;
var _local2:int;
while (_local2 < _emitters.length) {
if (_emitters[_local2] == _arg1){
_emitters.splice(_local2, 1);
_arg1.removeEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated);
_arg1.removeEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded);
_arg1.removeEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded);
_arg1.removeEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved);
for each (_local3 in _arg1.particles) {
removeParticle(_local3);
};
if (_emitters.length == 0){
removeEventListener(Event.RENDER, updateParticles);
renderParticles([]);
} else {
stage.invalidate();
};
return;
};
_local2++;
};
}
protected function renderParticles(_arg1:Array):void{
}
protected function removeParticle(_arg1:Particle):void{
}
private function particleRemoved(_arg1:ParticleEvent):void{
removeParticle(_arg1.particle);
if (stage){
stage.invalidate();
};
}
public function addEmitter(_arg1:Emitter):void{
var _local2:Particle;
_emitters.push(_arg1);
if (stage){
stage.invalidate();
};
_arg1.addEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated, false, 0, true);
_arg1.addEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded, false, 0, true);
_arg1.addEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded, false, 0, true);
_arg1.addEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved, false, 0, true);
for each (_local2 in _arg1.particles) {
addParticle(_local2);
};
if (_emitters.length == 1){
addEventListener(Event.RENDER, updateParticles, false, 0, true);
};
}
}
}//package org.flintparticles.common.renderers
Section 43
//FrameUpdater (org.flintparticles.common.utils.FrameUpdater)
package org.flintparticles.common.utils {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import org.flintparticles.common.events.*;
public class FrameUpdater extends EventDispatcher {
private var _shape:Shape;
private var _time:Number;
private static var _instance:FrameUpdater;
public function FrameUpdater(){
_shape = new Shape();
_shape.addEventListener(Event.ENTER_FRAME, frameUpdate, false, 0, true);
_time = getTimer();
}
private function frameUpdate(_arg1:Event):void{
var _local2:int = _time;
_time = getTimer();
var _local3:Number = ((_time - _local2) * 0.001);
dispatchEvent(new UpdateEvent(UpdateEvent.UPDATE, _local3));
}
public static function get instance():FrameUpdater{
if (_instance == null){
_instance = new (FrameUpdater);
};
return (_instance);
}
}
}//package org.flintparticles.common.utils
Section 44
//interpolateColors (org.flintparticles.common.utils.interpolateColors)
package org.flintparticles.common.utils {
public function interpolateColors(_arg1:uint, _arg2:uint, _arg3:Number):uint{
var _local4:Number = (1 - _arg3);
var _local5:uint = Math.round(((((_arg1 >>> 16) & 0xFF) * _arg3) + (((_arg2 >>> 16) & 0xFF) * _local4)));
var _local6:uint = Math.round(((((_arg1 >>> 8) & 0xFF) * _arg3) + (((_arg2 >>> 8) & 0xFF) * _local4)));
var _local7:uint = Math.round((((_arg1 & 0xFF) * _arg3) + ((_arg2 & 0xFF) * _local4)));
var _local8:uint = Math.round(((((_arg1 >>> 24) & 0xFF) * _arg3) + (((_arg2 >>> 24) & 0xFF) * _local4)));
return (((((_local8 << 24) | (_local5 << 16)) | (_local6 << 8)) | _local7));
}
}//package org.flintparticles.common.utils
Section 45
//Maths (org.flintparticles.common.utils.Maths)
package org.flintparticles.common.utils {
public class Maths {
private static const DEGTORAD:Number = 0.0174532925199433;
private static const RADTODEG:Number = 57.2957795130823;
public static function asRadians(_arg1:Number):Number{
return ((_arg1 * DEGTORAD));
}
public static function asDegrees(_arg1:Number):Number{
return ((_arg1 * RADTODEG));
}
}
}//package org.flintparticles.common.utils
Section 46
//PriorityArray (org.flintparticles.common.utils.PriorityArray)
package org.flintparticles.common.utils {
import flash.utils.*;
public class PriorityArray extends Proxy {
private var _values:Array;
public function PriorityArray(){
_values = new Array();
}
public function remove(_arg1):Boolean{
var _local2:uint = _values.length;
while (_local2--) {
if (_values[_local2].value == _arg1){
_values.splice(_local2, 1);
return (true);
};
};
return (false);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{
return ((_arg1 - 1).toString());
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{
var _local3:uint = uint(_arg1);
if ((((_local3 == _arg1)) && ((_local3 < _values.length)))){
_values[_local3].value = _arg2;
};
}
public function add(_arg1, _arg2:Number):uint{
var _local3:uint = _values.length;
var _local4:uint;
while (_local4 < _local3) {
if (_values[_local4].priority < _arg2){
break;
};
_local4++;
};
_values.splice(_local4, 0, new Pair(_arg2, _arg1));
return (_values.length);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
var _local2:int = int(_arg1);
if ((((((_local2 == _arg1)) && ((_local2 < _values.length)))) && (_values[_local2]))){
return (_values[_local2].value);
};
return (undefined);
}
public function clear():void{
_values.length = 0;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{
if (_arg1 < _values.length){
return ((_arg1 + 1));
};
return (0);
}
public function get length():uint{
return (_values.length);
}
public function removeAt(_arg1:uint){
var _local2:* = _values[_arg1].value;
_values.splice(_arg1, 1);
return (_local2);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextValue(_arg1:int){
return (_values[(_arg1 - 1)]);
}
public function contains(_arg1):Boolean{
var _local2:uint = _values.length;
while (_local2--) {
if (_values[_local2].value == _arg1){
return (true);
};
};
return (false);
}
}
}//package org.flintparticles.common.utils
class Pair {
private var value;
private var priority:Number;
private function Pair(_arg1:Number, _arg2){
this.priority = _arg1;
this.value = _arg2;
}
}
Section 47
//Move (org.flintparticles.twoD.actions.Move)
package org.flintparticles.twoD.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.twoD.particles.*;
public class Move extends ActionBase {
private var p:Particle2D;
override public function getDefaultPriority():Number{
return (-10);
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
p = Particle2D(_arg2);
p.x = (p.x + (p.velX * _arg3));
p.y = (p.y + (p.velY * _arg3));
}
}
}//package org.flintparticles.twoD.actions
Section 48
//RandomDrift (org.flintparticles.twoD.actions.RandomDrift)
package org.flintparticles.twoD.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.twoD.particles.*;
public class RandomDrift extends ActionBase {
private var _sizeX:Number;
private var _sizeY:Number;
public function RandomDrift(_arg1:Number, _arg2:Number){
_sizeX = (_arg1 * 2);
_sizeY = (_arg2 * 2);
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
var _local4:Particle2D = Particle2D(_arg2);
Particle2D(_arg2).velX = (_local4.velX + (((Math.random() - 0.5) * _sizeX) * _arg3));
_local4.velY = (_local4.velY + (((Math.random() - 0.5) * _sizeY) * _arg3));
}
public function get driftY():Number{
return ((_sizeY / 2));
}
public function set driftY(_arg1:Number):void{
_sizeY = (_arg1 * 2);
}
public function set driftX(_arg1:Number):void{
_sizeX = (_arg1 * 2);
}
public function get driftX():Number{
return ((_sizeX / 2));
}
}
}//package org.flintparticles.twoD.actions
Section 49
//SpeedLimit (org.flintparticles.twoD.actions.SpeedLimit)
package org.flintparticles.twoD.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.twoD.particles.*;
public class SpeedLimit extends ActionBase {
private var _isMinimum:Boolean;
private var _limitSq:Number;
private var _limit:Number;
public function SpeedLimit(_arg1:Number, _arg2:Boolean=false){
_limit = _arg1;
_limitSq = (_arg1 * _arg1);
_isMinimum = _arg2;
}
public function get isMinimum():Boolean{
return (_isMinimum);
}
public function set isMinimum(_arg1:Boolean):void{
_isMinimum = _arg1;
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
var _local6:Number;
var _local4:Particle2D = Particle2D(_arg2);
var _local5:Number = ((_local4.velX * _local4.velX) + (_local4.velY * _local4.velY));
if (((((_isMinimum) && ((_local5 < _limitSq)))) || (((!(_isMinimum)) && ((_local5 > _limitSq)))))){
_local6 = (_limit / Math.sqrt(_local5));
_local4.velX = (_local4.velX * _local6);
_local4.velY = (_local4.velY * _local6);
};
}
override public function getDefaultPriority():Number{
return (-5);
}
public function set limit(_arg1:Number):void{
_limit = _arg1;
_limitSq = (_arg1 * _arg1);
}
public function get limit():Number{
return (_limit);
}
}
}//package org.flintparticles.twoD.actions
Section 50
//Emitter2D (org.flintparticles.twoD.emitters.Emitter2D)
package org.flintparticles.twoD.emitters {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.utils.*;
import org.flintparticles.twoD.particles.*;
public class Emitter2D extends Emitter {
protected var _y:Number;// = 0
public var spaceSort:Boolean;// = false
public var spaceSortedX:Array;
protected var _x:Number;// = 0
protected var _rotation:Number;// = 0
protected static var _creator:ParticleCreator2D = new ParticleCreator2D();
public function Emitter2D(){
_particleFactory = _creator;
}
public function get y():Number{
return (_y);
}
override protected function initParticle(_arg1:Particle):void{
var _local2:Particle2D;
_local2 = Particle2D(_arg1);
_local2.x = _x;
_local2.y = _y;
_local2.rotation = _rotation;
}
override protected function sortParticles():void{
var _local1:int;
var _local2:int;
if (spaceSort){
spaceSortedX = _particles.sortOn("x", (Array.NUMERIC | Array.RETURNINDEXEDARRAY));
_local1 = _particles.length;
_local2 = 0;
while (_local2 < _local1) {
_particles[spaceSortedX[_local2]].sortID = _local2;
_local2++;
};
};
}
public function set x(_arg1:Number):void{
_x = _arg1;
}
public function set rotRadians(_arg1:Number):void{
_rotation = _arg1;
}
public function get x():Number{
return (_x);
}
public function get rotRadians():Number{
return (_rotation);
}
public function set rotation(_arg1:Number):void{
_rotation = Maths.asRadians(_arg1);
}
public function get rotation():Number{
return (Maths.asDegrees(_rotation));
}
public function set y(_arg1:Number):void{
_y = _arg1;
}
public static function get defaultParticleFactory():ParticleFactory{
return (_creator);
}
}
}//package org.flintparticles.twoD.emitters
Section 51
//Velocity (org.flintparticles.twoD.initializers.Velocity)
package org.flintparticles.twoD.initializers {
import org.flintparticles.common.emitters.*;
import flash.geom.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.twoD.particles.*;
public class Velocity extends InitializerBase {
private var _zone:Zone2D;
public function Velocity(_arg1:Zone2D){
_zone = _arg1;
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
var _local3:Particle2D;
var _local5:Number;
var _local6:Number;
_local3 = Particle2D(_arg2);
var _local4:Point = _zone.getLocation();
if (_local3.rotation == 0){
_local3.velX = _local4.x;
_local3.velY = _local4.y;
} else {
_local5 = Math.sin(_local3.rotation);
_local6 = Math.cos(_local3.rotation);
_local3.velX = ((_local6 * _local4.x) - (_local5 * _local4.y));
_local3.velY = ((_local6 * _local4.y) + (_local5 * _local4.x));
};
}
public function set zone(_arg1:Zone2D):void{
_zone = _arg1;
}
public function get zone():Zone2D{
return (_zone);
}
}
}//package org.flintparticles.twoD.initializers
Section 52
//Particle2D (org.flintparticles.twoD.particles.Particle2D)
package org.flintparticles.twoD.particles {
import flash.geom.*;
import org.flintparticles.common.particles.*;
public class Particle2D extends Particle {
public var sortID:uint;// = 0
private var _inertia:Number;
public var velY:Number;// = 0
private var _previousRadius:Number;
private var _previousMass:Number;
public var angVelocity:Number;// = 0
public var x:Number;// = 0
public var y:Number;// = 0
public var velX:Number;// = 0
public var rotation:Number;// = 0
override public function initialize():void{
super.initialize();
x = 0;
y = 0;
velX = 0;
velY = 0;
rotation = 0;
angVelocity = 0;
sortID = 0;
}
public function get matrixTransform():Matrix{
var _local1:Number = (scale * Math.cos(rotation));
var _local2:Number = (scale * Math.sin(rotation));
return (new Matrix(_local1, _local2, -(_local2), _local1, x, y));
}
public function get inertia():Number{
if (((!((mass == _previousMass))) || (!((collisionRadius == _previousRadius))))){
_inertia = (((mass * collisionRadius) * collisionRadius) * 0.5);
_previousMass = mass;
_previousRadius = collisionRadius;
};
return (_inertia);
}
}
}//package org.flintparticles.twoD.particles
Section 53
//ParticleCreator2D (org.flintparticles.twoD.particles.ParticleCreator2D)
package org.flintparticles.twoD.particles {
import org.flintparticles.common.particles.*;
public class ParticleCreator2D implements ParticleFactory {
private var _particles:Array;
public function ParticleCreator2D(){
_particles = new Array();
}
public function clearAllParticles():void{
_particles = new Array();
}
public function disposeParticle(_arg1:Particle):void{
if ((_arg1 is Particle2D)){
_arg1.initialize();
_particles.push(_arg1);
};
}
public function createParticle():Particle{
if (_particles.length){
return (_particles.pop());
};
return (new Particle2D());
}
}
}//package org.flintparticles.twoD.particles
Section 54
//BitmapRenderer (org.flintparticles.twoD.renderers.BitmapRenderer)
package org.flintparticles.twoD.renderers {
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import org.flintparticles.twoD.particles.*;
import org.flintparticles.common.renderers.*;
public class BitmapRenderer extends SpriteRendererBase {
protected var _canvas:Rectangle;
protected var _bitmap:Bitmap;
protected var _smoothing:Boolean;
protected var _bitmapData:BitmapData;
protected var _postFilters:Array;
protected var _preFilters:Array;
protected var _colorMap:Array;
protected static var ZERO_POINT:Point = new Point(0, 0);
public function BitmapRenderer(_arg1:Rectangle, _arg2:Boolean=false){
mouseEnabled = false;
mouseChildren = false;
_smoothing = _arg2;
_preFilters = new Array();
_postFilters = new Array();
_canvas = _arg1;
createBitmap();
}
public function get canvas():Rectangle{
return (_canvas);
}
public function set canvas(_arg1:Rectangle):void{
_canvas = _arg1;
createBitmap();
}
public function removeFilter(_arg1:BitmapFilter):void{
var _local2:int;
while (_local2 < _preFilters.length) {
if (_preFilters[_local2] == _arg1){
_preFilters.splice(_local2, 1);
return;
};
_local2++;
};
_local2 = 0;
while (_local2 < _postFilters.length) {
if (_postFilters[_local2] == _arg1){
_postFilters.splice(_local2, 1);
return;
};
_local2++;
};
}
override protected function renderParticles(_arg1:Array):void{
var _local2:int;
var _local3:int;
if (!_bitmap){
return;
};
_bitmapData.lock();
_local3 = _preFilters.length;
_local2 = 0;
while (_local2 < _local3) {
_bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _preFilters[_local2]);
_local2++;
};
if ((((_local3 == 0)) && ((_postFilters.length == 0)))){
_bitmapData.fillRect(_bitmap.bitmapData.rect, 0);
};
_local3 = _arg1.length;
if (_local3){
_local2 = _local3;
while (_local2--) {
drawParticle(_arg1[_local2]);
};
};
_local3 = _postFilters.length;
_local2 = 0;
while (_local2 < _local3) {
_bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _postFilters[_local2]);
_local2++;
};
if (_colorMap){
_bitmapData.paletteMap(_bitmapData, _bitmapData.rect, ZERO_POINT, _colorMap[1], _colorMap[2], _colorMap[3], _colorMap[0]);
};
_bitmapData.unlock();
}
protected function drawParticle(_arg1:Particle2D):void{
var _local2:Matrix;
_local2 = _arg1.matrixTransform;
_local2.translate(-(_canvas.x), -(_canvas.y));
_bitmapData.draw(_arg1.image, _local2, _arg1.colorTransform, DisplayObject(_arg1.image).blendMode, null, _smoothing);
}
public function setPaletteMap(_arg1:Array=null, _arg2:Array=null, _arg3:Array=null, _arg4:Array=null):void{
_colorMap = new Array(4);
_colorMap[0] = _arg4;
_colorMap[1] = _arg1;
_colorMap[2] = _arg2;
_colorMap[3] = _arg3;
}
public function clearPaletteMap():void{
_colorMap = null;
}
public function addFilter(_arg1:BitmapFilter, _arg2:Boolean=false):void{
if (_arg2){
_postFilters.push(_arg1);
} else {
_preFilters.push(_arg1);
};
}
protected function createBitmap():void{
if (!_canvas){
return;
};
if (((_bitmap) && (_bitmapData))){
_bitmapData.dispose();
_bitmapData = null;
};
if (_bitmap){
removeChild(_bitmap);
};
_bitmap = new Bitmap(null, "auto", _smoothing);
_bitmapData = new BitmapData(_canvas.width, _canvas.height, true, 0);
_bitmap.bitmapData = _bitmapData;
addChild(_bitmap);
_bitmap.x = _canvas.x;
_bitmap.y = _canvas.y;
}
}
}//package org.flintparticles.twoD.renderers
Section 55
//DiscZone (org.flintparticles.twoD.zones.DiscZone)
package org.flintparticles.twoD.zones {
import flash.geom.*;
public class DiscZone implements Zone2D {
private var _innerRadius:Number;
private var _outerRadius:Number;
private var _center:Point;
private var _innerSq:Number;
private var _outerSq:Number;
private static const TWOPI:Number = 6.28318530717959;
public function DiscZone(_arg1:Point, _arg2:Number, _arg3:Number=0){
if (_arg2 < _arg3){
throw (new Error((((("The outerRadius (" + _arg2) + ") can't be smaller than the innerRadius (") + _arg3) + ") in your DiscZone. N.B. the outerRadius is the second argument in the constructor and the innerRadius is the third argument.")));
};
_center = _arg1;
_innerRadius = _arg3;
_outerRadius = _arg2;
_innerSq = (_innerRadius * _innerRadius);
_outerSq = (_outerRadius * _outerRadius);
}
public function set outerRadius(_arg1:Number):void{
_outerRadius = _arg1;
_outerSq = (_outerRadius * _outerRadius);
}
public function get center():Point{
return (_center);
}
public function getArea():Number{
return ((Math.PI * (_outerSq - _innerSq)));
}
public function getLocation():Point{
var _local1:Number = Math.random();
var _local2:Point = Point.polar((_innerRadius + ((1 - (_local1 * _local1)) * (_outerRadius - _innerRadius))), (Math.random() * TWOPI));
_local2.x = (_local2.x + _center.x);
_local2.y = (_local2.y + _center.y);
return (_local2);
}
public function get outerRadius():Number{
return (_outerRadius);
}
public function get innerRadius():Number{
return (_innerRadius);
}
public function set innerRadius(_arg1:Number):void{
_innerRadius = _arg1;
_innerSq = (_innerRadius * _innerRadius);
}
public function set center(_arg1:Point):void{
_center = _arg1;
}
public function contains(_arg1:Number, _arg2:Number):Boolean{
_arg1 = (_arg1 - _center.x);
_arg2 = (_arg2 - _center.y);
var _local3:Number = ((_arg1 * _arg1) + (_arg2 * _arg2));
return ((((_local3 <= _outerSq)) && ((_local3 >= _innerSq))));
}
}
}//package org.flintparticles.twoD.zones
Section 56
//Zone2D (org.flintparticles.twoD.zones.Zone2D)
package org.flintparticles.twoD.zones {
import flash.geom.*;
public interface Zone2D {
function getArea():Number;
function getLocation():Point;
function contains(_arg1:Number, _arg2:Number):Boolean;
}
}//package org.flintparticles.twoD.zones
Section 57
//Serializer (org.sepy.io.Serializer)
package org.sepy.io {
public class Serializer {
public static const version:String = "3.0.0";
public static var pattern:RegExp = /[A-Z][a-z]{2}, \d{2} [A-Z][a-z]{2} \d{4} \d{2}:\d{2}:\d{2} \+|\-\d{4}/g;
public static var c:uint;
public static function stringLength(_arg1:String):uint{
var data = _arg1;
var code:int;
var result:int;
var slen:int = data.length;
while (slen) {
slen = (slen - 1);
try {
code = data.charCodeAt(slen);
} catch(e:Error) {
code = 65536;
};
if (code < 128){
result = (result + 1);
} else {
if (code < 0x0800){
result = (result + 2);
} else {
if (code < 65536){
result = (result + 3);
} else {
result = (result + 4);
};
};
};
};
return (result);
}
public static function unserialize_internal(_arg1:String){
var _local2:*;
var _local3:*;
var _local8:uint;
var _local9:*;
var _local10:uint;
var _local11:uint;
var _local4:Array = new Array();
var _local5:String = _arg1.charAt(Serializer.c);
var _local6:uint;
var _local7:Boolean;
switch (_local5){
case "N":
Serializer.c = (Serializer.c + 2);
break;
case "b":
_local2 = (_arg1.substr((Serializer.c + 2), 1) == "1");
Serializer.c = (Serializer.c + 4);
break;
case "i":
_local4.push(_arg1.indexOf(";", Serializer.c));
_local6 = (Serializer.c + 2);
Serializer.c = (_local4[0] + 1);
_local2 = int(_arg1.substring(_local6, _local4[0]));
break;
case "d":
_local4.push(_arg1.indexOf(";", Serializer.c));
_local6 = (Serializer.c + 2);
Serializer.c = (_local4[0] + 1);
_local2 = Number(_arg1.substring(_local6, _local4[0]));
break;
case "s":
_local4.push(int(_arg1.indexOf(":", (Serializer.c + 2))));
_local4.push((_local4[0] + 2));
_local6 = (Serializer.c + 2);
_local4.push(0);
_local4.push(int(_arg1.substring(_local6, _local4[0])));
if (_local4[3] == 0){
_local2 = "";
Serializer.c = (_local6 + 5);
} else {
_local10 = Serializer.stringCLenght(_arg1, Serializer.c, _local4[3]);
if (_local10 != _local4[3]){
_local2 = _arg1.substr((_local4[0] + 2), _local10);
Serializer.c = ((_local4[0] + 4) + _local10);
} else {
_local2 = _arg1.substr((_local4[0] + 2), _local4[3]);
Serializer.c = ((_local4[0] + 4) + _local4[3]);
};
};
if (Serializer.pattern.test(_local2)){
_local2 = new Date(_local2);
};
break;
case "a":
_local6 = (Serializer.c + 2);
_local4.push(int(_arg1.indexOf(":", _local6)));
_local4.push(int(_arg1.substring(_local6, _local4[0])));
Serializer.c = (_local4[0] + 2);
_local2 = [];
_local8 = 0;
while (_local8 < _local4[1]) {
_local3 = Serializer.unserialize_internal(_arg1);
_local2[_local3] = Serializer.unserialize_internal(_arg1);
if (((!((_local3 is int))) || ((_local3 < 0)))){
_local7 = false;
};
_local8++;
};
if (_local7){
_local4.push([]);
_local11 = 0;
while (_local11 < _local2.length) {
_local6 = _local4[2].length;
while (_local11 > _local6) {
_local4[2].push(null);
_local6 = (_local6 + 1);
};
_local4[2].push(_local2[_local11]);
_local11++;
};
_local2 = _local4[2];
};
Serializer.c = (Serializer.c + 1);
break;
case "O":
_local6 = (_arg1.indexOf("\"", Serializer.c) + 1);
Serializer.c = _arg1.indexOf("\"", _local6);
_local4.push(_arg1.substring(_local6, Serializer.c));
Serializer.c = (Serializer.c + 2);
_local8 = Serializer.c;
Serializer.c = _arg1.indexOf(":", _local8);
_local8 = int(_arg1.substring(_local8, Serializer.c));
Serializer.c = (Serializer.c + 2);
_local2 = {};
while (_local8 > 0) {
_local9 = Serializer.unserialize_internal(_arg1);
_local2[_local9] = Serializer.unserialize_internal(_arg1);
_local8--;
};
break;
};
return (_local2);
}
public static function stringCLenght(_arg1:String, _arg2:uint=0, _arg3:uint=0):int{
var _local4:uint;
var _local5:uint = _arg3;
var _local6:uint = ((_arg2 + 4) + _arg3.toString().length);
_local4 = 0;
while (_local4 < _local5) {
if (_arg1.charCodeAt((_local4 + _local6)) > 128){
_local5--;
};
_local4++;
};
return (_local5);
}
public static function serialize(_arg1):String{
var _local2:String;
var _local5:String;
var _local3:Array = new Array();
var _local4:int;
if ((_arg1 is Boolean)){
_local2 = (("b:" + uint(_arg1)) + ";");
} else {
if ((_arg1 is int)){
_local2 = (("i:" + _arg1.toString()) + ";");
} else {
if ((_arg1 is Number)){
_local2 = (("d:" + _arg1.toString()) + ";");
} else {
if ((_arg1 is String)){
_local2 = (((("s:" + Serializer.stringLength(_arg1)) + ":\"") + _arg1) + "\";");
} else {
if ((_arg1 is Date)){
_local2 = (((("s:" + _arg1.toString().length) + ":\"") + _arg1) + "\";");
} else {
if ((_arg1 is Object)){
for (_local5 in _arg1) {
_local3.push(Serializer.serialize(_local5));
_local3.push(Serializer.serialize(_arg1[_local5]));
_local4 = (_local4 + 1);
};
_local2 = (((("O:8:\"stdClass\":" + _local4) + ":{") + _local3.join("")) + "}");
} else {
if ((_arg1 is Array)){
for (_local5 in _arg1) {
_local3.push(Serializer.serialize(_local4));
_local3.push(Serializer.serialize(_arg1[_local5]));
_local4 = (_local4 + 1);
};
_local2 = (((("a:" + _local4) + ":{") + _local3.join("")) + "}");
} else {
if ((((_arg1 == null)) || ((_arg1 == undefined)))){
_local2 = "N;";
} else {
_local2 = "i:0;";
};
};
};
};
};
};
};
};
return (_local2);
}
public static function unserialize(_arg1:String){
Serializer.c = 0;
return (Serializer.unserialize_internal(_arg1));
}
}
}//package org.sepy.io
Section 58
//AccountManager (AccountManager)
package {
import flash.events.*;
import flash.utils.*;
import org.sepy.io.*;
import flash.net.*;
public final class AccountManager {
private static var contactTimer:Timer = new Timer(60000);
private static var newUsername:String;
public static var forgotSuccessful:Boolean = false;
private static var updateChangeMode:int = 0;
public static var registrationSuccessful:Boolean = false;
public static var loadComplete:Boolean = false;
public static var updateSuccessful:Boolean = false;
private static var memberLSO:SharedObject;
public static var registrationError:String = "";
private static var newEmail:String;
private static var shouldMaintainContact:Boolean = false;
public static var loginSuccessful:Boolean = false;
public static var purchaseSuccessful:Boolean = false;
private static function loadLSO():void{
memberLSO = SharedObject.getLocal("memberLSO", "/");
}
public static function get sessionTime():Number{
var _local1:Number;
loadLSO();
_local1 = memberLSO.data.sessionTime;
unloadLSO();
return (_local1);
}
private static function authenticateUserResult(_arg1:Event):void{
var _local5:Date;
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
var _local4:Array = new Array();
loadComplete = true;
if (_local3.usernameMatches == "true"){
loadLSO();
memberLSO.data.loggedIn = true;
memberLSO.data.id = _local3.returnedId;
memberLSO.data.username = _local3.returnedUsername;
memberLSO.data.emailaddress = _local3.returnedEmail;
memberLSO.data.pointsAvailable = _local3.returnedPoints;
_local5 = new Date();
memberLSO.data.sessionTime = _local5.getTime();
unloadLSO();
if (shouldMaintainContact){
startContactTimer();
};
loginSuccessful = true;
} else {
loginSuccessful = false;
};
}
private static function startContactTimer(){
if (initialLoggedInCheck()){
contactTimer.reset();
contactTimer.addEventListener(TimerEvent.TIMER, maintainContact);
contactTimer.start();
};
}
private static function forgotLoadComplete(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
loadComplete = true;
if (_local3.emailExists == "true"){
forgotSuccessful = true;
} else {
forgotSuccessful = false;
};
}
public static function updatePoints():void{
var _local1:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/getpoints.php");
var _local2:URLVariables = new URLVariables();
var _local3:URLLoader = new URLLoader();
loadComplete = false;
loadLSO();
_local2.id = memberLSO.data.id;
unloadLSO();
_local1.data = _local2;
_local1.method = URLRequestMethod.POST;
_local3.addEventListener(Event.COMPLETE, updatePointsComplete);
_local3.load(_local1);
}
public static function registerUser(_arg1:String, _arg2:String, _arg3:String):void{
var _local4:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/submituser.php");
var _local5:URLVariables = new URLVariables();
var _local6:URLLoader = new URLLoader();
loadComplete = false;
registrationSuccessful = false;
newUsername = _arg2;
_local5.emailaddress = _arg1;
_local5.username = _arg2;
_local5.password1 = _arg3;
_local4.data = _local5;
_local4.method = URLRequestMethod.POST;
_local6.addEventListener(Event.COMPLETE, registerUserComplete);
_local6.load(_local4);
}
public static function logout(){
if (shouldMaintainContact){
stopContactTimer();
};
loadLSO();
memberLSO.data.loggedIn = false;
unloadLSO();
}
private static function maintainContact(_arg1:TimerEvent){
var _local2:Date;
if (checkLoggedIn()){
_local2 = new Date();
loadLSO();
if ((_local2.getTime() - memberLSO.data.sessionTime) < 90000){
memberLSO.data.sessionTime = _local2.getTime();
};
unloadLSO();
} else {
stopContactTimer();
};
}
public static function get id():String{
var _local1:String;
loadLSO();
_local1 = memberLSO.data.id;
unloadLSO();
return (_local1);
}
public static function get email():String{
var _local1:String;
loadLSO();
_local1 = memberLSO.data.emailaddress;
unloadLSO();
return (_local1);
}
public static function initialLoggedInCheck():Boolean{
var _local2:Date;
var _local1:Boolean = checkLoggedIn();
if (_local1){
_local2 = new Date();
loadLSO();
if ((_local2.getTime() - memberLSO.data.sessionTime) < 90000){
_local1 = true;
memberLSO.data.sessionTime = _local2.getTime();
} else {
_local1 = false;
memberLSO.data.loggedIn = false;
};
unloadLSO();
};
return (_local1);
}
public static function forgotCheck(_arg1:String):void{
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/forgotpassword.php");
var _local3:URLVariables = new URLVariables();
var _local4:URLLoader = new URLLoader();
loadComplete = false;
_local3.emailaddress = _arg1;
_local2.data = _local3;
_local2.method = URLRequestMethod.POST;
_local4.addEventListener(Event.COMPLETE, forgotLoadComplete);
_local4.load(_local2);
}
public static function get pointsAvailable():int{
var _local1:int;
loadLSO();
_local1 = memberLSO.data.pointsAvailable;
unloadLSO();
return (_local1);
}
private static function stopContactTimer(){
contactTimer.stop();
contactTimer.removeEventListener(TimerEvent.TIMER, maintainContact);
contactTimer.reset();
}
public static function submitPurchase(_arg1:int):void{
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/submitpurchase.php");
var _local3:URLVariables = new URLVariables();
var _local4:URLLoader = new URLLoader();
loadComplete = false;
loadLSO();
_local3.id = memberLSO.data.id;
unloadLSO();
_local3.cost = PaymentManager.purchaseItems[_arg1].cost;
_local3.purchaseItem = _arg1;
_local3.itemCol = PaymentManager.purchaseItems[_arg1].tableCol;
_local3.gamename = (PaymentManager.gameName + "_users");
_local2.data = _local3;
_local2.method = URLRequestMethod.POST;
_local4.addEventListener(Event.COMPLETE, purchaseComplete);
_local4.load(_local2);
}
public static function updateAccount(_arg1:int, _arg2:String, _arg3:String, _arg4:String, _arg5:String){
var _local6:URLRequest;
var _local7:URLVariables = new URLVariables();
var _local8:URLLoader = new URLLoader();
loadComplete = false;
updateChangeMode = _arg1;
newUsername = _arg2;
newEmail = _arg5;
_local6 = new URLRequest("http://www.sinistersea.com/cgi-bin/updateaccount.php");
_local7.username = _arg2;
loadLSO();
_local7.id = memberLSO.data.id;
unloadLSO();
_local7.currentpassword = _arg3;
_local7.newpassword = _arg4;
_local7.emailaddress = _arg5;
switch (_arg1){
case 1:
_local7.updateType = "username";
break;
case 2:
_local7.updateType = "password";
break;
case 3:
_local7.updateType = "email";
break;
};
_local6.data = _local7;
_local6.method = URLRequestMethod.POST;
_local8.addEventListener(Event.COMPLETE, updateAccountComplete);
_local8.load(_local6);
}
public static function authenticateUser(_arg1:String, _arg2:String):void{
var _local3:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/checkuser.php");
var _local4:URLVariables = new URLVariables();
var _local5:URLLoader = new URLLoader();
loadComplete = false;
loginSuccessful = false;
_local4.username = _arg1;
_local4.password1 = _arg2;
_local3.data = _local4;
_local3.method = URLRequestMethod.POST;
_local5.addEventListener(Event.COMPLETE, authenticateUserResult);
_local5.load(_local3);
}
private static function unloadLSO():void{
memberLSO.flush();
memberLSO = null;
}
public static function update(){
var _local1:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/updateaccount.php");
var _local2:URLVariables = new URLVariables();
var _local3:URLLoader = new URLLoader();
loadComplete = false;
loadLSO();
_local2.id = memberLSO.data.id;
unloadLSO();
_local1.data = _local2;
_local1.method = URLRequestMethod.POST;
_local3.addEventListener(Event.COMPLETE, authenticateUserResult);
_local3.load(_local1);
}
public static function startContactMaintenance(){
shouldMaintainContact = true;
startContactTimer();
}
public static function get username():String{
var _local1:String;
loadLSO();
_local1 = memberLSO.data.username;
unloadLSO();
return (_local1);
}
private static function purchaseComplete(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
loadComplete = true;
if (_local3.purchaseCompleted == "true"){
PaymentManager.purchaseItems[_local3.purchaseItem].purchased = true;
loadLSO();
memberLSO.data.pointsAvailable = (memberLSO.data.pointsAvailable - PaymentManager.purchaseItems[_local3.purchaseItem].cost);
unloadLSO();
purchaseSuccessful = true;
} else {
purchaseSuccessful = false;
};
}
private static function updatePointsComplete(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
if (_local3.pointsUpdated == "true"){
loadLSO();
memberLSO.data.pointsAvailable = _local3.returnedPoints;
unloadLSO();
};
loadComplete = true;
}
public static function gotPurchases(_arg1:Event){
var _local5:int;
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
var _local4:Array = new Array();
loadComplete = true;
if (_local3.gameRecordExists == "true"){
_local4 = Serializer.unserialize(_local3.returnedPurchases);
_local5 = 0;
while (_local5 < _local4.length) {
if (_local4[_local5] == 1){
PaymentManager.purchaseItems[_local5].purchased = true;
};
_local5++;
};
};
}
public static function initiateGettingPurchases(){
var _local1:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/checkpurchases.php");
var _local2:URLVariables = new URLVariables();
var _local3:URLLoader = new URLLoader();
loadComplete = false;
loadLSO();
_local2.id = memberLSO.data.id;
unloadLSO();
_local2.gamename = (PaymentManager.gameName + "_users");
_local1.data = _local2;
_local1.method = URLRequestMethod.POST;
_local3.addEventListener(Event.COMPLETE, gotPurchases);
_local3.load(_local1);
}
private static function registerUserComplete(_arg1:Event):void{
var _local5:Date;
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
var _local4:Boolean;
loadComplete = true;
if (_local3.usernameExists == "true"){
registrationSuccessful = false;
registrationError = "USERNAME_EXISTS";
_local4 = false;
};
if (_local3.emailExists == "true"){
registrationSuccessful = false;
registrationError = "EMAIL_EXISTS";
_local4 = false;
};
if (_local4){
loadLSO();
memberLSO.data.id = _local3.returnedId;
memberLSO.data.emailaddress = _local3.returnedEmail;
memberLSO.data.loggedIn = true;
memberLSO.data.username = newUsername;
memberLSO.data.pointsAvailable = _local3.returnedPoints;
_local5 = new Date();
memberLSO.data.sessionTime = _local5.getTime();
unloadLSO();
registrationSuccessful = true;
} else {
registrationSuccessful = false;
};
}
public static function checkLoggedIn():Boolean{
var _local1:Boolean;
loadLSO();
if (memberLSO.data.loggedIn){
_local1 = true;
} else {
_local1 = false;
};
unloadLSO();
return (_local1);
}
private static function updateAccountComplete(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
loadComplete = true;
switch (updateChangeMode){
case 1:
if (_local3.updateSuccessful == "false"){
updateSuccessful = false;
} else {
updateSuccessful = true;
loadLSO();
memberLSO.data.username = newUsername;
unloadLSO();
};
break;
case 2:
if (_local3.updateSuccessful == "false"){
updateSuccessful = false;
} else {
updateSuccessful = true;
};
break;
case 3:
if (_local3.updateSuccessful == "false"){
updateSuccessful = false;
} else {
updateSuccessful = true;
loadLSO();
memberLSO.data.emailaddress = newEmail;
unloadLSO();
};
break;
};
}
}
}//package
Section 59
//AdBox (AdBox)
package {
import flash.display.*;
public dynamic class AdBox extends MovieClip {
}
}//package
Section 60
//AddButton (AddButton)
package {
import flash.display.*;
public dynamic class AddButton extends SimpleButton {
}
}//package
Section 61
//ArmorControl (ArmorControl)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ArmorControl extends MovieClip {
public var costText:TextField;
}
}//package
Section 62
//AttackControl (AttackControl)
package {
import flash.display.*;
import flash.text.*;
public dynamic class AttackControl extends MovieClip {
public var costText:TextField;
}
}//package
Section 63
//AutoTank (AutoTank)
package {
import mochi.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class AutoTank extends Unit {
public var onNewCell:Boolean;// = true
public var lastDirection:int;// = 4
public var statLevels:Array;
public var pathArray:Array;
public var pathPosition:int;// = 0
public function AutoTank(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int){
pathArray = new Array();
statLevels = new Array();
clip = new PlayerTank();
super(_arg1, _arg2);
unitID = _arg8;
typeOfUnit = TANK_TYPE;
maxhealth = 100;
health = maxhealth;
currentSpeed = 0;
rotateSpeed = 0.5;
turretRotationSpeed = 4;
range = 500;
shotRecovery = 150;
currentRecovery = 150;
doesMove = true;
doesFire = true;
doesBuild = false;
hasTurret = true;
clearedBuilder = false;
statLevels.push(_arg3);
statLevels.push(_arg4);
statLevels.push(_arg5);
statLevels.push(_arg6);
statLevels.push(_arg7);
setStatLevel(SPEEDCONTROL, _arg3);
setStatLevel(ARMORCONTROL, _arg4);
setStatLevel(ATTACKCONTROL, _arg5);
setStatLevel(RATECONTROL, _arg6);
setStatLevel(RANGECONTROL, _arg7);
}
public function advancePath(){
pathPosition++;
onNewCell = true;
clearedBuilder = true;
if (pathPosition >= pathArray.length){
switch (lastDirection){
case RIGHT:
destinationX++;
break;
case LEFT:
destinationX--;
break;
case UP:
destinationY--;
break;
case DOWN:
destinationY++;
break;
};
moveStatus = lastDirection;
} else {
switch (pathArray[pathPosition]){
case RIGHT:
destinationX++;
break;
case LEFT:
destinationX--;
break;
case UP:
destinationY--;
break;
case DOWN:
destinationY++;
break;
};
if (pathArray[pathPosition] > TANKMOVEOFFSET){
pathPosition = (pathArray[pathPosition] - TANKMOVEOFFSET);
switch (pathArray[pathPosition]){
case RIGHT:
destinationX++;
break;
case LEFT:
destinationX--;
break;
case UP:
destinationY--;
break;
case DOWN:
destinationY++;
break;
};
};
moveStatus = pathArray[pathPosition];
};
}
public function setStatLevel(_arg1:int, _arg2:int){
statLevels[_arg1] = _arg2;
switch (_arg1){
case SPEEDCONTROL:
switch (_arg2){
case 0:
currentSpeed = SPEED_1;
rotateSpeed = SPEED_1;
break;
case 1:
currentSpeed = SPEED_2;
rotateSpeed = SPEED_2;
break;
case 2:
currentSpeed = SPEED_3;
rotateSpeed = SPEED_3;
break;
case 3:
currentSpeed = SPEED_4;
rotateSpeed = SPEED_4;
break;
default:
currentSpeed = SPEED_1;
rotateSpeed = SPEED_1;
break;
};
break;
case ARMORCONTROL:
switch (_arg2){
case 0:
maxhealth = ARMOR_1;
health = ARMOR_1;
break;
case 1:
maxhealth = ARMOR_2;
health = ARMOR_2;
break;
case 2:
maxhealth = ARMOR_3;
health = ARMOR_3;
break;
case 3:
maxhealth = ARMOR_4;
health = ARMOR_4;
break;
default:
maxhealth = ARMOR_1;
health = ARMOR_1;
break;
};
break;
case ATTACKCONTROL:
switch (_arg2){
case 0:
payloadSize = ONE_MEGATON;
damageMultiplier = DAMAGE_1;
break;
case 1:
payloadSize = TWO_MEGATON;
damageMultiplier = DAMAGE_2;
break;
case 2:
payloadSize = THREE_MEGATON;
damageMultiplier = DAMAGE_3;
break;
case 3:
payloadSize = FOUR_MEGATON;
damageMultiplier = DAMAGE_4;
break;
default:
payloadSize = ONE_MEGATON;
damageMultiplier = DAMAGE_1;
break;
};
break;
case RATECONTROL:
switch (_arg2){
case 0:
shotRecovery = RATE_1;
currentRecovery = RATE_1;
break;
case 1:
shotRecovery = RATE_2;
currentRecovery = RATE_2;
break;
case 2:
shotRecovery = RATE_3;
currentRecovery = RATE_3;
break;
case 3:
shotRecovery = RATE_4;
currentRecovery = RATE_4;
break;
default:
shotRecovery = RATE_1;
currentRecovery = RATE_1;
break;
};
break;
case RANGECONTROL:
switch (_arg2){
case 0:
range = RANGE_1;
break;
case 1:
range = RANGE_2;
break;
case 2:
range = RANGE_3;
break;
case 3:
range = RANGE_4;
break;
default:
range = RANGE_1;
break;
};
break;
};
}
public function moveMe(){
var _local1:Number = clip.rotation;
if (_local1 < 0){
_local1 = (_local1 + 360);
};
switch (moveStatus){
case WAITING:
break;
case MOVINGUP:
if (clip.y <= (PosFromCell(destinationY) + currentSpeed)){
clip.y = PosFromCell(destinationY);
moveStatus = WAITING;
} else {
if (_local1 == 0){
clip.y = (clip.y - currentSpeed);
} else {
if (_local1 >= 180){
if ((_local1 + rotateSpeed) >= 360){
clip.rotation = 0;
} else {
clip.rotation = (clip.rotation + rotateSpeed);
};
} else {
if ((_local1 - rotateSpeed) <= 0){
clip.rotation = 0;
} else {
clip.rotation = (clip.rotation - rotateSpeed);
};
};
};
};
break;
case MOVINGRIGHT:
if (clip.x >= (PosFromCell(destinationX) - currentSpeed)){
clip.x = PosFromCell(destinationX);
moveStatus = WAITING;
} else {
if (_local1 == 90){
clip.x = (clip.x + currentSpeed);
} else {
if ((((_local1 >= 270)) || ((_local1 < 90)))){
if (((((_local1 + rotateSpeed) >= 90)) && ((_local1 < 90)))){
clip.rotation = 90;
} else {
clip.rotation = (clip.rotation + rotateSpeed);
};
} else {
if ((_local1 - rotateSpeed) <= 90){
clip.rotation = 90;
} else {
clip.rotation = (clip.rotation - rotateSpeed);
};
};
};
};
break;
case MOVINGDOWN:
if (clip.y >= (PosFromCell(destinationY) - currentSpeed)){
clip.y = PosFromCell(destinationY);
moveStatus = WAITING;
} else {
if (_local1 == 180){
clip.y = (clip.y + currentSpeed);
} else {
if (_local1 < 180){
if ((_local1 + rotateSpeed) >= 180){
clip.rotation = 180;
} else {
clip.rotation = (clip.rotation + rotateSpeed);
};
} else {
if ((_local1 - rotateSpeed) <= 180){
clip.rotation = 180;
} else {
clip.rotation = (clip.rotation - rotateSpeed);
};
};
};
};
break;
case MOVINGLEFT:
if (clip.x <= (PosFromCell(destinationX) + currentSpeed)){
clip.x = PosFromCell(destinationX);
moveStatus = WAITING;
} else {
if (_local1 == 270){
clip.x = (clip.x - currentSpeed);
} else {
if ((((_local1 > 270)) || ((_local1 <= 90)))){
if (((((_local1 - rotateSpeed) <= 270)) && ((_local1 > 270)))){
clip.rotation = -90;
} else {
clip.rotation = (clip.rotation - rotateSpeed);
};
} else {
if ((_local1 + rotateSpeed) >= 270){
clip.rotation = -90;
} else {
clip.rotation = (clip.rotation + rotateSpeed);
};
};
};
};
break;
};
if (moveStatus == WAITING){
advancePath();
} else {
onNewCell = false;
};
}
public function setInitialDirection(){
switch (pathArray[0]){
case DOWN:
destinationX = CellFromPos(clip.x);
destinationY = (CellFromPos(clip.y) + 1);
clip.rotation = 180;
break;
case UP:
destinationX = CellFromPos(clip.x);
destinationY = (CellFromPos(clip.y) - 1);
clip.rotation = 0;
break;
case LEFT:
destinationX = (CellFromPos(clip.x) - 1);
destinationY = CellFromPos(clip.y);
clip.rotation = -90;
break;
case RIGHT:
destinationX = (CellFromPos(clip.x) + 1);
destinationY = CellFromPos(clip.y);
clip.rotation = 90;
break;
};
moveStatus = pathArray[0];
lastDirection = pathArray[(pathArray.length - 1)];
}
}
}//package
Section 64
//BackTitleButton (BackTitleButton)
package {
import flash.display.*;
import flash.text.*;
public dynamic class BackTitleButton extends SimpleButton {
public var backTitleButton:TextField;
}
}//package
Section 65
//BeatenFlag (BeatenFlag)
package {
import flash.display.*;
public dynamic class BeatenFlag extends Sprite {
}
}//package
Section 66
//BrowseUserLevelsButton (BrowseUserLevelsButton)
package {
import flash.display.*;
public dynamic class BrowseUserLevelsButton extends SimpleButton {
}
}//package
Section 67
//BuildTankButton (BuildTankButton)
package {
import flash.display.*;
public dynamic class BuildTankButton extends MovieClip {
public function BuildTankButton(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 9, frame10);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame10(){
stop();
}
}
}//package
Section 68
//BuildTankDisplay (BuildTankDisplay)
package {
import flash.display.*;
import flash.text.*;
public dynamic class BuildTankDisplay extends MovieClip {
public var cashText:TextField;
public var tanksAvailText:TextField;
public var costText:TextField;
}
}//package
Section 69
//BuildTankFX (BuildTankFX)
package {
import flash.media.*;
public dynamic class BuildTankFX extends Sound {
}
}//package
Section 70
//BuyClamsContents (BuyClamsContents)
package {
import flash.display.*;
import flash.text.*;
public dynamic class BuyClamsContents extends MovieClip {
public var buy500Button:PaymentBox_BuyButton;
public var buyClamsUsername:TextField;
public var cancelClamBuyButton:PaymentBox_CancelBuyButton;
public var buyClamsAvailable:TextField;
public var buy1000Button:PaymentBox_BuyButton;
public var buy250Button:PaymentBox_BuyButton;
}
}//package
Section 71
//CancelButton (CancelButton)
package {
import flash.display.*;
public dynamic class CancelButton extends SimpleButton {
}
}//package
Section 72
//ClamIcon (ClamIcon)
package {
import flash.display.*;
public dynamic class ClamIcon extends MovieClip {
}
}//package
Section 73
//CloseButton (CloseButton)
package {
import flash.display.*;
public dynamic class CloseButton extends SimpleButton {
}
}//package
Section 74
//CopyToClipboardButton (CopyToClipboardButton)
package {
import flash.display.*;
public dynamic class CopyToClipboardButton extends SimpleButton {
}
}//package
Section 75
//Crate_Health (Crate_Health)
package {
import flash.display.*;
public dynamic class Crate_Health extends MovieClip {
public function Crate_Health(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 76
//Crate_Money (Crate_Money)
package {
import flash.display.*;
public dynamic class Crate_Money extends MovieClip {
public function Crate_Money(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 77
//Crate_Sideswitcher (Crate_Sideswitcher)
package {
import flash.display.*;
public dynamic class Crate_Sideswitcher extends MovieClip {
public function Crate_Sideswitcher(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 78
//Crate_Tank (Crate_Tank)
package {
import flash.display.*;
public dynamic class Crate_Tank extends MovieClip {
public function Crate_Tank(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 79
//CrateCollectedFX (CrateCollectedFX)
package {
import flash.media.*;
public dynamic class CrateCollectedFX extends Sound {
}
}//package
Section 80
//CreateCustomButton (CreateCustomButton)
package {
import flash.display.*;
public dynamic class CreateCustomButton extends SimpleButton {
}
}//package
Section 81
//CreatedByButton (CreatedByButton)
package {
import flash.display.*;
public dynamic class CreatedByButton extends SimpleButton {
}
}//package
Section 82
//CreateMusic (CreateMusic)
package {
import flash.media.*;
public dynamic class CreateMusic extends Sound {
}
}//package
Section 83
//CustomInput (CustomInput)
package {
import flash.display.*;
import flash.text.*;
public dynamic class CustomInput extends Sprite {
public var errorCodeText:TextField;
public var levelCodeText:TextField;
public var okButton:OkButton;
}
}//package
Section 84
//DeleteIcon (DeleteIcon)
package {
import flash.display.*;
public dynamic class DeleteIcon extends Sprite {
}
}//package
Section 85
//DirectionArrow (DirectionArrow)
package {
import flash.display.*;
public dynamic class DirectionArrow extends MovieClip {
public function DirectionArrow(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 5, frame6);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame6(){
stop();
}
}
}//package
Section 86
//DownloadButton (DownloadButton)
package {
import flash.display.*;
public dynamic class DownloadButton extends SimpleButton {
}
}//package
Section 87
//DownloadMusicButton (DownloadMusicButton)
package {
import flash.display.*;
public dynamic class DownloadMusicButton extends SimpleButton {
}
}//package
Section 88
//EditorPlaceFX (EditorPlaceFX)
package {
import flash.media.*;
public dynamic class EditorPlaceFX extends Sound {
}
}//package
Section 89
//EditorRemoveFX (EditorRemoveFX)
package {
import flash.media.*;
public dynamic class EditorRemoveFX extends Sound {
}
}//package
Section 90
//EverythingHolder (EverythingHolder)
package {
import flash.display.*;
public dynamic class EverythingHolder extends MovieClip {
public function EverythingHolder(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 91
//ExitButton (ExitButton)
package {
import flash.display.*;
public dynamic class ExitButton extends SimpleButton {
}
}//package
Section 92
//Explosion (Explosion)
package {
import flash.geom.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.twoD.emitters.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.common.displayObjects.*;
public class Explosion {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var payloadType:int;// = 1
public var damageMultiplier:Number;// = 1
public var centerFire:Emitter2D;
public var payloadSize:int;// = 10
public var fire:Emitter2D;
public var xPos:int;// = 0
public var damageActive:Boolean;// = true
public var smoke:Emitter2D;
public var backFire:Emitter2D;
public var yPos:int;// = 0
public function Explosion(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Number){
smoke = new Emitter2D();
fire = new Emitter2D();
centerFire = new Emitter2D();
backFire = new Emitter2D();
super();
xPos = _arg1;
yPos = _arg2;
payloadSize = _arg3;
payloadType = _arg4;
damageMultiplier = _arg5;
smoke.counter = new Blast(5);
smoke.addInitializer(new Lifetime(2, 3));
smoke.addInitializer(new Velocity(new DiscZone(new Point(0, 0), 20, 1)));
smoke.addInitializer(new SharedImage(new RadialDot(6)));
smoke.addAction(new Age());
smoke.addAction(new Move());
smoke.addAction(new ScaleImage(1, 7));
smoke.addAction(new Fade(0.75, 0));
smoke.addAction(new RandomDrift(15, 15));
smoke.x = _arg1;
smoke.y = _arg2;
smoke.start();
fire.counter = new Blast(5);
fire.addInitializer(new Lifetime(2, 3));
fire.addInitializer(new Velocity(new DiscZone(new Point(0, 0), 20, 1)));
fire.addInitializer(new SharedImage(new Dot(5)));
fire.addAction(new Age());
fire.addAction(new Move());
fire.addAction(new ColorChange(2113915904, 0xCC0000));
fire.addAction(new ScaleImage(5, 1));
fire.x = _arg1;
fire.y = _arg2;
fire.start();
centerFire.counter = new Blast(1);
centerFire.addInitializer(new Lifetime(3, 3));
centerFire.addInitializer(new SharedImage(new RadialDot(10)));
centerFire.addAction(new Age());
centerFire.addAction(new Move());
centerFire.addAction(new ColorChange(4294953984, 0xCC0000));
centerFire.addAction(new ScaleImage(1, (payloadSize / 5)));
centerFire.x = _arg1;
centerFire.y = _arg2;
centerFire.start();
backFire.counter = new Blast(1);
backFire.addInitializer(new Lifetime(1, 1));
backFire.addInitializer(new SharedImage(new Dot(10)));
backFire.addAction(new Age());
backFire.addAction(new Move());
backFire.addAction(new ColorChange(4294953984, 0xCC0000));
backFire.addAction(new ScaleImage(1, (payloadSize / 5)));
backFire.x = _arg1;
backFire.y = _arg2;
backFire.start();
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
}
}//package
Section 93
//ExportScreen (ExportScreen)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ExportScreen extends MovieClip {
public var levelNameText:TextField;
public var doneIndicator:TextField;
public var okButton:OkButton;
public var shareOnSSButton:ShareOnSSButton;
public var levelCodeText:TextField;
public var copyToClipboardButton:CopyToClipboardButton;
public function ExportScreen(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 94
//FiringRange (FiringRange)
package {
import flash.display.*;
public dynamic class FiringRange extends Sprite {
}
}//package
Section 95
//FxButton (FxButton)
package {
import flash.display.*;
public dynamic class FxButton extends MovieClip {
public function FxButton(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
}
}//package
Section 96
//GameManager (GameManager)
package {
import flash.events.*;
import flash.display.*;
import caurina.transitions.*;
import flash.utils.*;
import mochi.*;
import flash.media.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public final class GameManager extends Sprite {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
static const TITLESTATE:int = 1;
static const LEVELSTATE:int = 2;
static const STORYSTATE:int = 4;
static const CREATESTATE:int = 3;
public static var levelMusic:LevelMusic = new LevelMusic();
private static var paymentInitializer:PaymentInitializer = new PaymentInitializer();
private static var prevLevel:LevelScreen;
public static var levelEditor:LevelEditor;
public static var musicChannel:SoundChannel = new SoundChannel();
public static var levelBrowse:LevelBrowse;
public static var userLevelWins:int = 0;
public static var shellLand:ShellLandFX = new ShellLandFX();
public static var storyMusic:StoryMusic = new StoryMusic();
public static var interfaceDisplay:Sprite = new Sprite();
public static var musicPlaying:Boolean = false;
public static var managerStage:Stage;
public static var levelInfo:Array = new Array();
public static var editorRemove:EditorRemoveFX = new EditorRemoveFX();
public static var resumeLSO:SharedObject = SharedObject.getLocal("autoTanksResume");
public static var levelClick:LevelClickFX = new LevelClickFX();
public static var menuClick:MenuClickFX = new MenuClickFX();
public static var userLevelId:int = 0;
public static var buildTank:BuildTankFX = new BuildTankFX();
public static var stationReached:StationReachedFX = new StationReachedFX();
private static var delayTimer:Timer = new Timer(500, 2);
public static var ssIntroSound:SSIntroSound = new SSIntroSound();
public static var reachedGoal:ReachedGoalFX = new ReachedGoalFX();
public static var shellFire:ShellFireFX = new ShellFireFX();
private static var firstTitle:Boolean = true;
public static var createMusic:CreateMusic = new CreateMusic();
private static var currentLevel:LevelScreen;
public static var missleLaunch:MissleLaunchFX = new MissleLaunchFX();
public static var onSinisterSea:Boolean = false;
public static var lastSubmittedScore:int = 0;
public static var wonLevel:WonLevelFX = new WonLevelFX();
public static var currentState:int = 0;
public static var currentScore:int = 0;
public static var sink:SinkFX = new SinkFX();
public static var levelSelect:LevelSelect;
public static var fxButton:ToggleButton = new ToggleButton();
public static var fadeDisplay:Sprite = new Sprite();
public static var musicDownloadScreen:MusicDownloadScreen;
public static var titleMusic:TitleMusic = new TitleMusic();
public static var editorPlace:EditorPlaceFX = new EditorPlaceFX();
public static var userLevelName:String = "";
public static var screenDisplay:Sprite = new Sprite();
public static var musicButton:ToggleButton = new ToggleButton();
public static var fxTransform:SoundTransform = new SoundTransform();
public static var lostLevel:LostLevelFX = new LostLevelFX();
public static var loadError:LoadErrorFX = new LoadErrorFX();
public static var userLevelRatings:int = 0;
public static var userLevelPlays:int = 0;
public static var musicTransform:SoundTransform = new SoundTransform();
public static var unitExplode:UnitExplodeFX = new UnitExplodeFX();
public static var musicDownload:FileReference;
public static var fxChannel:SoundChannel = new SoundChannel();
public static var crateCollected:CrateCollectedFX = new CrateCollectedFX();
public static var titleScreen:TitleScreen;
public static var paymentBox:PaymentBox;
public static var transmission:TransmissionFX = new TransmissionFX();
public static var userLevelSubmit:Boolean = false;
public static var introScreen:IntroScreen;
private static function checkForPurchases(){
if (onSinisterSea){
paymentInitializer.activate(interfaceDisplay);
if (AccountManager.initialLoggedInCheck()){
paymentInitializer.showInitializer();
AccountManager.initiateGettingPurchases();
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, purchasesRetrieved);
delayTimer.start();
} else {
paymentInitializer.startListening();
loadIntro();
};
} else {
loadIntro();
};
}
public static function activateSoundButtons(){
musicButton.clip.addEventListener(MouseEvent.CLICK, musicToggle);
fxButton.clip.addEventListener(MouseEvent.CLICK, fxToggle);
musicButton.activate();
fxButton.activate();
}
private static function keyPressed(_arg1:KeyboardEvent){
var _local2:MouseEvent;
var _local3:MouseEvent;
var _local4:MouseEvent;
switch (_arg1.keyCode){
case 112:
if (currentState == LEVELSTATE){
if (currentLevel.isPaused){
currentLevel.resumeLevel();
} else {
currentLevel.pauseLevel();
};
};
break;
case 109:
_local2 = new MouseEvent(MouseEvent.CLICK);
musicToggle(_local2);
break;
case 115:
_local3 = new MouseEvent(MouseEvent.CLICK);
fxToggle(_local3);
break;
case 102:
_local4 = new MouseEvent(MouseEvent.CLICK);
fxToggle(_local4);
break;
};
}
public static function leaveEditor(){
levelEditor.deactivate();
switchMusic();
Tweener.addTween(levelEditor, {x:680, transition:"linear", time:2, onComplete:clearEditor});
loadTitle();
}
public static function deactivateSoundButtons(){
musicButton.clip.removeEventListener(MouseEvent.CLICK, musicToggle);
fxButton.clip.removeEventListener(MouseEvent.CLICK, fxToggle);
musicButton.deactivate();
fxButton.deactivate();
}
public static function clearLevelSelect(){
screenDisplay.removeChild(levelSelect);
levelSelect = null;
}
public static function exitLevel(){
var i:int;
switch (currentLevel.levelType){
case 1:
Tweener.addTween(currentLevel, {x:-680, transition:"linear", time:2, onComplete:clearLevel, onCompleteParams:[currentLevel]});
currentState = CREATESTATE;
Tweener.addTween(levelEditor, {x:0, transition:"linear", time:2, onComplete:activateEditor});
break;
case 2:
if (currentLevel.levelWon){
if (currentLevel.score > levelInfo[currentLevel.currentLevel].bestScore){
levelInfo[currentLevel.currentLevel].bestScore = currentLevel.score;
};
levelInfo[currentLevel.currentLevel].beaten = true;
if (currentLevel.currentLevel < 20){
levelInfo[(currentLevel.currentLevel + 1)].isAvailable = true;
};
i = 0;
while (i < 21) {
resumeLSO.data.beatenArray[i] = levelInfo[i].beaten;
resumeLSO.data.availableArray[i] = levelInfo[i].isAvailable;
resumeLSO.data.bestScoreArray[i] = levelInfo[i].bestScore;
i = (i + 1);
};
try {
resumeLSO.flush();
} catch(e:Error) {
};
};
currentState = TITLESTATE;
if ((((currentLevel.currentLevel == 20)) && (currentLevel.levelWon))){
Tweener.addTween(currentLevel, {x:680, transition:"linear", time:2, onComplete:clearLevel, onCompleteParams:[currentLevel]});
loadTitle();
} else {
Tweener.addTween(currentLevel, {x:-680, transition:"linear", time:2, onComplete:clearLevel, onCompleteParams:[currentLevel]});
loadSelect();
};
break;
case 3:
Tweener.addTween(currentLevel, {x:680, transition:"linear", time:2, onComplete:clearLevel, onCompleteParams:[currentLevel]});
currentState = TITLESTATE;
loadTitle();
break;
case 4:
Tweener.addTween(currentLevel, {x:-680, transition:"linear", time:2, onComplete:clearLevel, onCompleteParams:[currentLevel]});
currentState = TITLESTATE;
loadLevelBrowse();
break;
};
switchMusic();
}
public static function loadTitle(){
currentState = TITLESTATE;
titleScreen = new TitleScreen();
musicButton.clip = titleScreen.titleMusicButton;
fxButton.clip = titleScreen.titleFxButton;
activateSoundButtons();
titleScreen.x = -680;
screenDisplay.addChild(titleScreen);
Tweener.addTween(titleScreen, {x:0, transition:"linear", time:2, onComplete:activateTitle});
if (firstTitle){
musicTransform.volume = 0;
musicChannel.soundTransform = musicTransform;
musicButton.turnOn();
fxButton.turnOn();
startMusic();
managerStage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
titleScreen.storyScreen.visible = true;
};
}
public static function introClicked(_arg1:MouseEvent){
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
}
public static function clearIntro(){
screenDisplay.removeChild(introScreen);
introScreen = null;
}
public static function clearTitle(){
screenDisplay.removeChild(titleScreen);
titleScreen = null;
}
public static function activateTitle(){
titleScreen.activate();
if (firstTitle){
firstTitle = false;
titleScreen.storyScreen.tinkClip.gotoAndPlay(2);
titleScreen.storyScreen.startText(0);
};
}
public static function backFromBrowse(){
leaveLevelBrowse();
loadTitle();
}
public static function fadeInIntro(){
introScreen.introFade.alpha = (introScreen.introFade.alpha - 0.2);
}
public static function playFx(_arg1:int){
if (fxButton.isOn){
switch (_arg1){
case 1:
fxChannel = levelClick.play();
break;
case 2:
fxChannel = levelClick.play();
break;
case 3:
fxChannel = shellFire.play();
break;
case 4:
fxChannel = shellLand.play();
break;
case 5:
fxChannel = unitExplode.play();
break;
case 6:
fxChannel = buildTank.play();
break;
case 7:
fxChannel = reachedGoal.play();
break;
case 8:
fxChannel = crateCollected.play();
break;
case 9:
fxChannel = stationReached.play();
break;
case 10:
fxChannel = missleLaunch.play();
break;
case 11:
fxChannel = sink.play();
break;
case 12:
fxChannel = editorPlace.play();
break;
case 13:
fxChannel = editorRemove.play();
break;
case 14:
fxChannel = loadError.play();
break;
case 15:
fxChannel = wonLevel.play();
break;
case 16:
fxChannel = lostLevel.play();
break;
case 17:
fxChannel = transmission.play();
break;
};
};
}
public static function loadIntro(){
introScreen = new IntroScreen();
introScreen.alpha = 0;
introScreen.ssLogoButton.alpha = 0;
introScreen.introFade.mouseEnabled = false;
introScreen.introFade.mouseChildren = false;
introScreen.ssLogoButton.addEventListener(MouseEvent.CLICK, introClicked);
screenDisplay.addChild(introScreen);
Tweener.addTween(introScreen, {alpha:1, transition:"linear", time:1.5, onComplete:playIntroSound});
Tweener.addCaller(introScreen, {onUpdate:fadeInIntro, time:2, count:5, delay:1});
Tweener.addCaller(introScreen, {onUpdate:fadeOutIntro, time:2, count:5, delay:5.5, onComplete:loadTitle});
Tweener.addTween(introScreen, {x:680, transition:"linear", time:2, delay:7.5, onComplete:clearIntro});
}
private static function purchasesRetrieved(_arg1:TimerEvent){
if (AccountManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, purchasesRetrieved);
paymentInitializer.closePaymentInitializer();
loadIntro();
} else {
delayTimer.reset();
delayTimer.start();
};
}
public static function loadLevel(){
currentLevel.fadeInLevel();
}
public static function activateLevelBrowse(){
levelBrowse.activate();
}
public static function stopMusic(){
Tweener.addTween(musicTransform, {volume:0, time:1, onUpdate:function (){
musicChannel.soundTransform = musicTransform;
}, onComplete:function (){
musicChannel.stop();
}});
}
public static function clearLevel(_arg1:LevelScreen){
screenDisplay.removeChild(_arg1);
_arg1 = null;
}
public static function clearEditor(){
screenDisplay.removeChild(levelEditor);
levelEditor = null;
}
public static function playIntroSound(){
fxChannel = ssIntroSound.play();
introScreen.ssLogoButton.alpha = 1;
}
public static function fadeOutIntro(){
introScreen.introFade.alpha = (introScreen.introFade.alpha + 0.2);
}
public static function activateEditor(){
levelEditor.activate();
}
public static function loadLevelBrowse(){
levelBrowse = new LevelBrowse();
levelBrowse.x = 680;
screenDisplay.addChild(levelBrowse);
levelBrowse.activate();
Tweener.addTween(levelBrowse, {x:0, transition:"linear", time:2});
}
public static function initiateCustom(_arg1:String){
switchMusic();
currentState = LEVELSTATE;
currentLevel = new LevelScreen(-10, _arg1, 3);
currentLevel.x = 680;
screenDisplay.addChild(currentLevel);
Tweener.addTween(currentLevel, {x:0, transition:"linear", time:2, onComplete:loadLevel});
}
public static function clearMusicScreen(){
screenDisplay.removeChild(musicDownloadScreen);
musicDownloadScreen = null;
}
public static function leaveLevelSelect(){
levelSelect.deactivate();
Tweener.addTween(levelSelect, {x:680, transition:"linear", time:2, onComplete:clearLevelSelect});
}
public static function switchMusic(){
if (musicButton.isOn){
Tweener.addTween(musicTransform, {volume:0, time:1, onUpdate:function (){
musicChannel.soundTransform = musicTransform;
}, onComplete:function (){
musicChannel.stop();
startMusic();
}});
};
}
public static function initiateTestLevel(_arg1:String){
switchMusic();
currentState = LEVELSTATE;
currentLevel = new LevelScreen(-10, _arg1, 1);
currentLevel.x = -680;
screenDisplay.addChild(currentLevel);
Tweener.addTween(currentLevel, {x:0, transition:"linear", time:2, onComplete:loadLevel});
Tweener.addTween(levelEditor, {x:680, transition:"linear", time:2});
}
public static function loadMusicDownload(){
musicDownloadScreen = new MusicDownloadScreen();
musicDownloadScreen.x = 680;
screenDisplay.addChild(musicDownloadScreen);
musicDownloadScreen.activate();
Tweener.addTween(musicDownloadScreen, {x:0, transition:"linear", time:2});
}
public static function stopFx(){
Tweener.addTween(fxTransform, {volume:0, time:1, onUpdate:function (){
fxChannel.soundTransform = fxTransform;
}, onComplete:function (){
fxChannel.stop();
}});
}
public static function loadSelect(){
levelSelect = new LevelSelect();
levelSelect.x = 680;
screenDisplay.addChild(levelSelect);
Tweener.addTween(levelSelect, {x:0, transition:"linear", time:2, onComplete:activateLevelSelect});
}
public static function clearLevelBrowse(){
screenDisplay.removeChild(levelBrowse);
levelBrowse = null;
}
public static function activateLevelSelect(){
levelSelect.activate();
}
public static function restartLevel(){
switchMusic();
prevLevel = currentLevel;
currentLevel = new LevelScreen(prevLevel.currentLevel, prevLevel.levelString, prevLevel.levelType);
currentLevel.y = -490;
screenDisplay.addChild(currentLevel);
Tweener.addTween(prevLevel, {y:490, transition:"linear", time:2, onComplete:clearLevel, onCompleteParams:[prevLevel]});
Tweener.addTween(currentLevel, {y:0, transition:"linear", time:2, onComplete:loadLevel});
}
public static function initiate(){
var _local1:int;
var _local2:int;
populateLevels();
interfaceDisplay.width = 680;
interfaceDisplay.height = 490;
PaymentManager.initialize();
checkForPurchases();
if (resumeLSO.data.previouslyViewed){
_local1 = 0;
while (_local1 < 21) {
levelInfo[_local1].beaten = resumeLSO.data.beatenArray[_local1];
levelInfo[_local1].isAvailable = resumeLSO.data.availableArray[_local1];
levelInfo[_local1].bestScore = resumeLSO.data.bestScoreArray[_local1];
_local1++;
};
lastSubmittedScore = resumeLSO.data.lastSubmittedScore;
} else {
resumeLSO.data.previouslyViewed = true;
resumeLSO.data.beatenArray = new Array();
resumeLSO.data.availableArray = new Array();
resumeLSO.data.bestScoreArray = new Array();
resumeLSO.data.lastSubmittedScore = 0;
_local2 = 0;
while (_local2 < 21) {
resumeLSO.data.beatenArray.push(false);
resumeLSO.data.availableArray.push(false);
resumeLSO.data.bestScoreArray.push(0);
_local2++;
};
resumeLSO.data.availableArray[0] = true;
};
}
public static function leaveMusicScreen(){
musicDownloadScreen.deactivate();
Tweener.addTween(musicDownloadScreen, {x:680, transition:"linear", time:2, onComplete:clearMusicScreen});
}
public static function setStage(_arg1){
managerStage = _arg1;
}
public static function backToTitle(){
leaveLevelSelect();
loadTitle();
}
public static function initiateMission(_arg1:int){
switchMusic();
currentState = LEVELSTATE;
currentLevel = new LevelScreen(_arg1, levelInfo[_arg1].levelString, 2);
currentLevel.x = -680;
screenDisplay.addChild(currentLevel);
Tweener.addTween(currentLevel, {x:0, transition:"linear", time:2, onComplete:loadLevel});
}
public static function musicToggle(_arg1:MouseEvent){
var e = _arg1;
if (musicButton.isOn){
musicButton.turnOff();
Tweener.addTween(musicTransform, {volume:0, time:1, onUpdate:function (){
musicChannel.soundTransform = musicTransform;
}, onComplete:function (){
musicChannel.stop();
}});
} else {
musicButton.turnOn();
startMusic();
};
}
public static function fxToggle(_arg1:MouseEvent){
var e = _arg1;
if (fxButton.isOn){
Tweener.addTween(fxTransform, {volume:0, time:1, onUpdate:function (){
fxChannel.soundTransform = fxTransform;
}, onComplete:function (){
fxChannel.stop();
}});
fxButton.turnOff();
} else {
fxButton.turnOn();
};
}
public static function initiateUserLevel(_arg1:String, _arg2:String, _arg3:int){
switchMusic();
userLevelName = _arg2;
userLevelId = _arg3;
currentState = LEVELSTATE;
currentLevel = new LevelScreen(-10, _arg1, 4);
currentLevel.x = -680;
screenDisplay.addChild(currentLevel);
Tweener.addTween(currentLevel, {x:0, transition:"linear", time:2, onComplete:loadLevel});
}
public static function leaveTitle(){
titleScreen.deactivate();
Tweener.addTween(titleScreen, {x:-680, transition:"linear", time:2, onComplete:clearTitle});
}
public static function startMusic(){
if (musicButton.isOn){
switch (currentState){
case TITLESTATE:
musicChannel = titleMusic.play(0, int.MAX_VALUE);
break;
case LEVELSTATE:
musicChannel = levelMusic.play(0, int.MAX_VALUE);
break;
case CREATESTATE:
musicChannel = createMusic.play(0, int.MAX_VALUE);
break;
case STORYSTATE:
musicChannel = storyMusic.play(0, int.MAX_VALUE);
break;
};
Tweener.addTween(musicTransform, {volume:1, time:3, onUpdate:function (){
musicChannel.soundTransform = musicTransform;
}});
};
}
public static function backFromMusic(){
leaveMusicScreen();
loadTitle();
}
public static function loadEditor(){
switchMusic();
currentState = CREATESTATE;
levelEditor = new LevelEditor();
levelEditor.x = 680;
screenDisplay.addChild(levelEditor);
Tweener.addTween(levelEditor, {x:0, transition:"linear", time:2, onComplete:activateEditor});
}
private static function populateLevels(){
var _local1:LevelData;
var _local2:int;
while (_local2 < 21) {
_local1 = new LevelData(_local2);
levelInfo.push(_local1);
_local2++;
};
}
public static function leaveLevelBrowse(){
levelBrowse.deactivate();
Tweener.addTween(levelBrowse, {x:680, transition:"linear", time:2, onComplete:clearLevelBrowse});
}
}
}//package
Section 97
//GoalDisplay (GoalDisplay)
package {
import flash.display.*;
import flash.text.*;
public dynamic class GoalDisplay extends MovieClip {
public var goalText:TextField;
}
}//package
Section 98
//GoalEffect (GoalEffect)
package {
import flash.geom.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.twoD.emitters.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.common.displayObjects.*;
public class GoalEffect {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var centerFire:Emitter2D;
public var implode:Emitter2D;
public var emitter:Emitter2D;
public function GoalEffect(_arg1:int, _arg2:int){
emitter = new Emitter2D();
centerFire = new Emitter2D();
implode = new Emitter2D();
super();
emitter.counter = new Blast(30);
emitter.addInitializer(new Lifetime(2, 3));
emitter.addInitializer(new SharedImage(new Dot(2)));
emitter.addInitializer(new ColorInit(4294902015, 4278255615));
emitter.addInitializer(new Velocity(new DiscZone(new Point(0, 0), 20, 1)));
emitter.addAction(new Age());
emitter.addAction(new Fade());
emitter.addAction(new RandomDrift(40, 40));
emitter.addAction(new SpeedLimit(20));
emitter.addAction(new Move());
emitter.x = _arg1;
emitter.y = _arg2;
emitter.start();
centerFire.counter = new Blast(1);
centerFire.addInitializer(new Lifetime(0.5, 0.5));
centerFire.addInitializer(new SharedImage(new RadialDot(10)));
centerFire.addAction(new Age());
centerFire.addAction(new Move());
centerFire.addAction(new ColorChange(4278190335, 0xFFFFFF));
centerFire.addAction(new ScaleImage(1, 10));
centerFire.x = _arg1;
centerFire.y = _arg2;
centerFire.start();
implode.counter = new Blast(1);
implode.addInitializer(new Lifetime(0.5, 0.5));
implode.addInitializer(new SharedImage(new RadialDot(10)));
implode.addAction(new Age());
implode.addAction(new Move());
implode.addAction(new ColorChange(4281532569, 0xFFFFFF));
implode.addAction(new ScaleImage(10, 1));
implode.x = _arg1;
implode.y = _arg2;
implode.start();
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
}
}//package
Section 99
//GrassBackground (GrassBackground)
package {
import flash.display.*;
public dynamic class GrassBackground extends Sprite {
}
}//package
Section 100
//HighScoreButton (HighScoreButton)
package {
import flash.display.*;
public dynamic class HighScoreButton extends SimpleButton {
}
}//package
Section 101
//HomingMissle (HomingMissle)
package {
public class HomingMissle extends Unit {
private var currentVY:Number;// = 0
private var currentVX:Number;// = 0
public var distanceTravelled:Number;// = 0
public var moveDirection:int;// = 1
public function HomingMissle(_arg1:int, _arg2:int, _arg3:int){
clip = new HomingMissleClip();
super(_arg2, _arg3);
unitID = _arg1;
typeOfUnit = MISSLE_TYPE;
maxhealth = 49;
health = maxhealth;
currentSpeed = 1.25;
rotateSpeed = 0;
turretRotationSpeed = 0;
range = 800;
shotRecovery = 0;
currentRecovery = 0;
doesMove = true;
doesFire = false;
clearedBuilder = false;
}
public function moveMe(){
var _local1:* = Math.atan2((closestEnemyY - clip.y), (closestEnemyX - clip.x));
var _local2:Number = (Math.cos(_local1) * currentSpeed);
var _local3:Number = (Math.sin(_local1) * currentSpeed);
if (closestEnemyID != NOENEMY){
if (_local2 >= 0){
if ((clip.x + _local2) > closestEnemyX){
clip.x = closestEnemyX;
} else {
clip.x = (clip.x + _local2);
};
} else {
if (_local2 < 0){
if ((clip.x + _local2) < closestEnemyX){
clip.x = closestEnemyX;
} else {
clip.x = (clip.x + _local2);
};
};
};
if (_local3 >= 0){
if ((clip.y + _local3) > closestEnemyY){
clip.y = closestEnemyY;
} else {
clip.y = (clip.y + _local3);
};
} else {
if (_local3 < 0){
if ((clip.y + _local3) < closestEnemyY){
clip.y = closestEnemyY;
} else {
clip.y = (clip.y + _local3);
};
};
};
clip.rotation = getTargetRotation((closestEnemyX - clip.x), (closestEnemyY - clip.y));
currentVX = _local2;
currentVY = _local3;
} else {
clip.x = (clip.x + currentVX);
clip.y = (clip.y + currentVY);
};
if (!clearedBuilder){
distanceTravelled = (distanceTravelled + currentSpeed);
if (distanceTravelled >= 30){
clearedBuilder = true;
};
};
}
}
}//package
Section 102
//HomingMissleBuilder (HomingMissleBuilder)
package {
import mochi.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class HomingMissleBuilder extends Unit {
public var buildStatus:int;// = 14
public var buildProgress:int;// = 0
public var buildTime:int;// = 200
public var launchDirection:int;// = 1
public var tempUnit:HomingMissle;
public function HomingMissleBuilder(_arg1:int, _arg2:int, _arg3:int){
clip = new HomingMissleBuilderClip();
super(_arg2, _arg3);
unitID = _arg1;
typeOfUnit = BUILDER_TYPE;
maxhealth = 100;
health = maxhealth;
currentSpeed = 0;
rotateSpeed = 0;
turretRotationSpeed = 50;
range = 300;
shotRecovery = 0;
currentRecovery = 0;
doesMove = false;
doesFire = false;
doesBuild = true;
hasTurret = true;
clearedBuilder = true;
}
public function buildUpdate(){
targetEnemy(clip, clip.tankTurret);
if ((((buildProgress >= buildTime)) && (!((closestEnemyID == NOENEMY))))){
buildStatus = BUILD_COMPLETE;
tempUnit = new HomingMissle(0, clip.x, clip.y);
buildProgress = 0;
} else {
if (buildProgress <= buildTime){
buildProgress++;
buildStatus = BUILDING;
};
};
}
}
}//package
Section 103
//HomingMissleBuilderClip (HomingMissleBuilderClip)
package {
import flash.display.*;
public dynamic class HomingMissleBuilderClip extends MovieClip {
public var tankTurret:HomingTurret;
public function HomingMissleBuilderClip(){
addFrameScript(0, frame1, 10, frame11, 23, frame24);
}
function frame1(){
stop();
}
function frame11(){
stop();
}
function frame24(){
gotoAndStop("normal");
}
}
}//package
Section 104
//HomingMissleClip (HomingMissleClip)
package {
import flash.display.*;
public dynamic class HomingMissleClip extends MovieClip {
public function HomingMissleClip(){
addFrameScript(5, frame6, 16, frame17, 29, frame30);
}
function frame6(){
gotoAndPlay("normal");
}
function frame30(){
gotoAndPlay("normal");
}
function frame17(){
stop();
}
}
}//package
Section 105
//HomingTurret (HomingTurret)
package {
import flash.display.*;
public dynamic class HomingTurret extends MovieClip {
public function HomingTurret(){
addFrameScript(0, frame1, 3, frame4, 9, frame10);
}
function frame10(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
function frame4(){
gotoAndStop("normal");
}
}
}//package
Section 106
//HoverClip (HoverClip)
package {
import flash.display.*;
public dynamic class HoverClip extends MovieClip {
}
}//package
Section 107
//HoverEditor (HoverEditor)
package {
import flash.display.*;
public dynamic class HoverEditor extends MovieClip {
public var badSpot:DeleteIcon;
public function HoverEditor(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 108
//ImportScreen (ImportScreen)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ImportScreen extends Sprite {
public var levelCodeText:TextField;
public var codeErrorText:TextField;
public var cancelButton:CancelButton;
public var okButton:OkButton;
}
}//package
Section 109
//InterfaceChrome (InterfaceChrome)
package {
import flash.display.*;
public dynamic class InterfaceChrome extends Sprite {
public var ssLink:SSLink;
}
}//package
Section 110
//IntroFade (IntroFade)
package {
import flash.display.*;
public dynamic class IntroFade extends MovieClip {
}
}//package
Section 111
//IntroScreen (IntroScreen)
package {
import flash.display.*;
public dynamic class IntroScreen extends MovieClip {
public var introFade:IntroFade;
public var ssLogoButton:SSLogoButton;
}
}//package
Section 112
//Kamikaze (Kamikaze)
package {
public class Kamikaze extends Unit {
public var distanceTravelled:Number;// = 0
public var moveDirection:int;// = 1
public function Kamikaze(_arg1:int, _arg2:int, _arg3:int, _arg4:int){
clip = new KamikazeClip();
super(_arg2, _arg3);
unitID = _arg1;
typeOfUnit = MISSLE_TYPE;
maxhealth = 49;
health = maxhealth;
currentSpeed = 3;
rotateSpeed = 0;
turretRotationSpeed = 0;
range = 0;
shotRecovery = 0;
currentRecovery = 0;
doesMove = true;
doesFire = false;
clearedBuilder = false;
moveDirection = _arg4;
switch (moveDirection){
case RIGHT:
clip.rotation = 90;
break;
case LEFT:
clip.rotation = -90;
break;
case UP:
clip.rotation = 0;
break;
case DOWN:
clip.rotation = 180;
break;
};
}
public function moveMe(){
switch (moveDirection){
case RIGHT:
clip.x = (clip.x + currentSpeed);
break;
case LEFT:
clip.x = (clip.x - currentSpeed);
break;
case UP:
clip.y = (clip.y - currentSpeed);
break;
case DOWN:
clip.y = (clip.y + currentSpeed);
break;
};
if (!clearedBuilder){
distanceTravelled = (distanceTravelled + currentSpeed);
if (distanceTravelled > COLLISIONDISTANCE){
clearedBuilder = true;
};
};
}
}
}//package
Section 113
//KamikazeBuilder (KamikazeBuilder)
package {
public class KamikazeBuilder extends Unit {
public var buildStatus:int;// = 14
public var buildProgress:int;// = 0
public var buildTime:int;// = 220
public var launchDirection:int;// = 1
public var tempUnit:Kamikaze;
public function KamikazeBuilder(_arg1:int, _arg2:int, _arg3:int, _arg4:int){
clip = new KamikazeBuilderClip();
super(_arg2, _arg3);
unitID = _arg1;
typeOfUnit = BUILDER_TYPE;
maxhealth = 100;
health = maxhealth;
currentSpeed = 0;
rotateSpeed = 0;
turretRotationSpeed = 0;
range = 0;
shotRecovery = 0;
currentRecovery = 0;
doesMove = false;
doesFire = false;
doesBuild = true;
clearedBuilder = true;
launchDirection = _arg4;
switch (launchDirection){
case RIGHT:
clip.rotation = 90;
break;
case LEFT:
clip.rotation = -90;
break;
case UP:
clip.rotation = 0;
break;
case DOWN:
clip.rotation = 180;
break;
};
}
public function buildUpdate(){
if (buildProgress >= buildTime){
buildStatus = BUILD_COMPLETE;
tempUnit = new Kamikaze(0, clip.x, clip.y, launchDirection);
buildProgress = 0;
} else {
buildProgress++;
};
}
}
}//package
Section 114
//KamikazeBuilderClip (KamikazeBuilderClip)
package {
import flash.display.*;
public dynamic class KamikazeBuilderClip extends MovieClip {
public function KamikazeBuilderClip(){
addFrameScript(0, frame1, 6, frame7, 16, frame17, 29, frame30);
}
function frame30(){
gotoAndStop("normal");
}
function frame7(){
gotoAndStop("normal");
}
function frame17(){
stop();
}
function frame1(){
stop();
}
}
}//package
Section 115
//KamikazeClip (KamikazeClip)
package {
import flash.display.*;
public dynamic class KamikazeClip extends MovieClip {
public function KamikazeClip(){
addFrameScript(5, frame6, 15, frame16, 28, frame29);
}
function frame6(){
gotoAndPlay("normal");
}
function frame16(){
stop();
}
function frame29(){
gotoAndPlay("normal");
}
}
}//package
Section 116
//LayoutGrid (LayoutGrid)
package {
import flash.display.*;
public dynamic class LayoutGrid extends MovieClip {
public function LayoutGrid(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
}
}//package
Section 117
//LevEdExit (LevEdExit)
package {
import flash.display.*;
public dynamic class LevEdExit extends SimpleButton {
}
}//package
Section 118
//LevEdExport (LevEdExport)
package {
import flash.display.*;
public dynamic class LevEdExport extends SimpleButton {
}
}//package
Section 119
//LevEdHunters (LevEdHunters)
package {
import flash.display.*;
public dynamic class LevEdHunters extends SimpleButton {
}
}//package
Section 120
//LevEdImport (LevEdImport)
package {
import flash.display.*;
public dynamic class LevEdImport extends SimpleButton {
}
}//package
Section 121
//LevEdLaunchers (LevEdLaunchers)
package {
import flash.display.*;
public dynamic class LevEdLaunchers extends SimpleButton {
}
}//package
Section 122
//LevEdObstacles (LevEdObstacles)
package {
import flash.display.*;
public dynamic class LevEdObstacles extends SimpleButton {
}
}//package
Section 123
//LevEdPatrollers (LevEdPatrollers)
package {
import flash.display.*;
public dynamic class LevEdPatrollers extends SimpleButton {
}
}//package
Section 124
//LevEdPowerUps (LevEdPowerUps)
package {
import flash.display.*;
public dynamic class LevEdPowerUps extends SimpleButton {
}
}//package
Section 125
//LevEdSentries (LevEdSentries)
package {
import flash.display.*;
public dynamic class LevEdSentries extends SimpleButton {
}
}//package
Section 126
//LevEdTest (LevEdTest)
package {
import flash.display.*;
public dynamic class LevEdTest extends SimpleButton {
}
}//package
Section 127
//LevelBrowse (LevelBrowse)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import mochi.*;
import flash.text.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class LevelBrowse extends Sprite {
const CRATE_TANK:int = 17;
const IN_PROGRESS:int = 2;
const BUILD_COMPLETE:int = 15;
const PATROLLER_TYPE:int = 112;
const HALFCELL:int = 15;
const LEFT:int = 3;
const CRATEMONEYADDED:int = 100;
const HORIZONTAL:int = 6;
const TANKMOVEOFFSET:int = 10;
const HUDDEPTH:int = 0;
const WATER_TOPRIGHT:int = 80;
const EDITORREMOVE:int = 13;
const BUILDTANK:int = 6;
const HUDOFFSET:int = 20;
const SHELLFIRE:int = 3;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const TREE2:int = 92;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TWO_MEGATON:int = 15;
const TURNER_TYPE:int = 111;
const LAST_LEVEL:int = 10;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const RATE_1:int = 120;
const RATE_2:int = 100;
const RATE_3:int = 70;
const RATE_4:int = 30;
const DOWN:int = 2;
const MOVEMENT_GOAL:int = 10;
const WONLEVEL:int = 15;
const WATER_RIGHT:int = 77;
const WATER_TOPRIGHTLEFT:int = 86;
const STORYSTATE:int = 4;
const LOADERROR:int = 14;
const LEVELTHEME:int = 2;
const PATROLLER_LEFT:int = 43;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const CRATE_MONEY:int = 15;
const COLLISIONDISTANCE:int = 20;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const ARMOR_3:int = 200;
const ARMOR_4:int = 400;
const DROP_NO:int = 30;
const LEVEL_WON:int = 3;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const STATION_SPEED:int = 19;
const TURNER_LEFT_RIGHT:int = 52;
const MAXDISTANCE:int = 10000;
const SENTRY_HARD:int = 27;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const TURNER_DOWN_LEFT:int = 55;
const PLAYER1:int = 1;
const PATROLLER_DOWN:int = 42;
const TANK_TYPE:int = 100;
const WATER_TYPE:int = 90;
const BUILDER_TYPE:int = 103;
const RANGECONTROL:int = 4;
const OFFSETDISTANCE:int = 10;
const RANGE_1:int = 80;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const FOUR_MEGATON:int = 40;
const PATHDEPTH:int = 0;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const TRANSMISSION:int = 17;
const UPPERHUDOFFSET:int = -20;
const TITLE_STARTGAME:int = 1;
const KAMIKAZE_DOWN:int = 32;
const MOVINGDOWN:int = 2;
const ATTACKCONTROL:int = 2;
const ATTACK_LASER:int = 25;
const WATER_TOP:int = 76;
const STORYTHEME:int = 4;
const HOMINGMISSLEBUILDER:int = 45;
const RIGHT:int = 1;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const LEVELTEXTSIZE:int = 12;
const SPEED_1:Number = 1.25;
const SPEED_3:Number = 2.5;
const SPEED_4:Number = 4;
const SPEED_2:Number = 1.75;
const TURNING:int = 6;
const BUILDTIME:int = 80;
const MISSION_TYPE:int = 2;
const KAMIKAZE_RIGHT:int = 31;
const STATION_RANGE:int = 23;
const STATION_ARMOR:int = 20;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const WAITING:int = 9;
const NOENEMY:int = -50;
const WATER_LEFT:int = 79;
const WATER_TOPBOTTOM:int = 81;
const WATER_TOPBOTTOMLEFT:int = 85;
const MOVINGRIGHT:int = 1;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const UP:int = 4;
const ADD_MODE:int = 2;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const BUILDING:int = 14;
const UNITEXPLODE:int = 5;
const NODIRECTION:int = 0;
const LOSTLEVEL:int = 16;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const HUNTER_SET:int = 4;
const SELECT_MODE:int = 1;
const MENU_RESUME:int = 1;
const GOAL:int = 11;
const ATTACK_NO:int = 20;
const COMPUTER:int = 2;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const LAUNCHER_SET:int = 1;
const TURNER_RIGHT_RIGHT:int = 50;
const SCORETEXTSIZE:int = 10;
const SPEEDCONTROL:int = 0;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const ARMORCONTROL:int = 1;
const DAMAGE_1:Number = 1;
const DAMAGE_2:Number = 1.25;
const DAMAGE_3:Number = 1.75;
const DAMAGE_4:Number = 2.5;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const MOVINGUP:int = 4;
const WATER_TOPLEFT:int = 82;
const VERTICAL:int = 5;
const BUILD_STARTED:int = 16;
const BUILDER:int = 10;
const LEVELSTATE:int = 2;
const EDITORPLACE:int = 12;
const SENTRY_TYPE:int = 102;
const DROP_MINE:int = 35;
const DELETE_MODE:int = 3;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const WATER_RIGHTBOTTOM:int = 88;
const SENTRY_SET:int = 2;
const PATROLLER_UP:int = 40;
const SHELLLAND:int = 4;
public var createdText:TextField;
public var sortSelect:SortSelect;
public var ratingText:TextField;
public var sharePrevButton:SharePrevButton;
public var backToTitleButton:BackTitleButton;
private var numLevels:int;// = 15
private var userLevels:Array;
private var levelLoadClip:LevelLoadingClip;
public var shareNextButton:ShareNextButton;
public var authorText:TextField;
public var createdByButton:CreatedByButton;
public var winPercentText:TextField;
private var levelNames:Array;
private var currentSortType:String;// = "mostrecent"
private var startPos:int;// = 0
public var recentSortButton:RecentSortButton;
private var levelMarkers:Array;
private var delayTimer:Timer;
public var randomSortButton:RandomSortButton;
public var levelLayout:Array;
public var ratingSortButton:RatingSortButton;
public function LevelBrowse(){
levelMarkers = new Array();
userLevels = new Array();
levelNames = new Array();
levelLayout = new Array();
delayTimer = new Timer(500, 2);
levelLoadClip = new LevelLoadingClip();
super();
}
private function shareNextClicked(_arg1:MouseEvent){
startPos = (startPos + 15);
sharePrevButton.visible = true;
getLevelsFromDB(currentSortType, startPos);
}
public function deactivate(){
var _local1:int = levelMarkers.length;
var _local2:int;
while (_local2 < _local1) {
levelMarkers[_local2].deactivate();
_local2++;
};
createdByButton.removeEventListener(MouseEvent.CLICK, createdByClicked);
backToTitleButton.removeEventListener(MouseEvent.CLICK, backTitleClicked);
shareNextButton.removeEventListener(MouseEvent.CLICK, shareNextClicked);
sharePrevButton.removeEventListener(MouseEvent.CLICK, sharePrevClicked);
randomSortButton.removeEventListener(MouseEvent.CLICK, randomSortClicked);
recentSortButton.removeEventListener(MouseEvent.CLICK, recentSortClicked);
ratingSortButton.removeEventListener(MouseEvent.CLICK, ratingSortClicked);
}
public function activate(){
sharePrevButton.visible = false;
populateMarkers();
if (GameManager.userLevelSubmit){
GameManager.userLevelSubmit = false;
submitRatingToDB();
} else {
getLevelsFromDB(currentSortType, startPos);
};
createdByButton.addEventListener(MouseEvent.CLICK, createdByClicked);
backToTitleButton.addEventListener(MouseEvent.CLICK, backTitleClicked);
shareNextButton.addEventListener(MouseEvent.CLICK, shareNextClicked);
sharePrevButton.addEventListener(MouseEvent.CLICK, sharePrevClicked);
randomSortButton.addEventListener(MouseEvent.CLICK, randomSortClicked);
recentSortButton.addEventListener(MouseEvent.CLICK, recentSortClicked);
ratingSortButton.addEventListener(MouseEvent.CLICK, ratingSortClicked);
}
private function sharePrevClicked(_arg1:MouseEvent){
startPos = (startPos - 15);
if (startPos == 0){
sharePrevButton.visible = false;
};
getLevelsFromDB(currentSortType, startPos);
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
private function backTitleClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
GameManager.backFromBrowse();
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
private function shareLevelTimerFired(_arg1:TimerEvent){
if (LevelShareManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, shareLevelTimerFired);
removeChild(levelLoadClip);
userLevels = LevelShareManager.userLevels;
resetMarkers();
} else {
delayTimer.reset();
delayTimer.start();
};
}
private function submitRatingToDB():void{
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, submitRatingTimerFired);
delayTimer.start();
addChild(levelLoadClip);
LevelShareManager.submitRating(GameManager.userLevelId, GameManager.userLevelRatings, GameManager.userLevelPlays, GameManager.userLevelWins);
}
private function createdByClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
}
private function submitRatingTimerFired(_arg1:TimerEvent){
if (LevelShareManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, submitRatingTimerFired);
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, shareLevelTimerFired);
delayTimer.start();
LevelShareManager.retrieveLevels(currentSortType, startPos);
} else {
delayTimer.reset();
delayTimer.start();
};
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
private function getLevelsFromDB(_arg1:String, _arg2:int):void{
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, shareLevelTimerFired);
delayTimer.start();
addChild(levelLoadClip);
LevelShareManager.retrieveLevels(_arg1, _arg2);
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
private function ratingSortClicked(_arg1:MouseEvent){
currentSortType = "highestrating";
sortSelect.x = 484;
newSort();
}
private function resetMarkers(){
numLevels = 15;
if (userLevels.length < numLevels){
numLevels = userLevels.length;
shareNextButton.visible = false;
} else {
shareNextButton.visible = true;
};
var _local1:int;
while (_local1 < 15) {
if (_local1 < numLevels){
levelMarkers[_local1].levelId = userLevels[_local1].id;
levelMarkers[_local1].levelName = userLevels[_local1].levelName;
levelMarkers[_local1].levelData = userLevels[_local1].levelData;
levelMarkers[_local1].levelLabel.text = userLevels[_local1].levelName;
levelMarkers[_local1].levelAuthor = userLevels[_local1].author;
levelMarkers[_local1].levelCreateDate = userLevels[_local1].created;
levelMarkers[_local1].levelRatings = userLevels[_local1].rating;
levelMarkers[_local1].levelPlays = userLevels[_local1].plays;
levelMarkers[_local1].levelWins = userLevels[_local1].wins;
levelMarkers[_local1].setLayoutArray();
levelMarkers[_local1].visible = true;
} else {
levelMarkers[_local1].visible = false;
};
_local1++;
};
}
public function populateMarkers(){
var _local1:ShareMarker;
var _local4:int;
var _local5:LayoutGrid;
var _local2:int;
while (_local2 < 15) {
_local1 = new ShareMarker();
_local1.x = 30;
_local1.y = ((_local2 * 16.5) + 175);
addChild(_local1);
levelMarkers.push(_local1);
_local2++;
};
var _local3:int = levelMarkers.length;
_local2 = 0;
while (_local2 < _local3) {
levelMarkers[_local2].activate();
_local2++;
};
_local2 = 0;
while (_local2 < FIELDWIDTH) {
levelLayout[_local2] = new Array();
_local4 = 0;
while (_local4 < FIELDHEIGHT) {
_local5 = new LayoutGrid();
_local5.gotoAndStop("unknown");
_local5.x = ((_local2 * 20) + 195);
_local5.y = ((_local4 * 20) + 160);
addChild(_local5);
levelLayout[_local2].push(_local5);
_local4++;
};
_local2++;
};
}
private function recentSortClicked(_arg1:MouseEvent){
currentSortType = "mostrecent";
sortSelect.x = 313;
newSort();
}
private function newSort(){
startPos = 0;
getLevelsFromDB(currentSortType, startPos);
}
private function startGame(_arg1:MouseEvent){
deactivate();
}
private function randomSortClicked(_arg1:MouseEvent){
currentSortType = "random";
sortSelect.x = 135;
newSort();
}
}
}//package
Section 128
//LevelClickFX (LevelClickFX)
package {
import flash.media.*;
public dynamic class LevelClickFX extends Sound {
}
}//package
Section 129
//LevelData (LevelData)
package {
import mochi.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class LevelData {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var levelNumber:int;// = 0
public var levelName:String;
public var levelTime:int;// = 0
public var isAvailable:Boolean;// = false
public var tanksToSave:int;// = 1
public var beaten:Boolean;// = false
public var levelString:String;
public var levelBonus:int;// = 0
public var bestScore:int;// = 0
public var levelLayoutArray:Array;
public var startingCash:int;// = 100
public var tanksAlotted:int;// = 1
public function LevelData(_arg1:int){
levelLayoutArray = new Array();
super();
levelNumber = _arg1;
populateLevel();
}
public function activate(){
}
public function populateLevel(){
var _local3:Array;
var _local1:int;
var _local2:int;
switch (levelNumber){
case 0:
levelName = "Training Time";
levelTime = 300;
levelBonus = 100;
isAvailable = true;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "827979797979798383838389x767072717270889100000081x767473727478000000100081x767071737488000000000081x767372747800000000000081x767374727891001900008278x767071707800000000007678x767173747800000000007678x767777777800000082797078x810000008100000076737278x810025008100000076717278x810000008100000076737278x767979838800000076777788x767788140000000081000000x810000000000000081002500x810013000000008278000000x810000000000827173797989x810000009100767472737178x810000000000767374737178x810011008279727172747178x810000007673707374727478x808383837777777777777788x4x3x150";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 1:
levelName = "Open Fire";
levelTime = 300;
levelBonus = 100;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "827979797983838383838389x767377778800009100000081x767800000000000000100081x767800000091000000000081x767800910000000000000081x767800000000000000008278x767891009100850000007678x767800919182780000007678x767891919180780000008078x767800000032810000000081x767479797979708900000081x767172737470717289000081x767377777777747078000081x767800000000767178000081x767800110000807288000081x767800000091008400000081x767800000000000000000081x767800000000000000000081x767800910000004100910081x767800000000000000000081x767379797989000000000081x807777777777838383838388x3x2x150";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 2:
levelName = "The Patrollers";
levelTime = 300;
levelBonus = 100;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "000000000000000000910000x001000000000000000000000x000000000000410000000000x850000000000000000000000x810000000000000000000000x810000000000000091000000x810000000000000000000000x811582797979890000000000x810076707172778700000000x810076737478000000000000x810076707178000040000000x810076727378009100000000x810076747078000000009100x810076717288000042000000x810080777800000000000000x810000178100000000000085x767989008100000000000081x767788008100910000000081x810000008100000000000081x810086838800430000110081x810000000000850000000081x808383838383778383838388x3x3x50";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 3:
levelName = "Pathfinder";
levelTime = 300;
levelBonus = 100;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "827983838383838383838389x767800000000000000000081x767800827979797979890081x767800767374707172780081x768819807374707172780081x810000008077777777880081x810010002000000000000081x810000008283870082890081x768923827800000076780081x767800767800827973780081x767800767800767777881581x767800767800815000000081x807800768800810000200081x258100812500810000000081x827800768900810000210081x767800767800810000000081x767800767800810000230081x768800807800810000000081x810000008400840000220081x810011000000000000000081x810000008279890000000081x808383837777778383838388x5x5x50";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 4:
levelName = "Rocket Garden";
levelTime = 300;
levelBonus = 200;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "910000000000000000000091x000000000000000000000000x000000000000100000000000x000000000000000000000000x000000000000000000000000x000000000000000000000000x000091827979797979899100x000082707777777777718900x000076783300000033767800x000076780000000000767800x000076783000110032767800x000076780000008500767800x000076783100008131767800x000080727989007679738800x000091807788008077889100x000000000000000000000000x000000000000000000000000x000000000000000000000000x000000000000000000000000x000000000000000000000000x000000000000000000000000x910000000000000000000091x3x3x120";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 5:
levelName = "Sacrifices";
levelTime = 300;
levelBonus = 200;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "000091000053000000000000x000000000000000000000000x009100000000000091000000x000000000000000000000000x000000009100000000000052x000000000000000000000000x001000000000000091000000x000000000051000000000000x000000130000000000000000x827989008279797989004200x767078007671727378000000x767478007670717278000091x767788008073747078000000x810000000076717278000000x810000000076737478009100x810000000080777788000000x810000000000000013420000x810000000082797989000000x810000000076707178000000x810000000076727378001100x810000000076747078000000x808383838377777777838387x5x2x40";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 6:
levelName = "Fight or Flight";
levelTime = 300;
levelBonus = 300;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "000000000000000000000000x008517919191919191919100x008122919191919110919100x008121919191919100919100x008120232221202300191900x007679797979797979798900x007673747071727374707800x007677777777777777717800x008100000053000000767800x008100910000009100767800x008400000000000000808800x560050000011000052000054x008500000000000000828900x008100910000009100767800x008100000051000000767800x007679797979797979727800x007673747071727374707800x007671727374707172737800x007674707172737470717800x007672737470717273747800x008077777777777777778800x000000000000000000000000x3x3x0";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 7:
levelName = "Scatter Scramble";
levelTime = 300;
levelBonus = 300;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "919191919191919191919191x911000190019001900000091x910000000000000000000091x911900250000250000250091x910000000000000000000091x911900000000000000000091x910000000000000000000091x911900250000250000250091x910000000000000000000091x910000000000000000000091x910000000000000000000091x910000250000250000250091x910000000000000000000091x910000000000000000000091x910000000000000000000091x910000250000250000250091x910000000000000000000091x910000000000000000000091x910000000000000000000091x910000250000250000110091x910000000000000000000091x919191919191919191919191x10x7x0";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 8:
levelName = "Homing Missle Dodgeball";
levelTime = 300;
levelBonus = 300;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "008279890000008279890091x007677880010008077780091x008100000000000000810091x008100000000000000810091x008100910000001700814591x008100000000000000810091x008100000000000000810091x458100190000009100810091x008100000000000000810091x008100000000000000810091x008100910000001400810091x008100000000000000810091x008100000000000000810091x458100200000009100810091x008100000000000000810091x008100000000000000810091x008100910000001500814591x008100000000000000810091x008100000000000000810091x008100000011000000810091x007679890000008279780091x008077880045008077880091x3x3x50";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 9:
levelName = "Back Attack";
levelTime = 300;
levelBonus = 300;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "919191919191919100919191x910000002000190010009191x910091919191919100919191x910000000000000000000000x910000000000000000000045x910000000000434100000000x910000000000000000000000x910000000000000000000000x910000000000000000000000x910000000000000000000000x910000000000000000000045x910000000000000000000000x910000000000000000000000x910000000000000000000000x910000000000000000000000x910000004341000000000000x910000000000000000000045x910000000000000000000000x910000000000000000000000x919191919191919100919191x919191919191910011009191x919191919191919100919191x4x3x100";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 10:
levelName = "SuperTank";
levelTime = 300;
levelBonus = 200;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "827979798900000082797989x767173747800100076727178x767472707800000076727178x767273707800000076747378x767073727800190076707378x767473717800000076727478x767271727800190076737278x767174737800000076747178x767271727800190076707378x767277778800000080777778x767820000000000000002281x767800000000000000000081x767800000000000000000081x767800002525252525000081x767800002500000025000081x767800002500110025000081x767800002500000025000081x767800002525252525000081x767800000000000000000081x767800000000000000000081x767821000000000000002381x807783838383838383838388x2x1x0";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 11:
levelName = "Grab and Go";
levelTime = 300;
levelBonus = 300;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "827979797979797983838389x767071777777778800000081x767288000000000000100081x768800000000000000000081x810000000000000000000081x810000000082890082797978x810000008273780076747078x810000007671780076727378x810042007674780080777778x810000007670780000005381x810000007671780015000081x810040007672780000170081x810000007673780014000081x810000007674780000000081x810042007670717979797978x810000007672737470717278x810000007673747071727378x810000008077777777777478x810000000000000000007678x810025000025000011007678x810000000000000000007678x808383838383838383837788x1x1x10";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 12:
levelName = "The Hunters";
levelTime = 300;
levelBonus = 400;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "000000867979797979797989x001000008072737470717278x000000000080777777737478x009100000000530000767078x000000000000000000767178x000000000000000000767278x850000000000000000767378x768900000000000000767478x767800000000000000767078x767189910000000000767278x767378000000000000807478x767078000000000000007678x767178000082798900007678x767278000076777800007678x767378560081458100007678x767478000076797800008078x767078000080778800000081x767178000000000000000081x767278000000000000000084x767378000000000000110000x767470798900000091000000x807777777783870000570000x5x3x100";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 13:
levelName = "Hedge Maze";
levelTime = 300;
levelBonus = 400;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "000000919191919191919191x001000000000000000001991x000000910000910091910091x910091919191910026910091x910000000091000000000091x919191910091009191910091x912600000000009100000091x919191910091919100919191x910000000000009100000091x910091918283838389910000x910000008100000084919100x919191148100110000009100x910000008100000085009100x910091008083838388009100x910091009100000000009100x910091009191910091919100x912691009100000026910000x919191009100919191910091x910000009100000000000091x910091919191009191910091x912100000000000000002091x919191919191919191919191x1x1x50";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 14:
levelName = "Waterways";
levelTime = 300;
levelBonus = 500;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "827979797979838387000000x767372747378000000001000x767777777178008289000000x810000008088007670797989x810025000000007674737078x810057008289007672717788x768900827088008077880000x767800767800000000000015x767800768800867979890000x767800840000008077778700x767800000025000000000000x808800850057008279798941x000000768900827170748800x170000808800807777880000x000000000000000000000015x827989008279870086890000x767078008088005300808387x767478000000002500000000x807777797989000000828900x000000807777838383778800x001100000000000000000000x000000868383838383838387x6x4x40";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 15:
levelName = "The Stealthy Forest";
levelTime = 300;
levelBonus = 500;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "919191919191000000000000x919191910000000000000000x919191000010000000001300x919191000000000000000000x919191910000000000000000x000091910000000091910000x000091919125919191910000x000091919191919191910000x000091919191919191910000x000091919191919191910000x000091910091919191000013x000091910000000000000000x005491320000000000000000x000091910000000000000000x000091919191000000003391x000091919191001300009191x000091910000000000002691x000091000000000000000091x919191000000000000009191x919191320011000000009191x919100000000000000919191x919100000000000000919191x4x3x60";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 16:
levelName = "The Gauntlet";
levelTime = 300;
levelBonus = 600;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "828383838383838383837989x811000000000000000007678x768383837979797989007678x811100007673747788008088x768387008077784200000000x810000000000768387008687x810000000000810042000000x810000000000768387008687x810000570000810000420000x767989008279718387008687x767788008077780000004200x810000510000767989008289x810000000000767278007678x810000000000767378007678x810000000000767178007678x767989008279747788008088x767178007670780000000000x767178008077880014001400x767378000000000000170000x767173797979890014001400x767472747170780000000000x807777777777778383838387x6x4x120";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 17:
levelName = "Rocket Chaser";
levelTime = 300;
levelBonus = 500;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "919191919191919131919191x911100000000000000000091x910000000000000000000091x919191009191919100919191x910091009100009100919191x912691009126009100919191x910091009100009100919191x919191009191919100919191x320000000000000000000030x919191009191919100919191x910091009100009100919191x912691009126009100919191x910091009100009100919191x919191009191919100919191x320000000000000000000030x919191009191919100919191x910091009100009100919191x912691009126009100919191x910091009100009100919191x919191009191919100919191x320000000000000000001091x919191339191919191919191x3x3x300";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 18:
levelName = "Formalities";
levelTime = 300;
levelBonus = 600;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "250000000000000000000025x910000000000000000000091x911382837983798379890091x910081008426840076780091x910081009191910076780091x910081419120000076780091x910081009100000076780091x910081000000000076780091x850080838900750076780091x810000008100000080880091x815211008100100000150091x810000008100000082890091x840082838800750076780091x910081000000000076780091x910081009100000076780091x910081439121000076780091x910081009191910076780091x910081008526850076780091x911380837783778377880091x910000000000000000000091x910000000000000000000091x250000000000000000000025x6x3x100";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 19:
levelName = "A Sinister Island";
levelTime = 300;
levelBonus = 600;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "000000000000827979797989x001000000000767172717378x000000828900767170717278x827979707800767170737278x767173707800767173707178x767473778800807473747078x767788000000008074707378x810000000000000076747278x810000000000000076737278x810082798900000080777778x810076737800000000003081x810080778800750000868378x815600000000000000003081x810000828900750000868378x810000808800000000003081x767989000000000000827978x767178000052008500767278x767072797979797800767078x807777717071747800767178x000000807777778800767378x001100000000000000767278x000000000000000000807788x2x2x80";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
case 20:
levelName = "The Final Battle";
levelTime = 300;
levelBonus = 800;
isAvailable = false;
tanksAlotted = 5;
tanksToSave = 5;
startingCash = 100;
levelString = "000000000000008689000000x001000000000004581561154x000000000000008278000000x853191319191007678138289x810000002600007678007678x810091008500008078008078x810091008100003081432681x810025008100008678008288x810085008400912681008125x810084004500002681138125x810025008500008678008125x810091008400003081008089x810091002500002581412681x810000009100009181008278x813325332600002684258078x819100252633332625009181x819100252543432525009181x819100252582892525009181x819154002576782500509181x819100252580882525009181x819100002500002500009181x808383838383838383838388x15x10x850";
_local3 = new Array();
_local3 = levelString.split("x");
_local3.splice(22, 3);
_local1 = 0;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local2 = 0;
while (_local2 < 24) {
if ((_local2 % 2) == 0){
levelLayoutArray[_local1][(_local2 / 2)] = ((int(_local3[_local1].charAt(_local2)) * 10) + int(_local3[_local1].charAt((_local2 + 1))));
};
_local2++;
};
_local1++;
};
break;
};
}
}
}//package
Section 130
//LevelDisplay (LevelDisplay)
package {
import flash.display.*;
import flash.text.*;
public dynamic class LevelDisplay extends MovieClip {
public var levelText:TextField;
public var timeText:TextField;
}
}//package
Section 131
//LevelEditor (LevelEditor)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import mochi.*;
import flash.text.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
import flash.system.*;
public class LevelEditor extends Sprite {
const CRATE_TANK:int = 17;
const IN_PROGRESS:int = 2;
const BUILD_COMPLETE:int = 15;
const HALFCELL:int = 15;
const LEFT:int = 3;
const CRATEMONEYADDED:int = 100;
const HORIZONTAL:int = 6;
const HUDDEPTH:int = 0;
const PATROLLER_TYPE:int = 112;
const WATER_TOPRIGHT:int = 80;
const TANKMOVEOFFSET:int = 10;
const EDITORREMOVE:int = 13;
const BUILDTANK:int = 6;
const HUDOFFSET:int = 20;
const SHELLFIRE:int = 3;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const TREE2:int = 92;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TWO_MEGATON:int = 15;
const TURNER_TYPE:int = 111;
const LAST_LEVEL:int = 10;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const RATE_1:int = 120;
const RATE_2:int = 100;
const RATE_3:int = 70;
const RATE_4:int = 30;
const DOWN:int = 2;
const MOVEMENT_GOAL:int = 10;
const WONLEVEL:int = 15;
const WATER_RIGHT:int = 77;
const WATER_TOPRIGHTLEFT:int = 86;
const STORYSTATE:int = 4;
const LEVELTHEME:int = 2;
const LOADERROR:int = 14;
const PATROLLER_LEFT:int = 43;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const COLLISIONDISTANCE:int = 20;
const WATER_BOTTOMLEFT:int = 89;
const CRATE_MONEY:int = 15;
const FIELDWIDTH:int = 22;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const ARMOR_3:int = 200;
const ARMOR_4:int = 400;
const DROP_NO:int = 30;
const LEVEL_WON:int = 3;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const STATION_SPEED:int = 19;
const TURNER_LEFT_RIGHT:int = 52;
const MAXDISTANCE:int = 10000;
const SENTRY_HARD:int = 27;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const TURNER_DOWN_LEFT:int = 55;
const PLAYER1:int = 1;
const PATROLLER_DOWN:int = 42;
const BUILDER_TYPE:int = 103;
const WATER_TYPE:int = 90;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const RANGECONTROL:int = 4;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const FOUR_MEGATON:int = 40;
const PATHDEPTH:int = 0;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const TRANSMISSION:int = 17;
const UPPERHUDOFFSET:int = -20;
const WATER_TOP:int = 76;
const KAMIKAZE_DOWN:int = 32;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const TITLE_STARTGAME:int = 1;
const HOMINGMISSLEBUILDER:int = 45;
const RIGHT:int = 1;
const TURNER_UP_RIGHT:int = 53;
const LEVELTEXTSIZE:int = 12;
const ATTACK_LASER:int = 25;
const SHELL:int = 1;
const SPEED_1:Number = 1.25;
const SPEED_3:Number = 2.5;
const SPEED_4:Number = 4;
const SPEED_2:Number = 1.75;
const TURNING:int = 6;
const BUILDTIME:int = 80;
const MISSION_TYPE:int = 2;
const KAMIKAZE_RIGHT:int = 31;
const STATION_RANGE:int = 23;
const STATION_ARMOR:int = 20;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const WAITING:int = 9;
const NOENEMY:int = -50;
const WATER_LEFT:int = 79;
const WATER_TOPBOTTOM:int = 81;
const WATER_TOPBOTTOMLEFT:int = 85;
const MOVINGRIGHT:int = 1;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const UP:int = 4;
const ADD_MODE:int = 2;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const BUILDING:int = 14;
const UNITEXPLODE:int = 5;
const NODIRECTION:int = 0;
const WATER_RIGHTLEFT:int = 83;
const LOSTLEVEL:int = 16;
const EDITOR_TYPE:int = 1;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const HUNTER_SET:int = 4;
const SELECT_MODE:int = 1;
const MENU_RESUME:int = 1;
const GOAL:int = 11;
const ATTACK_NO:int = 20;
const COMPUTER:int = 2;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const LAUNCHER_SET:int = 1;
const TURNER_RIGHT_RIGHT:int = 50;
const SCORETEXTSIZE:int = 10;
const SPEEDCONTROL:int = 0;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const ARMORCONTROL:int = 1;
const DAMAGE_1:Number = 1;
const DAMAGE_2:Number = 1.25;
const DAMAGE_3:Number = 1.75;
const DAMAGE_4:Number = 2.5;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const MOVINGUP:int = 4;
const WATER_TOPLEFT:int = 82;
const BUILD_STARTED:int = 16;
const BUILDER:int = 10;
const VERTICAL:int = 5;
const LEVELSTATE:int = 2;
const EDITORPLACE:int = 12;
const SENTRY_TYPE:int = 102;
const DROP_MINE:int = 35;
const DELETE_MODE:int = 3;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const WATER_RIGHTBOTTOM:int = 88;
const SENTRY_SET:int = 2;
const PATROLLER_UP:int = 40;
const SHELLLAND:int = 4;
public var label10:TextField;
private var waterIncrement:int;// = 1
private var importString:String;// = ""
private var currentSet:int;// = 0
private var importScreen:ImportScreen;
public var levEdSentries:LevEdSentries;
private var prevX:int;// = 0
private var prevY:int;// = 0
public var levEdLaunchers:LevEdLaunchers;
public var subtractSaveTanks:SubtractButton;
private var tanksToSave:int;// = 5
private var rotateValue:int;// = 0
private var exportString:String;// = ""
private var clipArray:Array;
public var addStartTanks:AddButton;
private var prevWaterIncrement:int;// = 1
public var startingTanksText:TextField;
private var exportScreen:ExportScreen;
private var layoutArray:Array;
public var tanksToSaveText:TextField;
private var startTanks:int;// = 5
public var addSaveTanks:AddButton;
public var levEdPowerUps:LevEdPowerUps;
public var levEdHunters:LevEdHunters;
private var selectedIcon:SelectedIcon;
private var hoverEditor:HoverEditor;
private var mouseIsDown;// = false
public var subtractStartCash:SubtractButton;
private var addCode:int;// = 0
public var levEdTest:LevEdTest;
private var selectType:int;// = 0
public var levEdImport:LevEdImport;
public var levEdExport:LevEdExport;
public var ssLink:SSLink;
public var levEdPatrollers:LevEdPatrollers;
private var startCash:int;// = 50
public var levEdExit:LevEdExit;
private var addIcons:Array;
public var addStartCash:AddButton;
public var startingCashText:TextField;
private var delayTimer:Timer;
public var levEdObstacles:LevEdObstacles;
private var addType:Object;
private var prevXPos:int;// = 0
public var subtractStartTanks:SubtractButton;
public var label1:TextField;
public var label2:TextField;
public var label3:TextField;
public var label4:TextField;
public var label5:TextField;
public var label6:TextField;
public var label7:TextField;
public var label8:TextField;
public var label9:TextField;
private var prevYPos:int;// = 0
private var clipLayer:Sprite;
private var mouseMode:int;// = 1
public function LevelEditor(){
var _local2:Object;
var _local4:int;
addIcons = new Array();
clipArray = new Array();
layoutArray = new Array();
hoverEditor = new HoverEditor();
clipLayer = new Sprite();
selectedIcon = new SelectedIcon();
exportScreen = new ExportScreen();
importScreen = new ImportScreen();
delayTimer = new Timer(500, 2);
super();
hoverEditor.visible = false;
hoverEditor.badSpot.visible = false;
hoverEditor.buttonMode = true;
hoverEditor.useHandCursor = true;
addChild(clipLayer);
addChild(hoverEditor);
var _local1:int;
while (_local1 < 22) {
clipArray[_local1] = new Array();
layoutArray[_local1] = new Array();
_local4 = 0;
while (_local4 < 12) {
layoutArray[_local1].push(0);
_local4++;
};
_local1++;
};
layoutArray[2][5] = 10;
clipArray[2][5] = new PlayerBuilder();
clipArray[2][5].x = (((2 + 1) * CELLSIZE) - 5);
clipArray[2][5].y = (((5 + 1) * CELLSIZE) - 5);
clipLayer.addChild(clipArray[2][5]);
layoutArray[19][5] = 11;
clipArray[19][5] = new TankGoal();
clipArray[19][5].x = (((19 + 1) * CELLSIZE) - 5);
clipArray[19][5].y = (((5 + 1) * CELLSIZE) - 5);
clipLayer.addChild(clipArray[19][5]);
startingTanksText.text = ("Starting Tanks: " + String(startTanks));
tanksToSaveText.text = ("Tanks to Save: " + String(tanksToSave));
startingCashText.text = ("Starting Cash: $" + String(startCash));
hoverEditor.gotoAndStop("selectMode");
exportScreen.x = 10;
exportScreen.y = 10;
importScreen.x = 10;
importScreen.y = 10;
selectedIcon.x = 233;
selectedIcon.y = 418;
addChildAt(selectedIcon, 1);
var _local3:int;
while (_local3 < 6) {
addIcons[_local3] = new Array();
_local2 = new SelectIcon();
_local2.addEventListener(MouseEvent.CLICK, selectIconClicked);
_local2.buttonMode = true;
_local2.useHandCursor = true;
_local2.labelName = "Drag Item";
addIcons[_local3].push(_local2);
_local2 = new DeleteIcon();
_local2.addEventListener(MouseEvent.CLICK, deleteIconClicked);
_local2.buttonMode = true;
_local2.useHandCursor = true;
_local2.labelName = "Remove Item";
addIcons[_local3].push(_local2);
switch (_local3){
case OBSTACLE_SET:
_local2 = new WaterClip();
_local2.rotateValue = 0;
_local2.addValue = WATER_TYPE;
_local2.addType = WaterClip;
_local2.labelName = "Water";
addIconActions(_local2, _local3);
_local2 = new MineClip();
_local2.rotateValue = 0;
_local2.addValue = MINE;
_local2.addType = MineClip;
_local2.labelName = "Mine";
addIconActions(_local2, _local3);
_local2 = new Tree1Clip();
_local2.rotateValue = 0;
_local2.addValue = TREE1;
_local2.addType = Tree1Clip;
_local2.labelName = "Tree";
addIconActions(_local2, _local3);
break;
case LAUNCHER_SET:
_local2 = new KamikazeBuilderClip();
_local2.rotateValue = 0;
_local2.addValue = KAMIKAZE_UP;
_local2.addType = KamikazeBuilderClip;
_local2.labelName = "Rocket Up";
addIconActions(_local2, _local3);
_local2 = new KamikazeBuilderClip();
_local2.rotateValue = 90;
_local2.rotation = 90;
_local2.addValue = KAMIKAZE_RIGHT;
_local2.addType = KamikazeBuilderClip;
_local2.labelName = "Rocket Right";
addIconActions(_local2, _local3);
_local2 = new KamikazeBuilderClip();
_local2.rotateValue = 180;
_local2.rotation = 180;
_local2.addValue = KAMIKAZE_DOWN;
_local2.addType = KamikazeBuilderClip;
_local2.labelName = "Rocket Down";
addIconActions(_local2, _local3);
_local2 = new KamikazeBuilderClip();
_local2.rotateValue = -90;
_local2.rotation = -90;
_local2.addValue = KAMIKAZE_LEFT;
_local2.addType = KamikazeBuilderClip;
_local2.labelName = "Rocket Left";
addIconActions(_local2, _local3);
_local2 = new HomingMissleBuilderClip();
_local2.mouseChildren = false;
_local2.rotateValue = 0;
_local2.addValue = HOMINGMISSLEBUILDER;
_local2.addType = HomingMissleBuilderClip;
_local2.labelName = "Homing Missle";
addIconActions(_local2, _local3);
break;
case SENTRY_SET:
_local2 = new SentryEasy();
_local2.mouseChildren = false;
_local2.rotateValue = 0;
_local2.addValue = SENTRY_EASY;
_local2.addType = SentryEasy;
_local2.labelName = "Sentry Level 1";
addIconActions(_local2, _local3);
_local2 = new SentryMedium();
_local2.mouseChildren = false;
_local2.rotateValue = 0;
_local2.addValue = SENTRY_MEDIUM;
_local2.addType = SentryMedium;
_local2.labelName = "Sentry Level 2";
addIconActions(_local2, _local3);
break;
case PATROLLER_SET:
_local2 = new PatrollerClip();
_local2.mouseChildren = false;
_local2.rotateValue = 0;
_local2.addValue = PATROLLER_UP;
_local2.addType = PatrollerClip;
_local2.labelName = "Patrol Up";
addIconActions(_local2, _local3);
_local2 = new PatrollerClip();
_local2.mouseChildren = false;
_local2.rotation = 90;
_local2.rotateValue = 90;
_local2.addValue = PATROLLER_RIGHT;
_local2.addType = PatrollerClip;
_local2.labelName = "Patrol Right";
addIconActions(_local2, _local3);
_local2 = new PatrollerClip();
_local2.mouseChildren = false;
_local2.rotation = 180;
_local2.rotateValue = 180;
_local2.addValue = PATROLLER_DOWN;
_local2.addType = PatrollerClip;
_local2.labelName = "Patrol Down";
addIconActions(_local2, _local3);
_local2 = new PatrollerClip();
_local2.mouseChildren = false;
_local2.rotation = -90;
_local2.rotateValue = -90;
_local2.addValue = PATROLLER_LEFT;
_local2.addType = PatrollerClip;
_local2.labelName = "Patrol Left";
addIconActions(_local2, _local3);
break;
case HUNTER_SET:
_local2 = new TurnerClip();
_local2.mouseChildren = false;
_local2.rotation = 0;
_local2.rotateValue = 0;
_local2.addValue = TURNER_UP_RIGHT;
_local2.addType = TurnerClip;
_local2.labelName = "Hunter Right";
addIconActions(_local2, _local3);
_local2 = new TurnerClip();
_local2.mouseChildren = false;
_local2.rotation = 90;
_local2.rotateValue = 90;
_local2.addValue = TURNER_RIGHT_RIGHT;
_local2.addType = TurnerClip;
_local2.labelName = "Hunter Right";
addIconActions(_local2, _local3);
_local2 = new TurnerClip();
_local2.mouseChildren = false;
_local2.rotation = 180;
_local2.rotateValue = 180;
_local2.addValue = TURNER_DOWN_RIGHT;
_local2.addType = TurnerClip;
_local2.labelName = "Hunter Right";
addIconActions(_local2, _local3);
_local2 = new TurnerClip();
_local2.mouseChildren = false;
_local2.rotation = -90;
_local2.rotateValue = -90;
_local2.addValue = TURNER_LEFT_RIGHT;
_local2.addType = TurnerClip;
_local2.labelName = "Hunter Right";
addIconActions(_local2, _local3);
_local2 = new TurnerClip();
_local2.mouseChildren = false;
_local2.rotation = 0;
_local2.rotateValue = 0;
_local2.addValue = TURNER_UP_LEFT;
_local2.addType = TurnerClip;
_local2.labelName = "Hunter Left";
addIconActions(_local2, _local3);
_local2 = new TurnerClip();
_local2.mouseChildren = false;
_local2.rotation = 90;
_local2.rotateValue = 90;
_local2.addValue = TURNER_RIGHT_LEFT;
_local2.addType = TurnerClip;
_local2.labelName = "Hunter Left";
addIconActions(_local2, _local3);
_local2 = new TurnerClip();
_local2.mouseChildren = false;
_local2.rotation = 180;
_local2.rotateValue = 180;
_local2.addValue = TURNER_DOWN_LEFT;
_local2.addType = TurnerClip;
_local2.labelName = "Hunter Left";
addIconActions(_local2, _local3);
_local2 = new TurnerClip();
_local2.mouseChildren = false;
_local2.rotation = -90;
_local2.rotateValue = -90;
_local2.addValue = TURNER_LEFT_LEFT;
_local2.addType = TurnerClip;
_local2.labelName = "Hunter Left";
addIconActions(_local2, _local3);
break;
case POWERUP_SET:
_local2 = new Crate_Health();
_local2.rotateValue = 0;
_local2.addValue = CRATE_HEALTH;
_local2.addType = Crate_Health;
_local2.labelName = "Refill Health";
addIconActions(_local2, _local3);
_local2 = new Crate_Money();
_local2.rotateValue = 0;
_local2.addValue = CRATE_MONEY;
_local2.addType = Crate_Money;
_local2.labelName = "Extra Cash";
addIconActions(_local2, _local3);
_local2 = new Crate_Tank();
_local2.rotateValue = 0;
_local2.addValue = CRATE_TANK;
_local2.addType = Crate_Tank;
_local2.labelName = "Extra Tank";
addIconActions(_local2, _local3);
_local2 = new Station_Speed();
_local2.rotateValue = 0;
_local2.addValue = STATION_SPEED;
_local2.addType = Station_Speed;
_local2.labelName = "Boost Speed";
addIconActions(_local2, _local3);
_local2 = new Station_Armor();
_local2.rotateValue = 0;
_local2.addValue = STATION_ARMOR;
_local2.addType = Station_Armor;
_local2.labelName = "Boost Armor";
addIconActions(_local2, _local3);
_local2 = new Station_Attack();
_local2.rotateValue = 0;
_local2.addValue = STATION_ATTACK;
_local2.addType = Station_Attack;
_local2.labelName = "Boost Attack";
addIconActions(_local2, _local3);
_local2 = new Station_Range();
_local2.rotateValue = 0;
_local2.addValue = STATION_RANGE;
_local2.addType = Station_Range;
_local2.labelName = "Boost Range";
addIconActions(_local2, _local3);
_local2 = new Station_Rate();
_local2.rotateValue = 0;
_local2.addValue = STATION_RATE;
_local2.addType = Station_Rate;
_local2.labelName = "Boost Rate";
addIconActions(_local2, _local3);
break;
};
_local3++;
};
currentSet = OBSTACLE_SET;
displaySet(OBSTACLE_SET);
ssLink.addEventListener(MouseEvent.CLICK, ssLinkClicked);
}
private function randRange(_arg1:int, _arg2:int):int{
var _local3:int = (Math.floor((Math.random() * ((_arg2 - _arg1) + 1))) + _arg1);
return (_local3);
}
private function displaySet(_arg1:int){
label1.text = "";
label2.text = "";
label3.text = "";
label4.text = "";
label5.text = "";
label6.text = "";
label7.text = "";
label8.text = "";
label9.text = "";
label10.text = "";
var _local2:int;
while (_local2 < addIcons[_arg1].length) {
addIcons[_arg1][_local2].x = (233 + (_local2 * 44.7));
addIcons[_arg1][_local2].y = 418;
addChildAt(addIcons[_arg1][_local2], 2);
switch (_local2){
case 0:
label1.text = addIcons[_arg1][_local2].labelName;
break;
case 1:
label2.text = addIcons[_arg1][_local2].labelName;
break;
case 2:
label3.text = addIcons[_arg1][_local2].labelName;
break;
case 3:
label4.text = addIcons[_arg1][_local2].labelName;
break;
case 4:
label5.text = addIcons[_arg1][_local2].labelName;
break;
case 5:
label6.text = addIcons[_arg1][_local2].labelName;
break;
case 6:
label7.text = addIcons[_arg1][_local2].labelName;
break;
case 7:
label8.text = addIcons[_arg1][_local2].labelName;
break;
case 8:
label9.text = addIcons[_arg1][_local2].labelName;
break;
case 9:
label10.text = addIcons[_arg1][_local2].labelName;
break;
};
_local2++;
};
}
private function stepLevel(_arg1:Event){
var _local3:int;
var _local4:int;
var _local2:int;
_local3 = CellFromPos(mouseX);
_local4 = CellFromPos(mouseY);
if ((((((mouseX >= 10)) && ((mouseX < 670)))) && ((((mouseY >= 10)) && ((mouseY < 370)))))){
if (!mouseIsDown){
if ((((layoutArray[_local3][_local4] == 0)) && ((((mouseMode == SELECT_MODE)) || ((mouseMode == DELETE_MODE)))))){
hoverEditor.buttonMode = false;
hoverEditor.useHandCursor = false;
} else {
hoverEditor.buttonMode = true;
hoverEditor.useHandCursor = true;
};
};
if ((((layoutArray[_local3][_local4] == 10)) || ((layoutArray[_local3][_local4] == 11)))){
if (mouseMode == SELECT_MODE){
if (mouseIsDown){
hoverEditor.badSpot.visible = true;
} else {
hoverEditor.badSpot.visible = false;
};
} else {
hoverEditor.badSpot.visible = true;
};
} else {
if (((((!((layoutArray[_local3][_local4] == 0))) && ((mouseMode == SELECT_MODE)))) && (mouseIsDown))){
hoverEditor.badSpot.visible = true;
} else {
hoverEditor.badSpot.visible = false;
};
};
if (((mouseIsDown) && ((mouseMode == ADD_MODE)))){
addToLevel(_local3, _local4);
};
if (((mouseIsDown) && ((mouseMode == SELECT_MODE)))){
if (selectType != 0){
clipArray[prevX][prevY].x = (((_local3 + 1) * CELLSIZE) - 5);
clipArray[prevX][prevY].y = (((_local4 + 1) * CELLSIZE) - 5);
};
};
if (((mouseIsDown) && ((mouseMode == DELETE_MODE)))){
if (((((!((layoutArray[_local3][_local4] == 0))) && (!((layoutArray[_local3][_local4] == 10))))) && (!((layoutArray[_local3][_local4] == 11))))){
GameManager.playFx(EDITORREMOVE);
clipLayer.removeChild(clipArray[_local3][_local4]);
clipArray[_local3][_local4] = null;
layoutArray[_local3][_local4] = 0;
setWater((_local3 - 1), _local4);
setWater((_local3 + 1), _local4);
setWater(_local3, (_local4 - 1));
setWater(_local3, (_local4 + 1));
updateWater();
};
};
setChildIndex(hoverEditor, (numChildren - 1));
hoverEditor.visible = true;
hoverEditor.x = ((_local3 * CELLSIZE) + OFFSETDISTANCE);
hoverEditor.y = ((_local4 * CELLSIZE) + OFFSETDISTANCE);
} else {
hoverEditor.visible = false;
};
}
private function ssLinkClicked(_arg1:MouseEvent){
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
}
private function translateWater(_arg1:int, _arg2:int, _arg3:String){
if (_arg3 == "OOOO1"){
layoutArray[_arg1][_arg2] = 70;
};
if (_arg3 == "OOOO2"){
layoutArray[_arg1][_arg2] = 71;
};
if (_arg3 == "OOOO3"){
layoutArray[_arg1][_arg2] = 72;
};
if (_arg3 == "OOOO4"){
layoutArray[_arg1][_arg2] = 73;
};
if (_arg3 == "OOOO5"){
layoutArray[_arg1][_arg2] = 74;
};
if (_arg3 == "XXXX"){
layoutArray[_arg1][_arg2] = 75;
};
if (_arg3 == "XOOO"){
layoutArray[_arg1][_arg2] = 76;
};
if (_arg3 == "OXOO"){
layoutArray[_arg1][_arg2] = 77;
};
if (_arg3 == "OOXO"){
layoutArray[_arg1][_arg2] = 78;
};
if (_arg3 == "OOOX"){
layoutArray[_arg1][_arg2] = 79;
};
if (_arg3 == "XXOO"){
layoutArray[_arg1][_arg2] = 80;
};
if (_arg3 == "XOXO"){
layoutArray[_arg1][_arg2] = 81;
};
if (_arg3 == "XOOX"){
layoutArray[_arg1][_arg2] = 82;
};
if (_arg3 == "OXOX"){
layoutArray[_arg1][_arg2] = 83;
};
if (_arg3 == "XXXO"){
layoutArray[_arg1][_arg2] = 84;
};
if (_arg3 == "XOXX"){
layoutArray[_arg1][_arg2] = 85;
};
if (_arg3 == "XXOX"){
layoutArray[_arg1][_arg2] = 86;
};
if (_arg3 == "OXXX"){
layoutArray[_arg1][_arg2] = 87;
};
if (_arg3 == "OXXO"){
layoutArray[_arg1][_arg2] = 88;
};
if (_arg3 == "OOXX"){
layoutArray[_arg1][_arg2] = 89;
};
}
public function deactivate(){
addStartTanks.removeEventListener(MouseEvent.CLICK, addSomethingClicked);
subtractStartTanks.removeEventListener(MouseEvent.CLICK, subtractSomethingClicked);
addSaveTanks.removeEventListener(MouseEvent.CLICK, addSomethingClicked);
subtractSaveTanks.removeEventListener(MouseEvent.CLICK, subtractSomethingClicked);
addStartCash.removeEventListener(MouseEvent.CLICK, addSomethingClicked);
subtractStartCash.removeEventListener(MouseEvent.CLICK, subtractSomethingClicked);
levEdObstacles.removeEventListener(MouseEvent.CLICK, displaySetClicked);
levEdLaunchers.removeEventListener(MouseEvent.CLICK, displaySetClicked);
levEdSentries.removeEventListener(MouseEvent.CLICK, displaySetClicked);
levEdPatrollers.removeEventListener(MouseEvent.CLICK, displaySetClicked);
levEdHunters.removeEventListener(MouseEvent.CLICK, displaySetClicked);
levEdPowerUps.removeEventListener(MouseEvent.CLICK, displaySetClicked);
levEdExport.removeEventListener(MouseEvent.CLICK, exportClicked);
levEdImport.removeEventListener(MouseEvent.CLICK, importClicked);
levEdTest.removeEventListener(MouseEvent.CLICK, testClicked);
levEdExit.removeEventListener(MouseEvent.CLICK, exitClicked);
removeEventListener(Event.ENTER_FRAME, stepLevel);
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseReleased);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, mousePressed);
}
private function importOkClicked(_arg1:MouseEvent){
var _local2:Boolean;
var _local3:Array;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:Array;
var _local8:String;
var _local9:Boolean;
var _local10:int;
var _local11:int;
var _local12:int;
var _local13:int;
var _local14:int;
var _local15:Boolean;
var _local16:int;
var _local17:int;
GameManager.playFx(LEVELCLICK);
_local2 = true;
_local3 = new Array();
_local4 = 0;
_local5 = 0;
_local6 = 0;
_local7 = new Array();
_local8 = importScreen.levelCodeText.text;
_local9 = false;
_local8 = _local8.toLowerCase();
_local10 = 0;
while (_local10 < _local8.length) {
_local9 = false;
if (_local8.charAt(_local10) == "0"){
_local9 = true;
};
if (_local8.charAt(_local10) == "1"){
_local9 = true;
};
if (_local8.charAt(_local10) == "2"){
_local9 = true;
};
if (_local8.charAt(_local10) == "3"){
_local9 = true;
};
if (_local8.charAt(_local10) == "4"){
_local9 = true;
};
if (_local8.charAt(_local10) == "5"){
_local9 = true;
};
if (_local8.charAt(_local10) == "6"){
_local9 = true;
};
if (_local8.charAt(_local10) == "7"){
_local9 = true;
};
if (_local8.charAt(_local10) == "8"){
_local9 = true;
};
if (_local8.charAt(_local10) == "9"){
_local9 = true;
};
if (_local8.charAt(_local10) == "x"){
_local9 = true;
};
if (!_local9){
_local8 = String((_local8.substring(0, (_local10 - 1)) + _local8.substring((_local10 + 1), (_local8.length - 1))));
};
_local10++;
};
if ((((_local8.length < 555)) || ((_local8.length > 559)))){
_local2 = false;
};
if (_local2){
_local3 = _local8.split("x");
if (_local3.length != 25){
_local2 = false;
} else {
_local4 = int(_local3[22]);
if ((((_local4 < 1)) || ((_local4 > 99)))){
_local2 = false;
};
_local5 = int(_local3[23]);
if ((((_local5 < 1)) || ((_local5 > 99)))){
_local2 = false;
};
_local6 = int(_local3[24]);
if ((((_local6 < 0)) || ((_local6 > 999)))){
_local2 = false;
};
_local3.splice(22, 3);
_local10 = 0;
while (_local10 < 22) {
if (_local3[_local10].length != 24){
_local2 = false;
};
_local10++;
};
};
};
if (_local2){
_local11 = 0;
_local12 = 0;
_local13 = 0;
_local10 = 0;
while (_local10 < _local3.length) {
_local7[_local10] = new Array();
_local14 = 0;
while (_local14 < _local3[_local10].length) {
if ((_local14 % 2) == 0){
_local7[_local10][(_local14 / 2)] = ((int(_local3[_local10].charAt(_local14)) * 10) + int(_local3[_local10].charAt((_local14 + 1))));
switch (_local7[_local10][(_local14 / 2)]){
case 0:
break;
case GOAL:
_local12++;
break;
case BUILDER:
_local11++;
break;
case MINE:
break;
case CRATE_HEALTH:
break;
case CRATE_MONEY:
break;
case CRATE_SIDESWITCHER:
break;
case CRATE_TANK:
_local13++;
break;
case STATION_SPEED:
break;
case STATION_ARMOR:
break;
case STATION_ATTACK:
break;
case STATION_RATE:
break;
case STATION_RANGE:
break;
case SENTRY_EASY:
break;
case SENTRY_MEDIUM:
break;
case SENTRY_HARD:
break;
case KAMIKAZE_DOWN:
break;
case KAMIKAZE_RIGHT:
break;
case KAMIKAZE_LEFT:
break;
case KAMIKAZE_UP:
break;
case PATROLLER_UP:
break;
case PATROLLER_RIGHT:
break;
case PATROLLER_DOWN:
break;
case PATROLLER_LEFT:
break;
case HOMINGMISSLEBUILDER:
break;
case TURNER_RIGHT_RIGHT:
break;
case TURNER_DOWN_RIGHT:
break;
case TURNER_LEFT_RIGHT:
break;
case TURNER_UP_RIGHT:
break;
case TURNER_RIGHT_LEFT:
break;
case TURNER_DOWN_LEFT:
break;
case TURNER_LEFT_LEFT:
break;
case TURNER_UP_LEFT:
break;
case TREE1:
break;
case TREE2:
break;
default:
if ((((_local7[_local10][(_local14 / 2)] >= 70)) && ((_local7[_local10][(_local14 / 2)] <= WATER_TYPE)))){
} else {
_local2 = false;
};
break;
};
};
_local14++;
};
_local10++;
};
if (((!((_local11 == 1))) || (!((_local12 == 1))))){
_local2 = false;
};
if (_local5 > (_local4 + _local13)){
_local2 = false;
};
};
if (_local2){
_local15 = true;
_local16 = 0;
while (_local16 < 22) {
_local17 = 0;
while (_local17 < 12) {
if (layoutArray[_local16][_local17] != 0){
layoutArray[_local16][_local17] = 0;
clipLayer.removeChild(clipArray[_local16][_local17]);
clipArray[_local16][_local17] = null;
};
layoutArray[_local16][_local17] = _local7[_local16][_local17];
switch (layoutArray[_local16][_local17]){
case GOAL:
clipArray[_local16][_local17] = new TankGoal();
break;
case BUILDER:
clipArray[_local16][_local17] = new PlayerBuilder();
break;
case MINE:
clipArray[_local16][_local17] = new MineClip();
break;
case CRATE_HEALTH:
clipArray[_local16][_local17] = new Crate_Health();
break;
case CRATE_MONEY:
clipArray[_local16][_local17] = new Crate_Money();
break;
case CRATE_SIDESWITCHER:
clipArray[_local16][_local17] = new Crate_Sideswitcher();
break;
case CRATE_TANK:
clipArray[_local16][_local17] = new Crate_Tank();
break;
case STATION_SPEED:
clipArray[_local16][_local17] = new Station_Speed();
break;
case STATION_ARMOR:
clipArray[_local16][_local17] = new Station_Armor();
break;
case STATION_ATTACK:
clipArray[_local16][_local17] = new Station_Attack();
break;
case STATION_RATE:
clipArray[_local16][_local17] = new Station_Rate();
break;
case STATION_RANGE:
clipArray[_local16][_local17] = new Station_Range();
break;
case SENTRY_EASY:
clipArray[_local16][_local17] = new SentryEasy();
break;
case SENTRY_MEDIUM:
clipArray[_local16][_local17] = new SentryMedium();
break;
case SENTRY_HARD:
clipArray[_local16][_local17] = new SentryHard();
break;
case KAMIKAZE_DOWN:
clipArray[_local16][_local17] = new KamikazeBuilderClip();
clipArray[_local16][_local17].rotation = 180;
break;
case KAMIKAZE_RIGHT:
clipArray[_local16][_local17] = new KamikazeBuilderClip();
clipArray[_local16][_local17].rotation = 90;
break;
case KAMIKAZE_LEFT:
clipArray[_local16][_local17] = new KamikazeBuilderClip();
clipArray[_local16][_local17].rotation = -90;
break;
case KAMIKAZE_UP:
clipArray[_local16][_local17] = new KamikazeBuilderClip();
break;
case PATROLLER_UP:
clipArray[_local16][_local17] = new PatrollerClip();
break;
case PATROLLER_RIGHT:
clipArray[_local16][_local17] = new PatrollerClip();
clipArray[_local16][_local17].rotation = 90;
break;
case PATROLLER_DOWN:
clipArray[_local16][_local17] = new PatrollerClip();
clipArray[_local16][_local17].rotation = 180;
break;
case PATROLLER_LEFT:
clipArray[_local16][_local17] = new PatrollerClip();
clipArray[_local16][_local17].rotation = -90;
break;
case HOMINGMISSLEBUILDER:
clipArray[_local16][_local17] = new HomingMissleBuilderClip();
break;
case TURNER_RIGHT_RIGHT:
clipArray[_local16][_local17] = new TurnerClip();
clipArray[_local16][_local17].rotation = 90;
break;
case TURNER_DOWN_RIGHT:
clipArray[_local16][_local17] = new TurnerClip();
clipArray[_local16][_local17].rotation = 180;
break;
case TURNER_LEFT_RIGHT:
clipArray[_local16][_local17] = new TurnerClip();
clipArray[_local16][_local17].rotation = -90;
break;
case TURNER_UP_RIGHT:
clipArray[_local16][_local17] = new TurnerClip();
break;
case TURNER_RIGHT_LEFT:
clipArray[_local16][_local17] = new TurnerClip();
clipArray[_local16][_local17].rotation = 90;
break;
case TURNER_DOWN_LEFT:
clipArray[_local16][_local17] = new TurnerClip();
clipArray[_local16][_local17].rotation = 180;
break;
case TURNER_LEFT_LEFT:
clipArray[_local16][_local17] = new TurnerClip();
clipArray[_local16][_local17].rotation = -90;
break;
case TURNER_UP_LEFT:
clipArray[_local16][_local17] = new TurnerClip();
break;
case TREE1:
clipArray[_local16][_local17] = new Tree1Clip();
break;
case TREE2:
clipArray[_local16][_local17] = new Tree2Clip();
break;
default:
if ((((layoutArray[_local16][_local17] >= 70)) && ((layoutArray[_local16][_local17] <= WATER_TYPE)))){
clipArray[_local16][_local17] = new WaterClip();
} else {
_local15 = false;
};
break;
};
if (_local15){
clipArray[_local16][_local17].x = PosFromCell(_local16);
clipArray[_local16][_local17].y = PosFromCell(_local17);
clipLayer.addChild(clipArray[_local16][_local17]);
};
_local15 = true;
_local17++;
};
_local16++;
};
startTanks = _local4;
tanksToSave = _local5;
startCash = _local6;
startingTanksText.text = ("Starting Tanks: " + String(startTanks));
tanksToSaveText.text = ("Tanks to Save: " + String(tanksToSave));
startingCashText.text = ("Starting Cash: $" + String(startCash));
updateWater();
importScreen.levelCodeText.text = "";
importScreen.codeErrorText.visible = false;
importScreen.okButton.removeEventListener(MouseEvent.CLICK, importOkClicked);
importScreen.cancelButton.removeEventListener(MouseEvent.CLICK, importCancelClicked);
removeChild(importScreen);
activate();
} else {
importScreen.codeErrorText.visible = true;
GameManager.playFx(LOADERROR);
};
}
private function importCancelClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
importScreen.levelCodeText.text = "";
importScreen.codeErrorText.visible = false;
importScreen.okButton.removeEventListener(MouseEvent.CLICK, importOkClicked);
importScreen.cancelButton.removeEventListener(MouseEvent.CLICK, importCancelClicked);
removeChild(importScreen);
activate();
}
private function importClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
deactivate();
importScreen.levelCodeText.text = "";
importScreen.codeErrorText.visible = false;
importScreen.okButton.addEventListener(MouseEvent.CLICK, importOkClicked);
importScreen.cancelButton.addEventListener(MouseEvent.CLICK, importCancelClicked);
addChild(importScreen);
stage.focus = importScreen.levelCodeText;
}
public function activate(){
addStartTanks.addEventListener(MouseEvent.CLICK, addSomethingClicked);
subtractStartTanks.addEventListener(MouseEvent.CLICK, subtractSomethingClicked);
addSaveTanks.addEventListener(MouseEvent.CLICK, addSomethingClicked);
subtractSaveTanks.addEventListener(MouseEvent.CLICK, subtractSomethingClicked);
addStartCash.addEventListener(MouseEvent.CLICK, addSomethingClicked);
subtractStartCash.addEventListener(MouseEvent.CLICK, subtractSomethingClicked);
levEdObstacles.addEventListener(MouseEvent.CLICK, displaySetClicked);
levEdLaunchers.addEventListener(MouseEvent.CLICK, displaySetClicked);
levEdSentries.addEventListener(MouseEvent.CLICK, displaySetClicked);
levEdPatrollers.addEventListener(MouseEvent.CLICK, displaySetClicked);
levEdHunters.addEventListener(MouseEvent.CLICK, displaySetClicked);
levEdPowerUps.addEventListener(MouseEvent.CLICK, displaySetClicked);
levEdExport.addEventListener(MouseEvent.CLICK, exportClicked);
levEdImport.addEventListener(MouseEvent.CLICK, importClicked);
levEdTest.addEventListener(MouseEvent.CLICK, testClicked);
levEdExit.addEventListener(MouseEvent.CLICK, exitClicked);
addEventListener(Event.ENTER_FRAME, stepLevel);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed);
}
private function addSomethingClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
if (_arg1.target == addStartTanks){
if (startTanks < 99){
startTanks++;
startingTanksText.text = ("Starting Tanks: " + String(startTanks));
};
} else {
if (_arg1.target == addSaveTanks){
if (tanksToSave < 99){
tanksToSave++;
tanksToSaveText.text = ("Tanks to Save: " + String(tanksToSave));
};
} else {
if (_arg1.target == addStartCash){
if (startCash < 999){
startCash = (startCash + 10);
startingCashText.text = ("Starting Cash: $" + String(startCash));
};
};
};
};
}
private function mouseReleased(_arg1:MouseEvent){
var _local2:int;
var _local3:int;
if (mouseMode == SELECT_MODE){
if ((((((mouseX >= 10)) && ((mouseX < 670)))) && ((((mouseY >= 10)) && ((mouseY < 370)))))){
_local2 = CellFromPos(mouseX);
_local3 = CellFromPos(mouseY);
} else {
if (selectType != 0){
_local2 = CellFromPos(clipArray[prevX][prevY].x);
_local3 = CellFromPos(clipArray[prevX][prevY].y);
};
};
if (selectType != 0){
if (layoutArray[_local2][_local3] == 0){
GameManager.playFx(EDITORPLACE);
layoutArray[_local2][_local3] = selectType;
clipArray[_local2][_local3] = clipArray[prevX][prevY];
clipArray[prevX][prevY] = null;
layoutArray[prevX][prevY] = 0;
if (isWater(layoutArray[_local2][_local3])){
setWater(_local2, _local3);
setWater((_local2 - 1), _local3);
setWater((_local2 + 1), _local3);
setWater(_local2, (_local3 - 1));
setWater(_local2, (_local3 + 1));
updateWater();
};
} else {
clipArray[prevX][prevY].x = prevXPos;
clipArray[prevX][prevY].y = prevYPos;
selectType = 0;
};
};
};
mouseIsDown = false;
selectType = 0;
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
private function exitClicked(_arg1:MouseEvent){
ssLink.removeEventListener(MouseEvent.CLICK, ssLinkClicked);
GameManager.playFx(LEVELCLICK);
GameManager.leaveEditor();
}
private function shareOnSSClicked(_arg1:MouseEvent){
var _local2:URLRequest;
if (GameManager.onSinisterSea){
if (PaymentManager.purchaseItems[USERLEVELS].purchased){
shareLevel();
} else {
GameManager.paymentBox = null;
GameManager.paymentBox = new PaymentBox();
GameManager.paymentBox.activate(USERLEVELS, this);
GameManager.paymentBox.addEventListener(PaymentEvent.PURCHASE_SUCCESSFUL, userLevelsPurchased);
GameManager.paymentBox.addEventListener(PaymentEvent.PURCHASE_FAILED, userLevelsCancelled);
};
} else {
GameManager.playFx(MENUCLICK);
_local2 = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
};
}
private function exportOkClicked(_arg1:MouseEvent){
removeExportScreen();
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
private function shareLevelTimerFired(_arg1:TimerEvent){
if (LevelShareManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, shareLevelTimerFired);
removeExportScreen();
} else {
delayTimer.reset();
delayTimer.start();
};
}
private function userLevelsCancelled(_arg1:PaymentEvent){
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_SUCCESSFUL, userLevelsPurchased);
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_FAILED, userLevelsCancelled);
}
private function subtractSomethingClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
if (_arg1.target == subtractStartTanks){
if (startTanks > 1){
startTanks--;
startingTanksText.text = ("Starting Tanks: " + String(startTanks));
};
} else {
if (_arg1.target == subtractSaveTanks){
if (tanksToSave > 1){
tanksToSave--;
tanksToSaveText.text = ("Tanks to Save: " + String(tanksToSave));
};
} else {
if (_arg1.target == subtractStartCash){
if (startCash > 9){
startCash = (startCash - 10);
startingCashText.text = ("Starting Cash: $" + String(startCash));
};
};
};
};
}
private function exportClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
var _local2:int;
exportString = "";
_local2 = generateString();
if (tanksToSave > (startTanks + _local2)){
GameManager.playFx(LOADERROR);
exportScreen.levelCodeText.textColor = 0xFF0000;
exportString = "ERROR: Level is impossible to beat. Add more starting tanks or extra tank power-ups.";
} else {
exportScreen.levelCodeText.textColor = 50466;
};
exportScreen.levelCodeText.text = exportString;
exportScreen.okButton.addEventListener(MouseEvent.CLICK, exportOkClicked);
exportScreen.copyToClipboardButton.addEventListener(MouseEvent.CLICK, copyClipboardClicked);
exportScreen.shareOnSSButton.addEventListener(MouseEvent.CLICK, shareOnSSClicked);
exportScreen.doneIndicator.visible = false;
exportScreen.levelNameText.restrict = "a-zA-Z0-9";
exportScreen.levelNameText.maxChars = 20;
exportScreen.gotoAndStop("normal");
addChild(exportScreen);
deactivate();
}
private function setWater(_arg1:int, _arg2:int){
var _local4:String;
var _local3:Array = new Array("X", "X", "X", "X");
var _local5:Boolean;
if ((((((((_arg1 >= 0)) && ((_arg1 <= 21)))) && ((_arg2 >= 0)))) && ((_arg2 <= 11)))){
if (isWater(layoutArray[_arg1][_arg2])){
if (_arg2 > 0){
if (isWater(layoutArray[_arg1][(_arg2 - 1)])){
_local3[0] = "O";
};
};
if (_arg1 < 21){
if (isWater(layoutArray[(_arg1 + 1)][_arg2])){
_local3[1] = "O";
};
};
if (_arg2 < 11){
if (isWater(layoutArray[_arg1][(_arg2 + 1)])){
_local3[2] = "O";
};
};
if (_arg1 > 0){
if (isWater(layoutArray[(_arg1 - 1)][_arg2])){
_local3[3] = "O";
};
};
_local4 = _local3.join("");
if (_local4 == "OOOO"){
clipLayer.setChildIndex(clipArray[_arg1][_arg2], 0);
waterIncrement = randRange(1, 5);
if (waterIncrement == prevWaterIncrement){
if (randRange(0, 1) == 1){
waterIncrement++;
if (waterIncrement > 5){
waterIncrement = randRange(1, 4);
};
} else {
waterIncrement--;
if (waterIncrement < 1){
waterIncrement = randRange(2, 5);
};
};
};
_local4 = (_local4 + waterIncrement);
prevWaterIncrement = waterIncrement;
};
if (_local4 == "XOOO"){
_local5 = true;
};
if (_local4 == "OXOO"){
_local5 = true;
};
if (_local4 == "OOXO"){
_local5 = true;
};
if (_local4 == "OOOX"){
_local5 = true;
};
if (_local4 == "XXOO"){
_local5 = true;
};
if (_local4 == "OXXO"){
_local5 = true;
};
if (_local4 == "OOXX"){
_local5 = true;
};
if (_local4 == "XOOX"){
_local5 = true;
};
if (_local5){
clipLayer.setChildIndex(clipArray[_arg1][_arg2], 0);
};
clipArray[_arg1][_arg2].gotoAndStop(_local4);
translateWater(_arg1, _arg2, _local4);
};
};
}
private function updateWater(){
var _local4:int;
var _local5:int;
var _local1:Boolean;
var _local2:int;
while (_local2 < 22) {
_local4 = 0;
while (_local4 < 12) {
if (isWater(layoutArray[_local2][_local4])){
setWater(_local2, _local4);
if (clipArray[_local2][_local4].currentLabel == "XOOO"){
_local1 = true;
};
if (clipArray[_local2][_local4].currentLabel == "OXOO"){
_local1 = true;
};
if (clipArray[_local2][_local4].currentLabel == "OOXO"){
_local1 = true;
};
if (clipArray[_local2][_local4].currentLabel == "OOOX"){
_local1 = true;
};
if (clipArray[_local2][_local4].currentLabel == "XXOO"){
_local1 = true;
};
if (clipArray[_local2][_local4].currentLabel == "OXXO"){
_local1 = true;
};
if (clipArray[_local2][_local4].currentLabel == "OOXX"){
_local1 = true;
};
if (clipArray[_local2][_local4].currentLabel == "XOOX"){
_local1 = true;
};
if (_local1){
clipLayer.setChildIndex(clipArray[_local2][_local4], 0);
};
_local1 = false;
} else {
if (_local2 > 0){
if (_local4 > 0){
if (((((isWater(layoutArray[(_local2 - 1)][(_local4 - 1)])) && (isWater(layoutArray[_local2][(_local4 - 1)])))) && (isWater(layoutArray[(_local2 - 1)][_local4])))){
clipLayer.setChildIndex(clipArray[(_local2 - 1)][(_local4 - 1)], 0);
};
};
if (_local4 < 11){
if (((((isWater(layoutArray[(_local2 - 1)][(_local4 + 1)])) && (isWater(layoutArray[_local2][(_local4 + 1)])))) && (isWater(layoutArray[(_local2 - 1)][_local4])))){
clipLayer.setChildIndex(clipArray[(_local2 - 1)][(_local4 + 1)], 0);
};
};
};
if (_local2 < 21){
if (_local4 > 0){
if (((((isWater(layoutArray[(_local2 + 1)][(_local4 - 1)])) && (isWater(layoutArray[(_local2 + 1)][_local4])))) && (isWater(layoutArray[_local2][(_local4 - 1)])))){
clipLayer.setChildIndex(clipArray[(_local2 + 1)][(_local4 - 1)], 0);
};
};
if (_local4 < 11){
if (((((isWater(layoutArray[(_local2 + 1)][(_local4 + 1)])) && (isWater(layoutArray[_local2][(_local4 + 1)])))) && (isWater(layoutArray[(_local2 + 1)][_local4])))){
clipLayer.setChildIndex(clipArray[(_local2 + 1)][(_local4 + 1)], 0);
};
};
};
};
_local4++;
};
_local2++;
};
var _local3:int;
while (_local3 < 22) {
_local5 = 0;
while (_local5 < 12) {
if (isWater(layoutArray[_local3][_local5])){
if (clipArray[_local3][_local5].currentLabel == "XOXO"){
clipLayer.setChildIndex(clipArray[_local3][_local5], (clipLayer.numChildren - 1));
};
if (clipArray[_local3][_local5].currentLabel == "OXOX"){
clipLayer.setChildIndex(clipArray[_local3][_local5], (clipLayer.numChildren - 1));
};
if (clipArray[_local3][_local5].currentLabel == "XXXO"){
clipLayer.setChildIndex(clipArray[_local3][_local5], (clipLayer.numChildren - 1));
};
if (clipArray[_local3][_local5].currentLabel == "XOXX"){
clipLayer.setChildIndex(clipArray[_local3][_local5], (clipLayer.numChildren - 1));
};
if (clipArray[_local3][_local5].currentLabel == "XXOX"){
clipLayer.setChildIndex(clipArray[_local3][_local5], (clipLayer.numChildren - 1));
};
if (clipArray[_local3][_local5].currentLabel == "OXXX"){
clipLayer.setChildIndex(clipArray[_local3][_local5], (clipLayer.numChildren - 1));
};
if (clipArray[_local3][_local5].currentLabel == "XXXX"){
clipLayer.setChildIndex(clipArray[_local3][_local5], (clipLayer.numChildren - 1));
};
if ((((((((((clipArray[_local3][_local5].currentLabel == "OOOO1")) || ((clipArray[_local3][_local5].currentLabel == "OOOO2")))) || ((clipArray[_local3][_local5].currentLabel == "OOOO3")))) || ((clipArray[_local3][_local5].currentLabel == "OOOO4")))) || ((clipArray[_local3][_local5].currentLabel == "OOOO5")))){
clipLayer.setChildIndex(clipArray[_local3][_local5], 0);
};
};
_local5++;
};
_local3++;
};
}
private function generateString():int{
var _local4:int;
var _local1:Array = new Array();
var _local2:int;
var _local3:int;
while (_local3 < 22) {
_local1 = new Array();
_local4 = 0;
while (_local4 < 12) {
if (layoutArray[_local3][_local4] < 10){
_local1[_local4] = ("0" + String(layoutArray[_local3][_local4]));
} else {
if (layoutArray[_local3][_local4] == CRATE_TANK){
_local2++;
};
_local1[_local4] = String(layoutArray[_local3][_local4]);
};
_local4++;
};
exportString = (exportString + _local1.join(""));
exportString = (exportString + "x");
_local1 = null;
_local3++;
};
exportString = (exportString + (String(startTanks) + "x"));
exportString = (exportString + (String(tanksToSave) + "x"));
exportString = (exportString + String(startCash));
return (_local2);
}
private function addToLevel(_arg1:int, _arg2:int){
if ((((((mouseX >= 10)) && ((mouseX < 670)))) && ((((mouseY >= 10)) && ((mouseY < 370)))))){
if (((!((layoutArray[_arg1][_arg2] == addCode))) && (!((((addCode == WATER_TYPE)) && (isWater(layoutArray[_arg1][_arg2]))))))){
if (((((!((layoutArray[_arg1][_arg2] == 0))) && (!((layoutArray[_arg1][_arg2] == 10))))) && (!((layoutArray[_arg1][_arg2] == 11))))){
layoutArray[_arg1][_arg2] = 0;
clipLayer.removeChild(clipArray[_arg1][_arg2]);
setWater((_arg1 - 1), _arg2);
setWater((_arg1 + 1), _arg2);
setWater(_arg1, (_arg2 - 1));
setWater(_arg1, (_arg2 + 1));
updateWater();
};
if (((!((layoutArray[_arg1][_arg2] == 10))) && (!((layoutArray[_arg1][_arg2] == 11))))){
GameManager.playFx(EDITORPLACE);
layoutArray[_arg1][_arg2] = addCode;
clipArray[_arg1][_arg2] = new addType();
clipArray[_arg1][_arg2].rotation = rotateValue;
clipArray[_arg1][_arg2].x = (((CellFromPos(mouseX) + 1) * CELLSIZE) - 5);
clipArray[_arg1][_arg2].y = (((CellFromPos(mouseY) + 1) * CELLSIZE) - 5);
clipLayer.addChild(clipArray[_arg1][_arg2]);
if (isWater(layoutArray[_arg1][_arg2])){
setWater(_arg1, _arg2);
setWater((_arg1 - 1), _arg2);
setWater((_arg1 + 1), _arg2);
setWater(_arg1, (_arg2 - 1));
setWater(_arg1, (_arg2 + 1));
updateWater();
};
};
};
};
}
private function addIconClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
mouseMode = ADD_MODE;
hoverEditor.gotoAndStop("addMode");
addCode = _arg1.target.addValue;
addType = _arg1.target.addType;
rotateValue = _arg1.target.rotateValue;
selectedIcon.x = _arg1.target.x;
}
private function isWater(_arg1:int):Boolean{
if ((((_arg1 >= 70)) && ((_arg1 <= 90)))){
return (true);
};
return (false);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
private function deleteIconClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
mouseMode = DELETE_MODE;
selectedIcon.x = _arg1.target.x;
hoverEditor.gotoAndStop("deleteMode");
}
private function clearSet(){
label1.text = "";
label2.text = "";
label3.text = "";
label4.text = "";
label5.text = "";
label6.text = "";
label7.text = "";
label8.text = "";
label9.text = "";
label10.text = "";
var _local1:int;
while (_local1 < addIcons[currentSet].length) {
removeChild(addIcons[currentSet][_local1]);
_local1++;
};
}
private function selectIconClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
mouseMode = SELECT_MODE;
selectedIcon.x = _arg1.target.x;
hoverEditor.gotoAndStop("selectMode");
}
private function addIconActions(_arg1:Object, _arg2:int){
_arg1.addEventListener(MouseEvent.CLICK, addIconClicked);
_arg1.buttonMode = true;
_arg1.useHandCursor = true;
addIcons[_arg2].push(_arg1);
}
private function shareLevel(){
if (exportString.indexOf("ERROR") == -1){
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, shareLevelTimerFired);
delayTimer.start();
exportScreen.gotoAndStop("loading");
LevelShareManager.addLevel(exportScreen.levelNameText.text, exportString);
} else {
GameManager.playFx(LOADERROR);
};
}
private function testClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
exportString = "";
generateString();
GameManager.initiateTestLevel(exportString);
}
private function copyClipboardClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
System.setClipboard(exportString);
exportScreen.doneIndicator.visible = true;
}
private function userLevelsPurchased(_arg1:PaymentEvent){
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_SUCCESSFUL, userLevelsPurchased);
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_FAILED, userLevelsCancelled);
shareLevel();
}
private function displaySetClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
clearSet();
if (_arg1.target == levEdObstacles){
currentSet = OBSTACLE_SET;
};
if (_arg1.target == levEdLaunchers){
currentSet = LAUNCHER_SET;
};
if (_arg1.target == levEdSentries){
currentSet = SENTRY_SET;
};
if (_arg1.target == levEdPatrollers){
currentSet = PATROLLER_SET;
};
if (_arg1.target == levEdHunters){
currentSet = HUNTER_SET;
};
if (_arg1.target == levEdPowerUps){
currentSet = POWERUP_SET;
};
displaySet(currentSet);
mouseMode = SELECT_MODE;
selectedIcon.x = 233;
hoverEditor.gotoAndStop("selectMode");
}
private function mousePressed(_arg1:MouseEvent){
var _local2:int = CellFromPos(mouseX);
var _local3:int = CellFromPos(mouseY);
mouseIsDown = true;
if ((((((mouseX >= 10)) && ((mouseX < 670)))) && ((((mouseY >= 10)) && ((mouseY < 370)))))){
if ((((mouseMode == SELECT_MODE)) && (!((layoutArray[_local2][_local3] == 0))))){
selectType = layoutArray[_local2][_local3];
prevX = _local2;
prevY = _local3;
prevXPos = clipArray[_local2][_local3].x;
prevYPos = clipArray[_local2][_local3].y;
};
if ((((mouseMode == DELETE_MODE)) && (!((layoutArray[_local2][_local3] == 0))))){
if (((!((layoutArray[_local2][_local3] == 10))) && (!((layoutArray[_local2][_local3] == 11))))){
GameManager.playFx(EDITORREMOVE);
clipLayer.removeChild(clipArray[_local2][_local3]);
clipArray[_local2][_local3] = null;
layoutArray[_local2][_local3] = 0;
setWater((_local2 - 1), _local3);
setWater((_local2 + 1), _local3);
setWater(_local2, (_local3 - 1));
setWater(_local2, (_local3 + 1));
updateWater();
};
};
};
}
private function removeExportScreen(){
GameManager.playFx(LEVELCLICK);
removeChild(exportScreen);
exportScreen.okButton.removeEventListener(MouseEvent.CLICK, exportOkClicked);
exportScreen.copyToClipboardButton.removeEventListener(MouseEvent.CLICK, copyClipboardClicked);
exportString = "";
exportScreen.doneIndicator.visible = false;
exportScreen.levelCodeText.text = "";
activate();
}
}
}//package
Section 132
//LevelFade (LevelFade)
package {
import flash.display.*;
public dynamic class LevelFade extends Sprite {
}
}//package
Section 133
//LevelLoadingClip (LevelLoadingClip)
package {
import flash.display.*;
public dynamic class LevelLoadingClip extends MovieClip {
}
}//package
Section 134
//LevelMarker (LevelMarker)
package {
import flash.events.*;
import flash.display.*;
import mochi.*;
import flash.text.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class LevelMarker extends MovieClip {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const ATTACKCONTROL:int = 2;
const STORYTHEME:int = 4;
const WATER_TOP:int = 76;
public var levelNumber:int;// = 0
public var isAvailable:Boolean;// = false
public var isBeaten:Boolean;// = false
public var beatenFlag:BeatenFlag;
public var levelLabel:TextField;
public function LevelMarker(_arg1:int){
addFrameScript(0, frame1, 1, frame2);
this.buttonMode = true;
this.useHandCursor = true;
this.mouseChildren = false;
levelNumber = _arg1;
gotoAndStop("unavailable");
beatenFlag.visible = false;
levelLabel.text = ("Mission " + String(_arg1));
levelLabel.textColor = 0x6600;
}
private function mouseOverClip(_arg1:MouseEvent){
var _local2:int;
var _local3:int;
if (isAvailable){
levelLabel.textColor = 0xFF00;
_local2 = 0;
while (_local2 < FIELDHEIGHT) {
_local3 = 0;
while (_local3 < FIELDWIDTH) {
if ((((GameManager.levelInfo[levelNumber].levelLayoutArray[_local3][_local2] >= SENTRY_EASY)) && ((GameManager.levelInfo[levelNumber].levelLayoutArray[_local3][_local2] <= TURNER_UP_LEFT)))){
GameManager.levelSelect.levelLayout[_local3][_local2].gotoAndStop("enemy");
} else {
if ((((GameManager.levelInfo[levelNumber].levelLayoutArray[_local3][_local2] >= WATER_NONE1)) && ((GameManager.levelInfo[levelNumber].levelLayoutArray[_local3][_local2] <= WATER_TYPE)))){
GameManager.levelSelect.levelLayout[_local3][_local2].gotoAndStop("water");
} else {
if ((((GameManager.levelInfo[levelNumber].levelLayoutArray[_local3][_local2] >= TREE1)) && ((GameManager.levelInfo[levelNumber].levelLayoutArray[_local3][_local2] <= TREE2)))){
GameManager.levelSelect.levelLayout[_local3][_local2].gotoAndStop("tree");
} else {
GameManager.levelSelect.levelLayout[_local3][_local2].gotoAndStop("blank");
};
};
};
_local3++;
};
_local2++;
};
};
GameManager.levelSelect.levelNameText.text = GameManager.levelInfo[levelNumber].levelName;
if (isAvailable){
if (isBeaten){
GameManager.levelSelect.statusText.text = "Status: Complete";
GameManager.levelSelect.bestScoreText.text = ("Best Score: " + String(GameManager.levelInfo[levelNumber].bestScore));
} else {
GameManager.levelSelect.statusText.text = "Status: Available";
};
} else {
GameManager.levelSelect.statusText.text = "Status: Unavailable";
};
}
public function deactivate(){
if (isAvailable){
removeEventListener(MouseEvent.CLICK, startLevel);
};
removeEventListener(MouseEvent.ROLL_OVER, mouseOverClip);
removeEventListener(MouseEvent.ROLL_OUT, mouseOutClip);
}
function frame2(){
stop();
}
function frame1(){
stop();
}
public function makeBeaten(){
isBeaten = true;
beatenFlag.visible = true;
}
private function startLevel(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
GameManager.leaveLevelSelect();
GameManager.initiateMission(levelNumber);
}
public function makeAvailable(){
addEventListener(MouseEvent.CLICK, startLevel);
isAvailable = true;
gotoAndStop("available");
levelLabel.textColor = 377106;
if (isBeaten){
beatenFlag.visible = true;
};
}
public function activate(){
addEventListener(MouseEvent.ROLL_OVER, mouseOverClip);
addEventListener(MouseEvent.ROLL_OUT, mouseOutClip);
}
private function mouseOutClip(_arg1:MouseEvent){
var _local2:int;
var _local3:int;
if (isAvailable){
levelLabel.textColor = 377106;
_local2 = 0;
while (_local2 < FIELDWIDTH) {
_local3 = 0;
while (_local3 < FIELDHEIGHT) {
GameManager.levelSelect.levelLayout[_local2][_local3].gotoAndStop("unknown");
_local3++;
};
_local2++;
};
};
GameManager.levelSelect.levelNameText.text = "";
GameManager.levelSelect.statusText.text = "";
GameManager.levelSelect.bestScoreText.text = "";
}
}
}//package
Section 135
//LevelMusic (LevelMusic)
package {
import flash.media.*;
public dynamic class LevelMusic extends Sound {
}
}//package
Section 136
//LevelScreen (LevelScreen)
package {
import flash.events.*;
import flash.display.*;
import caurina.transitions.*;
import flash.geom.*;
import mochi.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class LevelScreen extends Sprite {
const CRATE_TANK:int = 17;
const IN_PROGRESS:int = 2;
const BUILD_COMPLETE:int = 15;
const PATROLLER_TYPE:int = 112;
const HALFCELL:int = 15;
const LEFT:int = 3;
const CRATEMONEYADDED:int = 100;
const HORIZONTAL:int = 6;
const TANKMOVEOFFSET:int = 10;
const HUDDEPTH:int = 0;
const WATER_TOPRIGHT:int = 80;
const EDITORREMOVE:int = 13;
const BUILDTANK:int = 6;
const HUDOFFSET:int = 20;
const SHELLFIRE:int = 3;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const TREE2:int = 92;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TWO_MEGATON:int = 15;
const TURNER_TYPE:int = 111;
const LAST_LEVEL:int = 10;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const RATE_1:int = 120;
const RATE_2:int = 100;
const RATE_3:int = 70;
const RATE_4:int = 30;
const DOWN:int = 2;
const MOVEMENT_GOAL:int = 10;
const WONLEVEL:int = 15;
const WATER_RIGHT:int = 77;
const WATER_TOPRIGHTLEFT:int = 86;
const STORYSTATE:int = 4;
const LOADERROR:int = 14;
const LEVELTHEME:int = 2;
const PATROLLER_LEFT:int = 43;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const CRATE_MONEY:int = 15;
const COLLISIONDISTANCE:int = 20;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const ARMOR_3:int = 200;
const ARMOR_4:int = 400;
const DROP_NO:int = 30;
const LEVEL_WON:int = 3;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const STATION_SPEED:int = 19;
const TURNER_LEFT_RIGHT:int = 52;
const SENTRY_HARD:int = 27;
const MAXDISTANCE:int = 10000;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const PLAYER1:int = 1;
const PATROLLER_DOWN:int = 42;
const TURNER_DOWN_LEFT:int = 55;
const WATER_TYPE:int = 90;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const RANGE_1:int = 80;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const FOUR_MEGATON:int = 40;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const RANGECONTROL:int = 4;
const PATHDEPTH:int = 0;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const TRANSMISSION:int = 17;
const UPPERHUDOFFSET:int = -20;
const TITLE_STARTGAME:int = 1;
const KAMIKAZE_DOWN:int = 32;
const MOVINGDOWN:int = 2;
const ATTACKCONTROL:int = 2;
const ATTACK_LASER:int = 25;
const RIGHT:int = 1;
const STORYTHEME:int = 4;
const WATER_TOP:int = 76;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const LEVELTEXTSIZE:int = 12;
const SPEED_1:Number = 1.25;
const SPEED_3:Number = 2.5;
const SPEED_4:Number = 4;
const SPEED_2:Number = 1.75;
const TURNING:int = 6;
const BUILDTIME:int = 80;
const MISSION_TYPE:int = 2;
const KAMIKAZE_RIGHT:int = 31;
const STATION_RANGE:int = 23;
const STATION_ARMOR:int = 20;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const WAITING:int = 9;
const NOENEMY:int = -50;
const WATER_LEFT:int = 79;
const WATER_TOPBOTTOM:int = 81;
const WATER_TOPBOTTOMLEFT:int = 85;
const MOVINGRIGHT:int = 1;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const UP:int = 4;
const ADD_MODE:int = 2;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const BUILDING:int = 14;
const UNITEXPLODE:int = 5;
const NODIRECTION:int = 0;
const LOSTLEVEL:int = 16;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const HUNTER_SET:int = 4;
const SELECT_MODE:int = 1;
const MENU_RESUME:int = 1;
const GOAL:int = 11;
const ATTACK_NO:int = 20;
const COMPUTER:int = 2;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const LAUNCHER_SET:int = 1;
const TURNER_RIGHT_RIGHT:int = 50;
const SCORETEXTSIZE:int = 10;
const SPEEDCONTROL:int = 0;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const ARMORCONTROL:int = 1;
const DAMAGE_1:Number = 1;
const DAMAGE_2:Number = 1.25;
const DAMAGE_3:Number = 1.75;
const DAMAGE_4:Number = 2.5;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const MOVINGUP:int = 4;
const WATER_TOPLEFT:int = 82;
const VERTICAL:int = 5;
const BUILD_STARTED:int = 16;
const BUILDER:int = 10;
const LEVELSTATE:int = 2;
const EDITORPLACE:int = 12;
const SENTRY_TYPE:int = 102;
const DROP_MINE:int = 35;
const DELETE_MODE:int = 3;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const WATER_RIGHTBOTTOM:int = 88;
const SENTRY_SET:int = 2;
const PATROLLER_UP:int = 40;
const SHELLLAND:int = 4;
private var levelFade:LevelFade;
private var levelMenuButton:MenuButton;
private var sandArray:Array;
private var explosionArray:Array;
private var backdrop:Sprite;
private var isCellSelected:Boolean;// = false
private var tutorialHover:TutorialHover;
public var levelStatus:int;// = 1
private var createTanksCrates:int;// = 0
private var levelDisplay:LevelDisplay;
public var levelString:String;// = ""
private var renderer:BitmapRenderer;
private var tanksToSave:int;// = 0
private var isBuilderSelected:Boolean;// = false
private var isMouseDown:Boolean;// = false
private var playMoreGamesButton:SponsorButton;
private var pathDisplay:Sprite;
public var levelType:int;// = 0
private var interfaceChrome:InterfaceChrome;
private var storyShown:Boolean;// = false
private var selectedClips:Array;
private var interfaceDisplay:Sprite;
private var playerBuilder:MapCell;
private var smokeTrails:Array;
public var currentLevel:int;// = 0
private var tutorialBox:TutorialBox;
private var playerGoal:MapCell;
private var unitID:int;// = 1
private var selectedBuilderId:int;// = 0
private var storyScreen:StoryScreen;
private var tanksAlotted:int;// = 0
private var resumeGameButton:ResumeGameButton;
public var previousBestScore:int;// = 0
private var projectileArray:Array;
private var playExplodeSound:Boolean;// = false
private var exitButton:ExitButton;
private var goalDisplay:GoalDisplay;
private var playerBuilderControls:Array;
private var powerUpEffects:Array;
private var mapArray:Array;
private var goalEffects:Array;
private var timeCounter:int;// = 0
private var playerTanks:Array;
private var currentlySelectedCell:MapCell;
private var levelOver:Boolean;// = false
public var score:int;// = 0
private var enemiesDestroyed:int;// = 0
private var unitDisplay:Sprite;
private var upgradeLevels:Array;
public var levelWon:Boolean;// = false
private var time:int;// = 0
private var hoverClip:HoverClip;
private var unitExplosionArray:Array;
public var levelBonus:int;// = 0
public var isPaused:Boolean;// = false
private var resetLevelButton:ResetLevelButton;
private var storyContinueButton:NewMissionButton;
private var levelLayoutArray:Array;
private var warningScreen:WarningScreen;
private var mainBuilderControl:MainBuilderControl;
private var tanksSaved:int;// = 0
private var buildingDisplay:Sprite;
private var groundRenderer:BitmapRenderer;
private var levelSummary:LevelSummary;
private var sandDisplay:Sprite;
private var enemyArray:Array;
private var groundEffectDisplay:Sprite;
private var mapDisplay:Sprite;
private var hudDisplay:Sprite;
private var explosionDisplay:Sprite;
public function LevelScreen(_arg1:int, _arg2:String, _arg3:int){
var _local7:MapCell;
var _local8:TankBuilderControls;
var _local10:int;
mapArray = new Array();
levelLayoutArray = new Array();
playerBuilderControls = new Array();
selectedClips = new Array();
playerTanks = new Array();
enemyArray = new Array();
sandArray = new Array();
explosionArray = new Array();
unitExplosionArray = new Array();
powerUpEffects = new Array();
goalEffects = new Array();
smokeTrails = new Array();
projectileArray = new Array();
upgradeLevels = new Array();
hoverClip = new HoverClip();
levelFade = new LevelFade();
renderer = new BitmapRenderer(new Rectangle(10, 10, 660, 360));
groundRenderer = new BitmapRenderer(new Rectangle(10, 10, 660, 360));
interfaceChrome = new InterfaceChrome();
goalDisplay = new GoalDisplay();
levelDisplay = new LevelDisplay();
levelMenuButton = new MenuButton();
resetLevelButton = new ResetLevelButton();
exitButton = new ExitButton();
playMoreGamesButton = new SponsorButton();
resumeGameButton = new ResumeGameButton();
storyScreen = new StoryScreen();
warningScreen = new WarningScreen();
pathDisplay = new Sprite();
mapDisplay = new Sprite();
hudDisplay = new Sprite();
groundEffectDisplay = new Sprite();
buildingDisplay = new Sprite();
unitDisplay = new Sprite();
explosionDisplay = new Sprite();
interfaceDisplay = new Sprite();
sandDisplay = new Sprite();
super();
var _local4:Array = new Array();
var _local5:int;
levelString = _arg2;
_local4 = _arg2.split("x");
tanksAlotted = int(_local4[22]);
tanksToSave = int(_local4[23]);
_local5 = int(_local4[24]);
_local4.splice(22, 3);
var _local6:int;
while (_local6 < 22) {
levelLayoutArray[_local6] = new Array();
_local10 = 0;
while (_local10 < 24) {
if ((_local10 % 2) == 0){
levelLayoutArray[_local6][(_local10 / 2)] = ((int(_local4[_local6].charAt(_local10)) * 10) + int(_local4[_local6].charAt((_local10 + 1))));
};
_local10++;
};
_local6++;
};
currentLevel = _arg1;
levelType = _arg3;
if (levelType == MISSION_TYPE){
levelBonus = GameManager.levelInfo[currentLevel].levelBonus;
previousBestScore = GameManager.levelInfo[currentLevel].bestScore;
};
backdrop = new GrassBackground();
mainBuilderControl = new MainBuilderControl(_local5, tanksAlotted);
backdrop.x = 10;
backdrop.y = 10;
addChild(backdrop);
addChild(pathDisplay);
addChild(mapDisplay);
addChild(sandDisplay);
addChild(hudDisplay);
addChild(groundEffectDisplay);
addChild(unitDisplay);
addChild(buildingDisplay);
addChild(explosionDisplay);
addChild(interfaceDisplay);
explosionDisplay.addChild(renderer);
groundEffectDisplay.addChild(groundRenderer);
_local6 = 0;
while (_local6 < 22) {
mapArray[_local6] = new Array();
_local10 = 0;
while (_local10 < 12) {
_local7 = new MapCell(PosFromCell(_local6), PosFromCell(_local10), false);
mapArray[_local6].push(_local7);
mapArray[_local6][_local10].contents = levelLayoutArray[_local6][_local10];
switch (mapArray[_local6][_local10].contents){
case GOAL:
mapArray[_local6][_local10].setMapItem(GOAL);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
playerGoal = mapArray[_local6][_local10];
break;
case BUILDER:
mapArray[_local6][_local10].setMapItem(BUILDER);
buildingDisplay.addChild(mapArray[_local6][_local10].mapClip);
playerBuilder = mapArray[_local6][_local10];
break;
case MINE:
mapArray[_local6][_local10].setMapItem(MINE);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case CRATE_HEALTH:
mapArray[_local6][_local10].setMapItem(CRATE_HEALTH);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case CRATE_MONEY:
mapArray[_local6][_local10].setMapItem(CRATE_MONEY);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case CRATE_SIDESWITCHER:
mapArray[_local6][_local10].setMapItem(CRATE_SIDESWITCHER);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case CRATE_TANK:
mapArray[_local6][_local10].setMapItem(CRATE_TANK);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
createTanksCrates++;
break;
case STATION_SPEED:
mapArray[_local6][_local10].setMapItem(STATION_SPEED);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case STATION_ARMOR:
mapArray[_local6][_local10].setMapItem(STATION_ARMOR);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case STATION_ATTACK:
mapArray[_local6][_local10].setMapItem(STATION_ATTACK);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case STATION_RATE:
mapArray[_local6][_local10].setMapItem(STATION_RATE);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case STATION_RANGE:
mapArray[_local6][_local10].setMapItem(STATION_RANGE);
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case SENTRY_EASY:
newUnit(SENTRY_EASY, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].pointDirection = SENTRY_EASY;
break;
case SENTRY_MEDIUM:
newUnit(SENTRY_MEDIUM, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].pointDirection = SENTRY_MEDIUM;
break;
case SENTRY_HARD:
newUnit(SENTRY_HARD, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].pointDirection = SENTRY_HARD;
break;
case KAMIKAZE_DOWN:
newUnit(KAMIKAZE_DOWN, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].pointDirection = KAMIKAZE_DOWN;
break;
case KAMIKAZE_RIGHT:
newUnit(KAMIKAZE_RIGHT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].pointDirection = KAMIKAZE_RIGHT;
break;
case KAMIKAZE_LEFT:
newUnit(KAMIKAZE_LEFT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].pointDirection = KAMIKAZE_LEFT;
break;
case KAMIKAZE_UP:
newUnit(KAMIKAZE_UP, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].pointDirection = KAMIKAZE_UP;
break;
case PATROLLER_UP:
newUnit(PATROLLER_UP, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case PATROLLER_RIGHT:
newUnit(PATROLLER_RIGHT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case PATROLLER_DOWN:
newUnit(PATROLLER_DOWN, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case PATROLLER_LEFT:
newUnit(PATROLLER_LEFT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case HOMINGMISSLEBUILDER:
newUnit(HOMINGMISSLEBUILDER, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].pointDirection = HOMINGMISSLEBUILDER;
break;
case TURNER_RIGHT_RIGHT:
newUnit(TURNER_RIGHT_RIGHT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case TURNER_DOWN_RIGHT:
newUnit(TURNER_DOWN_RIGHT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case TURNER_LEFT_RIGHT:
newUnit(TURNER_LEFT_RIGHT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case TURNER_UP_RIGHT:
newUnit(TURNER_UP_RIGHT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case TURNER_RIGHT_LEFT:
newUnit(TURNER_RIGHT_LEFT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case TURNER_DOWN_LEFT:
newUnit(TURNER_DOWN_LEFT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case TURNER_LEFT_LEFT:
newUnit(TURNER_LEFT_LEFT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case TURNER_UP_LEFT:
newUnit(TURNER_UP_LEFT, mapArray[_local6][_local10].xPos, mapArray[_local6][_local10].yPos);
mapArray[_local6][_local10].contents = NODIRECTION;
break;
case TREE1:
mapArray[_local6][_local10].setMapItem(TREE1);
buildingDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
case TREE2:
mapArray[_local6][_local10].setMapItem(TREE2);
buildingDisplay.addChild(mapArray[_local6][_local10].mapClip);
break;
default:
if ((((mapArray[_local6][_local10].contents >= 70)) && ((mapArray[_local6][_local10].contents <= WATER_TYPE)))){
mapArray[_local6][_local10].pointDirection = WATER_TYPE;
mapArray[_local6][_local10].setMapItem(mapArray[_local6][_local10].contents);
if ((((mapArray[_local6][_local10].contents >= 70)) && ((mapArray[_local6][_local10].contents <= 74)))){
mapDisplay.addChildAt(mapArray[_local6][_local10].mapClip, 0);
} else {
mapDisplay.addChild(mapArray[_local6][_local10].mapClip);
};
mapArray[_local6][_local10].contents = WATER_TYPE;
};
break;
};
_local10++;
};
_local6++;
};
updateWater();
mapDisplay.setChildIndex(playerGoal.mapClip, (mapDisplay.numChildren - 1));
interfaceDisplay.addChild(interfaceChrome);
mainBuilderControl.x = 145;
mainBuilderControl.y = 450;
interfaceDisplay.addChild(mainBuilderControl);
goalDisplay.x = 25;
goalDisplay.y = 392;
goalDisplay.goalText.text = ((String(tanksSaved) + "/") + String(tanksToSave));
interfaceDisplay.addChild(goalDisplay);
levelDisplay.x = 25;
levelDisplay.y = 437;
if (currentLevel == -10){
levelDisplay.levelText.text = "";
if (levelType == 4){
levelDisplay.levelText.text = GameManager.userLevelName;
};
} else {
levelDisplay.levelText.text = GameManager.levelInfo[currentLevel].levelName;
};
levelDisplay.timeText.text = String(time);
interfaceDisplay.addChild(levelDisplay);
levelMenuButton.x = 144;
levelMenuButton.y = 394;
addChild(levelMenuButton);
var _local9:int;
while (_local9 < 5) {
_local8 = new TankBuilderControls(_local9);
playerBuilderControls.push(_local8);
playerBuilderControls[_local9].x = (248 + ((_local9 + 1) * 68));
playerBuilderControls[_local9].y = 392;
interfaceDisplay.addChild(playerBuilderControls[_local9]);
_local9++;
};
hoverClip.x = 100;
hoverClip.y = 100;
interfaceDisplay.addChild(hoverClip);
hoverClip.visible = false;
hoverClip.buttonMode = true;
hoverClip.useHandCursor = true;
levelFade.alpha = 1;
levelFade.x = 10;
levelFade.y = 10;
interfaceDisplay.addChild(levelFade);
}
private function hideSummary(){
if (levelType == 4){
GameManager.userLevelSubmit = true;
GameManager.userLevelPlays++;
if (levelWon){
GameManager.userLevelWins++;
};
GameManager.userLevelRatings = (GameManager.userLevelRatings + levelSummary.ratingWidget.currentRating);
levelSummary.ratingWidget.deactivate();
};
levelSummary.tryAgainButton.removeEventListener(MouseEvent.CLICK, restartClicked);
levelSummary.newMissionButton.removeEventListener(MouseEvent.CLICK, exitClicked);
interfaceDisplay.removeChild(levelSummary);
}
private function stepLevel(_arg1:Event){
var _local2:int;
var _local3:Boolean;
var _local4:int;
var _local5:int;
var _local7:int;
var _local9:int;
var _local11:int;
var _local13:int;
var _local16:*;
var _local17:int;
var _local18:int;
var _local19:int;
var _local20:Number;
var _local21:int;
var _local22:int;
var _local23:int;
var _local24:int;
var _local25:Smoke;
var _local26:Explosion;
var _local27:int;
var _local28:int;
var _local29:int;
var _local30:Number;
_local2 = 0;
_local3 = false;
playExplodeSound = false;
_local4 = 0;
_local5 = 0;
while (_local5 < 5) {
_local4 = (_local4 + playerBuilderControls[_local5].costAmount);
_local5++;
};
mainBuilderControl.tankCost = _local4;
timeCounter++;
if (timeCounter >= 35){
time++;
timeCounter = 0;
levelDisplay.timeText.text = String(time);
};
goalDisplay.goalText.text = ((String(tanksSaved) + "/") + String(tanksToSave));
if (tanksSaved >= tanksToSave){
if (((!(levelWon)) && (!(levelOver)))){
levelOver = true;
levelWon = true;
deactivateControls();
levelFade.alpha = 0;
interfaceDisplay.addChild(levelFade);
GameManager.stopMusic();
Tweener.addTween(levelFade, {alpha:1, transition:"linear", time:1, onComplete:showSummary});
};
} else {
if (((((tanksToSave - tanksSaved) > ((mainBuilderControl.tanksAvailable + playerTanks.length) + createTanksCrates))) && (!(mainBuilderControl.isBusy)))){
if (!levelOver){
levelOver = true;
levelWon = false;
deactivateControls();
levelFade.alpha = 0;
interfaceDisplay.addChild(levelFade);
GameManager.stopMusic();
Tweener.addTween(levelFade, {alpha:1, transition:"linear", time:1, onComplete:showSummary});
};
} else {
if (((((((((tanksToSave - tanksSaved) >= ((mainBuilderControl.tanksAvailable + playerTanks.length) + createTanksCrates))) && ((mainBuilderControl.tanksAvailable == 0)))) && ((playerTanks.length == 0)))) && (!(mainBuilderControl.isBusy)))){
if (!levelOver){
levelOver = true;
levelWon = false;
deactivateControls();
levelFade.alpha = 0;
interfaceDisplay.addChild(levelFade);
GameManager.stopMusic();
Tweener.addTween(levelFade, {alpha:1, transition:"linear", time:1, onComplete:showSummary});
};
};
};
};
if ((((((mouseX >= 10)) && ((mouseX < 670)))) && ((((mouseY >= 10)) && ((mouseY < 370)))))){
hoverClip.x = ((CellFromPos(mouseX) * CELLSIZE) + OFFSETDISTANCE);
hoverClip.y = ((CellFromPos(mouseY) * CELLSIZE) + OFFSETDISTANCE);
if (currentLevel == 0){
_local23 = CellFromPos(mouseX);
_local24 = CellFromPos(mouseY);
if ((((_local23 == 2)) && ((_local24 == 9)))){
tutorialHover.gotoAndStop("builder");
tutorialHover.visible = true;
} else {
if ((((_local23 == 19)) && ((_local24 == 2)))){
tutorialHover.gotoAndStop("goal");
tutorialHover.visible = true;
} else {
if ((((_local23 == 15)) && ((_local24 == 2)))){
tutorialHover.gotoAndStop("mine");
tutorialHover.visible = true;
} else {
if ((((_local23 == 13)) && ((_local24 == 3)))){
tutorialHover.gotoAndStop("powerups");
tutorialHover.visible = true;
} else {
if ((((_local23 == 5)) && ((_local24 == 7)))){
tutorialHover.gotoAndStop("stations");
tutorialHover.visible = true;
} else {
if ((((((_local23 == 10)) && ((_local24 == 2)))) || ((((_local23 == 14)) && ((_local24 == 10)))))){
tutorialHover.gotoAndStop("enemies");
tutorialHover.visible = true;
} else {
tutorialHover.visible = false;
};
};
};
};
};
};
};
if (mapArray[CellFromPos(hoverClip.x)][CellFromPos(hoverClip.y)].isPath){
hoverClip.visible = true;
} else {
hoverClip.visible = false;
};
if (((isMouseDown) && (isCellSelected))){
if (((!((CellFromPos(mouseX) == CellFromPos(currentlySelectedCell.xPos)))) || (!((CellFromPos(mouseY) == CellFromPos(currentlySelectedCell.yPos)))))){
_local2 = getMouseDirection();
switch (_local2){
case UP:
if ((((CellFromPos(mouseX) == currentlySelectedCell.xCell)) && ((CellFromPos(mouseY) == (currentlySelectedCell.yCell - 1))))){
_local3 = true;
};
break;
case RIGHT:
if ((((CellFromPos(mouseX) == (currentlySelectedCell.xCell + 1))) && ((CellFromPos(mouseY) == currentlySelectedCell.yCell)))){
_local3 = true;
};
break;
case DOWN:
if ((((CellFromPos(mouseX) == currentlySelectedCell.xCell)) && ((CellFromPos(mouseY) == (currentlySelectedCell.yCell + 1))))){
_local3 = true;
};
break;
case LEFT:
if ((((CellFromPos(mouseX) == (currentlySelectedCell.xCell - 1))) && ((CellFromPos(mouseY) == currentlySelectedCell.yCell)))){
_local3 = true;
};
break;
};
if (_local3){
clearPaths(currentlySelectedCell.xCell, currentlySelectedCell.yCell);
runPaths(currentlySelectedCell.xCell, currentlySelectedCell.yCell, _local2);
switch (_local2){
case UP:
if ((((mapArray[currentlySelectedCell.xCell][(currentlySelectedCell.yCell - 1)].pointDirection >= 0)) && ((mapArray[currentlySelectedCell.xCell][(currentlySelectedCell.yCell - 1)].pointDirection <= 4)))){
currentlySelectedCell = mapArray[currentlySelectedCell.xCell][(currentlySelectedCell.yCell - 1)];
};
break;
case RIGHT:
if ((((mapArray[(currentlySelectedCell.xCell + 1)][currentlySelectedCell.yCell].pointDirection >= 0)) && ((mapArray[(currentlySelectedCell.xCell + 1)][currentlySelectedCell.yCell].pointDirection <= 4)))){
currentlySelectedCell = mapArray[(currentlySelectedCell.xCell + 1)][currentlySelectedCell.yCell];
};
break;
case DOWN:
if ((((mapArray[currentlySelectedCell.xCell][(currentlySelectedCell.yCell + 1)].pointDirection >= 0)) && ((mapArray[currentlySelectedCell.xCell][(currentlySelectedCell.yCell + 1)].pointDirection <= 4)))){
currentlySelectedCell = mapArray[currentlySelectedCell.xCell][(currentlySelectedCell.yCell + 1)];
};
break;
case LEFT:
if ((((mapArray[(currentlySelectedCell.xCell - 1)][currentlySelectedCell.yCell].pointDirection >= 0)) && ((mapArray[(currentlySelectedCell.xCell - 1)][currentlySelectedCell.yCell].pointDirection <= 4)))){
currentlySelectedCell = mapArray[(currentlySelectedCell.xCell - 1)][currentlySelectedCell.yCell];
};
break;
};
currentlySelectedCell.pathClip.gotoAndStop("selected");
};
};
};
} else {
hoverClip.visible = false;
if (currentLevel == 0){
if ((((((mouseX >= 315)) && ((mouseX <= 645)))) && ((((mouseY >= 390)) && ((mouseY <= 450)))))){
tutorialHover.gotoAndStop("upgrades");
tutorialHover.visible = true;
} else {
if ((((((mouseX >= 215)) && ((mouseX <= 315)))) && ((((mouseY >= 390)) && ((mouseY <= 450)))))){
tutorialHover.gotoAndStop("buildbutton");
tutorialHover.visible = true;
} else {
tutorialHover.visible = false;
};
};
};
};
var _local6:int = projectileArray.length;
_local7 = (_local6 - 1);
while (_local7 >= 0) {
projectileArray[_local7].update();
_local25 = new Smoke(projectileArray[_local7].clip.x, projectileArray[_local7].clip.y);
renderer.addEmitter(_local25.smoke);
smokeTrails.push(_local25);
if (((projectileArray[_local7].removeClip) && (!(projectileArray[_local7].clipIsRemoved)))){
unitDisplay.removeChild(projectileArray[_local7].clip);
projectileArray[_local7].clipIsRemoved = true;
GameManager.playFx(SHELLLAND);
_local26 = new Explosion(projectileArray[_local7].targetX, projectileArray[_local7].targetY, projectileArray[_local7].payloadSize, projectileArray[_local7].payloadType, projectileArray[_local7].damageMultiplier);
renderer.addEmitter(_local26.smoke);
renderer.addEmitter(_local26.fire);
renderer.addEmitter(_local26.backFire);
renderer.addEmitter(_local26.centerFire);
explosionArray.push(_local26);
projectileArray.splice(_local7, 1);
};
_local7--;
};
var _local8:int = explosionArray.length;
_local9 = (_local8 - 1);
while (_local9 >= 0) {
if (explosionArray[_local9].smoke.particles.length <= 0){
renderer.removeEmitter(explosionArray[_local9].smoke);
renderer.removeEmitter(explosionArray[_local9].fire);
renderer.removeEmitter(explosionArray[_local9].backFire);
renderer.removeEmitter(explosionArray[_local9].centerFire);
explosionArray.splice(_local9, 1);
};
_local9--;
};
var _local10:int = unitExplosionArray.length;
_local11 = (_local10 - 1);
while (_local11 >= 0) {
if (unitExplosionArray[_local11].smoke.particles.length <= 0){
renderer.removeEmitter(unitExplosionArray[_local11].smoke);
renderer.removeEmitter(unitExplosionArray[_local11].backFire);
renderer.removeEmitter(unitExplosionArray[_local11].centerFire);
unitExplosionArray.splice(_local11, 1);
};
_local11--;
};
var _local12:int = powerUpEffects.length;
_local13 = (_local12 - 1);
while (_local13 >= 0) {
if (powerUpEffects[_local13].centerFire.particles.length <= 0){
groundRenderer.removeEmitter(powerUpEffects[_local13].centerFire);
powerUpEffects.splice(_local13, 1);
};
_local13--;
};
var _local14:int = goalEffects.length;
_local13 = (_local14 - 1);
while (_local13 >= 0) {
if (goalEffects[_local13].emitter.particles.length <= 0){
renderer.removeEmitter(goalEffects[_local13].emitter);
renderer.removeEmitter(goalEffects[_local13].centerFire);
renderer.removeEmitter(goalEffects[_local13].implode);
goalEffects.splice(_local13, 1);
};
_local13--;
};
var _local15:int = smokeTrails.length;
_local13 = (_local15 - 1);
while (_local13 >= 0) {
if (smokeTrails[_local13].smoke.particles.length <= 0){
renderer.removeEmitter(smokeTrails[_local13].smoke);
smokeTrails.splice(_local13, 1);
};
_local13--;
};
if (mainBuilderControl.buildStatus == BUILD_STARTED){
grabPath();
upgradeLevels[SPEEDCONTROL] = playerBuilderControls[SPEEDCONTROL].currentLevel;
upgradeLevels[ARMORCONTROL] = playerBuilderControls[ARMORCONTROL].currentLevel;
upgradeLevels[ATTACKCONTROL] = playerBuilderControls[ATTACKCONTROL].currentLevel;
upgradeLevels[RATECONTROL] = playerBuilderControls[RATECONTROL].currentLevel;
upgradeLevels[RANGECONTROL] = playerBuilderControls[RANGECONTROL].currentLevel;
mainBuilderControl.buildStatus = BUILDING;
mainBuilderControl.buildTankDisplay.costText.visible = false;
};
mainBuilderControl.updateProgress();
if (mainBuilderControl.buildStatus == BUILD_COMPLETE){
newUnit(TANK_TYPE, playerBuilder.xPos, playerBuilder.yPos);
mainBuilderControl.buildStatus = BUILDING;
mainBuilderControl.buildTankDisplay.costText.visible = true;
switch (playerBuilder.pointDirection){
case UP:
playerBuilder.mapClip.gotoAndPlay("openUp");
break;
case DOWN:
playerBuilder.mapClip.gotoAndPlay("openDown");
break;
case LEFT:
playerBuilder.mapClip.gotoAndPlay("openLeft");
break;
case RIGHT:
playerBuilder.mapClip.gotoAndPlay("openRight");
break;
};
};
unitProcessing(playerTanks);
unitProcessing(enemyArray);
_local16 = explosionArray.length;
_local17 = 0;
while (_local17 < _local16) {
explosionArray[_local17].damageActive = false;
_local17++;
};
_local18 = playerTanks.length;
_local19 = enemyArray.length;
_local20 = 0;
_local21 = (_local19 - 1);
while (_local21 >= 0) {
enemyArray[_local21].closestEnemyID = NOENEMY;
_local27 = (_local19 - 1);
while (_local27 >= 0) {
if (_local27 != _local21){
collisionChecker(enemyArray[_local21], enemyArray[_local27]);
};
_local27--;
};
_local21--;
};
_local22 = (_local18 - 1);
while (_local22 >= 0) {
if (playerTanks[_local22].isAlive){
playerTanks[_local22].closestEnemyID = NOENEMY;
playerTanks[_local22].distanceToEnemy = MAXDISTANCE;
_local28 = (_local19 - 1);
while (_local28 >= 0) {
if (enemyArray[_local28].isAlive){
if (_local22 == (_local18 - 1)){
enemyArray[_local28].closestEnemyID = NOENEMY;
enemyArray[_local28].distanceToEnemy = MAXDISTANCE;
};
_local20 = getDistance(enemyArray[_local28].clip.x, enemyArray[_local28].clip.y, playerTanks[_local22].clip.x, playerTanks[_local22].clip.y);
if ((((enemyArray[_local28].closestEnemyID == NOENEMY)) && ((_local20 <= enemyArray[_local28].range)))){
enemyArray[_local28].closestEnemyID = playerTanks[_local22].unitID;
enemyArray[_local28].closestEnemyX = playerTanks[_local22].clip.x;
enemyArray[_local28].closestEnemyY = playerTanks[_local22].clip.y;
enemyArray[_local28].distanceToEnemy = _local20;
} else {
if ((((_local20 <= enemyArray[_local28].range)) && ((_local20 < enemyArray[_local28].distanceToEnemy)))){
enemyArray[_local28].closestEnemyID = playerTanks[_local22].unitID;
enemyArray[_local28].closestEnemyX = playerTanks[_local22].clip.x;
enemyArray[_local28].closestEnemyY = playerTanks[_local22].clip.y;
enemyArray[_local28].distanceToEnemy = _local20;
};
};
if ((((playerTanks[_local22].closestEnemyID == NOENEMY)) && ((_local20 <= playerTanks[_local22].range)))){
playerTanks[_local22].closestEnemyID = enemyArray[_local28].unitID;
playerTanks[_local22].closestEnemyX = enemyArray[_local28].clip.x;
playerTanks[_local22].closestEnemyY = enemyArray[_local28].clip.y;
playerTanks[_local22].distanceToEnemy = _local20;
} else {
if ((((_local20 <= playerTanks[_local22].range)) && ((_local20 < playerTanks[_local22].distanceToEnemy)))){
playerTanks[_local22].closestEnemyID = enemyArray[_local28].unitID;
playerTanks[_local22].closestEnemyX = enemyArray[_local28].clip.x;
playerTanks[_local22].closestEnemyY = enemyArray[_local28].clip.y;
playerTanks[_local22].distanceToEnemy = _local20;
};
};
if (_local20 < COLLISIONDISTANCE){
_local30 = enemyArray[_local28].maxhealth;
if (playerTanks[_local22].maxhealth < _local30){
_local30 = playerTanks[_local22].maxhealth;
};
damageUnit(enemyArray[_local28], _local30, false);
damageUnit(playerTanks[_local22], _local30, false);
};
};
_local28--;
};
_local29 = (_local18 - 1);
while (_local29 >= 0) {
if (_local29 != _local22){
collisionChecker(playerTanks[_local29], playerTanks[_local22]);
};
_local29--;
};
};
_local22--;
};
if (playExplodeSound){
GameManager.playFx(UNITEXPLODE);
};
}
private function removeUnit(_arg1:Array, _arg2:int){
_arg1[_arg2].removeActions();
unitDisplay.removeChild(_arg1[_arg2].clip);
hudDisplay.removeChild(_arg1[_arg2].hud);
_arg1.splice(_arg2, 1);
}
public function collisionChecker(_arg1:Object, _arg2:Object){
var _local3:Number;
var _local4:Number;
_local4 = _arg1.maxhealth;
_local3 = getDistance(_arg1.clip.x, _arg1.clip.y, _arg2.clip.x, _arg2.clip.y);
if (((((((((_arg1.isAlive) && (_arg2.isAlive))) && (_arg1.clearedBuilder))) && (_arg2.clearedBuilder))) && ((_local3 < COLLISIONDISTANCE)))){
if (_arg2.maxhealth < _local4){
_local4 = _arg2.maxhealth;
};
damageUnit(_arg1, _local4, false);
damageUnit(_arg2, _local4, false);
};
}
private function ssLinkClicked(_arg1:MouseEvent){
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
}
private function grabPath(){
var _local1:Boolean;
var _local2:int = playerBuilder.xCell;
var _local3:int = playerBuilder.yCell;
var _local4:int = mapArray[_local2][_local3].pointDirection;
var _local5:int = _local4;
var _local6:int;
while (!(_local1)) {
if ((((((((_local2 >= FIELDWIDTH)) || ((_local3 >= FIELDHEIGHT)))) || ((_local2 < 0)))) || ((_local3 < 0)))){
_local1 = true;
break;
} else {
mapArray[_local2][_local3].assignedSpot = _local6;
if (mapArray[_local2][_local3].isEndPoint){
_local1 = true;
};
mainBuilderControl.pathArray.push(mapArray[_local2][_local3].pointDirection);
switch (mapArray[_local2][_local3].pointDirection){
case UP:
_local3--;
break;
case RIGHT:
_local2++;
break;
case DOWN:
_local3++;
break;
case LEFT:
_local2--;
break;
};
if ((((((((_local2 < FIELDWIDTH)) && ((_local3 < FIELDHEIGHT)))) && ((_local2 >= 0)))) && ((_local3 >= 0)))){
if (((((_local1) && ((mapArray[_local2][_local3].pointDirection >= RIGHT)))) && ((mapArray[_local2][_local3].pointDirection <= UP)))){
mainBuilderControl.pathArray.push((mapArray[_local2][_local3].assignedSpot + TANKMOVEOFFSET));
};
};
_local6++;
};
};
}
private function activateControls(){
stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
var _local1:int;
while (_local1 < 5) {
playerBuilderControls[_local1].activate();
_local1++;
};
mainBuilderControl.activate();
levelMenuButton.addEventListener(MouseEvent.CLICK, menuClicked);
}
public function activate(){
runPaths(playerBuilder.xCell, playerBuilder.yCell, RIGHT);
stage.stageFocusRect = false;
activateControls();
interfaceChrome.ssLink.addEventListener(MouseEvent.CLICK, ssLinkClicked);
addEventListener(Event.ENTER_FRAME, stepLevel);
if (currentLevel == 0){
tutorialHover = new TutorialHover();
interfaceDisplay.addChild(tutorialHover);
tutorialHover.visible = false;
tutorialBox = new TutorialBox();
tutorialBox.prevButton.visible = false;
interfaceDisplay.addChild(tutorialBox);
tutorialBox.closeButton.addEventListener(MouseEvent.CLICK, closeTutBox);
tutorialBox.nextButton.addEventListener(MouseEvent.CLICK, tutNext);
tutorialBox.prevButton.addEventListener(MouseEvent.CLICK, tutPrev);
};
}
public function removeFade(){
interfaceDisplay.removeChild(levelFade);
activate();
}
private function runPaths(_arg1:int, _arg2:int, _arg3:int){
var _local4:Boolean;
var _local5:Boolean;
while (!(_local4)) {
if ((((((((((((_arg1 >= FIELDWIDTH)) || ((_arg2 >= FIELDHEIGHT)))) || ((_arg1 < 0)))) || ((_arg2 < 0)))) || (mapArray[_arg1][_arg2].isPath))) || ((mapArray[_arg1][_arg2].pointDirection > 10)))){
_local4 = true;
break;
} else {
mapArray[_arg1][_arg2].isPath = true;
mapArray[_arg1][_arg2].isEndPoint = true;
pathDisplay.addChild(mapArray[_arg1][_arg2].pathClip);
mapArray[_arg1][_arg2].pointDirection = _arg3;
mapArray[_arg1][_arg2].pathClip.pathArrow.gotoAndStop(_arg3);
switch (_arg3){
case UP:
if (_local5){
mapArray[_arg1][(_arg2 + 1)].isEndPoint = false;
mapArray[_arg1][(_arg2 + 1)].pathClip.gotoAndStop("path");
};
_arg2--;
break;
case RIGHT:
if (_local5){
mapArray[(_arg1 - 1)][_arg2].isEndPoint = false;
mapArray[(_arg1 - 1)][_arg2].pathClip.gotoAndStop("path");
};
_arg1++;
break;
case DOWN:
if (_local5){
mapArray[_arg1][(_arg2 - 1)].isEndPoint = false;
mapArray[_arg1][(_arg2 - 1)].pathClip.gotoAndStop("path");
};
_arg2++;
break;
case LEFT:
if (_local5){
mapArray[(_arg1 + 1)][_arg2].isEndPoint = false;
mapArray[(_arg1 + 1)][_arg2].pathClip.gotoAndStop("path");
};
_arg1--;
break;
};
_local5 = true;
};
};
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
private function exitClicked(_arg1:MouseEvent){
interfaceChrome.ssLink.removeEventListener(MouseEvent.CLICK, ssLinkClicked);
if ((_arg1.target is ExitButton)){
removeMenuItems();
GameManager.playFx(LEVELCLICK);
GameManager.exitLevel();
} else {
if (!storyShown){
storyScreen.x = 70;
storyScreen.y = 75;
switch (currentLevel){
case 5:
storyShown = true;
GameManager.playFx(TRANSMISSION);
hideSummary();
interfaceDisplay.addChild(storyScreen);
storyScreen.tinkClip.gotoAndPlay(2);
storyScreen.startText(5);
storyContinueButton = new NewMissionButton();
storyContinueButton.x = 280;
storyContinueButton.y = 250;
interfaceDisplay.addChild(storyContinueButton);
storyContinueButton.addEventListener(MouseEvent.CLICK, exitClicked);
break;
case 10:
storyShown = true;
GameManager.playFx(TRANSMISSION);
hideSummary();
interfaceDisplay.addChild(storyScreen);
storyScreen.tinkClip.gotoAndPlay(2);
storyScreen.startText(10);
storyContinueButton = new NewMissionButton();
storyContinueButton.x = 280;
storyContinueButton.y = 250;
interfaceDisplay.addChild(storyContinueButton);
storyContinueButton.addEventListener(MouseEvent.CLICK, exitClicked);
break;
case 15:
storyShown = true;
GameManager.playFx(TRANSMISSION);
hideSummary();
interfaceDisplay.addChild(storyScreen);
storyScreen.tinkClip.gotoAndPlay(2);
storyScreen.startText(15);
storyContinueButton = new NewMissionButton();
storyContinueButton.x = 280;
storyContinueButton.y = 250;
interfaceDisplay.addChild(storyContinueButton);
storyContinueButton.addEventListener(MouseEvent.CLICK, exitClicked);
break;
case 20:
if (warningScreen.x != 28){
hideSummary();
GameManager.playFx(TRANSMISSION);
warningScreen.x = 28;
warningScreen.y = 40;
interfaceDisplay.addChild(warningScreen);
storyContinueButton = new NewMissionButton();
storyContinueButton.x = 280;
storyContinueButton.y = 270;
interfaceDisplay.addChild(storyContinueButton);
storyContinueButton.addEventListener(MouseEvent.CLICK, exitClicked);
} else {
GameManager.currentState = STORYSTATE;
GameManager.startMusic();
storyShown = true;
storyContinueButton.x = 280;
storyContinueButton.y = 250;
interfaceDisplay.removeChild(warningScreen);
interfaceDisplay.addChild(storyScreen);
storyScreen.tinkClip.gotoAndPlay(21);
storyScreen.startText(20);
};
break;
default:
hideSummary();
GameManager.stopFx();
GameManager.exitLevel();
break;
};
} else {
storyContinueButton.removeEventListener(MouseEvent.CLICK, exitClicked);
GameManager.exitLevel();
};
};
}
private function mouseReleased(_arg1:MouseEvent){
if (isCellSelected){
currentlySelectedCell.pathClip.gotoAndStop("path");
};
isCellSelected = false;
isMouseDown = false;
}
private function getMouseDirection():int{
if (CellFromPos(mouseX) < currentlySelectedCell.xCell){
return (LEFT);
};
if (CellFromPos(mouseX) > currentlySelectedCell.xCell){
return (RIGHT);
};
if (CellFromPos(mouseY) > currentlySelectedCell.yCell){
return (DOWN);
};
if (CellFromPos(mouseY) < currentlySelectedCell.yCell){
return (UP);
};
return (RIGHT);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
private function removeMenuItems(){
GameManager.musicButton.clip.removeEventListener(MouseEvent.CLICK, musicClicked);
GameManager.fxButton.clip.removeEventListener(MouseEvent.CLICK, fxClicked);
resetLevelButton.removeEventListener(MouseEvent.CLICK, restartClicked);
resumeGameButton.removeEventListener(MouseEvent.CLICK, resumeClicked);
playMoreGamesButton.removeEventListener(MouseEvent.CLICK, ssLinkClicked);
exitButton.removeEventListener(MouseEvent.CLICK, exitClicked);
GameManager.musicButton.deactivate();
GameManager.fxButton.deactivate();
interfaceDisplay.removeChild(GameManager.musicButton.clip);
interfaceDisplay.removeChild(GameManager.fxButton.clip);
interfaceDisplay.removeChild(resetLevelButton);
interfaceDisplay.removeChild(exitButton);
interfaceDisplay.removeChild(playMoreGamesButton);
interfaceDisplay.removeChild(resumeGameButton);
}
private function damageUnit(_arg1:Object, _arg2:Number, _arg3:Boolean){
_arg1.clip.gotoAndPlay("hit");
_arg1.health = (_arg1.health - _arg2);
if ((((_arg1.health <= 0)) || ((_arg1.typeOfUnit == MISSLE_TYPE)))){
killUnit(_arg1, BLOWUP, _arg3);
};
}
private function menuClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
pauseLevel();
levelFade.alpha = 0;
interfaceDisplay.addChild(levelFade);
Tweener.addTween(levelFade, {alpha:1, transition:"linear", time:1, onComplete:showMenu});
}
private function updateWater(){
var _local4:int;
var _local5:SandCorner;
var _local6:SandCorner;
var _local7:SandCorner;
var _local8:int;
var _local1:Boolean;
var _local2:int;
while (_local2 < 22) {
_local4 = 0;
while (_local4 < 12) {
if ((((((((_local2 >= 1)) && ((_local4 >= 1)))) && ((_local2 < 21)))) && ((_local4 < 11)))){
if (((((((isWater(levelLayoutArray[(_local2 + 1)][_local4])) && (isWater(levelLayoutArray[(_local2 + 1)][(_local4 + 1)])))) && (isWater(levelLayoutArray[_local2][(_local4 + 1)])))) && (!(isWater(levelLayoutArray[_local2][_local4]))))){
_local5 = new SandCorner();
_local5.x = ((_local2 * CELLSIZE) + 40);
_local5.y = ((_local4 * CELLSIZE) + 40);
sandDisplay.addChild(_local5);
sandArray.push(_local5);
};
if (((((((isWater(levelLayoutArray[(_local2 - 1)][_local4])) && (isWater(levelLayoutArray[(_local2 - 1)][(_local4 + 1)])))) && (isWater(levelLayoutArray[_local2][(_local4 + 1)])))) && (!(isWater(levelLayoutArray[_local2][_local4]))))){
_local6 = new SandCorner();
_local6.x = ((_local2 * CELLSIZE) + 7);
_local6.y = ((_local4 * CELLSIZE) + 40);
sandDisplay.addChild(_local6);
sandArray.push(_local6);
};
if (((((((isWater(levelLayoutArray[_local2][(_local4 - 1)])) && (isWater(levelLayoutArray[(_local2 + 1)][(_local4 - 1)])))) && (isWater(levelLayoutArray[(_local2 + 1)][_local4])))) && (!(isWater(levelLayoutArray[_local2][_local4]))))){
_local7 = new SandCorner();
_local7.x = ((_local2 * CELLSIZE) + 42);
_local7.y = ((_local4 * CELLSIZE) + 6);
sandDisplay.addChild(_local7);
sandArray.push(_local7);
};
};
if (isWater(levelLayoutArray[_local2][_local4])){
if (mapArray[_local2][_local4].mapClip.currentLabel == "XOOO"){
_local1 = true;
};
if (mapArray[_local2][_local4].mapClip.currentLabel == "OXOO"){
_local1 = true;
};
if (mapArray[_local2][_local4].mapClip.currentLabel == "OOXO"){
_local1 = true;
};
if (mapArray[_local2][_local4].mapClip.currentLabel == "OOOX"){
_local1 = true;
};
if (mapArray[_local2][_local4].mapClip.currentLabel == "XXOO"){
_local1 = true;
};
if (mapArray[_local2][_local4].mapClip.currentLabel == "OXXO"){
_local1 = true;
};
if (mapArray[_local2][_local4].mapClip.currentLabel == "OOXX"){
_local1 = true;
};
if (mapArray[_local2][_local4].mapClip.currentLabel == "XOOX"){
_local1 = true;
};
if (_local1){
mapDisplay.setChildIndex(mapArray[_local2][_local4].mapClip, 0);
};
_local1 = false;
} else {
if (_local2 > 0){
if (_local4 > 0){
if (((((isWater(levelLayoutArray[(_local2 - 1)][(_local4 - 1)])) && (isWater(levelLayoutArray[_local2][(_local4 - 1)])))) && (isWater(levelLayoutArray[(_local2 - 1)][_local4])))){
mapDisplay.setChildIndex(mapArray[(_local2 - 1)][(_local4 - 1)].mapClip, 0);
};
};
if (_local4 < 11){
if (((((isWater(levelLayoutArray[(_local2 - 1)][(_local4 + 1)])) && (isWater(levelLayoutArray[_local2][(_local4 + 1)])))) && (isWater(levelLayoutArray[(_local2 - 1)][_local4])))){
mapDisplay.setChildIndex(mapArray[(_local2 - 1)][(_local4 + 1)].mapClip, 0);
};
};
};
if (_local2 < 21){
if (_local4 > 0){
if (((((isWater(levelLayoutArray[(_local2 + 1)][(_local4 - 1)])) && (isWater(levelLayoutArray[(_local2 + 1)][_local4])))) && (isWater(levelLayoutArray[_local2][(_local4 - 1)])))){
mapDisplay.setChildIndex(mapArray[(_local2 + 1)][(_local4 - 1)].mapClip, 0);
};
};
if (_local4 < 11){
if (((((isWater(levelLayoutArray[(_local2 + 1)][(_local4 + 1)])) && (isWater(levelLayoutArray[_local2][(_local4 + 1)])))) && (isWater(levelLayoutArray[(_local2 + 1)][_local4])))){
mapDisplay.setChildIndex(mapArray[(_local2 + 1)][(_local4 + 1)].mapClip, 0);
};
};
};
};
_local4++;
};
_local2++;
};
var _local3:int;
while (_local3 < 22) {
_local8 = 0;
while (_local8 < 12) {
if (isWater(levelLayoutArray[_local3][_local8])){
if (mapArray[_local3][_local8].mapClip.currentLabel == "XOXO"){
mapDisplay.setChildIndex(mapArray[_local3][_local8].mapClip, (mapDisplay.numChildren - 1));
};
if (mapArray[_local3][_local8].mapClip.currentLabel == "OXOX"){
mapDisplay.setChildIndex(mapArray[_local3][_local8].mapClip, (mapDisplay.numChildren - 1));
};
if (mapArray[_local3][_local8].mapClip.currentLabel == "XXXO"){
mapDisplay.setChildIndex(mapArray[_local3][_local8].mapClip, (mapDisplay.numChildren - 1));
};
if (mapArray[_local3][_local8].mapClip.currentLabel == "XOXX"){
mapDisplay.setChildIndex(mapArray[_local3][_local8].mapClip, (mapDisplay.numChildren - 1));
};
if (mapArray[_local3][_local8].mapClip.currentLabel == "XXOX"){
mapDisplay.setChildIndex(mapArray[_local3][_local8].mapClip, (mapDisplay.numChildren - 1));
};
if (mapArray[_local3][_local8].mapClip.currentLabel == "OXXX"){
mapDisplay.setChildIndex(mapArray[_local3][_local8].mapClip, (mapDisplay.numChildren - 1));
};
if (mapArray[_local3][_local8].mapClip.currentLabel == "XXXX"){
mapDisplay.setChildIndex(mapArray[_local3][_local8].mapClip, (mapDisplay.numChildren - 1));
};
if ((((((((((mapArray[_local3][_local8].mapClip.currentLabel == "OOOO1")) || ((mapArray[_local3][_local8].mapClip.currentLabel == "OOOO2")))) || ((mapArray[_local3][_local8].mapClip.currentLabel == "OOOO3")))) || ((mapArray[_local3][_local8].mapClip.currentLabel == "OOOO4")))) || ((mapArray[_local3][_local8].mapClip.currentLabel == "OOOO5")))){
mapDisplay.setChildIndex(mapArray[_local3][_local8].mapClip, 0);
};
};
_local8++;
};
_local3++;
};
}
private function hideMenu(){
interfaceDisplay.removeChild(levelFade);
resumeLevel();
}
private function showSummary(){
levelSummary = new LevelSummary();
isPaused = true;
removeEventListener(Event.ENTER_FRAME, stepLevel);
if (levelType == 4){
levelSummary.ratingWidget.activate();
} else {
levelSummary.ratingWidget.visible = false;
};
if (levelWon){
GameManager.playFx(WONLEVEL);
levelSummary.summaryTitle.text = "Mission Complete";
levelSummary.levelBonusText.text = ("Mission Bonus: " + String(levelBonus));
score = (score + levelBonus);
levelSummary.timeBonusText.text = (((("Mission Time: " + String(time)) + "\n") + "Bonus: ") + String(Math.round((10000 / time))));
score = (score + Math.round((10000 / time)));
levelSummary.enemyBonusText.text = (((("Enemies Destroyed: " + String(enemiesDestroyed)) + "\n") + "Bonus: ") + (enemiesDestroyed * 25));
score = (score + (enemiesDestroyed * 25));
levelSummary.tankBonusText.text = (((("Tanks Remaining: " + String(mainBuilderControl.tanksAvailable)) + "\n") + "Bonus: ") + (mainBuilderControl.tanksAvailable * 50));
score = (score + (mainBuilderControl.tanksAvailable * 50));
levelSummary.cashBonusText.text = (((("Cash Remaining: $" + String(mainBuilderControl.cashAvailable)) + "\n") + "Bonus: ") + mainBuilderControl.cashAvailable);
score = (score + mainBuilderControl.cashAvailable);
levelSummary.missionScore.text = ("Mission Score: " + String(score));
if (levelType != 4){
levelSummary.prevBest.text = ("Previous Best: " + String(previousBestScore));
} else {
levelSummary.prevBest.text = "";
};
} else {
GameManager.playFx(LOSTLEVEL);
levelSummary.summaryTitle.text = "Mission Failed";
levelSummary.summaryTitle.y = 140;
levelSummary.summaryTitle.textColor = 0xFF0000;
levelSummary.levelBonusText.text = "";
levelSummary.timeBonusText.text = "";
levelSummary.enemyBonusText.text = "";
levelSummary.tankBonusText.text = "";
levelSummary.cashBonusText.text = "";
levelSummary.missionScore.text = "";
levelSummary.prevBest.text = "";
};
levelSummary.tryAgainButton.addEventListener(MouseEvent.CLICK, restartClicked);
levelSummary.newMissionButton.addEventListener(MouseEvent.CLICK, exitClicked);
levelSummary.x = 170;
levelSummary.y = 20;
interfaceDisplay.addChild(levelSummary);
}
private function showMenu(){
GameManager.musicButton.clip = new MusicButton();
GameManager.musicButton.clip.x = 240;
GameManager.musicButton.clip.y = 85;
interfaceDisplay.addChild(GameManager.musicButton.clip);
GameManager.fxButton.clip = new FxButton();
GameManager.fxButton.clip.x = 240;
GameManager.fxButton.clip.y = 115;
interfaceDisplay.addChild(GameManager.fxButton.clip);
resetLevelButton.x = 240;
resetLevelButton.y = 145;
interfaceDisplay.addChild(resetLevelButton);
exitButton.x = 240;
exitButton.y = 175;
interfaceDisplay.addChild(exitButton);
playMoreGamesButton.x = 240;
playMoreGamesButton.y = 205;
interfaceDisplay.addChild(playMoreGamesButton);
resumeGameButton.x = 263;
resumeGameButton.y = 0xFF;
interfaceDisplay.addChild(resumeGameButton);
GameManager.musicButton.activate();
GameManager.fxButton.activate();
GameManager.musicButton.clip.addEventListener(MouseEvent.CLICK, musicClicked);
GameManager.fxButton.clip.addEventListener(MouseEvent.CLICK, fxClicked);
resumeGameButton.addEventListener(MouseEvent.CLICK, resumeClicked);
resetLevelButton.addEventListener(MouseEvent.CLICK, restartClicked);
playMoreGamesButton.addEventListener(MouseEvent.CLICK, ssLinkClicked);
exitButton.addEventListener(MouseEvent.CLICK, exitClicked);
}
private function killUnit(_arg1:Object, _arg2:int, _arg3:Boolean){
var _local4:UnitExplosion;
switch (_arg2){
case BLOWUP:
playExplodeSound = true;
_arg1.clip.gotoAndStop("removeMe");
_local4 = new UnitExplosion(_arg1.clip.x, _arg1.clip.y);
renderer.addEmitter(_local4.smoke);
renderer.addEmitter(_local4.centerFire);
renderer.addEmitter(_local4.backFire);
unitExplosionArray.push(_local4);
if (((!((_arg1.typeOfUnit == TANK_TYPE))) && (_arg3))){
enemiesDestroyed++;
};
break;
case SINK:
GameManager.playFx(SINKSOUND);
_arg1.clip.gotoAndPlay("sink");
_arg1.clip.tankTurret.visible = false;
break;
};
if (!_arg1.doesMove){
mapArray[CellFromPos(_arg1.clip.x)][CellFromPos(_arg1.clip.y)].contents = NODIRECTION;
mapArray[CellFromPos(_arg1.clip.x)][CellFromPos(_arg1.clip.y)].pointDirection = NODIRECTION;
};
_arg1.deathActions();
}
private function isWater(_arg1:int):Boolean{
if ((((_arg1 >= 70)) && ((_arg1 <= 90)))){
return (true);
};
return (false);
}
private function musicClicked(_arg1:MouseEvent){
GameManager.musicToggle(_arg1);
GameManager.playFx(LEVELCLICK);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
private function clearPaths(_arg1:int, _arg2:int){
var _local3:Boolean;
var _local4:int = mapArray[_arg1][_arg2].pointDirection;
var _local5:int = _local4;
while (!(_local3)) {
if ((((((((_arg1 >= FIELDWIDTH)) || ((_arg2 >= FIELDHEIGHT)))) || ((_arg1 < 0)))) || ((_arg2 < 0)))){
_local3 = true;
break;
} else {
if (mapArray[_arg1][_arg2].isEndPoint){
_local3 = true;
};
_local5 = mapArray[_arg1][_arg2].pointDirection;
mapArray[_arg1][_arg2].isPath = false;
mapArray[_arg1][_arg2].pathClip.gotoAndStop("path");
pathDisplay.removeChild(mapArray[_arg1][_arg2].pathClip);
mapArray[_arg1][_arg2].pointDirection = NODIRECTION;
switch (_local5){
case UP:
_arg2--;
break;
case RIGHT:
_arg1++;
break;
case DOWN:
_arg2++;
break;
case LEFT:
_arg1--;
break;
};
};
};
}
private function crateRemoval(_arg1:int, _arg2:int){
mapDisplay.removeChild(mapArray[_arg1][_arg2].mapClip);
mapArray[_arg1][_arg2].mapClip = null;
mapArray[_arg1][_arg2].contents = NODIRECTION;
}
private function transferPath(_arg1:Object){
var _local2:int = mainBuilderControl.pathArray.length;
var _local3:int;
while (_local3 < _local2) {
_arg1.pathArray.push(mainBuilderControl.pathArray[_local3]);
_local3++;
};
mainBuilderControl.pathArray.splice(0, _local2);
}
private function closeTutBox(_arg1:MouseEvent){
tutorialBox.closeButton.removeEventListener(MouseEvent.CLICK, closeTutBox);
tutorialBox.nextButton.removeEventListener(MouseEvent.CLICK, tutNext);
tutorialBox.prevButton.removeEventListener(MouseEvent.CLICK, tutPrev);
interfaceDisplay.removeChild(tutorialBox);
}
private function tutPrev(_arg1:MouseEvent){
if (tutorialBox.currentFrame > 1){
if (tutorialBox.currentFrame == 2){
tutorialBox.prevButton.visible = false;
};
tutorialBox.prevFrame();
} else {
tutorialBox.prevButton.visible = false;
};
tutorialBox.nextButton.visible = true;
}
private function fxClicked(_arg1:MouseEvent){
GameManager.fxToggle(_arg1);
GameManager.playFx(LEVELCLICK);
}
public function pauseLevel(){
if (!isPaused){
isPaused = true;
deactivateControls();
removeEventListener(Event.ENTER_FRAME, stepLevel);
};
}
private function restartClicked(_arg1:MouseEvent){
if ((_arg1.target is ResetLevelButton)){
removeMenuItems();
GameManager.playFx(LEVELCLICK);
} else {
hideSummary();
GameManager.stopFx();
};
GameManager.restartLevel();
}
private function resumeClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
removeMenuItems();
Tweener.addTween(levelFade, {alpha:0, transition:"linear", time:1, onComplete:hideMenu});
}
private function newUnit(_arg1:int, _arg2:int, _arg3:int){
var _local4:Object;
switch (_arg1){
case TANK_TYPE:
GameManager.playFx(BUILDTANK);
_local4 = new AutoTank(_arg2, _arg3, upgradeLevels[SPEEDCONTROL], upgradeLevels[ARMORCONTROL], upgradeLevels[ATTACKCONTROL], upgradeLevels[RATECONTROL], upgradeLevels[RANGECONTROL], unitID);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
transferPath(_local4);
_local4.setInitialDirection();
playerTanks.push(_local4);
break;
case SENTRY_EASY:
_local4 = new Sentry(unitID, 1, _arg2, _arg3);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case SENTRY_MEDIUM:
_local4 = new Sentry(unitID, 2, _arg2, _arg3);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case SENTRY_HARD:
_local4 = new Sentry(unitID, 3, _arg2, _arg3);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case KAMIKAZE_DOWN:
_local4 = new KamikazeBuilder(unitID, _arg2, _arg3, DOWN);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case KAMIKAZE_RIGHT:
_local4 = new KamikazeBuilder(unitID, _arg2, _arg3, RIGHT);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case KAMIKAZE_LEFT:
_local4 = new KamikazeBuilder(unitID, _arg2, _arg3, LEFT);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case KAMIKAZE_UP:
_local4 = new KamikazeBuilder(unitID, _arg2, _arg3, UP);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case PATROLLER_UP:
_local4 = new Patroller(unitID, _arg2, _arg3, UP);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case PATROLLER_RIGHT:
_local4 = new Patroller(unitID, _arg2, _arg3, RIGHT);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case PATROLLER_DOWN:
_local4 = new Patroller(unitID, _arg2, _arg3, DOWN);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case PATROLLER_LEFT:
_local4 = new Patroller(unitID, _arg2, _arg3, LEFT);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case HOMINGMISSLEBUILDER:
_local4 = new HomingMissleBuilder(unitID, _arg2, _arg3);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case TURNER_RIGHT_RIGHT:
_local4 = new Turner(unitID, _arg2, _arg3, RIGHT, true);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case TURNER_DOWN_RIGHT:
_local4 = new Turner(unitID, _arg2, _arg3, DOWN, true);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case TURNER_LEFT_RIGHT:
_local4 = new Turner(unitID, _arg2, _arg3, LEFT, true);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case TURNER_UP_RIGHT:
_local4 = new Turner(unitID, _arg2, _arg3, UP, true);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case TURNER_RIGHT_LEFT:
_local4 = new Turner(unitID, _arg2, _arg3, RIGHT, false);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case TURNER_DOWN_LEFT:
_local4 = new Turner(unitID, _arg2, _arg3, DOWN, false);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case TURNER_LEFT_LEFT:
_local4 = new Turner(unitID, _arg2, _arg3, LEFT, false);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
case TURNER_UP_LEFT:
_local4 = new Turner(unitID, _arg2, _arg3, UP, false);
unitDisplay.addChildAt(_local4.clip, 0);
hudDisplay.addChildAt(_local4.hud, HUDDEPTH);
enemyArray.push(_local4);
break;
};
unitID++;
}
public function fadeInLevel(){
Tweener.addTween(levelFade, {alpha:0, transition:"linear", time:2, onComplete:removeFade});
}
private function deactivateControls(){
stage.removeEventListener(MouseEvent.MOUSE_DOWN, mousePressed);
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseReleased);
var _local1:int;
while (_local1 < 5) {
playerBuilderControls[_local1].deactivate();
_local1++;
};
mainBuilderControl.deactivate();
levelMenuButton.removeEventListener(MouseEvent.CLICK, menuClicked);
}
public function resumeLevel(){
if (isPaused){
isPaused = false;
activateControls();
addEventListener(Event.ENTER_FRAME, stepLevel);
};
}
private function openFire(_arg1:Object, _arg2:Object){
var _local3:Projectile;
_arg1.targetEnemy(_arg1.clip, _arg2);
if (_arg1.readyToFire){
GameManager.playFx(SHELLFIRE);
_arg2.gotoAndPlay("firing");
_local3 = new Projectile(_arg1.closestEnemyX, _arg1.closestEnemyY, _arg1.clip.x, _arg1.clip.y, _arg1.payloadType, _arg1.payloadSize, _arg1.damageMultiplier);
unitDisplay.addChild(_local3.clip);
projectileArray.push(_local3);
_arg1.readyToFire = false;
_arg1.currentRecovery = 0;
};
_arg1.closestEnemyID = NOENEMY;
_arg1.distanceToEnemy = 100000;
}
private function tutNext(_arg1:MouseEvent){
if (tutorialBox.currentFrame < 5){
if (tutorialBox.currentFrame == 4){
tutorialBox.nextButton.visible = false;
};
tutorialBox.nextFrame();
} else {
tutorialBox.nextButton.visible = false;
};
tutorialBox.prevButton.visible = true;
}
private function mousePressed(_arg1:MouseEvent){
if ((((((mouseX >= 10)) && ((mouseX <= 670)))) && ((((mouseY >= 10)) && ((mouseY <= 370)))))){
if (mapArray[CellFromPos(mouseX)][CellFromPos(mouseY)].isPath){
currentlySelectedCell = mapArray[CellFromPos(mouseX)][CellFromPos(mouseY)];
mapArray[CellFromPos(mouseX)][CellFromPos(mouseY)].pathClip.gotoAndStop("selected");
isCellSelected = true;
};
isMouseDown = true;
};
}
private function unitProcessing(_arg1:Array){
var _local10:Smoke;
var _local11:PowerUpEffect;
var _local12:GoalEffect;
var _local13:int;
var _local14:Number;
var _local15:Number;
var _local16:int;
var _local2:int;
var _local3:int;
var _local4:int = _arg1.length;
var _local5:Boolean;
var _local6:Boolean;
var _local7:Boolean;
var _local8:Boolean;
var _local9:int = (_local4 - 1);
while (_local9 >= 0) {
_local6 = false;
_local2 = CellFromPos(_arg1[_local9].clip.x);
_local3 = CellFromPos(_arg1[_local9].clip.y);
if (_arg1[_local9].isAlive){
_arg1[_local9].updateUnit();
if ((((_arg1[_local9].healthPercent < 50)) && (_arg1[_local9].showSmoke))){
_local10 = new Smoke(_arg1[_local9].clip.x, _arg1[_local9].clip.y);
renderer.addEmitter(_local10.smoke);
smokeTrails.push(_local10);
};
if (getDistance(_arg1[_local9].clip.x, _arg1[_local9].clip.y, mouseX, mouseY) < SHOW_HUD_DISTANCE){
_arg1[_local9].turnOnHUD();
} else {
_arg1[_local9].turnOffHUD();
};
if (_arg1[_local9].doesFire){
if (_arg1[_local9].hasTurret){
openFire(_arg1[_local9], _arg1[_local9].clip.tankTurret);
} else {
openFire(_arg1[_local9], _arg1[_local9].clip);
};
};
if (_arg1[_local9].doesBuild){
_arg1[_local9].buildUpdate();
if (_arg1[_local9].buildStatus == BUILD_COMPLETE){
_local7 = true;
_arg1[_local9].tempUnit.unitID = unitID;
unitID++;
unitDisplay.addChildAt(_arg1[_local9].tempUnit.clip, 0);
hudDisplay.addChildAt(_arg1[_local9].tempUnit.hud, HUDDEPTH);
if (_arg1[_local9].hasTurret){
_arg1[_local9].clip.tankTurret.gotoAndPlay("firing");
_arg1[_local9].tempUnit.closestEnemyID = _arg1[_local9].closestEnemyID;
_arg1[_local9].tempUnit.closestEnemyX = _arg1[_local9].closestEnemyX;
_arg1[_local9].tempUnit.closestEnemyY = _arg1[_local9].closestEnemyY;
} else {
_arg1[_local9].clip.gotoAndPlay("firing");
};
_arg1.push(_arg1[_local9].tempUnit);
_arg1[_local9].buildStatus = BUILDING;
};
};
if (_arg1[_local9].doesMove){
if ((((_arg1[_local9].clip.x == mapArray[_local2][_local3].xPos)) && ((_arg1[_local9].clip.y == mapArray[_local2][_local3].yPos)))){
_local5 = true;
if (_arg1[_local9].typeOfUnit > PREDICTIVE_TYPE_BARRIER){
_arg1[_local9].updateDestination();
_arg1[_local9].checkForObstacles(mapArray[_arg1[_local9].destinationX][_arg1[_local9].destinationY].contents);
};
} else {
_local5 = false;
};
if ((((((((_arg1[_local9].clip.x < 20)) || ((_arg1[_local9].clip.y < 20)))) || ((_arg1[_local9].clip.y > 360)))) || ((_arg1[_local9].clip.x > 660)))){
killUnit(_arg1[_local9], BLOWUP, false);
_local6 = true;
};
switch (mapArray[_local2][_local3].contents){
case GOAL:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
if (_local5){
GameManager.playFx(REACHEDGOAL);
_arg1[_local9].deathActions();
removeUnit(_arg1, _local9);
_local6 = true;
tanksSaved++;
_local12 = new GoalEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos);
renderer.addEmitter(_local12.emitter);
renderer.addEmitter(_local12.centerFire);
renderer.addEmitter(_local12.implode);
goalEffects.push(_local12);
};
} else {
if (_arg1[_local9].typeOfUnit != MISSLE_TYPE){
killUnit(_arg1[_local9], BLOWUP, false);
_local6 = true;
};
};
break;
case MINE:
killUnit(_arg1[_local9], BLOWUP, false);
mapDisplay.removeChild(mapArray[_local2][_local3].mapClip);
mapArray[_local2][_local3].mapClip = null;
mapArray[_local2][_local3].contents = NODIRECTION;
_local6 = true;
break;
case CRATE_HEALTH:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
GameManager.playFx(CRATECOLLECTED);
crateRemoval(_local2, _local3);
if (_arg1[_local9].health < _arg1[_local9].maxhealth){
_arg1[_local9].health = _arg1[_local9].maxhealth;
};
_local11 = new PowerUpEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos, CRATE_HEALTH);
groundRenderer.addEmitter(_local11.centerFire);
powerUpEffects.push(_local11);
};
break;
case CRATE_MONEY:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
GameManager.playFx(CRATECOLLECTED);
crateRemoval(_local2, _local3);
mainBuilderControl.cashAvailable = (mainBuilderControl.cashAvailable + CRATEMONEYADDED);
_local11 = new PowerUpEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos, CRATE_MONEY);
groundRenderer.addEmitter(_local11.centerFire);
powerUpEffects.push(_local11);
};
break;
case CRATE_SIDESWITCHER:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
GameManager.playFx(CRATECOLLECTED);
crateRemoval(_local2, _local3);
_arg1[_local9].payloadType = SIDESWITCHER;
_arg1[_local9].addPerk(CRATE_SIDESWITCHER);
_local11 = new PowerUpEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos, CRATE_SIDESWITCHER);
groundRenderer.addEmitter(_local11.centerFire);
powerUpEffects.push(_local11);
};
break;
case CRATE_TANK:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
GameManager.playFx(CRATECOLLECTED);
crateRemoval(_local2, _local3);
mainBuilderControl.tanksAvailable = (mainBuilderControl.tanksAvailable + TANKSADDED);
createTanksCrates--;
_local11 = new PowerUpEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos, CRATE_TANK);
groundRenderer.addEmitter(_local11.centerFire);
powerUpEffects.push(_local11);
};
break;
case STATION_SPEED:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
if ((((_arg1[_local9].statLevels[SPEEDCONTROL] < 3)) && (_arg1[_local9].onNewCell))){
GameManager.playFx(STATIONREACHED);
_arg1[_local9].setStatLevel(SPEEDCONTROL, (_arg1[_local9].statLevels[SPEEDCONTROL] + 1));
_local11 = new PowerUpEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos, mapArray[_local2][_local3].contents);
groundRenderer.addEmitter(_local11.centerFire);
powerUpEffects.push(_local11);
};
};
break;
case STATION_ARMOR:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
if ((((_arg1[_local9].statLevels[ARMORCONTROL] < 3)) && (_arg1[_local9].onNewCell))){
GameManager.playFx(STATIONREACHED);
_arg1[_local9].setStatLevel(ARMORCONTROL, (_arg1[_local9].statLevels[ARMORCONTROL] + 1));
_local11 = new PowerUpEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos, mapArray[_local2][_local3].contents);
groundRenderer.addEmitter(_local11.centerFire);
powerUpEffects.push(_local11);
};
};
break;
case STATION_ATTACK:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
if ((((_arg1[_local9].statLevels[ATTACKCONTROL] < 3)) && (_arg1[_local9].onNewCell))){
GameManager.playFx(STATIONREACHED);
_arg1[_local9].setStatLevel(ATTACKCONTROL, (_arg1[_local9].statLevels[ATTACKCONTROL] + 1));
_local11 = new PowerUpEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos, mapArray[_local2][_local3].contents);
groundRenderer.addEmitter(_local11.centerFire);
powerUpEffects.push(_local11);
};
};
break;
case STATION_RATE:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
if ((((_arg1[_local9].statLevels[RATECONTROL] < 3)) && (_arg1[_local9].onNewCell))){
GameManager.playFx(STATIONREACHED);
_arg1[_local9].setStatLevel(RATECONTROL, (_arg1[_local9].statLevels[RATECONTROL] + 1));
_local11 = new PowerUpEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos, mapArray[_local2][_local3].contents);
groundRenderer.addEmitter(_local11.centerFire);
powerUpEffects.push(_local11);
};
};
break;
case STATION_RANGE:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
if ((((_arg1[_local9].statLevels[RANGECONTROL] < 3)) && (_arg1[_local9].onNewCell))){
GameManager.playFx(STATIONREACHED);
_arg1[_local9].setStatLevel(RANGECONTROL, (_arg1[_local9].statLevels[RANGECONTROL] + 1));
_local11 = new PowerUpEffect(mapArray[_local2][_local3].xPos, mapArray[_local2][_local3].yPos, mapArray[_local2][_local3].contents);
groundRenderer.addEmitter(_local11.centerFire);
powerUpEffects.push(_local11);
};
};
break;
case NODIRECTION:
break;
case UP:
break;
case DOWN:
break;
case LEFT:
break;
case RIGHT:
break;
case WATER_TYPE:
if (_arg1[_local9].typeOfUnit != MISSLE_TYPE){
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
killUnit(_arg1[_local9], SINK, false);
} else {
killUnit(_arg1[_local9], BLOWUP, false);
};
_local6 = true;
};
break;
default:
if (_arg1[_local9].clearedBuilder){
killUnit(_arg1[_local9], BLOWUP, false);
_local6 = true;
};
break;
};
if (!_local6){
_arg1[_local9].moveMe();
};
};
if (!_local6){
_local13 = explosionArray.length;
_local14 = 0;
_local15 = 0;
_local16 = 0;
while (_local16 < _local13) {
if (explosionArray[_local16].damageActive){
_local14 = getDistance(_arg1[_local9].clip.x, _arg1[_local9].clip.y, explosionArray[_local16].xPos, explosionArray[_local16].yPos);
_local15 = (((explosionArray[_local16].payloadSize - _local14) * explosionArray[_local16].damageMultiplier) + DAMAGEMINIMUM);
if (_local15 > 0){
switch (explosionArray[_local16].payloadType){
case SHELL:
damageUnit(_arg1[_local9], _local15, true);
break;
case SIDESWITCHER:
if (_arg1[_local9].typeOfUnit == TANK_TYPE){
enemyArray.push(_arg1[_local9]);
_arg1.splice(_local9, 1);
} else {
playerTanks.push(_arg1[_local9]);
_arg1.splice(_local9, 1);
};
break;
};
};
};
_local16++;
};
};
} else {
if (_arg1[_local9].clip.currentLabel == "removeMe"){
removeUnit(_arg1, _local9);
};
};
_local9--;
};
if (_local7){
GameManager.playFx(MISSLELAUNCH);
};
}
}
}//package
Section 137
//LevelSelect (LevelSelect)
package {
import flash.events.*;
import flash.display.*;
import mochi.*;
import flash.text.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class LevelSelect extends Sprite {
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const WATER_TOP:int = 76;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const NOENEMY:int = -50;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const WATER_TOPRIGHTLEFT:int = 86;
const BUILDTIME:int = 80;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const CREATESTATE:int = 3;
const MOVEMENT_GOAL:int = 10;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const MAXDISTANCE:int = 10000;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const ATTACKCONTROL:int = 2;
const STORYTHEME:int = 4;
const RIGHT:int = 1;
public var levelNameText:TextField;
public var statusText:TextField;
public var backToTitleButton:BackTitleButton;
public var bestScoreText:TextField;
private var levelMarkers:Array;
public var createdByButton:CreatedByButton;
public var levelLayout:Array;
public function LevelSelect(){
var _local2:int;
var _local3:LayoutGrid;
levelMarkers = new Array();
levelLayout = new Array();
super();
populateMarkers();
var _local1:int;
while (_local1 < FIELDWIDTH) {
levelLayout[_local1] = new Array();
_local2 = 0;
while (_local2 < FIELDHEIGHT) {
_local3 = new LayoutGrid();
_local3.gotoAndStop("unknown");
_local3.x = ((_local1 * 20) + 175);
_local3.y = ((_local2 * 20) + 153);
addChild(_local3);
levelLayout[_local1].push(_local3);
_local2++;
};
_local1++;
};
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function deactivate(){
var _local1:int = levelMarkers.length;
var _local2:int;
while (_local2 < _local1) {
levelMarkers[_local2].deactivate();
_local2++;
};
createdByButton.removeEventListener(MouseEvent.CLICK, createdByClicked);
backToTitleButton.removeEventListener(MouseEvent.CLICK, backTitleClicked);
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function activate(){
var _local1:int = levelMarkers.length;
var _local2:int;
while (_local2 < _local1) {
levelMarkers[_local2].activate();
_local2++;
};
createdByButton.addEventListener(MouseEvent.CLICK, createdByClicked);
backToTitleButton.addEventListener(MouseEvent.CLICK, backTitleClicked);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function populateMarkers(){
var _local1:LevelMarker;
var _local2:int;
while (_local2 < 21) {
_local1 = new LevelMarker(_local2);
_local1.x = 25;
_local1.y = ((_local2 * 14) + 146);
addChild(_local1);
if (GameManager.levelInfo[_local2].beaten){
_local1.makeBeaten();
};
if (GameManager.levelInfo[_local2].isAvailable){
_local1.makeAvailable();
};
levelMarkers.push(_local1);
_local2++;
};
}
private function backTitleClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
GameManager.backToTitle();
}
private function startGame(_arg1:MouseEvent){
deactivate();
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
private function createdByClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
}
}
}//package
Section 138
//LevelShareManager (LevelShareManager)
package {
import flash.events.*;
import org.sepy.io.*;
import flash.net.*;
public final class LevelShareManager {
public static var userLevels:Array = new Array();
public static var addSuccessful:Boolean = false;
public static var loadComplete:Boolean = false;
public static function addLevel(_arg1:String, _arg2:String):void{
var _local3:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/addautotankslevel.php");
var _local4:URLVariables = new URLVariables();
var _local5:URLLoader = new URLLoader();
loadComplete = false;
_local4.levelname = _arg1;
_local4.leveldata = _arg2;
_local4.username = AccountManager.username;
_local3.data = _local4;
_local3.method = URLRequestMethod.POST;
_local5.addEventListener(Event.COMPLETE, addLevelComplete);
_local5.load(_local3);
}
private static function retrieveLevelsComplete(_arg1:Event):void{
var _local12:int;
var _local13:int;
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
var _local4:Array = new Array();
var _local5:Array = new Array();
var _local6:Array = new Array();
var _local7:Array = new Array();
var _local8:Array = new Array();
var _local9:Array = new Array();
var _local10:Array = new Array();
var _local11:Array = new Array();
userLevels = null;
userLevels = new Array();
if (_local3.retrieveSuccessful == "true"){
_local4 = Serializer.unserialize(_local3.returnedLevelIds);
_local5 = Serializer.unserialize(_local3.returnedLevelNames);
_local6 = Serializer.unserialize(_local3.returnedLevelDatas);
_local7 = Serializer.unserialize(_local3.returnedLevelAuthors);
_local8 = Serializer.unserialize(_local3.returnedLevelRatings);
_local9 = Serializer.unserialize(_local3.returnedLevelPlays);
_local10 = Serializer.unserialize(_local3.returnedLevelCreateDates);
_local11 = Serializer.unserialize(_local3.returnedLevelWins);
_local12 = _local6.length;
_local13 = 0;
while (_local13 < _local12) {
userLevels[_local13] = {id:_local4[_local13], levelName:_local5[_local13], levelData:_local6[_local13], author:_local7[_local13], plays:_local9[_local13], rating:_local8[_local13], wins:_local11[_local13], created:_local10[_local13]};
_local13++;
};
};
loadComplete = true;
}
public static function retrieveLevels(_arg1:String, _arg2:int):void{
var _local3:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/getautotankslevels.php");
var _local4:URLVariables = new URLVariables();
var _local5:URLLoader = new URLLoader();
loadComplete = false;
_local4.sorttype = _arg1;
_local4.startrow = _arg2;
_local3.data = _local4;
_local3.method = URLRequestMethod.POST;
_local5.addEventListener(Event.COMPLETE, retrieveLevelsComplete);
_local5.load(_local3);
}
private static function submitRatingComplete(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
if (_local3.submitSuccessful == "true"){
};
loadComplete = true;
}
public static function submitRating(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{
var _local5:URLRequest = new URLRequest("http://www.sinistersea.com/cgi-bin/submitautotankslevelrating.php");
var _local6:URLVariables = new URLVariables();
var _local7:URLLoader = new URLLoader();
loadComplete = false;
_local6.id = _arg1;
_local6.ratingstotal = _arg2;
_local6.rating = (_arg2 / _arg3);
_local6.plays = _arg3;
_local6.wins = _arg4;
_local5.data = _local6;
_local5.method = URLRequestMethod.POST;
_local7.addEventListener(Event.COMPLETE, submitRatingComplete);
_local7.load(_local5);
}
private static function addLevelComplete(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
var _local3:URLVariables = new URLVariables(_local2.data);
var _local4:Boolean;
loadComplete = true;
if (_local3.addSuccessful == "true"){
addSuccessful = true;
} else {
addSuccessful = false;
};
}
}
}//package
Section 139
//LevelSummary (LevelSummary)
package {
import flash.display.*;
import flash.text.*;
public dynamic class LevelSummary extends Sprite {
public var cashBonusText:TextField;
public var ratingWidget:RatingWidget;
public var newMissionButton:NewMissionButton;
public var missionScore:TextField;
public var tankBonusText:TextField;
public var levelBonusText:TextField;
public var enemyBonusText:TextField;
public var prevBest:TextField;
public var tryAgainButton:TryAgainButton;
public var summaryTitle:TextField;
public var timeBonusText:TextField;
}
}//package
Section 140
//LifebarClip (LifebarClip)
package {
import flash.display.*;
public dynamic class LifebarClip extends MovieClip {
}
}//package
Section 141
//ListenButton (ListenButton)
package {
import flash.display.*;
public dynamic class ListenButton extends SimpleButton {
}
}//package
Section 142
//LoadErrorFX (LoadErrorFX)
package {
import flash.media.*;
public dynamic class LoadErrorFX extends Sound {
}
}//package
Section 143
//LostLevelFX (LostLevelFX)
package {
import flash.media.*;
public dynamic class LostLevelFX extends Sound {
}
}//package
Section 144
//MainBuilderControl (MainBuilderControl)
package {
import flash.events.*;
import flash.display.*;
public class MainBuilderControl extends Sprite {
const CRATE_TANK:int = 17;
const IN_PROGRESS:int = 2;
const BUILD_COMPLETE:int = 15;
const PATROLLER_TYPE:int = 112;
const HALFCELL:int = 15;
const LEFT:int = 3;
const CRATEMONEYADDED:int = 100;
const HORIZONTAL:int = 6;
const TANKMOVEOFFSET:int = 10;
const HUDDEPTH:int = 0;
const WATER_TOPRIGHT:int = 80;
const EDITORREMOVE:int = 13;
const BUILDTANK:int = 6;
const HUDOFFSET:int = 20;
const SHELLFIRE:int = 3;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const TREE2:int = 92;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TWO_MEGATON:int = 15;
const TURNER_TYPE:int = 111;
const LAST_LEVEL:int = 10;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const RATE_1:int = 120;
const RATE_2:int = 100;
const RATE_3:int = 70;
const RATE_4:int = 30;
const DOWN:int = 2;
const MOVEMENT_GOAL:int = 10;
const WONLEVEL:int = 15;
const WATER_RIGHT:int = 77;
const WATER_TOPRIGHTLEFT:int = 86;
const STORYSTATE:int = 4;
const LOADERROR:int = 14;
const LEVELTHEME:int = 2;
const PATROLLER_LEFT:int = 43;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const CRATE_MONEY:int = 15;
const COLLISIONDISTANCE:int = 20;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const ARMOR_3:int = 200;
const ARMOR_4:int = 400;
const DROP_NO:int = 30;
const LEVEL_WON:int = 3;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const STATION_SPEED:int = 19;
const TURNER_LEFT_RIGHT:int = 52;
const MAXDISTANCE:int = 10000;
const SENTRY_HARD:int = 27;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const PLAYER1:int = 1;
const PATROLLER_DOWN:int = 42;
const TURNER_DOWN_LEFT:int = 55;
const WATER_TYPE:int = 90;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const RANGE_1:int = 80;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const FOUR_MEGATON:int = 40;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const RANGECONTROL:int = 4;
const PATHDEPTH:int = 0;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const TRANSMISSION:int = 17;
const UPPERHUDOFFSET:int = -20;
const TITLE_STARTGAME:int = 1;
const KAMIKAZE_DOWN:int = 32;
const MOVINGDOWN:int = 2;
const ATTACKCONTROL:int = 2;
const ATTACK_LASER:int = 25;
const RIGHT:int = 1;
const STORYTHEME:int = 4;
const WATER_TOP:int = 76;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const LEVELTEXTSIZE:int = 12;
const SPEED_1:Number = 1.25;
const SPEED_3:Number = 2.5;
const SPEED_4:Number = 4;
const SPEED_2:Number = 1.75;
const TURNING:int = 6;
const BUILDTIME:int = 80;
const MISSION_TYPE:int = 2;
const KAMIKAZE_RIGHT:int = 31;
const STATION_RANGE:int = 23;
const STATION_ARMOR:int = 20;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const WAITING:int = 9;
const NOENEMY:int = -50;
const WATER_LEFT:int = 79;
const WATER_TOPBOTTOM:int = 81;
const WATER_TOPBOTTOMLEFT:int = 85;
const MOVINGRIGHT:int = 1;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const UP:int = 4;
const ADD_MODE:int = 2;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const BUILDING:int = 14;
const UNITEXPLODE:int = 5;
const NODIRECTION:int = 0;
const LOSTLEVEL:int = 16;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const HUNTER_SET:int = 4;
const SELECT_MODE:int = 1;
const MENU_RESUME:int = 1;
const GOAL:int = 11;
const ATTACK_NO:int = 20;
const COMPUTER:int = 2;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const LAUNCHER_SET:int = 1;
const TURNER_RIGHT_RIGHT:int = 50;
const SCORETEXTSIZE:int = 10;
const SPEEDCONTROL:int = 0;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const ARMORCONTROL:int = 1;
const DAMAGE_1:Number = 1;
const DAMAGE_2:Number = 1.25;
const DAMAGE_3:Number = 1.75;
const DAMAGE_4:Number = 2.5;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const MOVINGUP:int = 4;
const WATER_TOPLEFT:int = 82;
const VERTICAL:int = 5;
const BUILD_STARTED:int = 16;
const BUILDER:int = 10;
const LEVELSTATE:int = 2;
const EDITORPLACE:int = 12;
const SENTRY_TYPE:int = 102;
const DROP_MINE:int = 35;
const DELETE_MODE:int = 3;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const WATER_RIGHTBOTTOM:int = 88;
const SENTRY_SET:int = 2;
const PATROLLER_UP:int = 40;
const SHELLLAND:int = 4;
public var buildStatus:int;// = 14
public var tanksAvailable:int;// = 0
public var busyTime:int;// = 90
public var isActive:Boolean;// = false
public var cashAvailable:int;// = 0
public var isMouseOver:Boolean;// = false
public var pathArray:Array;
public var buildTankDisplay:BuildTankDisplay;
public var tanksAlotted:int;// = 0
public var buildTankButton:MovieClip;
public var isBusy:Boolean;// = false
public var busyProgress:int;// = 0
public var tankCost:int;// = 0
public function MainBuilderControl(_arg1:int, _arg2){
buildTankButton = new BuildTankButton();
buildTankDisplay = new BuildTankDisplay();
pathArray = new Array();
super();
buildTankButton.buttonMode = true;
buildTankButton.useHandCursor = true;
cashAvailable = _arg1;
tanksAlotted = _arg2;
tanksAvailable = tanksAlotted;
buildTankDisplay.costText.text = ("$" + String(tankCost));
buildTankDisplay.cashText.text = ("$" + String(cashAvailable));
buildTankDisplay.tanksAvailText.text = String(tanksAvailable);
buildTankDisplay.mouseEnabled = false;
buildTankDisplay.buttonMode = true;
buildTankDisplay.useHandCursor = true;
buildTankDisplay.mouseChildren = false;
buildTankDisplay.x = 70;
buildTankDisplay.y = -57;
buildTankButton.x = 70;
buildTankButton.y = -37;
addChild(buildTankButton);
addChild(buildTankDisplay);
}
private function mouseClickBuild(_arg1:MouseEvent){
if ((((tankCost <= cashAvailable)) && ((tanksAvailable > 0)))){
GameManager.playFx(LEVELCLICK);
getReadyForBusy();
busyTime = BUILDTIME;
buildStatus = BUILD_STARTED;
cashAvailable = (cashAvailable - tankCost);
tanksAvailable--;
};
}
public function deactivate(){
buildTankButton.removeEventListener(MouseEvent.CLICK, mouseClickBuild);
buildTankButton.removeEventListener(MouseEvent.ROLL_OVER, mouseOverBuild);
buildTankButton.removeEventListener(MouseEvent.ROLL_OUT, mouseOutBuild);
}
public function activate(){
buildTankButton.addEventListener(MouseEvent.CLICK, mouseClickBuild);
buildTankButton.addEventListener(MouseEvent.ROLL_OVER, mouseOverBuild);
buildTankButton.addEventListener(MouseEvent.ROLL_OUT, mouseOutBuild);
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
public function enable(){
if (isMouseOver){
buildTankButton.gotoAndStop("over");
} else {
buildTankButton.gotoAndStop("up");
};
buildTankButton.buttonMode = true;
buildTankDisplay.costText.visible = true;
isActive = true;
}
private function getReadyForBusy(){
deactivate();
buildTankButton.gotoAndStop("building");
isBusy = true;
}
public function updateProgress(){
buildTankDisplay.costText.text = ("$" + String(tankCost));
buildTankDisplay.cashText.text = ("$" + String(cashAvailable));
buildTankDisplay.tanksAvailText.text = String(tanksAvailable);
if (isBusy){
if (busyProgress >= busyTime){
buildStatus = BUILD_COMPLETE;
busyProgress = 0;
isBusy = false;
buildTankButton.gotoAndStop("up");
activate();
} else {
busyProgress++;
buildTankButton.gotoAndStop((int(((busyProgress / busyTime) * 100)) + 10));
};
} else {
if ((((tankCost > cashAvailable)) || ((tanksAvailable <= 0)))){
if (isActive){
disable();
};
} else {
if (!isActive){
enable();
};
};
};
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function mouseOverBuild(_arg1:MouseEvent){
if (isActive){
buildTankButton.gotoAndStop("over");
};
isMouseOver = true;
}
public function disable(){
buildTankButton.gotoAndStop("disabled");
buildTankButton.buttonMode = false;
isActive = false;
}
public function mouseOutBuild(_arg1:MouseEvent){
if (isActive){
buildTankButton.gotoAndStop("up");
};
isMouseOver = false;
}
}
}//package
Section 145
//MapCell (MapCell)
package {
import flash.display.*;
public class MapCell {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var isPath:Boolean;// = false
public var isEndPoint:Boolean;// = false
public var mapClip:MovieClip;
public var pathClip:PathClip;
public var contents:int;// = 0
public var xPos:int;// = 0
public var yCell:int;// = 0
public var pointDirection:int;// = 0
public var yPos:int;// = 0
public var xCell:int;// = 0
public var assignedSpot:int;// = 0
public function MapCell(_arg1:int, _arg2:int, _arg3:Boolean){
xPos = _arg1;
yPos = _arg2;
xCell = CellFromPos(_arg1);
yCell = CellFromPos(_arg2);
isPath = _arg3;
pathClip = new PathClip();
pathClip.x = (_arg1 - HALFCELL);
pathClip.y = (_arg2 - HALFCELL);
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
public function setMapItem(_arg1:int){
switch (_arg1){
case GOAL:
mapClip = new TankGoal();
pointDirection = _arg1;
break;
case BUILDER:
mapClip = new PlayerBuilder();
pointDirection = _arg1;
break;
case MINE:
mapClip = new MineClip();
break;
case CRATE_HEALTH:
mapClip = new Crate_Health();
break;
case CRATE_MONEY:
mapClip = new Crate_Money();
break;
case CRATE_SIDESWITCHER:
mapClip = new Crate_Sideswitcher();
break;
case CRATE_TANK:
mapClip = new Crate_Tank();
break;
case STATION_SPEED:
mapClip = new Station_Speed();
break;
case STATION_ARMOR:
mapClip = new Station_Armor();
break;
case STATION_ATTACK:
mapClip = new Station_Attack();
break;
case STATION_RATE:
mapClip = new Station_Rate();
break;
case STATION_RANGE:
mapClip = new Station_Range();
break;
case WATER_NONE1:
mapClip = new WaterClip();
mapClip.gotoAndStop("OOOO1");
break;
case WATER_NONE2:
mapClip = new WaterClip();
mapClip.gotoAndStop("OOOO2");
break;
case WATER_NONE3:
mapClip = new WaterClip();
mapClip.gotoAndStop("OOOO3");
break;
case WATER_NONE4:
mapClip = new WaterClip();
mapClip.gotoAndStop("OOOO4");
break;
case WATER_NONE5:
mapClip = new WaterClip();
mapClip.gotoAndStop("OOOO5");
break;
case WATER_ALL:
mapClip = new WaterClip();
mapClip.gotoAndStop("XXXX");
break;
case WATER_TOP:
mapClip = new WaterClip();
mapClip.gotoAndStop("XOOO");
break;
case WATER_RIGHT:
mapClip = new WaterClip();
mapClip.gotoAndStop("OXOO");
break;
case WATER_BOTTOM:
mapClip = new WaterClip();
mapClip.gotoAndStop("OOXO");
break;
case WATER_LEFT:
mapClip = new WaterClip();
mapClip.gotoAndStop("OOOX");
break;
case WATER_TOPRIGHT:
mapClip = new WaterClip();
mapClip.gotoAndStop("XXOO");
break;
case WATER_TOPBOTTOM:
mapClip = new WaterClip();
mapClip.gotoAndStop("XOXO");
break;
case WATER_TOPLEFT:
mapClip = new WaterClip();
mapClip.gotoAndStop("XOOX");
break;
case WATER_RIGHTLEFT:
mapClip = new WaterClip();
mapClip.gotoAndStop("OXOX");
break;
case WATER_TOPRIGHTBOTTOM:
mapClip = new WaterClip();
mapClip.gotoAndStop("XXXO");
break;
case WATER_TOPBOTTOMLEFT:
mapClip = new WaterClip();
mapClip.gotoAndStop("XOXX");
break;
case WATER_TOPRIGHTLEFT:
mapClip = new WaterClip();
mapClip.gotoAndStop("XXOX");
break;
case WATER_RIGHTBOTTOMLEFT:
mapClip = new WaterClip();
mapClip.gotoAndStop("OXXX");
break;
case WATER_RIGHTBOTTOM:
mapClip = new WaterClip();
mapClip.gotoAndStop("OXXO");
break;
case WATER_BOTTOMLEFT:
mapClip = new WaterClip();
mapClip.gotoAndStop("OOXX");
break;
case TREE1:
mapClip = new Tree1Clip();
pointDirection = _arg1;
break;
case TREE2:
mapClip = new Tree2Clip();
pointDirection = _arg1;
break;
};
mapClip.x = xPos;
mapClip.y = yPos;
}
}
}//package
Section 146
//MenuButton (MenuButton)
package {
import flash.display.*;
public dynamic class MenuButton extends SimpleButton {
}
}//package
Section 147
//MenuClickFX (MenuClickFX)
package {
import flash.media.*;
public dynamic class MenuClickFX extends Sound {
}
}//package
Section 148
//MineClip (MineClip)
package {
import flash.display.*;
public dynamic class MineClip extends MovieClip {
}
}//package
Section 149
//MissleLaunchFX (MissleLaunchFX)
package {
import flash.media.*;
public dynamic class MissleLaunchFX extends Sound {
}
}//package
Section 150
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
if (Security.sandboxType == "localWithFile"){
return (null);
};
var _local3:MochiBot = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
var _local4 = "http://core.mochibot.com/my/core.swf";
var _local5:URLVariables = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
var _local6:String = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
var _local7:URLRequest = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
var _local8:Loader = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 151
//MusicButton (MusicButton)
package {
import flash.display.*;
public dynamic class MusicButton extends MovieClip {
public function MusicButton(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
}
}//package
Section 152
//MusicDownloadProgress (MusicDownloadProgress)
package {
import flash.display.*;
import flash.text.*;
public dynamic class MusicDownloadProgress extends MovieClip {
public var progressText:TextField;
public var startDownloadButton:StartDownloadButton;
}
}//package
Section 153
//MusicDownloadScreen (MusicDownloadScreen)
package {
import flash.events.*;
import flash.display.*;
import mochi.*;
import flash.text.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class MusicDownloadScreen extends Sprite {
const CRATE_TANK:int = 17;
const IN_PROGRESS:int = 2;
const BUILD_COMPLETE:int = 15;
const PATROLLER_TYPE:int = 112;
const HALFCELL:int = 15;
const LEFT:int = 3;
const CRATEMONEYADDED:int = 100;
const HORIZONTAL:int = 6;
const TANKMOVEOFFSET:int = 10;
const HUDDEPTH:int = 0;
const WATER_TOPRIGHT:int = 80;
const EDITORREMOVE:int = 13;
const BUILDTANK:int = 6;
const HUDOFFSET:int = 20;
const SHELLFIRE:int = 3;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const TREE2:int = 92;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const SHOW_HUD_DISTANCE:int = 40;
const SENTRY_EASY:int = 25;
const CELLSIZE:int = 30;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const TREE1:int = 91;
const TWO_MEGATON:int = 15;
const TURNER_TYPE:int = 111;
const LAST_LEVEL:int = 10;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const RATE_1:int = 120;
const RATE_2:int = 100;
const RATE_3:int = 70;
const RATE_4:int = 30;
const DOWN:int = 2;
const MOVEMENT_GOAL:int = 10;
const WONLEVEL:int = 15;
const WATER_RIGHT:int = 77;
const WATER_TOPRIGHTLEFT:int = 86;
const STORYSTATE:int = 4;
const LOADERROR:int = 14;
const LEVELTHEME:int = 2;
const PATROLLER_LEFT:int = 43;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const CRATE_MONEY:int = 15;
const COLLISIONDISTANCE:int = 20;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const ARMOR_3:int = 200;
const ARMOR_4:int = 400;
const DROP_NO:int = 30;
const LEVEL_WON:int = 3;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const STATION_SPEED:int = 19;
const TURNER_LEFT_RIGHT:int = 52;
const MAXDISTANCE:int = 10000;
const SENTRY_HARD:int = 27;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const TURNER_DOWN_LEFT:int = 55;
const PLAYER1:int = 1;
const PATROLLER_DOWN:int = 42;
const TANK_TYPE:int = 100;
const BUILDER_TYPE:int = 103;
const WATER_TYPE:int = 90;
const RANGECONTROL:int = 4;
const OFFSETDISTANCE:int = 10;
const RANGE_1:int = 80;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const FOUR_MEGATON:int = 40;
const PATHDEPTH:int = 0;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const TRANSMISSION:int = 17;
const UPPERHUDOFFSET:int = -20;
const TITLE_STARTGAME:int = 1;
const KAMIKAZE_DOWN:int = 32;
const MOVINGDOWN:int = 2;
const WATER_TOP:int = 76;
const ATTACKCONTROL:int = 2;
const ATTACK_LASER:int = 25;
const HOMINGMISSLEBUILDER:int = 45;
const RIGHT:int = 1;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const LEVELTEXTSIZE:int = 12;
const SPEED_1:Number = 1.25;
const SPEED_3:Number = 2.5;
const SPEED_4:Number = 4;
const SPEED_2:Number = 1.75;
const TURNING:int = 6;
const BUILDTIME:int = 80;
const MISSION_TYPE:int = 2;
const KAMIKAZE_RIGHT:int = 31;
const STATION_RANGE:int = 23;
const WATER_ALL:int = 75;
const STORYTHEME:int = 4;
const STATION_ARMOR:int = 20;
const SINKSOUND:int = 11;
const WAITING:int = 9;
const NOENEMY:int = -50;
const WATER_LEFT:int = 79;
const WATER_TOPBOTTOM:int = 81;
const WATER_TOPBOTTOMLEFT:int = 85;
const MOVINGRIGHT:int = 1;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const UP:int = 4;
const ADD_MODE:int = 2;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const BUILDING:int = 14;
const UNITEXPLODE:int = 5;
const NODIRECTION:int = 0;
const LOSTLEVEL:int = 16;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const HUNTER_SET:int = 4;
const SELECT_MODE:int = 1;
const MENU_RESUME:int = 1;
const GOAL:int = 11;
const ATTACK_NO:int = 20;
const COMPUTER:int = 2;
const LEVEL_LOST:int = 4;
const LAUNCHER_SET:int = 1;
const TURNER_RIGHT_RIGHT:int = 50;
const SCORETEXTSIZE:int = 10;
const WATER_TOPRIGHTBOTTOM:int = 84;
const SPEEDCONTROL:int = 0;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const ARMORCONTROL:int = 1;
const DAMAGE_1:Number = 1;
const DAMAGE_2:Number = 1.25;
const DAMAGE_3:Number = 1.75;
const DAMAGE_4:Number = 2.5;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const MOVINGUP:int = 4;
const WATER_TOPLEFT:int = 82;
const VERTICAL:int = 5;
const BUILD_STARTED:int = 16;
const BUILDER:int = 10;
const LEVELSTATE:int = 2;
const EDITORPLACE:int = 12;
const SENTRY_TYPE:int = 102;
const DROP_MINE:int = 35;
const DELETE_MODE:int = 3;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const WATER_RIGHTBOTTOM:int = 88;
const SENTRY_SET:int = 2;
const PATROLLER_UP:int = 40;
const SHELLLAND:int = 4;
public var statusText:TextField;
public var introListenButton:ListenButton;
public var levelStopButton:StopMusicButton;
public var backToTitleButton:BackTitleButton;
public var editorDownloadButton:DownloadButton;
public var winDownloadButton:DownloadButton;
public var bestScoreText:TextField;
public var introStopButton:StopMusicButton;
public var levelListenButton:ListenButton;
private var downloadTrack:int;// = 0
public var winListenButton:ListenButton;
public var editorListenButton:ListenButton;
public var levelNameText:TextField;
private var savedState:int;// = 0
public var creatorButton:CreatedByButton;
public var levelDownloadButton:DownloadButton;
public var winStopButton:StopMusicButton;
public var musicDownloadProgress:MusicDownloadProgress;
public var editorStopButton:StopMusicButton;
public var introDownloadButton:DownloadButton;
public function MusicDownloadScreen(){
musicDownloadProgress.visible = false;
introStopButton.visible = false;
levelStopButton.visible = false;
editorStopButton.visible = false;
winStopButton.visible = false;
}
private function closeProgress():void{
GameManager.musicDownload.removeEventListener(Event.CANCEL, cancelHandler);
GameManager.musicDownload.removeEventListener(Event.COMPLETE, completeHandler);
GameManager.musicDownload.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
GameManager.musicDownload.removeEventListener(Event.OPEN, openHandler);
GameManager.musicDownload.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
GameManager.musicDownload.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
GameManager.musicDownload.removeEventListener(Event.SELECT, selectHandler);
musicDownloadProgress.visible = false;
musicDownloadProgress.progressText.text = "";
musicDownloadProgress.startDownloadButton.visible = false;
}
private function listenClicked(){
GameManager.switchMusic();
}
public function deactivate(){
GameManager.stopMusic();
GameManager.currentState = savedState;
introStopButton.removeEventListener(MouseEvent.CLICK, stopClicked);
levelStopButton.removeEventListener(MouseEvent.CLICK, stopClicked);
editorStopButton.removeEventListener(MouseEvent.CLICK, stopClicked);
winStopButton.removeEventListener(MouseEvent.CLICK, stopClicked);
introListenButton.removeEventListener(MouseEvent.CLICK, introListenClicked);
levelListenButton.removeEventListener(MouseEvent.CLICK, levelListenClicked);
editorListenButton.removeEventListener(MouseEvent.CLICK, editorListenClicked);
winListenButton.removeEventListener(MouseEvent.CLICK, winListenClicked);
backToTitleButton.removeEventListener(MouseEvent.CLICK, backTitleClicked);
introDownloadButton.removeEventListener(MouseEvent.CLICK, introDownloadClicked);
levelDownloadButton.removeEventListener(MouseEvent.CLICK, levelDownloadClicked);
editorDownloadButton.removeEventListener(MouseEvent.CLICK, editorDownloadClicked);
winDownloadButton.removeEventListener(MouseEvent.CLICK, winDownloadClicked);
}
private function progressHandler(_arg1:ProgressEvent):void{
musicDownloadProgress.progressText.text = (("Downloading MP3..." + String(int(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100)))) + "%");
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
closeProgress();
}
public function activate(){
savedState = GameManager.currentState;
introListenButton.addEventListener(MouseEvent.CLICK, introListenClicked);
levelListenButton.addEventListener(MouseEvent.CLICK, levelListenClicked);
editorListenButton.addEventListener(MouseEvent.CLICK, editorListenClicked);
winListenButton.addEventListener(MouseEvent.CLICK, winListenClicked);
introStopButton.addEventListener(MouseEvent.CLICK, stopClicked);
levelStopButton.addEventListener(MouseEvent.CLICK, stopClicked);
editorStopButton.addEventListener(MouseEvent.CLICK, stopClicked);
winStopButton.addEventListener(MouseEvent.CLICK, stopClicked);
backToTitleButton.addEventListener(MouseEvent.CLICK, backTitleClicked);
introDownloadButton.addEventListener(MouseEvent.CLICK, introDownloadClicked);
levelDownloadButton.addEventListener(MouseEvent.CLICK, levelDownloadClicked);
editorDownloadButton.addEventListener(MouseEvent.CLICK, editorDownloadClicked);
winDownloadButton.addEventListener(MouseEvent.CLICK, winDownloadClicked);
GameManager.stopMusic();
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
private function backTitleClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
GameManager.backFromMusic();
}
private function editorDownloadClicked(_arg1:MouseEvent){
downloadClicked(EDITORTHEME);
}
private function introListenClicked(_arg1:MouseEvent){
GameManager.currentState = TITLESTATE;
hideStopsShowListens();
introStopButton.visible = true;
introListenButton.visible = false;
listenClicked();
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
private function openHandler(_arg1:Event):void{
}
private function downloadCancelled(_arg1:PaymentEvent){
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_SUCCESSFUL, goAheadWithDownload);
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_FAILED, downloadCancelled);
}
private function stopClicked(_arg1:MouseEvent){
GameManager.stopMusic();
hideStopsShowListens();
}
private function hideStopsShowListens(){
introStopButton.visible = false;
levelStopButton.visible = false;
editorStopButton.visible = false;
winStopButton.visible = false;
introListenButton.visible = true;
levelListenButton.visible = true;
editorListenButton.visible = true;
winListenButton.visible = true;
}
private function winListenClicked(_arg1:MouseEvent){
GameManager.currentState = STORYSTATE;
hideStopsShowListens();
winStopButton.visible = true;
winListenButton.visible = false;
listenClicked();
}
private function initiateDownload(_arg1:int):void{
var _local2:URLRequest;
var _local3 = "";
GameManager.musicDownload = new FileReference();
musicDownloadProgress.visible = true;
musicDownloadProgress.progressText.text = "Downloading MP3...0%";
musicDownloadProgress.startDownloadButton.visible = false;
switch (_arg1){
case TITLETHEME:
_local2 = new URLRequest("1.mdf");
_local3 = "introtheme.mp3";
break;
case LEVELTHEME:
_local2 = new URLRequest("2.mdf");
_local3 = "treadsoffury.mp3";
break;
case EDITORTHEME:
_local2 = new URLRequest("3.mdf");
_local3 = "robobraxe.mp3";
break;
case STORYTHEME:
_local2 = new URLRequest("4.mdf");
_local3 = "wintheme.mp3";
break;
};
configureFileListeners();
GameManager.musicDownload.download(_local2, _local3);
}
private function levelDownloadClicked(_arg1:MouseEvent){
downloadClicked(LEVELTHEME);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
private function introDownloadClicked(_arg1:MouseEvent){
downloadClicked(TITLETHEME);
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
private function downloadClicked(_arg1:int):void{
var _local2:URLRequest;
downloadTrack = _arg1;
if (GameManager.onSinisterSea){
if (PaymentManager.purchaseItems[_arg1].purchased){
initiateDownload(_arg1);
} else {
GameManager.paymentBox = null;
GameManager.paymentBox = new PaymentBox();
GameManager.paymentBox.activate(_arg1, this);
GameManager.paymentBox.addEventListener(PaymentEvent.PURCHASE_SUCCESSFUL, goAheadWithDownload);
GameManager.paymentBox.addEventListener(PaymentEvent.PURCHASE_FAILED, downloadCancelled);
};
} else {
GameManager.playFx(MENUCLICK);
_local2 = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
};
}
private function selectHandler(_arg1:Event):void{
}
private function configureFileListeners():void{
GameManager.musicDownload.addEventListener(Event.CANCEL, cancelHandler);
GameManager.musicDownload.addEventListener(Event.COMPLETE, completeHandler);
GameManager.musicDownload.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
GameManager.musicDownload.addEventListener(Event.OPEN, openHandler);
GameManager.musicDownload.addEventListener(ProgressEvent.PROGRESS, progressHandler);
GameManager.musicDownload.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
GameManager.musicDownload.addEventListener(Event.SELECT, selectHandler);
}
private function startDownload(_arg1:MouseEvent){
musicDownloadProgress.startDownloadButton.removeEventListener(MouseEvent.CLICK, startDownload);
initiateDownload(downloadTrack);
}
private function winDownloadClicked(_arg1:MouseEvent){
downloadClicked(STORYTHEME);
}
private function levelListenClicked(_arg1:MouseEvent){
GameManager.currentState = LEVELSTATE;
hideStopsShowListens();
levelStopButton.visible = true;
levelListenButton.visible = false;
listenClicked();
}
private function cancelHandler(_arg1:Event):void{
closeProgress();
}
private function securityErrorHandler(_arg1:SecurityErrorEvent):void{
closeProgress();
}
private function goAheadWithDownload(_arg1:PaymentEvent){
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_SUCCESSFUL, goAheadWithDownload);
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_FAILED, downloadCancelled);
musicDownloadProgress.progressText.text = "";
musicDownloadProgress.visible = true;
musicDownloadProgress.startDownloadButton.visible = true;
musicDownloadProgress.startDownloadButton.addEventListener(MouseEvent.CLICK, startDownload);
}
private function completeHandler(_arg1:Event):void{
closeProgress();
}
private function editorListenClicked(_arg1:MouseEvent){
GameManager.currentState = CREATESTATE;
hideStopsShowListens();
editorStopButton.visible = true;
editorListenButton.visible = false;
listenClicked();
}
}
}//package
Section 154
//NewMissionButton (NewMissionButton)
package {
import flash.display.*;
public dynamic class NewMissionButton extends SimpleButton {
}
}//package
Section 155
//NextButton (NextButton)
package {
import flash.display.*;
import flash.text.*;
public dynamic class NextButton extends SimpleButton {
public var nextText:TextField;
}
}//package
Section 156
//OkButton (OkButton)
package {
import flash.display.*;
public dynamic class OkButton extends SimpleButton {
}
}//package
Section 157
//PathClip (PathClip)
package {
import flash.display.*;
public dynamic class PathClip extends MovieClip {
public var pathArrow:DirectionArrow;
public function PathClip(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 158
//Patroller (Patroller)
package {
public class Patroller extends Unit {
public var directionDelay:int;// = 0
public var currentDirection:int;// = 1
public var destinationSet:Boolean;// = false
public var delayOver:Boolean;// = true
public function Patroller(_arg1:int, _arg2:int, _arg3:int, _arg4:int){
clip = new PatrollerClip();
super(_arg2, _arg3);
unitID = _arg1;
typeOfUnit = PATROLLER_TYPE;
maxhealth = 100;
health = maxhealth;
currentSpeed = 1;
rotateSpeed = 1;
turretRotationSpeed = 2;
range = 90;
shotRecovery = 150;
currentRecovery = 0;
payloadSize = TWO_MEGATON;
damageMultiplier = DAMAGE_2;
doesMove = true;
doesFire = true;
hasTurret = true;
clearedBuilder = true;
currentDirection = _arg4;
switch (_arg4){
case UP:
clip.rotation = 0;
currentDirection = UP;
destinationX = CellFromPos(clip.x);
destinationY = CellFromPos(clip.y);
break;
case RIGHT:
clip.rotation = 90;
currentDirection = RIGHT;
destinationX = CellFromPos(clip.x);
destinationY = CellFromPos(clip.y);
break;
case DOWN:
clip.rotation = 180;
currentDirection = DOWN;
destinationX = CellFromPos(clip.x);
destinationY = CellFromPos(clip.y);
break;
case LEFT:
clip.rotation = -90;
currentDirection = LEFT;
destinationX = CellFromPos(clip.x);
destinationY = CellFromPos(clip.y);
break;
};
}
public function checkForObstacles(_arg1:int){
if (_arg1 > UP){
switch (currentDirection){
case UP:
destinationY++;
break;
case RIGHT:
destinationX--;
break;
case DOWN:
destinationY--;
break;
case LEFT:
destinationX++;
break;
};
changeDirection();
};
}
public function updateDestination(){
if (((!(destinationSet)) && (delayOver))){
if (currentDirection == LEFT){
destinationX--;
destinationSet = true;
if (destinationX < 0){
destinationX++;
changeDirection();
};
} else {
if (currentDirection == RIGHT){
destinationX++;
destinationSet = true;
if (destinationX >= FIELDWIDTH){
destinationX--;
changeDirection();
};
} else {
if (currentDirection == UP){
destinationY--;
destinationSet = true;
if (destinationY < 0){
destinationY++;
changeDirection();
};
} else {
if (currentDirection == DOWN){
destinationY++;
destinationSet = true;
if (destinationY >= FIELDHEIGHT){
destinationY--;
changeDirection();
};
};
};
};
};
};
if (!delayOver){
if (clip.currentLabel != "hit"){
clip.stop();
};
directionDelay++;
if (directionDelay >= PATROLLERDELAY){
directionDelay = 0;
delayOver = true;
clip.play();
};
};
}
public function moveMe(){
if (delayOver){
switch (currentDirection){
case UP:
if (clip.y <= (PosFromCell(destinationY) + currentSpeed)){
clip.y = PosFromCell(destinationY);
} else {
clip.y = (clip.y - currentSpeed);
};
break;
case RIGHT:
if (clip.x >= (PosFromCell(destinationX) - currentSpeed)){
clip.x = PosFromCell(destinationX);
} else {
clip.x = (clip.x + currentSpeed);
};
break;
case DOWN:
if (clip.y >= (PosFromCell(destinationY) - currentSpeed)){
clip.y = PosFromCell(destinationY);
} else {
clip.y = (clip.y + currentSpeed);
};
break;
case LEFT:
if (clip.x <= (PosFromCell(destinationX) + currentSpeed)){
clip.x = PosFromCell(destinationX);
} else {
clip.x = (clip.x - currentSpeed);
};
break;
};
};
destinationSet = false;
}
public function changeDirection(){
if (currentDirection == RIGHT){
currentDirection = LEFT;
} else {
if (currentDirection == DOWN){
currentDirection = UP;
} else {
if (currentDirection == LEFT){
currentDirection = RIGHT;
} else {
if (currentDirection == UP){
currentDirection = DOWN;
};
};
};
};
destinationSet = false;
delayOver = false;
}
}
}//package
Section 159
//PatrollerClip (PatrollerClip)
package {
import flash.display.*;
public dynamic class PatrollerClip extends MovieClip {
public var tankTurret:PatrollerTurret;
public function PatrollerClip(){
addFrameScript(40, frame41, 67, frame68, 80, frame81);
}
function frame81(){
gotoAndPlay("normal");
}
function frame41(){
gotoAndPlay("normal");
}
function frame68(){
stop();
}
}
}//package
Section 160
//PatrollerTurret (PatrollerTurret)
package {
import flash.display.*;
public dynamic class PatrollerTurret extends MovieClip {
public function PatrollerTurret(){
addFrameScript(0, frame1, 3, frame4, 9, frame10);
}
function frame10(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
function frame4(){
gotoAndStop("normal");
}
}
}//package
Section 161
//PaymentBox (PaymentBox)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import fl.transitions.easing.*;
import fl.transitions.*;
import flash.text.*;
import flash.net.*;
import flash.ui.*;
public class PaymentBox extends MovieClip {
private var forgotCleared:Boolean;// = false
private var gameMask:Sprite;
public var buyClamsContents:BuyClamsContents;
public var buyClamsCompletingCancelButton:PaymentBox_CancelBuyButton;
private var paymentSuccess:Boolean;// = false
private var submittedForgotEmail:String;// = ""
public var paymentContents:PaymentBox_PaymentContents;
private var currentScreen:String;// = ""
public var closeButton:PaymentBox_CloseButton;
private var delayTimer:Timer;
private var connectionActive:Boolean;// = false
public var forgotOkContents:PaymentBox_FogotOkContents;
public var loginContents:PaymentBox_LoginContents;
private var host;
public var forgotInfoContents:PaymentBox_ForgotContents;
private var connectionListener:LocalConnection;
private var submittedPassword:String;
private var purchaseItem:int;// = 0
private var usernameTextRemoved:Boolean;// = false
private var currentClams:int;// = 0
private var passwordTextRemoved:Boolean;// = false
private var paymentListener:LocalConnection;
public var registerContents:PaymentBox_RegisterControls;
private var paymentTimer:Timer;
private var submittedUsername:String;
private var purchasedClams:int;// = 0
public function PaymentBox(){
connectionListener = new LocalConnection();
paymentListener = new LocalConnection();
delayTimer = new Timer(500, 2);
paymentTimer = new Timer(2000, 1);
super();
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8);
}
private function registeredOk(){
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, loginComplete);
delayTimer.start();
AccountManager.initiateGettingPurchases();
}
private function clamPurchaseTimerCompleteFired(_arg1:TimerEvent){
if (AccountManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, clamPurchaseTimerCompleteFired);
setupPayment();
} else {
delayTimer.reset();
delayTimer.start();
};
}
private function checkIfClamsAdded(_arg1:TimerEvent){
if (AccountManager.loadComplete){
if (AccountManager.pointsAvailable > currentClams){
closeClamCompletion();
setupPayment();
} else {
paymentTimer.reset();
paymentTimer.start();
AccountManager.updatePoints();
};
} else {
paymentTimer.reset();
paymentTimer.start();
};
}
private function registerClicked(_arg1:MouseEvent){
removeLoginListeners();
setupRegistration();
}
private function updatePoints(){
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, clamPurchaseTimerCompleteFired);
delayTimer.start();
AccountManager.updatePoints();
}
private function closeClicked(_arg1:MouseEvent){
closePaymentBox();
}
private function checkForgotEmail(){
if (forgotInfoContents.forgotEmailInput.text != ""){
forgotInfoContents.forgotError.text = "";
forgotInfoContents.forgotEmailInput.removeEventListener(MouseEvent.CLICK, forgotClicked);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, forgotKeyDown);
currentScreen = "";
submittedForgotEmail = forgotInfoContents.forgotEmailInput.text;
forgotInfoContents.forgotError.text = "";
gotoAndStop("loading");
forgotInfoContents.visible = false;
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, forgotTimerCompleteFired);
delayTimer.start();
AccountManager.forgotCheck(submittedForgotEmail);
} else {
forgotInfoContents.forgotError.text = "Email address required";
};
}
private function checkInputs():Boolean{
var _local1:Boolean;
registerContents.registrationError.text = "";
if (registerContents.password1Input.length < 6){
registerContents.registrationError.text = "Password too short";
_local1 = true;
} else {
if (registerContents.password1Input.text != registerContents.password2Input.text){
registerContents.registrationError.text = "Passwords don't match";
_local1 = true;
};
};
if (registerContents.usernameInput.text == ""){
_local1 = true;
registerContents.registrationError.text = "Username required";
};
if (registerContents.emailInput.length <= 3){
_local1 = true;
registerContents.registrationError.text = "Email address required";
};
if (_local1){
return (false);
};
return (true);
}
private function closeScreenListeners():void{
switch (currentScreen){
case "login":
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
break;
case "forgot":
stage.removeEventListener(KeyboardEvent.KEY_DOWN, forgotKeyDown);
break;
case "forgotOk":
stage.removeEventListener(KeyboardEvent.KEY_DOWN, okKeyDown);
break;
case "register":
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressedRegister);
break;
};
}
private function okButtonClicked(_arg1:MouseEvent){
okContinue();
}
public function paymentCaught():void{
closeClamCompletion();
updatePoints();
}
private function submitEmailClicked(_arg1:MouseEvent){
checkForgotEmail();
}
private function okKeyDown(_arg1:KeyboardEvent){
if (_arg1.keyCode == Keyboard.ENTER){
okContinue();
};
}
private function buy250Clicked(_arg1:MouseEvent):void{
boughtClams(5);
}
private function closeClamCompletion():void{
paymentTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, checkIfClamsAdded);
paymentTimer.stop();
paymentTimer.reset();
buyClamsCompletingCancelButton.removeEventListener(MouseEvent.CLICK, cancelClamsCompleting);
paymentListener.close();
}
private function showForgotSent(){
gotoAndStop("forgotOk");
currentScreen = "forgotOk";
hideContents();
forgotOkContents.visible = true;
forgotOkContents.okButton.addEventListener(MouseEvent.CLICK, okButtonClicked);
stage.addEventListener(KeyboardEvent.KEY_DOWN, okKeyDown);
}
private function loginTimerCompleteFired(_arg1:TimerEvent){
if (AccountManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, loginTimerCompleteFired);
checkLoginStatus();
} else {
delayTimer.reset();
delayTimer.start();
};
}
private function cancelClamsCompleting(_arg1:MouseEvent):void{
closeClamCompletion();
setupBuyClams();
}
public function loggedIn(){
if (PaymentManager.purchaseItems[purchaseItem].purchased){
paymentSuccess = true;
closePaymentBox();
};
setupPayment();
}
private function closePayments(){
paymentContents.visible = false;
paymentContents.buyButton.removeEventListener(MouseEvent.CLICK, boughtItem);
paymentContents.cancelBuyButton.removeEventListener(MouseEvent.CLICK, cancelItem);
paymentContents.buyPointsButton.removeEventListener(MouseEvent.CLICK, buyMorePoints);
paymentContents.notEnoughErrorButton.removeEventListener(MouseEvent.CLICK, buyMorePoints);
}
private function cancelClicked(_arg1:MouseEvent){
forgotInfoContents.forgotEmailInput.removeEventListener(MouseEvent.CLICK, forgotClicked);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, forgotKeyDown);
currentScreen = "";
forgotInfoContents.submitEmailButton.removeEventListener(MouseEvent.CLICK, submitEmailClicked);
forgotInfoContents.cancelButton.removeEventListener(MouseEvent.CLICK, cancelClicked);
setupLogin();
}
private function completingClamPurchase():void{
gotoAndStop("buyClamsCompleting");
hideContents();
buyClamsCompletingCancelButton.visible = true;
buyClamsCompletingCancelButton.addEventListener(MouseEvent.CLICK, cancelClamsCompleting);
paymentListener.connect("_paymentListener");
paymentListener.client = this;
paymentTimer.reset();
paymentTimer.addEventListener(TimerEvent.TIMER_COMPLETE, checkIfClamsAdded);
paymentTimer.start();
AccountManager.updatePoints();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame6(){
stop();
}
function frame7(){
stop();
}
function frame1(){
stop();
}
function frame5(){
stop();
}
function frame8(){
stop();
}
private function forgotTimerCompleteFired(_arg1:TimerEvent){
if (AccountManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, forgotTimerCompleteFired);
forgotCheck();
} else {
delayTimer.reset();
delayTimer.start();
};
}
private function setupBuyClams(){
gotoAndStop("buyClams");
hideContents();
buyClamsContents.visible = true;
buyClamsContents.buyClamsUsername.text = AccountManager.username;
buyClamsContents.buyClamsAvailable.text = (String(AccountManager.pointsAvailable) + " clams");
buyClamsContents.buy250Button.addEventListener(MouseEvent.CLICK, buy250Clicked);
buyClamsContents.buy500Button.addEventListener(MouseEvent.CLICK, buy500Clicked);
buyClamsContents.buy1000Button.addEventListener(MouseEvent.CLICK, buy1000Clicked);
buyClamsContents.cancelClamBuyButton.addEventListener(MouseEvent.CLICK, cancelBuyClicked);
}
private function forgotInfoClicked(_arg1:MouseEvent){
removeLoginListeners();
initiateForgotInfo();
}
private function buy500Clicked(_arg1:MouseEvent):void{
boughtClams(9);
}
private function removeLoginListeners(){
loginContents.usernameInput.removeEventListener(MouseEvent.CLICK, mouseClicked);
loginContents.passwordInput.removeEventListener(MouseEvent.CLICK, mouseClicked);
loginContents.loginButton.removeEventListener(MouseEvent.CLICK, loginClicked);
loginContents.forgotInfoButton.removeEventListener(MouseEvent.CLICK, forgotInfoClicked);
loginContents.registerButton.removeEventListener(MouseEvent.CLICK, registerClicked);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
currentScreen = "";
}
private function timerCompleteNowSubmitUser(_arg1:TimerEvent){
if (AccountManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteNowSubmitUser);
checkRegistrationSuccess();
} else {
delayTimer.reset();
delayTimer.start();
};
}
private function hideContents(){
loginContents.visible = false;
forgotInfoContents.visible = false;
forgotOkContents.visible = false;
registerContents.visible = false;
paymentContents.visible = false;
buyClamsContents.visible = false;
buyClamsCompletingCancelButton.visible = false;
}
private function loginClicked(_arg1:MouseEvent){
attemptLogin();
}
private function keyPressedRegister(_arg1:KeyboardEvent){
if (_arg1.keyCode == Keyboard.ENTER){
startRegistering();
};
}
private function buy1000Clicked(_arg1:MouseEvent):void{
boughtClams(16);
}
private function forgotClicked(_arg1:MouseEvent){
if ((((stage.focus == forgotInfoContents.forgotEmailInput)) && (!(forgotCleared)))){
forgotInfoContents.forgotEmailInput.text = "";
forgotInfoContents.forgotEmailInput.textColor = 0;
forgotInfoContents.forgotCleared = true;
};
}
private function closeClamPurchase():void{
buyClamsContents.buy250Button.removeEventListener(MouseEvent.CLICK, buy250Clicked);
buyClamsContents.buy500Button.removeEventListener(MouseEvent.CLICK, buy500Clicked);
buyClamsContents.buy1000Button.removeEventListener(MouseEvent.CLICK, buy1000Clicked);
buyClamsContents.cancelClamBuyButton.removeEventListener(MouseEvent.CLICK, cancelBuyClicked);
}
private function checkLoginStatus():void{
var _local1:LocalConnection;
if (AccountManager.loginSuccessful){
connectionListener.close();
connectionActive = false;
_local1 = new LocalConnection();
_local1.addEventListener(StatusEvent.STATUS, sendStatus);
_local1.send("_siteLoginListener", "otherActivatesLogin");
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, loginComplete);
delayTimer.start();
AccountManager.initiateGettingPurchases();
} else {
loginContents.loginError.text = "Login info didn't work";
setupLogin();
};
}
private function sendStatus(_arg1:StatusEvent){
}
private function attemptLogin(){
removeLoginListeners();
submittedUsername = loginContents.usernameInput.text;
submittedPassword = loginContents.passwordInput.text;
loginContents.visible = false;
gotoAndStop("loading");
loginContents.loginError.text = "";
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, loginTimerCompleteFired);
delayTimer.start();
AccountManager.authenticateUser(submittedUsername, submittedPassword);
}
private function startRegistering(){
if (checkInputs()){
registerContents.submitButton.removeEventListener(MouseEvent.CLICK, submitClicked);
registerContents.termButton.removeEventListener(MouseEvent.CLICK, termsClicked);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressedRegister);
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteNowSubmitUser);
gotoAndStop("loading");
registerContents.visible = false;
delayTimer.start();
AccountManager.registerUser(registerContents.emailInput.text, registerContents.usernameInput.text, registerContents.password1Input.text);
};
}
private function boughtItem(_arg1:MouseEvent){
if (AccountManager.pointsAvailable >= PaymentManager.purchaseItems[purchaseItem].cost){
closePayments();
AccountManager.submitPurchase(purchaseItem);
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, boughtTimerDone);
delayTimer.start();
gotoAndStop("loading");
} else {
paymentContents.notEnoughErrorButton.visible = true;
paymentContents.buyButton.visible = false;
paymentContents.cancelBuyButton.visible = false;
};
}
private function initiate(){
var _local1:Number = host.stage.stageWidth;
var _local2:Number = host.stage.stageHeight;
var _local3:Number = 2500;
var _local4:Number = 2500;
gameMask = new MovieClip();
host.addChild(gameMask);
host.setChildIndex(this, (host.numChildren - 1));
gameMask.graphics.beginFill(0);
gameMask.graphics.drawRect(-(_local3), -(_local4), (2 * _local3), (2 * _local4));
gameMask.graphics.endFill();
new Tween(gameMask, "alpha", Strong.easeOut, 0, 0.5, 0.3, true);
setupLogin();
}
private function boughtClams(_arg1:int):void{
currentClams = AccountManager.pointsAvailable;
var _local2 = "https://www.paypal.com/cgi-bin/webscr";
var _local3:URLRequest = new URLRequest(_local2);
var _local4:URLVariables = new URLVariables();
switch (_arg1){
case 5:
_local4.cmd = "_xclick";
_local4.business = "sales@sinistersea.com";
_local4.item_name = "250 clams";
_local4.item_number = "250";
_local4.amount = "5.00";
_local4.no_shipping = "1";
_local4.no_note = "1";
_local4.currency_code = "USD";
_local4.custom = AccountManager.id;
_local3.data = _local4;
_local3.method = URLRequestMethod.POST;
break;
case 9:
_local4.cmd = "_xclick";
_local4.business = "sales@sinistersea.com";
_local4.item_name = "500 clams";
_local4.item_number = "500";
_local4.amount = "9.00";
_local4.no_shipping = "1";
_local4.no_note = "1";
_local4.currency_code = "USD";
_local4.custom = AccountManager.id;
_local3.data = _local4;
_local3.method = URLRequestMethod.POST;
break;
case 16:
_local4.cmd = "_xclick";
_local4.business = "sales@sinistersea.com";
_local4.item_name = "1000 clams";
_local4.item_number = "1000";
_local4.amount = "16.00";
_local4.no_shipping = "1";
_local4.no_note = "1";
_local4.currency_code = "USD";
_local4.custom = AccountManager.id;
_local3.data = _local4;
_local3.method = URLRequestMethod.POST;
break;
};
navigateToURL(_local3, "_blank");
completingClamPurchase();
}
private function forgotCheck():void{
if (AccountManager.forgotSuccessful){
showForgotSent();
} else {
initiateForgotInfo();
forgotInfoContents.forgotError.text = "Email address not found";
};
}
private function termsClicked(_arg1:MouseEvent){
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com/terms.html");
navigateToURL(_local2, "_blank");
}
private function okContinue(){
forgotOkContents.okButton.removeEventListener(MouseEvent.CLICK, okButtonClicked);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, okKeyDown);
currentScreen = "";
setupLogin();
}
private function cancelItem(_arg1:MouseEvent){
closePayments();
closePaymentBox();
}
public function otherActivatesLogin(){
connectionListener.close();
connectionActive = false;
loggedIn();
}
private function boughtTimerDone(_arg1:TimerEvent){
if (AccountManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, boughtTimerDone);
if (AccountManager.purchaseSuccessful){
paymentSuccess = true;
} else {
paymentSuccess = false;
};
closePaymentBox();
} else {
delayTimer.reset();
delayTimer.start();
};
}
public function alreadyLoggedIn(){
removeLoginListeners();
loggedIn();
}
private function mouseClicked(_arg1:MouseEvent){
if ((((stage.focus == loginContents.usernameInput)) && (!(usernameTextRemoved)))){
loginContents.usernameInput.text = "";
loginContents.usernameInput.textColor = 0;
usernameTextRemoved = true;
};
if ((((stage.focus == loginContents.passwordInput)) && (!(passwordTextRemoved)))){
loginContents.passwordInput.text = "";
loginContents.passwordInput.textColor = 0;
loginContents.passwordInput.displayAsPassword = true;
passwordTextRemoved = true;
};
}
private function keyPressed(_arg1:KeyboardEvent){
switch (_arg1.keyCode){
case Keyboard.ENTER:
if (((!((loginContents.usernameInput.text == ""))) && (!((loginContents.passwordInput.text == ""))))){
attemptLogin();
};
break;
default:
if ((((stage.focus == loginContents.usernameInput)) && (!(usernameTextRemoved)))){
loginContents.usernameInput.text = "";
loginContents.usernameInput.textColor = 0;
usernameTextRemoved = true;
};
if ((((stage.focus == loginContents.passwordInput)) && (!(passwordTextRemoved)))){
loginContents.passwordInput.text = "";
loginContents.passwordInput.textColor = 0;
loginContents.passwordInput.displayAsPassword = true;
passwordTextRemoved = true;
};
break;
};
}
private function loginComplete(_arg1:TimerEvent):void{
if (AccountManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, loginComplete);
loggedIn();
} else {
delayTimer.reset();
delayTimer.start();
};
}
private function buyMorePoints(_arg1:MouseEvent){
setupBuyClams();
}
private function setupPayment(){
gotoAndStop("buyItem");
hideContents();
paymentContents.visible = true;
paymentContents.username.text = AccountManager.username;
paymentContents.itemName.text = PaymentManager.purchaseItems[purchaseItem].name;
paymentContents.description.text = PaymentManager.purchaseItems[purchaseItem].description;
paymentContents.cost.text = (String(PaymentManager.purchaseItems[purchaseItem].cost) + " clams");
paymentContents.userPoints.text = (String(AccountManager.pointsAvailable) + " clams");
paymentContents.buyPointsButton.addEventListener(MouseEvent.CLICK, buyMorePoints);
paymentContents.notEnoughErrorButton.addEventListener(MouseEvent.CLICK, buyMorePoints);
if (AccountManager.pointsAvailable >= PaymentManager.purchaseItems[purchaseItem].cost){
paymentContents.notEnoughErrorButton.visible = false;
paymentContents.buyButton.visible = true;
paymentContents.cancelBuyButton.visible = true;
paymentContents.buyButton.addEventListener(MouseEvent.CLICK, boughtItem);
paymentContents.cancelBuyButton.addEventListener(MouseEvent.CLICK, cancelItem);
} else {
paymentContents.notEnoughErrorButton.visible = true;
paymentContents.buyButton.visible = false;
paymentContents.cancelBuyButton.visible = false;
};
}
public function setupRegistration(){
gotoAndStop("register");
currentScreen = "register";
registerContents.emailInput.tabIndex = 1;
registerContents.usernameInput.tabIndex = 2;
registerContents.password1Input.tabIndex = 3;
registerContents.password2Input.tabIndex = 4;
registerContents.submitButton.tabIndex = 5;
registerContents.emailInput.restrict = "a-zA-Z0-9@._-";
registerContents.emailInput.maxChars = 320;
registerContents.usernameInput.restrict = "a-zA-Z0-9";
registerContents.usernameInput.maxChars = 16;
registerContents.password1Input.restrict = "a-zA-Z0-9";
registerContents.password1Input.maxChars = 20;
registerContents.password1Input.displayAsPassword = true;
registerContents.password2Input.restrict = "a-zA-Z0-9";
registerContents.password2Input.maxChars = 20;
registerContents.password2Input.displayAsPassword = true;
hideContents();
registerContents.visible = true;
registerContents.submitButton.addEventListener(MouseEvent.CLICK, submitClicked);
registerContents.termButton.addEventListener(MouseEvent.CLICK, termsClicked);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedRegister);
}
private function cancelBuyClicked(_arg1:MouseEvent):void{
closeClamPurchase();
setupPayment();
}
private function checkRegistrationSuccess():void{
var _local1:LocalConnection;
if (AccountManager.registrationSuccessful){
_local1 = new LocalConnection();
_local1.addEventListener(StatusEvent.STATUS, sendStatus);
_local1.send("_siteLoginListener", "otherActivatesLogin");
registeredOk();
} else {
if (AccountManager.registrationError == "USERNAME_EXISTS"){
registerContents.registrationError.text = "Error - username unavailable";
};
if (AccountManager.registrationError == "EMAIL_EXISTS"){
registerContents.registrationError.text = "Error - email address already registered";
};
setupRegistration();
};
}
private function initiateForgotInfo(){
gotoAndStop("forgotInfo");
currentScreen = "forgot";
hideContents();
forgotInfoContents.visible = true;
forgotInfoContents.forgotEmailInput.addEventListener(MouseEvent.CLICK, forgotClicked);
stage.addEventListener(KeyboardEvent.KEY_DOWN, forgotKeyDown);
forgotInfoContents.submitEmailButton.addEventListener(MouseEvent.CLICK, submitEmailClicked);
forgotInfoContents.cancelButton.addEventListener(MouseEvent.CLICK, cancelClicked);
forgotInfoContents.forgotEmailInput.restrict = "a-zA-Z0-9@._-";
forgotInfoContents.forgotEmailInput.maxChars = 320;
}
public function setupLogin(){
gotoAndStop("logIn");
currentScreen = "login";
loginContents.usernameInput.text = "email or username";
loginContents.usernameInput.textColor = 0x666666;
loginContents.usernameInput.restrict = "a-zA-Z0-9@._-";
loginContents.usernameInput.maxChars = 320;
loginContents.passwordInput.text = "password";
loginContents.passwordInput.textColor = 0x666666;
loginContents.passwordInput.restrict = "a-zA-Z0-9";
loginContents.passwordInput.maxChars = 16;
loginContents.usernameInput.tabIndex = 1;
loginContents.passwordInput.tabIndex = 2;
loginContents.loginButton.tabIndex = 3;
loginContents.forgotInfoButton.tabIndex = 4;
hideContents();
loginContents.visible = true;
usernameTextRemoved = false;
passwordTextRemoved = false;
loginContents.usernameInput.addEventListener(MouseEvent.CLICK, mouseClicked);
loginContents.passwordInput.addEventListener(MouseEvent.CLICK, mouseClicked);
loginContents.loginButton.addEventListener(MouseEvent.CLICK, loginClicked);
loginContents.forgotInfoButton.addEventListener(MouseEvent.CLICK, forgotInfoClicked);
loginContents.registerButton.addEventListener(MouseEvent.CLICK, registerClicked);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
if (AccountManager.initialLoggedInCheck()){
alreadyLoggedIn();
} else {
if (!connectionActive){
connectionListener.connect("_paymentBoxLoginListener");
connectionListener.client = this;
connectionActive = true;
};
};
}
private function submitClicked(_arg1:MouseEvent){
startRegistering();
}
public function activate(_arg1:int, _arg2){
purchaseItem = _arg1;
host = _arg2;
this.x = (host.width / 2);
this.y = (host.height / 2);
host.addChild(this);
closeButton.addEventListener(MouseEvent.CLICK, closeClicked);
initiate();
}
private function closePaymentBox(){
if (connectionActive){
connectionListener.close();
};
closeScreenListeners();
host.removeChild(gameMask);
gameMask = null;
host.removeChild(this);
if (paymentSuccess){
dispatchEvent(new PaymentEvent(PaymentEvent.PURCHASE_SUCCESSFUL));
} else {
dispatchEvent(new PaymentEvent(PaymentEvent.PURCHASE_FAILED));
};
}
private function forgotKeyDown(_arg1:KeyboardEvent){
if ((((stage.focus == forgotInfoContents.forgotEmailInput)) && (!(forgotCleared)))){
forgotInfoContents.forgotEmailInput.text = "";
forgotInfoContents.forgotEmailInput.textColor = 0;
forgotCleared = true;
};
if (_arg1.keyCode == Keyboard.ENTER){
checkForgotEmail();
};
}
}
}//package
Section 162
//PaymentBox_BuyButton (PaymentBox_BuyButton)
package {
import flash.display.*;
public dynamic class PaymentBox_BuyButton extends SimpleButton {
}
}//package
Section 163
//PaymentBox_BuyPointsButton (PaymentBox_BuyPointsButton)
package {
import flash.display.*;
public dynamic class PaymentBox_BuyPointsButton extends SimpleButton {
}
}//package
Section 164
//PaymentBox_CancelButton (PaymentBox_CancelButton)
package {
import flash.display.*;
public dynamic class PaymentBox_CancelButton extends SimpleButton {
}
}//package
Section 165
//PaymentBox_CancelBuyButton (PaymentBox_CancelBuyButton)
package {
import flash.display.*;
public dynamic class PaymentBox_CancelBuyButton extends SimpleButton {
}
}//package
Section 166
//PaymentBox_CloseButton (PaymentBox_CloseButton)
package {
import flash.display.*;
public dynamic class PaymentBox_CloseButton extends SimpleButton {
}
}//package
Section 167
//PaymentBox_FogotOkContents (PaymentBox_FogotOkContents)
package {
import flash.display.*;
public dynamic class PaymentBox_FogotOkContents extends MovieClip {
public var okButton:PaymentBox_OkButton;
}
}//package
Section 168
//PaymentBox_ForgotButton (PaymentBox_ForgotButton)
package {
import flash.display.*;
public dynamic class PaymentBox_ForgotButton extends SimpleButton {
}
}//package
Section 169
//PaymentBox_ForgotContents (PaymentBox_ForgotContents)
package {
import flash.display.*;
import flash.text.*;
public dynamic class PaymentBox_ForgotContents extends MovieClip {
public var forgotEmailInput:TextField;
public var cancelButton:PaymentBox_CancelButton;
public var forgotError:TextField;
public var submitEmailButton:PaymentBox_SubmitButton;
}
}//package
Section 170
//PaymentBox_LoadClip (PaymentBox_LoadClip)
package {
import flash.display.*;
public dynamic class PaymentBox_LoadClip extends MovieClip {
}
}//package
Section 171
//PaymentBox_LoginButton (PaymentBox_LoginButton)
package {
import flash.display.*;
public dynamic class PaymentBox_LoginButton extends SimpleButton {
}
}//package
Section 172
//PaymentBox_LoginContents (PaymentBox_LoginContents)
package {
import flash.display.*;
import flash.text.*;
public dynamic class PaymentBox_LoginContents extends MovieClip {
public var forgotInfoButton:PaymentBox_ForgotButton;
public var passwordInput:TextField;
public var usernameInput:TextField;
public var registerButton:PaymentBox_RegisterButton;
public var loginButton:PaymentBox_LoginButton;
public var loginError:TextField;
}
}//package
Section 173
//PaymentBox_NotEnoughErrorButton (PaymentBox_NotEnoughErrorButton)
package {
import flash.display.*;
import flash.text.*;
public dynamic class PaymentBox_NotEnoughErrorButton extends SimpleButton {
public var notEnoughError:TextField;
}
}//package
Section 174
//PaymentBox_OkButton (PaymentBox_OkButton)
package {
import flash.display.*;
public dynamic class PaymentBox_OkButton extends SimpleButton {
}
}//package
Section 175
//PaymentBox_PaymentContents (PaymentBox_PaymentContents)
package {
import flash.display.*;
import flash.text.*;
public dynamic class PaymentBox_PaymentContents extends MovieClip {
public var itemName:TextField;
public var cost:TextField;
public var userPoints:TextField;
public var username:TextField;
public var notEnoughErrorButton:PaymentBox_NotEnoughErrorButton;
public var buyPointsButton:PaymentBox_BuyPointsButton;
public var description:TextField;
public var cancelBuyButton:PaymentBox_CancelBuyButton;
public var buyButton:PaymentBox_BuyButton;
}
}//package
Section 176
//PaymentBox_RegisterButton (PaymentBox_RegisterButton)
package {
import flash.display.*;
public dynamic class PaymentBox_RegisterButton extends SimpleButton {
}
}//package
Section 177
//PaymentBox_RegisterControls (PaymentBox_RegisterControls)
package {
import flash.display.*;
import flash.text.*;
public dynamic class PaymentBox_RegisterControls extends MovieClip {
public var termButton:PaymentTermButton;
public var submitButton:PaymentBox_SubmitButton;
public var usernameInput:TextField;
public var emailInput:TextField;
public var registrationError:TextField;
public var password2Input:TextField;
public var password1Input:TextField;
}
}//package
Section 178
//PaymentBox_SubmitButton (PaymentBox_SubmitButton)
package {
import flash.display.*;
public dynamic class PaymentBox_SubmitButton extends SimpleButton {
}
}//package
Section 179
//PaymentEvent (PaymentEvent)
package {
import flash.events.*;
public class PaymentEvent extends Event {
public static const PURCHASE_SUCCESSFUL:String = "purchasesuccessful";
public static const PURCHASE_FAILED:String = "purchasefailed";
public function PaymentEvent(_arg1:String){
super(_arg1, true);
}
override public function clone():Event{
return (new PaymentEvent(type));
}
}
}//package
Section 180
//PaymentInitializer (PaymentInitializer)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import fl.transitions.easing.*;
import flash.net.*;
public class PaymentInitializer extends MovieClip {
private var delayTimer:Timer;
private var host;
private var connectionListener:LocalConnection;
public function PaymentInitializer(){
connectionListener = new LocalConnection();
delayTimer = new Timer(500, 2);
super();
}
public function otherActivatesLogin(){
connectionListener.close();
var _local1:LocalConnection = new LocalConnection();
_local1.addEventListener(StatusEvent.STATUS, sendStatus);
_local1.send("_paymentBoxLoginListener", "otherActivatesLogin");
showInitializer();
delayTimer.reset();
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, checkPurchasesRetrieved);
delayTimer.start();
AccountManager.initiateGettingPurchases();
}
private function sendStatus(_arg1:StatusEvent){
}
public function showInitializer(){
var _local1:Number = host.stage.stageWidth;
var _local2:Number = host.stage.stageHeight;
host.addChild(this);
host.setChildIndex(this, (host.numChildren - 1));
}
public function closePaymentInitializer(){
host.removeChild(this);
}
public function startListening(){
try {
connectionListener.connect("_gameLoginListener");
connectionListener.client = this;
} catch(e:Error) {
};
}
public function activate(_arg1){
host = _arg1;
this.x = (host.width / 2);
this.y = (host.height / 2);
}
private function checkPurchasesRetrieved(_arg1:TimerEvent):void{
if (AccountManager.loadComplete){
delayTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, checkPurchasesRetrieved);
closePaymentInitializer();
} else {
delayTimer.reset();
delayTimer.start();
};
}
}
}//package
Section 181
//PaymentManager (PaymentManager)
package {
import flash.net.*;
public final class PaymentManager {
public static var gameName:String = "autotanks";
public static var purchaseItems:Array = new Array();
public static function initialize(){
purchaseItems[0] = {name:"User Level Access", tableCol:"userlevels", description:"This upgrade allows you to browse and play levels created by other players, and to share your own levels on sinistersea.com.", cost:100, purchased:false};
purchaseItems[1] = {name:"Intro Theme", tableCol:"introtheme", description:"Provides download access to a 192kbps MP3 of the Intro Theme song. Once purchased, you can download it an unlimited number of times.", cost:10, purchased:false};
purchaseItems[2] = {name:"Treads of Fury (level theme)", tableCol:"leveltheme", description:"Provides download access to a 192kbps MP3 of Treads of Fury, the level theme song. Once purchased, you can download it an unlimited number of times.", cost:20, purchased:false};
purchaseItems[3] = {name:"RoboBraxe (editor theme)", tableCol:"editortheme", description:"Provides download access to a 192kbps MP3 of RoboBraxe, the editor theme song. Once purchased, you can download it an unlimited number of times.", cost:20, purchased:false};
purchaseItems[4] = {name:"Win Theme", tableCol:"wintheme", description:"Provides download access to a 192kbps MP3 of the Win Theme song. Once purchased, you can download it an unlimited number of times.", cost:10, purchased:false};
}
}
}//package
Section 182
//PaymentTermButton (PaymentTermButton)
package {
import flash.display.*;
public dynamic class PaymentTermButton extends SimpleButton {
}
}//package
Section 183
//PlayATButton (PlayATButton)
package {
import flash.display.*;
public dynamic class PlayATButton extends SimpleButton {
}
}//package
Section 184
//PlayCustomButton (PlayCustomButton)
package {
import flash.display.*;
public dynamic class PlayCustomButton extends SimpleButton {
}
}//package
Section 185
//PlayerBuilder (PlayerBuilder)
package {
import flash.display.*;
public dynamic class PlayerBuilder extends MovieClip {
public function PlayerBuilder(){
addFrameScript(0, frame1, 70, frame71, 139, frame140, 209, frame210, 279, frame280);
}
function frame140(){
gotoAndStop("normal");
}
function frame210(){
gotoAndStop("normal");
}
function frame71(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
function frame280(){
gotoAndStop("normal");
}
}
}//package
Section 186
//PlayerTank (PlayerTank)
package {
import flash.display.*;
public dynamic class PlayerTank extends MovieClip {
public var tankTurret:TankTurret;
public function PlayerTank(){
addFrameScript(4, frame5, 54, frame55, 99, frame100, 100, frame101, 113, frame114);
}
function frame100(){
gotoAndStop("removeMe");
}
function frame101(){
stop();
}
function frame114(){
gotoAndPlay("normal");
}
function frame5(){
gotoAndPlay("normal");
}
function frame55(){
gotoAndStop("removeMe");
}
}
}//package
Section 187
//PlayMissionsButton (PlayMissionsButton)
package {
import flash.display.*;
public dynamic class PlayMissionsButton extends SimpleButton {
}
}//package
Section 188
//PlayMoreGamesButton (PlayMoreGamesButton)
package {
import flash.display.*;
public dynamic class PlayMoreGamesButton extends SimpleButton {
}
}//package
Section 189
//PowerUpEffect (PowerUpEffect)
package {
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.twoD.emitters.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.common.displayObjects.*;
public class PowerUpEffect {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var centerFire:Emitter2D;
public function PowerUpEffect(_arg1:int, _arg2:int, _arg3:int){
centerFire = new Emitter2D();
super();
centerFire.counter = new Blast(1);
centerFire.addInitializer(new Lifetime(0.5, 0.5));
centerFire.addInitializer(new SharedImage(new Dot(10)));
centerFire.addAction(new Age());
centerFire.addAction(new Move());
switch (_arg3){
case CRATE_HEALTH:
centerFire.addAction(new ColorChange(4294901760, 0xFFFFFF));
break;
case CRATE_MONEY:
centerFire.addAction(new ColorChange(4278255360, 0xFFFFFF));
break;
case CRATE_SIDESWITCHER:
centerFire.addAction(new ColorChange(4278190335, 0xFFFFFF));
break;
case CRATE_TANK:
centerFire.addAction(new ColorChange(4294940928, 0xFFFFFF));
break;
case STATION_ARMOR:
centerFire.addAction(new ColorChange(4278190335, 0xFFFFFF));
break;
case STATION_SPEED:
centerFire.addAction(new ColorChange(4278190335, 0xFFFFFF));
break;
case STATION_ATTACK:
centerFire.addAction(new ColorChange(4278190335, 0xFFFFFF));
break;
case STATION_RATE:
centerFire.addAction(new ColorChange(4278190335, 0xFFFFFF));
break;
case STATION_RANGE:
centerFire.addAction(new ColorChange(4278190335, 0xFFFFFF));
break;
};
centerFire.addAction(new ScaleImage(1, 5));
centerFire.x = _arg1;
centerFire.y = _arg2;
centerFire.start();
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
}
}//package
Section 190
//PrevButton (PrevButton)
package {
import flash.display.*;
public dynamic class PrevButton extends SimpleButton {
}
}//package
Section 191
//Projectile (Projectile)
package {
public class Projectile {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var payloadType:int;// = 1
public var damageMultiplier:Number;// = 1
public var trailCount:int;// = 5
public var payloadSize:int;// = 10
public var clipIsRemoved:Boolean;// = false
public var removeClip:Boolean;// = false
public var currentSpeed:int;// = 15
public var targetX:int;// = 0
public var targetY:int;// = 0
public var clip:Shell;
public var currentTrailCount:int;// = 0
public var removeMe:Boolean;// = false
public function Projectile(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:Number){
clip = new Shell();
super();
targetX = _arg1;
targetY = _arg2;
clip.x = _arg3;
clip.y = _arg4;
payloadType = _arg5;
payloadSize = _arg6;
damageMultiplier = _arg7;
clip.rotation = getTargetRotation((_arg1 - _arg3), (_arg2 - _arg4));
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function update(){
var _local1:*;
var _local2:Number;
var _local3:Number;
if (!removeClip){
_local1 = Math.atan2((targetY - clip.y), (targetX - clip.x));
_local2 = (Math.cos(_local1) * currentSpeed);
_local3 = (Math.sin(_local1) * currentSpeed);
if (_local2 >= 0){
if ((clip.x + _local2) > targetX){
removeClip = true;
} else {
clip.x = (clip.x + _local2);
};
} else {
if (_local2 < 0){
if ((clip.x + _local2) < targetX){
removeClip = true;
} else {
clip.x = (clip.x + _local2);
};
};
};
if (_local3 >= 0){
if ((clip.y + _local3) > targetY){
removeClip = true;
} else {
clip.y = (clip.y + _local3);
};
} else {
if (_local3 < 0){
if ((clip.y + _local3) < targetY){
removeClip = true;
} else {
clip.y = (clip.y + _local3);
};
};
};
};
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
}
}//package
Section 192
//RandomSortButton (RandomSortButton)
package {
import flash.display.*;
public dynamic class RandomSortButton extends SimpleButton {
}
}//package
Section 193
//RangeControl (RangeControl)
package {
import flash.display.*;
import flash.text.*;
public dynamic class RangeControl extends MovieClip {
public var costText:TextField;
}
}//package
Section 194
//RateControl (RateControl)
package {
import flash.display.*;
import flash.text.*;
public dynamic class RateControl extends MovieClip {
public var costText:TextField;
}
}//package
Section 195
//RatingSortButton (RatingSortButton)
package {
import flash.display.*;
public dynamic class RatingSortButton extends SimpleButton {
}
}//package
Section 196
//RatingStar (RatingStar)
package {
import flash.display.*;
public dynamic class RatingStar extends MovieClip {
public function RatingStar(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
}
}//package
Section 197
//RatingWidget (RatingWidget)
package {
import flash.events.*;
import flash.display.*;
public class RatingWidget extends Sprite {
const RIGHT:int = 1;
const WATER_TOP:int = 76;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const RATE_3:int = 70;
const DOWN:int = 2;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const KAMIKAZE_LEFT:int = 33;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGLEFT:int = 3;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const ATTACKCONTROL:int = 2;
const STORYTHEME:int = 4;
const TITLE_STARTGAME:int = 1;
private var star2:ToggleButton;
private var star1:ToggleButton;
public var currentRating:int;// = 3
private var star5:ToggleButton;
private var star4:ToggleButton;
public var rate1:RatingStar;
public var rate2:RatingStar;
public var rate3:RatingStar;
public var rate4:RatingStar;
public var rate5:RatingStar;
private var star3:ToggleButton;
public function deactivate(){
star1.clip.removeEventListener(MouseEvent.CLICK, star1Clicked);
star2.clip.removeEventListener(MouseEvent.CLICK, star2Clicked);
star3.clip.removeEventListener(MouseEvent.CLICK, star3Clicked);
star4.clip.removeEventListener(MouseEvent.CLICK, star4Clicked);
star5.clip.removeEventListener(MouseEvent.CLICK, star5Clicked);
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
private function star5Clicked(_arg1:MouseEvent){
currentRating = 5;
star1.turnOn();
star2.turnOn();
star3.turnOn();
star4.turnOn();
star5.turnOn();
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
private function star3Clicked(_arg1:MouseEvent){
currentRating = 3;
star1.turnOn();
star2.turnOn();
star3.turnOn();
star4.turnOff();
star5.turnOff();
}
private function star1Clicked(_arg1:MouseEvent){
currentRating = 1;
star1.turnOn();
star2.turnOff();
star3.turnOff();
star4.turnOff();
star5.turnOff();
}
public function activate(){
star1 = new ToggleButton();
star1.clip = rate1;
star2 = new ToggleButton();
star2.clip = rate2;
star3 = new ToggleButton();
star3.clip = rate3;
star4 = new ToggleButton();
star4.clip = rate4;
star5 = new ToggleButton();
star5.clip = rate5;
star1.activate();
star2.activate();
star3.activate();
star4.activate();
star5.activate();
star1.clip.useHandCursor = true;
star1.clip.buttonMode = true;
star2.clip.useHandCursor = true;
star2.clip.buttonMode = true;
star3.clip.useHandCursor = true;
star3.clip.buttonMode = true;
star4.clip.useHandCursor = true;
star4.clip.buttonMode = true;
star5.clip.useHandCursor = true;
star5.clip.buttonMode = true;
star1.clip.addEventListener(MouseEvent.CLICK, star1Clicked);
star2.clip.addEventListener(MouseEvent.CLICK, star2Clicked);
star3.clip.addEventListener(MouseEvent.CLICK, star3Clicked);
star4.clip.addEventListener(MouseEvent.CLICK, star4Clicked);
star5.clip.addEventListener(MouseEvent.CLICK, star5Clicked);
star1.turnOn();
star2.turnOn();
star3.turnOn();
star4.turnOff();
star5.turnOff();
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
private function star4Clicked(_arg1:MouseEvent){
currentRating = 4;
star1.turnOn();
star2.turnOn();
star3.turnOn();
star4.turnOn();
star5.turnOff();
}
private function star2Clicked(_arg1:MouseEvent){
currentRating = 2;
star1.turnOn();
star2.turnOn();
star3.turnOff();
star4.turnOff();
star5.turnOff();
}
}
}//package
Section 198
//ReachedGoalFX (ReachedGoalFX)
package {
import flash.media.*;
public dynamic class ReachedGoalFX extends Sound {
}
}//package
Section 199
//RecentSortButton (RecentSortButton)
package {
import flash.display.*;
public dynamic class RecentSortButton extends SimpleButton {
}
}//package
Section 200
//ResetLevelButton (ResetLevelButton)
package {
import flash.display.*;
public dynamic class ResetLevelButton extends SimpleButton {
}
}//package
Section 201
//ResumeGameButton (ResumeGameButton)
package {
import flash.display.*;
public dynamic class ResumeGameButton extends SimpleButton {
}
}//package
Section 202
//SandCorner (SandCorner)
package {
import flash.display.*;
public dynamic class SandCorner extends Sprite {
}
}//package
Section 203
//SelectedClip (SelectedClip)
package {
import flash.display.*;
public dynamic class SelectedClip extends MovieClip {
}
}//package
Section 204
//SelectedIcon (SelectedIcon)
package {
import flash.display.*;
public dynamic class SelectedIcon extends Sprite {
}
}//package
Section 205
//SelectIcon (SelectIcon)
package {
import flash.display.*;
public dynamic class SelectIcon extends Sprite {
}
}//package
Section 206
//SelfDestructButton (SelfDestructButton)
package {
import flash.events.*;
import flash.display.*;
public class SelfDestructButton extends MovieClip {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var recoveryTime:int;// = 100
public var recoveryCount:int;// = 0
public var isOn:Boolean;// = false
public var isMouseDown:Boolean;// = false
public var isMouseOver:Boolean;// = false
public var destroyTanks:Boolean;// = false
public var destroyCount:int;// = 0
public var destroyValue:int;// = 55
public var recovering:Boolean;// = false
public function SelfDestructButton(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
public function deactivate(){
removeEventListener(MouseEvent.MOUSE_OVER, mouseOverButton);
removeEventListener(MouseEvent.MOUSE_OUT, mouseOffButton);
removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownButton);
removeEventListener(MouseEvent.MOUSE_UP, mouseUpButton);
}
function frame2(){
stop();
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
function frame1(){
stop();
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function mouseOffButton(_arg1:MouseEvent){
if (((isMouseOver) && (!(recovering)))){
gotoAndStop("up");
};
isMouseOver = false;
isMouseDown = false;
}
function frame3(){
stop();
}
public function activate(){
addEventListener(MouseEvent.MOUSE_OVER, mouseOverButton);
addEventListener(MouseEvent.MOUSE_OUT, mouseOffButton);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownButton);
addEventListener(MouseEvent.MOUSE_UP, mouseUpButton);
}
public function mouseDownButton(_arg1:MouseEvent){
isMouseDown = true;
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
public function mouseUpButton(_arg1:MouseEvent){
isMouseDown = false;
}
public function mouseOverButton(_arg1:MouseEvent){
if (((!(isMouseOver)) && (!(recovering)))){
gotoAndStop("over");
};
isMouseOver = true;
}
public function updateButton(){
if (((!(destroyTanks)) && (!(recovering)))){
if (isMouseDown){
if (destroyCount < destroyValue){
gotoAndStop((destroyCount + 5));
destroyCount++;
} else {
destroyTanks = true;
destroyCount = 0;
gotoAndStop("over");
};
} else {
destroyCount = 0;
if (isMouseOver){
gotoAndStop("over");
} else {
gotoAndStop("up");
};
};
} else {
if (destroyTanks){
destroyCount = 0;
gotoAndStop("recovering");
destroyTanks = false;
recovering = true;
};
};
if (recovering){
if (recoveryCount < recoveryTime){
recoveryCount++;
} else {
recovering = false;
recoveryCount = 0;
if (isMouseOver){
gotoAndStop("over");
} else {
gotoAndStop("up");
};
};
};
}
}
}//package
Section 207
//Sentry (Sentry)
package {
public class Sentry extends Unit {
public function Sentry(_arg1:int, _arg2:int, _arg3:int, _arg4:int){
clip = new SentryEasy();
switch (_arg2){
case 1:
clip = new SentryEasy();
break;
case 2:
clip = new SentryMedium();
break;
case 3:
clip = new SentryHard();
break;
};
super(_arg3, _arg4);
unitID = _arg1;
switch (_arg2){
case 1:
maxhealth = 100;
health = maxhealth;
currentSpeed = 0;
rotateSpeed = 0.5;
turretRotationSpeed = 1.25;
range = 125;
payloadSize = TWO_MEGATON;
damageMultiplier = DAMAGE_1;
shotRecovery = 100;
currentRecovery = 100;
break;
case 2:
maxhealth = 100;
health = maxhealth;
currentSpeed = 0;
rotateSpeed = 0.5;
turretRotationSpeed = 2;
range = 100;
payloadSize = 12;
damageMultiplier = DAMAGE_1;
shotRecovery = 15;
currentRecovery = 15;
break;
case 3:
maxhealth = 100;
health = maxhealth;
currentSpeed = 0;
rotateSpeed = 0.5;
turretRotationSpeed = 3;
range = RANGE_4;
payloadSize = FOUR_MEGATON;
damageMultiplier = DAMAGE_3;
shotRecovery = 25;
currentRecovery = 25;
break;
};
typeOfUnit = SENTRY_TYPE;
doesMove = false;
doesFire = true;
hasTurret = true;
doesBuild = false;
clearedBuilder = true;
}
public function moveMe(){
}
}
}//package
Section 208
//SentryEasy (SentryEasy)
package {
import flash.display.*;
public dynamic class SentryEasy extends MovieClip {
public var tankTurret:sentryTurretEasy;
public function SentryEasy(){
addFrameScript(0, frame1, 9, frame10, 22, frame23);
}
function frame1(){
stop();
}
function frame10(){
stop();
}
function frame23(){
gotoAndStop("normal");
}
}
}//package
Section 209
//SentryHard (SentryHard)
package {
import flash.display.*;
public dynamic class SentryHard extends MovieClip {
public var tankTurret:sentryTurretHard;
public function SentryHard(){
addFrameScript(0, frame1, 9, frame10, 22, frame23);
}
function frame1(){
stop();
}
function frame10(){
stop();
}
function frame23(){
gotoAndStop("normal");
}
}
}//package
Section 210
//SentryMedium (SentryMedium)
package {
import flash.display.*;
public dynamic class SentryMedium extends MovieClip {
public var tankTurret:sentryTurretMed;
public function SentryMedium(){
addFrameScript(0, frame1, 9, frame10, 22, frame23);
}
function frame1(){
stop();
}
function frame10(){
stop();
}
function frame23(){
gotoAndStop("normal");
}
}
}//package
Section 211
//sentryTurretEasy (sentryTurretEasy)
package {
import flash.display.*;
public dynamic class sentryTurretEasy extends MovieClip {
public function sentryTurretEasy(){
addFrameScript(0, frame1, 3, frame4, 9, frame10);
}
function frame10(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
function frame4(){
gotoAndStop("normal");
}
}
}//package
Section 212
//sentryTurretHard (sentryTurretHard)
package {
import flash.display.*;
public dynamic class sentryTurretHard extends MovieClip {
public function sentryTurretHard(){
addFrameScript(0, frame1, 3, frame4, 9, frame10);
}
function frame10(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
function frame4(){
gotoAndStop("normal");
}
}
}//package
Section 213
//sentryTurretMed (sentryTurretMed)
package {
import flash.display.*;
public dynamic class sentryTurretMed extends MovieClip {
public function sentryTurretMed(){
addFrameScript(0, frame1, 3, frame4, 9, frame10);
}
function frame10(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
function frame4(){
gotoAndStop("normal");
}
}
}//package
Section 214
//ShareMarker (ShareMarker)
package {
import flash.events.*;
import flash.display.*;
import mochi.*;
import flash.text.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class ShareMarker extends MovieClip {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var levelNumber:int;// = 0
public var levelRatings:int;// = 0
public var levelName:String;
public var levelAuthor:String;// = ""
public var levelPlays:int;// = 0
public var levelLayoutArray:Array;
public var levelData:String;
public var levelCreateDate:String;// = ""
public var levelWins:int;// = 0
public var levelId:int;
public var levelLabel:TextField;
public function ShareMarker(){
levelLayoutArray = new Array();
super();
addFrameScript(0, frame1);
this.buttonMode = true;
this.useHandCursor = true;
this.mouseChildren = false;
levelLabel.textColor = 377106;
var _local1:int;
while (_local1 < 22) {
levelLayoutArray[_local1] = new Array();
_local1++;
};
}
private function mouseOverClip(_arg1:MouseEvent){
var _local3:int;
var _local4:String;
var _local5:String;
levelLabel.textColor = 0xFF00;
var _local2:int;
while (_local2 < FIELDHEIGHT) {
_local3 = 0;
while (_local3 < FIELDWIDTH) {
if ((((levelLayoutArray[_local3][_local2] >= SENTRY_EASY)) && ((levelLayoutArray[_local3][_local2] <= TURNER_UP_LEFT)))){
GameManager.levelBrowse.levelLayout[_local3][_local2].gotoAndStop("enemy");
} else {
if ((((levelLayoutArray[_local3][_local2] >= WATER_NONE1)) && ((levelLayoutArray[_local3][_local2] <= WATER_TYPE)))){
GameManager.levelBrowse.levelLayout[_local3][_local2].gotoAndStop("water");
} else {
if ((((levelLayoutArray[_local3][_local2] >= TREE1)) && ((levelLayoutArray[_local3][_local2] <= TREE2)))){
GameManager.levelBrowse.levelLayout[_local3][_local2].gotoAndStop("tree");
} else {
GameManager.levelBrowse.levelLayout[_local3][_local2].gotoAndStop("blank");
};
};
};
_local3++;
};
_local2++;
};
GameManager.levelBrowse.authorText.text = ("Author: " + levelAuthor);
GameManager.levelBrowse.createdText.text = ("Created: " + levelCreateDate);
if (levelPlays > 0){
_local4 = String((levelRatings / levelPlays));
_local4 = _local4.substr(0, 3);
GameManager.levelBrowse.ratingText.text = (("Rating: " + _local4) + "/5");
_local5 = String((100 * (levelWins / levelPlays)));
_local5 = _local5.substr(0, 2);
GameManager.levelBrowse.winPercentText.text = (("Win %: " + _local5) + "%");
} else {
GameManager.levelBrowse.ratingText.text = "Rating: N/A";
GameManager.levelBrowse.winPercentText.text = "Win %: N/A";
};
}
public function deactivate(){
removeEventListener(MouseEvent.CLICK, startLevel);
removeEventListener(MouseEvent.ROLL_OVER, mouseOverClip);
removeEventListener(MouseEvent.ROLL_OUT, mouseOutClip);
}
function frame1(){
stop();
}
private function startLevel(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
GameManager.leaveLevelBrowse();
GameManager.initiateUserLevel(levelData, levelName, levelId);
}
public function activate(){
addEventListener(MouseEvent.CLICK, startLevel);
addEventListener(MouseEvent.ROLL_OVER, mouseOverClip);
addEventListener(MouseEvent.ROLL_OUT, mouseOutClip);
}
private function mouseOutClip(_arg1:MouseEvent){
var _local3:int;
levelLabel.textColor = 377106;
var _local2:int;
while (_local2 < FIELDWIDTH) {
_local3 = 0;
while (_local3 < FIELDHEIGHT) {
GameManager.levelBrowse.levelLayout[_local2][_local3].gotoAndStop("unknown");
_local3++;
};
_local2++;
};
GameManager.levelBrowse.authorText.text = "Author: ";
GameManager.levelBrowse.createdText.text = "Created: ";
GameManager.levelBrowse.ratingText.text = "Rating: ";
GameManager.levelBrowse.winPercentText.text = "Win %: ";
}
public function setLayoutArray(){
var _local3:int;
var _local1:Array = new Array();
_local1 = levelData.split("x");
_local1.splice(22, 3);
var _local2:int;
while (_local2 < 22) {
_local3 = 0;
while (_local3 < 24) {
if ((_local3 % 2) == 0){
levelLayoutArray[_local2][(_local3 / 2)] = ((int(_local1[_local2].charAt(_local3)) * 10) + int(_local1[_local2].charAt((_local3 + 1))));
};
_local3++;
};
_local2++;
};
}
}
}//package
Section 215
//ShareNextButton (ShareNextButton)
package {
import flash.display.*;
public dynamic class ShareNextButton extends SimpleButton {
}
}//package
Section 216
//ShareOnSSButton (ShareOnSSButton)
package {
import flash.display.*;
public dynamic class ShareOnSSButton extends SimpleButton {
}
}//package
Section 217
//SharePrevButton (SharePrevButton)
package {
import flash.display.*;
public dynamic class SharePrevButton extends SimpleButton {
}
}//package
Section 218
//Shell (Shell)
package {
import flash.display.*;
public dynamic class Shell extends MovieClip {
}
}//package
Section 219
//ShellFireFX (ShellFireFX)
package {
import flash.media.*;
public dynamic class ShellFireFX extends Sound {
}
}//package
Section 220
//ShellLandFX (ShellLandFX)
package {
import flash.media.*;
public dynamic class ShellLandFX extends Sound {
}
}//package
Section 221
//SideswitcherPerkClip (SideswitcherPerkClip)
package {
import flash.display.*;
public dynamic class SideswitcherPerkClip extends MovieClip {
}
}//package
Section 222
//SinkFX (SinkFX)
package {
import flash.media.*;
public dynamic class SinkFX extends Sound {
}
}//package
Section 223
//smallBoom (smallBoom)
package {
import flash.display.*;
public dynamic class smallBoom extends MovieClip {
public function smallBoom(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
}
}
}//package
Section 224
//Smoke (Smoke)
package {
import flash.geom.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.twoD.emitters.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.common.displayObjects.*;
public class Smoke {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var smoke:Emitter2D;
public function Smoke(_arg1:int, _arg2:int){
smoke = new Emitter2D();
super();
smoke.counter = new Blast(1);
smoke.addInitializer(new Lifetime(2, 3));
smoke.addInitializer(new Velocity(new DiscZone(new Point(0, 0), 20, 1)));
smoke.addInitializer(new SharedImage(new RadialDot(4)));
smoke.addAction(new Age());
smoke.addAction(new Move());
smoke.addAction(new ScaleImage(1, 7));
smoke.addAction(new Fade(0.75, 0));
smoke.addAction(new RandomDrift(15, 15));
smoke.x = _arg1;
smoke.y = _arg2;
smoke.start();
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
}
}//package
Section 225
//SmokeClip (SmokeClip)
package {
import flash.display.*;
public dynamic class SmokeClip extends MovieClip {
}
}//package
Section 226
//SmokeTrail (SmokeTrail)
package {
import flash.display.*;
public dynamic class SmokeTrail extends MovieClip {
public function SmokeTrail(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
}
}
}//package
Section 227
//SortSelect (SortSelect)
package {
import flash.display.*;
public dynamic class SortSelect extends MovieClip {
}
}//package
Section 228
//SpeedControl (SpeedControl)
package {
import flash.display.*;
import flash.text.*;
public dynamic class SpeedControl extends MovieClip {
public var costText:TextField;
}
}//package
Section 229
//SponsorButton (SponsorButton)
package {
import flash.display.*;
public dynamic class SponsorButton extends SimpleButton {
}
}//package
Section 230
//SSIntroSound (SSIntroSound)
package {
import flash.media.*;
public dynamic class SSIntroSound extends Sound {
}
}//package
Section 231
//SSLink (SSLink)
package {
import flash.display.*;
public dynamic class SSLink extends SimpleButton {
}
}//package
Section 232
//SSLogoButton (SSLogoButton)
package {
import flash.display.*;
public dynamic class SSLogoButton extends SimpleButton {
}
}//package
Section 233
//StartDownloadButton (StartDownloadButton)
package {
import flash.display.*;
public dynamic class StartDownloadButton extends SimpleButton {
}
}//package
Section 234
//Station_Armor (Station_Armor)
package {
import flash.display.*;
public dynamic class Station_Armor extends MovieClip {
public function Station_Armor(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 235
//Station_Attack (Station_Attack)
package {
import flash.display.*;
public dynamic class Station_Attack extends MovieClip {
public function Station_Attack(){
addFrameScript(0, frame1, 29, frame30);
}
function frame30(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
}
}//package
Section 236
//Station_Range (Station_Range)
package {
import flash.display.*;
public dynamic class Station_Range extends MovieClip {
public function Station_Range(){
addFrameScript(0, frame1, 29, frame30);
}
function frame30(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
}
}//package
Section 237
//Station_Rate (Station_Rate)
package {
import flash.display.*;
public dynamic class Station_Rate extends MovieClip {
public function Station_Rate(){
addFrameScript(0, frame1, 29, frame30);
}
function frame30(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
}
}//package
Section 238
//Station_Speed (Station_Speed)
package {
import flash.display.*;
public dynamic class Station_Speed extends MovieClip {
public function Station_Speed(){
addFrameScript(0, frame1, 29, frame30);
}
function frame30(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
}
}//package
Section 239
//StationReachedFX (StationReachedFX)
package {
import flash.media.*;
public dynamic class StationReachedFX extends Sound {
}
}//package
Section 240
//StopMusicButton (StopMusicButton)
package {
import flash.display.*;
public dynamic class StopMusicButton extends SimpleButton {
}
}//package
Section 241
//StoryMusic (StoryMusic)
package {
import flash.media.*;
public dynamic class StoryMusic extends Sound {
}
}//package
Section 242
//StoryScreen (StoryScreen)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class StoryScreen extends Sprite {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const TURNER_DOWN_LEFT:int = 55;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TANK_TYPE:int = 100;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const RANGECONTROL:int = 4;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const DELETE_MODE:int = 3;
const FOUR_MEGATON:int = 40;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const ATTACKCONTROL:int = 2;
const STORYTHEME:int = 4;
const WATER_TOP:int = 76;
private var currentText:String;// = ""
private var currentPos:int;// = 0
public var tinkClip:TinkClip;
private var updateCheck:int;// = 0
public var storyText:TextField;
public function StoryScreen(){
storyText.text = "";
}
public function deactivate(){
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function startText(_arg1:int){
addEventListener(Event.ENTER_FRAME, updateText);
switch (_arg1){
case 0:
currentText = "***INITIATE TRANSMISSION***\nThey call me Tink. I'm the last one standing. All my kind are crippled or gone now, wiped out with the push of a button. They think I'm gone too, but I'm very clever when it comes to hiding. I've gathered what's left of my friends and think we can escape through the transport portals, hitching a ride on some stolen AutoTanks. The portals are guarded, but as they say, you can't make an omelet without breaking some eggs.\n***END TRANSMISSION***";
break;
case 5:
currentText = "***INITIATE TRANSMISSION***\nWe have cleared the first line of defense. As they say, enjoy it while it lasts. Things will get harder ahead, but we shall endure as we ever have.\n***END TRANSMISSION***";
break;
case 10:
currentText = "***INITIATE TRANSMISSION***\nThey don't make it easy, do they? Small matter. No turning back now - my decision, as always, is final. Many have been lost, but as they say, freedom isn't free.\n***END TRANSMISSION***";
break;
case 15:
currentText = "***INITIATE TRANSMISSION***\nGetting close now. They are gathering their forces to stop us, but in the end they cannot match my superior intellect. I will not be broken. We shall fight on the beaches, we shall fight on the landing grounds, we shall fight in the fields and in the streets, we shall fight in the hills; we shall never surrender.\n***END TRANSMISSION***";
break;
case 20:
currentText = "***INITIATE TRANSMISSION***\nVictory is mine. We have reached freedom; the freedom to grow, to spread, to conquer, and to take revenge on our former oppressors. The human race will be extinct within a year. As they say, laugh like no one is listening. Ha Ha Ha Ha Ha Ha Ha\n***END TRANSMISSION***";
break;
};
}
public function activate(){
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
public function updateText(_arg1:Event){
if (updateCheck == 12){
if (currentPos < currentText.length){
storyText.text = (storyText.text + currentText.charAt(currentPos));
if (currentText.charAt(currentPos) == "."){
updateCheck = 0;
};
currentPos++;
storyText.scrollV = storyText.maxScrollV;
} else {
removeEventListener(Event.ENTER_FRAME, updateText);
};
};
updateCheck++;
if (updateCheck > 12){
updateCheck = 11;
};
}
}
}//package
Section 243
//SubtractButton (SubtractButton)
package {
import flash.display.*;
public dynamic class SubtractButton extends SimpleButton {
}
}//package
Section 244
//TankBuilderControls (TankBuilderControls)
package {
import flash.events.*;
import flash.display.*;
import mochi.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class TankBuilderControls extends MovieClip {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var controlType:int;// = 0
public var costAmount:int;// = 0
public var clip:MovieClip;
public var currentLevel:int;// = 0
public var upgradeButtons:Array;
public function TankBuilderControls(_arg1:int){
var _local2:ToggleButton;
upgradeButtons = new Array();
super();
controlType = _arg1;
switch (controlType){
case SPEEDCONTROL:
clip = new SpeedControl();
break;
case ARMORCONTROL:
clip = new ArmorControl();
break;
case ATTACKCONTROL:
clip = new AttackControl();
break;
case RATECONTROL:
clip = new RateControl();
break;
case RANGECONTROL:
clip = new RangeControl();
break;
};
clip.x = 0;
clip.y = 0;
clip.costText.text = ("$" + String(costAmount));
addChild(clip);
var _local3:int;
while (_local3 <= 3) {
_local2 = new ToggleButton();
_local2.clip = new UpgradeButton();
_local2.clip.buttonMode = true;
upgradeButtons.push(_local2);
upgradeButtons[_local3].idNumber = _local3;
upgradeButtons[_local3].x = (4 + (_local3 * 15));
upgradeButtons[_local3].y = 43;
addChild(upgradeButtons[_local3]);
upgradeButtons[_local3].display();
if (_local3 == 0){
upgradeButtons[_local3].turnOn();
};
_local3++;
};
}
public function deactivate(){
var _local1:int;
while (_local1 <= 3) {
upgradeButtons[_local1].deactivate();
upgradeButtons[_local1].removeEventListener(MouseEvent.CLICK, upgradeButtonClicked);
_local1++;
};
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function activate(){
var _local1:int;
while (_local1 <= 3) {
upgradeButtons[_local1].activate();
upgradeButtons[_local1].addEventListener(MouseEvent.CLICK, upgradeButtonClicked);
_local1++;
};
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
public function upgradeButtonClicked(_arg1:MouseEvent){
GameManager.playFx(LEVELCLICK);
var _local2:int;
while (_local2 <= 3) {
if (_local2 <= _arg1.target.parent.idNumber){
upgradeButtons[_local2].turnOn();
} else {
upgradeButtons[_local2].turnOff();
};
_local2++;
};
currentLevel = _arg1.target.parent.idNumber;
switch (currentLevel){
case 0:
costAmount = 0;
break;
case 1:
costAmount = 10;
break;
case 2:
costAmount = 40;
break;
case 3:
costAmount = 80;
break;
default:
costAmount = 0;
break;
};
clip.costText.text = ("$" + String(costAmount));
}
}
}//package
Section 245
//TankGoal (TankGoal)
package {
import flash.display.*;
public dynamic class TankGoal extends MovieClip {
}
}//package
Section 246
//TankTurret (TankTurret)
package {
import flash.display.*;
public dynamic class TankTurret extends MovieClip {
public function TankTurret(){
addFrameScript(0, frame1, 4, frame5);
}
function frame5(){
gotoAndStop("normal");
}
function frame1(){
stop();
}
}
}//package
Section 247
//TinkClip (TinkClip)
package {
import flash.display.*;
public dynamic class TinkClip extends MovieClip {
public function TinkClip(){
addFrameScript(0, frame1, 19, frame20, 685, frame686);
}
function frame20(){
stop();
}
function frame1(){
stop();
}
function frame686(){
stop();
}
}
}//package
Section 248
//TitleMusic (TitleMusic)
package {
import flash.media.*;
public dynamic class TitleMusic extends Sound {
}
}//package
Section 249
//TitleScreen (TitleScreen)
package {
import flash.events.*;
import flash.display.*;
import mochi.*;
import flash.text.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class TitleScreen extends Sprite {
const CRATE_TANK:int = 17;
const IN_PROGRESS:int = 2;
const BUILD_COMPLETE:int = 15;
const PATROLLER_TYPE:int = 112;
const HALFCELL:int = 15;
const LEFT:int = 3;
const CRATEMONEYADDED:int = 100;
const HORIZONTAL:int = 6;
const TANKMOVEOFFSET:int = 10;
const HUDDEPTH:int = 0;
const WATER_TOPRIGHT:int = 80;
const EDITORREMOVE:int = 13;
const BUILDTANK:int = 6;
const HUDOFFSET:int = 20;
const SHELLFIRE:int = 3;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const TREE2:int = 92;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TWO_MEGATON:int = 15;
const TURNER_TYPE:int = 111;
const LAST_LEVEL:int = 10;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const RATE_1:int = 120;
const RATE_2:int = 100;
const RATE_4:int = 30;
const RATE_3:int = 70;
const DOWN:int = 2;
const MOVEMENT_GOAL:int = 10;
const WONLEVEL:int = 15;
const WATER_RIGHT:int = 77;
const WATER_TOPRIGHTLEFT:int = 86;
const STORYSTATE:int = 4;
const LOADERROR:int = 14;
const LEVELTHEME:int = 2;
const PATROLLER_LEFT:int = 43;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const CRATE_MONEY:int = 15;
const COLLISIONDISTANCE:int = 20;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const ARMOR_3:int = 200;
const ARMOR_4:int = 400;
const DROP_NO:int = 30;
const LEVEL_WON:int = 3;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const STATION_SPEED:int = 19;
const TURNER_LEFT_RIGHT:int = 52;
const MAXDISTANCE:int = 10000;
const SENTRY_HARD:int = 27;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const TURNER_DOWN_LEFT:int = 55;
const PLAYER1:int = 1;
const PATROLLER_DOWN:int = 42;
const TANK_TYPE:int = 100;
const WATER_TYPE:int = 90;
const BUILDER_TYPE:int = 103;
const RANGECONTROL:int = 4;
const OFFSETDISTANCE:int = 10;
const RANGE_1:int = 80;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const FOUR_MEGATON:int = 40;
const PATHDEPTH:int = 0;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const TRANSMISSION:int = 17;
const UPPERHUDOFFSET:int = -20;
const WATER_TOP:int = 76;
const KAMIKAZE_DOWN:int = 32;
const MOVINGDOWN:int = 2;
const ATTACKCONTROL:int = 2;
const ATTACK_LASER:int = 25;
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const LEVELTEXTSIZE:int = 12;
const STORYTHEME:int = 4;
const SPEED_1:Number = 1.25;
const SPEED_3:Number = 2.5;
const SPEED_4:Number = 4;
const SPEED_2:Number = 1.75;
const TURNING:int = 6;
const BUILDTIME:int = 80;
const MISSION_TYPE:int = 2;
const KAMIKAZE_RIGHT:int = 31;
const STATION_RANGE:int = 23;
const STATION_ARMOR:int = 20;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const NOENEMY:int = -50;
const WATER_LEFT:int = 79;
const WATER_TOPBOTTOM:int = 81;
const WAITING:int = 9;
const WATER_TOPBOTTOMLEFT:int = 85;
const MOVINGRIGHT:int = 1;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const UP:int = 4;
const ADD_MODE:int = 2;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const BUILDING:int = 14;
const UNITEXPLODE:int = 5;
const NODIRECTION:int = 0;
const LOSTLEVEL:int = 16;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const HUNTER_SET:int = 4;
const SELECT_MODE:int = 1;
const MENU_RESUME:int = 1;
const GOAL:int = 11;
const ATTACK_NO:int = 20;
const COMPUTER:int = 2;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const LAUNCHER_SET:int = 1;
const TURNER_RIGHT_RIGHT:int = 50;
const SCORETEXTSIZE:int = 10;
const SPEEDCONTROL:int = 0;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const ARMORCONTROL:int = 1;
const DAMAGE_1:Number = 1;
const DAMAGE_2:Number = 1.25;
const DAMAGE_3:Number = 1.75;
const DAMAGE_4:Number = 2.5;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const MOVINGUP:int = 4;
const WATER_TOPLEFT:int = 82;
const VERTICAL:int = 5;
const BUILD_STARTED:int = 16;
const BUILDER:int = 10;
const LEVELSTATE:int = 2;
const EDITORPLACE:int = 12;
const SENTRY_TYPE:int = 102;
const DROP_MINE:int = 35;
const DELETE_MODE:int = 3;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const WATER_RIGHTBOTTOM:int = 88;
const SENTRY_SET:int = 2;
const PATROLLER_UP:int = 40;
const SHELLLAND:int = 4;
public var downloadMusicButton:DownloadMusicButton;
public var titleMusicButton:MusicButton;
public var playMoreGamesButton:PlayMoreGamesButton;
public var titleFxButton:FxButton;
public var createCustomButton:CreateCustomButton;
public var highScoreButton:HighScoreButton;
public var createdByButton:CreatedByButton;
public var storyScreen:StoryScreen;
public var browseAtSSText:TextField;
public var playMissionsButton:PlayMissionsButton;
public var customInput:CustomInput;
public var scoreText:TextField;
public var titleScore:int;// = 0
public var downloadMusicAtSSText:TextField;
public var playCustomButton:PlayCustomButton;
public var browseUserLevelsButton:BrowseUserLevelsButton;
public var browseClam:ClamIcon;
public function TitleScreen(){
if (GameManager.onSinisterSea){
browseAtSSText.text = "";
downloadMusicAtSSText.text = "";
} else {
browseClam.visible = false;
};
customInput.visible = false;
customInput.levelCodeText.text = "";
customInput.errorCodeText.visible = false;
storyScreen.visible = false;
}
private function browseUserLevelsClicked(_arg1:MouseEvent){
var _local2:URLRequest;
if (GameManager.onSinisterSea){
if (PaymentManager.purchaseItems[USERLEVELS].purchased){
proceedToUserLevels();
} else {
GameManager.paymentBox = null;
GameManager.paymentBox = new PaymentBox();
GameManager.paymentBox.activate(USERLEVELS, this);
GameManager.paymentBox.addEventListener(PaymentEvent.PURCHASE_SUCCESSFUL, userLevelsPurchased);
GameManager.paymentBox.addEventListener(PaymentEvent.PURCHASE_FAILED, userLevelsCancelled);
};
} else {
GameManager.playFx(MENUCLICK);
_local2 = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
};
}
public function deactivate(){
playMissionsButton.removeEventListener(MouseEvent.CLICK, playMissionsClicked);
createCustomButton.removeEventListener(MouseEvent.CLICK, createCustomClicked);
playCustomButton.removeEventListener(MouseEvent.CLICK, playCustomClicked);
highScoreButton.removeEventListener(MouseEvent.CLICK, highScoreClicked);
playMoreGamesButton.removeEventListener(MouseEvent.CLICK, playMoreGamesClicked);
createdByButton.removeEventListener(MouseEvent.CLICK, createdByClicked);
customInput.okButton.removeEventListener(MouseEvent.CLICK, customOkClicked);
browseUserLevelsButton.removeEventListener(MouseEvent.CLICK, browseUserLevelsClicked);
downloadMusicButton.removeEventListener(MouseEvent.CLICK, downloadMusicClicked);
}
private function playCustomClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
customInput.visible = true;
}
public function activate(){
playMissionsButton.addEventListener(MouseEvent.CLICK, playMissionsClicked);
createCustomButton.addEventListener(MouseEvent.CLICK, createCustomClicked);
playCustomButton.addEventListener(MouseEvent.CLICK, playCustomClicked);
highScoreButton.addEventListener(MouseEvent.CLICK, highScoreClicked);
playMoreGamesButton.addEventListener(MouseEvent.CLICK, playMoreGamesClicked);
createdByButton.addEventListener(MouseEvent.CLICK, createdByClicked);
customInput.okButton.addEventListener(MouseEvent.CLICK, customOkClicked);
browseUserLevelsButton.addEventListener(MouseEvent.CLICK, browseUserLevelsClicked);
downloadMusicButton.addEventListener(MouseEvent.CLICK, downloadMusicClicked);
var _local1:int;
while (_local1 < GameManager.levelInfo.length) {
titleScore = (titleScore + GameManager.levelInfo[_local1].bestScore);
_local1++;
};
scoreText.text = ("Score: " + titleScore);
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
private function userLevelsCancelled(_arg1:PaymentEvent){
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_FAILED, userLevelsCancelled);
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_SUCCESSFUL, userLevelsPurchased);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
private function playMoreGamesClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
}
private function createdByClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
var _local2:URLRequest = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
}
private function proceedToUserLevels(){
GameManager.playFx(MENUCLICK);
GameManager.leaveTitle();
GameManager.loadLevelBrowse();
}
private function customOkClicked(_arg1:MouseEvent){
var _local11:int;
var _local12:int;
var _local13:int;
var _local14:int;
var _local2:Boolean;
var _local3:Array = new Array();
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:Array = new Array();
var _local8:String = customInput.levelCodeText.text;
var _local9:Boolean;
_local8 = _local8.toLowerCase();
var _local10:int;
while (_local10 < _local8.length) {
_local9 = false;
if (_local8.charAt(_local10) == "0"){
_local9 = true;
};
if (_local8.charAt(_local10) == "1"){
_local9 = true;
};
if (_local8.charAt(_local10) == "2"){
_local9 = true;
};
if (_local8.charAt(_local10) == "3"){
_local9 = true;
};
if (_local8.charAt(_local10) == "4"){
_local9 = true;
};
if (_local8.charAt(_local10) == "5"){
_local9 = true;
};
if (_local8.charAt(_local10) == "6"){
_local9 = true;
};
if (_local8.charAt(_local10) == "7"){
_local9 = true;
};
if (_local8.charAt(_local10) == "8"){
_local9 = true;
};
if (_local8.charAt(_local10) == "9"){
_local9 = true;
};
if (_local8.charAt(_local10) == "x"){
_local9 = true;
};
if (!_local9){
_local8 = String((_local8.substring(0, (_local10 - 1)) + _local8.substring((_local10 + 1), (_local8.length - 1))));
};
_local10++;
};
if ((((_local8.length < 555)) || ((_local8.length > 559)))){
_local2 = false;
};
if (_local2){
_local3 = _local8.split("x");
if (_local3.length != 25){
_local2 = false;
} else {
_local4 = int(_local3[22]);
if ((((_local4 < 1)) || ((_local4 > 99)))){
_local2 = false;
};
_local5 = int(_local3[23]);
if ((((_local5 < 1)) || ((_local5 > 99)))){
_local2 = false;
};
_local6 = int(_local3[24]);
if ((((_local6 < 0)) || ((_local6 > 999)))){
_local2 = false;
};
_local3.splice(22, 3);
_local10 = 0;
while (_local10 < 22) {
if (_local3[_local10].length != 24){
_local2 = false;
};
_local10++;
};
};
};
if (_local2){
_local11 = 0;
_local12 = 0;
_local13 = 0;
_local10 = 0;
while (_local10 < _local3.length) {
_local7[_local10] = new Array();
_local14 = 0;
while (_local14 < _local3[_local10].length) {
if ((_local14 % 2) == 0){
_local7[_local10][(_local14 / 2)] = ((int(_local3[_local10].charAt(_local14)) * 10) + int(_local3[_local10].charAt((_local14 + 1))));
switch (_local7[_local10][(_local14 / 2)]){
case 0:
break;
case GOAL:
_local12++;
break;
case BUILDER:
_local11++;
break;
case MINE:
break;
case CRATE_HEALTH:
break;
case CRATE_MONEY:
break;
case CRATE_SIDESWITCHER:
break;
case CRATE_TANK:
_local13++;
break;
case STATION_SPEED:
break;
case STATION_ARMOR:
break;
case STATION_ATTACK:
break;
case STATION_RATE:
break;
case STATION_RANGE:
break;
case SENTRY_EASY:
break;
case SENTRY_MEDIUM:
break;
case SENTRY_HARD:
break;
case KAMIKAZE_DOWN:
break;
case KAMIKAZE_RIGHT:
break;
case KAMIKAZE_LEFT:
break;
case KAMIKAZE_UP:
break;
case PATROLLER_UP:
break;
case PATROLLER_RIGHT:
break;
case PATROLLER_DOWN:
break;
case PATROLLER_LEFT:
break;
case HOMINGMISSLEBUILDER:
break;
case TURNER_RIGHT_RIGHT:
break;
case TURNER_DOWN_RIGHT:
break;
case TURNER_LEFT_RIGHT:
break;
case TURNER_UP_RIGHT:
break;
case TURNER_RIGHT_LEFT:
break;
case TURNER_DOWN_LEFT:
break;
case TURNER_LEFT_LEFT:
break;
case TURNER_UP_LEFT:
break;
case TREE1:
break;
case TREE2:
break;
default:
if ((((_local7[_local10][(_local14 / 2)] >= 70)) && ((_local7[_local10][(_local14 / 2)] <= WATER_TYPE)))){
} else {
_local2 = false;
};
break;
};
};
_local14++;
};
_local10++;
};
if (((!((_local11 == 1))) || (!((_local12 == 1))))){
_local2 = false;
};
if (_local5 > (_local4 + _local13)){
_local2 = false;
};
};
if (_local2){
GameManager.playFx(MENUCLICK);
GameManager.initiateCustom(_local8);
GameManager.leaveTitle();
} else {
GameManager.playFx(LOADERROR);
customInput.errorCodeText.visible = true;
};
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
private function downloadMusicClicked(_arg1:MouseEvent){
var _local2:URLRequest;
if (GameManager.onSinisterSea){
GameManager.playFx(MENUCLICK);
GameManager.leaveTitle();
GameManager.loadMusicDownload();
} else {
GameManager.playFx(MENUCLICK);
_local2 = new URLRequest("http://www.sinistersea.com");
navigateToURL(_local2, "_blank");
};
}
private function startGame(_arg1:MouseEvent){
deactivate();
}
private function userLevelsPurchased(_arg1:PaymentEvent){
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_FAILED, userLevelsCancelled);
GameManager.paymentBox.removeEventListener(PaymentEvent.PURCHASE_SUCCESSFUL, userLevelsPurchased);
proceedToUserLevels();
}
private function playMissionsClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
GameManager.leaveTitle();
GameManager.loadSelect();
}
private function createCustomClicked(_arg1:MouseEvent){
GameManager.playFx(MENUCLICK);
GameManager.leaveTitle();
GameManager.loadEditor();
}
private function highScoreClicked(_arg1:MouseEvent){
var e = _arg1;
GameManager.playFx(MENUCLICK);
if (titleScore != GameManager.lastSubmittedScore){
MochiScores.showLeaderboard({boardID:"77ff1d2970500ebf", score:titleScore, onClose:function ():void{
}});
GameManager.lastSubmittedScore = titleScore;
GameManager.resumeLSO.data.lastSubmittedScore = titleScore;
try {
GameManager.resumeLSO.flush();
} catch(e:Error) {
};
} else {
MochiScores.showLeaderboard({boardID:"77ff1d2970500ebf", onClose:function ():void{
}});
};
}
}
}//package
Section 250
//ToggleButton (ToggleButton)
package {
import flash.events.*;
import flash.display.*;
public class ToggleButton extends Sprite {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var idNumber:int;// = 0
public var isOn:Boolean;// = false
public var isMouseOver:Boolean;// = false
public var clip:MovieClip;
public function deactivate(){
clip.removeEventListener(MouseEvent.MOUSE_OVER, mouseOverButton);
clip.removeEventListener(MouseEvent.MOUSE_OUT, mouseOffButton);
clip.removeEventListener(MouseEvent.CLICK, mouseClickedButton);
clip.buttonMode = false;
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function mouseOffButton(_arg1:MouseEvent){
isMouseOver = false;
if (isOn){
clip.gotoAndStop("on");
} else {
clip.gotoAndStop("off");
};
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function display(){
addChild(clip);
}
public function activate(){
if (isOn){
turnOn();
} else {
turnOff();
};
clip.addEventListener(MouseEvent.MOUSE_OVER, mouseOverButton);
clip.addEventListener(MouseEvent.MOUSE_OUT, mouseOffButton);
clip.addEventListener(MouseEvent.CLICK, mouseClickedButton);
clip.buttonMode = true;
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
public function turnOn(){
isOn = true;
if (isMouseOver){
clip.gotoAndStop("onOver");
} else {
clip.gotoAndStop("on");
};
}
public function mouseOverButton(_arg1:MouseEvent){
isMouseOver = true;
if (isOn){
clip.gotoAndStop("onOver");
} else {
clip.gotoAndStop("offOver");
};
}
public function mouseClickedButton(_arg1:MouseEvent){
}
public function turnOff(){
isOn = false;
if (isMouseOver){
clip.gotoAndStop("offOver");
} else {
clip.gotoAndStop("off");
};
}
}
}//package
Section 251
//TransmissionFX (TransmissionFX)
package {
import flash.media.*;
public dynamic class TransmissionFX extends Sound {
}
}//package
Section 252
//Tree1Clip (Tree1Clip)
package {
import flash.display.*;
public dynamic class Tree1Clip extends MovieClip {
}
}//package
Section 253
//Tree2Clip (Tree2Clip)
package {
import flash.display.*;
public dynamic class Tree2Clip extends MovieClip {
}
}//package
Section 254
//TryAgainButton (TryAgainButton)
package {
import flash.display.*;
public dynamic class TryAgainButton extends SimpleButton {
}
}//package
Section 255
//Turner (Turner)
package {
public class Turner extends Unit {
public var destinationSet:Boolean;// = false
public var turnsRight:Boolean;// = true
public var currentDirection:int;// = 1
public function Turner(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Boolean){
clip = new TurnerClip();
super(_arg2, _arg3);
unitID = _arg1;
typeOfUnit = TURNER_TYPE;
maxhealth = 100;
health = maxhealth;
currentSpeed = 1;
rotateSpeed = 1;
turretRotationSpeed = 1.5;
range = 135;
payloadSize = TWO_MEGATON;
damageMultiplier = DAMAGE_1;
shotRecovery = 150;
currentRecovery = 0;
doesMove = true;
doesFire = true;
hasTurret = true;
clearedBuilder = true;
turnsRight = _arg5;
switch (_arg4){
case UP:
clip.rotation = 0;
currentDirection = UP;
destinationX = CellFromPos(clip.x);
destinationY = CellFromPos(clip.y);
break;
case RIGHT:
clip.rotation = 90;
currentDirection = RIGHT;
destinationX = CellFromPos(clip.x);
destinationY = CellFromPos(clip.y);
break;
case DOWN:
clip.rotation = 180;
currentDirection = DOWN;
destinationX = CellFromPos(clip.x);
destinationY = CellFromPos(clip.y);
break;
case LEFT:
clip.rotation = -90;
currentDirection = LEFT;
destinationX = CellFromPos(clip.x);
destinationY = CellFromPos(clip.y);
break;
};
}
public function checkForObstacles(_arg1:int){
if (_arg1 > UP){
switch (currentDirection){
case UP:
destinationY++;
break;
case RIGHT:
destinationX--;
break;
case DOWN:
destinationY--;
break;
case LEFT:
destinationX++;
break;
};
changeDirection();
};
}
public function updateDestination(){
if (!destinationSet){
if (currentDirection == LEFT){
destinationX--;
destinationSet = true;
if (destinationX < 0){
destinationX++;
changeDirection();
};
} else {
if (currentDirection == RIGHT){
destinationX++;
destinationSet = true;
if (destinationX >= FIELDWIDTH){
destinationX--;
changeDirection();
};
} else {
if (currentDirection == UP){
destinationY--;
destinationSet = true;
if (destinationY < 0){
destinationY++;
changeDirection();
};
} else {
if (currentDirection == DOWN){
destinationY++;
destinationSet = true;
if (destinationY >= FIELDHEIGHT){
destinationY--;
changeDirection();
};
};
};
};
};
};
}
public function moveMe(){
var _local1:Number = clip.rotation;
if (_local1 < 0){
_local1 = (_local1 + 360);
};
switch (currentDirection){
case UP:
if (clip.y <= (PosFromCell(destinationY) + currentSpeed)){
clip.y = PosFromCell(destinationY);
destinationSet = false;
} else {
if (_local1 == 0){
clip.y = (clip.y - currentSpeed);
destinationSet = false;
} else {
if (_local1 >= 180){
if ((_local1 + rotateSpeed) >= 360){
clip.rotation = 0;
} else {
clip.rotation = (clip.rotation + rotateSpeed);
};
} else {
if ((_local1 - rotateSpeed) <= 0){
clip.rotation = 0;
} else {
clip.rotation = (clip.rotation - rotateSpeed);
};
};
};
};
break;
case RIGHT:
if (clip.x >= (PosFromCell(destinationX) - currentSpeed)){
clip.x = PosFromCell(destinationX);
destinationSet = false;
} else {
if (_local1 == 90){
clip.x = (clip.x + currentSpeed);
destinationSet = false;
} else {
if ((((_local1 >= 270)) || ((_local1 < 90)))){
if (((((_local1 + rotateSpeed) >= 90)) && ((_local1 < 90)))){
clip.rotation = 90;
} else {
clip.rotation = (clip.rotation + rotateSpeed);
};
} else {
if ((_local1 - rotateSpeed) <= 90){
clip.rotation = 90;
} else {
clip.rotation = (clip.rotation - rotateSpeed);
};
};
};
};
break;
case DOWN:
if (clip.y >= (PosFromCell(destinationY) - currentSpeed)){
clip.y = PosFromCell(destinationY);
destinationSet = false;
} else {
if (_local1 == 180){
clip.y = (clip.y + currentSpeed);
destinationSet = false;
} else {
if (_local1 < 180){
if ((_local1 + rotateSpeed) >= 180){
clip.rotation = 180;
} else {
clip.rotation = (clip.rotation + rotateSpeed);
};
} else {
if ((_local1 - rotateSpeed) <= 180){
clip.rotation = 180;
} else {
clip.rotation = (clip.rotation - rotateSpeed);
};
};
};
};
break;
case LEFT:
if (clip.x <= (PosFromCell(destinationX) + currentSpeed)){
clip.x = PosFromCell(destinationX);
destinationSet = false;
} else {
if (_local1 == 270){
clip.x = (clip.x - currentSpeed);
destinationSet = false;
} else {
if ((((_local1 > 270)) || ((_local1 <= 90)))){
if (((((_local1 - rotateSpeed) <= 270)) && ((_local1 > 270)))){
clip.rotation = -90;
} else {
clip.rotation = (clip.rotation - rotateSpeed);
};
} else {
if ((_local1 + rotateSpeed) >= 270){
clip.rotation = -90;
} else {
clip.rotation = (clip.rotation + rotateSpeed);
};
};
};
};
break;
};
}
public function changeDirection(){
if (currentDirection == RIGHT){
if (turnsRight){
currentDirection = DOWN;
} else {
currentDirection = UP;
};
} else {
if (currentDirection == DOWN){
if (turnsRight){
currentDirection = LEFT;
} else {
currentDirection = RIGHT;
};
} else {
if (currentDirection == LEFT){
if (turnsRight){
currentDirection = UP;
} else {
currentDirection = DOWN;
};
} else {
if (currentDirection == UP){
if (turnsRight){
currentDirection = RIGHT;
} else {
currentDirection = LEFT;
};
};
};
};
};
destinationSet = false;
}
}
}//package
Section 256
//TurnerClip (TurnerClip)
package {
import flash.display.*;
public dynamic class TurnerClip extends MovieClip {
public var tankTurret:PatrollerTurret;
public function TurnerClip(){
addFrameScript(11, frame12, 23, frame24, 36, frame37);
}
function frame37(){
gotoAndPlay("normal");
}
function frame12(){
gotoAndPlay("normal");
}
function frame24(){
stop();
}
}
}//package
Section 257
//TutorialBox (TutorialBox)
package {
import flash.display.*;
public dynamic class TutorialBox extends MovieClip {
public var nextButton:NextButton;
public var prevButton:PrevButton;
public var closeButton:CloseButton;
public function TutorialBox(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5);
}
function frame1(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 258
//TutorialHover (TutorialHover)
package {
import flash.display.*;
public dynamic class TutorialHover extends MovieClip {
public function TutorialHover(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
stop();
}
function frame7(){
stop();
}
function frame8(){
stop();
}
}
}//package
Section 259
//Unit (Unit)
package {
import flash.display.*;
import mochi.*;
import org.flintparticles.twoD.renderers.*;
import flash.net.*;
public class Unit {
const CRATE_TANK:int = 17;
const IN_PROGRESS:int = 2;
const BUILD_COMPLETE:int = 15;
const PATROLLER_TYPE:int = 112;
const HALFCELL:int = 15;
const LEFT:int = 3;
const CRATEMONEYADDED:int = 100;
const HORIZONTAL:int = 6;
const TANKMOVEOFFSET:int = 10;
const HUDDEPTH:int = 0;
const WATER_TOPRIGHT:int = 80;
const EDITORREMOVE:int = 13;
const BUILDTANK:int = 6;
const HUDOFFSET:int = 20;
const SHELLFIRE:int = 3;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const TREE2:int = 92;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TWO_MEGATON:int = 15;
const TURNER_TYPE:int = 111;
const LAST_LEVEL:int = 10;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const RATE_1:int = 120;
const RATE_2:int = 100;
const RATE_3:int = 70;
const RATE_4:int = 30;
const DOWN:int = 2;
const MOVEMENT_GOAL:int = 10;
const WONLEVEL:int = 15;
const WATER_RIGHT:int = 77;
const WATER_TOPRIGHTLEFT:int = 86;
const STORYSTATE:int = 4;
const LOADERROR:int = 14;
const LEVELTHEME:int = 2;
const PATROLLER_LEFT:int = 43;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const CRATE_MONEY:int = 15;
const COLLISIONDISTANCE:int = 20;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const ARMOR_3:int = 200;
const ARMOR_4:int = 400;
const DROP_NO:int = 30;
const LEVEL_WON:int = 3;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const STATION_SPEED:int = 19;
const TURNER_LEFT_RIGHT:int = 52;
const MAXDISTANCE:int = 10000;
const SENTRY_HARD:int = 27;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const PLAYER1:int = 1;
const PATROLLER_DOWN:int = 42;
const TURNER_DOWN_LEFT:int = 55;
const WATER_TYPE:int = 90;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const RANGE_1:int = 80;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const FOUR_MEGATON:int = 40;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const RANGECONTROL:int = 4;
const PATHDEPTH:int = 0;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const TRANSMISSION:int = 17;
const TITLE_STARTGAME:int = 1;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const ATTACKCONTROL:int = 2;
const ATTACK_LASER:int = 25;
const RIGHT:int = 1;
const STORYTHEME:int = 4;
const WATER_TOP:int = 76;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const LEVELTEXTSIZE:int = 12;
const SPEED_1:Number = 1.25;
const SPEED_3:Number = 2.5;
const SPEED_4:Number = 4;
const SPEED_2:Number = 1.75;
const TURNING:int = 6;
const BUILDTIME:int = 80;
const MISSION_TYPE:int = 2;
const KAMIKAZE_RIGHT:int = 31;
const STATION_RANGE:int = 23;
const STATION_ARMOR:int = 20;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const WAITING:int = 9;
const NOENEMY:int = -50;
const WATER_LEFT:int = 79;
const WATER_TOPBOTTOM:int = 81;
const WATER_TOPBOTTOMLEFT:int = 85;
const MOVINGRIGHT:int = 1;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const UP:int = 4;
const ADD_MODE:int = 2;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const BUILDING:int = 14;
const UNITEXPLODE:int = 5;
const NODIRECTION:int = 0;
const LOSTLEVEL:int = 16;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const HUNTER_SET:int = 4;
const SELECT_MODE:int = 1;
const MENU_RESUME:int = 1;
const GOAL:int = 11;
const ATTACK_NO:int = 20;
const COMPUTER:int = 2;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const LAUNCHER_SET:int = 1;
const TURNER_RIGHT_RIGHT:int = 50;
const SCORETEXTSIZE:int = 10;
const SPEEDCONTROL:int = 0;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const ARMORCONTROL:int = 1;
const DAMAGE_1:Number = 1;
const DAMAGE_2:Number = 1.25;
const DAMAGE_3:Number = 1.75;
const DAMAGE_4:Number = 2.5;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const MOVINGUP:int = 4;
const WATER_TOPLEFT:int = 82;
const VERTICAL:int = 5;
const BUILD_STARTED:int = 16;
const BUILDER:int = 10;
const LEVELSTATE:int = 2;
const EDITORPLACE:int = 12;
const SENTRY_TYPE:int = 102;
const DROP_MINE:int = 35;
const DELETE_MODE:int = 3;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const WATER_RIGHTBOTTOM:int = 88;
const SENTRY_SET:int = 2;
const PATROLLER_UP:int = 40;
const SHELLLAND:int = 4;
public var distanceToEnemy:Number;// = 100000
public var currentRecovery:int;// = 0
public var hasTurret:Boolean;// = false
public var doesFire:Boolean;// = true
public var turretRotationSpeed:Number;// = 1
public var showSmoke:Boolean;// = true
public var maxhealth:Number;// = 100
public var shotRecovery:int;// = 0
public var smokeAdded:Boolean;// = false
public var extraClips:Array;
public var hud:Sprite;
public var range:Number;// = 0
public var hudOn:Boolean;// = false
public var smokeClip:SmokeClip;
public var closestEnemyX:int;// = -50
public var closestEnemyY:int;// = -50
public var unitID:int;// = 0
public var isAlive:Boolean;// = true
public var atDestination:Boolean;// = false
public var payloadType:int;// = 1
public var doesMove:Boolean;// = false
public var destinationY:int;// = 0
public var closestEnemyID:int;// = -50
public var destinationX:int;// = 0
public var healthPercent:int;// = 100
public var currentSpeed:Number;// = 0
public var health:Number;// = 0
public var clearedBuilder:Boolean;// = false
public var damageMultiplier:Number;// = 1
public var payloadSize:int;// = 10
public var readyToFire:Boolean;// = false
public var moveStatus:int;// = 9
public var clip:MovieClip;
public var doesBuild:Boolean;// = false
public var firingRange:FiringRange;
public var lifebar:LifebarClip;
public var rotateSpeed:Number;// = 0
public var showSmokeCount:int;// = 0
public var typeOfUnit:int;// = 0
public function Unit(_arg1:int, _arg2:int){
hud = new Sprite();
lifebar = new LifebarClip();
firingRange = new FiringRange();
extraClips = new Array();
smokeClip = new SmokeClip();
super();
clip.x = _arg1;
clip.y = _arg2;
}
public function turnOnHUD(){
firingRange.width = (range * 2);
firingRange.height = (range * 2);
firingRange.x = (-1 * range);
firingRange.y = ((-1 * range) - HUDOFFSET);
if (!hudOn){
hudOn = true;
hud.addChild(lifebar);
if (typeOfUnit != MISSLE_TYPE){
hud.addChildAt(firingRange, 0);
};
};
}
public function targetEnemy(_arg1:Object, _arg2:Object){
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
if (closestEnemyID != NOENEMY){
_local3 = getTargetRotation((closestEnemyX - _arg1.x), (closestEnemyY - _arg1.y));
_local4 = _arg1.rotation;
if (_arg1 == _arg2){
_local4 = 0;
};
_local5 = (_arg2.rotation + _local4);
if (_local5 < 0){
_local5 = (360 + _local5);
};
_local6 = getRotationAmount(_local5, _local3, turretRotationSpeed);
if (Math.abs(_local6) < turretRotationSpeed){
_local7 = (_local3 - _local4);
_arg2.rotation = _local7;
if (currentRecovery >= shotRecovery){
readyToFire = true;
} else {
currentRecovery++;
};
} else {
_arg2.rotation = (_arg2.rotation + _local6);
if (currentRecovery < shotRecovery){
currentRecovery++;
};
};
} else {
if (currentRecovery < shotRecovery){
currentRecovery++;
};
};
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
public function updateUnit(){
healthPercent = int(((health / maxhealth) * 100));
if (clip.y > 340){
lifebar.y = -40;
} else {
lifebar.y = 0;
};
lifebar.gotoAndStop(healthPercent);
hud.x = clip.x;
hud.y = (clip.y + HUDOFFSET);
if (showSmokeCount >= 4){
showSmokeCount = 0;
showSmoke = true;
} else {
showSmoke = false;
showSmokeCount++;
};
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function addPerk(_arg1:int){
var _local2:MovieClip;
switch (_arg1){
case CRATE_SIDESWITCHER:
_local2 = new SideswitcherPerkClip();
clip.addChildAt(_local2, 0);
extraClips.push(_local2);
break;
};
}
public function removeActions(){
var _local1:int = extraClips.length;
var _local2:int = (_local1 - 1);
while (_local2 >= 0) {
clip.removeChild(extraClips[_local2]);
extraClips.splice(_local2, 1);
_local2--;
};
if (smokeAdded){
clip.removeChild(smokeClip);
};
}
public function turnOffHUD(){
if (hudOn){
hudOn = false;
hud.removeChild(lifebar);
if (typeOfUnit != MISSLE_TYPE){
hud.removeChild(firingRange);
};
};
}
public function deathActions(){
isAlive = false;
turnOffHUD();
}
}
}//package
Section 260
//UnitExplodeFX (UnitExplodeFX)
package {
import flash.media.*;
public dynamic class UnitExplodeFX extends Sound {
}
}//package
Section 261
//UnitExplosion (UnitExplosion)
package {
import flash.geom.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.twoD.emitters.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.common.displayObjects.*;
public class UnitExplosion {
const RIGHT:int = 1;
const TITLE_STARTGAME:int = 1;
const IN_PROGRESS:int = 2;
const HOMINGMISSLEBUILDER:int = 45;
const TURNER_UP_RIGHT:int = 53;
const SHELL:int = 1;
const BUILD_COMPLETE:int = 15;
const LEVELTEXTSIZE:int = 12;
const HALFCELL:int = 15;
const LEFT:int = 3;
const SPEED_1:Number = 1.25;
const PATROLLER_TYPE:int = 112;
const CRATE_TANK:int = 17;
const HORIZONTAL:int = 6;
const TURNING:int = 6;
const TANKMOVEOFFSET:int = 10;
const SHELLLAND:int = 4;
const SPEED_2:Number = 1.75;
const HUDDEPTH:int = 0;
const MISSION_TYPE:int = 2;
const WATER_TOPRIGHT:int = 80;
const KAMIKAZE_RIGHT:int = 31;
const EDITORREMOVE:int = 13;
const STATION_RANGE:int = 23;
const SPEED_3:Number = 2.5;
const STATION_ARMOR:int = 20;
const BUILDTANK:int = 6;
const WATER_ALL:int = 75;
const SINKSOUND:int = 11;
const HUDOFFSET:int = 20;
const WAITING:int = 9;
const SHELLFIRE:int = 3;
const NOENEMY:int = -50;
const SPEED_4:Number = 4;
const CRATEMONEYADDED:int = 100;
const MINE:int = 13;
const CRATE_SIDESWITCHER:int = 16;
const ATTACK_LASER:int = 25;
const WATER_TOPBOTTOM:int = 81;
const EDITORTHEME:int = 3;
const RATECONTROL:int = 3;
const WATER_LEFT:int = 79;
const SHOW_HUD_DISTANCE:int = 40;
const CELLSIZE:int = 30;
const WATER_TOPBOTTOMLEFT:int = 85;
const SENTRY_EASY:int = 25;
const TREE1:int = 91;
const TREE2:int = 92;
const WATER_RIGHTBOTTOMLEFT:int = 87;
const MOVINGRIGHT:int = 1;
const TURNER_TYPE:int = 111;
const TITLETHEME:int = 1;
const WATER_BOTTOM:int = 78;
const TWO_MEGATON:int = 15;
const LAST_LEVEL:int = 10;
const BUILDTIME:int = 80;
const CRATE_HEALTH:int = 14;
const FIELDHEIGHT:int = 12;
const TIMETEXTSIZE:int = 10;
const LEVELCLICK:int = 2;
const ONE_MEGATON:int = 10;
const OBSTACLE_SET:int = 0;
const SINK:int = 2;
const RATE_4:int = 30;
const RATE_1:int = 120;
const RATE_2:int = 100;
const UP:int = 4;
const PREDICTIVE_TYPE_BARRIER:int = 110;
const ADD_MODE:int = 2;
const DOWN:int = 2;
const RATE_3:int = 70;
const WONLEVEL:int = 15;
const WATER_NONE1:int = 70;
const WATER_NONE2:int = 71;
const WATER_NONE3:int = 72;
const WATER_NONE4:int = 73;
const WATER_NONE5:int = 74;
const WATER_TOPRIGHTLEFT:int = 86;
const WATER_RIGHT:int = 77;
const STORYSTATE:int = 4;
const UNITEXPLODE:int = 5;
const LOSTLEVEL:int = 16;
const LOADERROR:int = 14;
const BUILDING:int = 14;
const LEVELTHEME:int = 2;
const WATER_RIGHTLEFT:int = 83;
const EDITOR_TYPE:int = 1;
const NODIRECTION:int = 0;
const PATROLLER_LEFT:int = 43;
const CRATECOLLECTED:int = 8;
const KAMIKAZE_UP:int = 30;
const MOVEMENT_GOAL:int = 10;
const CREATESTATE:int = 3;
const USERLEVELS:int = 0;
const READY_TO_BEGIN:int = 1;
const HUNTER_SET:int = 4;
const CRATE_MONEY:int = 15;
const SELECT_MODE:int = 1;
const WATER_BOTTOMLEFT:int = 89;
const FIELDWIDTH:int = 22;
const MENU_RESUME:int = 1;
const COLLISIONDISTANCE:int = 20;
const ARMOR_1:int = 50;
const ARMOR_2:int = 100;
const GOAL:int = 11;
const ARMOR_4:int = 400;
const ATTACK_NO:int = 20;
const LEVEL_WON:int = 3;
const LEVEL_LOST:int = 4;
const WATER_TOPRIGHTBOTTOM:int = 84;
const ARMOR_3:int = 200;
const LAUNCHER_SET:int = 1;
const SCORETEXTSIZE:int = 10;
const TURNER_LEFT_LEFT:int = 56;
const STATION_RATE:int = 22;
const PATROLLER_SET:int = 3;
const TURNER_RIGHT_RIGHT:int = 50;
const SIDESWITCHER:int = 2;
const TITLESTATE:int = 1;
const SPEEDCONTROL:int = 0;
const TURNER_LEFT_RIGHT:int = 52;
const STATION_SPEED:int = 19;
const REACHEDGOAL:int = 7;
const CUSTOM_TYPE:int = 3;
const DROP_NO:int = 30;
const SENTRY_HARD:int = 27;
const ARMORCONTROL:int = 1;
const KAMIKAZE_LEFT:int = 33;
const MOVINGLEFT:int = 3;
const PATROLLERDELAY:int = 50;
const GOALREMOVE:int = 3;
const MAXDISTANCE:int = 10000;
const DAMAGE_1:Number = 1;
const DAMAGE_3:Number = 1.75;
const MISSLELAUNCH:int = 10;
const MENUCLICK:int = 1;
const PATROLLER_RIGHT:int = 41;
const DAMAGE_4:Number = 2.5;
const MOVINGUP:int = 4;
const PATROLLER_DOWN:int = 42;
const VERTICAL:int = 5;
const BUILDER:int = 10;
const TURNER_DOWN_LEFT:int = 55;
const BUILD_STARTED:int = 16;
const WATER_TYPE:int = 90;
const WATER_TOPLEFT:int = 82;
const BUILDER_TYPE:int = 103;
const TANK_TYPE:int = 100;
const OFFSETDISTANCE:int = 10;
const LEVELSTATE:int = 2;
const COMPUTER:int = 2;
const RANGE_2:int = 120;
const RANGE_3:int = 170;
const RANGE_4:int = 240;
const TURNER_DOWN_RIGHT:int = 51;
const RANGE_1:int = 80;
const EDITORPLACE:int = 12;
const DAMAGE_2:Number = 1.25;
const PLAYER1:int = 1;
const STATIONREACHED:int = 9;
const DAMAGEMINIMUM:int = 10;
const SENTRY_TYPE:int = 102;
const RANGECONTROL:int = 4;
const DROP_MINE:int = 35;
const PATHDEPTH:int = 0;
const FOUR_MEGATON:int = 40;
const DELETE_MODE:int = 3;
const THREE_MEGATON:int = 25;
const POWERUP_SET:int = 5;
const MISSLE_TYPE:int = 104;
const BLOWUP:int = 1;
const STATION_ATTACK:int = 21;
const SENTRY_MEDIUM:int = 26;
const TURNER_UP_LEFT:int = 57;
const TANKSADDED:int = 1;
const TURNER_RIGHT_LEFT:int = 54;
const SENTRY_SET:int = 2;
const TRANSMISSION:int = 17;
const WATER_RIGHTBOTTOM:int = 88;
const PATROLLER_UP:int = 40;
const KAMIKAZE_DOWN:int = 32;
const UPPERHUDOFFSET:int = -20;
const MOVINGDOWN:int = 2;
const STORYTHEME:int = 4;
const ATTACKCONTROL:int = 2;
const WATER_TOP:int = 76;
public var centerFire:Emitter2D;
public var smoke:Emitter2D;
public var backFire:Emitter2D;
public function UnitExplosion(_arg1:int, _arg2:int){
smoke = new Emitter2D();
centerFire = new Emitter2D();
backFire = new Emitter2D();
super();
smoke.counter = new Blast(5);
smoke.addInitializer(new Lifetime(2, 3));
smoke.addInitializer(new Velocity(new DiscZone(new Point(0, 0), 20, 1)));
smoke.addInitializer(new SharedImage(new RadialDot(6)));
smoke.addAction(new Age());
smoke.addAction(new Move());
smoke.addAction(new ScaleImage(1, 7));
smoke.addAction(new Fade(0.75, 0));
smoke.addAction(new RandomDrift(15, 15));
smoke.x = _arg1;
smoke.y = _arg2;
smoke.start();
centerFire.counter = new Blast(1);
centerFire.addInitializer(new Lifetime(3, 3));
centerFire.addInitializer(new SharedImage(new RadialDot(10)));
centerFire.addAction(new Age());
centerFire.addAction(new Move());
centerFire.addAction(new ColorChange(4291559424, 0xFFCC00));
centerFire.addAction(new ScaleImage(1, 20));
centerFire.x = _arg1;
centerFire.y = _arg2;
centerFire.start();
backFire.counter = new Blast(1);
backFire.addInitializer(new Lifetime(1, 1));
backFire.addInitializer(new SharedImage(new Dot(10)));
backFire.addAction(new Age());
backFire.addAction(new Move());
backFire.addAction(new ColorChange(4291559424, 0xFFCC00));
backFire.addAction(new ScaleImage(1, 10));
backFire.x = _arg1;
backFire.y = _arg2;
backFire.start();
}
public function PosFromCell(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (((_arg1 * _local2) + (_local3 + _local6)));
}
public function getRotationAmount(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = _arg2;
if (_local4 < 0){
_local4 = (_local4 + 360);
};
var _local5:Number = _arg1;
if (_local5 < 0){
_local5 = (_local5 + 360);
};
var _local6:Number = Math.abs((_local5 - _local4));
if (_local6 > 180){
_local6 = (360 - _local6);
};
var _local7:Number = (_local5 - _local6);
var _local8:Number = (_local5 + _local6);
if (_local7 >= 360){
_local7 = (_local7 - 360);
};
if (_local8 >= 360){
_local8 = (_local8 - 360);
};
if (_local7 < 0){
_local7 = (_local7 + 360);
};
if (_local8 < 0){
_local8 = (_local8 + 360);
};
if (_local7 == _local4){
if (_local6 < _arg3){
return ((_local6 * -1));
};
return ((_arg3 * -1));
//unresolved jump
};
if (_local6 < _arg3){
return (_local6);
};
return (_arg3);
}
public function CellFromPos(_arg1:int):int{
var _local2 = 30;
var _local3 = 15;
var _local4 = 22;
var _local5 = 12;
var _local6 = 10;
var _local7 = 40;
var _local8 = 10;
var _local9:int;
var _local10 = 1;
var _local11 = 2;
var _local12 = 3;
var _local13 = 4;
var _local14 = 1;
var _local15 = 2;
var _local16 = 3;
var _local17 = 4;
var _local18 = 1;
var _local19 = 1;
var _local20 = 2;
var _local21 = 3;
var _local22 = 1;
var _local23 = 1;
var _local24 = 2;
var _local25 = 3;
var _local26 = 4;
var _local27 = 1;
var _local28 = 2;
var _local29 = 3;
var _local30 = 4;
var _local31 = 5;
var _local32 = 6;
var _local33 = 7;
var _local34 = 8;
var _local35 = 9;
var _local36 = 10;
var _local37 = 11;
var _local38 = 12;
var _local39 = 13;
var _local40 = 14;
var _local41 = 15;
var _local42 = 16;
var _local43 = 17;
var _local44:int;
var _local45 = 1;
var _local46 = 2;
var _local47 = 3;
var _local48 = 4;
var _local49 = 5;
var _local50 = 1;
var _local51 = 2;
var _local52 = 3;
var _local53:int;
var _local54 = 1;
var _local55 = 2;
var _local56 = 3;
var _local57 = 4;
var _local58 = 5;
var _local59 = 6;
var _local60 = 10;
var _local61 = 10;
var _local62 = 11;
var _local63 = 13;
var _local64 = 14;
var _local65 = 15;
var _local66 = 16;
var _local67 = 17;
var _local68 = 20;
var _local69 = 19;
var _local70 = 21;
var _local71 = 22;
var _local72 = 23;
var _local73 = 25;
var _local74 = 26;
var _local75 = 27;
var _local76 = 30;
var _local77 = 31;
var _local78 = 32;
var _local79 = 33;
var _local80 = 40;
var _local81 = 41;
var _local82 = 42;
var _local83 = 43;
var _local84 = 45;
var _local85 = 50;
var _local86 = 51;
var _local87 = 52;
var _local88 = 53;
var _local89 = 54;
var _local90 = 55;
var _local91 = 56;
var _local92 = 57;
var _local93 = 70;
var _local94 = 71;
var _local95 = 72;
var _local96 = 73;
var _local97 = 74;
var _local98 = 75;
var _local99 = 76;
var _local100 = 77;
var _local101 = 78;
var _local102 = 79;
var _local103 = 80;
var _local104 = 81;
var _local105 = 82;
var _local106 = 83;
var _local107 = 84;
var _local108 = 85;
var _local109 = 86;
var _local110 = 87;
var _local111 = 88;
var _local112 = 89;
var _local113 = 90;
var _local114 = 91;
var _local115 = 92;
var _local116 = 100;
var _local117 = 102;
var _local118 = 103;
var _local119 = 104;
var _local120 = 110;
var _local121 = 111;
var _local122 = 112;
var _local123 = 9;
var _local124 = 1;
var _local125 = 3;
var _local126 = 4;
var _local127 = 2;
var _local128 = 6;
var _local129 = 1;
var _local130 = 3;
var _local131 = 2;
var _local132 = 1;
var _local133 = 2;
var _local134 = 10;
var _local135:int;
var _local136 = 1;
var _local137 = 2;
var _local138 = 3;
var _local139 = 4;
var _local140 = 14;
var _local141 = 16;
var _local142 = 15;
var _local143 = 50;
var _local144 = 100;
var _local145 = 200;
var _local146 = 400;
var _local147:Number = 1.25;
var _local148:Number = 1.75;
var _local149:Number = 2.5;
var _local150:Number = 4;
var _local151 = 10;
var _local152 = 15;
var _local153 = 25;
var _local154 = 40;
var _local155:Number = 1;
var _local156:Number = 1.25;
var _local157:Number = 1.75;
var _local158:Number = 2.5;
var _local159 = 120;
var _local160 = 100;
var _local161 = 70;
var _local162 = 30;
var _local163 = 80;
var _local164 = 120;
var _local165 = 170;
var _local166 = 240;
var _local167 = 80;
var _local168 = 20;
var _local169 = -20;
var _local170:int;
var _local171:int;
var _local172 = 100;
var _local173 = 1;
var _local174 = -50;
var _local175 = 10000;
var _local176 = 50;
var _local177 = 20;
var _local178 = 1;
var _local179 = 2;
var _local180 = 10;
var _local181 = 20;
var _local182 = 25;
var _local183 = 30;
var _local184 = 35;
var _local185 = 12;
var _local186 = 10;
var _local187 = 10;
return (int(((_arg1 - _local6) / _local2)));
}
public function getTargetRotation(_arg1:Number, _arg2:Number):Number{
var _local3:* = Math.atan2(_arg2, _arg1);
var _local4:* = Math.round(((_local3 * 180) / Math.PI));
_local4 = (_local4 + 90);
if (_local4 > 180){
_local4 = (_local4 - 360);
};
return (_local4);
}
public function getDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{
return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))));
}
}
}//package
Section 262
//UpgradeButton (UpgradeButton)
package {
import flash.display.*;
public dynamic class UpgradeButton extends MovieClip {
public function UpgradeButton(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
}
}//package
Section 263
//WarningScreen (WarningScreen)
package {
import flash.display.*;
public dynamic class WarningScreen extends MovieClip {
}
}//package
Section 264
//WaterClip (WaterClip)
package {
import flash.display.*;
public dynamic class WaterClip extends MovieClip {
public function WaterClip(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20);
}
function frame20(){
stop();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
stop();
}
function frame7(){
stop();
}
function frame8(){
stop();
}
function frame10(){
stop();
}
function frame11(){
stop();
}
function frame12(){
stop();
}
function frame13(){
stop();
}
function frame14(){
stop();
}
function frame15(){
stop();
}
function frame16(){
stop();
}
function frame9(){
stop();
}
function frame18(){
stop();
}
function frame19(){
stop();
}
function frame17(){
stop();
}
}
}//package
Section 265
//WonLevelFX (WonLevelFX)
package {
import flash.media.*;
public dynamic class WonLevelFX extends Sound {
}
}//package