Section 1
//Antrax_97 (apple_defender_fla.Antrax_97)
package apple_defender_fla {
import flash.display.*;
public dynamic class Antrax_97 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 2
//beggar_26 (apple_defender_fla.beggar_26)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class beggar_26 extends MovieClip {
public function beggar_26(){
addFrameScript(36, frame37, 73, frame74);
}
function frame74(){
this.parent.afterAttack();
stop();
}
function frame37(){
gotoAndPlay(1);
}
}
}//package apple_defender_fla
Section 3
//bladegun_138 (apple_defender_fla.bladegun_138)
package apple_defender_fla {
import flash.display.*;
public dynamic class bladegun_138 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 4
//blizzard_135 (apple_defender_fla.blizzard_135)
package apple_defender_fla {
import flash.display.*;
public dynamic class blizzard_135 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 5
//boss_28 (apple_defender_fla.boss_28)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class boss_28 extends MovieClip {
public function boss_28(){
addFrameScript(30, frame31, 67, frame68);
}
function frame31(){
gotoAndPlay(1);
}
function frame68(){
this.parent.afterAttack();
stop();
}
}
}//package apple_defender_fla
Section 6
//BossTextAnim_19 (apple_defender_fla.BossTextAnim_19)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class BossTextAnim_19 extends MovieClip {
public var t:String;
public var mText:TextField;
public function BossTextAnim_19(){
addFrameScript(0, frame1, 1, frame2, 30, frame31);
}
function frame1(){
t = "Boss Level !!!";
}
function frame2(){
mText.text = t;
}
function frame31(){
gotoAndPlay(2);
}
}
}//package apple_defender_fla
Section 7
//Btnhandgun_36 (apple_defender_fla.Btnhandgun_36)
package apple_defender_fla {
import flash.display.*;
public dynamic class Btnhandgun_36 extends MovieClip {
public var mA:MovieClip;
}
}//package apple_defender_fla
Section 8
//Btnrepair1_56 (apple_defender_fla.Btnrepair1_56)
package apple_defender_fla {
import flash.display.*;
public dynamic class Btnrepair1_56 extends MovieClip {
public var mA:MovieClip;
}
}//package apple_defender_fla
Section 9
//catapult_109 (apple_defender_fla.catapult_109)
package apple_defender_fla {
import flash.display.*;
public dynamic class catapult_109 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 10
//ChainLightning_100 (apple_defender_fla.ChainLightning_100)
package apple_defender_fla {
import flash.display.*;
public dynamic class ChainLightning_100 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 11
//ClusterBomb_129 (apple_defender_fla.ClusterBomb_129)
package apple_defender_fla {
import flash.display.*;
public dynamic class ClusterBomb_129 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 12
//CutLaser_82 (apple_defender_fla.CutLaser_82)
package apple_defender_fla {
import flash.display.*;
public dynamic class CutLaser_82 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 13
//FireballLauncher_155 (apple_defender_fla.FireballLauncher_155)
package apple_defender_fla {
import flash.display.*;
public dynamic class FireballLauncher_155 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 14
//FireCatapult_79 (apple_defender_fla.FireCatapult_79)
package apple_defender_fla {
import flash.display.*;
public dynamic class FireCatapult_79 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 15
//flame_165 (apple_defender_fla.flame_165)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class flame_165 extends MovieClip {
public function flame_165(){
addFrameScript(29, frame30);
}
function frame30(){
stop();
}
}
}//package apple_defender_fla
Section 16
//flamethrower_76 (apple_defender_fla.flamethrower_76)
package apple_defender_fla {
import flash.display.*;
public dynamic class flamethrower_76 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 17
//FrozeTurret_118 (apple_defender_fla.FrozeTurret_118)
package apple_defender_fla {
import flash.display.*;
public dynamic class FrozeTurret_118 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 18
//gatling_47 (apple_defender_fla.gatling_47)
package apple_defender_fla {
import flash.display.*;
public dynamic class gatling_47 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 19
//GrenadeLauncher_72 (apple_defender_fla.GrenadeLauncher_72)
package apple_defender_fla {
import flash.display.*;
public dynamic class GrenadeLauncher_72 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 20
//Grow_53 (apple_defender_fla.Grow_53)
package apple_defender_fla {
import flash.display.*;
public dynamic class Grow_53 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 21
//handgun_37 (apple_defender_fla.handgun_37)
package apple_defender_fla {
import flash.display.*;
public dynamic class handgun_37 extends MovieClip {
public var mGerak:MovieClip;
public var mDasar:MovieClip;
}
}//package apple_defender_fla
Section 22
//ice_178 (apple_defender_fla.ice_178)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class ice_178 extends MovieClip {
public function ice_178(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package apple_defender_fla
Section 23
//knight_27 (apple_defender_fla.knight_27)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class knight_27 extends MovieClip {
public function knight_27(){
addFrameScript(36, frame37, 67, frame68);
}
function frame37(){
gotoAndPlay(1);
}
function frame68(){
this.parent.afterAttack();
stop();
}
}
}//package apple_defender_fla
Section 24
//longrangemissile_94 (apple_defender_fla.longrangemissile_94)
package apple_defender_fla {
import flash.display.*;
public dynamic class longrangemissile_94 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 25
//MachineGun_44 (apple_defender_fla.MachineGun_44)
package apple_defender_fla {
import flash.display.*;
public dynamic class MachineGun_44 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 26
//MassiveCatapult_112 (apple_defender_fla.MassiveCatapult_112)
package apple_defender_fla {
import flash.display.*;
public dynamic class MassiveCatapult_112 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 27
//MusicBtn_199 (apple_defender_fla.MusicBtn_199)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class MusicBtn_199 extends MovieClip {
public function MusicBtn_199(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package apple_defender_fla
Section 28
//OptionBarPopUp_202 (apple_defender_fla.OptionBarPopUp_202)
package apple_defender_fla {
import flash.display.*;
import flash.text.*;
public dynamic class OptionBarPopUp_202 extends MovieClip {
public var mText:TextField;
}
}//package apple_defender_fla
Section 29
//poison_151 (apple_defender_fla.poison_151)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class poison_151 extends MovieClip {
public var r:int;
public function poison_151(){
addFrameScript(39, frame40);
}
function frame40(){
x = ((-(width) / 2) + ((Math.random() * parent.width) / 2));
y = ((-(height) / 2) + ((Math.random() * parent.height) / 2));
r = ((Math.random() * totalFrames) / 2);
gotoAndPlay(r);
}
}
}//package apple_defender_fla
Section 30
//poison_171 (apple_defender_fla.poison_171)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class poison_171 extends MovieClip {
public function poison_171(){
addFrameScript(29, frame30);
}
function frame30(){
stop();
}
}
}//package apple_defender_fla
Section 31
//QualityBtn_200 (apple_defender_fla.QualityBtn_200)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class QualityBtn_200 extends MovieClip {
public function QualityBtn_200(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package apple_defender_fla
Section 32
//Repair_57 (apple_defender_fla.Repair_57)
package apple_defender_fla {
import flash.display.*;
public dynamic class Repair_57 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 33
//rocketlauncher_88 (apple_defender_fla.rocketlauncher_88)
package apple_defender_fla {
import flash.display.*;
public dynamic class rocketlauncher_88 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 34
//rocketshogun_103 (apple_defender_fla.rocketshogun_103)
package apple_defender_fla {
import flash.display.*;
public dynamic class rocketshogun_103 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 35
//SFXBtn_201 (apple_defender_fla.SFXBtn_201)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class SFXBtn_201 extends MovieClip {
public function SFXBtn_201(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
}
function frame3(){
stop();
}
function frame1(){
stop();
}
function frame4(){
stop();
}
function frame2(){
stop();
}
}
}//package apple_defender_fla
Section 36
//Shotgun_106 (apple_defender_fla.Shotgun_106)
package apple_defender_fla {
import flash.display.*;
public dynamic class Shotgun_106 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 37
//smg_41 (apple_defender_fla.smg_41)
package apple_defender_fla {
import flash.display.*;
public dynamic class smg_41 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 38
//Sniper_50 (apple_defender_fla.Sniper_50)
package apple_defender_fla {
import flash.display.*;
public dynamic class Sniper_50 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 39
//Snow_177 (apple_defender_fla.Snow_177)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class Snow_177 extends MovieClip {
public function Snow_177(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package apple_defender_fla
Section 40
//snowlauncher_132 (apple_defender_fla.snowlauncher_132)
package apple_defender_fla {
import flash.display.*;
public dynamic class snowlauncher_132 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 41
//snrgun_141 (apple_defender_fla.snrgun_141)
package apple_defender_fla {
import flash.display.*;
public dynamic class snrgun_141 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 42
//SplitShuriken_115 (apple_defender_fla.SplitShuriken_115)
package apple_defender_fla {
import flash.display.*;
public dynamic class SplitShuriken_115 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 43
//StatusBar_16 (apple_defender_fla.StatusBar_16)
package apple_defender_fla {
import flash.display.*;
import flash.text.*;
public dynamic class StatusBar_16 extends MovieClip {
public var mScore:TextField;
public var mLevels:TextField;
public var mMoney:TextField;
public var mTrees:TextField;
}
}//package apple_defender_fla
Section 44
//SuperGrowth_55 (apple_defender_fla.SuperGrowth_55)
package apple_defender_fla {
import flash.display.*;
public dynamic class SuperGrowth_55 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 45
//tomahawklauncher_91 (apple_defender_fla.tomahawklauncher_91)
package apple_defender_fla {
import flash.display.*;
public dynamic class tomahawklauncher_91 extends MovieClip {
public var mGerak:MovieClip;
}
}//package apple_defender_fla
Section 46
//TutDialog_20 (apple_defender_fla.TutDialog_20)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class TutDialog_20 extends MovieClip {
public var b2:SimpleButton;
public var b1:SimpleButton;
public function TutDialog_20(){
addFrameScript(0, frame1, 6, frame7, 12, frame13, 18, frame19, 24, frame25);
}
public function Goto5(_arg1:MouseEvent){
gotoAndStop("page5");
}
public function Goto3(_arg1:MouseEvent){
gotoAndStop("page3");
}
public function Goto4(_arg1:MouseEvent){
gotoAndStop("page4");
}
function frame7(){
b1.addEventListener(MouseEvent.MOUSE_UP, NoTut, false, 0, true);
b2.addEventListener(MouseEvent.MOUSE_UP, Goto3, false, 0, true);
CGame.GetInstance().ProcessTut(2);
}
function frame1(){
stop();
b1.addEventListener(MouseEvent.MOUSE_UP, YesTut, false, 0, true);
b2.addEventListener(MouseEvent.MOUSE_UP, NoTut, false, 0, true);
}
function frame19(){
b1.addEventListener(MouseEvent.MOUSE_UP, NoTut, false, 0, true);
b2.addEventListener(MouseEvent.MOUSE_UP, Goto5, false, 0, true);
CGame.GetInstance().ProcessTut(4);
}
function frame25(){
b1.addEventListener(MouseEvent.MOUSE_UP, NoTut, false, 0, true);
CGame.GetInstance().ProcessTut(5);
}
function frame13(){
b1.addEventListener(MouseEvent.MOUSE_UP, NoTut, false, 0, true);
b2.addEventListener(MouseEvent.MOUSE_UP, Goto4, false, 0, true);
CGame.GetInstance().ProcessTut(3);
}
public function NoTut(_arg1:MouseEvent){
CGame.GetInstance().NoTut();
}
public function YesTut(_arg1:MouseEvent){
CGame.GetInstance().YesTut();
gotoAndStop("page2");
}
}
}//package apple_defender_fla
Section 47
//woodwall_144 (apple_defender_fla.woodwall_144)
package apple_defender_fla {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class woodwall_144 extends MovieClip {
public function woodwall_144(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package apple_defender_fla
Section 48
//AuxFunctions (caurina.transitions.AuxFunctions)
package caurina.transitions {
public class AuxFunctions {
public static function concatObjects(... _args):Object{
var _local2:Object;
var _local3:Object;
var _local4:int;
var _local5:String;
_local2 = {};
_local4 = 0;
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);
}
public static function numberToG(_arg1:Number):Number{
return (((_arg1 & 0xFF00) >> 8));
}
public static function numberToR(_arg1:Number):Number{
return (((_arg1 & 0xFF0000) >> 16));
}
public static function isInArray(_arg1:String, _arg2:Array):Boolean{
var _local3:uint;
var _local4:uint;
_local3 = _arg2.length;
_local4 = 0;
while (_local4 < _local3) {
if (_arg2[_local4] == _arg1){
return (true);
};
_local4++;
};
return (false);
}
public static function getObjectLength(_arg1:Object):uint{
var _local2:uint;
var _local3:String;
_local2 = 0;
for (_local3 in _arg1) {
_local2++;
};
return (_local2);
}
public static function numberToB(_arg1:Number):Number{
return ((_arg1 & 0xFF));
}
}
}//package caurina.transitions
Section 49
//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 _local6:Number;
var _local7:Number;
var _local8:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period;
_local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
};
--_arg1;
return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2));
}
public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
};
return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
}
public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2));
};
_arg1 = (_arg1 - 2);
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2));
}
public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2));
}
public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2));
}
public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2));
}
public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function init():void{
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 _local6:Number;
var _local7:Number;
var _local8:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
_local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
--_arg1;
return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
}
public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2));
}
public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
}
public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 == 0){
return (_arg2);
};
if (_arg1 == _arg4){
return ((_arg2 + _arg3));
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005)));
};
--_arg1;
return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2));
}
public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number;
var _local7:Number;
var _local8:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
_local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
_local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2));
}
public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2));
}
public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
}
}//package caurina.transitions
Section 50
//PropertyInfoObj (caurina.transitions.PropertyInfoObj)
package caurina.transitions {
public class PropertyInfoObj {
public var originalValueComplete:Object;
public var modifierParameters:Array;
public var isSpecialProperty:Boolean;
public var hasModifier:Boolean;
public var valueComplete:Number;
public var extra:Object;
public var valueStart:Number;
public var modifierFunction:Function;
public var arrayIndex:Number;
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:String;
_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;
_local1 = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters);
return (_local1);
}
}
}//package caurina.transitions
Section 51
//SpecialProperty (caurina.transitions.SpecialProperty)
package caurina.transitions {
public class SpecialProperty {
public var parameters:Array;
public var preProcess:Function;
public var setValue:Function;
public var getValue: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:String;
_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 52
//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:String;
_local1 = "";
_local1 = (_local1 + "[SpecialPropertyModifier ");
_local1 = (_local1 + ("modifyValues:" + String(modifyValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("getValue:" + String(getValue)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 53
//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:String;
_local1 = "";
_local1 = (_local1 + "[SpecialPropertySplitter ");
_local1 = (_local1 + ("splitValues:" + String(splitValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("parameters:" + String(parameters)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 54
//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{
var _local4:SpecialPropertyModifier;
if (!_inited){
init();
};
_local4 = new SpecialPropertyModifier(_arg2, _arg3);
_specialPropertyModifierList[_arg1] = _local4;
}
public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{
var _local6:SpecialProperty;
if (!_inited){
init();
};
_local6 = 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 _local5:Object;
var _local6:Number;
var _local7:Number;
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];
};
_local5 = _arg2;
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
_local6 = (isNaN(_local5.time)) ? 0 : _local5.time;
_local7 = (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 _local1:Boolean;
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local1 = false;
_local2 = 0;
while (_local2 < _tweenList.length) {
pauseTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function removeTweens(_arg1:Object, ... _args):Boolean{
var _local3:Array;
var _local4:uint;
_local3 = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(removeTweenByIndex, _arg1, _local3));
}
public static function splitTweens(_arg1:Number, _arg2:Array):uint{
var _local3:TweenListObj;
var _local4:TweenListObj;
var _local5:uint;
var _local6:String;
var _local7:Boolean;
_local3 = _tweenList[_arg1];
_local4 = _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;
var _local3:Number;
_local2 = _tweenList[_arg1];
if ((((_local2 == null)) || (!(_local2.isPaused)))){
return (false);
};
_local3 = 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.71");
}
public static function onEnterFrame(_arg1:Event):void{
var _local2:Boolean;
updateTime();
updateFrame();
_local2 = false;
_local2 = updateTweens();
if (!_local2){
stopEngine();
};
}
public static function updateTime():void{
_currentTime = getTimer();
}
private static function updateTweenByIndex(_arg1:Number):Boolean{
var tTweening:TweenListObj;
var isOver:Boolean;
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 cTime:Number;
var tProperty:Object;
var pv:Number;
var i = _arg1;
tTweening = _tweenList[i];
if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){
return (false);
};
isOver = false;
cTime = 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(e:Error) {
handleError(tTweening, e, "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(e:Error) {
handleError(tTweening, e, "onUpdate");
};
};
} else {
tTweening.updatesSkipped++;
};
};
if (((isOver) && (Boolean(tTweening.onComplete)))){
eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope;
try {
tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams);
} catch(e:Error) {
handleError(tTweening, e, "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 _local1:Boolean;
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local1 = false;
_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 _local1:Boolean;
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local1 = false;
_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 _local7:Object;
var _local8:Number;
var _local9:Number;
var _local10:Array;
var _local11:Object;
var _local12:Object;
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];
};
_local7 = TweenListObj.makePropertiesChain(_arg2);
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
_local8 = (isNaN(_local7.time)) ? 0 : _local7.time;
_local9 = (isNaN(_local7.delay)) ? 0 : _local7.delay;
_local10 = new Array();
_local11 = {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};
_local12 = 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 _local4:Boolean;
var _local5:uint;
var _local6:Array;
var _local7:uint;
var _local8:uint;
var _local9:uint;
_local4 = false;
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;
var _local4:Array;
if (!Boolean(_tweenList)){
return ([]);
};
_local4 = 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;
_local2 = _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;
var _local3:Number;
if (!Boolean(_tweenList)){
return (0);
};
_local3 = 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 removed:Boolean;
var removedLocally:Boolean;
var i:uint;
var tl:uint;
var pName:String;
var eventScope:Object;
var p_scope = _arg1;
var p_properties = _arg2;
var p_timeStart = _arg3;
var p_timeComplete = _arg4;
removed = false;
tl = _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{
var _local4:SpecialPropertySplitter;
if (!_inited){
init();
};
_local4 = 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 _local3:Array;
var _local4:uint;
_local3 = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(resumeTweenByIndex, _arg1, _local3));
}
public static function pauseTweens(_arg1:Object, ... _args):Boolean{
var _local3:Array;
var _local4:uint;
_local3 = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(pauseTweenByIndex, _arg1, _local3));
}
}
}//package caurina.transitions
Section 55
//TweenListObj (caurina.transitions.TweenListObj)
package caurina.transitions {
public class TweenListObj {
public var onUpdate:Function;
public var useFrames:Boolean;
public var hasStarted:Boolean;
public var onOverwriteParams:Array;
public var timeStart:Number;
public var count: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 transition:Function;
public var timePaused:Number;
public var onCompleteParams:Array;
public var timesCalled:Number;
public var isCaller:Boolean;
public var onError:Function;
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 _local2:TweenListObj;
var _local3:String;
_local2 = 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 _local1:String;
var _local2:Boolean;
var _local3:String;
_local1 = "\n[TweenListObj ";
_local1 = (_local1 + ("scope:" + String(scope)));
_local1 = (_local1 + ", properties:");
_local2 = true;
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 _local2:Object;
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local2 = _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 56
//MemoryCrypto (com.electrotank.util.MemoryCrypto)
package com.electrotank.util {
import com.meychi.ascrypt3.*;
public class MemoryCrypto {
private static var crypto:TEA = null;
private static var INCREMENT:int = 0;
private static var initialized:Boolean = false;
public static var key:String = null;
private static var MULTIPLY:int = 2;
private static var DECREMENT:int = 1;
private static var dataHolder:Object = null;
private static var DIVIDE:int = 3;
public static function incrementValue(_arg1:String, _arg2:Number):Number{
return (processValue(_arg1, _arg2, INCREMENT));
}
public static function getValue(_arg1:String):Number{
var _local2:Number;
initIfNeeded();
_local2 = 0;
if (!isValueSet(_arg1)){
setValue(_arg1, _local2);
} else {
_local2 = new Number(crypto.decrypt(dataHolder[_arg1], key));
};
return (_local2);
}
private static function processValue(_arg1:String, _arg2:Number, _arg3:int):Number{
var _local4:Number;
initIfNeeded();
_local4 = getValue(_arg1);
switch (_arg3){
case INCREMENT:
_local4 = (_local4 + _arg2);
break;
case DECREMENT:
_local4 = (_local4 - _arg2);
break;
case MULTIPLY:
_local4 = (_local4 * _arg2);
break;
case DIVIDE:
_local4 = (_local4 / _arg2);
break;
};
setValue(_arg1, _local4);
return (_local4);
}
public static function reset():void{
initialized = false;
initIfNeeded();
}
public static function decrementValue(_arg1:String, _arg2:Number):Number{
return (processValue(_arg1, _arg2, DECREMENT));
}
private static function initIfNeeded():void{
var _local1:Number;
var _local2:String;
var _local3:Number;
var _local4:String;
if (!initialized){
_local1 = Math.random();
_local2 = new String(_local1);
_local2 = _local2.substr(2, (_local2.length - 2));
_local3 = Math.random();
_local4 = new String(_local3);
_local4 = _local4.substr(2, (_local4.length - 2));
key = (_local2 + _local4);
crypto = new TEA();
dataHolder = new Object();
initialized = true;
};
}
public static function multiplyValue(_arg1:String, _arg2:Number):Number{
return (processValue(_arg1, _arg2, MULTIPLY));
}
public static function setValue(_arg1:String, _arg2:Number):Number{
initIfNeeded();
dataHolder[_arg1] = crypto.encrypt(_arg2.toString(), key);
return (_arg2);
}
public static function divideValue(_arg1:String, _arg2:Number):Number{
if (_arg2 == 0){
throw (new Error("Amount can't be zero when dividing!"));
};
return (processValue(_arg1, _arg2, DIVIDE));
}
public static function isValueSet(_arg1:String):Boolean{
var _local2:Boolean;
initIfNeeded();
_local2 = false;
if (dataHolder[_arg1] != null){
_local2 = true;
};
return (_local2);
}
}
}//package com.electrotank.util
Section 57
//TEA (com.meychi.ascrypt3.TEA)
package com.meychi.ascrypt3 {
public class TEA {
public function encrypt(_arg1:String, _arg2:String):String{
var _local3:Array;
var _local4:Array;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
_local3 = charsToLongs(strToChars(_arg1));
_local4 = charsToLongs(strToChars(_arg2));
_local5 = _local3.length;
if (_local5 == 0){
return ("");
};
if (_local5 == 1){
var _temp1 = _local5;
_local5 = (_local5 + 1);
var _local14 = _temp1;
_local3[_local14] = 0;
};
_local6 = _local3[(_local5 - 1)];
_local7 = _local3[0];
_local8 = 2654435769;
_local11 = Math.floor((6 + (52 / _local5)));
_local12 = 0;
while (_local11-- > 0) {
_local12 = (_local12 + _local8);
_local10 = ((_local12 >>> 2) & 3);
_local13 = 0;
while (_local13 < (_local5 - 1)) {
_local7 = _local3[(_local13 + 1)];
_local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6)));
_local6 = (_local3[_local13] = (_local3[_local13] + _local9));
_local13++;
};
_local7 = _local3[0];
_local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6)));
_local6 = (_local3[(_local5 - 1)] = (_local3[(_local5 - 1)] + _local9));
};
return (charsToHex(longsToChars(_local3)));
}
public function decrypt(_arg1:String, _arg2:String):String{
var _local3:Array;
var _local4:Array;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
_local3 = charsToLongs(hexToChars(_arg1));
_local4 = charsToLongs(strToChars(_arg2));
_local5 = _local3.length;
if (_local5 == 0){
return ("");
};
_local6 = _local3[(_local5 - 1)];
_local7 = _local3[0];
_local8 = 2654435769;
_local11 = Math.floor((6 + (52 / _local5)));
_local12 = (_local11 * _local8);
while (_local12 != 0) {
_local10 = ((_local12 >>> 2) & 3);
_local13 = (_local5 - 1);
while (_local13 > 0) {
_local6 = _local3[(_local13 - 1)];
_local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6)));
_local7 = (_local3[_local13] = (_local3[_local13] - _local9));
_local13--;
};
_local6 = _local3[(_local5 - 1)];
_local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6)));
_local7 = (_local3[0] = (_local3[0] - _local9));
_local12 = (_local12 - _local8);
};
return (charsToStr(longsToChars(_local3)));
}
private static function strToChars(_arg1:String):Array{
var _local2:Array;
var _local3:Number;
_local2 = new Array();
_local3 = 0;
while (_local3 < _arg1.length) {
_local2.push(_arg1.charCodeAt(_local3));
_local3++;
};
return (_local2);
}
private static function charsToHex(_arg1:Array):String{
var _local2:String;
var _local3:Array;
var _local4:Number;
_local2 = new String("");
_local3 = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
_local4 = 0;
while (_local4 < _arg1.length) {
_local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)]));
_local4++;
};
return (_local2);
}
private static function hexToChars(_arg1:String):Array{
var _local2:Array;
var _local3:Number;
_local2 = new Array();
_local3 = ((_arg1.substr(0, 2))=="0x") ? 2 : 0;
while (_local3 < _arg1.length) {
_local2.push(parseInt(_arg1.substr(_local3, 2), 16));
_local3 = (_local3 + 2);
};
return (_local2);
}
private static function charsToStr(_arg1:Array):String{
var _local2:String;
var _local3:Number;
_local2 = new String("");
_local3 = 0;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode(_arg1[_local3]));
_local3++;
};
return (_local2);
}
private static function longsToChars(_arg1:Array):Array{
var _local2:Array;
var _local3:Number;
_local2 = new Array();
_local3 = 0;
while (_local3 < _arg1.length) {
_local2.push((_arg1[_local3] & 0xFF), ((_arg1[_local3] >>> 8) & 0xFF), ((_arg1[_local3] >>> 16) & 0xFF), ((_arg1[_local3] >>> 24) & 0xFF));
_local3++;
};
return (_local2);
}
private static function charsToLongs(_arg1:Array):Array{
var _local2:Array;
var _local3:Number;
_local2 = new Array(Math.ceil((_arg1.length / 4)));
_local3 = 0;
while (_local3 < _local2.length) {
_local2[_local3] = (((_arg1[(_local3 * 4)] + (_arg1[((_local3 * 4) + 1)] << 8)) + (_arg1[((_local3 * 4) + 2)] << 16)) + (_arg1[((_local3 * 4) + 3)] << 24));
_local3++;
};
return (_local2);
}
}
}//package com.meychi.ascrypt3
Section 58
//ColDetection (com.troy.collision.ColDetection)
package com.troy.collision {
import flash.geom.*;
import flash.display.*;
public class ColDetection {
public static function getCollisionRect(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObjectContainer, _arg4:Boolean=false, _arg5:Number=0):Rectangle{
var _local6:Rectangle;
var _local7:Rectangle;
var _local8:Rectangle;
var _local9:BitmapData;
var _local10:BitmapData;
var _local11:uint;
var _local12:Rectangle;
var _local13:int;
_local6 = _arg1.getBounds(_arg3);
_local7 = _arg2.getBounds(_arg3);
_local8 = _local6.intersection(_local7);
if (_local8.size.length > 0){
if (_arg4){
_local8.width = Math.ceil(_local8.width);
_local8.height = Math.ceil(_local8.height);
_local9 = getAlphaMap(_arg1, _local8, BitmapDataChannel.RED, _arg3);
_local10 = getAlphaMap(_arg2, _local8, BitmapDataChannel.GREEN, _arg3);
_local9.draw(_local10, null, null, BlendMode.LIGHTEN);
if (_arg5 <= 0){
_local11 = 65792;
} else {
if (_arg5 > 1){
_arg5 = 1;
};
_local13 = Math.round((_arg5 * 0xFF));
_local11 = (((_local13 << 16) | (_local13 << 8)) | 0);
};
_local12 = _local9.getColorBoundsRect(_local11, _local11);
_local9.getColorBoundsRect(_local11, _local11).x = (_local12.x + _local8.x);
_local12.y = (_local12.y + _local8.y);
return (_local12);
} else {
return (_local8);
};
//unresolved jump
};
return (null);
}
public static function isColliding(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObjectContainer, _arg4:Boolean=false, _arg5:Number=0):Boolean{
var _local6:Rectangle;
_local6 = getCollisionRect(_arg1, _arg2, _arg3, _arg4, _arg5);
if (((!((_local6 == null))) && ((_local6.size.length > 0)))){
return (true);
};
return (false);
}
public static function getCollisionPoint(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObjectContainer, _arg4:Boolean=false, _arg5:Number=0):Point{
var _local6:Rectangle;
var _local7:Number;
var _local8:Number;
_local6 = getCollisionRect(_arg1, _arg2, _arg3, _arg4, _arg5);
if (((!((_local6 == null))) && ((_local6.size.length > 0)))){
_local7 = ((_local6.left + _local6.right) / 2);
_local8 = ((_local6.top + _local6.bottom) / 2);
return (new Point(_local7, _local8));
};
return (null);
}
private static function getAlphaMap(_arg1:DisplayObject, _arg2:Rectangle, _arg3:uint, _arg4:DisplayObjectContainer):BitmapData{
var _local5:Matrix;
var _local6:Matrix;
var _local7:BitmapData;
var _local8:BitmapData;
_local5 = _arg4.transform.concatenatedMatrix.clone();
_local5.invert();
_local6 = _arg1.transform.concatenatedMatrix.clone();
_local6.concat(_local5);
_local6.translate(-(_arg2.x), -(_arg2.y));
_local7 = new BitmapData(_arg2.width, _arg2.height, true, 0);
_local7.draw(_arg1, _local6);
_local8 = new BitmapData(_arg2.width, _arg2.height, false, 0);
_local8.copyChannel(_local7, _local7.rect, new Point(0, 0), BitmapDataChannel.ALPHA, _arg3);
return (_local8);
}
}
}//package com.troy.collision
Section 59
//PM_PRNG (de.polygonal.math.PM_PRNG)
package de.polygonal.math {
public class PM_PRNG {
public static var seed:uint = now.getTime();
public static var now:Date = new Date();
public function PM_PRNG(){
var _local1:Date;
super();
_local1 = new Date();
}
public static function nextDoubleRange(_arg1:Number, _arg2:Number):Number{
return ((_arg1 + ((_arg2 - _arg1) * nextDouble())));
}
public static function nextDouble():Number{
return ((gen() / 2147483647));
}
private static function gen():uint{
return ((seed = ((seed * 16807) % 2147483647)));
}
public static function nextIntRange(_arg1:Number, _arg2:Number):uint{
_arg1 = (_arg1 - 0.4999);
_arg2 = (_arg2 + 0.4999);
return (Math.round((_arg1 + ((_arg2 - _arg1) * nextDouble()))));
}
public static function nextInt():uint{
return (gen());
}
}
}//package de.polygonal.math
Section 60
//BGM (BGM)
package {
import flash.media.*;
public dynamic class BGM extends Sound {
}
}//package
Section 61
//BloodSplat (BloodSplat)
package {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class BloodSplat extends MovieClip {
public function BloodSplat(){
addFrameScript(23, frame24);
}
function frame24(){
stop();
}
}
}//package
Section 62
//Bullets (Bullets)
package {
import flash.display.*;
public dynamic class Bullets extends MovieClip {
public var bullet2:MovieClip;
public var bullet3:MovieClip;
public var bullet0:MovieClip;
public var bullet1:MovieClip;
public var bullet9:MovieClip;
public var bullet7:MovieClip;
public var bullet8:MovieClip;
public var bullet4:MovieClip;
public var bullet10:MovieClip;
public var bullet15:MovieClip;
public var bullet16:MovieClip;
public var bullet11:MovieClip;
public var bullet14:MovieClip;
public var bullet6:MovieClip;
public var bullet19:MovieClip;
public var bullet13:MovieClip;
public var bullet5:MovieClip;
public var bullet12:MovieClip;
public var bullet21:MovieClip;
public var bullet22:MovieClip;
public var bullet23:MovieClip;
public var bullet25:MovieClip;
public var bullet24:MovieClip;
}
}//package
Section 63
//Buttons (Buttons)
package {
import flash.display.*;
public dynamic class Buttons extends MovieClip {
public var shotgun:MovieClip;
public var grow:MovieClip;
public var catapult:MovieClip;
public var snowlauncher:MovieClip;
public var bladegun:MovieClip;
public var poisonfence:MovieClip;
public var wavedrum:MovieClip;
public var repair1:MovieClip;
public var repair2:MovieClip;
public var firecatapult:MovieClip;
public var boxingfence:MovieClip;
public var repair3:MovieClip;
public var snrgun:MovieClip;
public var handgun:MovieClip;
public var rocketlauncher:MovieClip;
public var icedrum:MovieClip;
public var rocketshotgun:MovieClip;
public var spikewall:MovieClip;
public var firedrum:MovieClip;
public var grenadelauncher:MovieClip;
public var sniper:MovieClip;
public var tomahawklauncher:MovieClip;
public var supergrowth:MovieClip;
public var blizzard:MovieClip;
public var splitshuriken:MovieClip;
public var chainlightning:MovieClip;
public var anthrax:MovieClip;
public var electricfence:MovieClip;
public var smg:MovieClip;
public var massivecatapult:MovieClip;
public var titaniumwall:MovieClip;
public var flamethrower:MovieClip;
public var brickwall:MovieClip;
public var machinegun:MovieClip;
public var nucleardrum:MovieClip;
public var clusterbomb:MovieClip;
public var meteor:MovieClip;
public var electricshock:MovieClip;
public var longrangemissile:MovieClip;
public var cutlaser:MovieClip;
public var fireballlauncher:MovieClip;
public var pohon:MovieClip;
public var gatling:MovieClip;
public var woodwall:MovieClip;
public var steelspikefence:MovieClip;
public var frozeturret:MovieClip;
}
}//package
Section 64
//CApel (CApel)
package {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
public class CApel extends MovieClip {
public var mApel:MovieClip;
public var mScore:int;
public var mGrowRate:Number;
public var mRipeCounter:int;
public var mMoney:int;
public var mOwner:MovieClip;
public var mGrowCounter:int;
public static var YoungApple:ColorTransform;
public static var RIPE_COUNTER = 600;
public static var RipeApple:ColorTransform;
public function CApel(_arg1:MovieClip){
var _local2:PohonApel;
super();
YoungApple = new ColorTransform(0, 2, 2, 1, 0, 50, 0, 0);
RipeApple = new ColorTransform(1, 1, 1, 1, 0, 0, 0, 0);
mRipeCounter = RIPE_COUNTER;
mGrowRate = Data.DApel.growrate;
mGrowCounter = Data.DApel.growcounter;
mScore = Data.DApel.score;
mMoney = Data.DApel.money;
_local2 = new PohonApel();
mApel = _local2.getChildByName("apel");
addChild(mApel);
mApel.scaleX = 0.6;
mApel.scaleY = 0.6;
mApel.x = 0;
mApel.y = 0;
mOwner = _arg1;
transform.colorTransform = YoungApple;
}
public function changeOwner(_arg1:MovieClip){
if (this.parent){
this.parent.removeChild(this);
_arg1.addChild(this);
x = 0;
y = 0;
};
}
public function AddDispatcher(_arg1:String="update"):void{
Main.GetInstance().addEventListener(_arg1, Update, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, onMouseUp, false, 0, true);
}
public function grow(_arg1:Number){
if (mRipeCounter >= 0){
mRipeCounter = (mRipeCounter - (_arg1 * 1500));
} else {
mApel.scaleX = (mApel.scaleX + _arg1);
mApel.scaleY = (mApel.scaleY + _arg1);
if (mApel.scaleX > 1){
mApel.scaleX = 1;
mApel.scaleY = 1;
};
};
}
public function isRipe2():Boolean{
if (CGame.GetInstance().mLevel > 0){
return ((mRipeCounter <= 320));
};
return ((mRipeCounter <= -99999));
}
private function onMouseUp(_arg1:MouseEvent):void{
var _local2:int;
if ((((parent is CPohon)) && (isRipe()))){
_local2 = ((mApel.scaleX * mApel.scaleX) * 70);
CGame.GetInstance().IncreaseMoney(_local2);
CGame.GetInstance().IncreaseScore(_local2);
mApel.scaleX = 0.6;
mApel.scaleY = 0.6;
CGame.GetInstance().mCount = (CGame.GetInstance().mCount + ((mApel.scaleX * mApel.scaleX) * 70));
mRipeCounter = RIPE_COUNTER;
CGame.GetInstance().munculTulisan(("+" + _local2), parent.x, parent.y, true);
} else {
if ((((parent is CPohon)) && (!(isRipe())))){
CGame.GetInstance().mPanel.mMessage.text = "The apple is not big enough to be picked, wait until it becomes red";
CGame.GetInstance().mTimer.start();
};
};
}
public function RemoveDispatcher(_arg1:String="update"){
Main.GetInstance().removeEventListener(_arg1, Update);
removeEventListener(MouseEvent.MOUSE_UP, onMouseUp, false);
}
public function isRipe():Boolean{
return ((mRipeCounter <= 0));
}
public function ResetRipeApple(){
mApel.scaleX = 0.6;
mApel.scaleY = 0.6;
CGame.GetInstance().mCount = (CGame.GetInstance().mCount + ((mApel.scaleX * mApel.scaleX) * 70));
mRipeCounter = RIPE_COUNTER;
}
private function Update(_arg1:Event):void{
if ((parent is CPohon)){
mRipeCounter--;
if (mRipeCounter <= 0){
if (mGrowCounter > 0){
mGrowCounter--;
};
if ((((mApel.scaleX < 1)) && ((mGrowCounter == 0)))){
mApel.scaleX = (mApel.scaleX + mGrowRate);
mApel.scaleY = (mApel.scaleY + mGrowRate);
mGrowCounter = 20;
if (mApel.scaleX > 1){
mApel.scaleX = 1;
mApel.scaleY = 1;
};
};
};
};
if (isRipe()){
transform.colorTransform = RipeApple;
} else {
transform.colorTransform = YoungApple;
};
}
}
}//package
Section 65
//CArrow (CArrow)
package {
import flash.display.*;
public dynamic class CArrow extends MovieClip {
}
}//package
Section 66
//CBannedWin (CBannedWin)
package {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class CBannedWin extends MovieClip {
public function CBannedWin(){
addFrameScript(0, frame1);
}
function frame1(){
}
}
}//package
Section 67
//CBullet (CBullet)
package {
import flash.events.*;
import caurina.transitions.*;
import flash.geom.*;
import flash.display.*;
import com.troy.collision.*;
public class CBullet extends MovieClip {
public var mType:int;
public var mRadius:Number;
public var mDmg:Number;
public var mKill:Boolean;
public var mTarget:Object;
public var mCtr:int;
public var mOwner:Object;
public var mIcon:MovieClip;
public var mDist:Number;
public var mAlphaSpeed:Number;
public var mSpeed:Number;
public var mDx:Number;
public var mDy:Number;
public function CBullet(_arg1:int, _arg2:Object){
var _local3:MovieClip;
super();
mType = _arg1;
mDmg = Data.DBullet[mType].dmg;
mSpeed = Data.DBullet[mType].speed;
mKill = Data.DBullet[mType].kill;
mRadius = Data.DBullet[mType].radius;
mTarget = null;
mOwner = _arg2;
_local3 = new Bullets();
mIcon = _local3.getChildByName(("bullet" + mType));
mIcon.x = 0;
mIcon.y = 0;
mIcon.alpha = 1;
addChild(mIcon);
mouseEnabled = false;
mIcon.mouseEnabled = false;
if (mType == Data.BULLET_GRENADE){
mRadius = Data.DBullet[mType].radius;
};
if (mType == Data.BULLET_LASER){
scaleX = 0.5;
};
if ((((((mType == Data.BULLET_LIGHTNINGBALL)) || ((mType == Data.BULLET_ICEDROP)))) || ((mType == Data.BULLET_THORN)))){
mCtr = Data.DBullet[mType].ctr;
};
}
private function Update(_arg1:Event){
move();
checkHit();
}
public function AddDispatcher(_arg1:String="update"):void{
if (mType == Data.BULLET_ICEDROP){
mIcon.nextFrame();
};
Main.GetInstance().addEventListener(_arg1, Update, false, 0, true);
}
public function RemoveDispatcher(_arg1:String="update"){
Main.GetInstance().removeEventListener(_arg1, Update);
}
public function seek(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
if (mTarget){
_local1 = Global.AngleOfTwoDots(mTarget.x, mTarget.y, x, y);
_local1 = Global.RadToDeg(_local1);
_local2 = rotation;
while (_local2 < 0) {
_local2 = (_local2 + 360);
};
if (_local2 > 180){
_local2 = (-180 + (_local2 % 180));
};
if (mType == Data.BULLET_LIGHTNINGBALL){
rotation = _local1;
};
_local3 = (_local1 - _local2);
if (Math.abs(_local3) > 180){
_local3 = (-(_local3) % 180);
};
if (Math.abs(_local3) > 3){
if (_local3 > 0){
rotation = (rotation + Data.DBullet[mType].rotatespeed);
} else {
rotation = (rotation - Data.DBullet[mType].rotatespeed);
};
};
} else {
findTarget();
};
}
public function checkHit(){
var _local1:int;
var _local2:Number;
if (((!(mOwner)) || (!(mOwner.parent)))){
KillMe();
return;
};
if (mType == Data.BULLET_GRENADE){
return;
};
if ((((mType == Data.BULLET_LIGHTNINGBALL)) && (mTarget))){
if (ColDetection.isColliding(this.mIcon, mTarget.mIcon, CGame.GetInstance(), true)){
mTarget.increaseHP(-(mDmg));
mTarget.setStatus(CEnemy.PARALYSED, 0.5, 5);
findTarget();
mCtr--;
if (mCtr <= 0){
KillMe();
};
};
return;
};
if ((((((mType == Data.BULLET_THORN)) || ((mType == Data.BULLET_ICEDROP)))) || ((mType == Data.BULLET_BLADEFAN)))){
if (CGame.GetInstance().mWorms){
_local1 = 0;
while (_local1 < CGame.GetInstance().mWorms.length) {
_local2 = Global.Distance(x, y, CGame.GetInstance().mWorms[_local1].x, CGame.GetInstance().mWorms[_local1].y);
if (_local2 <= (CGame.GetInstance().mWorms[_local1].width / 2)){
if (mType == Data.BULLET_ICEDROP){
CGame.GetInstance().mWorms[_local1].setStatus(CEnemy.FREEZED, 0.5, 2);
};
CGame.GetInstance().mWorms[_local1].increaseHP(-(mDmg));
if (mKill){
KillMe();
};
break;
};
_local1++;
};
};
return;
};
if (mType == Data.BULLET_GROWTH){
if (CGame.GetInstance().mTrees){
_local1 = 0;
while (_local1 < CGame.GetInstance().mTrees.length) {
_local2 = Global.Distance(x, y, CGame.GetInstance().mTrees[_local1].x, CGame.GetInstance().mTrees[_local1].y);
if (_local2 <= (width / 2)){
CGame.GetInstance().mTrees[_local1].increaseGrow(mDmg);
};
_local1++;
};
};
return;
};
if (mType == Data.BULLET_REPAIR){
if (CGame.GetInstance().mTurrets){
_local1 = 0;
while (_local1 < CGame.GetInstance().mTurrets.length) {
_local2 = Global.Distance(x, y, CGame.GetInstance().mTurrets[_local1].x, CGame.GetInstance().mTurrets[_local1].y);
if (_local2 <= (width / 2)){
CGame.GetInstance().mTurrets[_local1].increaseHP(mDmg);
};
_local1++;
};
};
return;
};
if (mType == Data.BULLET_STONE){
if (mTarget){
if ((((scaleX < 0.2)) && ((Global.Distance(x, y, mTarget.x, mTarget.y) <= (mDist / 2))))){
Explode("smoke");
};
};
return;
};
if (Global.Distance(x, y, mOwner.x, mOwner.y) > mOwner.mRadius){
KillMe();
return;
};
if ((((((((x < 10)) || ((y < 10)))) || ((x > (Global.STAGE_WIDTH - 10))))) || ((y > (Global.STAGE_HEIGHT - 10))))){
KillMe();
return;
};
if (CGame.GetInstance().mWorms){
_local1 = 0;
while (_local1 < CGame.GetInstance().mWorms.length) {
if (CGame.GetInstance().mWorms[_local1]){
if (ColDetection.isColliding(this.mIcon, CGame.GetInstance().mWorms[_local1].mIcon, CGame.GetInstance(), true)){
CGame.GetInstance().mWorms[_local1].increaseHP(-(mDmg));
if ((((mType == Data.BULLET_LIGHTNING)) && (CGame.GetInstance().mWorms[_local1]))){
CGame.GetInstance().mWorms[_local1].setStatus(CEnemy.PARALYSED, 0.5, 3);
};
if ((((mType == Data.BULLET_POISON)) && (CGame.GetInstance().mWorms[_local1]))){
CGame.GetInstance().mWorms[_local1].setStatus(CEnemy.POISONED, 1, 5);
};
if ((((mType == Data.BULLET_FROZEN)) && (CGame.GetInstance().mWorms[_local1]))){
CGame.GetInstance().mWorms[_local1].setStatus(CEnemy.FREEZED, 0.5, 3);
};
if ((((mType == Data.BULLET_SNOW)) && (CGame.GetInstance().mWorms[_local1]))){
CGame.GetInstance().mWorms[_local1].setStatus(CEnemy.FREEZED, 0.5, 3);
};
if (mKill){
if ((((((mType == Data.BULLET_ROCKET)) || ((mType == Data.BULLET_MISSILE1)))) || ((mType == Data.BULLET_MISSILE2)))){
Explode();
} else {
KillMe();
};
break;
};
};
};
_local1++;
};
};
if ((((((mType == Data.BULLET_FLAME)) || ((mType == Data.BULLET_POISON)))) || ((mType == Data.BULLET_FROZEN)))){
if (mIcon.currentFrame == mIcon.totalFrames){
KillMe();
};
};
}
public function findTarget(){
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Number;
_local1 = int.MAX_VALUE;
_local2 = -1;
_local3 = 0;
while (_local3 < CGame.GetInstance().mWorms.length) {
_local4 = Global.Distance(x, y, CGame.GetInstance().mWorms[_local3].x, CGame.GetInstance().mWorms[_local3].y);
if ((((((_local4 <= mRadius)) && (!((CGame.GetInstance().mWorms[_local3] == mTarget))))) && ((_local4 < _local1)))){
_local2 = _local3;
_local1 = _local4;
};
_local3++;
};
if (_local2 > -1){
if (mType == Data.BULLET_STONE){
mTarget = new Point(CGame.GetInstance().mWorms[_local2].x, CGame.GetInstance().mWorms[_local2].y);
mDist = Global.Distance(x, y, mTarget.x, mTarget.y);
mSpeed = ((mDist / mRadius) * Data.DBullet[mType].speed);
} else {
mTarget = CGame.GetInstance().mWorms[_local2];
};
} else {
mTarget = null;
};
if (((!(mTarget)) && ((mType == Data.BULLET_LIGHTNINGBALL)))){
KillMe();
};
}
public function KillMe(){
if (this){
RemoveDispatcher();
if (parent){
parent.removeChild(this);
};
};
}
public function Explode(_arg1:String="ledakan"){
var _local2:MovieClip;
var _local3:int;
var _local4:Number;
_local2 = new Particles().getChildByName(_arg1);
_local2.x = x;
_local2.y = y;
_local2.width = 0;
_local2.height = 0;
_local2.mouseEnabled = false;
CGame.GetInstance().addChildAt(_local2, CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTree));
Tweener.addTween(_local2, {width:Data.DBullet[mType].aoe, height:Data.DBullet[mType].aoe, alpha:0.7, time:1.5, onComplete:CGame.GetInstance().removeChild, onCompleteParams:[_local2]});
if (CGame.GetInstance().mWorms){
_local3 = 0;
while (_local3 < CGame.GetInstance().mWorms.length) {
_local4 = Global.Distance(x, y, CGame.GetInstance().mWorms[_local3].x, CGame.GetInstance().mWorms[_local3].y);
if (_local4 <= Data.DBullet[mType].aoe){
CGame.GetInstance().mWorms[_local3].increaseHP(-(mDmg));
};
_local3++;
};
};
KillMe();
}
public function calculateDxDy(){
mDx = (Math.cos(Global.DegToRad(rotation)) * mSpeed);
mDy = (Math.sin(Global.DegToRad(rotation)) * mSpeed);
}
public function move(){
var _local1:Number;
var _local2:Number;
if (mTarget){
if (((!((mType == Data.BULLET_STONE))) && (!((mType == Data.BULLET_BLADEFAN))))){
if (!mTarget.parent){
mTarget = null;
} else {
if (mTarget.mHP <= 0){
mTarget = null;
};
};
};
};
if (mType == Data.BULLET_GRENADE){
return;
};
if ((((mType == Data.BULLET_ICEDROP)) || ((mType == Data.BULLET_THORN)))){
mCtr--;
if (mCtr <= 0){
KillMe();
};
};
if ((((((((((((((mType == Data.BULLET_HANDGUN)) || ((mType == Data.BULLET_FIREBALL)))) || ((mType == Data.BULLET_FLAME)))) || ((mType == Data.BULLET_POISON)))) || ((mType == Data.BULLET_FROZEN)))) || ((mType == Data.BULLET_NEEDLE)))) || ((mType == Data.BULLET_SNOW)))){
x = (x + mDx);
y = (y + mDy);
} else {
if (mType == Data.BULLET_METEOR){
y = (y + mSpeed);
scaleX = (scaleX - 0.02);
scaleY = (scaleY - 0.02);
if (scaleX <= 0){
KillMe();
};
} else {
if (mType == Data.BULLET_LIGHTNING){
if (mIcon.currentFrame == mIcon.totalFrames){
KillMe();
};
} else {
if (mType == Data.BULLET_LASER){
x = (x + mDx);
y = (y + mDy);
scaleX = (((scaleX * width) + (mSpeed * 10)) / width);
} else {
if ((((((((mType == Data.BULLET_ROCKET)) || ((mType == Data.BULLET_MISSILE1)))) || ((mType == Data.BULLET_MISSILE2)))) || ((mType == Data.BULLET_LIGHTNINGBALL)))){
x = (x + mDx);
y = (y + mDy);
if ((((((mType == Data.BULLET_MISSILE1)) || ((mType == Data.BULLET_MISSILE2)))) || ((mType == Data.BULLET_LIGHTNINGBALL)))){
seek();
};
mSpeed = (mSpeed + Data.DBullet[mType].acc);
calculateDxDy();
} else {
if (mType == Data.BULLET_STONE){
x = (x + mDx);
y = (y + mDy);
if (mTarget){
_local2 = ((Global.Distance(x, y, mTarget.x, mTarget.y) / mDist) * 90);
_local2 = Global.DegToRad(_local2);
} else {
_local2 = 0;
};
_local1 = Math.sin(_local2);
scaleX = _local1;
scaleY = scaleX;
calculateDxDy();
} else {
if (mType == Data.BULLET_SHURIKEN){
x = (x + mDx);
y = (y + mDy);
rotation = (rotation + Data.DBullet[mType].rotatespeed);
} else {
if (mType == Data.BULLET_BLADEFAN){
rotation = (rotation + (Data.DBullet[mType].rotatespeed * 3));
mTarget.angle = (mTarget.angle + Data.DBullet[mType].rotatespeed);
x = (mTarget.x + (mRadius * Math.cos(Global.DegToRad(mTarget.angle))));
y = (mTarget.y + ((mRadius / 2) * Math.sin(Global.DegToRad(mTarget.angle))));
mTarget.counter--;
if (mTarget.counter < 100){
alpha = (mTarget.counter / 100);
};
if (mTarget.counter <= 0){
KillMe();
};
};
};
};
};
};
};
};
};
}
}
}//package
Section 68
//CDialogCongrats (CDialogCongrats)
package {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class CDialogCongrats extends MovieClip {
public var mScore:TextField;
public var mMenu:SimpleButton;
public var mName:TextField;
public var mSubmit:SimpleButton;
public function CDialogCongrats(){
addFrameScript(0, frame1);
}
public function onDialogUp(_arg1:MouseEvent){
Main.GetInstance().mState = Main.STATE_PAUSED;
}
public function onMenuUp(_arg1:MouseEvent){
this.parent.removeChild(this);
Main.GetInstance().KillGameWin();
}
public function onNameUp(_arg1:MouseEvent){
if (mName.text == "Enter your name"){
mName.text = "";
};
mName.setSelection(0, mName.text.length);
Main.GetInstance().mState = Main.STATE_GAME_OVER;
}
function frame1(){
mScore.text = CGame.GetInstance().mStatusBar.mScore.text;
if (Main.GetInstance().game){
if (Main.GetInstance().game.UseHighScores()){
mSubmit.addEventListener(MouseEvent.MOUSE_UP, onSubmitUp, false, 0, true);
} else {
mName.parent.removeChild(mName);
mSubmit.parent.removeChild(mSubmit);
};
};
addEventListener(MouseEvent.MOUSE_DOWN, onDialogUp, false, 0, true);
mName.addEventListener(MouseEvent.MOUSE_UP, onNameUp, false, 0, true);
if (!mMenu.hasEventListener(MouseEvent.MOUSE_UP)){
mMenu.addEventListener(MouseEvent.MOUSE_UP, onMenuUp, false, 0, true);
};
}
public function onSubmitUp(_arg1:MouseEvent){
var _local2:String;
trace("submit");
this.parent.removeChild(this);
Main.GetInstance().KillGameWin();
_local2 = (((mScore.text + " (") + (CGame.GetInstance().mLevel - 1)) + ")");
trace(_local2);
Main.GetInstance().game.SubmitHighScore("", mName.text, _local2);
}
}
}//package
Section 69
//CDialogPause (CDialogPause)
package {
import flash.events.*;
import caurina.transitions.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class CDialogPause extends MovieClip {
public var mResume:SimpleButton;
public var mMenu:SimpleButton;
public var mMessage:TextField;
public function CDialogPause(){
addFrameScript(0, frame1);
}
public function onMenuUp(_arg1:MouseEvent){
this.parent.removeChild(this);
Main.GetInstance().KillGameWin();
}
function frame1(){
if (!mMenu.hasEventListener(MouseEvent.MOUSE_UP)){
mMenu.addEventListener(MouseEvent.MOUSE_UP, onMenuUp, false, 0, true);
};
if (!mResume.hasEventListener(MouseEvent.MOUSE_UP)){
mResume.addEventListener(MouseEvent.MOUSE_UP, onResumeUp, false, 0, true);
};
}
public function onResumeUp(_arg1:MouseEvent){
this.parent.removeChild(this);
Main.GetInstance().mState = Main.STATE_GAME;
Tweener.resumeAllTweens();
Main.GetInstance().stage.focus = Main.GetInstance();
}
}
}//package
Section 70
//CEnemy (CEnemy)
package {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import com.troy.collision.*;
import de.polygonal.math.*;
public class CEnemy extends MovieClip {
public var mFrame:Array;
public var mDifficulty:Object;
public var mScore:Number;
public var mStatCount:int;
public var mHP:Number;
public var mMovement:int;
public var mRandomCounter:int;
public var mStatCounter:int;
public var mType:int;
public var mRadius:int;
public var mDmg:Number;
public var mMoney:Number;
public var mTarget:Object;
public var mDirection:int;
public var mIcon:MovieClip;
public var mHPBar:MovieClip;
public var mSeekCounter:int;
public var mStatus:int;
public var mTempTarget:Object;
public var mSpeed:Number;
public var mStatDmg:Number;
public var mDx:Number;
public var mDy:Number;
public var mMaxHP:int;
public static const ATTACK = 1;
public static const FREEZED = 3;
public static const MOVE = 0;
public static const LEFT = 1;
public static const PARALYSED = 2;
public static const POISONED = 1;
public static const NORMAL = 0;
public static const STAT_COUNTER = 40;
public static const RIGHT = -1;
public static var ColorGreen:ColorTransform;
public static var ColorRed:ColorTransform;
public static var ColorYellow:ColorTransform;
public static var ColorNormal:ColorTransform;
public static var ColorBlue:ColorTransform;
public function CEnemy(_arg1:int, _arg2:Object="HIGHARMOR"){
var _local3:Enemies;
var _local4:int;
var _local5:String;
super();
ColorYellow = new ColorTransform(1.5, 1.5, 0.7, 1, 0, 0, 0, 0);
ColorRed = new ColorTransform(2, 1, 1, 1, 0, 0, 0, 0);
ColorGreen = new ColorTransform(0.7, 1.5, 0.7, 1, 0, 0, 0, 0);
ColorNormal = new ColorTransform(1, 1, 1, 1, 0, 0, 0, 0);
ColorBlue = new ColorTransform(1, 1, 1, 1, 0, 0, 0xFF, 0);
mType = _arg1;
_local3 = new Enemies();
mIcon = _local3.getChildByName(("enemy" + mType));
mIcon.x = 0;
mIcon.y = 0;
addChild(mIcon);
mFrame = new Array();
mFrame.push(Data.DEnemy[mType].move);
mFrame.push(Data.DEnemy[mType].attack);
mSpeed = Data.DEnemy[mType].speed;
mDmg = Data.DEnemy[mType].dmg;
mHP = Data.DEnemy[mType].hp;
mMaxHP = Data.DEnemy[mType].hp;
mRadius = Data.DEnemy[mType].radius;
mScore = Data.DEnemy[mType].score;
mMoney = Data.DEnemy[mType].money;
mDirection = LEFT;
mMovement = MOVE;
mSeekCounter = 0;
findTarget();
mHPBar = new HPBar();
mHPBar.stop();
addChild(mHPBar);
mHPBar.x = 0;
mHPBar.y = (-(mIcon.height) / 2);
mHPBar.scaleX = (mIcon.width / mHPBar.width);
mHPBar.scaleY = (5 / mHPBar.height);
mHPBar.gotoAndStop(((mHP / mMaxHP) * 100));
mHPBar.alpha = 0;
mStatus = NORMAL;
mStatCounter = STAT_COUNTER;
mStatDmg = 0;
for (_local4 in _arg2) {
mDifficulty = Data.DDifficulty[_arg2[_local4]];
for (_local5 in mDifficulty) {
this[_local5] = (this[_local5] * mDifficulty[_local5]);
};
};
}
private function onMouseOver(_arg1:MouseEvent):void{
}
private function Update(_arg1:Event){
var _local2:Number;
var _local3:Number;
if (mHP <= 0){
increaseHP(-10);
};
if (mRandomCounter > 0){
mRandomCounter--;
} else {
findRandomTarget();
};
if (mStatCounter > 0){
mStatCounter--;
};
if (mStatus == PARALYSED){
if ((mStatCounter % 2) == 0){
mIcon.stop();
} else {
mIcon.play();
};
};
if (mStatCounter == 0){
if (mStatus == POISONED){
increaseHP(-(mStatDmg));
};
mStatCount--;
if (mStatCount <= 0){
setStatus(NORMAL);
};
mStatCounter = STAT_COUNTER;
};
checkTarget();
if (mMovement == MOVE){
if (!haveApple()){
if (mTarget != null){
_local2 = Global.Distance(x, y, mTarget.x, mTarget.y);
if ((mTarget is CPohon)){
if (!mTarget.haveRipeApple()){
mSeekCounter = 0;
findTarget();
};
};
if (_local2 > mRadius){
mSeekCounter = 0;
findTarget();
};
if (mTarget){
_local3 = Global.AngleOfTwoDots(mTarget.x, mTarget.y, x, y);
calculateDxDy(_local3);
};
} else {
findTarget();
};
} else {
if (haveApple()){
ChangeDirection(LEFT);
calculateDxDy(Global.DegToRad(-180));
};
};
move();
};
}
public function AddDispatcher(_arg1:String="update"):void{
Main.GetInstance().addEventListener(_arg1, Update, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, onMouseUp, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut, false, 0, true);
}
public function setStatus(_arg1:int, _arg2:Number=0, _arg3:int=0){
if (mStatus == _arg1){
return;
};
mStatus = _arg1;
if (_arg1 == POISONED){
mStatDmg = _arg2;
mStatCount = _arg3;
mIcon.transform.colorTransform = ColorGreen;
} else {
if (_arg1 == NORMAL){
mStatCounter = -1;
mStatDmg = 0;
mStatCount = 0;
mSpeed = Data.DEnemy[mType].speed;
mIcon.play();
mIcon.transform.colorTransform = ColorNormal;
} else {
if (_arg1 == PARALYSED){
mSpeed = (Data.DEnemy[mType].speed * _arg2);
mStatCount = _arg3;
mIcon.transform.colorTransform = ColorYellow;
} else {
if (_arg1 == FREEZED){
mSpeed = (Data.DEnemy[mType].speed * _arg2);
mIcon.transform.colorTransform = ColorBlue;
mStatCount = _arg3;
};
};
};
};
calculateDxDy(rotation);
}
public function Kill(){
stop();
mTarget = null;
RemoveDispatcher();
if (this.parent){
this.parent.killWorm(this);
};
}
public function afterAttack(){
if (mTarget){
if ((mTarget is CTurret)){
if (mTarget.mType == Data.WALL_SPIKE){
increaseHP(-(mTarget.mDmg));
} else {
if (mTarget.mType == Data.FENCE_POISON){
setStatus(POISONED, mTarget.mDmg, 5);
} else {
if (mTarget.mType == Data.FENCE_ELECTRIC){
setStatus(PARALYSED, mTarget.mDmg, 5);
};
};
};
if (mTarget){
mTarget.increaseHP(-(mDmg));
if (mTarget.mHP <= 0){
mTarget = null;
};
};
};
};
ChangeMovement(MOVE);
}
private function onMouseUp(_arg1:MouseEvent):void{
CGame.GetInstance().setActiveUnit(this);
}
public function RemoveDispatcher(_arg1:String="update"){
Main.GetInstance().removeEventListener(_arg1, Update);
removeEventListener(MouseEvent.MOUSE_UP, onMouseUp, false);
removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver, false);
removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut, false);
}
private function onMouseOut(_arg1:MouseEvent):void{
}
public function ChangeMovement(_arg1:int){
mIcon.gotoAndPlay(mFrame[_arg1]);
mMovement = _arg1;
}
public function ChangeDirection(_arg1:int){
mDirection = _arg1;
mIcon.scaleX = (mDirection * Math.abs(mIcon.scaleX));
}
public function Hit(){
}
public function findRandomTarget(){
var _local1:Number;
if ((((mTarget == null)) && (!((mTempTarget == null))))){
mTarget = mTempTarget;
mRandomCounter = PM_PRNG.nextIntRange(120, 200);
mSeekCounter = mRandomCounter;
return;
};
mTarget = null;
_local1 = Global.AngleOfTwoDots(PM_PRNG.nextIntRange(100, (Global.STAGE_WIDTH - 100)), PM_PRNG.nextIntRange(100, (Global.STAGE_HEIGHT - 100)), x, y);
calculateDxDy(_local1);
if (mRandomCounter <= 0){
mRandomCounter = PM_PRNG.nextIntRange(40, 80);
};
}
public function findTarget(){
var _local1:Number;
var _local2:int;
var _local3:Number;
var _local4:int;
if (mSeekCounter <= 0){
_local1 = PM_PRNG.nextDouble();
mTarget = null;
mTempTarget = null;
mSeekCounter = PM_PRNG.nextIntRange(120, 200);
_local2 = 0;
while (_local2 < CGame.GetInstance().mTurrets.length) {
if ((((CGame.GetInstance().mTurrets[_local2].mType >= Data.WALL_WOOD)) && ((CGame.GetInstance().mTurrets[_local2].mType <= Data.FENCE_STEELSPIKE)))){
_local3 = Global.Distance(x, y, CGame.GetInstance().mTurrets[_local2].x, CGame.GetInstance().mTurrets[_local2].y);
if (_local3 < mRadius){
mTarget = CGame.GetInstance().mTurrets[_local2];
mTempTarget = CGame.GetInstance().mTurrets[_local2];
mRandomCounter = PM_PRNG.nextIntRange(120, 200);
mSeekCounter = mRandomCounter;
return;
};
};
_local2++;
};
if (_local1 <= Data.DEnemy[mType].appleprob){
_local4 = CGame.GetInstance().mTrees.length;
if (_local4 > 0){
do {
_local2 = (PM_PRNG.nextDouble() * CGame.GetInstance().mTrees.length);
_local3 = Global.Distance(x, y, CGame.GetInstance().mTrees[_local2].x, CGame.GetInstance().mTrees[_local2].y);
if (((CGame.GetInstance().mTrees[_local2].haveRipeApple()) && ((_local3 <= mRadius)))){
mTarget = CGame.GetInstance().mTrees[_local2];
mTempTarget = CGame.GetInstance().mTrees[_local2];
return;
};
--_local4;
} while (_local4 != 0);
};
};
if (_local1 <= Data.DEnemy[mType].attprob){
_local4 = CGame.GetInstance().mTurrets.length;
if (_local4 > 0){
do {
_local2 = (PM_PRNG.nextDouble() * CGame.GetInstance().mTurrets.length);
_local3 = Global.Distance(x, y, CGame.GetInstance().mTurrets[_local2].x, CGame.GetInstance().mTurrets[_local2].y);
if (_local3 <= mRadius){
mTarget = CGame.GetInstance().mTurrets[_local2];
mTempTarget = CGame.GetInstance().mTurrets[_local2];
return;
};
--_local4;
} while (_local4 != 0);
};
};
findRandomTarget();
};
}
public function checkTarget(){
var _local1:int;
if (mTarget){
if ((mTarget is CPohon)){
_local1 = CGame.GetInstance().mTrees.indexOf(mTarget);
if (_local1 == -1){
mTarget = null;
};
} else {
if ((mTarget is CTurret)){
_local1 = CGame.GetInstance().mTurrets.indexOf(mTarget);
if (_local1 == -1){
mTarget = null;
};
};
};
};
}
public function increaseHP(_arg1:Number){
mHP = (mHP + _arg1);
mHPBar.gotoAndStop(int(((Math.round(mHP) / mMaxHP) * 100)));
if (mHP < mMaxHP){
mHPBar.alpha = 1;
};
if (mHP <= 0){
if (haveApple()){
CGame.GetInstance().pindahApel(getChildAt(2));
};
CGame.GetInstance().munculTulisan(("+" + mMoney), x, y);
CGame.GetInstance().IncreaseScore(mScore);
CGame.GetInstance().IncreaseMoney(mMoney);
Kill();
};
}
public function calculateDxDy(_arg1:Number){
mDx = (Math.cos(_arg1) * mSpeed);
mDy = (Math.sin(_arg1) * mSpeed);
if ((((mDx < 0)) && (!((mDirection == LEFT))))){
ChangeDirection(LEFT);
} else {
if ((((mDx > 0)) && (!((mDirection == RIGHT))))){
ChangeDirection(RIGHT);
};
};
}
public function move(){
var _local1:MovieClip;
if (mSeekCounter > 0){
mSeekCounter--;
};
x = (x + mDx);
y = (y + mDy);
if ((((x <= (-(width) / 2))) && (haveApple()))){
if (this.getChildAt(2).mOwner){
Main.GetInstance().mOptionBar.PlaySFX("loser", 2);
this.getChildAt(2).mOwner.Kill();
this.getChildAt(2).mOwner = null;
};
Kill();
return;
};
if (mTarget != null){
if ((mTarget is CPohon)){
if (mTarget.haveRipeApple()){
if (ColDetection.isColliding(this, mTarget.getChildAt(1), CGame.GetInstance(), true)){
mTarget.getApple().changeOwner(this);
transform.colorTransform = ColorRed;
_local1 = new CArrow();
_local1.x = 0;
_local1.y = -30;
addChild(_local1);
Main.GetInstance().mOptionBar.PlaySFX("laugh", 1.5);
if (mDirection == RIGHT){
ChangeDirection(LEFT);
};
if (mType == Data.WORM_BOSS){
mSpeed = (mSpeed * 2);
};
calculateDxDy(Global.DegToRad(180));
};
};
} else {
if ((mTarget is CTurret)){
if (ColDetection.isColliding(this, mTarget.mIcon, CGame.GetInstance(), true)){
ChangeMovement(ATTACK);
};
};
};
};
if ((((((((x < 20)) || ((x > (Global.STAGE_WIDTH - 20))))) || ((y < 20)))) || ((y > (Global.STAGE_HEIGHT - 20))))){
if (!haveApple()){
mSeekCounter = 0;
findTarget();
};
};
}
public function haveApple():Boolean{
if (numChildren >= 3){
if ((getChildAt(2) is CApel)){
return (true);
};
};
return (false);
}
}
}//package
Section 71
//CGame (CGame)
package {
import flash.events.*;
import caurina.transitions.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import com.troy.collision.*;
import com.electrotank.util.*;
import flash.text.*;
import flash.utils.*;
public class CGame extends MovieClip {
public var mBuildCommand:String;
public var mLayerWorm:MovieClip;
public var mTrees:Array;
public var mCrosshair:MovieClip;
public var mBossTextCounter:int;
public var mBuildList:Array;
public var mBuilding:MovieClip;
public var mBuildDown:Boolean;
public var mTurrets:Array;
public var mSFXFlag:Boolean;
public var mIndex:Array;
public var mRefreshCounter:int;
public var mNextLevel:int;
public var mRadar:MovieClip;
public var mLayerTree:MovieClip;
public var mCount:int;// = 0
public var mDialogCongrats:MovieClip;
public var mStatusBar:MovieClip;
public var mTimer:Timer;
public var mTutFlag:int;// = 0
public var mLayerTurret:MovieClip;
public var mSFXChannel:SoundChannel;
public var mLevel:int;
public var mApples:Array;
public var mWorms:Array;
public var mBuildCost:int;
private var mSO:SharedObject;
public var mPanel:CMainPanel;
public var mBuildOK:Boolean;
public var mRefresh:int;
public var mTutWin:MovieClip;
public var mWaveManager:CWaveManager;
public var mBossText:MovieClip;
public var mActiveUnit:Object;
static var UnableColor:ColorTransform;
private static var CGameGlobal:CGame;
static var EnableColor:ColorTransform;
public function CGame(_arg1:Boolean=true){
var _local2:CPohon;
var _local3:CApel;
mTutFlag = 0;
mSO = SharedObject.getLocal("AppleDefender_LB");
mTimer = new Timer(500, 15);
mCount = 0;
super();
mBossText.visible = false;
mBossText.stop();
mTutFlag = 1;
mCount = 0;
CGameGlobal = this;
EnableColor = new ColorTransform(1, 1, 1, 0.7, 0, 0, 0, 0);
UnableColor = new ColorTransform(2, 0.5, 0.5, 0.7, 0, 0, 0, 0);
mRefresh = 1;
mRefreshCounter = mRefresh;
mRadar.alpha = 0;
mRadar.mouseEnabled = false;
mTrees = new Array();
mApples = new Array();
mWorms = new Array();
mTurrets = new Array();
mLevel = 0;
loadLevel((mLevel % Data.DWave.length));
_local2 = new CPohon();
_local2.x = Data.DWave[0].level.pohon.x;
_local2.y = Data.DWave[0].level.pohon.y;
_local2.AddDispatcher();
addChildAt(_local2, getChildIndex(mLayerTree));
mTrees.push(_local2);
_local3 = new CApel(_local2);
_local3.x = 0;
_local3.y = 0;
_local2.addChild(_local3);
mApples.push(_local3);
mCrosshair.alpha = 0;
setActiveUnit(this);
InitStatusBar();
mSFXFlag = false;
mTutWin.stop();
if (!_arg1){
if (mTutWin.parent){
mTutWin.parent.removeChild(mTutWin);
mTutWin = null;
};
mTutFlag = 0;
_local3.AddDispatcher();
mWaveManager.AddDispatcher();
loadLevel(mLevel);
setPanel(mBuildList, "build", this);
} else {
mSO.data.tutFlag9 = true;
mSO.flush();
};
}
public function AddDispatcher():void{
Main.GetInstance().addEventListener("update", Update, false, 0, true);
addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, onMouseUp, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, false, 0, true);
mTimer.addEventListener(TimerEvent.TIMER, mPanel.blink, false, 0, true);
mTimer.addEventListener(TimerEvent.TIMER_COMPLETE, mPanel.setMessageAlpha, false, 0, true);
}
private function RemoveBloodSplat(_arg1:MovieClip):void{
if (_arg1){
if (_arg1.parent){
_arg1.parent.removeChild(_arg1);
};
_arg1.stop();
_arg1 = null;
};
}
function munculTulisan(_arg1:String, _arg2:int, _arg3:int, _arg4:Boolean=false, _arg5:int=0, _arg6:Number=1, _arg7:Number=2){
var _local8:TextField;
var _local9:TextFormat;
_local8 = new TextField();
_local9 = new TextFormat();
_local8.defaultTextFormat = mPanel.mMessage.getTextFormat();
_local8.textColor = 0x3300;
_local8.embedFonts = true;
_local8.text = _arg1;
_local8.x = _arg2;
_local8.y = _arg3;
_local8.scaleX = 0;
_local8.scaleY = 0;
_local8.mouseEnabled = false;
addChildAt(_local8, (this.numChildren - 1));
if (_arg4){
Tweener.addTween(_local8, {time:2, x:_arg2, y:(_arg3 - 50), scaleX:1, scaleY:1});
Tweener.addTween(_local8, {time:3, alpha:0.9, onComplete:removeChild, onCompleteParams:[_local8]});
} else {
Tweener.addTween(_local8, {time:_arg6, x:_arg2, y:((_arg3 - 20) - _arg5), scaleX:1, scaleY:1});
Tweener.addTween(_local8, {time:_arg7, alpha:0.9, onComplete:removeChild, onCompleteParams:[_local8]});
};
}
function pindahApel(_arg1:CApel){
var _local2:Number;
_arg1.x = _arg1.parent.x;
_arg1.y = _arg1.parent.y;
_arg1.parent.removeChild(_arg1);
addChild(_arg1);
_local2 = (Global.Distance(_arg1.x, _arg1.y, _arg1.mOwner.x, _arg1.mOwner.y) / 120);
Tweener.addTween(_arg1, {time:_local2, transition:"easeout", x:_arg1.mOwner.x, y:_arg1.mOwner.y, onComplete:_arg1.changeOwner, onCompleteParams:[_arg1.mOwner]});
}
public function killTree(_arg1:CPohon){
var _local2:int;
_local2 = mTrees.indexOf(_arg1);
if (_local2 > -1){
if (_arg1 == mActiveUnit){
setActiveUnit(this);
};
if (_arg1.haveApple()){
killApple(_arg1.getApple());
};
_arg1.RemoveDispatcher();
_arg1.parent.removeChild(_arg1);
mTrees[_local2] = null;
mTrees.splice(_local2, 1);
IncreaseTree(-1);
Data.DTree.count = mTrees.length;
Data.DTree.cost = (((Data.DTree.count * Data.DTree.count) + Math.pow(3, Data.DTree.count)) + 60);
};
}
function cancelBuild(){
if (mBuilding){
removeChild(mBuilding);
mBuilding = null;
mBuildOK = false;
mBuildDown = false;
};
}
public function killWaveManager(){
if (mWaveManager){
mWaveManager.RemoveDispatcher();
mWaveManager = null;
};
}
private function onComplete(_arg1:Event):void{
mSFXFlag = false;
mSFXChannel.removeEventListener(Event.SOUND_COMPLETE, onComplete, false);
}
public function loadLevel(_arg1:int){
if (mTutFlag == 0){
mWaveManager = new CWaveManager(_arg1);
mWaveManager.AddDispatcher();
mNextLevel = Data.DWave[_arg1].level.nextlevel;
if (mBuildList){
mBuildList.splice(0, mBuildList.length);
mBuildList = null;
};
mBuildList = new Array();
mBuildList.push("handgun");
mBuildList.push("repair1");
mBuildList.push("pohon");
} else {
mWaveManager = new CWaveManager(_arg1);
mNextLevel = Data.DWave[_arg1].level.nextlevel;
if (mBuildList){
mBuildList.splice(0, mBuildList.length);
mBuildList = null;
};
mBuildList = new Array();
mBuildList.push("handgun");
};
trace(("level : " + CGame.GetInstance().mLevel));
if ((((CGame.GetInstance().mLevel > 49)) || (((((CGame.GetInstance().mLevel % 10) == 0)) && ((CGame.GetInstance().mLevel > 0)))))){
if (CGame.GetInstance().mLevel > 49){
if (CGame.GetInstance().mLevel == 50){
mBossText.t = "Giant Gippsland!";
} else {
if (CGame.GetInstance().mLevel > 50){
mBossText.t = "All your apple are belong to us";
};
};
};
mBossText.visible = true;
mBossText.play();
mBossTextCounter = 200;
} else {
mBossText.stop();
mBossText.visible = false;
};
InitStatusBar();
}
function build(_arg1:Object, _arg2:String, _arg3:Object, _arg4:int, _arg5:int){
if (mBuilding){
cancelBuild();
};
mBuildCommand = _arg2;
if (_arg1 == "pohon"){
mBuildCost = Data.DTree.cost;
} else {
mBuildCost = Data.DTurret[Data.DTUpgrade[_arg1]].cost;
};
if (MemoryCrypto.getValue(Main.GetInstance().mHeroData.money) >= mBuildCost){
if (mBuildCommand == "build"){
if (_arg1 == "pohon"){
mBuilding = new CPohon();
} else {
mBuilding = new CTurret(Data.DTUpgrade[_arg1]);
};
mBuilding.alpha = 0.7;
mBuilding.x = _arg4;
mBuilding.y = _arg5;
addChild(mBuilding);
mBuildOK = false;
mBuildDown = false;
} else {
if (mBuildCommand == "upgrade"){
_arg3.upgrade(_arg1);
IncreaseMoney(-(mBuildCost));
};
};
} else {
mPanel.mMessage.text = "Not Enough Money";
CGame.GetInstance().mTimer.start();
};
}
private function isFinish():void{
if (mNextLevel > 0){
mNextLevel--;
};
if (mTrees.length <= 0){
trace("gameover");
Main.GetInstance().mState = Main.STATE_PAUSED;
mDialogCongrats = new CDialogCongrats();
addChild(mDialogCongrats);
return;
};
if ((((mWorms.length <= 0)) && ((mWaveManager == null)))){
nextlevel();
return;
};
if (mNextLevel <= 0){
nextlevel();
};
}
public function nextlevel():void{
Main.GetInstance().mOptionBar.PlaySFX("trumpet");
Data.DWave[(mLevel % Data.DWave.length)].level.diff = (Data.DWave[(mLevel % Data.DWave.length)].level.diff + 1);
Data.DWave[(mLevel % Data.DWave.length)].level.nextlevel = (Data.DWave[(mLevel % Data.DWave.length)].level.nextlevel + int(((mLevel / 5) * 40)));
mLevel = (mLevel + 1);
loadLevel((mLevel % Data.DWave.length));
}
public function RemoveDispatcher(){
Main.GetInstance().removeEventListener("update", Update);
removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove, false);
removeEventListener(MouseEvent.MOUSE_UP, onMouseUp, false);
removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, false);
}
public function NoTut(){
var _local1:int;
var _local2:CPohon;
var _local3:int;
var _local4:CEnemy;
var _local5:CTurret;
if (mTutWin.parent){
mTutWin.parent.removeChild(mTutWin);
};
if (mTutFlag < 3){
mApples[0].AddDispatcher();
mBuildList.push("repair1");
mBuildList.push("pohon");
};
if (mTutFlag < 5){
mWaveManager.AddDispatcher();
};
_local1 = 1;
while (_local1 < mTrees.length) {
_local2 = mTrees[_local1];
_local3 = mTrees.indexOf(_local2);
if (_local3 > -1){
if (_local2 == mActiveUnit){
setActiveUnit(this);
};
if (_local2.haveApple()){
killApple(_local2.getApple());
};
_local2.RemoveDispatcher();
_local2.parent.removeChild(_local2);
mTrees[_local3] = null;
IncreaseTree(-1);
Data.DTree.count = mTrees.length;
};
_local1++;
};
mTrees.splice(1, (mTrees.length - 1));
_local1 = 0;
while (_local1 < mWorms.length) {
_local4 = mWorms[_local1];
_local3 = mWorms.indexOf(_local4);
if (_local3 > -1){
if (_local4 == mActiveUnit){
setActiveUnit(this);
};
if (_local4.haveApple()){
killApple(_local4.getChildAt(2));
};
_local4.RemoveDispatcher();
_local4.parent.removeChild(_local4);
_local4 = null;
mWorms[_local3] = null;
};
_local1++;
};
mWorms.splice(0, mWorms.length);
_local1 = 0;
while (_local1 < mTurrets.length) {
_local5 = mTurrets[_local1];
_local3 = mTurrets.indexOf(_local5);
if (_local3 > -1){
if (_local5 == mActiveUnit){
setActiveUnit(this);
};
_local5.RemoveDispatcher();
mTurrets[_local3].RemoveDispatcher();
removeChild(mTurrets[_local3]);
mTurrets[_local3] = null;
_local5 = null;
};
_local1++;
};
mTurrets.splice(0, mTurrets.length);
if (mTutFlag <= 1){
mLevel = 0;
} else {
mLevel = -1;
};
MemoryCrypto.setValue(Main.GetInstance().mHeroData.money, Data.DHeroDefault.money);
MemoryCrypto.setValue(Main.GetInstance().mHeroData.score, 0);
IncreaseMoney(0);
IncreaseScore(0);
mTrees[0].ResetRipeAppel();
setPanel(mBuildList, "build", this);
mTutFlag = 0;
}
public function IncreaseWorms(_arg1:int){
}
public function killApple(_arg1:CApel){
var _local2:int;
_local2 = mApples.indexOf(_arg1);
if (_local2 > -1){
_arg1.RemoveDispatcher();
_arg1.parent.removeChild(_arg1);
mApples[_local2] = null;
mApples.splice(_local2, 1);
};
}
public function setPanel(_arg1:Array, _arg2:String, _arg3:Object, _arg4:Boolean=true){
var _local5:int;
if (_arg4){
mPanel.removeAllIcon();
};
_local5 = 0;
while (_local5 < _arg1.length) {
mPanel.addIcon(_arg1[_local5], _arg2, _arg3);
_local5++;
};
}
public function PlayBloodSplat(_arg1:int, _arg2:int){
var _local3:MovieClip;
_local3 = new BloodSplat();
_local3.alpha = 0;
_local3.x = _arg1;
_local3.y = _arg2;
_local3.scaleX = 0.5;
_local3.scaleY = 0.5;
addChildAt(_local3, 1);
_local3.play();
Tweener.addTween(_local3, {time:0.8, alpha:1, scaleX:1.5, scaleY:1.5});
Tweener.addTween(_local3, {time:3.5, delay:0.8, alpha:0.9});
Tweener.addTween(_local3, {time:0.8, delay:4.4, alpha:0, onComplete:RemoveBloodSplat, onCompleteParams:[_local3]});
}
public function setHoverData(_arg1:Object){
if (_arg1){
if (_arg1 == "pohon"){
mPanel.setHoverData(("Apple Tree\nCost: " + Data.DTree.cost));
} else {
mPanel.setHoverData(Data.DHoverData[_arg1]);
};
} else {
mPanel.setHoverData("");
};
}
public function changeTurret(_arg1:CTurret, _arg2:int){
var _local3:int;
var _local4:int;
_local3 = mTurrets.indexOf(_arg1);
if (_local3 > -1){
removeChild(mTurrets[_local3]);
mTurrets[_local3].RemoveDispatcher();
mTurrets[_local3] = null;
mTurrets[_local3] = new CTurret(_arg2);
mTurrets[_local3].x = _arg1.x;
mTurrets[_local3].y = _arg1.y;
mTurrets[_local3].mIcon.gotoAndStop(_arg1.mIcon.currentFrame);
mTurrets[_local3].AddDispatcher();
_arg1 = null;
addChildAt(mTurrets[_local3], getChildIndex(mLayerTurret));
CGame.GetInstance().setActiveUnit(mTurrets[_local3]);
mTurrets.sortOn("y");
_local4 = 0;
while (_local4 < (mTurrets.length - 1)) {
if (mTurrets[_local4]){
if (mTurrets[_local4].parent){
mTurrets[_local4].parent.setChildIndex(mTurrets[_local4], (_local4 + 1));
};
};
_local4++;
};
};
}
private function Update(_arg1:Event){
var _local2:int;
if (mBossTextCounter > 0){
mBossTextCounter--;
if (mBossTextCounter == 0){
mBossText.visible = false;
mBossText.stop();
};
};
if (mRefreshCounter > 0){
mRefreshCounter--;
};
if (mRefreshCounter == 0){
refreshActiveData();
mRefreshCounter = mRefresh;
};
if ((mActiveUnit is CEnemy)){
mCrosshair.x = mActiveUnit.x;
mCrosshair.y = mActiveUnit.y;
};
mIndex = mWorms;
mIndex.sortOn("y");
_local2 = 0;
while (_local2 < mIndex.length) {
if (mIndex[_local2]){
if (mIndex[_local2].parent){
mIndex[_local2].parent.setChildIndex(mIndex[_local2], (_local2 + getChildIndex(mLayerWorm)));
};
};
_local2++;
};
if (mTutFlag <= 0){
isFinish();
};
}
private function onMouseMove(_arg1:MouseEvent):void{
var _local2:int;
if (mBuilding){
mBuilding.x = _arg1.stageX;
mBuilding.y = _arg1.stageY;
mBuilding.transform.colorTransform = EnableColor;
mBuildOK = true;
if (_arg1.stageY >= mPanel.y){
mBuilding.transform.colorTransform = UnableColor;
mBuildOK = false;
return;
};
if (ColDetection.isColliding(mBuilding, mPanel, this, true)){
mBuilding.transform.colorTransform = UnableColor;
mBuildOK = false;
return;
};
_local2 = 0;
while (_local2 < mWorms.length) {
if (ColDetection.isColliding(mBuilding, mWorms[_local2].mIcon, this, true)){
mBuilding.transform.colorTransform = UnableColor;
mBuildOK = false;
return;
};
_local2++;
};
_local2 = 0;
while (_local2 < mTrees.length) {
if (ColDetection.isColliding(mBuilding, mTrees[_local2].mPohon, this, true)){
mBuilding.transform.colorTransform = UnableColor;
mBuildOK = false;
return;
};
_local2++;
};
_local2 = 0;
while (_local2 < mTurrets.length) {
if (ColDetection.isColliding(mBuilding, mTurrets[_local2].mIcon, this, true)){
mBuilding.transform.colorTransform = UnableColor;
mBuildOK = false;
return;
};
_local2++;
};
};
}
public function refreshActiveData(){
var _local1:String;
if ((mActiveUnit is CGame)){
mPanel.setPanelData("");
} else {
if ((mActiveUnit is CTurret)){
_local1 = ((((((((Data.DTurret[mActiveUnit.mType].name + "\nHP: ") + Math.round(mActiveUnit.mHP)) + "/") + mActiveUnit.mMaxHP) + "\nDamage: ") + mActiveUnit.mDmg) + "\nROF: ") + (100 - mActiveUnit.mROF));
mPanel.setPanelData(_local1);
} else {
if ((mActiveUnit is CEnemy)){
_local1 = ((((("HP: " + int(mActiveUnit.mHP)) + "/") + mActiveUnit.mMaxHP) + "\nDamage: ") + mActiveUnit.mDmg);
mPanel.setPanelData(_local1);
} else {
if ((mActiveUnit is CPohon)){
_local1 = "";
if (mActiveUnit.haveApple()){
_local1 = ((((("Apple:" + int((mActiveUnit.getApple().mApel.scaleX * 100))) + "%") + "\nGrow Rate:") + int(((mActiveUnit.getApple().mGrowRate * 4000) / Data.DApel.growcounter))) + "%/sec");
mPanel.setPanelData(_local1);
} else {
mPanel.setPanelData("Dying");
};
};
};
};
};
}
public function IncreaseTree(_arg1:int){
mStatusBar.mTrees.text = (int(mStatusBar.mTrees.text) + _arg1);
}
private function onMouseUp(_arg1:MouseEvent):void{
var _local2:CPohon;
var _local3:CApel;
var _local4:CTurret;
var _local5:int;
if (((((mBuilding) && (mBuildOK))) && (mBuildDown))){
if ((mBuilding is CPohon)){
_local2 = new CPohon();
_local2.x = _arg1.stageX;
_local2.y = _arg1.stageY;
_local2.AddDispatcher();
addChildAt(_local2, getChildIndex(mLayerTree));
mTrees.push(_local2);
Data.DTree.count = mTrees.length;
Data.DTree.cost = (((Data.DTree.count * Data.DTree.count) + Math.pow(3, Data.DTree.count)) + 60);
_local3 = new CApel(_local2);
_local3.x = 0;
_local3.y = 0;
_local3.AddDispatcher();
_local2.addChild(_local3);
mApples.push(_local3);
IncreaseTree(1);
cancelBuild();
IncreaseMoney(-(mBuildCost));
} else {
if ((mBuilding is CTurret)){
_local4 = new CTurret(mBuilding.mType);
_local4.x = _arg1.stageX;
_local4.y = _arg1.stageY;
_local4.mIcon.gotoAndStop(mBuilding.mIcon.currentFrame);
_local4.AddDispatcher();
addChildAt(_local4, getChildIndex(mLayerTurret));
mTurrets.push(_local4);
mTurrets.sortOn("y");
_local5 = 0;
while (_local5 < (mTurrets.length - 1)) {
if (mTurrets[_local5]){
if (mTurrets[_local5].parent){
mTurrets[_local5].parent.setChildIndex(mTurrets[_local5], (_local5 + 1));
};
};
_local5++;
};
setActiveUnit(_local4);
cancelBuild();
IncreaseMoney(-(mBuildCost));
};
};
} else {
if (_arg1.target == this){
if (_arg1.stageY < mPanel.y){
setActiveUnit(this);
};
};
};
}
public function IncreaseScore(_arg1:int){
MemoryCrypto.incrementValue(Main.GetInstance().mHeroData.score, _arg1);
mStatusBar.mScore.text = MemoryCrypto.getValue(Main.GetInstance().mHeroData.score);
}
public function ProcessTut(_arg1:int){
mTutFlag = _arg1;
if (_arg1 == 3){
mApples[0].AddDispatcher();
mApples[0].mRipeCounter = 70;
mBuildList.push("repair1");
mBuildList.push("pohon");
setPanel(mBuildList, "build", this);
} else {
if (_arg1 == 5){
mWaveManager.AddDispatcher();
};
};
}
public function InitStatusBar(){
mStatusBar.mScore.text = MemoryCrypto.getValue(Main.GetInstance().mHeroData.score);
mStatusBar.mMoney.text = MemoryCrypto.getValue(Main.GetInstance().mHeroData.money);
mStatusBar.mTrees.text = mTrees.length;
mStatusBar.mLevels.text = mLevel;
}
public function addEnemy(_arg1:CEnemy){
addChildAt(_arg1, getChildIndex(mLayerWorm));
mWorms.push(_arg1);
}
public function Kill(){
while (mTrees.length > 0) {
killTree(mTrees[0]);
};
while (mWorms.length > 0) {
killWorm(mWorms[0]);
};
while (mApples.length > 0) {
killApple(mApples[0]);
};
while (mTurrets.length > 0) {
killTurret(mTurrets[0]);
};
killWaveManager();
Tweener.removeAllTweens();
RemoveDispatcher();
}
public function killWorm(_arg1:CEnemy){
var _local2:int;
_local2 = mWorms.indexOf(_arg1);
if (_local2 > -1){
if (_arg1 == mActiveUnit){
setActiveUnit(this);
};
_arg1.RemoveDispatcher();
_arg1.parent.removeChild(_arg1);
_arg1 = null;
mWorms[_local2] = null;
mWorms.splice(_local2, 1);
};
}
public function IncreaseMoney(_arg1:int){
MemoryCrypto.incrementValue(Main.GetInstance().mHeroData.money, _arg1);
mStatusBar.mMoney.text = MemoryCrypto.getValue(Main.GetInstance().mHeroData.money);
}
public function setActiveUnit(_arg1:Object){
if (mActiveUnit != _arg1){
mRadar.alpha = 0;
mCrosshair.alpha = 0;
mActiveUnit = _arg1;
if ((mActiveUnit is CGame)){
setPanel(mBuildList, "build", this);
} else {
if ((mActiveUnit is CTurret)){
setRadar(mRadar, mActiveUnit.x, mActiveUnit.y, mActiveUnit.mRadius);
setPanel(Data.DTUpgradeList[mActiveUnit.mType], "upgrade", mActiveUnit);
} else {
if ((mActiveUnit is CEnemy)){
setRadar(mCrosshair, mActiveUnit.x, mActiveUnit.y, 20, 1);
mPanel.removeAllIcon();
setPanel(mBuildList, "build", this, false);
} else {
if ((mActiveUnit is CPohon)){
mPanel.removeAllIcon();
setPanel(mBuildList, "build", this, false);
};
};
};
};
refreshActiveData();
};
}
private function onMouseDown(_arg1:MouseEvent):void{
if (((mBuilding) && (!(mBuildDown)))){
mBuildDown = true;
};
}
public function YesTut(){
mTutFlag = 1;
}
public function setRadar(_arg1:Object, _arg2:int, _arg3:int, _arg4:int, _arg5:Number=0.3){
_arg1.alpha = _arg5;
_arg1.x = _arg2;
_arg1.y = _arg3;
_arg1.width = (2 * _arg4);
_arg1.height = (2 * _arg4);
}
public function killTurret(_arg1:CTurret){
var _local2:int;
_local2 = mTurrets.indexOf(_arg1);
if (_local2 > -1){
if (_arg1 == mActiveUnit){
setActiveUnit(this);
};
_arg1.RemoveDispatcher();
mTurrets[_local2].RemoveDispatcher();
removeChild(mTurrets[_local2]);
mTurrets[_local2] = null;
_arg1 = null;
mTurrets.splice(_local2, 1);
};
}
public static function GetInstance():CGame{
return (CGameGlobal);
}
}
}//package
Section 72
//CHSNote (CHSNote)
package {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class CHSNote extends MovieClip {
public var mExit_btn:SimpleButton;
public function CHSNote(){
addFrameScript(0, frame1);
}
public function onExitUp(_arg1:MouseEvent):void{
this.parent.removeChild(this);
}
function frame1(){
stop();
if (!this.mExit_btn.hasEventListener(MouseEvent.MOUSE_UP)){
this.mExit_btn.addEventListener(MouseEvent.MOUSE_UP, onExitUp, false, 0, true);
};
}
}
}//package
Section 73
//CMainMenu (CMainMenu)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class CMainMenu extends MovieClip {
public var mGoreVerTxt:MovieClip;
public var mHS:SimpleButton;
public var mLBLink:SimpleButton;
public var mMore:SimpleButton;
public var mCredits:SimpleButton;
public var mGore:SimpleButton;
public var mNewGame:SimpleButton;
public var mNormal:SimpleButton;
public var mError:TextField;
public var mHowToPlay:SimpleButton;
public function CMainMenu(){
var _local1:Sprite;
super();
addFrameScript(0, frame1);
trace("init Main Menu");
if (Main.GetInstance().game.UseLogo()){
_local1 = Main.GetInstance().game.GetLogo(242, 92);
_local1.x = 384;
_local1.y = 397;
this.addChild(_local1);
};
if (Main.GetInstance().game.UseHighScores()){
mHS.addEventListener(MouseEvent.MOUSE_UP, ShowHS, false, 0, true);
} else {
mHS.parent.removeChild(mHS);
};
}
public function AddDispatcher():void{
mNewGame.addEventListener(MouseEvent.MOUSE_UP, ShowGame, false, 0, true);
mHowToPlay.addEventListener(MouseEvent.MOUSE_UP, HTP, false, 0, true);
mMore.addEventListener(MouseEvent.MOUSE_UP, OpenURL, false, 0, true);
mCredits.addEventListener(MouseEvent.MOUSE_UP, ShowCredit, false, 0, true);
if (mNormal){
mNormal.addEventListener(MouseEvent.MOUSE_UP, ShowNormalVersion, false, 0, true);
mGoreVerTxt.visible = true;
};
if (mGore){
mGoreVerTxt.visible = false;
mGore.addEventListener(MouseEvent.MOUSE_UP, ShowGoreVersion, false, 0, true);
};
}
public function RemoveDispatcher(){
}
private function ShowCredit(_arg1:MouseEvent):void{
Main.GetInstance().mOptionBar.visible = false;
addChild(new Credits());
}
function frame1(){
mLBLink.addEventListener(MouseEvent.CLICK, OpenLBSite);
}
private function OpenURL(_arg1:MouseEvent):void{
Main.GetInstance().game.MoreGames();
}
private function ShowGame(_arg1:MouseEvent){
Main.GetInstance().InitGame();
}
public function OpenLBSite(_arg1:MouseEvent){
Global.openWindow();
}
private function ShowNormalVersion(_arg1:MouseEvent):void{
Global.openWindow("http://www.bigfuntown.com/AppleDefender.html", "_self");
}
private function ShowGoreVersion(_arg1:MouseEvent):void{
mError.text = (mError.text + Global.openWindow("http://www.bigfuntown.com/AppleDefenderGore.html", "_blank"));
}
public function HTP(_arg1:MouseEvent){
Main.GetInstance().ShowHowToPlay();
}
private function ShowHS(_arg1:MouseEvent):void{
Main.GetInstance().game.HighScores();
}
}
}//package
Section 74
//CMainPanel (CMainPanel)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class CMainPanel extends MovieClip {
public var ket1:TextField;
public var ket2:TextField;
public var ket2Container:MovieClip;
public var mIcons:Array;
public var mMessage:TextField;
public function CMainPanel(){
mIcons = new Array();
mouseEnabled = false;
ket1.mouseEnabled = false;
ket2.mouseEnabled = false;
ket2Container.mouseEnabled = false;
ket2.alpha = 0;
ket2Container.alpha = 0;
mMessage.alpha = 0;
}
public function setMessageAlpha(_arg1:TimerEvent, _arg2:Number=0){
mMessage.alpha = _arg2;
CGame.GetInstance().mTimer.stop();
CGame.GetInstance().mTimer.reset();
}
public function blink(_arg1:TimerEvent){
trace("blink");
if ((CGame.GetInstance().mTimer.currentCount % 3) == 0){
mMessage.alpha = 0;
} else {
mMessage.alpha = 1;
};
}
public function a(_arg1:MouseEvent){
CGame.GetInstance().build(_arg1.currentTarget.type, _arg1.currentTarget.command, _arg1.currentTarget.owner, _arg1.stageX, _arg1.stageY);
}
public function removeAllIcon(){
while (mIcons.length > 0) {
CGame.GetInstance().removeChild(mIcons[0]);
mIcons[0] = null;
mIcons.splice(0, 1);
};
}
public function setPanelData(_arg1:Object){
ket1.text = _arg1;
}
public function addIcon(_arg1:String, _arg2:String, _arg3:Object){
var btn:MovieClip;
var i:MovieClip;
var n:int;
var type = _arg1;
var command = _arg2;
var owner = _arg3;
btn = new Buttons();
i = btn.getChildByName(type);
i.stop();
i.x = (((mIcons.length * 50) + 40) + x);
i.y = (25 + y);
i.command = command;
i.owner = owner;
i.type = type;
n = mIcons.length;
i.addEventListener(MouseEvent.MOUSE_DOWN, a, false, 0, true);
i.addEventListener(MouseEvent.MOUSE_OVER, function (_arg1:MouseEvent){
CGame.GetInstance().setHoverData(type);
_arg1.currentTarget.nextFrame();
});
i.addEventListener(MouseEvent.MOUSE_OUT, function (_arg1:MouseEvent){
CGame.GetInstance().setHoverData(null);
_arg1.currentTarget.gotoAndStop(0);
});
CGame.GetInstance().addChild(i);
mIcons.push(i);
}
public function setHoverData(_arg1:Object){
if (_arg1 == ""){
ket2Container.alpha = 0;
ket2.alpha = 0;
} else {
ket2.alpha = 1;
ket2Container.alpha = 0.6;
ket2.text = _arg1;
};
}
}
}//package
Section 75
//COptionBar (COptionBar)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
public class COptionBar extends MovieClip {
public var mSFX:MovieClip;
private var mSfxChannel:SoundChannel;
private var mBgm:Sound;
private var mPopUpTimer:Timer;
private var mBgmFlag:Boolean;
public var mPopUp:MovieClip;
private var mSfxFlag:Boolean;// = true
private var mBgmChannel:SoundChannel;
public var mMusic:MovieClip;
public var mQuality:MovieClip;
private var mBgmVol:Number;// = 1
public static var Global:COptionBar;
public function COptionBar(_arg1:int=0, _arg2:int=0, _arg3:String=null, _arg4:Number=1){
var _local5:Class;
mSfxFlag = true;
mBgmVol = 1;
mPopUpTimer = new Timer(2500, 1);
super();
Global = this;
mBgmVol = _arg4;
this.x = _arg1;
this.y = _arg2;
_local5 = (getDefinitionByName(_arg3) as Class);
mBgm = new (_local5);
mPopUp.mouseEnabled = false;
mMusic.buttonMode = true;
mMusic.useHandCursor = true;
mSFX.buttonMode = true;
mSFX.useHandCursor = true;
mQuality.buttonMode = true;
mQuality.useHandCursor = true;
mMusic.addEventListener(MouseEvent.MOUSE_OVER, MusicOver, false, 0, true);
mMusic.addEventListener(MouseEvent.MOUSE_OUT, MusicOut, false, 0, true);
mMusic.addEventListener(MouseEvent.MOUSE_UP, ToggleMusic, false, 0, true);
mSFX.addEventListener(MouseEvent.MOUSE_OVER, SFXOver, false, 0, true);
mSFX.addEventListener(MouseEvent.MOUSE_OUT, SFXOut, false, 0, true);
mSFX.addEventListener(MouseEvent.MOUSE_UP, ToggleSFX, false, 0, true);
mQuality.addEventListener(MouseEvent.MOUSE_OVER, QualityOver, false, 0, true);
mQuality.addEventListener(MouseEvent.MOUSE_OUT, QualityOut, false, 0, true);
mQuality.addEventListener(MouseEvent.MOUSE_UP, ToggleQuality, false, 0, true);
mPopUpTimer.addEventListener(TimerEvent.TIMER, KillPopUp, false, 0, true);
if (((mBgm) && (!((Main.GetInstance().mState == Main.STATE_PRELOADER))))){
StartBGM();
};
MusicOut(null);
SFXOut(null);
}
private function MusicOut(_arg1:MouseEvent):void{
if (!mBgmFlag){
mMusic.gotoAndStop(2);
} else {
mMusic.gotoAndStop(1);
};
HidePopUp();
}
public function ToggleQuality(_arg1:MouseEvent=null):void{
switch (Main.GetInstance().stage.quality){
case "LOW":
Main.GetInstance().stage.quality = StageQuality.MEDIUM;
break;
case "MEDIUM":
Main.GetInstance().stage.quality = StageQuality.HIGH;
break;
case "HIGH":
Main.GetInstance().stage.quality = StageQuality.BEST;
break;
case "BEST":
Main.GetInstance().stage.quality = StageQuality.LOW;
break;
};
if (_arg1){
ShowPopUp((("Quality: " + Main.GetInstance().stage.quality) + " (B)"), false);
} else {
ShowPopUp((("Quality: " + Main.GetInstance().stage.quality) + " (B)"), true);
};
}
public function ChangeBGM(_arg1:Sound){
if (!_arg1){
return;
};
mBgm = _arg1;
StartBGM();
}
public function ToggleMusic(_arg1:MouseEvent=null):void{
if (Main.GetInstance().mState == Main.STATE_PRELOADER){
return;
};
if (((mBgmFlag) && (mBgmChannel))){
mBgmFlag = false;
mBgmChannel.stop();
} else {
StartBGM();
};
if (_arg1 != null){
MusicOver(null);
} else {
MusicOut(null);
};
}
private function StartBGM(){
var _local1:SoundTransform;
if (!mBgm){
return;
};
mBgmFlag = true;
_local1 = new SoundTransform(mBgmVol, 0);
mBgmChannel = mBgm.play(0, 999, _local1);
MusicOut(null);
}
public function ToggleSFX(_arg1:MouseEvent=null):void{
if (Main.GetInstance().mState == Main.STATE_PRELOADER){
return;
};
if (mSfxFlag){
mSfxFlag = false;
} else {
mSfxFlag = true;
};
if (_arg1 != null){
SFXOver(null);
} else {
SFXOut(null);
};
}
private function QualityOver(_arg1:MouseEvent):void{
mQuality.gotoAndStop(2);
ShowPopUp((("Quality: " + Main.GetInstance().stage.quality) + " (B)"));
}
private function HidePopUp(){
mPopUp.alpha = 0;
}
public function PlaySFX(_arg1:String, _arg2:Number=1){
var _local3:Class;
var _local4:Sound;
var _local5:SoundTransform;
if (!mSfxFlag){
return;
};
_local3 = (getDefinitionByName(_arg1) as Class);
_local4 = new (_local3);
_local5 = new SoundTransform(_arg2, 0);
mSfxChannel = _local4.play(0, 1, _local5);
}
private function MusicOver(_arg1:MouseEvent):void{
if (!mBgmFlag){
mMusic.gotoAndStop(4);
} else {
mMusic.gotoAndStop(3);
};
ShowPopUp("Toggle Music (M)");
}
private function SFXOut(_arg1:MouseEvent):void{
if (!mSfxFlag){
mSFX.gotoAndStop(2);
} else {
mSFX.gotoAndStop(1);
};
HidePopUp();
}
private function ShowPopUp(_arg1:String, _arg2:Boolean=false){
if ((this.y - 50) <= 0){
mPopUp.y = 40;
} else {
mPopUp.y = -30;
};
mPopUp.alpha = 1;
mPopUp.mText.text = _arg1;
if (_arg2){
trace("timer on");
mPopUpTimer.start();
};
}
private function SFXOver(_arg1:MouseEvent):void{
if (!mSfxFlag){
mSFX.gotoAndStop(4);
} else {
mSFX.gotoAndStop(3);
};
ShowPopUp("Toggle SFX (N)");
}
public function ChangeBGMVol(_arg1:Number){
mBgmVol = _arg1;
mBgmChannel.soundTransform = new SoundTransform(mBgmVol, 0);
}
private function KillPopUp(_arg1:TimerEvent):void{
trace("KILL POP UP");
mPopUp.alpha = 0;
mPopUpTimer.reset();
}
private function QualityOut(_arg1:MouseEvent):void{
mQuality.gotoAndStop(1);
HidePopUp();
}
}
}//package
Section 76
//CPohon (CPohon)
package {
import flash.events.*;
import flash.display.*;
public class CPohon extends MovieClip {
public var mPohon:MovieClip;
public function CPohon(){
var _local1:PohonApel;
super();
_local1 = new PohonApel();
mPohon = _local1.getChildByName("pohon");
addChild(mPohon);
mPohon.x = 0;
mPohon.y = 0;
}
public function AddDispatcher(_arg1:String="update"):void{
Main.GetInstance().addEventListener(_arg1, Update, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, onMouseUp, false, 0, true);
}
public function ResetRipeAppel(){
if (haveApple()){
getApple().ResetRipeApple();
};
}
private function onMouseUp(_arg1:MouseEvent):void{
if (CGame.GetInstance().mTutFlag <= 0){
CGame.GetInstance().setActiveUnit(this);
};
}
public function RemoveDispatcher(_arg1:String="update"){
Main.GetInstance().removeEventListener(_arg1, Update);
removeEventListener(MouseEvent.MOUSE_UP, onMouseUp, false);
}
public function increaseGrow(_arg1:Number){
if (haveApple()){
getApple().grow(_arg1);
};
}
public function getApple():CApel{
return (getChildAt(1));
}
public function Kill(){
this.parent.killTree(this);
}
public function haveRipeApple():Boolean{
if (haveApple()){
return (getApple().isRipe2());
};
}
public function haveApple():Boolean{
return ((numChildren == 2));
}
private function Update(_arg1:Event):void{
}
}
}//package
Section 77
//Credits (Credits)
package {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class Credits extends MovieClip {
public var mLink2:SimpleButton;
public var mLink:SimpleButton;
public var mExit_btn:SimpleButton;
public function Credits(){
addFrameScript(0, frame1);
}
public function gotoLBSite(_arg1:MouseEvent):void{
Global.openWindow();
}
public function onExitUp(_arg1:MouseEvent):void{
this.parent.removeChild(this);
Main.GetInstance().mOptionBar.visible = true;
}
function frame1(){
stop();
if (!this.mExit_btn.hasEventListener(MouseEvent.MOUSE_UP)){
this.mExit_btn.addEventListener(MouseEvent.MOUSE_UP, onExitUp, false, 0, true);
};
if (!this.mLink.hasEventListener(MouseEvent.MOUSE_UP)){
this.mLink.addEventListener(MouseEvent.MOUSE_UP, gotoLBSite, false, 0, true);
};
if (!this.mLink2.hasEventListener(MouseEvent.MOUSE_UP)){
this.mLink2.addEventListener(MouseEvent.MOUSE_UP, gotoLBSite, false, 0, true);
};
}
}
}//package
Section 78
//CTurret (CTurret)
package {
import flash.events.*;
import caurina.transitions.*;
import flash.geom.*;
import flash.display.*;
import de.polygonal.math.*;
public class CTurret extends MovieClip {
public var mRotateSpeed:Number;
public var mROF:int;
public var mHP:Number;
public var mType:int;
public var mRadius:int;
public var mDmg:Number;
public var mROFCounter:int;
public var mAngle:Number;
public var mTarget:Object;
public var mIcon:MovieClip;
public var mHPBar:MovieClip;
public var mBulletType:int;
public var mBomCT:int;
public var mMaxHP:int;
public function CTurret(_arg1:int){
var _local2:MovieClip;
super();
mType = _arg1;
_local2 = new Turrets();
mIcon = _local2.getChildByName(("turret" + mType));
mIcon.x = 0;
mIcon.y = 0;
mIcon.stop();
addChild(mIcon);
mDmg = Data.DTurret[mType].dmg;
mMaxHP = Data.DTurret[mType].hp;
mHP = Data.DTurret[mType].hp;
mRotateSpeed = Data.DTurret[mType].rotatespeed;
mRadius = Data.DTurret[mType].radius;
mROF = Data.DTurret[mType].rof;
mROFCounter = 0;
mBulletType = Data.DTurret[mType].bullettype;
mHPBar = new HPBar();
mHPBar.stop();
addChild(mHPBar);
mHPBar.x = 0;
mHPBar.y = (-(mIcon.height) / 2);
mHPBar.scaleX = (mIcon.width / mHPBar.width);
mHPBar.scaleY = (5 / mHPBar.height);
mHPBar.gotoAndStop(((mHP / mMaxHP) * 100));
mHPBar.alpha = 0;
mTarget = null;
mAngle = -90;
if ((((((((mType == Data.DRUM_NUCLEAR)) || ((mType == Data.DRUM_ICE)))) || ((mType == Data.DRUM_WAVE)))) || ((mType == Data.DRUM_FIRE)))){
mBomCT = 200;
} else {
mBomCT = -1;
};
}
private function onMouseOver(_arg1:MouseEvent):void{
}
public function AddDispatcher(_arg1:String="update"):void{
Main.GetInstance().addEventListener(_arg1, Update, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, onMouseUp, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut, false, 0, true);
}
public function upgrade(_arg1:String="smg"){
CGame.GetInstance().changeTurret(this, Data.DTUpgrade[_arg1]);
}
private function onMouseUp(_arg1:MouseEvent):void{
mHPBar.alpha = 1;
CGame.GetInstance().setActiveUnit(this);
}
public function Fire(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:CBullet;
var _local6:Number;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:CBullet;
if ((((((((((mBulletType == Data.BULLET_NONE)) || ((mType == Data.DRUM_NUCLEAR)))) || ((mType == Data.DRUM_ICE)))) || ((mType == Data.DRUM_WAVE)))) || ((mType == Data.DRUM_FIRE)))){
return;
};
if (mType == Data.TURRET_CLUSTERBOMB){
_local3 = ((Math.cos(Global.DegToRad(mAngle)) * mRadius) * PM_PRNG.nextDoubleRange(0.3, 1));
_local4 = ((Math.sin(Global.DegToRad(mAngle)) * mRadius) * PM_PRNG.nextDoubleRange(0.3, 1));
_local5 = new CBullet(mBulletType, this);
_local5.x = x;
_local5.y = y;
_local5.mDmg = mDmg;
_local5.rotation = mAngle;
CGame.GetInstance().addChildAt(_local5, (CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTree) + 1));
Tweener.addTween(_local5, {transition:"easeout", x:(x + _local3), y:(y + _local4), time:2, onComplete:_local5.AddDispatcher});
mROFCounter = mROF;
return;
};
if (mType == Data.TURRET_BLIZZARD){
_local6 = PM_PRNG.nextIntRange(0, 360);
_local3 = (x + ((Math.cos(Global.DegToRad(_local6)) * mRadius) * PM_PRNG.nextDoubleRange(0.2, 1)));
_local4 = (y + ((Math.sin(Global.DegToRad(_local6)) * mRadius) * PM_PRNG.nextDoubleRange(0.2, 1)));
_local5 = new CBullet(mBulletType, this);
_local5.x = (_local3 + PM_PRNG.nextIntRange(-15, 15));
_local5.y = (_local4 - PM_PRNG.nextIntRange(25, 50));
_local5.mDmg = mDmg;
_local5.mRadius = mRadius;
_local5.rotation = mAngle;
CGame.GetInstance().addChildAt(_local5, (CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTree) + 1));
Tweener.addTween(_local5, {transition:"easein", x:_local3, y:_local4, time:2, onComplete:_local5.AddDispatcher});
mROFCounter = mROF;
return;
};
if (mType == Data.TURRET_BLADEGUN){
_local6 = 0;
_local3 = (x + (Math.cos(Global.DegToRad(_local6)) * mRadius));
_local4 = (y + ((Math.sin(Global.DegToRad(_local6)) * mRadius) / 2));
_local5 = new CBullet(mBulletType, this);
_local5.x = x;
_local5.y = y;
_local5.mDmg = mDmg;
_local5.mRadius = mRadius;
_local5.rotation = 0;
_local5.mTarget = new Object();
_local5.mTarget.x = x;
_local5.mTarget.y = y;
_local5.mTarget.angle = _local6;
_local5.mTarget.counter = Data.DBullet[mBulletType].counter;
CGame.GetInstance().addChild(_local5);
Tweener.addTween(_local5, {rotation:180, transition:"linear", x:_local3, y:_local4, time:0.3, onComplete:_local5.AddDispatcher});
mROFCounter = mROF;
return;
};
if ((((mBulletType == Data.BULLET_LIGHTNING)) || ((mBulletType == Data.BULLET_METEOR)))){
_local7 = PM_PRNG.nextIntRange(2, 4);
_local8 = 0;
while (_local8 < _local7) {
_local5 = new CBullet(mBulletType, this);
_local9 = PM_PRNG.nextIntRange(30, mRadius);
_local3 = (Math.cos((Global.DegToRad(((_local8 * 360) / _local7)) + PM_PRNG.nextIntRange(0, 10))) * _local9);
_local4 = (Math.sin((Global.DegToRad(((_local8 * 360) / _local7)) + PM_PRNG.nextIntRange(0, 10))) * _local9);
_local5.x = (x + _local3);
_local5.y = ((y - (_local5.mIcon.width / 2)) + _local4);
_local5.mDmg = mDmg;
_local5.AddDispatcher();
CGame.GetInstance().addChildAt(_local5, (CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTree) + 1));
mROFCounter = mROF;
_local8++;
};
return;
};
if (mBulletType == Data.BULLET_GRENADE){
_local3 = ((Math.cos(Global.DegToRad(mAngle)) * mRadius) * PM_PRNG.nextDoubleRange(0.3, 1));
_local4 = ((Math.sin(Global.DegToRad(mAngle)) * mRadius) * PM_PRNG.nextDoubleRange(0.3, 1));
_local5 = new CBullet(mBulletType, this);
_local5.x = x;
_local5.y = y;
_local5.mDmg = mDmg;
_local5.rotation = mAngle;
_local5.AddDispatcher();
CGame.GetInstance().addChildAt(_local5, (CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTree) + 1));
Tweener.addTween(_local5, {transition:"easeoutbounce", x:(x + _local3), y:(y + _local4), time:2, onComplete:_local5.Explode});
mROFCounter = mROF;
return;
};
if ((((mBulletType == Data.BULLET_GROWTH)) || ((mBulletType == Data.BULLET_REPAIR)))){
_local5 = new CBullet(mBulletType, this);
_local5.x = x;
_local5.y = y;
_local5.mDmg = mDmg;
_local5.AddDispatcher();
CGame.GetInstance().addChildAt(_local5, (CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTree) + 1));
Tweener.addTween(_local5, {transition:"easeoutquad", width:(mRadius * 2), height:(mRadius * 2), alpha:0, time:3, onComplete:_local5.KillMe});
mROFCounter = mROF;
Main.GetInstance().mOptionBar.PlaySFX(Data.DTurret[mType].sfx);
return;
};
if ((((((mType == Data.TURRET_FIRECATAPULT)) || ((mType == Data.TURRET_TOMAHAWKLAUNCHER)))) || ((mType == Data.TURRET_SNRGUN)))){
_local5 = new CBullet(mBulletType, this);
_local5.x = x;
_local5.y = y;
_local5.mDmg = mDmg;
_local5.rotation = mAngle;
_local5.calculateDxDy();
_local5.AddDispatcher();
CGame.GetInstance().addChildAt(_local5, (CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTree) + 1));
mROFCounter = mROF;
return;
};
if (mType == Data.TURRET_SPLITSHURIKEN){
_local8 = 0;
while (_local8 <= 7) {
_local5 = new CBullet(mBulletType, this);
_local5.x = x;
_local5.y = y;
_local5.rotation = (_local8 * 45);
_local5.mDmg = mDmg;
_local5.calculateDxDy();
_local5.AddDispatcher();
CGame.GetInstance().addChildAt(_local5, CGame.GetInstance().getChildIndex(this));
_local8++;
};
mROFCounter = mROF;
return;
};
_local1 = Global.AngleOfTwoDots(mTarget.x, mTarget.y, x, y);
_local1 = Global.RadToDeg(_local1);
mAngle = (mAngle % 360);
if (mAngle < 0){
mAngle = (mAngle + 360);
};
_local1 = (_local1 % 360);
if (_local1 < 0){
_local1 = (_local1 + 360);
};
_local2 = (mAngle - _local1);
if (Math.abs(_local2) < 10){
if (mType == Data.TURRET_MACHINEGUN){
_local3 = (Math.cos(Global.DegToRad((mAngle + 30))) * 30);
_local4 = (Math.sin(Global.DegToRad((mAngle + 30))) * 30);
_local5 = new CBullet(mBulletType, this);
_local5.x = (x + _local3);
_local5.y = (y + _local4);
_local5.rotation = mAngle;
_local5.mDmg = mDmg;
_local5.calculateDxDy();
_local5.AddDispatcher();
CGame.GetInstance().addChildAt(_local5, CGame.GetInstance().getChildIndex(this));
_local3 = (Math.cos(Global.DegToRad((mAngle - 30))) * 30);
_local4 = (Math.sin(Global.DegToRad((mAngle - 30))) * 30);
_local10 = new CBullet(mBulletType, this);
_local10.x = (x + _local3);
_local10.y = (y + _local4);
_local10.rotation = mAngle;
_local10.mDmg = mDmg;
_local10.calculateDxDy();
_local10.AddDispatcher();
CGame.GetInstance().addChildAt(_local10, CGame.GetInstance().getChildIndex(this));
} else {
if ((((mType == Data.TURRET_ROCKETSHOTGUN)) || ((mType == Data.TURRET_SHOTGUN)))){
_local8 = -1;
while (_local8 <= 1) {
_local5 = new CBullet(mBulletType, this);
_local5.x = x;
_local5.y = y;
_local5.rotation = (mAngle + (_local8 * PM_PRNG.nextIntRange(5, 15)));
_local5.mDmg = mDmg;
_local5.calculateDxDy();
_local5.AddDispatcher();
CGame.GetInstance().addChildAt(_local5, CGame.GetInstance().getChildIndex(this));
_local8++;
};
} else {
_local5 = new CBullet(mBulletType, this);
_local5.x = x;
_local5.y = y;
if ((((mType == Data.TURRET_ROCKETLAUNCHER)) || ((mType == Data.TURRET_CHAINLIGHTNING)))){
_local5.mTarget = mTarget;
};
if (mBulletType == Data.BULLET_STONE){
_local5.mTarget = new Point(mTarget.x, mTarget.y);
_local5.mDist = Global.Distance(_local5.x, _local5.y, mTarget.x, mTarget.y);
_local5.mSpeed = ((_local5.mDist / 500) * Data.DBullet[_local5.mType].speed);
};
_local5.rotation = mAngle;
_local5.mDmg = mDmg;
_local5.calculateDxDy();
_local5.AddDispatcher();
CGame.GetInstance().addChildAt(_local5, CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTurret));
};
};
if (Data.DTurret[mType].sfx){
Main.GetInstance().mOptionBar.PlaySFX(Data.DTurret[mType].sfx);
};
};
mROFCounter = mROF;
}
public function RemoveDispatcher(_arg1:String="update"){
Main.GetInstance().removeEventListener(_arg1, Update);
removeEventListener(MouseEvent.MOUSE_UP, onMouseUp, false);
removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver, false);
removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut, false);
}
private function onMouseOut(_arg1:MouseEvent):void{
if (mHP == mMaxHP){
mHPBar.alpha = 0;
};
}
public function findTarget(){
var _local1:int;
var _local2:Number;
mTarget = null;
_local1 = 0;
while (_local1 < CGame.GetInstance().mWorms.length) {
_local2 = Global.Distance(x, y, CGame.GetInstance().mWorms[_local1].x, CGame.GetInstance().mWorms[_local1].y);
if (_local2 <= mRadius){
mTarget = CGame.GetInstance().mWorms[_local1];
return;
};
_local1++;
};
}
public function Kill(){
var _local1:Array;
var _local2:int;
var _local3:MovieClip;
var _local4:Number;
var _local5:Number;
var _local6:int;
var _local7:Number;
var _local8:Number;
if ((((((((mType == Data.DRUM_NUCLEAR)) || ((mType == Data.DRUM_ICE)))) || ((mType == Data.DRUM_WAVE)))) || ((mType == Data.DRUM_FIRE)))){
_local1 = new Array(0, 90, 180, 270);
if (mType == Data.DRUM_WAVE){
_local2 = 0;
while (_local2 < 4) {
_local3 = new Bullets().getChildByName(("bullet" + mBulletType));
_local3.x = x;
_local3.y = y;
_local3.rotation = (_local1[_local2] + 90);
_local3.mouseEnabled = false;
_local4 = (x + (Math.cos(Global.DegToRad(_local1[_local2])) * mRadius));
_local5 = (y + (Math.sin(Global.DegToRad(_local1[_local2])) * mRadius));
CGame.GetInstance().addChildAt(_local3, CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTree));
Tweener.addTween(_local3, {transition:"linear", x:_local4, y:_local5, alpha:0, time:0.5, onComplete:CGame.GetInstance().removeChild, onCompleteParams:[_local3]});
_local2++;
};
} else {
_local2 = 0;
while (_local2 < 10) {
if (mType == Data.DRUM_NUCLEAR){
_local3 = new Particles().getChildByName("ledakan");
} else {
if (mType == Data.DRUM_ICE){
_local3 = new Bullets().getChildByName(("bullet" + Data.BULLET_FROZEN));
} else {
if (mType == Data.DRUM_FIRE){
_local3 = new Bullets().getChildByName(("bullet" + Data.BULLET_METEOR));
};
};
};
_local6 = PM_PRNG.nextIntRange(0, 2);
_local7 = PM_PRNG.nextDoubleRange(0.3, 1);
_local3.x = x;
_local3.y = y;
_local4 = PM_PRNG.nextIntRange((x - width), (x + width));
_local5 = PM_PRNG.nextIntRange((y - height), (y + height));
_local3.width = 0;
_local3.height = 0;
_local3.mouseEnabled = false;
CGame.GetInstance().addChildAt(_local3, CGame.GetInstance().getChildIndex(CGame.GetInstance().mLayerTree));
Tweener.addTween(_local3, {transition:"easein", x:_local4, y:_local5, width:(Data.DBullet[mBulletType].aoe * _local7), height:(Data.DBullet[mBulletType].aoe * _local7), alpha:0, time:(1 + _local6), onComplete:CGame.GetInstance().removeChild, onCompleteParams:[_local3]});
_local2++;
};
};
if (CGame.GetInstance().mWorms){
_local2 = 0;
while (_local2 < CGame.GetInstance().mWorms.length) {
_local8 = Global.Distance(x, y, CGame.GetInstance().mWorms[_local2].x, CGame.GetInstance().mWorms[_local2].y);
if (_local8 <= mRadius){
if (mType == Data.DRUM_ICE){
CGame.GetInstance().mWorms[_local2].setStatus(CEnemy.FREEZED, 0.3, 5);
};
CGame.GetInstance().mWorms[_local2].increaseHP(-(mDmg));
};
_local2++;
};
};
};
CGame.GetInstance().killTurret(this);
}
public function increaseHP(_arg1:Number){
mHP = (mHP + _arg1);
if (mHP > mMaxHP){
mHP = mMaxHP;
};
if (mHP < mMaxHP){
mHPBar.alpha = 1;
};
mHPBar.gotoAndStop(int(((Math.round(mHP) / mMaxHP) * 100)));
if (mHP <= 0){
Kill();
};
}
private function Update(_arg1:Event){
var _local2:Number;
var _local3:Number;
var _local4:Number;
if (mBomCT > 0){
mBomCT--;
if ((mBomCT % 40) == 0){
CGame.GetInstance().munculTulisan(Math.floor((mBomCT / 40)), this.x, (this.y - 20), false, 30, 1, 1.3);
};
} else {
if (mBomCT == 0){
Kill();
mBomCT--;
};
};
if ((CGame.GetInstance().mActiveUnit is CEnemy)){
if (Global.Distance(x, y, CGame.GetInstance().mActiveUnit.x, CGame.GetInstance().mActiveUnit.y) <= mRadius){
mTarget = CGame.GetInstance().mActiveUnit;
};
};
if ((((((((((mBulletType == Data.BULLET_NONE)) || ((mType == Data.DRUM_NUCLEAR)))) || ((mType == Data.DRUM_ICE)))) || ((mType == Data.DRUM_WAVE)))) || ((mType == Data.DRUM_FIRE)))){
return;
};
if ((((((((((((((((mBulletType == Data.BULLET_GROWTH)) || ((mBulletType == Data.BULLET_REPAIR)))) || ((mBulletType == Data.BULLET_LIGHTNING)))) || ((mBulletType == Data.BULLET_METEOR)))) || ((mType == Data.TURRET_TOMAHAWKLAUNCHER)))) || ((mType == Data.TURRET_BLIZZARD)))) || ((mType == Data.TURRET_BLADEGUN)))) || ((mType == Data.TURRET_SPLITSHURIKEN)))){
if (mROFCounter > 0){
mROFCounter--;
};
if (mROFCounter == 0){
Fire();
};
return;
};
if ((((((((mType == Data.TURRET_GRENADELAUNCHER)) || ((mType == Data.TURRET_FIRECATAPULT)))) || ((mType == Data.TURRET_CLUSTERBOMB)))) || ((mType == Data.TURRET_SNRGUN)))){
mIcon.mGerak.rotation = (mIcon.mGerak.rotation + mRotateSpeed);
mAngle = (mAngle + mRotateSpeed);
if (mROFCounter > 0){
mROFCounter--;
};
if (mROFCounter == 0){
Fire();
};
return;
};
if (mTarget == null){
if (mIcon.mGerak.rotation > 0){
mIcon.mGerak.rotation = (mIcon.mGerak.rotation - mRotateSpeed);
mAngle = (mAngle - mRotateSpeed);
};
if (mIcon.mGerak.rotation < 0){
mIcon.mGerak.rotation = (mIcon.mGerak.rotation + mRotateSpeed);
mAngle = (mAngle + mRotateSpeed);
};
findTarget();
} else {
if (mTarget.parent){
_local2 = Global.Distance(x, y, mTarget.x, mTarget.y);
if (_local2 <= mRadius){
if (mROFCounter > 0){
mROFCounter--;
};
if (mROFCounter == 0){
Fire();
};
_local3 = Global.AngleOfTwoDots(mTarget.x, mTarget.y, x, y);
_local3 = Global.RadToDeg(_local3);
mAngle = (mIcon.mGerak.rotation + 90);
while (mAngle < 0) {
mAngle = (mAngle + 360);
};
if (mAngle > 180){
mAngle = (-180 + (mAngle % 180));
};
_local4 = (_local3 - mAngle);
if (Math.abs(_local4) > 5){
if (Math.abs(_local4) > 180){
_local4 = (-(_local4) % 180);
};
if (Math.abs(_local4) < mRotateSpeed){
if (_local4 > 0){
mIcon.mGerak.rotation = (mIcon.mGerak.rotation + mRotateSpeed);
mAngle = (mAngle + Math.abs(_local4));
} else {
mIcon.mGerak.rotation = (mIcon.mGerak.rotation - mRotateSpeed);
mAngle = (mAngle - Math.abs(_local4));
};
} else {
if (_local4 > 0){
mIcon.mGerak.rotation = (mIcon.mGerak.rotation + mRotateSpeed);
mAngle = (mAngle + mRotateSpeed);
} else {
mIcon.mGerak.rotation = (mIcon.mGerak.rotation - mRotateSpeed);
mAngle = (mAngle - mRotateSpeed);
};
};
};
} else {
mTarget = null;
};
} else {
mTarget = null;
};
};
}
}
}//package
Section 79
//CWaveManager (CWaveManager)
package {
import flash.events.*;
import de.polygonal.math.*;
public class CWaveManager {
public var mCount:int;
public var mDifficulty:Number;
public var mType:int;
public var mWaveData:Array;
public var mDiff:int;
public var mCurWave:int;
public var mDelay:int;
public function CWaveManager(_arg1:int){
mWaveData = Data.DWave[_arg1].enemy;
mDiff = Data.DWave[_arg1].level.diff;
mCurWave = -1;
next();
}
public function RemoveDispatcher(_arg1:String="update"){
Main.GetInstance().removeEventListener(_arg1, Update);
}
private function Update(_arg1:Event){
if (mDelay > 0){
mDelay--;
};
if (mDelay <= 0){
SpawnEnemy();
};
}
public function AddDispatcher(_arg1:String="update"):void{
Main.GetInstance().addEventListener(_arg1, Update, false, 0, true);
}
public function SpawnEnemy(){
var _local1:CEnemy;
var _local2:int;
_local1 = new CEnemy(PM_PRNG.nextIntRange(0, mType), mWaveData[mCurWave].difficulty);
do {
_local1.x = PM_PRNG.nextIntRange(0, Global.STAGE_WIDTH);
_local1.y = PM_PRNG.nextIntRange(0, Global.STAGE_HEIGHT);
} while ((((((((_local1.x > 0)) && ((_local1.x < Global.STAGE_WIDTH)))) && ((_local1.y > 0)))) && ((_local1.y < Global.STAGE_HEIGHT))));
_local1.AddDispatcher();
if (CGame.GetInstance().mLevel <= 5){
_local2 = 2;
} else {
if (CGame.GetInstance().mLevel <= 15){
_local2 = 5;
} else {
if (CGame.GetInstance().mLevel <= 25){
_local2 = 8;
} else {
if (CGame.GetInstance().mLevel <= 35){
_local2 = 10;
} else {
if (CGame.GetInstance().mLevel <= 45){
_local2 = 20;
} else {
if (CGame.GetInstance().mLevel <= 55){
_local2 = 24;
} else {
if (CGame.GetInstance().mLevel <= 65){
_local2 = 40;
} else {
_local2 = 100;
};
};
};
};
};
};
};
_local1.mHP = (_local1.mHP + (_local1.mHP + (mDiff * _local2)));
_local1.mMaxHP = (_local1.mMaxHP + (_local1.mMaxHP + (mDiff * _local2)));
_local1.mMoney = (int((mDiff / 5)) + PM_PRNG.nextIntRange(1, 2));
_local1.mScore = (_local1.mMoney * 5);
_local1.mDmg = (_local1.mDmg * (1 + (0.2 * CGame.GetInstance().mLevel))).toPrecision(3);
if ((((CGame.GetInstance().mLevel > 49)) || (((((CGame.GetInstance().mLevel % 10) == 0)) && ((CGame.GetInstance().mLevel > 0)))))){
_local1.mMaxHP = (_local1.mMaxHP * 2);
_local1.mHP = (_local1.mHP * 2);
_local1.mDmg = (_local1.mDmg * 2);
_local1.mIcon.scaleX = 1.5;
_local1.mIcon.scaleY = 1.5;
_local1.mMoney = (_local1.mMoney * 2);
};
if (CGame.GetInstance().mLevel > 49){
_local1.mMaxHP = 1000000;
_local1.mHP = 1000000;
};
CGame.GetInstance().addEnemy(_local1);
mCount--;
mDelay = mWaveData[mCurWave].delay;
if (mCount == 0){
next();
};
}
public function next(){
if (mCurWave < (mWaveData.length - 1)){
mCurWave++;
mType = int((CGame.GetInstance().mLevel / 20));
if (mType > Data.WORM_BOSS){
mType = Data.WORM_BOSS;
};
mDelay = mWaveData[mCurWave].delay;
mCount = mWaveData[mCurWave].count;
if (CGame.GetInstance().mLevel > 49){
mCount = (mCount * 2);
};
mDifficulty = mWaveData[mCurWave].difficulty;
} else {
Kill();
};
}
public function Kill(){
CGame.GetInstance().killWaveManager();
}
public function getTotalEnemies():int{
var _local1:int;
var _local2:int;
_local1 = 0;
_local2 = 0;
while (_local2 < mWaveData.length) {
_local1 = (_local1 + (mWaveData[_local2].count + mDiff));
_local2++;
};
return (_local1);
}
}
}//package
Section 80
//Data (Data)
package {
public class Data {
public static const TURRET_HANDGUN = 0;
public static const TURRET_GROW = 5;
public static const WALL_TITANIUM = 12;
public static const TURRET_MASSIVECATAPULT = 33;
public static const FENCE_STEELSPIKE = 17;
public static const WALL_WOOD = 10;
public static const TURRET_SUPERGROWTH = 6;
public static const WORM_BOSS = 2;
public static const BULLET_HANDGUN = 0;
public static const BULLET_WAVE = 19;
public static const TURRET_SNIPER = 4;
public static const TURRET_SNOWLAUNCHER = 41;
public static const FENCE_BOXING = 14;
public static const DRUM_NUCLEAR = 36;
public static const DRUM_FIRE = 39;
public static const WALL_SPIKE = 11;
public static const BULLET_LIGHTNINGBALL = 13;
public static const TURRET_LONGRANGEMISSILE = 27;
public static const TURRET_CUTLASER = 23;
public static const WORM_KNIGHT = 1;
public static const TURRET_FIRECATAPULT = 22;
public static const TURRET_FIREBALLLAUNCHER = 20;
public static const TURRET_MACHINEGUN = 2;
public static const BULLET_LASER = 7;
public static const DRUM_ICE = 37;
public static const BULLET_FIRE = 20;
public static const BULLET_NONE = -1;
public static const TURRET_CHAINLIGHTNING = 29;
public static const TURRET_SMG = 1;
public static const TURRET_GATLING = 3;
public static const BULLET_REPAIR = 2;
public static const TURRET_TOMAHAWKLAUNCHER = 26;
public static const WALL_BRICK = 13;
public static const TURRET_FLAMETHROWER = 21;
public static const BULLET_NEEDLE = 25;
public static const TURRET_ELECTRICSHOCK = 18;
public static const BULLET_FROZEN = 16;
public static const TURRET_GRENADELAUNCHER = 19;
public static const WORM_BEGGAR = 0;
public static const TURRET_ROCKETSHOTGUN = 30;
public static const TURRET_CATAPULT = 32;
public static const BULLET_METEOR = 8;
public static const TURRET_BLIZZARD = 42;
public static const FENCE_ELECTRIC = 15;
public static const BULLET_MISSILE1 = 10;
public static const BULLET_THORN = 21;
public static const BULLET_FLAME = 6;
public static const TURRET_SHOTGUN = 31;
public static const TURRET_SNRGUN = 44;
public static const BULLET_SHURIKEN = 15;
public static const BULLET_ICEDROP = 23;
public static const BULLET_SNOW = 22;
public static const BULLET_MISSILE2 = 11;
public static const TURRET_ROCKETLAUNCHER = 25;
public static const TURRET_BLADEGUN = 43;
public static const BULLET_BLADEFAN = 24;
public static const BULLET_GROWTH = 1;
public static const TURRET_CLUSTERBOMB = 40;
public static const BULLET_ICE = 18;
public static const BULLET_ROCKET = 9;
public static const BULLET_LIGHTNING = 3;
public static const TURRET_ANTHRAX = 28;
public static const BULLET_STONE = 14;
public static const TURRET_FROZEN = 35;
public static const BULLET_FIREBALL = 5;
public static const TURRET_METEOR = 24;
public static const BULLET_NUCLEAR = 17;
public static const BULLET_POISON = 12;
public static const TURRET_SPLITSHURIKEN = 34;
public static const BULLET_GRENADE = 4;
public static const DRUM_WAVE = 38;
public static const TURRET_REPAIR1 = 7;
public static const FENCE_POISON = 16;
public static const TURRET_REPAIR3 = 9;
public static const TURRET_REPAIR2 = 8;
public static var DHeroDefault:Object = {money:250, score:0, level:0};
public static var DDifficulty:Object = {NORMAL:{}, FAST:{mSpeed:1.5}, STRONG:{mHP:2, mMaxHP:2}, WEAK:{mHP:0.5, mMaxHP:0.5}, INVISIBLE:{alpha:0.2}, POWERFULL:{mDmg:2, mHP:2, mMaxHP:2}, INVINCIBLE:{mDmg:2, mHP:2, mMaxHP:2, mScore:2, mMoney:2}, RICH:{mMoney:2}, POOR:{mMoney:0.5}};
public static var DHoverData:Object = {pohon:("Apple Tree\nCost: " + DTree.cost), handgun:((((("Handgun\nCost:" + DTurret[TURRET_HANDGUN].cost) + "\nDamage:") + DTurret[TURRET_HANDGUN].dmg) + "\nROF:") + (100 - DTurret[TURRET_HANDGUN].rof)), smg:((((("Semi Machine Gun\nCost:" + DTurret[TURRET_SMG].cost) + "\nDamage:") + DTurret[TURRET_SMG].dmg) + "\nROF:") + (100 - DTurret[TURRET_SMG].rof)), machinegun:((((("Machinegun\nCost:" + DTurret[TURRET_MACHINEGUN].cost) + "\nDamage:") + DTurret[TURRET_MACHINEGUN].dmg) + "\nROF:") + (100 - DTurret[TURRET_MACHINEGUN].rof)), gatling:((((("Gatling\nCost:" + DTurret[TURRET_GATLING].cost) + "\nDamage:") + DTurret[TURRET_GATLING].dmg) + "\nROF:") + (100 - DTurret[TURRET_GATLING].rof)), sniper:((((("Sniper\nCost:" + DTurret[TURRET_SNIPER].cost) + "\nDamage:") + DTurret[TURRET_SNIPER].dmg) + "\nROF:") + (100 - DTurret[TURRET_SNIPER].rof)), grow:((((("Grow Tower\nCost:" + DTurret[TURRET_GROW].cost) + "\nGrowth:") + (DTurret[TURRET_GROW].dmg * 1000)) + "\nROF:") + (100 - DTurret[TURRET_GROW].rof)), supergrowth:((((("Super Grow Tower\nCost:" + DTurret[TURRET_SUPERGROWTH].cost) + "\nGrowth:") + (DTurret[TURRET_SUPERGROWTH].dmg * 1000)) + "\nROF:") + (100 - DTurret[TURRET_SUPERGROWTH].rof)), repair1:((((("Repair Tower1\nCost:" + DTurret[TURRET_REPAIR1].cost) + "\nRepair:") + (DTurret[TURRET_REPAIR1].dmg * 100)) + "\nROF:") + (100 - DTurret[TURRET_REPAIR1].rof)), repair2:((((("Repair Tower2\nCost:" + DTurret[TURRET_REPAIR2].cost) + "\nRepair:") + (DTurret[TURRET_REPAIR2].dmg * 100)) + "\nROF:") + (100 - DTurret[TURRET_REPAIR2].rof)), repair3:((((("Repair Tower3\nCost:" + DTurret[TURRET_REPAIR3].cost) + "\nRepair:") + (DTurret[TURRET_REPAIR3].dmg * 100)) + "\nROF:") + (100 - DTurret[TURRET_REPAIR3].rof)), woodwall:((("Wood Wall\nCost:" + DTurret[WALL_WOOD].cost) + "\nHP:") + DTurret[WALL_WOOD].hp), spikewall:((((("Spike Wall\nCost:" + DTurret[WALL_SPIKE].cost) + "\nHP:") + DTurret[WALL_SPIKE].hp) + "\nDamage:") + DTurret[WALL_SPIKE].dmg), titaniumwall:((("Titanium Wall\nCost:" + DTurret[WALL_TITANIUM].cost) + "\nHP:") + DTurret[WALL_TITANIUM].hp), brickwall:((("Brick Wall \nCost:" + DTurret[WALL_BRICK].cost) + "\nHP:") + DTurret[WALL_BRICK].hp), boxingfence:((("Boxing Fence\nCost:" + DTurret[FENCE_BOXING].cost) + "\nHP:") + DTurret[FENCE_BOXING].hp), electricfence:((((("Electric Fence\nCost:" + DTurret[FENCE_ELECTRIC].cost) + "\nHP:") + DTurret[FENCE_ELECTRIC].hp) + "\nDamaeg:") + DTurret[FENCE_ELECTRIC].dmg), poisonfence:((("Poison Fence\nCost:" + DTurret[FENCE_POISON].cost) + "\nHP:") + DTurret[FENCE_POISON].hp), steelspikefence:((((("Stell Spike Fence\nCost:" + DTurret[FENCE_STEELSPIKE].cost) + "\nHP:") + DTurret[FENCE_STEELSPIKE].hp) + "\nDamage:") + DTurret[FENCE_STEELSPIKE].dmg), electricshock:((((("Electric Shock\nCost:" + DTurret[TURRET_ELECTRICSHOCK].cost) + "\nDamage:") + DTurret[TURRET_ELECTRICSHOCK].dmg) + "\nROF:") + (100 - DTurret[TURRET_ELECTRICSHOCK].rof)), grenadelauncher:((((("Grenade Launcher\nCost:" + DTurret[TURRET_GRENADELAUNCHER].cost) + "\nDamage:") + DTurret[TURRET_GRENADELAUNCHER].dmg) + "\nROF:") + (100 - DTurret[TURRET_GRENADELAUNCHER].rof)), fireballlauncher:((((("Fireball Launcher\nCost:" + DTurret[TURRET_FIREBALLLAUNCHER].cost) + "\nDamage:") + DTurret[TURRET_FIREBALLLAUNCHER].dmg) + "\nROF:") + (100 - DTurret[TURRET_FIREBALLLAUNCHER].rof)), flamethrower:((((("Flame Thrower\nCost:" + DTurret[TURRET_FLAMETHROWER].cost) + "\nDamage:") + DTurret[TURRET_FLAMETHROWER].dmg) + "\nROF:") + (100 - DTurret[TURRET_FLAMETHROWER].rof)), firecatapult:((((("Fire Catapult\nCost:" + DTurret[TURRET_FIRECATAPULT].cost) + "\nDamage:") + DTurret[TURRET_FIRECATAPULT].dmg) + "\nROF") + (100 - DTurret[TURRET_FIRECATAPULT].rof)), cutlaser:((((("Laser\nCost:" + DTurret[TURRET_CUTLASER].cost) + "\nDamage:") + DTurret[TURRET_CUTLASER].dmg) + "\nROF:") + (100 - DTurret[TURRET_CUTLASER].rof)), meteor:((((("Meteor Rain\nCost:" + DTurret[TURRET_METEOR].cost) + "\nDamage:") + DTurret[TURRET_METEOR].dmg) + "\nROF:") + (100 - DTurret[TURRET_METEOR].rof)), rocketlauncher:((((("Rocket Launcher\nCost:" + DTurret[TURRET_ROCKETLAUNCHER].cost) + "\nDamage:") + DTurret[TURRET_ROCKETLAUNCHER].dmg) + "\nROF:") + (100 - DTurret[TURRET_ROCKETLAUNCHER].rof)), tomahawklauncher:((((("Tomahawk Launcher\nCost:" + DTurret[TURRET_TOMAHAWKLAUNCHER].cost) + "\nDamage:") + DTurret[TURRET_TOMAHAWKLAUNCHER].dmg) + "\nROF:") + (100 - DTurret[TURRET_TOMAHAWKLAUNCHER].rof)), longrangemissile:((((("Longrange Missile\nCost:" + DTurret[TURRET_LONGRANGEMISSILE].cost) + "\nDamage:") + DTurret[TURRET_LONGRANGEMISSILE].dmg) + "\nROF:") + (100 - DTurret[TURRET_LONGRANGEMISSILE].rof)), anthrax:((((("Poison Gas\nCost:" + DTurret[TURRET_ANTHRAX].cost) + "\nDamage:") + DTurret[TURRET_ANTHRAX].dmg) + "\nROF:") + (100 - DTurret[TURRET_ANTHRAX].rof)), chainlightning:((((("Chain Lightning\nCost:" + DTurret[TURRET_CHAINLIGHTNING].cost) + "\nDamage:") + DTurret[TURRET_CHAINLIGHTNING].dmg) + "\nROF:") + (100 - DTurret[TURRET_CHAINLIGHTNING].rof)), rocketshotgun:((((("Rocket Shotgun\nCost:" + DTurret[TURRET_ROCKETSHOTGUN].cost) + "\nDamage:") + DTurret[TURRET_ROCKETSHOTGUN].dmg) + "\nROF:") + (100 - DTurret[TURRET_ROCKETSHOTGUN].rof)), shotgun:((((("Shotgun\nCost:" + DTurret[TURRET_SHOTGUN].cost) + "\nDamage:") + DTurret[TURRET_SHOTGUN].dmg) + "\nROF:") + (100 - DTurret[TURRET_SHOTGUN].rof)), catapult:((((("Catapult\nCost:" + DTurret[TURRET_CATAPULT].cost) + "\nDamage:") + DTurret[TURRET_CATAPULT].dmg) + "\nROF:") + (100 - DTurret[TURRET_CATAPULT].rof)), massivecatapult:((((("Massive Catapult\nCost:" + DTurret[TURRET_MASSIVECATAPULT].cost) + "\nDamage:") + DTurret[TURRET_MASSIVECATAPULT].dmg) + "\nROF:") + (100 - DTurret[TURRET_MASSIVECATAPULT].rof)), splitshuriken:((((("Spilit Shuriken\nCost:" + DTurret[TURRET_SPLITSHURIKEN].cost) + "\nDamage:") + DTurret[TURRET_SPLITSHURIKEN].dmg) + "\nROF:") + (100 - DTurret[TURRET_SPLITSHURIKEN].rof)), frozeturret:((((("Froze Tower\nCost:" + DTurret[TURRET_FROZEN].cost) + "\nDamage:") + DTurret[TURRET_FROZEN].dmg) + "\nROF:") + (100 - DTurret[TURRET_FROZEN].rof)), nucleardrum:((((("Nuclear Drum\nCost:" + DTurret[DRUM_NUCLEAR].cost) + "\nDamage:") + DTurret[DRUM_NUCLEAR].dmg) + "\nROF:") + (100 - DTurret[DRUM_NUCLEAR].rof)), icedrum:((((("Ice Drum\nCost:" + DTurret[DRUM_ICE].cost) + "\nDamage:") + DTurret[DRUM_ICE].dmg) + "\nROF:") + (100 - DTurret[DRUM_ICE].rof)), wavedrum:((((("Wave Drum\nCost:" + DTurret[DRUM_WAVE].cost) + "\nDamage:") + DTurret[DRUM_WAVE].dmg) + "\nROF:") + (100 - DTurret[DRUM_WAVE].rof)), firedrum:((((("Fire Drum\nCost:" + DTurret[DRUM_FIRE].cost) + "\nDamage:") + DTurret[DRUM_FIRE].dmg) + "\nROF:") + (100 - DTurret[DRUM_FIRE].rof)), clusterbomb:((((("Thorn Launcher\nCost:" + DTurret[TURRET_CLUSTERBOMB].cost) + "\nDamage:") + DTurret[TURRET_CLUSTERBOMB].dmg) + "\nROF:") + (100 - DTurret[TURRET_CLUSTERBOMB].rof)), snowlauncher:((((("Snow launcher\nCost:" + DTurret[TURRET_SNOWLAUNCHER].cost) + "\nDamage:") + DTurret[TURRET_SNOWLAUNCHER].dmg) + "\nROF:") + (100 - DTurret[TURRET_SNOWLAUNCHER].rof)), blizzard:((((("Blizzard\nCost:" + DTurret[TURRET_BLIZZARD].cost) + "\nDamage:") + DTurret[TURRET_BLIZZARD].dmg) + "\nROF:") + (100 - DTurret[TURRET_BLIZZARD].rof)), bladegun:((((("Bladegun\nCost:" + DTurret[TURRET_BLADEGUN].cost) + "\nDamage:") + DTurret[TURRET_BLADEGUN].dmg) + "\nROF:") + (100 - DTurret[TURRET_BLADEGUN].rof)), snrgun:((((("Thorngun\nCost:" + DTurret[TURRET_SNRGUN].cost) + "\nDamage:") + DTurret[TURRET_SNRGUN].dmg) + "\nROF:") + (100 - DTurret[TURRET_SNRGUN].rof))};
public static var DTUpgradeList:Array = new Array(new Array("smg", "sniper", "snowlauncher", "catapult", "anthrax", "rocketlauncher"), new Array("machinegun", "shotgun"), new Array("gatling", "grenadelauncher"), new Array(), new Array("cutlaser"), new Array("supergrowth"), new Array(), new Array("grow", "repair2"), new Array("repair3"), new Array(), new Array("brickwall", "spikewall", "titaniumwall", "boxingfence"), new Array(), new Array(), new Array(), new Array("steelspikefence", "electricfence", "poisonfence"), new Array(), new Array(), new Array(), new Array(), new Array(), new Array(), new Array(), new Array("flamethrower", "fireballlauncher", "meteor"), new Array(), new Array(), new Array("tomahawklauncher", "longrangemissile"), new Array(), new Array(), new Array(), new Array(), new Array(), new Array("splitshuriken", "rocketshotgun"), new Array("firecatapult", "massivecatapult", "snrgun", "frozeturret"), new Array(), new Array(), new Array(), new Array("icedrum", "wavedrum", "firedrum"), new Array(), new Array(), new Array(), new Array("electricshock", "blizzard", "bladegun"), new Array("nucleardrum", "chainlightning", "clusterbomb"), new Array(), new Array(), new Array());
public static var DTurret:Array = new Array({name:"Handgun", dmg:1, hp:10, rotatespeed:10, radius:150, rof:30, bullettype:BULLET_HANDGUN, cost:50, sfx:"gunfire"}, {name:"SMG", dmg:2, hp:15, rotatespeed:10, radius:150, rof:20, bullettype:BULLET_HANDGUN, cost:65, sfx:"gunfire"}, {name:"Machinegun", dmg:3, hp:20, rotatespeed:10, radius:200, rof:10, bullettype:BULLET_HANDGUN, cost:120, sfx:"gunfire"}, {name:"Gatling", dmg:5, hp:20, rotatespeed:10, radius:200, rof:5, bullettype:BULLET_HANDGUN, cost:150, sfx:"gunfire"}, {name:"Sniper", dmg:5, hp:20, rotatespeed:10, radius:300, rof:40, bullettype:BULLET_HANDGUN, cost:60, sfx:"gunfire"}, {name:"Grow", dmg:0.0003, hp:50, rotatespeed:0, radius:100, rof:160, bullettype:BULLET_GROWTH, cost:100, sfx:"raygun"}, {name:"Super Growth", dmg:0.0006, hp:50, rotatespeed:0, radius:110, rof:120, bullettype:BULLET_GROWTH, cost:200, sfx:"raygun"}, {name:"Repair Basic", dmg:0.01, hp:10, rotatespeed:0, radius:100, rof:200, bullettype:BULLET_REPAIR, cost:100, sfx:"raygun"}, {name:"Repair Advance", dmg:0.015, hp:15, rotatespeed:0, radius:110, rof:180, bullettype:BULLET_REPAIR, cost:125, sfx:"raygun"}, {name:"Repair Expert", dmg:0.02, hp:20, rotatespeed:0, radius:125, rof:160, bullettype:BULLET_REPAIR, cost:150, sfx:"raygun"}, {name:"Wood Wall", dmg:0, hp:20, rotatespeed:0, radius:0, rof:0, bullettype:BULLET_NONE, cost:20}, {name:"Spike Wall", dmg:1, hp:30, rotatespeed:0, radius:0, rof:0, bullettype:BULLET_NONE, cost:50}, {name:"Titanium Wall", dmg:0, hp:50, rotatespeed:0, radius:0, rof:0, bullettype:BULLET_NONE, cost:70}, {name:"Brick Wall", dmg:0, hp:40, rotatespeed:0, radius:0, rof:0, bullettype:BULLET_NONE, cost:30}, {name:"Boxing Fence", dmg:0, hp:30, rotatespeed:0, radius:0, rof:0, bullettype:BULLET_NONE, cost:40}, {name:"Electric Fence", dmg:0.5, hp:20, rotatespeed:0, radius:0, rof:0, bullettype:BULLET_NONE, cost:50}, {name:"Poison Fence", dmg:1, hp:30, rotatespeed:0, radius:0, rof:0, bullettype:BULLET_NONE, cost:50}, {name:"SteelSpike Fence", dmg:1, hp:40, rotatespeed:0, radius:0, rof:0, bullettype:BULLET_NONE, cost:50}, {name:"Electric Shock", dmg:1, hp:20, rotatespeed:0, radius:100, rof:40, bullettype:BULLET_LIGHTNING, cost:100}, {name:"Grenade Launcher", dmg:5, hp:20, rotatespeed:2, radius:150, rof:20, bullettype:BULLET_GRENADE, cost:100}, {name:"Fireball Launcher", dmg:4, hp:20, rotatespeed:2, radius:200, rof:20, bullettype:BULLET_FIREBALL, cost:120}, {name:"Flame Thrower", dmg:0.2, hp:20, rotatespeed:10, radius:80, rof:2, bullettype:BULLET_FLAME, cost:130}, {name:"Fire Catapult", dmg:1, hp:20, rotatespeed:10, radius:200, rof:10, bullettype:BULLET_FIREBALL, cost:100}, {name:"Cut Laser", dmg:1, hp:20, rotatespeed:10, radius:100, rof:10, bullettype:BULLET_LASER, cost:120, sfx:"laser"}, {name:"Meteor Rain", dmg:0.5, hp:20, rotatespeed:3, radius:50, rof:40, bullettype:BULLET_METEOR, cost:200}, {name:"Rocket Launcher", dmg:5, hp:20, rotatespeed:10, radius:200, rof:30, bullettype:BULLET_MISSILE1, cost:100, sfx:"rocket"}, {name:"Tomahawk Launcher", dmg:10, hp:20, rotatespeed:3, radius:300, rof:40, bullettype:BULLET_MISSILE2, cost:200, sfx:"rocket"}, {name:"Long Range Missile", dmg:10, hp:20, rotatespeed:10, radius:500, rof:40, bullettype:BULLET_ROCKET, cost:170, sfx:"rocket"}, {name:"Anthrax", dmg:0.1, hp:20, rotatespeed:10, radius:100, rof:10, bullettype:BULLET_POISON, cost:90}, {name:"Chain Lightning", dmg:5, hp:20, rotatespeed:10, radius:300, rof:40, bullettype:BULLET_LIGHTNINGBALL, cost:150}, {name:"Rocket Shotgun", dmg:5, hp:20, rotatespeed:10, radius:200, rof:40, bullettype:BULLET_ROCKET, cost:150, sfx:"rocket"}, {name:"Shotgun", dmg:3, hp:20, rotatespeed:10, radius:200, rof:40, bullettype:BULLET_HANDGUN, cost:90}, {name:"Catapult", dmg:2, hp:20, rotatespeed:10, radius:400, rof:80, bullettype:BULLET_STONE, cost:40}, {name:"Massive Catapult", dmg:5, hp:20, rotatespeed:10, radius:400, rof:30, bullettype:BULLET_STONE, cost:100}, {name:"Split Shuriken", dmg:3, hp:20, rotatespeed:10, radius:200, rof:40, bullettype:BULLET_SHURIKEN, cost:120}, {name:"Froze Turret", dmg:0, hp:20, rotatespeed:10, radius:100, rof:60, bullettype:BULLET_FROZEN, cost:100}, {name:"Nuclear Drum", dmg:100, hp:5, rotatespeed:0, radius:150, rof:0, bullettype:BULLET_NUCLEAR, cost:50}, {name:"Ice Drum", dmg:50, hp:5, rotatespeed:0, radius:150, rof:0, bullettype:BULLET_ICE, cost:50}, {name:"Wave Drum", dmg:150, hp:5, rotatespeed:0, radius:150, rof:0, bullettype:BULLET_WAVE, cost:50}, {name:"Fire Drum", dmg:100, hp:5, rotatespeed:0, radius:150, rof:0, bullettype:BULLET_FIRE, cost:50}, {name:"Cluster Bomb", dmg:4, hp:30, rotatespeed:10, radius:200, rof:10, bullettype:BULLET_THORN, cost:100}, {name:"Snow Launcher", dmg:3, hp:20, rotatespeed:7, radius:70, rof:40, bullettype:BULLET_SNOW, cost:100}, {name:"Blizzard", dmg:2, hp:20, rotatespeed:10, radius:200, rof:10, bullettype:BULLET_ICEDROP, cost:100}, {name:"Bladegun", dmg:0.4, hp:20, rotatespeed:1, radius:70, rof:100, bullettype:BULLET_BLADEFAN, cost:100}, {name:"Snrgun", dmg:10, hp:30, rotatespeed:3, radius:200, rof:10, bullettype:BULLET_NEEDLE, cost:100});
public static var DTree:Object = {cost:60, count:5};
public static var DWave:Array = new Array({level:{name:"Normal", pohon:{x:400, y:100}, diff:0, nextlevel:800}, enemy:new Array({type:WORM_BEGGAR, count:7, delay:30, difficulty:["NORMAL"], x:0, y:200})});
public static var DBullet:Array = new Array({dmg:1, speed:8, kill:true}, {dmg:1, speed:6, kill:false, radius:200}, {dmg:1, speed:6, kill:false, radius:200}, {dmg:1, speed:6, kill:false, radius:200}, {dmg:1, speed:6, kill:false, radius:50, aoe:50}, {dmg:1, speed:6, kill:false, radius:50}, {dmg:1, speed:2, kill:false, radius:50}, {dmg:1, speed:20, kill:false, radius:50}, {dmg:1, speed:1, kill:false, radius:50}, {dmg:1, speed:5, kill:true, radius:50, acc:1, aoe:50}, {dmg:1, speed:1, kill:true, radius:1000, acc:0.5, rotatespeed:5, aoe:100}, {dmg:1, speed:1, kill:true, radius:1000, acc:0.2, rotatespeed:5, aoe:50}, {dmg:1, speed:2, kill:false, radius:50}, {dmg:1, speed:5, kill:true, radius:100, ctr:3, rotatespeed:5, acc:0}, {dmg:1, speed:10, kill:true, aoe:50, radius:1000, acc:0.2, rotatespeed:5}, {dmg:1, speed:3, kill:true, rotatespeed:10}, {dmg:1, speed:5, kill:false, radius:50}, {dmg:1, speed:5, kill:false, radius:50, aoe:70}, {dmg:1, speed:5, kill:false, radius:50, aoe:70}, {dmg:1, speed:5, kill:false, radius:50, aoe:70}, {dmg:1, speed:5, kill:false, radius:50, aoe:70}, {dmg:1, speed:0, kill:true, radius:50, ctr:200}, {dmg:1, speed:5, kill:true, radius:50}, {dmg:1, speed:0, kill:true, radius:50, ctr:200}, {dmg:1, speed:0, kill:false, radius:50, rotatespeed:5, counter:200}, {dmg:1, speed:10, kill:true});
public static var DTUpgrade:Object = {handgun:TURRET_HANDGUN, smg:TURRET_SMG, machinegun:TURRET_MACHINEGUN, gatling:TURRET_GATLING, sniper:TURRET_SNIPER, grow:TURRET_GROW, supergrowth:TURRET_SUPERGROWTH, repair1:TURRET_REPAIR1, repair2:TURRET_REPAIR2, repair3:TURRET_REPAIR3, woodwall:WALL_WOOD, titaniumwall:WALL_TITANIUM, spikewall:WALL_SPIKE, brickwall:WALL_BRICK, boxingfence:FENCE_BOXING, electricfence:FENCE_ELECTRIC, poisonfence:FENCE_POISON, steelspikefence:FENCE_STEELSPIKE, electricshock:TURRET_ELECTRICSHOCK, grenadelauncher:TURRET_GRENADELAUNCHER, fireballlauncher:TURRET_FIREBALLLAUNCHER, flamethrower:TURRET_FLAMETHROWER, firecatapult:TURRET_FIRECATAPULT, cutlaser:TURRET_CUTLASER, meteor:TURRET_METEOR, rocketlauncher:TURRET_ROCKETLAUNCHER, tomahawklauncher:TURRET_TOMAHAWKLAUNCHER, longrangemissile:TURRET_LONGRANGEMISSILE, anthrax:TURRET_ANTHRAX, chainlightning:TURRET_CHAINLIGHTNING, rocketshotgun:TURRET_ROCKETSHOTGUN, shotgun:TURRET_SHOTGUN, catapult:TURRET_CATAPULT, massivecatapult:TURRET_MASSIVECATAPULT, splitshuriken:TURRET_SPLITSHURIKEN, frozeturret:TURRET_FROZEN, nucleardrum:DRUM_NUCLEAR, icedrum:DRUM_ICE, wavedrum:DRUM_WAVE, firedrum:DRUM_FIRE, clusterbomb:TURRET_CLUSTERBOMB, snowlauncher:TURRET_SNOWLAUNCHER, blizzard:TURRET_BLIZZARD, bladegun:TURRET_BLADEGUN, snrgun:TURRET_SNRGUN};
public static var DApel:Object = {growrate:0.01, growcounter:10, score:100, money:10};
public static var DEnemy:Array = new Array({move:1, attack:38, dmg:1, hp:1, speed:1.2, radius:500, score:50, money:10, attprob:0.1, appleprob:0.8}, {move:1, attack:38, dmg:1, hp:25, speed:1.2, radius:700, score:70, money:15, attprob:0.5, appleprob:0.2}, {move:1, attack:32, dmg:1, hp:50, speed:1, radius:1000, score:100, money:30, attprob:0.5, appleprob:1});
}
}//package
Section 81
//Enemies (Enemies)
package {
import flash.display.*;
public dynamic class Enemies extends MovieClip {
public var enemy0:MovieClip;
public var enemy1:MovieClip;
public var enemy2:MovieClip;
}
}//package
Section 82
//Global (Global)
package {
import flash.net.*;
import flash.external.*;
public class Global {
protected static const WINDOW_OPEN_FUNCTION:String = "window.open";
public static var STAGE_WIDTH = 600;
public static var STAGE_HEIGHT = 450;
public static function AngleOfTwoLines(_arg1:Object, _arg2:Object):Number{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local3 = _arg1.x1;
_local4 = _arg1.y1;
_local5 = _arg1.x2;
_local6 = _arg1.y2;
_local7 = _arg2.x1;
_local8 = _arg2.y1;
_local9 = _arg2.x2;
_local10 = _arg2.y2;
_local11 = Global.Slope(_local3, _local4, _local5, _local6);
_local12 = Global.Slope(_local7, _local8, _local9, _local10);
return (Math.atan(((_local12 - _local11) / (1 + (_local11 * _local12)))));
}
public static function Slope(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg1 - _arg3);
_local6 = (_arg2 - _arg4);
return ((_local6 / _local5));
}
public static function AngleOfTwoDots(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg1 - _arg3);
_local6 = (_arg2 - _arg4);
return (Math.atan2(_local6, _local5));
}
public static function DegToRad(_arg1:Number):Number{
return (((_arg1 / 180) * Math.PI));
}
public static function Distance(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (Math.sqrt((Math.pow((_arg3 - _arg1), 2) + Math.pow((_arg4 - _arg2), 2))));
}
public static function RadToDeg(_arg1:Number):Number{
return (((_arg1 * 180) / Math.PI));
}
public static function pythagoras(_arg1:Number, _arg2:Number):Number{
return (Math.sqrt((Math.pow(_arg1, 2) + Math.pow(_arg2, 2))));
}
public static function openWindow(_arg1:String="http://www.lazybanana.com", _arg2:String="_blank", _arg3:String=""):String{
var _loc_4:URLRequest;
var _loc_5:String;
var ok:Boolean;
var opened:Boolean;
var msg:String;
var url = _arg1;
var target = _arg2;
var param3 = _arg3;
ok = true;
opened = false;
_loc_4 = new URLRequest(url);
msg = "Start the openWindow func ...\n";
if (!ExternalInterface.available){
try {
opened = false;
navigateToURL(_loc_4, target);
msg = (msg + "flag a - 1");
} catch(err:SecurityError) {
navigateToURL(_loc_4, "_blank");
opened = true;
msg = (msg + "flag a - 2");
} finally {
opened = true;
};
msg = (msg + "external interface not available\n");
} else {
try {
_loc_5 = String(ExternalInterface.call("function() {return navigator.userAgent;}")).toLowerCase();
msg = (msg + "Trying extenal interface sandbox security\n");
msg = (msg + "flag b - 1");
opened = false;
} catch(err:SecurityError) {
msg = (msg + (err.message + "\n"));
ok = false;
try {
opened = false;
navigateToURL(_loc_4, target);
msg = (msg + "flag b - 2");
} catch(err:SecurityError) {
opened = true;
msg = (msg + "flag b - 3");
navigateToURL(_loc_4, "_blank");
} finally {
opened = true;
};
} catch(err:Error) {
} finally {
opened = false;
};
if (((ok) && (!(opened)))){
msg = (msg + "External interface available, continuing ...\n");
if (((!((_loc_5.indexOf("firefox") == -1))) || (((!((_loc_5.indexOf("msie") == -1))) && ((uint(_loc_5.substr((_loc_5.indexOf("msie") + 5), 3)) >= 7)))))){
try {
ExternalInterface.call("window.open", _loc_4.url, target);
opened = false;
msg = (msg + "flag c - 1");
msg = (msg + "Trying window.open JS ...\n");
} catch(err:SecurityError) {
msg = (msg + (err.message + "\n"));
trace(("e : " + err.message));
if (!opened){
try {
opened = false;
navigateToURL(_loc_4, target);
msg = (msg + "flag d - 1");
} catch(err:SecurityError) {
opened = true;
navigateToURL(_loc_4, "_blank");
msg = (msg + "flag d - 2");
} finally {
opened = true;
};
};
} catch(err:Error) {
msg = (msg + (err.message + "\n"));
if (!opened){
try {
opened = false;
navigateToURL(_loc_4, target);
msg = (msg + "flag e - 1");
} catch(err:SecurityError) {
opened = true;
navigateToURL(_loc_4, "_blank");
msg = (msg + "flag e - 2");
} finally {
opened = true;
};
};
} finally {
opened = true;
};
} else {
if (!opened){
msg = (msg + "Open with navigateToURL\n");
try {
opened = false;
navigateToURL(_loc_4, target);
msg = (msg + "flag f - 1");
} catch(err:SecurityError) {
navigateToURL(_loc_4, "_blank");
msg = (msg + "flag f - 2");
} finally {
opened = true;
};
};
};
};
};
return (msg);
}
public static function getFormatedString(_arg1:String, _arg2:Array, _arg3:String="%"):String{
var _local4:String;
for (_local4 in _arg2) {
_arg1 = _arg1.replace((_arg3 + _local4), _arg2[_local4]);
trace(_local4, _arg2[_local4]);
};
return (_arg1);
}
}
}//package
Section 83
//GSFlashGameAPI (GSFlashGameAPI)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class GSFlashGameAPI {
private var container;
private var logoLoaded:Boolean;// = false
private var loader:URLLoader;
private var dataFailed:Boolean;// = false
private var logo:Loader;
private var logoUrl:String;
private var mainStage;
private var logoFailed:Boolean;// = false
private var dataLoaded:Boolean;// = false
private var splashClip:MovieClip;
private var showHighScoreUrl:String;
private var moreGamesUrl:String;
private var splash:Loader;
private var submitHighScoreUrl:String;
private var splashFinished:Boolean;// = false
private var gamename;
private static const defaultMoreGamesUrl:String = "http://www.bigfuntown.com";
private static const dataUrl:String = "http://gameapi.gamescore.com/flash/gamedata?referer=[referer]&host=[host]";
private static const splashUrl:String = "http://gameapi.gamescore.com/flash/splash.swf?referer=[referer]&host=[host]";
public function GSFlashGameAPI(_arg1, _arg2){
splashFinished = false;
dataLoaded = false;
dataFailed = false;
logoLoaded = false;
logoFailed = false;
super();
this.container = _arg1;
this.mainStage = this.container.stage;
this.gamename = _arg2;
Security.allowDomain("gamescore.com");
Security.allowDomain("www.gamescore.com");
Security.allowDomain("gameapi.gamescore.com");
Security.allowInsecureDomain("gamescore.com");
Security.allowInsecureDomain("www.gamescore.com");
Security.allowInsecureDomain("gameapi.gamescore.com");
this.loadData();
this.loadSplash();
}
public function HighScores(){
if (!this.dataLoaded){
return;
};
navigateToURL(new URLRequest(this.showHighScoreUrl.replace("[gamename]", this.gamename)), "_blank");
}
private function baseHex(_arg1:int){
switch (_arg1){
case 15:
return ("f");
case 14:
return ("e");
case 13:
return ("d");
case 12:
return ("c");
case 11:
return ("b");
case 10:
return ("a");
default:
return (("" + _arg1));
};
}
public function GetLogo(_arg1, _arg2){
var _local3:Sprite;
var _local4:*;
if (!this.logoLoaded){
return;
};
_local3 = new Sprite();
_local3.addChild(this.logo);
_local3.height = ((_arg1 / this.logo.width) * this.logo.height);
_local3.width = _arg1;
if (_arg2 < _local3.height){
_local3.width = ((_arg2 / _local3.height) * _local3.width);
_local3.height = _arg2;
};
_local3.x = ((_arg1 / 2) - (_local3.width / 2));
_local3.y = ((_arg2 / 2) - (_local3.height / 2));
_local4 = new Sprite();
_local4.addChild(_local3);
return (_local4);
}
private function splashSuccess(_arg1){
this.splashClip = (this.splash.content as MovieClip);
this.splash.addEventListener(Event.ENTER_FRAME, displaySplash);
}
private function logoClick(_arg1){
this.MoreGames();
}
private function endSplash(){
this.mainStage.removeChild(this.splash);
this.splashFinished = true;
}
private function splashFail(_arg1){
this.endSplash();
}
private function toHex(_arg1:String){
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = new Array();
_local3 = 0;
while (_local3 < _arg1.length) {
_local4 = this.lookupHex(_arg1.charCodeAt(_local3));
_local2[((_local3 * 4) + 0)] = _local4.charAt(0);
_local2[((_local3 * 4) + 1)] = _local4.charAt(1);
_local2[((_local3 * 4) + 2)] = _local4.charAt(2);
_local2[((_local3 * 4) + 3)] = _local4.charAt(3);
_local3++;
};
return (_local2.join(""));
}
public function UseHighScores(){
return (this.dataLoaded);
}
public function Loaded(){
return (((((this.splashFinished) && (((this.dataLoaded) || (this.dataFailed))))) && (((((this.logoLoaded) || (this.logoFailed))) || (this.dataFailed)))));
}
private function loadData(){
this.loader = new URLLoader();
this.loader.dataFormat = URLLoaderDataFormat.TEXT;
this.loader.addEventListener(Event.COMPLETE, downloadSuccess);
this.loader.addEventListener(IOErrorEvent.IO_ERROR, downloadFail);
this.loader.load(new URLRequest(GSFlashGameAPI.dataUrl.replace("[referer]", this.gamename).replace("[host]", encodeURI(this.container.loaderInfo.loaderURL))));
}
private function loadLogo(){
this.logo = new Loader();
this.logo.contentLoaderInfo.addEventListener(Event.COMPLETE, logoSuccess);
this.logo.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, logoFail);
this.logo.load(new URLRequest(this.logoUrl));
}
public function UseLogo(){
return (this.logoLoaded);
}
private function dubEncrypt(_arg1:String, _arg2:String){
var _local3:*;
_local3 = this.encrypt(_arg1, _arg2);
_local3 = this.encrypt(this.reverse(_local3), this.reverse(_arg2));
return (this.toHex(_local3));
}
public function SubmitHighScore(_arg1, _arg2, _arg3){
var _local4:*;
var _local5:int;
var _local6:*;
var _local7:*;
var _local8:*;
if (!this.dataLoaded){
return;
};
_local4 = this.gamename.replace("|", "");
_arg1 = _arg1.replace("|", "");
_arg2 = _arg2.replace("|", "");
_arg3 = ("" + _arg3).replace("|", "");
_local5 = (Math.random() * 1000000);
_local6 = this.submitHighScoreUrl.replace("[gamename]", this.gamename);
_local7 = new URLRequest(_local6);
_local8 = new URLVariables();
_local8.scoreData = this.dubEncrypt(((((((((_local4 + "|") + _arg1) + "|") + _arg2) + "|") + _arg3) + "|") + _local5), "~d&j#9sK@8;dnHio3?Fp}h9#BDfvn#");
_local7.data = _local8;
_local7.method = URLRequestMethod.POST;
navigateToURL(_local7, "_blank");
}
private function lookupHex(_arg1:int){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = (_arg1 / 0x1000);
_arg1 = (_arg1 % 0x1000);
_local3 = (_arg1 / 0x0100);
_arg1 = (_arg1 % 0x0100);
_local4 = (_arg1 / 16);
_arg1 = (_arg1 % 16);
_local5 = _arg1;
return ((((this.baseHex(_local2) + this.baseHex(_local3)) + this.baseHex(_local4)) + this.baseHex(_local5)));
}
private function downloadFail(_arg1){
this.dataFailed = true;
}
private function displaySplash(_arg1){
if (splashClip.Finished == false){
return;
};
this.splash.removeEventListener(Event.ENTER_FRAME, displaySplash);
this.endSplash();
}
public function MoreGames(){
if (!this.dataLoaded){
navigateToURL(new URLRequest(GSFlashGameAPI.defaultMoreGamesUrl), "_blank");
return;
};
navigateToURL(new URLRequest(this.moreGamesUrl.replace("[referer]", this.gamename)), "_blank");
}
private function logoSuccess(_arg1){
this.logo.addEventListener(MouseEvent.CLICK, logoClick);
this.logoLoaded = true;
}
private function downloadSuccess(_arg1){
var _local2:Array;
var _local3:*;
var _local4:Array;
_local2 = this.loader.data.split("\n");
_local3 = 0;
while (_local3 < _local2.length) {
_local4 = _local2[_local3].split("|||");
switch (_local4[0]){
case "MoreGames":
this.moreGamesUrl = _local4[1];
break;
case "SubmitHighScore":
this.submitHighScoreUrl = _local4[1];
break;
case "ShowHighScores":
this.showHighScoreUrl = _local4[1];
break;
case "Logo":
this.logoUrl = _local4[1];
this.loadLogo();
break;
};
_local3++;
};
this.dataLoaded = true;
}
private function reverse(_arg1){
return (_arg1.split("").reverse().join(""));
}
private function encrypt(_arg1:String, _arg2:String){
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
_local3 = new Array();
_local3[0] = _arg1.charCodeAt(0);
_local4 = 1;
while (_local4 < _arg1.length) {
_local7 = _arg1.charCodeAt(_local4);
_local8 = (((_local3[(_local4 - 1)] + _arg2.charCodeAt((_local4 % _arg2.length))) + _arg2.charCodeAt((_local3[(_local4 - 1)] % _arg2.length))) % 65536);
_local3[_local4] = (_local7 ^ _local8);
_local4++;
};
_local5 = new Array();
_local6 = 0;
while (_local6 < _local3.length) {
_local5[_local6] = String.fromCharCode(_local3[_local6]);
_local6++;
};
return (_local5.join(""));
}
private function logoFail(_arg1){
this.logoFailed = true;
}
private function loadSplash(){
this.splash = new Loader();
this.splash.contentLoaderInfo.addEventListener(Event.COMPLETE, splashSuccess);
this.splash.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, splashFail);
this.mainStage.addChild(this.splash);
this.splash.load(new URLRequest(GSFlashGameAPI.splashUrl.replace("[referer]", this.gamename).replace("[host]", encodeURI(this.container.loaderInfo.loaderURL))));
}
}
}//package
Section 84
//gunfire (gunfire)
package {
import flash.media.*;
public dynamic class gunfire extends Sound {
}
}//package
Section 85
//HowToPlay (HowToPlay)
package {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
public dynamic class HowToPlay extends MovieClip {
public var mExit_btn:SimpleButton;
public var mFinish:SimpleButton;
public var mNext_btn:SimpleButton;
public var mCount:TextField;
public var mPrev_btn:SimpleButton;
public function HowToPlay(){
addFrameScript(0, frame1, 5, frame6);
}
public function onExitUp(_arg1:MouseEvent):void{
Main.GetInstance().mOptionBar.visible = true;
Main.GetInstance().KillHowToPlay();
}
function frame6(){
this.mFinish.addEventListener(MouseEvent.MOUSE_UP, onExitUp, false, 0, true);
}
function frame1(){
stop();
Main.GetInstance().mOptionBar.visible = false;
if (!this.mExit_btn.hasEventListener(MouseEvent.MOUSE_UP)){
this.mExit_btn.addEventListener(MouseEvent.MOUSE_UP, onExitUp, false, 0, true);
};
if (!this.mPrev_btn.hasEventListener(MouseEvent.MOUSE_UP)){
this.mPrev_btn.addEventListener(MouseEvent.MOUSE_UP, onPrevUp, false, 0, true);
};
if (!this.mNext_btn.hasEventListener(MouseEvent.MOUSE_UP)){
this.mNext_btn.addEventListener(MouseEvent.MOUSE_UP, onNextUp, false, 0, true);
};
if (!this.hasEventListener(Event.ENTER_FRAME)){
this.addEventListener(Event.ENTER_FRAME, OnEnterFrame, false, 0, true);
};
}
public function onNextUp(_arg1:MouseEvent):void{
if (this.currentFrame < this.totalFrames){
this.nextFrame();
};
}
public function OnEnterFrame(_arg1:Event){
if (this.currentFrame == 1){
mPrev_btn.visible = false;
} else {
mPrev_btn.visible = true;
};
if (this.currentFrame == this.totalFrames){
mNext_btn.visible = false;
} else {
mNext_btn.visible = true;
};
mCount.text = ((this.currentFrame + "/") + this.totalFrames);
}
public function onPrevUp(_arg1:MouseEvent):void{
if (this.currentFrame > 1){
gotoAndStop((this.currentFrame - 1));
};
}
}
}//package
Section 86
//HPBar (HPBar)
package {
import flash.display.*;
public dynamic class HPBar extends MovieClip {
}
}//package
Section 87
//laser (laser)
package {
import flash.media.*;
public dynamic class laser extends Sound {
}
}//package
Section 88
//laugh (laugh)
package {
import flash.media.*;
public dynamic class laugh extends Sound {
}
}//package
Section 89
//loser (loser)
package {
import flash.media.*;
public dynamic class loser extends Sound {
}
}//package
Section 90
//Main (Main)
package {
import flash.events.*;
import caurina.transitions.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import com.electrotank.util.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
public class Main extends MovieClip {
private var mContextMenu:ContextMenu;
private var mSfx:SoundChannel;
public var mBgmStartFlag:Boolean;// = false
private var mBgm:SoundChannel;
public var mState:int;
public var mBgmFlag:Boolean;// = true
public var mSapiWindow:MovieClip;
public var mMainMenu:CMainMenu;
private var mGameWin:CGame;
public var mHeroData:Object;
public var mSfxFlag:Boolean;// = true
public var mOptionBar:COptionBar;
public var mPreloader:MovieClip;
public var gameInitialized;// = false
public var mInitOnceFlag:Boolean;// = false
public var mHowToPlay:MovieClip;
public var mBannedWin:CBannedWin;
public var game:GSFlashGameAPI;
protected static const WINDOW_OPEN_FUNCTION:String = "window.open";
public static var STATE_GAME = 1;
public static var MainGlobal:Main;
public static var STATE_GAME_OVER = 4;
public static var STATE_MAIN_MENU = 2;
public static var STATE_PAUSED = 3;
public function Main(){
mBgmFlag = true;
mSfxFlag = true;
mBgmStartFlag = false;
gameInitialized = false;
mInitOnceFlag = false;
super();
addFrameScript(0, frame1, 7, frame8, 8, frame9, 15, frame16);
stop();
trace("init main 1");
MainGlobal = this;
game = new GSFlashGameAPI(this, "Apple Defender");
mState = STATE_MAIN_MENU;
mContextMenu = new ContextMenu();
mContextMenu.hideBuiltInItems();
stage.addEventListener(Event.ADDED, OnAddedToStage, false, 0, true);
stage.addEventListener(FocusEvent.FOCUS_IN, OnKeyFocusChange, false, 0, true);
mContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler, false, 0, true);
this.contextMenu = mContextMenu;
this.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp, false, 0, true);
this.stop();
if (this.hasEventListener(Event.ENTER_FRAME)){
this.removeEventListener(Event.ENTER_FRAME, OnEnterFrame);
};
this.addEventListener(Event.ENTER_FRAME, OnEnterFrame, false, 0, true);
}
public function ToggleQuality():void{
switch (stage.quality){
case "LOW":
stage.quality = StageQuality.MEDIUM;
break;
case "MEDIUM":
stage.quality = StageQuality.HIGH;
break;
case "HIGH":
stage.quality = StageQuality.BEST;
break;
case "BEST":
stage.quality = StageQuality.LOW;
break;
};
}
private function ShowMainMenu():void{
KillMainMenu();
mMainMenu = new CMainMenu();
mMainMenu.AddDispatcher();
this.stage.addChild(mMainMenu);
}
public function ShowHSNote(_arg1:MouseEvent=null):void{
mMainMenu.addChild(new CHSNote());
}
public function ShowHowToPlay(){
KillHowToPlay();
mHowToPlay = new HowToPlay();
this.stage.addChild(mHowToPlay);
}
public function InitHeroData(_arg1:Boolean=true){
if (_arg1){
mHeroData = new Object();
mHeroData.money = "money";
mHeroData.score = "score";
mHeroData.level = "level";
MemoryCrypto.setValue(mHeroData.money, Data.DHeroDefault.money);
MemoryCrypto.setValue(mHeroData.score, Data.DHeroDefault.score);
MemoryCrypto.setValue(mHeroData.level, Data.DHeroDefault.level);
};
}
public function ToggleMusic(){
var _local1:Sound;
var _local2:SoundTransform;
if (!mBgmStartFlag){
return;
};
if (mBgmFlag){
mBgmFlag = false;
mBgm.stop();
} else {
mBgmFlag = true;
_local1 = new BGM();
_local2 = new SoundTransform(0.5, 0);
mBgm = _local1.play(0, 999, _local2);
};
}
public function KillGameWin(_arg1:Boolean=true){
if (mGameWin){
if (((mGameWin.parent) && (_arg1))){
mGameWin.Kill();
mGameWin.parent.removeChild(mGameWin);
};
mGameWin = null;
};
if (mGameWin != null){
trace("WARNING ### mGameWin Not null after Kill process");
};
}
function frame16(){
InitOnce();
}
public function kuda(){
trace("kuda");
stop();
gotoAndStop("mainMenu");
stop();
}
public function InitGame(){
ResetData();
InitHeroData();
ShowGameWin();
mGameWin.AddDispatcher();
mState = STATE_GAME;
if (this.hasEventListener(Event.ENTER_FRAME)){
this.removeEventListener(Event.ENTER_FRAME, OnEnterFrame);
};
this.addEventListener(Event.ENTER_FRAME, OnEnterFrame, false, 0, true);
this.dispatchEvent(new Event("update"));
}
function frame1(){
stop();
}
private function isDomainNOTAllowed(_arg1:Array):Boolean{
var _local2:LocalConnection;
var _local3:String;
var _local4:Number;
_local2 = new LocalConnection();
_local3 = _local2.domain;
trace(("Domain : " + _local3));
_local4 = 0;
while (_local4 < _arg1.length) {
if (_local3 == _arg1[_local4]){
return (true);
};
_local4++;
};
_local4 = 0;
while (_local4 < _arg1.length) {
if (_local3.substr(-((_arg1[_local4].length + 1))) == ("." + _arg1[_local4])){
return (true);
};
_local4++;
};
return (false);
}
private function isPlayerAllowed(_arg1:Array):Boolean{
var _local2:String;
var _local3:Number;
_local2 = Capabilities.playerType;
trace(("PlayerType : " + _local2));
_local3 = 0;
while (_local3 < _arg1.length) {
if (_local2 == _arg1[_local3]){
return (true);
};
_local3++;
};
return (false);
}
function frame8(){
trace("frame 8");
}
function frame9(){
trace("asset");
stop();
}
private function isDomainAllowed(_arg1:Array):Boolean{
var _local2:LocalConnection;
var _local3:String;
var _local4:Number;
_local2 = new LocalConnection();
_local3 = _local2.domain;
trace(("Domain : " + _local3));
_local4 = 0;
while (_local4 < _arg1.length) {
if (_local3 == _arg1[_local4]){
return (true);
};
_local4++;
};
_local4 = 0;
while (_local4 < _arg1.length) {
if (_local3.substr(-((_arg1[_local4].length + 1))) == ("." + _arg1[_local4])){
return (true);
};
_local4++;
};
return (false);
}
private function ResetData():void{
var _local1:int;
_local1 = 0;
_local1 = 0;
while (_local1 < Data.DWave.length) {
Data.DWave[_local1].level.diff = 0;
Data.DWave[_local1].level.nextlevel = 800;
_local1++;
};
Data.DTree.count = 1;
Data.DTree.cost = 66;
}
private function menuSelectHandler(_arg1:ContextMenuEvent){
}
private function OnKeyFocusChange(_arg1:FocusEvent):void{
stage.focus = this.stage;
}
public function ShowGameWin(_arg1:Boolean=true){
KillGameWin();
mGameWin = new CGame(_arg1);
this.stage.addChild(mGameWin);
}
private function InitMenu(){
ShowMainMenu();
mBgmStartFlag = true;
mState = STATE_MAIN_MENU;
}
public function ToggleSFX(){
if (!mBgmStartFlag){
return;
};
if (mSfxFlag){
mSfxFlag = false;
} else {
mSfxFlag = true;
};
}
private function KillMainMenu(_arg1:Boolean=true):void{
if (mMainMenu){
if (((mMainMenu.parent) && (_arg1))){
mGameWin.parent.removeChild(mMainMenu);
};
mMainMenu = null;
};
if (mMainMenu != null){
trace("WARNING ### mMainMenu Not null after Kill process");
};
}
private function onKeyUp(_arg1:KeyboardEvent):void{
var _local2:MovieClip;
var _local3:int;
var _local4:Array;
if (mState != STATE_GAME_OVER){
switch (_arg1.keyCode){
case 77:
if (mOptionBar){
mOptionBar.ToggleMusic();
};
break;
case 78:
if (mOptionBar){
mOptionBar.ToggleSFX();
};
break;
case 66:
if (mOptionBar){
mOptionBar.ToggleQuality();
};
break;
};
} else {
if (mState == STATE_GAME_OVER){
if (_arg1.keyCode == 13){
if (((mGameWin) && (mGameWin["mDialogCongrats"]))){
mGameWin["mDialogCongrats"].onSubmitUp(null);
};
};
};
};
if (_arg1.keyCode == 65){
if (CGame.GetInstance().mBuilding){
if ((CGame.GetInstance().mBuilding is CTurret)){
if ((((CGame.GetInstance().mBuilding.mType == Data.WALL_WOOD)) || ((CGame.GetInstance().mBuilding.mType == Data.FENCE_BOXING)))){
CGame.GetInstance().mBuilding.mIcon.gotoAndStop((((CGame.GetInstance().mBuilding.mIcon.currentFrame + 1) % 3) + 1));
};
};
};
CGame.GetInstance().nextlevel();
} else {
if (_arg1.keyCode == 27){
if (mState == STATE_GAME){
if (CGame.GetInstance().mBuilding){
CGame.GetInstance().cancelBuild();
} else {
mState = STATE_PAUSED;
Tweener.pauseAllTweens();
_local2 = new CDialogPause();
this.stage.addChild(_local2);
};
};
} else {
if ((_arg1.keyCode - 48) < 10){
_local3 = (_arg1.keyCode - 48);
if ((CGame.GetInstance().mActiveUnit is CTurret)){
_local4 = Data.DTUpgradeList[CGame.GetInstance().mActiveUnit.mType];
if ((((_local3 <= _local4.length)) && ((_local3 > 0)))){
CGame.GetInstance().build(_local4[(_local3 - 1)], "upgrade", CGame.GetInstance().mActiveUnit, CGame.GetInstance().mouseX, CGame.GetInstance().mouseY);
};
} else {
if ((CGame.GetInstance().mActiveUnit is CGame)){
_local4 = CGame.GetInstance().mBuildList;
if ((((_local3 <= _local4.length)) && ((_local3 > 0)))){
CGame.GetInstance().build(_local4[(_local3 - 1)], "build", CGame.GetInstance(), CGame.GetInstance().mouseX, CGame.GetInstance().mouseY);
};
};
};
};
};
};
}
private function OnAddedToStage(_arg1:Event):void{
if (mOptionBar){
mOptionBar.parent.setChildIndex(mOptionBar, (mOptionBar.parent.numChildren - 1));
};
}
public function CheckDomain(){
var _local1:Array;
var _local2:Array;
_local1 = new Array("www.bigfuntown.com", "bigfuntown.com");
_local2 = new Array("ActiveX", "PlugIn", "StandAlone", "External");
trace("keple");
if (!isDomainAllowed(_local1)){
trace("BANNED DOMAIN !!!");
} else {
trace("Allowed DOMAIN !!!");
};
}
private function InitOnce(){
mInitOnceFlag = true;
trace("initOnce a");
InitMenu();
trace("initonce b");
CheckDomain();
mOptionBar = new COptionBar(11, 11, "BGM");
stage.addChild(mOptionBar);
if (this.hasEventListener(Event.ENTER_FRAME)){
this.removeEventListener(Event.ENTER_FRAME, OnEnterFrame);
};
this.addEventListener(Event.ENTER_FRAME, OnEnterFrame, false, 0, true);
trace("initOnce c");
}
public function OnEnterFrame(_arg1:Event){
if (((!(gameInitialized)) && (game.Loaded()))){
gameInitialized = true;
mState = STATE_MAIN_MENU;
};
if (gameInitialized){
switch (mState){
case STATE_MAIN_MENU:
if (!mInitOnceFlag){
if (currentFrame != 16){
gotoAndStop(16);
if (currentFrame == 16){
mInitOnceFlag = true;
};
} else {
mInitOnceFlag = true;
};
};
break;
case STATE_GAME:
RunStateGame();
break;
case STATE_PAUSED:
this.dispatchEvent(new Event("pause"));
break;
default:
break;
};
};
}
public function KillHowToPlay(_arg1:Boolean=true):void{
if (mHowToPlay){
if (((mHowToPlay) && (_arg1))){
mHowToPlay.parent.removeChild(mHowToPlay);
};
mHowToPlay = null;
};
if (mHowToPlay != null){
trace("WARNING ## mHowToPlay Not null after Kill process");
};
}
private function RunStateGame(){
this.dispatchEvent(new Event("update"));
}
public static function GetInstance():Main{
return (MainGlobal);
}
public static function openWindow(_arg1:String="http://www.lazybanana.com", _arg2:String="_blank", _arg3:String=""):void{
var _local4:URLRequest;
var _local5:String;
_local4 = new URLRequest(_arg1);
_arg2 = "_blank";
if (!ExternalInterface.available){
navigateToURL(_local4, _arg2);
} else {
_local5 = String(ExternalInterface.call("function() {return navigator.userAgent;}")).toLowerCase();
if (((!((_local5.indexOf("firefox") == -1))) || (((!((_local5.indexOf("msie") == -1))) && ((uint(_local5.substr((_local5.indexOf("msie") + 5), 3)) >= 7)))))){
ExternalInterface.call("window.open", _local4.url, _arg2);
} else {
navigateToURL(_local4, _arg2);
};
};
}
}
}//package
Section 91
//Particles (Particles)
package {
import flash.display.*;
public dynamic class Particles extends MovieClip {
public var poison:MovieClip;
public var ledakan:MovieClip;
public var smoke:MovieClip;
public var petir:MovieClip;
}
}//package
Section 92
//PohonApel (PohonApel)
package {
import flash.display.*;
public dynamic class PohonApel extends MovieClip {
public var apel:MovieClip;
public var pohon:MovieClip;
}
}//package
Section 93
//raygun (raygun)
package {
import flash.media.*;
public dynamic class raygun extends Sound {
}
}//package
Section 94
//rocket (rocket)
package {
import flash.media.*;
public dynamic class rocket extends Sound {
}
}//package
Section 95
//trumpet (trumpet)
package {
import flash.media.*;
public dynamic class trumpet extends Sound {
}
}//package
Section 96
//Turrets (Turrets)
package {
import flash.display.*;
public dynamic class Turrets extends MovieClip {
public var turret11:MovieClip;
public var turret13:MovieClip;
public var turret14:MovieClip;
public var turret15:MovieClip;
public var turret16:MovieClip;
public var turret18:MovieClip;
public var turret10:MovieClip;
public var turret12:MovieClip;
public var turret17:MovieClip;
public var turret20:MovieClip;
public var turret21:MovieClip;
public var turret22:MovieClip;
public var turret23:MovieClip;
public var turret24:MovieClip;
public var turret25:MovieClip;
public var turret27:MovieClip;
public var turret28:MovieClip;
public var turret19:MovieClip;
public var turret26:MovieClip;
public var turret29:MovieClip;
public var turret2:MovieClip;
public var turret3:MovieClip;
public var turret4:MovieClip;
public var turret5:MovieClip;
public var turret0:MovieClip;
public var turret1:MovieClip;
public var turret9:MovieClip;
public var turret30:MovieClip;
public var turret31:MovieClip;
public var turret32:MovieClip;
public var turret33:MovieClip;
public var turret35:MovieClip;
public var turret36:MovieClip;
public var turret37:MovieClip;
public var turret38:MovieClip;
public var turret39:MovieClip;
public var turret8:MovieClip;
public var turret34:MovieClip;
public var turret7:MovieClip;
public var turret41:MovieClip;
public var turret42:MovieClip;
public var turret43:MovieClip;
public var turret44:MovieClip;
public var turret40:MovieClip;
public var turret6:MovieClip;
}
}//package