Section 1
//Screen (utils.ui.Screen)
package utils.ui {
import flash.display.*;
public class Screen {
public var container:Sprite;
public function Screen():void{
if (Boot_BA08CD.skip_constructor){
return;
};
container = new Sprite();
}
public function getContainer():Sprite{
return (container);
}
}
var _local1 = [OP_NEWCLASS ClassInfo:54 base:Object];
??getglobalscope
.LevelStatus = _local1;
var _slot1 = new LevelStatus("FINISHED", null);
var _slot2 = new LevelStatus("STARTED", null);
var _slot3 = new LevelStatus("VOID", null);
_local1 = [OP_NEWCLASS ClassInfo:96 base:Object];
??getglobalscope
.ProjectileBaseType = _local1;
var _slot1 = new ProjectileBaseType("LIGHTNING", null);
var _slot2 = new ProjectileBaseType("MISSILE", null);
var _slot3 = new ProjectileBaseType("NORMAL", null);
_local1 = [OP_NEWCLASS ClassInfo:101 base:Object];
??getglobalscope
.MissionStatus = _local1;
var _slot1 = new MissionStatus("CLEAR", null);
var _slot2 = new MissionStatus("CLEARALL", null);
var _slot3 = new MissionStatus("START", null);
[OP_NEWCLASS ClassInfo:136 base:Object].trace = function (_arg1:Object, _arg2:Object=undefined):void{
Boot_BA08CD.__trace(_arg1, _arg2);
};
[OP_NEWCLASS ClassInfo:136 base:Object].clear = function ():void{
Boot_BA08CD.__clear_trace();
};
[OP_NEWCLASS ClassInfo:136 base:Object].setColor = function (_arg1:int):void{
Boot_BA08CD.__set_trace_color(_arg1);
};
_local1 = [OP_NEWCLASS ClassInfo:144 base:Object];
??getglobalscope
.ValueType = _local1;
var _slot1 = new ValueType("TBool", null);
var _slot4 = new ValueType("TFloat", null);
var _slot5 = new ValueType("TFunction", null);
var _slot6 = new ValueType("TInt", null);
var _slot7 = new ValueType("TNull", null);
var _slot8 = new ValueType("TObject", null);
var _slot9 = new ValueType("TUnknown", null);
??getglobalscope
.Boot_BA08CD.init = function ():void{
Date.now = function ():Date{
return (new (Date));
};
Date.fromTime = function (_arg1:Number):Date{
var _local2 = (new (Date) as Date);
_local2.setTime(_arg1);
return (_local2);
};
Date.fromString = function (_arg1:String):Date{
var _local3 = (null as Array);
var _local4 = (null as Date);
var _local5 = (null as Array);
var _local6 = (null as Array);
var _local2:int = _arg1.length;
if (_local2 == 8){
_local3 = (_arg1.split(":") as Array);
_local4 = (new (Date) as Date);
_local4.setTime(0);
_local4.setUTCHours((_local3[0] as String));
_local4.setUTCMinutes((_local3[1] as String));
_local4.setUTCSeconds((_local3[2] as String));
return (_local4);
} else {
if (_local2 == 10){
_local3 = (_arg1.split("-") as Array);
return (new Date(_local3[0], ((_local3[1] as String) - 1), _local3[2], 0, 0, 0));
} else {
if (_local2 == 19){
_local3 = (_arg1.split(" ") as Array);
_local5 = ((_local3[0] as String).split("-") as Array);
_local6 = ((_local3[1] as String).split(":") as Array);
return (new Date(_local5[0], ((_local5[1] as String) - 1), _local5[2], _local6[0], _local6[1], _local6[2]));
} else {
throw ((("Invalid date format : " + _arg1) as String));
};
};
};
};
Date.prototype["toString"] = function ():String{
var _local1:int = (this.getMonth() + 1);
var _local2:int = this.getDate();
var _local3:int = this.getHours();
var _local4:int = this.getMinutes();
var _local5:int = this.getSeconds();
return (((((((((((((((((((((this.getFullYear() + "-") as String) + ((_local1 < 10)) ? (("0" + _local1) as String) : (("" + _local1) as String)) as String) + "-") as String) + ((_local2 < 10)) ? (("0" + _local2) as String) : (("" + _local2) as String)) as String) + " ") as String) + ((_local3 < 10)) ? (("0" + _local3) as String) : (("" + _local3) as String)) as String) + ":") as String) + ((_local4 < 10)) ? (("0" + _local4) as String) : (("" + _local4) as String)) as String) + ":") as String) + ((_local5 < 10)) ? (("0" + _local5) as String) : (("" + _local5) as String)) as String));
};
Math.NaN = Number.NaN;
Math.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY;
Math.POSITIVE_INFINITY = Number.POSITIVE_INFINITY;
Math.isFinite = function (_arg1:Number):Boolean{
return (isFinite(_arg1));
};
Math.isNaN = function (_arg1:Number):Boolean{
return (isNaN(_arg1));
};
var _local1 = ??getglobalscope
.ParticleManager;
var _slot1 = new List();
var _slot2:int;
_local1 = ??getglobalscope
.Boot_BA08CD;
var _slot5:Boolean;
_local1 = ??getglobalscope
.Config;
var _slot1 = ["www.flashgamelicense.com", "www.fantasticchoice.com", "flashgamelicense.com", "fantasticchoice.com", "117.103.174.67"];
var _slot2 = "http://117.103.174.67/soybean/amfphp/gateway.php";
var _slot3 = "http://rankz.armorbot.com/sentinelsofmijil/";
var _slot4 = "http://www.armorgames.com/";
var _slot5 = "http://www.hallpass.com/";
var _slot6 = 10;
var _slot7 = 100;
var _slot8 = 5;
var _slot9 = 30;
var _slot10 = 10;
var _slot11 = 10000;
var _slot12 = 0.8;
var _slot13 = 0.3;
var _slot14 = 7;
var _slot15 = Std.string("W").charCodeAt(0);
var _slot16 = Std.string("S").charCodeAt(0);
var _slot17 = Std.string("A").charCodeAt(0);
var _slot18 = Std.string("D").charCodeAt(0);
var _slot19 = Keyboard.SPACE;
var _slot20 = Std.string("T").charCodeAt(0);
var _slot21 = Std.string("E").charCodeAt(0);
var _slot22 = Keyboard.ESCAPE;
var _slot23 = 500;
var _slot24 = 20;
var _slot25 = 100;
var _slot26 = 5;
var _slot27 = {maxLifetime:100, minLifetime:50, maxSpeed:6, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot28 = {particleClass:RuneRunningParticle, particleData:Config.runeRunningParticle, lifetime:-1, count:50, radius:500};
var _slot29 = {maxLifetime:15, minLifetime:10, maxSpeed:5, minSpeed:3, maxAngle:360, minAngle:0};
var _slot30 = {particleClass:ProjectileAExplosionParticle, particleData:Config.projectileAExplosionParticle, lifetime:10, count:5, radius:0};
var _slot31 = {maxLifetime:15, minLifetime:10, maxSpeed:5, minSpeed:3, maxAngle:360, minAngle:0};
var _slot32 = {particleClass:ProjectileBExplosionParticle, particleData:Config.projectileBExplosionParticle, lifetime:10, count:5, radius:0};
var _slot33 = {maxLifetime:15, minLifetime:10, maxSpeed:5, minSpeed:3, maxAngle:360, minAngle:0};
var _slot34 = {particleClass:ProjectileCExplosionParticle, particleData:Config.projectileCExplosionParticle, lifetime:10, count:5, radius:0};
var _slot35 = {maxLifetime:50, minLifetime:25, maxSpeed:10, minSpeed:7, maxAngle:360, minAngle:0};
var _slot36 = {particleClass:ProjectileCExplosionParticle, particleData:Config.projectileDExplosionParticle, lifetime:10, count:25, radius:0};
var _slot37 = {maxLifetime:75, minLifetime:50, maxSpeed:10, minSpeed:7, maxAngle:360, minAngle:0};
var _slot38 = {particleClass:ProjectileCExplosionParticle, particleData:Config.projectileEExplosionParticle, lifetime:10, count:25, radius:0};
var _slot39 = {maxLifetime:150, minLifetime:100, maxSpeed:10, minSpeed:7, maxAngle:360, minAngle:0};
var _slot40 = {particleClass:ProjectileCExplosionParticle, particleData:Config.projectileFExplosionParticle, lifetime:10, count:25, radius:0};
var _slot41 = {maxLifetime:15, minLifetime:15, maxSpeed:0, minSpeed:0, maxAngle:0, minAngle:0};
var _slot42 = {particleClass:ProjectileSBurstParticle, particleData:Config.projectileSBurstParticle, lifetime:-1, count:-1, radius:0};
var _slot43 = {maxLifetime:5, minLifetime:5, maxSpeed:0, minSpeed:0, maxAngle:0, minAngle:0};
var _slot44 = {particleClass:ProjectileGBurstParticle, particleData:Config.projectileGBurstParticle, lifetime:-1, count:-1, radius:0};
var _slot45 = {maxLifetime:5, minLifetime:5, maxSpeed:0, minSpeed:0, maxAngle:0, minAngle:0};
var _slot46 = {particleClass:ProjectileJBurstParticle, particleData:Config.projectileJBurstParticle, lifetime:-1, count:-1, radius:0};
var _slot47 = {maxLifetime:5, minLifetime:5, maxSpeed:0, minSpeed:0, maxAngle:0, minAngle:0};
var _slot48 = {particleClass:ProjectilePBurstParticle, particleData:Config.projectilePBurstParticle, lifetime:-1, count:-1, radius:0};
var _slot49 = {maxLifetime:5, minLifetime:5, maxSpeed:0, minSpeed:0, maxAngle:0, minAngle:0};
var _slot50 = {particleClass:ProjectileVBurstParticle, particleData:Config.projectileVBurstParticle, lifetime:-1, count:-1, radius:0};
var _slot51 = {maxLifetime:35, minLifetime:10, maxSpeed:8, minSpeed:8, maxAngle:360, minAngle:0};
var _slot52 = {particleClass:EnemyAExplosionParticle, particleData:Config.enemyAExplosionParticle, lifetime:25, count:45, radius:0};
var _slot53 = {maxLifetime:55, minLifetime:40, maxSpeed:3, minSpeed:2, maxAngle:360, minAngle:0};
var _slot54 = {particleClass:EnemyRuneExplosionParticle, particleData:Config.enemyRuneExplosionParticle, lifetime:30, count:5, radius:0};
var _slot55 = {maxLifetime:40, minLifetime:20, maxSpeed:5, minSpeed:3, maxAngle:360, minAngle:0};
var _slot56 = {particleClass:PlayerExplosionParticle, particleData:Config.playerExplosionParticle, lifetime:25, count:55, radius:0};
var _slot57 = {maxLifetime:35, minLifetime:10, maxSpeed:8, minSpeed:8, maxAngle:360, minAngle:0};
var _slot58 = {particleClass:EnemyTeleportParticle, particleData:Config.enemyTeleportParticle, lifetime:25, count:45, radius:0};
var _slot59 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot60 = {particleClass:EnemyAScoreExplosionParticle, particleData:Config.enemyAScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot61 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot62 = {particleClass:EnemyBScoreExplosionParticle, particleData:Config.enemyBScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot63 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot64 = {particleClass:EnemyCScoreExplosionParticle, particleData:Config.enemyCScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot65 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot66 = {particleClass:EnemyDScoreExplosionParticle, particleData:Config.enemyDScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot67 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot68 = {particleClass:EnemyEScoreExplosionParticle, particleData:Config.enemyEScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot69 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot70 = {particleClass:EnemyFScoreExplosionParticle, particleData:Config.enemyFScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot71 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot72 = {particleClass:EnemyGScoreExplosionParticle, particleData:Config.enemyGScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot73 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot74 = {particleClass:EnemyHScoreExplosionParticle, particleData:Config.enemyHScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot75 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot76 = {particleClass:EnemyMineScoreExplosionParticle, particleData:Config.enemyMineScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot77 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot78 = {particleClass:BossAScoreExplosionParticle, particleData:Config.bossAScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot79 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot80 = {particleClass:BossBScoreExplosionParticle, particleData:Config.bossBScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot81 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot82 = {particleClass:BossCScoreExplosionParticle, particleData:Config.bossCScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot83 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot84 = {particleClass:BossDScoreExplosionParticle, particleData:Config.bossDScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot85 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot86 = {particleClass:BossMineScoreExplosionParticle, particleData:Config.bossMineScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot87 = {maxLifetime:120, minLifetime:120, maxSpeed:2, minSpeed:2, maxAngle:-90, minAngle:-90};
var _slot88 = {particleClass:SpawnerScoreExplosionParticle, particleData:Config.spawnerScoreExplosionParticle, lifetime:120, count:1, radius:0};
var _slot89 = {maxLifetime:40, minLifetime:40, maxSpeed:3, minSpeed:3, maxAngle:-90, minAngle:-90};
var _slot90 = {particleClass:ComboParticle, particleData:Config.comboParticle, lifetime:20, count:1, radius:0};
var _slot91 = {desc:"Simple, very low energy consumption. Standard operational weapon.", openTile:new Rectangle(224, 0, 32, 128), activeTile:new Rectangle(0, 0, 32, 128), buypoint:0, damage:10, deploySound:"BasicProjectile", name:"BUMBLEBEE", spriteClass:"Player_BasicShort", projectileClass:ProjectileA, spread:0, cooldown:7, burnings:0, heatup:0};
var _slot92 = {desc:"Slightly advance, giving more range than BumbleBee. First level of tech upgrade.", openTile:new Rectangle(0x0100, 0, 32, 128), activeTile:new Rectangle(32, 0, 32, 128), buypoint:1, damage:10, deploySound:"BasicProjectile", name:"KILLERBEE", spriteClass:"Player_BasicLong", projectileClass:ProjectileB, spread:0, cooldown:7, burnings:0, heatup:0};
var _slot93 = {desc:"Spreaded light cannon. Slightly higher energy consumption, and damage.", openTile:new Rectangle(416, 0, 32, 128), activeTile:new Rectangle(192, 0, 32, 128), buypoint:6, damage:25, deploySound:"LightCannon", name:"FALCONET", spriteClass:"Player_LCannonShort", projectileClass:ProjectileG, spread:0, cooldown:7, burnings:0, heatup:5};
var _slot94 = {desc:"Targeted medium cannon. With targeted, the weapon has no range of fire. It goes all the way to target.", openTile:new Rectangle(352, 128, 32, 128), activeTile:new Rectangle(128, 128, 32, 128), buypoint:22, damage:30, deploySound:"MediumCannon", name:"VENGEANCE", spriteClass:"Player_MCannonTarget", projectileClass:ProjectileK, spread:0, cooldown:5, burnings:0, heatup:10};
var _slot95 = {desc:"Targeted heavy cannon, piercing. Higher damage, same energy consumption. Piercing enables to cut-through several enemy craft in a single shot.", openTile:new Rectangle(416, 128, 32, 128), activeTile:new Rectangle(192, 128, 32, 128), buypoint:45, damage:45, deploySound:"HeavyCannon", name:"HYEONJA", spriteClass:"Player_HCannonTargetPierce", projectileClass:ProjectileQ, spread:0, cooldown:5, burnings:0, heatup:10};
var _slot96 = {desc:"Laser-based. Slightly more efficient than cannons. Burnings escalates the damage.", openTile:new Rectangle(288, 0x0100, 32, 128), activeTile:new Rectangle(64, 0x0100, 32, 128), buypoint:70, damage:20, deploySound:"Lasers", name:"KERIS", spriteClass:"Player_LaserCannonTarget", projectileClass:ProjectileN, spread:0, cooldown:5, burnings:15, heatup:5};
var _slot97 = {desc:"Laser-based, piercing. The ultimate killer laser-base weapon.", openTile:new Rectangle(320, 0x0100, 32, 128), activeTile:new Rectangle(96, 0x0100, 32, 128), buypoint:90, damage:25, deploySound:"Lasers", name:"ZULFIQAR", spriteClass:"Player_LaserCannonTargetPierce", projectileClass:ProjectileO, spread:0, cooldown:5, burnings:20, heatup:5};
var _slot98 = {desc:"Modified BumbleBee, with spreaded muzzle for wider attack range.", openTile:new Rectangle(320, 0, 32, 128), activeTile:new Rectangle(96, 0, 32, 128), buypoint:2, damage:10, deploySound:"BasicProjectile", name:"BUZZ SWARMER", spriteClass:"Player_BasicSpread", projectileClass:ProjectileD, spread:1, cooldown:10, burnings:0, heatup:15};
var _slot99 = {desc:"Slightly advance, giving more range and faster projectile speed than Buzz Swarmer.", openTile:new Rectangle(352, 0, 32, 128), activeTile:new Rectangle(128, 0, 32, 128), buypoint:4, damage:10, deploySound:"BasicProjectile", name:"HORNET HAIL", spriteClass:"Player_BasicSpreadLong", projectileClass:ProjectileE, spread:1, cooldown:10, burnings:0, heatup:15};
var _slot100 = {desc:"Modified light cannon with spreaded muzzle. Fast and long-ranged.", openTile:new Rectangle(224, 128, 32, 128), activeTile:new Rectangle(0, 128, 32, 128), buypoint:8, damage:25, deploySound:"LightCannon", name:"WARSCREAMER", spriteClass:"Player_LCannonSpread", projectileClass:ProjectileH, spread:1, cooldown:10, burnings:0, heatup:15};
var _slot101 = {desc:"Targeted medium spread cannon. Larger and faster than WarScreamer with no range limit.", openTile:new Rectangle(320, 128, 32, 128), activeTile:new Rectangle(96, 128, 32, 128), buypoint:42, damage:30, deploySound:"MediumCannon", name:"ENFORCER", spriteClass:"Player_MCannonPierce", projectileClass:ProjectileL, spread:1, cooldown:10, burnings:0, heatup:15};
var _slot102 = {desc:"Spreaded heavy cannon with piercing tech. Piercing enables to cut-through several enemy craft at one shot.", openTile:new Rectangle(224, 0x0100, 32, 128), activeTile:new Rectangle(0, 0x0100, 32, 128), buypoint:71, damage:45, deploySound:"HeavyCannon", name:"HELLBREAKER", spriteClass:"Player_HCannonTargetSpreadPierce", projectileClass:ProjectileR, spread:1, cooldown:15, burnings:0, heatup:15};
var _slot103 = {desc:"Missile-based, single-targeted. The Ezra'eil is a fast semi-swarming missile-based with high-damage. Top-notch weapon.", openTile:new Rectangle(352, 0x0100, 32, 128), activeTile:new Rectangle(128, 0x0100, 32, 128), buypoint:40, damage:70, deploySound:"Missiles", name:"EZRA'EIL", spriteClass:"Player_MissileTarget", projectileClass:ProjectileS, spread:0, cooldown:0, burnings:0, heatup:15};
var _slot104 = {desc:"Missile-based, multi-targeted. Heavier than Ezra'eil, the multi-targeted feature gives more advantage to the Drail.", openTile:new Rectangle(384, 0x0100, 32, 128), activeTile:new Rectangle(160, 0x0100, 32, 128), buypoint:75, damage:70, deploySound:"Missiles", name:"DRAIL", spriteClass:"Player_MissileTargetSpread", projectileClass:ProjectileT, spread:1, cooldown:0, burnings:0, heatup:15};
var _slot105 = {desc:"Missile-based, multi-targeted, piercing. The Zeus of all weapons.", openTile:new Rectangle(416, 0x0100, 32, 128), activeTile:new Rectangle(192, 0x0100, 32, 128), buypoint:100, damage:70, deploySound:"Missiles", name:"ISRAAFIYL", spriteClass:"Player_MissileTargetSpreadPierce", projectileClass:ProjectileU, spread:1, cooldown:0, burnings:0, heatup:15};
var _slot106 = 14;
var _slot107 = 30;
var _slot108 = 52;
var _slot109 = 2;
var _slot110 = 2;
var _slot111 = {particleData:Config.projectileDExplosionEmitter, desc:"Basic bomb, small radius, but good enough to clear some space.", name:"XION BOMB", upgradepoint:0, buypoint:20, cooldown:2000, damage:999999, radius:100};
var _slot112 = {particleData:Config.projectileEExplosionEmitter, desc:"Medium bomb, larger radius, faster cooldown.", name:"PHOTON BOMB", upgradepoint:40, buypoint:20, cooldown:1500, damage:999999, radius:175};
var _slot113 = {particleData:Config.projectileFExplosionEmitter, desc:"Heavy bomb. Literally clears the system from baddies. Best to ignite on the system center. Very fast cooldown.", name:"NOVA BOMB", upgradepoint:60, buypoint:20, cooldown:1000, damage:999999, radius:250};
var _slot114 = {row:0, col:1};
var _slot115 = {row:0, col:0};
var _slot116 = {row:0, col:2};
var _slot117 = {row:1, col:2};
var _slot118 = {row:1, col:0};
var _slot119 = {row:2, col:2};
var _slot120 = {row:2, col:0};
var _slot121 = {row:3, col:2};
var _slot122 = {row:4, col:0};
var _slot123 = {row:5, col:0};
var _slot124 = {row:3, col:0};
var _slot125 = {row:5, col:2};
var _slot126 = {row:3, col:1};
var _slot127 = {row:5, col:1};
var _slot128 = {row:7, col:1};
var _slot129 = {stunRadius:0, stunPlayer:false, spawnOnDeath:false, spawnOnHit:false, worth:60, hitpoint:125, spawnEnemy:EnemyA, spawnCount:6, spawnTime:500};
var _slot130 = {stunRadius:0, stunPlayer:false, spawnOnDeath:false, spawnOnHit:false, worth:60, hitpoint:125, spawnEnemy:EnemyB, spawnCount:6, spawnTime:500};
var _slot131 = {stunRadius:0, stunPlayer:false, spawnOnDeath:false, spawnOnHit:false, worth:60, hitpoint:150, spawnEnemy:EnemyC, spawnCount:4, spawnTime:550};
var _slot132 = {stunRadius:0, stunPlayer:false, spawnOnDeath:false, spawnOnHit:false, worth:70, hitpoint:150, spawnEnemy:EnemyD, spawnCount:4, spawnTime:550};
var _slot133 = {stunRadius:0, stunPlayer:false, spawnOnDeath:false, spawnOnHit:false, worth:70, hitpoint:150, spawnEnemy:EnemyE, spawnCount:4, spawnTime:550};
var _slot134 = {stunRadius:0, stunPlayer:false, spawnOnDeath:false, spawnOnHit:false, worth:400, hitpoint:1400, spawnEnemy:[EnemyA, EnemyC, EnemyE], spawnCount:8, spawnTime:500};
var _slot135 = {worth:10, hitpoint:20};
var _slot136 = {worth:20, hitpoint:40};
var _slot137 = {worth:20, hitpoint:40};
var _slot138 = {worth:25, hitpoint:80};
var _slot139 = {worth:30, hitpoint:90};
var _slot140 = {worth:35, hitpoint:100};
var _slot141 = {worth:40, hitpoint:120};
var _slot142 = {worth:50, hitpoint:150};
var _slot143 = {worth:5, hitpoint:20};
var _slot144 = {worth:10, hitpoint:80};
var _slot145 = {worth:200, hitpoint:400};
var _slot146 = {worth:300, hitpoint:1000};
var _slot147 = {worth:400, hitpoint:1600};
var _slot148 = {worth:10, hitpoint:20};
_local1 = ??getglobalscope
.TutorialManager;
var _slot1:Boolean;
var _slot2:Boolean;
var _slot17 = new Timer(Config.mainTick);
var _slot20 = {selectable:false, align:TextFormatAlign.LEFT, embedFonts:true, color:0xFFFFFF, size:8, font:new DescStandard().fontName};
_local1 = ??getglobalscope
.ProjectileManager;
var _slot1 = new Array();
_local1 = ??getglobalscope
.Tweener;
var _slot2:Boolean;
var _slot3:Boolean;
var _slot6 = 1;
_local1 = ??getglobalscope
.CollisionManager;
var _slot1 = 25;
_local1 = ??getglobalscope
.KeyMouseManager;
var _slot1 = Lib.current.stage;
var _slot2 = new IntHash();
var _slot3 = new IntHash();
var _slot4 = new List();
_local1 = ??getglobalscope
.Unserializer;
var _slot1 = Type;
_local1 = ??getglobalscope
.Serializer;
var _slot1:Boolean;
_local1 = ??getglobalscope
.@Main;
var _slot1 = Main.main();
};
var _local2 = (new Dictionary() as Dictionary);
??getglobalscope
.Boot_BA08CD.__res = _local2;
}//package utils.ui
import flash.display.*;
import game.screens.*;
import flash.*;
import game.*;
import flash.geom.*;
import flash.text.*;
import flash.filters.*;
import flash.utils.*;
import flash.events.*;
import utils.logger.*;
import caurina.transitions.*;
import game.managers.*;
import game.entities.*;
import flash.ui.*;
import game.entities.template.*;
import utils.*;
import game.entities.projectile.*;
import game.entities.enemies.*;
import game.missions.*;
import game.entities.particles.*;
import flash.net.*;
import flash.system.*;
import haxe.*;
import flash.media.*;
import haxe.remoting.*;
class PlayScreen extends Screen {
public var weaponslot2:Label;
public var weaponslot1:Label;
public var waveBar:Sprite;
public var waveBGBar:Sprite;
public var techpointContainer:Sprite;
public var techpoint:Label;
public var systemHPBar:Sprite;
public var systemHPBGBar:Sprite;
public var stage:Stage;
public var sectorClear:Sprite;
public var scoreContainer:Sprite;
public var score:Label;
public var rstylesmall:Object;
public var rstyle:Object;
public var projectileContainer:Sprite;
public var playerContainer:Sprite;
public var player:Player;
public var particleContainer:Sprite;
public var mission5Sector:Sprite;
public var mission4Sector:Sprite;
public var mission3Sector:Sprite;
public var mission2Sector:Sprite;
public var mission1Sector:Sprite;
public var mainTick:Timer;
public var lstylesmall:Object;
public var lstyle:Object;
public var lives:Label;
public var levelsContainer:Sprite;
public var levels:Label;
public var isPlayerInControl:Boolean;
public var isBombReady:Boolean;
public var hudCustomInfo:Sprite;
public var hudContainer:Sprite;
public var hudBonusTime:Sprite;
public var enemyContainer:Sprite;
public var curtechpointsContainer:Sprite;
public var curtechpoints:Label;
public var cstyle:Object;
public var crosshairContainer:Sprite;
public var crosshair:Sprite;
public var boundary:Sprite;
public var bombqtycooldown:Label;
public var bombqtyMask:Sprite;
public var bombqty:Label;
public var bombcooldown:Label;
public var barMarks:Sprite;
public var background:Sprite;
public var allSectorsClear:Sprite;
public var FPS:FPS;
public function PlayScreen():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
isPlayerInControl = false;
stage = Lib.current.stage;
background = new Sprite();
playerContainer = new Sprite();
projectileContainer = new Sprite();
enemyContainer = new Sprite();
particleContainer = new Sprite();
crosshairContainer = new Sprite();
hudContainer = new Sprite();
particleContainer.alpha = 0.8;
hudContainer.alpha = 0.7;
crosshair = new Sprite();
crosshair.graphics.lineStyle(1, 0xFFFFFF);
crosshair.graphics.drawRect(-3, -3, 6, 6);
crosshairContainer.addChild(crosshair);
boundary = new Sprite();
boundary.graphics.lineStyle(1, 0xFFFFFF, 0.2);
boundary.graphics.drawRect(0, 0, 490, 490);
boundary.x = 5;
boundary.y = 5;
var _local1 = (new BitmapData(128, 80, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(0, 0, 128, 80), new Point(0, 0));
mission1Sector = new Sprite();
mission1Sector.addChild(new Bitmap(_local1));
mission1Sector.x = (-(mission1Sector.width) / 2);
mission1Sector.y = (-(mission1Sector.height) / 2);
var _local2 = (new BitmapData(128, 80, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(128, 0, 128, 80), new Point(0, 0));
mission2Sector = new Sprite();
mission2Sector.addChild(new Bitmap(_local2));
mission2Sector.x = (-(mission1Sector.width) / 2);
mission2Sector.y = (-(mission1Sector.height) / 2);
var _local3 = (new BitmapData(128, 80, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(0, 80, 128, 80), new Point(0, 0));
mission3Sector = new Sprite();
mission3Sector.addChild(new Bitmap(_local3));
mission3Sector.x = (-(mission1Sector.width) / 2);
mission3Sector.y = (-(mission1Sector.height) / 2);
var _local4 = (new BitmapData(128, 80, true) as BitmapData);
_local4.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(128, 80, 128, 80), new Point(0, 0));
mission4Sector = new Sprite();
mission4Sector.addChild(new Bitmap(_local4));
mission4Sector.x = (-(mission1Sector.width) / 2);
mission4Sector.y = (-(mission1Sector.height) / 2);
var _local5 = (new BitmapData(128, 80, true) as BitmapData);
_local5.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(0, 160, 128, 80), new Point(0, 0));
mission5Sector = new Sprite();
mission5Sector.addChild(new Bitmap(_local5));
mission5Sector.x = (-(mission1Sector.width) / 2);
mission5Sector.y = (-(mission1Sector.height) / 2);
var _local6 = (new BitmapData(128, 80, true) as BitmapData);
_local6.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(0x0100, 0, 128, 80), new Point(0, 0));
sectorClear = new Sprite();
sectorClear.addChild(new Bitmap(_local6));
sectorClear.x = (-(sectorClear.width) / 2);
sectorClear.y = (-(sectorClear.height) / 2);
var _local7 = (new BitmapData(176, 160, true) as BitmapData);
_local7.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(0x0100, 112, 176, 160), new Point(0, 0));
allSectorsClear = new Sprite();
allSectorsClear.addChild(new Bitmap(_local7));
allSectorsClear.x = (-(allSectorsClear.width) / 2);
allSectorsClear.y = (-(allSectorsClear.height) / 2);
lstyle = {selectable:false, align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, color:0xFFFFFF, size:16, font:new ScoreStandard().fontName};
lstylesmall = {selectable:false, align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, color:0xFFFFFF, size:8, font:new DescStandard().fontName};
rstyle = {selectable:false, align:TextFormatAlign.RIGHT, autosize:TextFieldAutoSize.RIGHT, embedFonts:true, color:0xFFFFFF, size:16, font:new ScoreStandard().fontName};
rstylesmall = {selectable:false, align:TextFormatAlign.RIGHT, autosize:TextFieldAutoSize.RIGHT, embedFonts:true, color:0xFFFFFF, size:8, font:new DescStandard().fontName};
cstyle = {selectable:false, align:TextFormatAlign.CENTER, autosize:TextFieldAutoSize.CENTER, embedFonts:true, color:0xFFFFFF, size:16, font:new ScoreStandard().fontName};
lives = new Label((("LIVES: " + Profile.lives) as String), rstylesmall);
score = new Label(Std.string(Profile.score), rstyle);
levels = new Label("LEVEL.01", cstyle);
techpoint = new Label("+1 TECHPOINT!", rstyle);
curtechpoints = new Label((("TECHPOINT: " + Profile.techpoint) as String), rstylesmall);
weaponslot1 = new Label("------", lstyle);
weaponslot2 = new Label("------", lstylesmall);
bombqty = new Label("BOMB: 0", lstylesmall);
bombqtycooldown = new Label("BOMB: 0", lstylesmall);
bombqtycooldown.getTextField().alpha = 0.5;
bombcooldown = new Label("BOMB READY", lstyle);
bombcooldown.getTextField().alpha = 0;
bombqtyMask = new Sprite();
bombqtyMask.graphics.beginFill(0xFFFFFF);
bombqtyMask.graphics.drawRect(0, -10, 200, 10);
bombqty.getTextField().mask = bombqtyMask;
isBombReady = true;
barMarks = new Sprite();
barMarks.addChild(new Bitmap(Assets.objects.get("BarMarks")));
waveBar = new Sprite();
waveBar.graphics.beginFill(0xFFFFFF, 0.8);
waveBar.graphics.drawRect(-100, 0, 200, 3);
waveBGBar = new Sprite();
waveBGBar.graphics.beginFill(0xFFFFFF, 0.2);
waveBGBar.graphics.drawRect(-100, 0, 200, 3);
systemHPBar = new Sprite();
systemHPBar.graphics.beginFill(0xFFFFFF, 0.8);
systemHPBar.graphics.drawRect(-100, 0, 200, 3);
systemHPBGBar = new Sprite();
systemHPBGBar.graphics.beginFill(0xFFFFFF, 0.2);
systemHPBGBar.graphics.drawRect(-100, 0, 200, 3);
var _local8 = (new BitmapData(96, 16, true) as BitmapData);
_local8.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(384, 0, 96, 16), new Point(0, 0));
hudBonusTime = new Sprite();
hudBonusTime.addChild(new Bitmap(_local8));
hudBonusTime.alpha = 0;
hudBonusTime.y = 20;
hudBonusTime.x = (250 - (hudBonusTime.width / 2));
hudCustomInfo = new Sprite();
hudCustomInfo.y = 700;
hudCustomInfo.x = 250;
hudCustomInfo.filters = [new GlowFilter(0xFFFFFF, 0.7, 2, 2, 2, 3, false, false)];
scoreContainer = new Sprite();
score.getTextField().x = -(score.getTextField().width);
scoreContainer.addChild(score.getTextField());
scoreContainer.x = (500 - 6);
scoreContainer.y = 2;
lives.getTextField().x = ((stage.stageWidth - lives.getTextField().width) - 7);
lives.getTextField().y = 20;
levelsContainer = new Sprite();
levels.getTextField().x = (-(levels.getTextField().width) / 2);
levelsContainer.addChild(levels.getTextField());
levelsContainer.x = 250;
levelsContainer.y = 468;
levelsContainer.alpha = 0.3;
techpointContainer = new Sprite();
techpoint.getTextField().x = -(techpoint.getTextField().width);
techpointContainer.addChild(techpoint.getTextField());
techpointContainer.x = (500 - 6);
techpointContainer.y = 476;
techpointContainer.alpha = 0;
curtechpointsContainer = new Sprite();
curtechpoints.getTextField().x = -(curtechpoints.getTextField().width);
curtechpointsContainer.addChild(curtechpoints.getTextField());
curtechpointsContainer.x = (500 - 6);
curtechpointsContainer.y = 476;
weaponslot1.getTextField().x = 8;
weaponslot2.getTextField().x = 9;
weaponslot1.getTextField().y = 2;
weaponslot2.getTextField().y = 2;
barMarks.x = 143;
barMarks.y = 11;
var _local9:* = 107;
systemHPBGBar.x = _local9;
systemHPBar.x = _local9;
_local9 = 8;
systemHPBGBar.y = _local9;
systemHPBar.y = _local9;
_local9 = 107;
waveBGBar.x = _local9;
waveBar.x = _local9;
_local9 = 14;
waveBGBar.y = _local9;
waveBar.y = _local9;
bombqty.getTextField().x = 8;
bombqty.getTextField().y = 476;
bombqtycooldown.getTextField().x = 8;
bombqtycooldown.getTextField().y = 476;
bombcooldown.getTextField().x = 8;
bombcooldown.getTextField().y = 476;
bombqtyMask.x = 8;
bombqtyMask.y = 492;
barMarks.addChild(systemHPBar);
barMarks.addChild(systemHPBGBar);
barMarks.addChild(waveBar);
barMarks.addChild(waveBGBar);
hudContainer.addChild(lives.getTextField());
hudContainer.addChild(scoreContainer);
hudContainer.addChild(weaponslot1.getTextField());
hudContainer.addChild(weaponslot2.getTextField());
hudContainer.addChild(barMarks);
hudContainer.addChild(curtechpointsContainer);
hudContainer.addChild(hudBonusTime);
hudContainer.addChild(hudCustomInfo);
hudContainer.addChild(bombqty.getTextField());
hudContainer.addChild(bombqtyMask);
hudContainer.addChild(bombqtycooldown.getTextField());
hudContainer.addChild(bombcooldown.getTextField());
container.addChild(background);
container.addChild(hudContainer);
container.addChild(levelsContainer);
container.addChild(techpointContainer);
container.addChild(projectileContainer);
container.addChild(enemyContainer);
container.addChild(playerContainer);
container.addChild(particleContainer);
container.addChild(crosshairContainer);
container.addChild(boundary);
mainTick = new Timer(Config.mainTick);
mainTick.addEventListener(TimerEvent.TIMER, onMainTickTimerHandler);
}
public function updateHUDWeaponSlots():void{
weaponslot1.updateLabel((player.weaponSlot[0].name as String));
weaponslot2.updateLabel((player.weaponSlot[1].name as String));
}
public function updateHUDTechpoints(_arg1:int, _arg2:Object=undefined):void{
var _local3:Boolean = ((_arg2 == null)) ? true : _arg2;
curtechpoints.updateLabel((("TECHPOINT: " + Profile.techpoint) as String));
if (_local3){
techpoint.updateLabel((((("+" + Std.string(_arg1)) as String) + " TECHPOINT") as String));
Tweener.addTween(techpointContainer, {transition:"easeOutCubic", time:0.5, scaleY:1, scaleX:1, y:456, alpha:0.8});
Tweener.addTween(techpointContainer, {transition:"easeInCubic", delay:0.5, time:0.5, scaleY:1, scaleX:1, y:476, alpha:0});
};
}
public function updateHUDScore():void{
score.updateLabel(Std.string(Profile.score));
Tweener.addTween(scoreContainer, {transition:"easeOutCubic", time:0.5, scaleY:2, scaleX:2});
Tweener.addTween(scoreContainer, {transition:"easeInCubic", delay:0.5, time:0.5, scaleY:1, scaleX:1});
Tweener.addTween(lives.getTextField(), {transition:"easeOutCubic", time:0.5, y:44});
Tweener.addTween(lives.getTextField(), {transition:"easeInCubic", delay:0.5, time:0.5, y:20});
}
public function updateHUDLives():void{
lives.updateLabel((("LIVES: " + Profile.lives) as String));
}
public function updateHUDLevels():void{
var _local1 = ("" as String);
if ((Profile.curLevel < 10)){
_local1 = (((0 + Std.string(Profile.curLevel)) as String) as String);
} else {
_local1 = (Std.string(Profile.curLevel) as String);
};
levels.updateLabel((("LEVEL." + _local1) as String));
Tweener.addTween(levelsContainer, {transition:"easeOutCubic", time:0.5, scaleY:2, scaleX:2, y:400, alpha:0.7});
Tweener.addTween(levelsContainer, {transition:"easeInCubic", delay:0.5, time:0.5, scaleY:1, scaleX:1, y:468, alpha:0.3});
}
public function updateHUDBombCooldown(_arg1:Number):void{
bombqtyMask.scaleY = _arg1;
if ((bombqtyMask.scaleY == 1)){
false;
};
if (false){
bombqty.getTextField().alpha = 1;
isBombReady = false;
Tweener.addTween(bombcooldown.getTextField(), {transition:"easeOutCubic", time:0.5, scaleY:1, scaleX:1, y:456, alpha:0.8});
Tweener.addTween(bombcooldown.getTextField(), {transition:"easeInCubic", delay:0.5, time:0.5, scaleY:1, scaleX:1, y:476, alpha:0});
} else {
if ((bombqtyMask.scaleY < 1)){
isBombReady = true;
bombqty.getTextField().alpha = 0.6;
};
};
}
public function updateHUDBomb():void{
var _local1:* = Reflect.field(Config, (("bomb" + Profile.bomblvl) as String));
var _local2 = ((((((_local1.name as String).toUpperCase() + ": ") as String) + Profile.bombqty) as String) as String);
bombqty.updateLabel(_local2);
bombqtycooldown.updateLabel(_local2);
}
public function swapWeapon():void{
player.swapWeapon();
var _local1:int = player.weaponSlot.length;
var _local2:int = (player.activeWeaponSlot + 1);
var _local3:int = (((_local2 - 1) <= 0)) ? _local1 : (_local2 - 1);
var _local4 = (Reflect.field(this, (("weaponslot" + _local3) as String)) as Label);
var _local5 = (Reflect.field(this, (("weaponslot" + _local2) as String)) as Label);
_local4.updateLabel(_local4.getTextField().text, null, lstylesmall);
_local5.updateLabel(_local5.getTextField().text, null, lstyle);
Tweener.addTween(_local4.getTextField(), {transition:"easeOutCubic", time:0.5, scaleY:1, scaleX:1, x:9, y:46});
Tweener.addTween(_local4.getTextField(), {transition:"easeInCubic", delay:0.5, time:0.5, scaleY:1, scaleX:1, x:9, y:21});
Tweener.addTween(_local5.getTextField(), {transition:"easeOutCubic", time:0.5, scaleY:2, scaleX:2, x:8, y:2});
Tweener.addTween(_local5.getTextField(), {transition:"easeInCubic", delay:0.5, time:0.5, scaleY:1, scaleX:1, x:8, y:2});
}
public function start():void{
playerCaptureKeys();
mainTick.start();
}
public function setWavePerc(_arg1:Number):void{
waveBar.scaleX = _arg1;
}
public function setSystemHPPerc(_arg1:Number):void{
systemHPBar.scaleX = _arg1;
}
public function setBackground(_arg1:Bitmap):void{
if ((background.numChildren > 0)){
background.removeChildAt(0);
};
background.addChildAt(_arg1, 0);
}
public function reset():void{
MissionManager.clearContainer();
CollisionManager.resetGrids();
ProjectileManager.clearContainer();
ParticleManager.clearContainer();
mainTick.reset();
if ((playerContainer.numChildren > 0)){
player.destroy(false);
};
}
public function releaseBomb():void{
player.releaseBomb();
}
public function playerStopShoot():void{
player.stopshoot();
}
public function playerStopMoveVert():void{
player.vectorY = 0;
}
public function playerStopMoveHorz():void{
player.vectorX = 0;
}
public function playerStartShoot():void{
player.shoot();
}
public function playerReleaseKeys(_arg1:Object=undefined):void{
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (isPlayerInControl){
isPlayerInControl = false;
if (!(_local2)){
Mouse.show();
};
KeyMouseManager.unregisterDownKey(Config.upKey, playerMoveUp);
KeyMouseManager.unregisterDownKey(Config.downKey, playerMoveDown);
KeyMouseManager.unregisterDownKey(Config.rightKey, playerMoveRight);
KeyMouseManager.unregisterDownKey(Config.leftKey, playerMoveLeft);
KeyMouseManager.unregisterDownKey(Config.switchWeapons, swapWeapon);
KeyMouseManager.unregisterDownKey(Config.releaseBomb, releaseBomb);
KeyMouseManager.unregisterDownKey(Config.openTechDialog, openTechDialog);
KeyMouseManager.unregisterDownKey(Config.openMenuDialog, openMenuDialog);
KeyMouseManager.unregisterUpKey(Config.upKey, playerStopMoveVert);
KeyMouseManager.unregisterUpKey(Config.downKey, playerStopMoveVert);
KeyMouseManager.unregisterUpKey(Config.rightKey, playerStopMoveHorz);
KeyMouseManager.unregisterUpKey(Config.leftKey, playerStopMoveHorz);
KeyMouseManager.unregisterDownMouse();
KeyMouseManager.unregisterUpMouse();
KeyMouseManager.unregisterMoveMouse();
};
}
public function playerMoveUp():void{
player.vectorY = -(Profile.speed);
}
public function playerMoveRight():void{
player.vectorX = Profile.speed;
}
public function playerMoveLeft():void{
player.vectorX = -(Profile.speed);
}
public function playerMoveDown():void{
player.vectorY = Profile.speed;
}
public function playerCaptureKeys():void{
if (!(isPlayerInControl)){
isPlayerInControl = true;
Mouse.hide();
KeyMouseManager.registerDownKey(Config.upKey, playerMoveUp);
KeyMouseManager.registerDownKey(Config.downKey, playerMoveDown);
KeyMouseManager.registerDownKey(Config.rightKey, playerMoveRight);
KeyMouseManager.registerDownKey(Config.leftKey, playerMoveLeft);
KeyMouseManager.registerDownKey(Config.switchWeapons, swapWeapon);
KeyMouseManager.registerDownKey(Config.releaseBomb, releaseBomb);
KeyMouseManager.registerDownKey(Config.openTechDialog, openTechDialog);
KeyMouseManager.registerDownKey(Config.openMenuDialog, openMenuDialog);
KeyMouseManager.registerUpKey(Config.upKey, playerStopMoveVert);
KeyMouseManager.registerUpKey(Config.downKey, playerStopMoveVert);
KeyMouseManager.registerUpKey(Config.rightKey, playerStopMoveHorz);
KeyMouseManager.registerUpKey(Config.leftKey, playerStopMoveHorz);
KeyMouseManager.registerDownMouse(playerStartShoot);
KeyMouseManager.registerUpMouse(playerStopShoot);
KeyMouseManager.registerMoveMouse(crosshairFollowMouse);
};
if (TutorialManager.isRunning){
false;
};
if (false){
KeyMouseManager.unregisterDownKey(Config.upKey, playerMoveUp);
KeyMouseManager.unregisterDownKey(Config.downKey, playerMoveDown);
KeyMouseManager.unregisterDownKey(Config.rightKey, playerMoveRight);
KeyMouseManager.unregisterDownKey(Config.leftKey, playerMoveLeft);
KeyMouseManager.unregisterDownKey(Config.releaseBomb, releaseBomb);
KeyMouseManager.unregisterDownKey(Config.openTechDialog, openTechDialog);
KeyMouseManager.unregisterUpKey(Config.upKey, playerStopMoveVert);
KeyMouseManager.unregisterUpKey(Config.downKey, playerStopMoveVert);
KeyMouseManager.unregisterUpKey(Config.rightKey, playerStopMoveHorz);
KeyMouseManager.unregisterUpKey(Config.leftKey, playerStopMoveHorz);
KeyMouseManager.unregisterDownMouse();
KeyMouseManager.unregisterUpMouse();
};
}
public function pause():void{
playerReleaseKeys(false);
mainTick.stop();
}
public function openTechDialog():void{
ScreenManager.showDialog("tech");
pause();
}
public function openMenuDialog():void{
ScreenManager.showDialog("menu");
pause();
}
public function onMainTickTimerHandler(_arg1:TimerEvent):void{
player.update();
ProjectileManager.update();
ParticleManager.update();
MissionManager.update();
CollisionManager.update();
}
public function init():void{
player = new Player(playerContainer, new Rectangle(boundary.x, boundary.y, boundary.width, boundary.height));
weaponslot2.getTextField().y = 21;
ProjectileManager.setupContainer(projectileContainer, new Rectangle(boundary.x, boundary.y, boundary.width, boundary.height));
ParticleManager.setupContainer(particleContainer, mainTick);
MissionManager.setupContainer(enemyContainer, new Rectangle(boundary.x, boundary.y, boundary.width, boundary.height));
if (TutorialManager.isRunning){
TutorialManager.startTutorial();
MissionManager.startMission(0);
} else {
MissionManager.startMission(Profile.curMissionID);
};
setSystemHPPerc(1);
setWavePerc(1);
updateHUDLives();
updateHUDScore();
updateHUDLevels();
updateHUDWeaponSlots();
updateHUDBomb();
updateHUDBombCooldown(1);
updateHUDTechpoints(Profile.techpoint);
}
public function displayCustomHUDInfo(_arg1:MissionStatus, _arg2:String, _arg3:Object):void{
hudCustomInfo.y = (400 - hudCustomInfo.height);
hudCustomInfo.x = 250;
hudCustomInfo.alpha = 0;
if ((hudCustomInfo.numChildren > 0)){
hudCustomInfo.removeChildAt(0);
};
var _local4 = (_arg1 as MissionStatus);
if (_local4 == (MissionStatus.START as MissionStatus)){
hudCustomInfo.addChild(Reflect.field(this, _arg2));
} else {
if (_local4 == (MissionStatus.CLEAR as MissionStatus)){
hudCustomInfo.addChild(sectorClear);
} else {
if (_local4 == (MissionStatus.CLEARALL as MissionStatus)){
hudCustomInfo.addChild(allSectorsClear);
//unresolved jump
};
};
};
Tweener.addTween(hudCustomInfo, {transition:"easeOutCubic", time:2, delay:1, alpha:1, y:250});
Tweener.addTween(hudCustomInfo, {onComplete:_arg3, transition:"easeInCubic", time:2, delay:3, alpha:0, y:100});
}
public function crosshairFollowMouse():void{
player.target(stage.mouseX, stage.mouseY);
crosshair.x = stage.mouseX;
crosshair.y = stage.mouseY;
}
public function captureReleaseBombKey():void{
KeyMouseManager.registerDownKey(Config.releaseBomb, releaseBomb);
}
public function captureOpenTechDialog():void{
KeyMouseManager.registerDownKey(Config.openTechDialog, openTechDialog);
}
public function captureNavigationKeys():void{
KeyMouseManager.registerDownKey(Config.upKey, playerMoveUp);
KeyMouseManager.registerDownKey(Config.downKey, playerMoveDown);
KeyMouseManager.registerDownKey(Config.rightKey, playerMoveRight);
KeyMouseManager.registerDownKey(Config.leftKey, playerMoveLeft);
KeyMouseManager.registerUpKey(Config.upKey, playerStopMoveVert);
KeyMouseManager.registerUpKey(Config.downKey, playerStopMoveVert);
KeyMouseManager.registerUpKey(Config.rightKey, playerStopMoveHorz);
KeyMouseManager.registerUpKey(Config.leftKey, playerStopMoveHorz);
}
public function captureMouse():void{
KeyMouseManager.registerDownMouse(playerStartShoot);
KeyMouseManager.registerUpMouse(playerStopShoot);
}
public function calculateAddedTechPoints(_arg1:int):void{
var _local5:int;
var _local2:Boolean;
var _local3:int;
var _local4:int;
if ((_arg1 >= Config.scoreToTechConvertThreshold)){
_local5 = Math.round((_arg1 / Config.scoreToTechConvertThreshold));
_local4 = Math.round((_arg1 % Config.scoreToTechConvertThreshold));
Profile.techpoint = (Profile.techpoint + _local5);
_local3 = (_local3 + _local5);
_local2 = true;
} else {
_local4 = _arg1;
};
Profile.score4tech = (Profile.score4tech + _local4);
if ((Profile.score4tech >= Config.scoreToTechConvertThreshold)){
Profile.score4tech = (Profile.score4tech - Config.scoreToTechConvertThreshold);
Profile.techpoint = (Profile.techpoint + 1);
_local3++;
_local2 = true;
};
if (_local2){
updateHUDTechpoints(_local3);
};
}
public function addBonusTime():void{
Profile.score = (Profile.score + Config.bonusTimeScore);
calculateAddedTechPoints(Config.bonusTimeScore);
updateHUDScore();
if (((Profile.score % Config.scoreToLifeThreshold) == 0)){
Profile.lives = (Profile.lives + 1);
updateHUDLives();
};
Tweener.addTween(hudBonusTime, {transition:"easeOutCubic", time:0.5, scaleY:1, scaleX:1, y:40, alpha:0.8});
Tweener.addTween(hudBonusTime, {transition:"easeInCubic", delay:0.5, time:0.5, scaleY:1, scaleX:1, y:20, alpha:0});
}
}
class Projectile {
public var vector:Vector;
public var useTarget:Boolean;
public var turningSpeed:int;
public var targetPoint:Point;
public var speed:int;
public var projectileSprite:Sprite;
public var maxDistance:int;
public var isFading:Boolean;
public var isEnemy:Boolean;
public var initPoint:Point;
public var hitNDestroy:Boolean;
public var grid:Object;
public var fadeSteps:int;
public var damage:int;
public var currentDistance:Number;
public var baseType:ProjectileBaseType;
public function Projectile(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
isEnemy = false;
isFading = false;
fadeSteps = 5;
speed = 5;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
targetPoint = _arg2;
currentDistance = 0;
maxDistance = 0;
turningSpeed = 0;
useTarget = true;
hitNDestroy = true;
baseType = ProjectileBaseType.NORMAL;
grid = {bottomright:"", bottomleft:"", topright:"", topleft:"", left:"", right:"", bottom:"", top:"", center:""};
projectileSprite = new Sprite();
}
public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
}
public function explode():void{
}
public function destroy(_arg1:Object=undefined):void{
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class ProjectileN extends Projectile {
public function ProjectileN(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileN.damage;
speed = 20;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
baseType = ProjectileBaseType.LIGHTNING;
useTarget = true;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(8, 8, true, 0xFFFFFF) as BitmapData);
Raster.circle(_local4, 0, 0, 4, 0xFFFFFF);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.x = -4;
_local5.y = -4;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
}
class EnemyHSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function EnemyHSprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(14, 14, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -7;
core.y = -7;
var _local2 = (new BitmapData(224, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0x0100, 0, 224, 32), new Point(0, 0));
equip = new MovieTile(_local2, 32, 32);
equip.x = -16;
equip.y = -16;
equipframes = equip.frames;
var _local3 = (new BitmapData(14, 14, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
var _local4:int;
var _local5:int = 14;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 14;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -7;
inflictCore.y = -7;
var _local10 = (new BitmapData(224, 32, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0x0100, 0, 224, 32), new Point(0, 0));
_local4 = 0;
_local5 = 192;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 32;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 32, 32);
inflictEquip.x = -16;
inflictEquip.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function idle():void{
equip.goToFrame(6);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
interface IMission {
}
class Mission implements IMission {
public var regenIntegrityRate:Number;
public var parent:Sprite;
public var nextLevelTime:int;
public var levels:List;
public var lastCheckedTime:int;
public var isLastLevelInMission:Boolean;
public var integrityThreshold:int;
public var hasStarted:Boolean;
public var hasDestroyedPlayer:Boolean;
public var enemies:Array;
public var damageIntegrityRate:Number;
public var currentTime:int;
public var currentLevel:Object;
public var currentIntegrity:Number;
public var boundary:Rectangle;
public function Mission():void{
if (Boot_BA08CD.skip_constructor){
return;
};
levels = new List();
enemies = new Array();
}
public function start():void{
var _local3:* = null;
var _local4:* = null;
var _local5 = (null as Enemy);
hasStarted = true;
nextLevelTime = currentLevel.delay;
var _local1 = ((currentLevel.pattern as List) as List);
var _local2:* = _local1.iterator();
do {
//unresolved if
_local3 = _local2.next();
_local4 = _local3.enemy;
_local5 = (Type.createInstance(Type.toClass(_local4), [parent, boundary, (_local3.pos as Point)]) as Enemy);
enemies.push(_local5);
} while (true);
if (!(SoundManager.isAmbientPlaying())){
SoundManager.playAmbient("mission");
};
}
public function resetPlayerDestroyFlag():void{
hasDestroyedPlayer = false;
}
public function resetIntegrity():void{
currentIntegrity = 1;
}
public function removeEnemy(_arg1:Enemy):void{
enemies.remove(_arg1);
}
public function prepareLevels():void{
}
public function prepare(_arg1:Sprite, _arg2:Rectangle):void{
hasStarted = false;
isLastLevelInMission = false;
hasDestroyedPlayer = false;
parent = _arg1;
boundary = _arg2;
nextLevelTime = 0;
currentTime = 0;
lastCheckedTime = 0;
currentIntegrity = 1;
ScreenManager.playScreen.displayCustomHUDInfo(MissionStatus.START, (((("mission" + Profile.curMissionID) as String) + "Sector") as String), preStart);
prepareLevels();
}
public function preStart():void{
currentLevel = levels.first();
start();
}
public function preEnd():void{
hasStarted = false;
ScreenManager.playScreen.displayCustomHUDInfo(MissionStatus.CLEAR, (((("Mission" + Profile.curMissionID) as String) + "Sector") as String), end);
}
public function next():void{
levels.remove(currentLevel);
if (!(levels.isEmpty())){
currentLevel = levels.first();
start();
} else {
isLastLevelInMission = true;
};
if (!(isLastLevelInMission)){
Profile.curLevel = (Profile.curLevel + 1);
ScreenManager.playScreen.updateHUDLevels();
};
}
public function levelList():List{
return (levels);
}
public function evaluate():void{
var _local1:int;
var _local2 = (null as Enemy);
var _local3:int;
if (hasStarted){
if ((currentTime < nextLevelTime)){
currentTime = (currentTime + 1);
ScreenManager.playScreen.setWavePerc((1 - (currentTime / nextLevelTime)));
} else {
currentTime = 0;
if (!(isLastLevelInMission)){
next();
};
};
_local1 = 0;
do {
//unresolved if
_local2 = ((enemies[_local1] as Enemy) as Enemy);
_local2.update();
_local1++;
} while (true);
if ((enemies.length >= integrityThreshold)){
currentIntegrity = (currentIntegrity - damageIntegrityRate);
} else {
if ((enemies.length > 0)){
false;
};
if (false){
currentIntegrity = (currentIntegrity - ((enemies.length / integrityThreshold) * damageIntegrityRate));
} else {
if ((enemies.length == 0)){
currentIntegrity = (currentIntegrity + regenIntegrityRate);
};
};
};
if ((currentIntegrity > 1)){
currentIntegrity = 1;
} else {
if ((currentIntegrity < 0)){
currentIntegrity = 0;
if (!(hasDestroyedPlayer)){
ScreenManager.playScreen.player.destroy();
hasDestroyedPlayer = true;
if ((Profile.lives >= 0)){
currentIntegrity = 1;
};
};
};
};
ScreenManager.playScreen.setSystemHPPerc(currentIntegrity);
if ((currentIntegrity < 1)){
false;
};
if (false){
currentIntegrity = (currentIntegrity + 0.01);
};
if ((currentTime < nextLevelTime)){
false;
if ((currentIntegrity == 1)){
false;
};
};
if (false){
_local3 = Math.round((((nextLevelTime - currentTime) / nextLevelTime) * 10));
currentTime = (currentTime + Std.int((nextLevelTime * 0.01)));
if (!((lastCheckedTime == _local3))){
lastCheckedTime = _local3;
ScreenManager.playScreen.addBonusTime();
};
};
if (levels.isEmpty()){
false;
};
if (false){
preEnd();
};
};
}
public function enemyList():Array{
return (enemies);
}
public function end():void{
MissionManager.nextMission();
if (!(SoundManager.isAmbientPlaying())){
SoundManager.stopAmbient();
};
}
public function clearEnemies():void{
var _local2 = (null as Enemy);
var _local1:int;
do {
//unresolved if
_local2 = ((enemies[_local1] as Enemy) as Enemy);
enemies.remove(_local2);
_local1++;
} while (true);
if ((enemies.length > 0)){
clearEnemies();
};
}
}
class Mission2 extends Mission {
public var level9:Object;
public var level8:Object;
public var level7:Object;
public var level6:Object;
public var level5:Object;
public var level4:Object;
public var level3:Object;
public var level2:Object;
public var level10:Object;
public var level1:Object;
public function Mission2():void{
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:Number;
var _local9:Number;
var _local10 = (null as Point);
if (Boot_BA08CD.skip_constructor){
return;
};
super();
integrityThreshold = 20;
regenIntegrityRate = 0.001;
damageIntegrityRate = 0.0008;
var _local1 = (new List() as List);
_local1.add({pos:new Point(250, 100), enemy:EnemyD});
_local1.add({pos:new Point(250, 400), enemy:EnemyD});
_local1.add({pos:new Point(100, 250), enemy:EnemyD});
_local1.add({pos:new Point(400, 250), enemy:EnemyD});
level1 = {pattern:_local1, delay:2500, id:1};
var _local2 = (new List() as List);
_local2.add({pos:new Point(100, 100), enemy:EnemyD});
_local2.add({pos:new Point(100, 400), enemy:EnemyD});
_local2.add({pos:new Point(400, 100), enemy:EnemyD});
_local2.add({pos:new Point(400, 400), enemy:EnemyD});
var _local3:int;
var _local4:int = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local2.add({pos:_local10, enemy:EnemyB});
} while (true);
level2 = {pattern:_local2, delay:2500, id:2};
var _local11 = (new List() as List);
_local11.add({pos:new Point(100, 150), enemy:EnemyC});
_local11.add({pos:new Point(100, 350), enemy:EnemyC});
_local11.add({pos:new Point(400, 150), enemy:EnemyC});
_local11.add({pos:new Point(400, 350), enemy:EnemyC});
_local11.add({pos:new Point(150, 100), enemy:EnemyA});
_local11.add({pos:new Point(150, 400), enemy:EnemyA});
_local11.add({pos:new Point(350, 100), enemy:EnemyA});
_local11.add({pos:new Point(350, 400), enemy:EnemyA});
_local11.add({pos:new Point(200, 200), enemy:EnemyD});
_local11.add({pos:new Point(300, 200), enemy:EnemyD});
_local11.add({pos:new Point(300, 300), enemy:EnemyD});
_local11.add({pos:new Point(200, 300), enemy:EnemyD});
level3 = {pattern:_local11, delay:2500, id:3};
var _local12 = (new List() as List);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local12.add({pos:_local10, enemy:EnemyE});
} while (true);
level4 = {pattern:_local12, delay:2500, id:4};
var _local13 = (new List() as List);
_local3 = 0;
_local4 = 8;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyA});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyE});
} while (true);
level5 = {pattern:_local13, delay:2500, id:5};
var _local14 = (new List() as List);
_local3 = 0;
_local4 = 3;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyA});
} while (true);
_local3 = 0;
_local4 = 3;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyB});
} while (true);
_local3 = 0;
_local4 = 3;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyC});
} while (true);
_local3 = 0;
_local4 = 3;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyD});
} while (true);
_local3 = 0;
_local4 = 3;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyE});
} while (true);
level6 = {pattern:_local14, delay:2500, id:6};
var _local15 = (new List() as List);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyB});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyD});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyE});
} while (true);
level7 = {pattern:_local15, delay:2500, id:7};
var _local16 = (new List() as List);
_local16.add({pos:new Point(25, 225), enemy:EnemyB});
_local16.add({pos:new Point(475, 225), enemy:EnemyB});
_local16.add({pos:new Point(475, 275), enemy:EnemyB});
_local16.add({pos:new Point(25, 275), enemy:EnemyB});
_local16.add({pos:new Point(75, 175), enemy:EnemyA});
_local16.add({pos:new Point(425, 175), enemy:EnemyA});
_local16.add({pos:new Point(425, 325), enemy:EnemyA});
_local16.add({pos:new Point(75, 325), enemy:EnemyA});
_local16.add({pos:new Point(125, 125), enemy:EnemyE});
_local16.add({pos:new Point(375, 125), enemy:EnemyE});
_local16.add({pos:new Point(375, 375), enemy:EnemyE});
_local16.add({pos:new Point(125, 375), enemy:EnemyE});
_local16.add({pos:new Point(175, 75), enemy:EnemyA});
_local16.add({pos:new Point(325, 75), enemy:EnemyA});
_local16.add({pos:new Point(325, 425), enemy:EnemyA});
_local16.add({pos:new Point(175, 425), enemy:EnemyA});
_local16.add({pos:new Point(225, 25), enemy:EnemyB});
_local16.add({pos:new Point(275, 25), enemy:EnemyB});
_local16.add({pos:new Point(275, 475), enemy:EnemyB});
_local16.add({pos:new Point(225, 475), enemy:EnemyB});
level8 = {pattern:_local16, delay:2500, id:8};
var _local17 = (new List() as List);
_local3 = 0;
_local4 = 7;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local17.add({pos:_local10, enemy:EnemyD});
} while (true);
_local3 = 0;
_local4 = 7;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local17.add({pos:_local10, enemy:EnemyB});
} while (true);
level9 = {pattern:_local17, delay:2500, id:9};
var _local18 = (new List() as List);
_local18.add({pos:new Point(250, 125), enemy:BossB});
_local18.add({pos:new Point(250, 375), enemy:BossB});
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local18.add({pos:_local10, enemy:EnemyA});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local18.add({pos:_local10, enemy:EnemyB});
} while (true);
level10 = {pattern:_local18, delay:-1, id:10};
}
override public function prepareLevels():void{
levels.add(level1);
levels.add(level2);
levels.add(level3);
levels.add(level4);
levels.add(level5);
levels.add(level6);
levels.add(level7);
levels.add(level8);
levels.add(level9);
levels.add(level10);
var _local1 = (new Bitmap(Assets.objects.get("Background02")) as Bitmap);
ScreenManager.playScreen.setBackground(_local1);
}
}
class PlayObject {
public var worth:int;
public var showInflictTime:int;
public var shieldpoint:int;
public var objectSprite:Sprite;
public var isInvincible:Boolean;
public var isInflictedHit:Boolean;
public var inflictHitSprite:Sprite;
public var hitpoint:int;
public var hitbox:Sprite;
public var grid:Object;
public var displayParent:Sprite;
public var currentInflictTime:int;
public var container:Sprite;
public var boundary:Rectangle;
public function PlayObject(_arg1:Sprite=undefined, _arg2:Rectangle=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
displayParent = _arg1;
boundary = _arg2;
container = new Sprite();
objectSprite = new Sprite();
hitbox = new Sprite();
inflictHitSprite = new Sprite();
var _local3:* = false;
isInflictedHit = _local3;
inflictHitSprite.visible = _local3;
currentInflictTime = 0;
showInflictTime = 2;
isInvincible = false;
grid = {bottomright:"", bottomleft:"", topright:"", topleft:"", left:"", right:"", bottom:"", top:"", center:""};
}
public function update():void{
}
public function inflictHit():void{
if (inflictHitSprite.visible){
inflictHitSprite.visible = false;
isInflictedHit = false;
} else {
inflictHitSprite.visible = true;
isInflictedHit = true;
};
}
public function getHitboxBounds():Rectangle{
return (hitbox.getBounds(displayParent));
}
public function explode():void{
}
public function destroy(_arg1:Object=undefined):void{
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
SoundManager.playSFX("Exploding");
};
if (displayParent.contains(container)){
displayParent.removeChild(container);
};
}
public function checkCollision(_arg1:Sprite):Boolean{
return (hitbox.hitTestObject(_arg1));
}
}
class Ship extends PlayObject {
public var vectorY:Number;
public var vectorX:Number;
public var targetY:Number;
public var targetX:Number;
public var shield:int;
public var locY:Number;
public var locX:Number;
public function Ship(_arg1:Sprite=undefined, _arg2:Rectangle=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
vectorX = 0;
vectorY = 0;
}
}
class Enemy extends Ship {
public var isMine:Boolean;
public var isGhosting:Boolean;
public var ghostingTime:int;
public var curGhostingQue:int;
public function Enemy(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
if ((_arg3.x == 0)){
false;
};
if (false){
container.x = ((Math.round(((Math.random() * boundary.width) - (container.width / 2))) + boundary.x) + (container.width / 2));
container.y = ((Math.round(((Math.random() * boundary.height) - (container.height / 2))) + boundary.y) + (container.height / 2));
} else {
container.x = _arg3.x;
container.y = _arg3.y;
};
locX = container.x;
locY = container.y;
isMine = false;
}
public function decreaseShield():void{
}
}
class SpawnerC extends Enemy {
public var spawnerSprite:SpawnerSprite;
public var spawnTime:int;
public var spawnEnemy:Object;
public var spawnCount:int;
public var currentSpawnTime:int;
public var curanimateque:int;
public var animatespeed:int;
public function SpawnerC(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
spawnTime = Config.spawnerC.spawnTime;
spawnCount = Config.spawnerC.spawnCount;
spawnEnemy = Config.spawnerC.spawnEnemy;
hitpoint = Config.spawnerC.hitpoint;
worth = Config.spawnerC.worth;
currentSpawnTime = 0;
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFF00);
_local4.graphics.drawRect(0, 0, 16, 16);
hitbox = _local4;
hitbox.x = (-(hitbox.width) / 2);
hitbox.y = (-(hitbox.height) / 2);
hitbox.alpha = 0;
spawnerSprite = new SpawnerSprite();
inflictHitSprite.addChild(spawnerSprite.inflictGroup);
animatespeed = 10;
curanimateque = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
spawnerSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(spawnerSprite);
container.addChild(inflictHitSprite);
if ((_arg3.x == 0)){
false;
};
if (false){
container.x = ((Math.round(((Math.random() * boundary.width) - (container.width / 2))) + boundary.x) + (container.width / 2));
container.y = ((Math.round(((Math.random() * boundary.height) - (container.height / 2))) + boundary.y) + (container.height / 2));
} else {
container.x = _arg3.x;
container.y = _arg3.y;
};
displayParent.addChild(container);
}
override public function update():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6 = (null as Enemy);
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
spawnerSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
spawnerSprite.alpha = 1;
};
} else {
if ((currentSpawnTime > spawnTime)){
currentSpawnTime = 0;
_local1 = 0;
_local2 = spawnCount;
do {
//unresolved if
_local3 = _local1;
_local1++;
_local4 = (container.x + (Math.cos((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local5 = (container.y + (Math.sin((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local6 = (Type.createInstance(Type.toClass(spawnEnemy), [displayParent, boundary, new Point(_local4, _local5)]) as Enemy);
MissionManager.currentMission.enemyList().push(_local6);
} while (true);
spawnerSprite.spawning(true);
} else {
if ((currentSpawnTime == 0)){
spawnerSprite.spawning(false);
};
currentSpawnTime = (currentSpawnTime + 1);
};
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
spawnerSprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.spawnerScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class Player extends Ship {
public var weaponSlot:Array;
public var playerSprite:PlayerSprite;
public var playScreenShock:Number;
public var modvectorY:Number;
public var modvectorX:Number;
public var isShooting:Boolean;
public var isHit:Boolean;
public var isGhost:Boolean;
public var isGameOver:Boolean;
public var hit2ghostingTime:int;
public var heatup:int;
public var ghostingTime:int;
public var gameoverTime:int;
public var currentBombCooldown:int;
public var cooldown:int;
public var burnings:int;
public var bombShockwave:Sprite;
public var activeWeaponSlot:int;
public function Player(_arg1:Sprite=undefined, _arg2:Rectangle=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
isHit = false;
hit2ghostingTime = 0;
isGhost = false;
ghostingTime = 0;
isGameOver = false;
gameoverTime = 0;
currentBombCooldown = 0;
bombShockwave = new Sprite();
playScreenShock = Config.playScreenShockSpeed;
playerSprite = new PlayerSprite();
var _local3 = (new Sprite() as Sprite);
_local3.graphics.beginFill(0xFFFFFF);
_local3.graphics.drawRect(-2, -2, 4, 4);
hitbox = _local3;
hitbox.x = 0;
hitbox.y = 0;
weaponSlot = new Array();
weaponSlot[0] = Profile.weapon1;
weaponSlot[1] = Profile.weapon2;
activeWeaponSlot = 0;
playerSprite.swapWeapon((weaponSlot[activeWeaponSlot].spriteClass as String));
container.addChild(hitbox);
container.addChild(playerSprite);
container.x = 250;
container.y = 250;
displayParent.addChild(container);
}
public function updateWeaponSprite():void{
playerSprite.swapWeapon((weaponSlot[activeWeaponSlot].spriteClass as String));
}
override public function update():void{
var _local2:* = null;
var _local3:* = null;
var _local4:Number;
var _local5 = (null as Projectile);
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13 = (null as Vector);
var _local14 = (null as Vector);
var _local15 = (null as Point);
var _local16 = (null as Point);
var _local17 = (null as Projectile);
var _local18 = (null as Projectile);
var _local1:Number = Math.pow((Profile.handling / Config.maxHandlingVar), 2);
if ((vectorX == 0)){
if ((modvectorX < 0)){
modvectorX = (modvectorX + _local1);
} else {
if ((modvectorX > 0)){
modvectorX = (modvectorX - _local1);
} else {
modvectorX = 0;
};
};
} else {
if ((modvectorX < vectorX)){
modvectorX = (modvectorX + _local1);
} else {
if ((modvectorX > vectorX)){
modvectorX = (modvectorX - _local1);
} else {
modvectorX = vectorX;
};
};
};
if ((vectorY == 0)){
if ((modvectorY < 0)){
modvectorY = (modvectorY + _local1);
} else {
if ((modvectorY > 0)){
modvectorY = (modvectorY - _local1);
} else {
modvectorY = 0;
};
};
} else {
if ((modvectorY < vectorY)){
modvectorY = (modvectorY + _local1);
} else {
if ((modvectorY > vectorY)){
modvectorY = (modvectorY - _local1);
} else {
modvectorY = vectorY;
};
};
};
container.x = (((container.x + modvectorX) > (boundary.right - (container.width / 2)))) ? (boundary.right - (container.width / 2)) : ((((container.x - (container.width / 2)) + modvectorX) < boundary.left)) ? (boundary.left + (container.width / 2)) : (container.x + modvectorX);
container.y = (((container.y + modvectorY) > (boundary.bottom - (container.height / 2)))) ? (boundary.bottom - (container.height / 2)) : ((((container.y - (container.height / 2)) + modvectorY) < boundary.top)) ? (boundary.top + (container.height / 2)) : (container.y + modvectorY);
locX = container.x;
locY = container.y;
if (isShooting){
if ((heatup > 0)){
false;
if ((burnings == 0)){
false;
};
};
if (false){
heatup = (heatup - 1);
};
if ((heatup == 0)){
false;
if ((burnings <= weaponSlot[activeWeaponSlot].burnings)){
false;
};
};
if (false){
_local2 = weaponSlot[activeWeaponSlot];
_local3 = _local2.projectileClass;
_local4 = playerSprite.getRotation();
_local5 = (Type.createInstance(Type.toClass(_local3), [new Vector(Math.cos(((_local4 * Math.PI) / 180)), Math.sin(((_local4 * Math.PI) / 180))), new Point(targetX, targetY)]) as Projectile);
ProjectileManager.spawnProjectile(new Point(container.x, container.y), _local5);
SoundManager.playSFX((_local2.deploySound as String));
if ((weaponSlot[activeWeaponSlot].spread > 0)){
_local6 = 0;
_local7 = weaponSlot[activeWeaponSlot].spread;
do {
//unresolved if
_local8 = _local6;
_local6++;
_local9 = (_local8 + 1);
_local10 = (playerSprite.getRotation() + (10 * _local9));
_local11 = (playerSprite.getRotation() - (10 * _local9));
_local12 = Point.distance(new Point(container.x, container.y), new Point(targetX, targetY));
_local13 = (new Vector(Math.cos(((_local10 * Math.PI) / 180)), Math.sin(((_local10 * Math.PI) / 180))) as Vector);
_local14 = (new Vector(Math.cos(((_local11 * Math.PI) / 180)), Math.sin(((_local11 * Math.PI) / 180))) as Vector);
_local15 = (new Point(((_local13.vx * _local12) + container.x), ((_local13.vy * _local12) + container.y)) as Point);
_local16 = (new Point(((_local14.vx * _local12) + container.x), ((_local14.vy * _local12) + container.y)) as Point);
_local17 = (Type.createInstance(Type.toClass(_local3), [_local13, _local15]) as Projectile);
_local18 = (Type.createInstance(Type.toClass(_local3), [_local14, _local16]) as Projectile);
ProjectileManager.spawnProjectile(new Point(container.x, container.y), _local17);
ProjectileManager.spawnProjectile(new Point(container.x, container.y), _local18);
} while (true);
};
burnings = (burnings + 1);
};
if ((heatup == 0)){
false;
if ((burnings >= weaponSlot[activeWeaponSlot].burnings)){
false;
};
};
if (false){
heatup = weaponSlot[activeWeaponSlot].heatup;
burnings = 0;
cooldown = weaponSlot[activeWeaponSlot].cooldown;
};
if ((heatup == weaponSlot[activeWeaponSlot].heatup)){
false;
if ((burnings == 0)){
false;
};
};
if (false){
cooldown = (cooldown - 1);
};
} else {
heatup = weaponSlot[activeWeaponSlot].heatup;
burnings = 0;
if ((cooldown > 0)){
cooldown = (cooldown - 1);
} else {
cooldown = 0;
};
};
if (isHit){
false;
};
if (false){
if ((hit2ghostingTime < Config.playerHit2GhostingTime)){
hit2ghostingTime = (hit2ghostingTime + 1);
} else {
isGhost = true;
rebuild();
hit2ghostingTime = 0;
isHit = false;
};
};
if (isGhost){
false;
};
if (false){
if ((ghostingTime < Config.playerGhostingTime)){
ghostingTime = (ghostingTime + 1);
if (((ghostingTime % 2) == 0)){
container.visible = false;
} else {
container.visible = true;
};
} else {
MissionManager.currentMission.resetPlayerDestroyFlag();
container.visible = true;
isGhost = false;
ghostingTime = 0;
};
};
if (isGameOver){
if ((gameoverTime < Config.playerGameOverTime)){
gameoverTime = (gameoverTime + 1);
} else {
isShooting = false;
ScreenManager.playScreen.pause();
ScreenManager.showDialog("nomorelife");
};
};
if ((currentBombCooldown > 0)){
currentBombCooldown = (currentBombCooldown - 1);
if ((currentBombCooldown < 0)){
currentBombCooldown = 0;
};
_local4 = (1 - (currentBombCooldown / Reflect.field(Config, (("bomb" + Profile.bomblvl) as String)).cooldown));
ScreenManager.playScreen.updateHUDBombCooldown(_local4);
};
if (ScreenManager.playScreen.playerContainer.contains(bombShockwave)){
if ((bombShockwave.scaleX < 1)){
_local4 = 0.05;
_local10 = (_local4 * 0.9);
bombShockwave.scaleX = (bombShockwave.scaleX + _local10);
bombShockwave.scaleY = (bombShockwave.scaleY + _local10);
_local6 = ((Math.random() > 0.5)) ? -1 : 1;
_local7 = ((Math.random() > 0.5)) ? -1 : 1;
ScreenManager.playScreen.getContainer().x = (playScreenShock * _local6);
ScreenManager.playScreen.getContainer().y = (playScreenShock * _local7);
playScreenShock = (playScreenShock - (1 / playScreenShock));
} else {
ScreenManager.playScreen.playerContainer.removeChild(bombShockwave);
playScreenShock = Config.playScreenShockSpeed;
ScreenManager.playScreen.getContainer().x = 0;
ScreenManager.playScreen.getContainer().y = 0;
};
};
}
public function target(_arg1:Number, _arg2:Number):void{
targetX = Std.int(_arg1);
targetY = Std.int(_arg2);
var _local3:Number = Math.atan2((_arg2 - locY), (_arg1 - locX));
playerSprite.setRotation(((_local3 * 180) / Math.PI));
}
public function swapWeapon():void{
activeWeaponSlot = (activeWeaponSlot + 1);
if ((activeWeaponSlot >= weaponSlot.length)){
activeWeaponSlot = 0;
};
playerSprite.swapWeapon((weaponSlot[activeWeaponSlot].spriteClass as String));
}
public function stopshoot():void{
isShooting = false;
}
public function spawnComboParticle():void{
var _local1 = (new ParticleEmitter(Config.comboEmitter) as ParticleEmitter);
_local1.loc = new Point(locX, locY);
ParticleManager.createEmitter(_local1);
}
public function shoot():void{
isShooting = true;
}
public function setGhost():void{
isGhost = true;
}
public function setGameOver(_arg1:Boolean):void{
isGameOver = _arg1;
if (!(_arg1)){
gameoverTime = 0;
};
}
public function releaseBomb():void{
var _local1:* = null;
var _local2:* = null;
var _local3 = (null as ParticleEmitter);
var _local4 = (null as ParticleEmitter);
if ((currentBombCooldown == 0)){
false;
};
if (false){
_local1 = Reflect.field(Config, (("bomb" + Profile.bomblvl) as String));
currentBombCooldown = _local1.cooldown;
CollisionManager.calculateBombRadius(new Point(locX, locY));
if (!(ScreenManager.playScreen.playerContainer.contains(bombShockwave))){
bombShockwave.graphics.clear();
bombShockwave.graphics.beginGradientFill(GradientType.RADIAL, [0xFFFFFF, 0xFFFFFF], [0, 0.7], [127, 0xFF]);
bombShockwave.graphics.drawCircle(0, 0, _local1.radius);
_local2 = 0;
bombShockwave.scaleY = _local2;
bombShockwave.scaleX = _local2;
bombShockwave.x = locX;
bombShockwave.y = locY;
ScreenManager.playScreen.playerContainer.addChild(bombShockwave);
};
_local3 = (new ParticleEmitter(_local1.particleData) as ParticleEmitter);
_local4 = (new ParticleEmitter(_local1.particleData) as ParticleEmitter);
_local3.loc = new Point(locX, locY);
_local4.loc = new Point(locX, locY);
ParticleManager.createEmitter(_local3);
ParticleManager.createEmitter(_local4);
Profile.bombqty = (Profile.bombqty - 1);
ScreenManager.playScreen.updateHUDBomb();
SoundManager.playSFX("ExplodingBomb");
};
}
public function rebuild():void{
displayParent.addChild(container);
var _local1:Number = ((Math.random() * 100) + 50);
var _local2:Number = ((Math.random() >= 0.5)) ? -1 : 1;
var _local3:Number = ((Math.random() >= 0.5)) ? -1 : 1;
container.x = (container.x + (_local1 * _local2));
container.y = (container.y + (_local1 * _local3));
ScreenManager.playScreen.playerCaptureKeys();
}
public function getHitbox():Sprite{
return (hitbox);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.playerExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
false;
};
if (false){
explode();
isHit = true;
SoundManager.playSFX("Exploding");
};
if (isHit){
if ((Profile.lives >= 1)){
Profile.lives = (Profile.lives - 1);
vectorX = 0;
vectorY = 0;
isShooting = false;
ScreenManager.playScreen.playerReleaseKeys(false);
} else {
isGameOver = true;
};
ScreenManager.playScreen.updateHUDLives();
};
if (displayParent.contains(container)){
displayParent.removeChild(container);
};
}
}
class IntHash {
public var h:Object;
public function IntHash():void{
if (Boot_BA08CD.skip_constructor){
return;
};
h = new Dictionary();
}
public function toString():String{
var _local4:int;
var _local1 = (new StringBuf() as StringBuf);
_local1.add("{");
var _local2:* = keys();
var _local3:* = _local2;
do {
//unresolved if
_local4 = _local3.next();
_local1.add(_local4);
_local1.add(" => ");
_local1.add(Std.string(get(_local4)));
if (_local2.hasNext()){
_local1.add(", ");
};
} while (true);
_local1.add("}");
return (_local1.toString());
}
public function set(_arg1:int, _arg2:Object):void{
h[_arg1] = _arg2;
}
public function remove(_arg1:int):Boolean{
if (!(h.hasOwnProperty(_arg1))){
return (false);
};
delete h[_arg1];
return (true);
}
public function keys():Object{
var _local2:int;
var _local1 = ([] as Array);
var _local3:* = h;
for (/*?*/in h) {
_local1.push(//unresolved nextvalue or nextname);
};
return (_local1.iterator());
}
public function iterator():Object{
return ({next:function ():Object{
var _local1:int = this.it.next();
return (this.ref[_local1]);
}, hasNext:function ():Object{
return (this.it.hasNext());
}, it:keys(), ref:h});
}
public function get(_arg1:int):Object{
return (h[_arg1]);
}
public function exists(_arg1:int):Boolean{
return (h.hasOwnProperty(_arg1));
}
}
class AuxFunctions {
public function AuxFunctions():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function numberToR(_arg1:int):int{
return (((_arg1 & 0xFF0000) >> 16));
}
public static function numberToG(_arg1:int):int{
return (((_arg1 & 0xFF00) >> 8));
}
public static function numberToB(_arg1:int):int{
return ((_arg1 & 0xFF));
}
public static function isInArray(_arg1:String, _arg2:Array):Boolean{
var _local5:int;
var _local3:int;
var _local4:int = _arg2.length;
do {
//unresolved if
_local5 = _local3;
_local3++;
if (((_arg2[_local5] as String) == _arg1)){
return (true);
};
} while (true);
return (false);
}
public static function getObjectLength(_arg1:Object):int{
var _local4:* = null;
var _local2:int;
var _local3:* = Reflect.fields(_arg1).iterator();
do {
//unresolved if
_local4 = _local3.next();
_local2++;
} while (true);
return (_local2);
}
public static function concatObjects(_arg1:Array):Object{
var _local3:* = null;
var _local6:int;
var _local7:* = null;
var _local8:* = null;
var _local2:* = Reflect.empty();
var _local4:int;
var _local5:int = _arg1.length;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local3 = _arg1[_local6];
_local7 = Reflect.fields(_local3).iterator();
do {
//unresolved if
_local8 = _local7.next();
if (!((Reflect.field(_local3, _local8) == null))){
Reflect.setField(_local2, _local8, Reflect.field(_local3, _local8));
};
} while (true);
} while (true);
return (_local2);
}
}
class EnemyB extends Enemy {
public var speed:Number;
public var projectileData:Object;
public var minSpeed:Number;
public var maxSpeed:Number;
public var enemySprite:EnemyBSprite;
public var curanimateque:int;
public var animatespeed:int;
public function EnemyB(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.enemyB.hitpoint;
worth = Config.enemyB.worth;
enemySprite = new EnemyBSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-7, -7, 14, 14);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 0.3;
maxSpeed = 0.6;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
var _local1 = (null as Point);
var _local2:Number;
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
_local1 = (new Point(ScreenManager.playScreen.player.locX, ScreenManager.playScreen.player.locY) as Point);
_local2 = Math.atan2((_local1.y - container.y), (_local1.x - container.x));
vectorX = (Math.cos(_local2) * speed);
vectorY = (Math.sin(_local2) * speed);
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.enemyBScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class EnemyD extends Enemy {
public var speed:Number;
public var projectileData:Object;
public var plantMinesTime:int;
public var plantMinesSpanTime:int;
public var moveTime:int;
public var minSpeed:Number;
public var maxSpeed:Number;
public var enemySprite:EnemyDSprite;
public var curplantMinesTime:int;
public var curplantMinesSpanTime:int;
public var curanimateque:int;
public var curMoveTime:int;
public var animatespeed:int;
public function EnemyD(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.enemyD.hitpoint;
worth = Config.enemyD.worth;
enemySprite = new EnemyDSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-7, -7, 14, 14);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 1;
maxSpeed = 2;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
var _local6:int = 750;
var _local7:int = 1000;
var _local8:int = 400;
var _local9:int = 600;
var _local10:int = 13;
plantMinesTime = Std.int(((Math.random() * (_local7 - _local6)) + _local6));
plantMinesSpanTime = Math.round((plantMinesTime / _local10));
moveTime = Std.int(((Math.random() * (_local9 - _local8)) + _local8));
curplantMinesTime = 0;
curplantMinesSpanTime = 0;
curMoveTime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
var _local1 = (null as Point);
var _local2 = (null as EnemyMine);
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
if ((curplantMinesTime < plantMinesTime)){
false;
};
if (false){
curplantMinesTime = (curplantMinesTime + 1);
if ((curplantMinesSpanTime < plantMinesSpanTime)){
curplantMinesSpanTime = (curplantMinesSpanTime + 1);
} else {
_local1 = (new Point(locX, locY) as Point);
_local2 = (new EnemyMine(displayParent, boundary, _local1) as EnemyMine);
MissionManager.currentMission.enemyList().push(_local2);
curplantMinesSpanTime = 0;
};
} else {
if ((curplantMinesTime == plantMinesTime)){
false;
};
if (false){
curMoveTime = (curMoveTime + 1);
} else {
curplantMinesTime = 0;
curMoveTime = 0;
};
};
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.enemyDScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class Particle {
public var vector:Vector;
public var speed:Number;
public var spawntime:Number;
public var particleSprite:Sprite;
public var lifetime:int;
public var angle:Number;
public function Particle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
spawntime = ParticleManager.currentTick;
lifetime = Std.int(((Math.random() * (_arg1.maxLifetime - _arg1.minLifetime)) + _arg1.minLifetime));
speed = ((Math.random() * (_arg1.maxSpeed - _arg1.minSpeed)) + _arg1.minSpeed);
angle = ((Math.random() * (_arg1.maxAngle - _arg1.minAngle)) + _arg1.minAngle);
var _local2:Number = (Math.cos(((angle * Math.PI) / 180)) * speed);
var _local3:Number = (Math.sin(((angle * Math.PI) / 180)) * speed);
vector = new Vector(_local2, _local3);
particleSprite = new Sprite();
particleSprite.rotation = angle;
}
public function drawTravelLine(_arg1:Point, _arg2:Point):void{
}
public function destroy():void{
if ((particleSprite.numChildren > 0)){
particleSprite.removeChildAt(0);
};
}
public function deltaLife():Number{
var _local1:Number = (ParticleManager.currentTick - spawntime);
var _local2:Number = (_local1 / lifetime);
return (_local2);
}
}
class BossMineScoreExplosionParticle extends Particle {
public function BossMineScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.bossMine.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class AskTutorialScreen extends Screen {
public var yesButton:ButtonTile;
public var noButton:ButtonTile;
public var hasTutorialDialog:Sprite;
public var background:Sprite;
public function AskTutorialScreen():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
background = new Sprite();
background.addChild(new Bitmap(Assets.objects.get("Background00")));
hasTutorialDialog = new Sprite();
hasTutorialDialog.addChild(new Bitmap(Assets.objects.get("HasTutorialDialog")));
var _local1 = (new BitmapData(60, 120, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(328, 384, 60, 120), new Point(0, 0));
var _local2 = (new BitmapData(60, 120, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(388, 384, 60, 120), new Point(0, 0));
yesButton = new ButtonTile(_local1, 60, 30);
noButton = new ButtonTile(_local2, 60, 30);
yesButton.x = 143;
yesButton.y = 162;
noButton.x = 37;
noButton.y = 162;
hasTutorialDialog.x = 130;
hasTutorialDialog.y = 138;
hasTutorialDialog.addChild(yesButton);
hasTutorialDialog.addChild(noButton);
container.addChild(background);
container.addChild(hasTutorialDialog);
yesButton.click = onYesClick;
noButton.click = onNoClick;
}
public function toTutorial():void{
TutorialManager.isRunning = true;
ScreenManager.showScreen("play");
}
public function toPlay():void{
TutorialManager.isRunning = false;
TutorialManager.hasDoneTutorial = true;
ScreenManager.showScreen("play");
}
public function onYesClick():void{
Tweener.addTween(hasTutorialDialog, {onComplete:toPlay, time:0.5, transition:"easeOutCubic", alpha:0, y:(hasTutorialDialog.height - 138)});
}
public function onNoClick():void{
Tweener.addTween(hasTutorialDialog, {onComplete:toTutorial, time:0.5, transition:"easeOutCubic", alpha:0, y:(hasTutorialDialog.height - 138)});
}
public function init():void{
hasTutorialDialog.y = (hasTutorialDialog.height - 138);
hasTutorialDialog.alpha = 0;
Tweener.addTween(hasTutorialDialog, {time:0.5, transition:"easeOutCubic", alpha:1, y:138});
}
}
class TechItembox extends Sprite {
public var techspeed:String;
public var techname:String;
public var techheatup:String;
public var techdetails:String;
public var techdamage:String;
public var techcost:String;
public var techcooldown:String;
public var techburnings:String;
public var pData:Object;
public var open4purchase:ButtonTile;
public var isOpen4Purchase:Boolean;
public var isActive:Boolean;
public var container:Sprite;
public var active:ButtonTile;
public function TechItembox(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
pData = _arg1;
isActive = false;
isOpen4Purchase = false;
var _local2 = (Type.createInstance(Type.toClass(_arg1.projectileClass), [new Vector(0, 0), new Point(0, 0)]) as Projectile);
techname = (_arg1.name as String);
techdetails = (_arg1.desc as String);
techheatup = Std.string(_arg1.heatup);
techburnings = Std.string(_arg1.burnings);
techcooldown = Std.string(_arg1.cooldown);
techdamage = Std.string(_local2.damage);
techspeed = Std.string(_local2.speed);
techcost = Std.string(_arg1.buypoint);
var _local3 = (new BitmapData(32, 128, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("TechTiles"), (_arg1.activeTile as Rectangle), new Point(0, 0));
var _local4 = (new BitmapData(32, 128, true) as BitmapData);
_local4.copyPixels(Assets.objects.get("TechTiles"), (_arg1.openTile as Rectangle), new Point(0, 0));
active = new ButtonTile(_local3, 32, 32);
open4purchase = new ButtonTile(_local4, 32, 32);
open4purchase.visible = false;
container = new Sprite();
container.addChild(open4purchase);
container.addChild(active);
addChild(container);
active.lock();
active.click = onLift;
open4purchase.click = onPurchase;
active.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverAndMove);
active.addEventListener(MouseEvent.MOUSE_MOVE, onMouseOverAndMove);
active.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
open4purchase.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverAndMove);
open4purchase.addEventListener(MouseEvent.MOUSE_MOVE, onMouseOverAndMove);
open4purchase.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function setOpen4Purchase(_arg1:Boolean):void{
active.visible = !(_arg1);
open4purchase.visible = _arg1;
isOpen4Purchase = _arg1;
}
public function setActive(_arg1:Boolean, _arg2:Object=undefined):void{
active.unlock();
active.visible = _arg1;
open4purchase.visible = !(_arg1);
if (isOpen4Purchase){
isOpen4Purchase = false;
};
var _local3:Boolean = ((_arg2 == null)) ? true : _arg2;
isActive = _local3;
}
public function reset():void{
isActive = false;
isOpen4Purchase = false;
active.lock();
open4purchase.visible = false;
}
public function onPurchase():void{
if (TutorialManager.isRunning){
false;
};
if (false){
if (!(ScreenManager.techDialog.isLifting)){
false;
};
if (false){
setActive(true);
Profile.techpoint = (Profile.techpoint - pData.buypoint);
ScreenManager.techDialog.updateDialog();
ScreenManager.playScreen.updateHUDTechpoints(Profile.techpoint, false);
};
} else {
if (!(TutorialManager.isRunning)){
if (!(ScreenManager.techDialog.isLifting)){
false;
};
if (false){
setActive(true);
Profile.techpoint = (Profile.techpoint - pData.buypoint);
ScreenManager.techDialog.updateDialog();
ScreenManager.playScreen.updateHUDTechpoints(Profile.techpoint, false);
};
};
};
}
public function onMouseOverAndMove(_arg1:MouseEvent):void{
ScreenManager.techDialog.showDesc(techname, techdetails, techheatup, techburnings, techcooldown, techdamage, techspeed, techcost);
}
public function onMouseOut(_arg1:MouseEvent):void{
ScreenManager.techDialog.hideDesc();
}
public function onLift():void{
var _local1 = (null as Sprite);
var _local2 = (null as BitmapData);
var _local3 = (null as Bitmap);
if (!(ScreenManager.techDialog.isLifting)){
false;
};
if (false){
_local1 = (new Sprite() as Sprite);
_local2 = (new BitmapData(32, 32, true, 0xFFFFFF) as BitmapData);
_local2.draw(active);
_local3 = (new Bitmap(_local2) as Bitmap);
_local1.addChild(_local3);
ScreenManager.techDialog.lift(_local1, this);
};
}
public function evaluate():void{
if ((pData.buypoint <= Profile.techpoint)){
false;
};
if (false){
setOpen4Purchase(true);
} else {
setOpen4Purchase(false);
};
}
}
class EnemyMineSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictCore:Bitmap;
public var coreframes:int;
public var core:MovieTile;
public var container:Sprite;
public function EnemyMineSprite():void{
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(32, 64, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(448, 64, 32, 64), new Point(0, 0));
core = new MovieTile(_local1, 32, 32);
core.x = -16;
core.y = -16;
coreframes = core.frames;
var _local2 = (new BitmapData(32, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(448, 64, 32, 32), new Point(0, 0));
var _local3:int;
var _local4:int = 32;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 0;
_local7 = 32;
do {
//unresolved if
_local8 = _local6;
_local6++;
if ((_local2.getPixel32(_local5, _local8) > 0)){
_local2.setPixel32(_local5, _local8, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local2);
inflictCore.x = -16;
inflictCore.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(core);
addChild(container);
}
public function animate():void{
core.nextFrame();
}
}
class EnemyBSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function EnemyBSprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(14, 14, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -7;
core.y = -7;
var _local2 = (new BitmapData(192, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 32, 192, 32), new Point(0, 0));
equip = new MovieTile(_local2, 32, 32);
equip.x = -16;
equip.y = -16;
equipframes = equip.frames;
var _local3 = (new BitmapData(14, 14, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
var _local4:int;
var _local5:int = 14;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 14;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -7;
inflictCore.y = -7;
var _local10 = (new BitmapData(192, 32, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 32, 192, 32), new Point(0, 0));
_local4 = 0;
_local5 = 192;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 32;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 32, 32);
inflictEquip.x = -16;
inflictEquip.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
class List {
public var q:Array;
public var length:int;
public var h:Array;
public function List():void{
if (Boot_BA08CD.skip_constructor){
return;
};
length = 0;
}
public function toString():String{
var _local1 = (new StringBuf() as StringBuf);
var _local2:Boolean = true;
var _local3 = (h as Array);
_local1.add("{");
do {
//unresolved if
if (_local2){
_local2 = false;
} else {
_local1.add(", ");
};
_local1.add(_local3[0]);
_local3 = ((_local3[1] as Array) as Array);
} while (true);
_local1.add("}");
return (_local1.toString());
}
public function remove(_arg1:Object):Boolean{
var _local2 = ((null as Array) as Array);
var _local3 = (h as Array);
do {
//unresolved if
if (((_local3[0] as Object) == _arg1)){
if ((_local2 == (null as Array))){
h = (_local3[1] as Array);
} else {
_local2[1] = _local3[1];
};
if ((q == _local3)){
q = _local2;
};
length = (length - 1);
return (true);
};
_local2 = (_local3 as Array);
_local3 = ((_local3[1] as Array) as Array);
} while (true);
return (false);
}
public function push(_arg1:Object):void{
var _local2 = ([_arg1, h] as Array);
h = _local2;
if ((q == (null as Array))){
q = _local2;
};
length = (length + 1);
}
public function pop():Object{
if ((h == (null as Array))){
return ((null as Object));
};
var _local1 = ((h[0] as Object) as Object);
h = (h[1] as Array);
if ((h == (null as Array))){
q = (null as Array);
};
length = (length - 1);
return (_local1);
}
public function map(_arg1:Function):List{
var _local4 = (null as Object);
var _local2 = (new List() as List);
var _local3 = (h as Array);
do {
//unresolved if
_local4 = ((_local3[0] as Object) as Object);
_local3 = ((_local3[1] as Array) as Array);
_local2.add(_arg1(_local4));
} while (true);
return (_local2);
}
public function last():Object{
return (((q == (null as Array))) ? (null as Object) : (q[0] as Object));
}
public function join(_arg1:String):String{
var _local2 = (new StringBuf() as StringBuf);
var _local3:Boolean = true;
var _local4 = (h as Array);
do {
//unresolved if
if (_local3){
_local3 = false;
} else {
_local2.add(_arg1);
};
_local2.add(_local4[0]);
_local4 = ((_local4[1] as Array) as Array);
} while (true);
return (_local2.toString());
}
public function iterator():Object{
return ({next:function ():Object{
if ((this.h == (null as Array))){
return (null);
};
var _local1:* = this.h[0];
this.h = (this.h[1] as Array);
return (_local1);
}, hasNext:function ():Object{
return (!((this.h == (null as Array))));
}, h:h});
}
public function isEmpty():Boolean{
return ((h == (null as Array)));
}
public function first():Object{
return (((h == (null as Array))) ? (null as Object) : (h[0] as Object));
}
public function filter(_arg1:Function):List{
var _local4 = (null as Object);
var _local2 = (new List() as List);
var _local3 = (h as Array);
do {
//unresolved if
_local4 = ((_local3[0] as Object) as Object);
_local3 = ((_local3[1] as Array) as Array);
if (_arg1(_local4)){
_local2.add(_local4);
};
} while (true);
return (_local2);
}
public function clear():void{
h = (null as Array);
length = 0;
}
public function add(_arg1:Object):void{
var _local2 = ([_arg1, (null as Object)] as Array);
if ((h == (null as Array))){
h = _local2;
} else {
q[1] = _local2;
};
q = _local2;
length = (length + 1);
}
}
class ParticleManager {
public static var particleEmitters:List;
public static var currentTick:Number;
public static var particleContainer:Sprite;
public static var screenTimer:Timer;
public function ParticleManager():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function update():void{
var _local2 = (null as ParticleEmitter);
var _local1:* = ParticleManager.particleEmitters.iterator();
do {
//unresolved if
_local2 = (_local1.next() as ParticleEmitter);
_local2.update();
} while (true);
ParticleManager.currentTick = ParticleManager.screenTimer.currentCount;
}
public static function createEmitter(_arg1:ParticleEmitter):void{
_arg1.particleContainer = ParticleManager.particleContainer;
ParticleManager.particleEmitters.add(_arg1);
}
public static function destroyEmitter(_arg1:ParticleEmitter):void{
ParticleManager.particleEmitters.remove(_arg1);
_arg1 = ((null as ParticleEmitter) as ParticleEmitter);
}
public static function setupContainer(_arg1:Sprite, _arg2:Timer):void{
ParticleManager.particleContainer = _arg1;
ParticleManager.screenTimer = _arg2;
}
public static function clearContainer():void{
var _local1:* = null;
var _local2 = (null as ParticleEmitter);
if (!(ParticleManager.particleContainer.numChildren > 0)){
true;
};
if (true){
_local1 = ParticleManager.particleEmitters.iterator();
do {
//unresolved if
_local2 = (_local1.next() as ParticleEmitter);
_local2.forceClear();
} while (true);
ParticleManager.particleEmitters.clear();
};
ParticleManager.currentTick = 0;
ParticleManager.screenTimer = (null as Timer);
}
}
class ProjectileGBurstParticle extends Particle {
public function ProjectileGBurstParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
}
override public function drawTravelLine(_arg1:Point, _arg2:Point):void{
var _local3 = (_arg2.subtract(_arg1) as Point);
var _local4 = (new Sprite() as Sprite);
_local4.graphics.lineStyle(2, 0xFFFFFF, 0.5);
_local4.graphics.lineTo(_local3.x, _local3.y);
_local4.cacheAsBitmap = true;
particleSprite.addChild(_local4);
}
}
class SpecialProperty {
public var setValue:Object;
public var parameters:Array;
public var getValue:Object;
public function SpecialProperty(_arg1:Object=undefined, _arg2:Object=undefined, _arg3:Array=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
getValue = _arg1;
setValue = _arg2;
parameters = _arg3;
}
public function toString():String{
var _local1 = ("" as String);
_local1 = (((_local1 + "[SpecialProperty ") as String) as String);
_local1 = (((_local1 + (("getValue:" + Std.string(getValue)) as String)) as String) as String);
_local1 = (((_local1 + ", ") as String) as String);
_local1 = (((_local1 + (("setValue:" + Std.string(setValue)) as String)) as String) as String);
_local1 = (((_local1 + ", ") as String) as String);
_local1 = (((_local1 + (("parameters:" + Std.string(parameters)) as String)) as String) as String);
_local1 = (((_local1 + "]") as String) as String);
return (_local1);
}
}
class BossASprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function BossASprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(14, 14, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -7;
core.y = -7;
var _local2 = (new BitmapData(320, 64, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 160, 320, 64), new Point(0, 0));
equip = new MovieTile(_local2, 64, 64);
equip.x = -32;
equip.y = -32;
equipframes = equip.frames;
var _local3 = (new BitmapData(14, 14, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
var _local4:int;
var _local5:int = 14;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 14;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -7;
inflictCore.y = -7;
var _local10 = (new BitmapData(320, 64, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 160, 320, 64), new Point(0, 0));
_local4 = 0;
_local5 = 320;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 64;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 64, 64);
inflictEquip.x = -32;
inflictEquip.y = -32;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function idle():void{
equip.goToFrame(2);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
class Std {
public function Std():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function is(_arg1:Object, _arg2:Object):Boolean{
return (Boot_BA08CD.__instanceof(_arg1, _arg2));
}
public static function string(_arg1:Object):String{
return (Boot_BA08CD.__string_rec(_arg1, ""));
}
public static function int(_arg1:Number):int{
return (int(_arg1));
}
public static function bool(_arg1:Object):Boolean{
if (!((_arg1 === 0))){
false;
if (!((_arg1 == null))){
false;
};
};
return (false);
}
public static function parseInt(_arg1:String):Object{
var _local2:* = parseInt(_arg1);
if (isNaN(_local2)){
return (null);
};
return (_local2);
}
public static function parseFloat(_arg1:String):Number{
return (parseFloat(_arg1));
}
public static function chr(_arg1:int):String{
return (String.fromCharCode(_arg1));
}
public static function ord(_arg1:String):Object{
if ((_arg1 == "")){
return (null);
} else {
return (_arg1.charCodeAt(0));
};
}
public static function random(_arg1:int):int{
return (Math.floor((Math.random() * _arg1)));
}
public static function resource(_arg1:String):String{
return ((Boot_BA08CD.__res[_arg1] as String));
}
}
class ProjectileSBurstParticle extends Particle {
public function ProjectileSBurstParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
}
override public function drawTravelLine(_arg1:Point, _arg2:Point):void{
var _local3 = (_arg2.subtract(_arg1) as Point);
var _local4:int = Std.int(Math.abs(_local3.x));
var _local5:int = Std.int(Math.abs(_local3.y));
var _local6:int = ((_arg2.x < _arg1.x)) ? Std.int(_local3.x) : 0;
var _local7:int = ((_arg2.y < _arg1.y)) ? Std.int(_local3.y) : 0;
var _local8:int = Std.int(Math.abs(_local3.x));
var _local9:int = Std.int(Math.abs(_local3.y));
var _local10:int;
var _local11:int;
if ((_local6 < 0)){
false;
};
if (false){
_local10 = _local6;
_local6 = Std.int(Math.abs(_local6));
_local8 = 0;
};
if ((_local7 < 0)){
false;
};
if (false){
_local11 = _local7;
_local7 = Std.int(Math.abs(_local7));
_local9 = 0;
};
var _local12 = (new BitmapData(_local4, _local5, true, 0xFFFFFF) as BitmapData);
Raster.line(_local12, _local6, _local7, _local8, _local9, -1);
var _local13 = (new Bitmap(_local12) as Bitmap);
_local13.x = _local10;
_local13.y = _local11;
particleSprite.addChild(_local13);
}
}
class ProjectileE extends Projectile {
public function ProjectileE(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileE.damage;
speed = 8;
maxDistance = 200;
useTarget = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(8, 2, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 8, 2), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -1;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
}
class BossB extends Enemy {
public var speed:Number;
public var shieldSprite:Sprite;
public var projectileData:Object;
public var plantMinesTime:int;
public var plantMinesSpanTime:int;
public var moveTime:int;
public var minSpeed:Number;
public var maxshieldpoint:int;
public var maxSpeed:Number;
public var enemySprite:BossBSprite;
public var curplantMinesTime:int;
public var curplantMinesSpanTime:int;
public var curanimateque:int;
public var curMoveTime:int;
public var animatespeed:int;
public function BossB(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.bossB.hitpoint;
maxshieldpoint = (Config.bossB.hitpoint * 8);
shieldpoint = maxshieldpoint;
worth = Config.bossB.worth;
enemySprite = new BossBSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
shieldSprite = new Sprite();
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-14, -14, 28, 28);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 0.4;
maxSpeed = 0.8;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
var _local6:int = 1000;
var _local7:int = 2200;
var _local8:int = 400;
var _local9:int = 800;
var _local10:int = 20;
plantMinesTime = Std.int(((Math.random() * (_local7 - _local6)) + _local6));
plantMinesSpanTime = Math.round((plantMinesTime / _local10));
moveTime = Std.int(((Math.random() * (_local9 - _local8)) + _local8));
curplantMinesTime = 0;
curplantMinesSpanTime = 0;
curMoveTime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
var _local1 = (null as Point);
var _local2 = (null as BossMine);
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
if ((curMoveTime < moveTime)){
false;
};
if (false){
curMoveTime = (curMoveTime + 1);
if ((shieldpoint > 1)){
isInvincible = true;
createShield();
} else {
isInvincible = false;
};
} else {
if ((curplantMinesTime < plantMinesTime)){
false;
};
if (false){
curplantMinesTime = (curplantMinesTime + 1);
isInvincible = false;
destroyShield();
if ((curplantMinesSpanTime < plantMinesSpanTime)){
curplantMinesSpanTime = (curplantMinesSpanTime + 1);
} else {
_local1 = (new Point(locX, locY) as Point);
_local2 = (new BossMine(displayParent, boundary, _local1) as BossMine);
MissionManager.currentMission.enemyList().push(_local2);
curplantMinesSpanTime = 0;
};
} else {
curplantMinesTime = 0;
curMoveTime = 0;
shieldpoint = maxshieldpoint;
};
};
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.bossBScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
public function destroyShield():void{
if (container.contains(shieldSprite)){
shieldSprite.graphics.clear();
shieldSprite.filters = [];
container.removeChild(shieldSprite);
};
}
override public function decreaseShield():void{
var _local1:Number = 0.3;
var _local2:Number = 1;
var _local3:Number = (shieldpoint / maxshieldpoint);
if ((_local3 <= 0)){
destroyShield();
};
var _local4:Number = ((_local3 * (_local2 - _local1)) + _local1);
var _local5:* = _local4;
shieldSprite.scaleY = _local5;
shieldSprite.scaleX = _local5;
}
public function createShield():void{
var _local1:* = null;
if (!(container.contains(shieldSprite))){
_local1 = 1;
shieldSprite.scaleY = _local1;
shieldSprite.scaleX = _local1;
shieldSprite.graphics.lineStyle(2, 0xFFFFFF, 0.5);
shieldSprite.graphics.drawCircle(0, 0, (enemySprite.width / 3));
shieldSprite.filters = [new BlurFilter(2, 2, 2)];
container.addChild(shieldSprite);
};
}
}
class ProjectileD extends Projectile {
public function ProjectileD(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileD.damage;
maxDistance = 100;
useTarget = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(8, 2, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 8, 2), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -1;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
}
class ParticleEmitter {
public var spriteToFollow:Sprite;
public var spawntime:Number;
public var radius:int;
public var particles:List;
public var particleData:Object;
public var particleContainer:Sprite;
public var particleClass:Object;
public var loc:Point;
public var lifetime:int;
public var count:int;
public function ParticleEmitter(_arg1:Object=undefined, _arg2:Sprite=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
loc = new Point(0, 0);
radius = _arg1.radius;
count = _arg1.count;
lifetime = _arg1.lifetime;
spriteToFollow = (!((_arg2 == (null as Sprite)))) ? _arg2 : (null as Sprite);
spawntime = ParticleManager.currentTick;
particleData = _arg1.particleData;
particleClass = _arg1.particleClass;
particles = new List();
}
public function update():void{
var _local2 = (null as Particle);
if (!((spriteToFollow == (null as Sprite)))){
loc.x = spriteToFollow.x;
loc.y = spriteToFollow.y;
};
if ((deltaLife() < 1)){
if (!(particles.length < count)){
true;
};
if (true){
spawnParticle();
};
} else {
if ((particles.length <= 0)){
ParticleManager.destroyEmitter(this);
};
};
var _local1:* = particles.iterator();
do {
//unresolved if
_local2 = (_local1.next() as Particle);
_local2.vector.vx = (_local2.vector.vx * 0.95);
_local2.vector.vy = (_local2.vector.vy * 0.95);
_local2.particleSprite.x = (_local2.particleSprite.x + _local2.vector.vx);
_local2.particleSprite.y = (_local2.particleSprite.y + _local2.vector.vy);
_local2.particleSprite.alpha = (1 - _local2.deltaLife());
if ((_local2.deltaLife() >= 1)){
killParticle(_local2);
};
} while (true);
}
public function spawnParticle():void{
var _local2 = (null as Point);
var _local3 = (null as Particle);
var _local1 = (Type.createInstance(Type.toClass(particleClass), [particleData]) as Particle);
if ((radius == 0)){
_local1.particleSprite.x = loc.x;
_local1.particleSprite.y = loc.y;
} else {
_local2 = (new Point((Math.random() * radius), (Math.random() * radius)) as Point);
_local1.particleSprite.x = _local2.x;
_local1.particleSprite.y = _local2.y;
};
if (!((spriteToFollow == (null as Sprite)))){
if ((particles.length > 0)){
_local3 = (particles.last() as Particle);
_local2 = (new Point(_local3.particleSprite.x, _local3.particleSprite.y) as Point);
_local1.drawTravelLine(loc, _local2);
};
};
particles.add(_local1);
particleContainer.addChild(_local1.particleSprite);
}
public function killParticle(_arg1:Particle):void{
_arg1.destroy();
particleContainer.removeChild(_arg1.particleSprite);
particles.remove(_arg1);
_arg1 = ((null as Particle) as Particle);
}
public function killMe():void{
lifetime = 1;
}
public function forceClear():void{
var _local2 = (null as Particle);
var _local1:* = particles.iterator();
do {
//unresolved if
_local2 = (_local1.next() as Particle);
particleContainer.removeChild(_local2.particleSprite);
} while (true);
particles.clear();
}
public function deltaLife():Number{
var _local2:Number;
var _local1:Number = 0;
if ((lifetime > 0)){
_local2 = (ParticleManager.currentTick - spawntime);
_local1 = (_local2 / lifetime);
};
return (_local1);
}
}
class EnemyESprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function EnemyESprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(14, 14, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -7;
core.y = -7;
var _local2 = (new BitmapData(128, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(352, 32, 128, 32), new Point(0, 0));
equip = new MovieTile(_local2, 32, 32);
equip.x = -16;
equip.y = -16;
equipframes = equip.frames;
var _local3 = (new BitmapData(14, 14, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
var _local4:int;
var _local5:int = 14;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 14;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -7;
inflictCore.y = -7;
var _local10 = (new BitmapData(128, 32, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(352, 32, 128, 32), new Point(0, 0));
_local4 = 0;
_local5 = 128;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 32;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 32, 32);
inflictEquip.x = -16;
inflictEquip.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
class ProjectileS extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileS(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileS.damage;
speed = 12;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
turningSpeed = 7;
baseType = ProjectileBaseType.MISSILE;
useTarget = true;
maxDistance = 800;
hitNDestroy = true;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(11, 2, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 11, 2), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -1;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectileSBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileCExplosionEmitter) as ParticleEmitter);
var _local2 = (new ParticleEmitter(Config.projectileCExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
_local2.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
ParticleManager.createEmitter(_local2);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class Mission4 extends Mission {
public var level9:Object;
public var level8:Object;
public var level7:Object;
public var level6:Object;
public var level5:Object;
public var level4:Object;
public var level3:Object;
public var level2:Object;
public var level10:Object;
public var level1:Object;
public function Mission4():void{
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:Number;
var _local9:Number;
var _local10 = (null as Point);
var _local18:* = null;
var _local19:Number;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
integrityThreshold = 20;
regenIntegrityRate = 0.001;
damageIntegrityRate = 0.0008;
var _local1 = (new List() as List);
_local1.add({pos:new Point(250, 100), enemy:EnemyB});
_local1.add({pos:new Point(250, 400), enemy:EnemyB});
_local1.add({pos:new Point(100, 250), enemy:EnemyB});
_local1.add({pos:new Point(400, 250), enemy:EnemyB});
_local1.add({pos:new Point(25, 25), enemy:EnemyG});
_local1.add({pos:new Point(475, 475), enemy:EnemyG});
_local1.add({pos:new Point(475, 25), enemy:EnemyG});
_local1.add({pos:new Point(25, 475), enemy:EnemyG});
level1 = {pattern:_local1, delay:2500, id:1};
var _local2 = (new List() as List);
_local2.add({pos:new Point(250, 100), enemy:SpawnerE});
_local2.add({pos:new Point(250, 400), enemy:SpawnerE});
var _local3:int;
var _local4:int = 10;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local2.add({pos:_local10, enemy:EnemyG});
} while (true);
level2 = {pattern:_local2, delay:2500, id:2};
var _local11 = (new List() as List);
_local3 = 0;
_local4 = 10;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local11.add({pos:_local10, enemy:EnemyF});
} while (true);
level3 = {pattern:_local11, delay:2500, id:3};
var _local12 = (new List() as List);
_local12.add({pos:new Point(100, 150), enemy:EnemyG});
_local12.add({pos:new Point(100, 350), enemy:EnemyG});
_local12.add({pos:new Point(400, 150), enemy:EnemyG});
_local12.add({pos:new Point(400, 350), enemy:EnemyG});
_local12.add({pos:new Point(150, 100), enemy:EnemyG});
_local12.add({pos:new Point(150, 400), enemy:EnemyG});
_local12.add({pos:new Point(350, 100), enemy:EnemyG});
_local12.add({pos:new Point(350, 400), enemy:EnemyG});
_local12.add({pos:new Point(250, 250), enemy:SpawnerD});
level4 = {pattern:_local12, delay:2500, id:4};
var _local13 = (new List() as List);
_local3 = 0;
_local4 = 8;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyE});
} while (true);
_local3 = 0;
_local4 = 10;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyA});
} while (true);
level5 = {pattern:_local13, delay:2500, id:5};
var _local14 = (new List() as List);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyF});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyG});
} while (true);
_local14.add({pos:new Point(100, 150), enemy:SpawnerE});
_local14.add({pos:new Point(400, 350), enemy:SpawnerE});
level6 = {pattern:_local14, delay:2500, id:6};
var _local15 = (new List() as List);
_local3 = 0;
_local4 = 5;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyB});
} while (true);
_local3 = 0;
_local4 = 5;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyD});
} while (true);
_local3 = 0;
_local4 = 5;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyE});
} while (true);
_local3 = 0;
_local4 = 5;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyF});
} while (true);
level7 = {pattern:_local15, delay:2500, id:7};
var _local16 = (new List() as List);
_local16.add({pos:new Point(225, 225), enemy:EnemyB});
_local16.add({pos:new Point(275, 225), enemy:EnemyB});
_local16.add({pos:new Point(275, 275), enemy:EnemyB});
_local16.add({pos:new Point(225, 275), enemy:EnemyB});
_local16.add({pos:new Point(250, 150), enemy:SpawnerA});
_local16.add({pos:new Point(250, 350), enemy:SpawnerA});
_local16.add({pos:new Point(150, 250), enemy:SpawnerA});
_local16.add({pos:new Point(350, 250), enemy:SpawnerA});
_local16.add({pos:new Point(250, 50), enemy:EnemyE});
_local16.add({pos:new Point(250, 50), enemy:EnemyE});
_local16.add({pos:new Point(50, 250), enemy:EnemyC});
_local16.add({pos:new Point(50, 250), enemy:EnemyC});
_local16.add({pos:new Point(250, 250), enemy:EnemyG});
_local16.add({pos:new Point(250, 250), enemy:EnemyG});
_local16.add({pos:new Point(250, 250), enemy:EnemyG});
_local16.add({pos:new Point(250, 250), enemy:EnemyG});
_local16.add({pos:new Point(250, 250), enemy:EnemyG});
_local16.add({pos:new Point(250, 250), enemy:EnemyG});
level8 = {pattern:_local16, delay:2500, id:8};
var _local17 = (new List() as List);
_local3 = 0;
_local4 = 2;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 100;
_local7 = (500 - 100);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local18 = SpawnerB;
_local19 = (Math.random() * 3);
if ((_local19 >= 0)){
false;
};
if (false){
_local18 = SpawnerE;
} else {
_local18 = SpawnerC;
};
_local17.add({pos:_local10, enemy:_local18});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local17.add({pos:_local10, enemy:EnemyD});
} while (true);
_local3 = 0;
_local4 = 5;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local17.add({pos:_local10, enemy:EnemyE});
} while (true);
_local3 = 0;
_local4 = 5;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local17.add({pos:_local10, enemy:EnemyF});
} while (true);
level9 = {pattern:_local17, delay:2500, id:9};
var _local20 = (new List() as List);
_local20.add({pos:new Point(250, 100), enemy:BossD});
_local20.add({pos:new Point(100, 250), enemy:BossD});
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local20.add({pos:_local10, enemy:EnemyE});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local20.add({pos:_local10, enemy:EnemyG});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local20.add({pos:_local10, enemy:EnemyB});
} while (true);
level10 = {pattern:_local20, delay:-1, id:10};
}
override public function prepareLevels():void{
levels.add(level1);
levels.add(level2);
levels.add(level3);
levels.add(level4);
levels.add(level5);
levels.add(level6);
levels.add(level7);
levels.add(level8);
levels.add(level9);
levels.add(level10);
var _local1 = (new Bitmap(Assets.objects.get("Background04")) as Bitmap);
ScreenManager.playScreen.setBackground(_local1);
}
}
class ProjectileR extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileR(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileR.damage;
speed = 20;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
useTarget = true;
hitNDestroy = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 8, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 12, 8), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -4;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectilePBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class ComboParticle extends Particle {
public function ComboParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label("COMBO!", _local2) as Label);
if ((CollisionManager.comboCount > 1)){
_local3.updateLabel((((("COMBO " + CollisionManager.comboCount) as String) + "x!") as String));
};
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class Spawner extends PlayObject {
public var spawnTime:int;
public var spawnEnemy:Object;
public var spawnCount:int;
public var currentSpawnTime:int;
public function Spawner(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
currentSpawnTime = 0;
container.x = _arg3.x;
container.y = _arg3.y;
}
public function spawn():void{
}
}
class EnemyDScoreExplosionParticle extends Particle {
public function EnemyDScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.enemyD.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class ProjectileQ extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileQ(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileQ.damage;
speed = 20;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
useTarget = true;
hitNDestroy = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 8, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 12, 8), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -4;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectilePBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class Hash {
public var h:Object;
public function Hash():void{
if (Boot_BA08CD.skip_constructor){
return;
};
h = new Dictionary();
}
public function toString():String{
var _local4 = (null as String);
var _local1 = (new StringBuf() as StringBuf);
_local1.add("{");
var _local2:* = keys();
var _local3:* = _local2;
do {
//unresolved if
_local4 = (_local3.next() as String);
_local1.add(_local4);
_local1.add(" => ");
_local1.add(Std.string(get(_local4)));
if (_local2.hasNext()){
_local1.add(", ");
};
} while (true);
_local1.add("}");
return (_local1.toString());
}
public function set(_arg1:String, _arg2:Object):void{
h[_arg1] = _arg2;
}
public function remove(_arg1:String):Boolean{
if (!(h.hasOwnProperty(_arg1))){
return (false);
};
delete h[_arg1];
return (true);
}
public function keys():Object{
var _local2:int;
var _local1 = ([] as Array);
var _local3:* = h;
for (/*?*/in h) {
_local1.push(//unresolved nextvalue or nextname);
};
return (_local1.iterator());
}
public function iterator():Object{
return ({next:function ():Object{
var _local1:* = this.it.next();
return (this.ref[_local1]);
}, hasNext:function ():Object{
return (this.it.hasNext());
}, it:keys(), ref:h});
}
public function get(_arg1:String):Object{
return (h[_arg1]);
}
public function exists(_arg1:String):Boolean{
return (h.hasOwnProperty(_arg1));
}
}
class BossDSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function BossDSprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(28, 28, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(386, 130, 28, 28), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -14;
core.y = -14;
var _local2 = (new BitmapData(320, 64, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 352, 320, 64), new Point(0, 0));
equip = new MovieTile(_local2, 64, 64);
equip.x = -32;
equip.y = -32;
equipframes = equip.frames;
var _local3 = (new BitmapData(28, 28, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(386, 130, 28, 28), new Point(0, 0));
var _local4:int;
var _local5:int = 28;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 28;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -14;
inflictCore.y = -14;
var _local10 = (new BitmapData(320, 64, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 352, 320, 64), new Point(0, 0));
_local4 = 0;
_local5 = 320;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 64;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 64, 64);
inflictEquip.x = -32;
inflictEquip.y = -32;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function idle():void{
equip.goToFrame(4);
}
public function animate():void{
if (equip.isNextFrame((equipframes - 1))){
equip.goToFrame(0);
} else {
equip.nextFrame();
};
if (inflictEquip.isNextFrame((equipframes - 1))){
inflictEquip.goToFrame(0);
} else {
inflictEquip.nextFrame();
};
}
}
class EReg {
public var result:Array;
public var r:Object;
public function EReg(_arg1:String=undefined, _arg2:String=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
r = new RegExp(_arg1, _arg2);
}
public function split(_arg1:String):Array{
return (_arg1.split(r));
}
public function replace(_arg1:String, _arg2:String):String{
return (_arg1.replace(r, _arg2));
}
public function matchedRight():String{
if ((result == (null as Array))){
throw ("No string matched");
};
var _local1:int = (result.index + (result[0] as String).length);
return (result.input.substr(_local1, (result.input.length - _local1)));
}
public function matchedPos():Object{
if ((result == (null as Array))){
throw ("No string matched");
};
return ({len:(result[0] as String).length, pos:result.index});
}
public function matchedLeft():String{
if ((result == (null as Array))){
throw ("No string matched");
};
return (result.input.substr(0, result.index));
}
public function matched(_arg1:int):String{
if (!((result == (null as Array)))){
false;
if ((_arg1 >= 0)){
false;
};
};
if (false){
} else {
throw ("EReg::matched");
};
return (!NULL!);
}
public function match(_arg1:String):Boolean{
result = r.exec(_arg1);
return (!((result == (null as Array))));
}
}
class ProjectileCExplosionParticle extends Particle {
public function ProjectileCExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
var _local2 = (new Sprite() as Sprite);
var _local3 = (new BitmapData(8, 2, true, 0xFFFFFF) as BitmapData);
_local3.fillRect(new Rectangle(0, 0, 8, 2), -1);
var _local4 = (new Bitmap(_local3) as Bitmap);
_local4.y = -1;
_local2.addChild(_local4);
particleSprite.addChild(_local2);
}
}
class SpawnerA extends Enemy {
public var spawnerSprite:SpawnerSprite;
public var spawnTime:int;
public var spawnEnemy:Object;
public var spawnCount:int;
public var currentSpawnTime:int;
public var curanimateque:int;
public var animatespeed:int;
public function SpawnerA(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
spawnTime = Config.spawnerA.spawnTime;
spawnCount = Config.spawnerA.spawnCount;
spawnEnemy = Config.spawnerA.spawnEnemy;
hitpoint = Config.spawnerA.hitpoint;
worth = Config.spawnerA.worth;
currentSpawnTime = 0;
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFF00);
_local4.graphics.drawRect(0, 0, 16, 16);
hitbox = _local4;
hitbox.x = (-(hitbox.width) / 2);
hitbox.y = (-(hitbox.height) / 2);
hitbox.alpha = 0;
spawnerSprite = new SpawnerSprite();
inflictHitSprite.addChild(spawnerSprite.inflictGroup);
animatespeed = 10;
curanimateque = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
spawnerSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(spawnerSprite);
container.addChild(inflictHitSprite);
if ((_arg3.x == 0)){
false;
};
if (false){
container.x = ((Math.round(((Math.random() * boundary.width) - (container.width / 2))) + boundary.x) + (container.width / 2));
container.y = ((Math.round(((Math.random() * boundary.height) - (container.height / 2))) + boundary.y) + (container.height / 2));
} else {
container.x = _arg3.x;
container.y = _arg3.y;
};
displayParent.addChild(container);
}
override public function update():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6 = (null as Enemy);
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
spawnerSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
spawnerSprite.alpha = 1;
};
} else {
if ((currentSpawnTime > spawnTime)){
currentSpawnTime = 0;
_local1 = 0;
_local2 = spawnCount;
do {
//unresolved if
_local3 = _local1;
_local1++;
_local4 = (container.x + (Math.cos((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local5 = (container.y + (Math.sin((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local6 = (Type.createInstance(Type.toClass(spawnEnemy), [displayParent, boundary, new Point(_local4, _local5)]) as Enemy);
MissionManager.currentMission.enemyList().push(_local6);
} while (true);
spawnerSprite.spawning(true);
} else {
if ((currentSpawnTime == 0)){
spawnerSprite.spawning(false);
};
currentSpawnTime = (currentSpawnTime + 1);
};
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
spawnerSprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.spawnerScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class EnemyMine extends Enemy {
public var speed:Number;
public var lifetime:int;
public var enemySprite:EnemyMineSprite;
public var curlifetime:int;
public var curanimateque:int;
public var animatespeed:int;
public function EnemyMine(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
isMine = true;
hitpoint = Config.enemyMine.hitpoint;
worth = Config.enemyMine.worth;
enemySprite = new EnemyMineSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
var _local4:int = 1;
var _local5:int = 2;
speed = ((Math.random() * (_local5 - _local4)) + _local4);
var _local6 = (new Sprite() as Sprite);
_local6.graphics.beginFill(0xFFFFFF);
_local6.graphics.drawRect(-6, -6, 12, 12);
hitbox = _local6;
hitbox.alpha = 0;
animatespeed = 20;
curanimateque = 0;
lifetime = 400;
curlifetime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = false;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (1 - (curGhostingQue / ghostingTime));
} else {
curGhostingQue = ghostingTime;
MissionManager.currentMission.removeEnemy(this);
destroy(false);
};
} else {
if ((curlifetime < lifetime)){
curlifetime = (curlifetime + 1);
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
} else {
if ((curlifetime >= lifetime)){
isGhosting = true;
curlifetime = lifetime;
};
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.enemyMineScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class LabelButton extends SimpleButton {
public function LabelButton(_arg1:String=undefined, _arg2:Number=undefined, _arg3:Number=undefined, _arg4:Object=undefined, _arg5:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
var _local6:* = {height:_arg3, width:_arg2, multiline:false, selectable:false, align:TextFormatAlign.CENTER, autosize:TextFieldAutoSize.CENTER, color:0xFFFFFF, size:10, font:"Tahoma"};
var _local7:* = {margin:2, over_alpha:0.8, over_bordersize:1, over_bordercolor:0, over_bgcolor:0x999999, down_alpha:0.8, down_bordersize:1, down_bordercolor:0xFFFFFF, down_bgcolor:0x666666, up_alpha:0.8, up_bordersize:1, up_bordercolor:0xFFFFFF, up_bgcolor:0x999999};
var _local8:* = ((_arg5 == null)) ? _local6 : _arg5;
var _local9:* = ((_arg4 == null)) ? _local7 : _arg4;
var _local10 = (new Label(_arg1, _local8) as Label);
var _local11 = (new Label(_arg1, _local8) as Label);
var _local12 = (new Label(_arg1, _local8) as Label);
var _local13 = (new Sprite() as Sprite);
_local13.graphics.beginFill(_local9.up_bgcolor, _local9.up_alpha);
_local13.graphics.lineStyle(_local9.up_bordersize, _local9.up_bordercolor);
_local13.graphics.drawRect(0, 0, (_arg2 + (_local9.margin * 2)), (_arg3 + (_local9.margin * 2)));
var _local14 = (new Sprite() as Sprite);
_local14.graphics.beginFill(_local9.down_bgcolor, _local9.down_alpha);
_local14.graphics.lineStyle(_local9.down_bordersize, _local9.down_bordercolor);
_local14.graphics.drawRect(0, 0, (_arg2 + (_local9.margin * 2)), (_arg3 + (_local9.margin * 2)));
var _local15 = (new Sprite() as Sprite);
_local15.graphics.beginFill(_local9.over_bgcolor, _local9.over_alpha);
_local15.graphics.lineStyle(_local9.over_bordersize, _local9.over_bordercolor);
_local15.graphics.drawRect(0, 0, (_arg2 + (_local9.margin * 2)), (_arg3 + (_local9.margin * 2)));
var _local16 = (new Sprite() as Sprite);
_local16.graphics.beginFill(0);
_local16.graphics.drawRect(0, 0, (_arg2 + (_local9.margin * 2)), (_arg3 + (_local9.margin * 2)));
super();
var _local17 = (new Sprite() as Sprite);
_local17.addChild(_local13);
_local17.addChild(_local10.getTextField());
var _local18 = (new Sprite() as Sprite);
_local18.addChild(_local14);
_local18.addChild(_local11.getTextField());
var _local19 = (new Sprite() as Sprite);
_local19.addChild(_local15);
_local19.addChild(_local12.getTextField());
upState = _local17;
downState = _local18;
overState = _local19;
hitTestState = _local16;
}
}
class EnemyRuneExplosionParticle extends Particle {
public function EnemyRuneExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
var _local2 = (new Sprite() as Sprite);
var _local3 = (new BitmapData(96, 96, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("UITiles"), new Rectangle(0, 0, 96, 96), new Point(0, 0));
var _local4 = (new MovieTile(_local3, 16, 16) as MovieTile);
var _local5:Number = 1;
var _local6:Number = 0.8;
var _local7:Number = 2;
var _local8:Number = 1;
var _local9:int = Math.round((Math.random() * _local4.frames));
var _local10:Number = ((Math.random() * (_local5 - _local6)) + _local6);
var _local11:Number = ((Math.random() * (_local7 - _local8)) + _local8);
_local4.goToFrame(_local9);
_local4.alpha = _local10;
var _local12:* = _local11;
_local4.scaleY = _local12;
_local4.scaleX = _local12;
_local2.addChild(_local4);
_local2.x = (-(_local2.width) / 2);
_local2.y = (-(_local2.height) / 2);
particleSprite.addChild(_local2);
}
}
class EnemyG extends Enemy {
public var speed:Number;
public var shieldSprite:Sprite;
public var projectileData:Object;
public var minSpeed:Number;
public var maxshieldpoint:int;
public var maxSpeed:Number;
public var enemySprite:EnemyGSprite;
public var distanceThreshold:int;
public var curanimateque:int;
public var animatespeed:int;
public function EnemyG(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.enemyG.hitpoint;
maxshieldpoint = (Config.enemyG.hitpoint * 50);
shieldpoint = maxshieldpoint;
worth = Config.enemyG.worth;
enemySprite = new EnemyGSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
shieldSprite = new Sprite();
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-7, -7, 14, 14);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 0.6;
maxSpeed = 0.9;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
distanceThreshold = 150;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
var _local1 = (null as Point);
var _local2:Number;
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
_local1 = (new Point(ScreenManager.playScreen.player.locX, ScreenManager.playScreen.player.locY) as Point);
_local2 = Math.atan2((_local1.y - container.y), (_local1.x - container.x));
vectorX = (Math.cos(_local2) * speed);
vectorY = (Math.sin(_local2) * speed);
if ((Point.distance(_local1, new Point(locX, locY)) <= distanceThreshold)){
if ((shieldpoint > 1)){
isInvincible = true;
createShield();
};
enemySprite.idle();
} else {
shieldpoint = maxshieldpoint;
isInvincible = false;
destroyShield();
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.enemyGScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
public function destroyShield():void{
if (container.contains(shieldSprite)){
shieldSprite.graphics.clear();
shieldSprite.filters = [];
container.removeChild(shieldSprite);
};
}
override public function decreaseShield():void{
var _local1:Number = 0.3;
var _local2:Number = 1;
var _local3:Number = (shieldpoint / maxshieldpoint);
if ((_local3 <= 0)){
destroyShield();
};
var _local4:Number = ((_local3 * (_local2 - _local1)) + _local1);
var _local5:* = _local4;
shieldSprite.scaleY = _local5;
shieldSprite.scaleX = _local5;
}
public function createShield():void{
var _local1:* = null;
if (!(container.contains(shieldSprite))){
_local1 = 1;
shieldSprite.scaleY = _local1;
shieldSprite.scaleX = _local1;
shieldSprite.graphics.lineStyle(2, 0xFFFFFF, 0.5);
shieldSprite.graphics.drawCircle(0, 0, (enemySprite.width / 3));
shieldSprite.filters = [new BlurFilter(2, 2, 2)];
container.addChild(shieldSprite);
};
}
}
class EnemyMineScoreExplosionParticle extends Particle {
public function EnemyMineScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.enemyMine.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class MenuDialog extends Screen {
public var resumeButton:ButtonTile;
public var quitButton:ButtonTile;
public var menu:Sprite;
public var instructionsButton:ButtonTile;
public function MenuDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
menu = new Sprite();
menu.addChild(new Bitmap(Assets.objects.get("MenuDialog")));
var _local1 = (new BitmapData(149, 120, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("UITiles"), new Rectangle(0, 380, 149, 120), new Point(0, 0));
resumeButton = new ButtonTile(_local1, 149, 30);
var _local2 = (new BitmapData(149, 120, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("UITiles"), new Rectangle(149, 380, 149, 120), new Point(0, 0));
instructionsButton = new ButtonTile(_local2, 149, 30);
var _local3 = (new BitmapData(149, 120, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("UITiles"), new Rectangle(298, 380, 149, 120), new Point(0, 0));
quitButton = new ButtonTile(_local3, 149, 30);
resumeButton.x = ((menu.width - resumeButton.width) / 2);
resumeButton.y = 79;
instructionsButton.x = ((menu.width - instructionsButton.width) / 2);
instructionsButton.y = 114;
quitButton.x = ((menu.width - quitButton.width) / 2);
quitButton.y = 166;
menu.x = ((500 - menu.width) / 2);
menu.y = 500;
menu.addChild(resumeButton);
menu.addChild(instructionsButton);
menu.addChild(quitButton);
container.addChild(menu);
resumeButton.click = onResumeClick;
instructionsButton.click = onInstructionsClick;
quitButton.click = onQuitClick;
}
public function onResumeClick():void{
Tweener.addTween(menu, {onComplete:closeDialog, time:0.5, transition:"easeOutCubic", y:500});
if (TutorialManager.isRunning){
TutorialManager.resumeStep();
};
}
public function onQuitClick():void{
var _local1:Boolean;
if (TutorialManager.isRunning){
TutorialManager.endTutorial();
TutorialManager.hasDoneTutorial = false;
} else {
_local1 = Tweener.removeAllTweens();
if (_local1){
Profile.reset();
ScreenManager.playScreen.reset();
ScreenManager.techDialog.resetTechTree();
ScreenManager.hideDialog();
ScreenManager.showScreen("title");
};
};
}
public function onInstructionsClick():void{
ScreenManager.showScreen("instructionsFromPlay");
ScreenManager.hideDialog();
}
public function init():void{
menu.y = 500;
Tweener.addTween(menu, {time:0.5, transition:"easeOutCubic", y:((500 - menu.height) / 2)});
}
public function closeDialog():void{
ScreenManager.playScreen.start();
ScreenManager.hideDialog();
}
public function bypassInit():void{
menu.y = ((500 - menu.height) / 2);
}
}
class EnemyFSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function EnemyFSprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(14, 14, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -7;
core.y = -7;
var _local2 = (new BitmapData(160, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(192, 32, 160, 32), new Point(0, 0));
equip = new MovieTile(_local2, 32, 32);
equip.x = -16;
equip.y = -16;
equipframes = equip.frames;
var _local3 = (new BitmapData(14, 14, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
var _local4:int;
var _local5:int = 14;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 14;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -7;
inflictCore.y = -7;
var _local10 = (new BitmapData(160, 32, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(192, 32, 160, 32), new Point(0, 0));
_local4 = 0;
_local5 = 192;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 32;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 32, 32);
inflictEquip.x = -16;
inflictEquip.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function idle():void{
equip.goToFrame(4);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
class LevelStatus {
public const __enum__ = true;
public var tag;
public var params;
public static const __isenum = true;
public static var VOID:LevelStatus;
public static var STARTED:LevelStatus;
public static var FINISHED:LevelStatus;
public function LevelStatus(_arg1:String, _arg2:Object):void{
tag = _arg1;
params = _arg2;
}
public function toString():String{
return (Boot_BA08CD.enum_to_string(this));
}
}
class DescStandard extends Font {
public function DescStandard():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class BossAScoreExplosionParticle extends Particle {
public function BossAScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.bossA.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class BossBScoreExplosionParticle extends Particle {
public function BossBScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.bossB.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class BossCScoreExplosionParticle extends Particle {
public function BossCScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.bossSpawner.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class BossDScoreExplosionParticle extends Particle {
public function BossDScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.bossD.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class EnemyA extends Enemy {
public var speed:Number;
public var projectileData:Object;
public var minSpeed:Number;
public var maxSpeed:Number;
public var enemySprite:EnemyASprite;
public var curanimateque:int;
public var animatespeed:int;
public function EnemyA(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.enemyA.hitpoint;
worth = Config.enemyA.worth;
enemySprite = new EnemyASprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-7, -7, 14, 14);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 0.5;
maxSpeed = 1;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
var _local2 = (new ParticleEmitter(Config.enemyAScoreExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
ParticleManager.createEmitter(_local2);
}
}
class EnemyC extends Enemy {
public var stopTime:int;
public var speed:Number;
public var shieldSprite:Sprite;
public var projectileData:Object;
public var moveTime:int;
public var minSpeed:Number;
public var maxshieldpoint:int;
public var maxSpeed:Number;
public var enemySprite:EnemyCSprite;
public var curanimateque:int;
public var curStopTime:int;
public var curMoveTime:int;
public var animatespeed:int;
public function EnemyC(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.enemyC.hitpoint;
maxshieldpoint = (Config.enemyC.hitpoint * 4);
shieldpoint = maxshieldpoint;
worth = Config.enemyC.worth;
enemySprite = new EnemyCSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
shieldSprite = new Sprite();
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-7, -7, 14, 14);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 1;
maxSpeed = 2;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
var _local6:int = 250;
var _local7:int = 450;
var _local8:int = 400;
var _local9:int = 900;
stopTime = Std.int(((Math.random() * (_local7 - _local6)) + _local6));
moveTime = Std.int(((Math.random() * (_local9 - _local8)) + _local8));
curStopTime = 0;
curMoveTime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
if ((curStopTime == 0)){
false;
};
if (false){
curMoveTime = (curMoveTime + 1);
isInvincible = false;
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
} else {
if ((curStopTime < stopTime)){
false;
};
if (false){
curStopTime = (curStopTime + 1);
if ((shieldpoint > 1)){
isInvincible = true;
createShield();
} else {
isInvincible = false;
};
enemySprite.idle();
} else {
curStopTime = 0;
curMoveTime = 0;
shieldpoint = maxshieldpoint;
destroyShield();
};
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.enemyCScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
public function destroyShield():void{
shieldSprite.graphics.clear();
shieldSprite.filters = [];
container.removeChild(shieldSprite);
}
override public function decreaseShield():void{
var _local1:Number = 0.3;
var _local2:Number = 1;
var _local3:Number = (shieldpoint / maxshieldpoint);
if ((_local3 <= 0)){
destroyShield();
};
var _local4:Number = ((_local3 * (_local2 - _local1)) + _local1);
var _local5:* = _local4;
shieldSprite.scaleY = _local5;
shieldSprite.scaleX = _local5;
}
public function createShield():void{
var _local1:* = null;
if (!(container.contains(shieldSprite))){
_local1 = 1;
shieldSprite.scaleY = _local1;
shieldSprite.scaleX = _local1;
shieldSprite.graphics.lineStyle(2, 0xFFFFFF, 0.5);
shieldSprite.graphics.drawCircle(0, 0, (enemySprite.width / 3));
shieldSprite.filters = [new BlurFilter(2, 2, 2)];
container.addChild(shieldSprite);
};
}
}
class EnemyE extends Enemy {
public var teleportTime:int;
public var speed:Number;
public var projectileData:Object;
public var moveTime:int;
public var minSpeed:Number;
public var maxSpeed:Number;
public var isTeleporting:Boolean;
public var enemySprite:EnemyESprite;
public var curanimateque:int;
public var curTeleportTime:int;
public var curMoveTime:int;
public var animatespeed:int;
public function EnemyE(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.enemyE.hitpoint;
worth = Config.enemyE.worth;
enemySprite = new EnemyESprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-7, -7, 14, 14);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 1;
maxSpeed = 2;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
var _local6:int = 50;
var _local7:int = 75;
var _local8:int = 200;
var _local9:int = 400;
teleportTime = Std.int(((Math.random() * (_local7 - _local6)) + _local6));
moveTime = Std.int(((Math.random() * (_local9 - _local8)) + _local8));
curTeleportTime = 0;
curMoveTime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
isTeleporting = false;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
if (isGhosting){
false;
};
if (false){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
if ((curMoveTime < moveTime)){
curMoveTime = (curMoveTime + 1);
isInvincible = false;
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
} else {
if ((curMoveTime == moveTime)){
false;
};
if (false){
if (!(isTeleporting)){
bamf();
};
curTeleportTime = (curTeleportTime + 1);
objectSprite.visible = false;
isGhosting = true;
isTeleporting = true;
} else {
teleport();
bamf();
objectSprite.visible = true;
isGhosting = false;
isTeleporting = false;
curTeleportTime = 0;
curMoveTime = 0;
};
};
};
}
public function teleport():void{
var _local1:Number = (boundary.left + enemySprite.width);
var _local2:Number = (boundary.right - enemySprite.width);
var _local3:Number = (boundary.top + enemySprite.height);
var _local4:Number = (boundary.bottom - enemySprite.height);
var _local5:Number = ((Math.random() * (_local2 - _local1)) + _local1);
var _local6:Number = ((Math.random() * (_local4 - _local3)) + _local3);
container.x = _local5;
container.y = _local6;
var _local7:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local7 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local7 * Math.PI) / 180)) * speed);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.enemyEScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
public function bamf():void{
var _local1 = (new ParticleEmitter(Config.enemyTeleportEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
SoundManager.playSFX("EnemyTeleporting");
}
}
dynamic class Boot_BA08CD extends MovieClip {
public static var init:Function;
public static var tf:TextField;
public static var lines:Array;
public static var __res:Dictionary;
public static var skip_constructor:Boolean;
public function Boot_BA08CD(_arg1:MovieClip=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local2:* = Array.prototype;
_local2.copy = function ():Object{
return (this.slice());
};
_local2.insert = function (_arg1:Object, _arg2:Object):void{
this.splice(_arg1, 0, _arg2);
};
_local2.remove = function (_arg1:Object):Boolean{
var _local4:int;
var _local2:int;
var _local3:int = this.length;
do {
//unresolved if
_local4 = _local2;
_local2++;
if ((this[_local4] == _arg1)){
this.splice(_local4, 1);
return (true);
};
} while (true);
return (false);
};
_local2.iterator = function ():Object{
return ({next:function ():Object{
var _local1:* = this.cur;
this.cur = (_local1 + 1);
return (this.arr[_local1]);
}, hasNext:function ():Boolean{
return ((this.cur < this.arr.length));
}, arr:this, cur:0});
};
??getglobalscope
.Boolean = Boolean;
??getglobalscope
.int = int;
??getglobalscope
.Number = Number;
??getglobalscope
.Dynamic = {toString:function ():String{
return ("Dynamic");
}};
var cca:* = String.prototype.charCodeAt;
String.prototype.charCodeAt = function (_arg1:Object):Object{
var _local2:* = cca.call(this, _arg1);
if (isNaN(_local2)){
return (null);
};
return (_local2);
};
Boot_BA08CD.lines = new Array();
Lib.current = ((_arg1 == (null as MovieClip))) ? (this as MovieClip) : _arg1;
if (!((Boot_BA08CD.init == null))){
Boot_BA08CD.init();
};
}
public static function enum_to_string(_arg1:Object):String{
if ((_arg1.params == null)){
return ((_arg1.tag as String));
};
return ((((((((_arg1.tag as String) + "(") as String) + _arg1.params.join(",")) as String) + ")") as String));
}
public static function __instanceof(_arg1:Object, _arg2:Object):Boolean{
var _local4:* = null;
var _local5:* = null;
try {
if ((_arg2 === Dynamic)){
return (true);
};
return ((_arg1 is _arg2));
} catch(#InvalidMultinameIndex#) {
_local5 = !NULL!;
_local4 = _local5;
};
return (false);
}
public static function __clear_trace():void{
if ((Boot_BA08CD.tf == (null as TextField))){
return;
};
Lib.current.removeChild(Boot_BA08CD.tf);
Boot_BA08CD.tf = (null as TextField);
Boot_BA08CD.lines = new Array();
}
public static function __set_trace_color(_arg1:uint):void{
Boot_BA08CD.getTrace().textColor = _arg1;
}
public static function getTrace():TextField{
var _local1 = (Lib.current as MovieClip);
if ((Boot_BA08CD.tf == (null as TextField))){
Boot_BA08CD.tf = new TextField();
Boot_BA08CD.tf.selectable = false;
Boot_BA08CD.tf.width = _local1.stage.stageWidth;
Boot_BA08CD.tf.autoSize = TextFieldAutoSize.LEFT;
Boot_BA08CD.tf.mouseEnabled = false;
};
_local1.addChild(Boot_BA08CD.tf);
return (Boot_BA08CD.tf);
}
public static function __trace(_arg1:Object, _arg2:Object):void{
var _local3 = (Boot_BA08CD.getTrace() as TextField);
var _local4 = (((_arg2 == null)) ? "(null)" : (((((_arg2.fileName as String) + ":") as String) + _arg2.lineNumber) as String) as String);
Boot_BA08CD.lines = Boot_BA08CD.lines.concat(((((_local4 + ": ") as String) + Boot_BA08CD.__string_rec(_arg1, "")) as String).split("\n"));
_local3.text = Boot_BA08CD.lines.join("\n");
var _local5 = (Lib.current.stage as Stage);
if ((_local5 == (null as Stage))){
throw ("Loaded movie not ready to trace, wait a few frames");
};
do {
//unresolved if
Boot_BA08CD.lines.shift();
_local3.text = Boot_BA08CD.lines.join("\n");
} while (true);
}
public static function __string_rec(_arg1:Object, _arg2:String):String{
var _local4 = (null as String);
var _local5 = (null as Array);
var _local6 = (null as Array);
var _local7:int;
var _local8:* = null;
var _local9 = (null as String);
var _local10:Boolean;
var _local11:int;
var _local12:int;
var _local13 = (null as String);
var _local14:* = null;
var _local3 = (getQualifiedClassName(_arg1) as String);
_local4 = (_local3 as String);
if (_local4 == "Object"){
_local7 = 0;
_local6 = ([] as Array);
_local8 = _arg1;
for (/*?*/in _arg1) {
_local6.push(//unresolved nextvalue or nextname);
};
_local5 = (_local6 as Array);
_local9 = ("{" as String);
_local10 = true;
_local7 = 0;
_local11 = _local5.length;
do {
//unresolved if
_local12 = _local7;
_local7++;
_local13 = ((_local5[_local12] as String) as String);
if (_local10){
_local10 = false;
} else {
_local9 = (((_local9 + ",") as String) as String);
};
_local9 = (((_local9 + ((((((" " + _local13) as String) + " : ") as String) + Boot_BA08CD.__string_rec(_arg1[_local13], _arg2)) as String)) as String) as String);
} while (true);
if (!(_local10)){
_local9 = (((_local9 + " ") as String) as String);
};
_local9 = (((_local9 + "}") as String) as String);
return (_local9);
} else {
if (_local4 == "Array"){
_local9 = ("[" as String);
_local10 = true;
_local7 = 0;
_local14 = _arg1.length;
do {
//unresolved if
_local11 = _local7;
_local7++;
if (_local10){
_local10 = false;
} else {
_local9 = (((_local9 + ",") as String) as String);
};
_local9 = (((_local9 + Boot_BA08CD.__string_rec(_arg1[_local11], _arg2)) as String) as String);
} while (true);
return (((_local9 + "]") as String));
} else {
_local4 = (typeof(_arg1) as String);
if (_local4 == "function"){
return ("<function>");
//unresolved jump
};
};
};
return (new String(_arg1));
}
}
class EnemyAExplosionParticle extends Particle {
public function EnemyAExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
var _local2:Number = 0.9;
var _local3:Number = 0.6;
var _local4:Number = (Math.random() * 3);
var _local5:Number = ((Math.random() * (_local2 - _local3)) + _local3);
var _local6 = (new Sprite() as Sprite);
_local6.alpha = _local5;
var _local7:int = Std.int((6 * _local4));
var _local8:int = (_local7 - 2);
var _local9 = (new BitmapData(_local7, _local7, true, 0xFFFFFF) as BitmapData);
Raster.line(_local9, 0, 0, _local8, 0, -1);
Raster.line(_local9, _local8, 0, _local8, _local8, -1);
Raster.line(_local9, _local8, _local8, 0, _local8, -1);
Raster.line(_local9, 0, _local8, 0, 0, -1);
var _local10 = (new Bitmap(_local9) as Bitmap);
_local6.addChild(_local10);
particleSprite.addChild(_local6);
}
}
class EnemyAScoreExplosionParticle extends Particle {
public function EnemyAScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.enemyA.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class EnemyBScoreExplosionParticle extends Particle {
public function EnemyBScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.enemyB.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class EnemyCScoreExplosionParticle extends Particle {
public function EnemyCScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.enemyC.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class EnemyEScoreExplosionParticle extends Particle {
public function EnemyEScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.enemyE.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class EnemyFScoreExplosionParticle extends Particle {
public function EnemyFScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.enemyF.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class EnemyGScoreExplosionParticle extends Particle {
public function EnemyGScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.enemyG.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class EnemyHScoreExplosionParticle extends Particle {
public function EnemyHScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.enemyH.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class EnemyTeleportParticle extends Particle {
public function EnemyTeleportParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
var _local2:Number = (Math.random() * 3);
var _local3 = (new Sprite() as Sprite);
_local3.graphics.lineStyle(2, 0xFFFFFF);
_local3.graphics.moveTo(0, -3);
_local3.graphics.curveTo(3, 0, 0, 3);
var _local4:* = _local2;
_local3.scaleY = _local4;
_local3.scaleX = _local4;
particleSprite.addChild(_local3);
}
}
class PlayerExplosionParticle extends Particle {
public function PlayerExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
var _local2:Number = (Math.random() * 5);
var _local3 = (new Sprite() as Sprite);
_local3.graphics.beginFill(0xFFFFFF);
_local3.graphics.drawRect(-1, -1, 2, 2);
var _local4:* = _local2;
_local3.scaleY = _local4;
_local3.scaleX = _local4;
particleSprite.addChild(_local3);
}
}
class ProjectileA extends Projectile {
public function ProjectileA(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileA.damage;
maxDistance = 100;
useTarget = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(8, 2, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 8, 2), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -1;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
}
class ProjectileAExplosionParticle extends Particle {
public function ProjectileAExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
var _local2 = (new Sprite() as Sprite);
var _local3 = (new BitmapData(3, 2, true, 0xFFFFFF) as BitmapData);
_local3.fillRect(new Rectangle(0, 0, 3, 2), -1);
var _local4 = (new Bitmap(_local3) as Bitmap);
_local4.y = -1;
_local2.addChild(_local4);
particleSprite.addChild(_local2);
}
}
class ProjectileB extends Projectile {
public function ProjectileB(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileB.damage;
speed = 8;
maxDistance = 200;
useTarget = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(8, 2, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 8, 2), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -1;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
}
class ProjectileBExplosionParticle extends Particle {
public function ProjectileBExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
var _local2 = (new Sprite() as Sprite);
var _local3 = (new BitmapData(5, 2, true, 0xFFFFFF) as BitmapData);
_local3.fillRect(new Rectangle(0, 0, 5, 2), -1);
var _local4 = (new Bitmap(_local3) as Bitmap);
_local4.y = -1;
_local2.addChild(_local4);
particleSprite.addChild(_local2);
}
}
class ProjectileG extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileG(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileG.damage;
speed = 10;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
maxDistance = 200;
fadeSteps = 5;
useTarget = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 4, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 12, 4), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -2;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectileGBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class ProjectileH extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileH(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileH.damage;
speed = 10;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
maxDistance = 250;
fadeSteps = 5;
useTarget = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 4, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 12, 4), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -2;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectileGBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class ProjectileJBurstParticle extends Particle {
public function ProjectileJBurstParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
}
override public function drawTravelLine(_arg1:Point, _arg2:Point):void{
var _local3 = (_arg1.subtract(_arg2) as Point);
var _local4 = (new Sprite() as Sprite);
_local4.graphics.lineStyle(4, 0xFFFFFF, 0.5);
_local4.graphics.lineTo(_local3.x, _local3.y);
_local4.cacheAsBitmap = true;
particleSprite.addChild(_local4);
}
}
class ProjectileK extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileK(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileK.damage;
speed = 12;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 6, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 12, 6), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -3;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectileJBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class ProjectileL extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileL(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileL.damage;
speed = 12;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 6, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 12, 6), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -3;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectileJBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class ProjectileO extends Projectile {
public function ProjectileO(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileO.damage;
speed = 20;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
baseType = ProjectileBaseType.LIGHTNING;
useTarget = true;
hitNDestroy = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 12, true, 0xFFFFFF) as BitmapData);
Raster.circle(_local4, 0, 0, 6, 0xFFFFFF);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.x = -6;
_local5.y = -6;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
}
class ProjectilePBurstParticle extends Particle {
public function ProjectilePBurstParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
}
override public function drawTravelLine(_arg1:Point, _arg2:Point):void{
var _local3 = (_arg1.subtract(_arg2) as Point);
var _local4 = (new Sprite() as Sprite);
_local4.graphics.lineStyle(6, 0xFFFFFF, 0.5);
_local4.graphics.lineTo(_local3.x, _local3.y);
_local4.cacheAsBitmap = true;
particleSprite.addChild(_local4);
}
}
class ProjectileT extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileT(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileT.damage;
speed = 12;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
turningSpeed = 7;
baseType = ProjectileBaseType.MISSILE;
useTarget = true;
maxDistance = 1000;
hitNDestroy = true;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(11, 2, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 11, 2), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -1;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectileSBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileCExplosionEmitter) as ParticleEmitter);
var _local2 = (new ParticleEmitter(Config.projectileCExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
_local2.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
ParticleManager.createEmitter(_local2);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class ProjectileU extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileU(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
damage = Config.projectileU.damage;
speed = 12;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
turningSpeed = 7;
baseType = ProjectileBaseType.MISSILE;
useTarget = true;
maxDistance = 1000;
hitNDestroy = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(11, 2, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 11, 2), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -1;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectileSBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileCExplosionEmitter) as ParticleEmitter);
var _local2 = (new ParticleEmitter(Config.projectileCExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
_local2.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
ParticleManager.createEmitter(_local2);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class ProjectileVBurstParticle extends Particle {
public function ProjectileVBurstParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
}
override public function drawTravelLine(_arg1:Point, _arg2:Point):void{
var _local3 = (_arg1.subtract(_arg2) as Point);
var _local4 = (new Sprite() as Sprite);
_local4.graphics.lineStyle(1, 0xFFFFFF, 0.5);
_local4.graphics.drawEllipse(-2, -2, 4, 4);
_local4.cacheAsBitmap = true;
particleSprite.addChild(_local4);
}
}
class RuneRunningParticle extends Particle {
public function RuneRunningParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2 = (new Sprite() as Sprite);
var _local3 = (new BitmapData(96, 96, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("UITiles"), new Rectangle(0, 0, 96, 96), new Point(0, 0));
var _local4 = (new MovieTile(_local3, 16, 16) as MovieTile);
var _local5:Number = 0.5;
var _local6:Number = 0.1;
var _local7:Number = 2;
var _local8:Number = 1;
var _local9:Number = 3;
var _local10:Number = 0;
var _local11:Number = ((Math.random() * (_local5 - _local6)) + _local6);
var _local12:Number = ((Math.random() * (_local7 - _local8)) + _local8);
var _local13:Number = ((Math.random() * (_local9 - _local10)) + _local10);
var _local14:int = Math.round((Math.random() * _local4.frames));
_local4.goToFrame(_local14);
_local4.alpha = _local11;
var _local15:* = _local12;
_local4.scaleY = _local15;
_local4.scaleX = _local15;
_local4.filters = [new BlurFilter(_local13, _local13, 2)];
_local2.addChild(_local4);
_local2.x = (-(_local2.width) / 2);
_local2.y = (-(_local2.height) / 2);
particleSprite.addChild(_local2);
}
}
class SpawnerScoreExplosionParticle extends Particle {
public function SpawnerScoreExplosionParticle(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1);
particleSprite.rotation = 0;
var _local2:* = {align:TextFormatAlign.LEFT, autosize:TextFieldAutoSize.LEFT, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:-855638017, size:24, font:new StylishM20().fontName};
var _local3 = (new Label(Std.string(Config.spawnerA.worth), _local2) as Label);
var _local4 = (new Sprite() as Sprite);
var _local5 = (new BitmapData(Math.ceil(_local3.getTextField().width), Math.ceil(_local3.getTextField().height), true, 0xFFFFFF) as BitmapData);
_local5.draw(_local3.getTextField());
var _local6 = (new Bitmap(_local5) as Bitmap);
_local4.addChild(_local6);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
particleSprite.addChild(_local4);
}
}
class Config {
public static var domain:Array;
public static var amfurl:String;
public static var highscoreurl:String;
public static var sponsor1url:String;
public static var sponsor2url:String;
public static var mainTick:int;
public static var scoreToTechConvertThreshold:int;
public static var bonusTimeScore:int;
public static var comboCountDelay:int;
public static var bonusComboScore:int;
public static var scoreToLifeThreshold:int;
public static var ambientVolume:Number;
public static var sfxVolume:Number;
public static var playScreenShockSpeed:Number;
public static var upKey:int;
public static var downKey:int;
public static var leftKey:int;
public static var rightKey:int;
public static var releaseBomb:int;
public static var openTechDialog:int;
public static var switchWeapons:int;
public static var openMenuDialog:int;
public static var playerGhostingTime:int;
public static var playerHit2GhostingTime:int;
public static var playerGameOverTime:int;
public static var maxHandlingVar:int;
public static var runeRunningParticle:Object;
public static var runeRunningParticleEmitter:Object;
public static var projectileAExplosionParticle:Object;
public static var projectileAExplosionEmitter:Object;
public static var projectileBExplosionParticle:Object;
public static var projectileBExplosionEmitter:Object;
public static var projectileCExplosionParticle:Object;
public static var projectileCExplosionEmitter:Object;
public static var projectileDExplosionParticle:Object;
public static var projectileDExplosionEmitter:Object;
public static var projectileEExplosionParticle:Object;
public static var projectileEExplosionEmitter:Object;
public static var projectileFExplosionParticle:Object;
public static var projectileFExplosionEmitter:Object;
public static var projectileSBurstParticle:Object;
public static var projectileSBurstEmitter:Object;
public static var projectileGBurstParticle:Object;
public static var projectileGBurstEmitter:Object;
public static var projectileJBurstParticle:Object;
public static var projectileJBurstEmitter:Object;
public static var projectilePBurstParticle:Object;
public static var projectilePBurstEmitter:Object;
public static var projectileVBurstParticle:Object;
public static var projectileVBurstEmitter:Object;
public static var enemyAExplosionParticle:Object;
public static var enemyAExplosionEmitter:Object;
public static var enemyRuneExplosionParticle:Object;
public static var enemyRuneExplosionEmitter:Object;
public static var playerExplosionParticle:Object;
public static var playerExplosionEmitter:Object;
public static var enemyTeleportParticle:Object;
public static var enemyTeleportEmitter:Object;
public static var enemyAScoreExplosionParticle:Object;
public static var enemyAScoreExplosionEmitter:Object;
public static var enemyBScoreExplosionParticle:Object;
public static var enemyBScoreExplosionEmitter:Object;
public static var enemyCScoreExplosionParticle:Object;
public static var enemyCScoreExplosionEmitter:Object;
public static var enemyDScoreExplosionParticle:Object;
public static var enemyDScoreExplosionEmitter:Object;
public static var enemyEScoreExplosionParticle:Object;
public static var enemyEScoreExplosionEmitter:Object;
public static var enemyFScoreExplosionParticle:Object;
public static var enemyFScoreExplosionEmitter:Object;
public static var enemyGScoreExplosionParticle:Object;
public static var enemyGScoreExplosionEmitter:Object;
public static var enemyHScoreExplosionParticle:Object;
public static var enemyHScoreExplosionEmitter:Object;
public static var enemyMineScoreExplosionParticle:Object;
public static var enemyMineScoreExplosionEmitter:Object;
public static var bossAScoreExplosionParticle:Object;
public static var bossAScoreExplosionEmitter:Object;
public static var bossBScoreExplosionParticle:Object;
public static var bossBScoreExplosionEmitter:Object;
public static var bossCScoreExplosionParticle:Object;
public static var bossCScoreExplosionEmitter:Object;
public static var bossDScoreExplosionParticle:Object;
public static var bossDScoreExplosionEmitter:Object;
public static var bossMineScoreExplosionParticle:Object;
public static var bossMineScoreExplosionEmitter:Object;
public static var spawnerScoreExplosionParticle:Object;
public static var spawnerScoreExplosionEmitter:Object;
public static var comboParticle:Object;
public static var comboEmitter:Object;
public static var projectileA:Object;
public static var projectileB:Object;
public static var projectileG:Object;
public static var projectileK:Object;
public static var projectileQ:Object;
public static var projectileN:Object;
public static var projectileO:Object;
public static var projectileD:Object;
public static var projectileE:Object;
public static var projectileH:Object;
public static var projectileL:Object;
public static var projectileR:Object;
public static var projectileS:Object;
public static var projectileT:Object;
public static var projectileU:Object;
public static var speedAttr3cost:int;
public static var speedAttr4cost:int;
public static var speedAttr5cost:int;
public static var handlingAttr2cost:int;
public static var handlingAttr3cost:int;
public static var bomb1:Object;
public static var bomb2:Object;
public static var bomb3:Object;
public static var techItemA:Object;
public static var techItemB:Object;
public static var techItemD:Object;
public static var techItemE:Object;
public static var techItemG:Object;
public static var techItemH:Object;
public static var techItemK:Object;
public static var techItemL:Object;
public static var techItemN:Object;
public static var techItemO:Object;
public static var techItemQ:Object;
public static var techItemR:Object;
public static var techItemS:Object;
public static var techItemT:Object;
public static var techItemU:Object;
public static var spawnerA:Object;
public static var spawnerB:Object;
public static var spawnerC:Object;
public static var spawnerD:Object;
public static var spawnerE:Object;
public static var bossSpawner:Object;
public static var enemyA:Object;
public static var enemyB:Object;
public static var enemyC:Object;
public static var enemyD:Object;
public static var enemyE:Object;
public static var enemyF:Object;
public static var enemyG:Object;
public static var enemyH:Object;
public static var enemyMine:Object;
public static var bossMine:Object;
public static var bossA:Object;
public static var bossB:Object;
public static var bossD:Object;
public static var enemyTestMine:Object;
public function Config():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
}
class TutorialManager {
public static var isRunning:Boolean;
public static var hasDoneTutorial:Boolean;
public static var stepID:int;
public static var steps:IntHash;
public static var startL2M0:LevelStatus;
public static var startL3M0:LevelStatus;
public static var startL4M0:LevelStatus;
public static var startL5M0:LevelStatus;
public static var startUpgradeTech:LevelStatus;
public static var startSetWeapon:LevelStatus;
public static var startCloseTechFirst:LevelStatus;
public static var startCloseTechSecond:LevelStatus;
public static var THitForStep9:Boolean;
public static var noteBox:Sprite;
public static var noteLabel:Label;
public static var noteFrame:Sprite;
public static var triggerTimer:Timer;
public static var triggerFunction:Object;
public static var triggerCompleteFunction:Object;
public static var lstyle:Object;
public function TutorialManager():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function startFirstStep():void{
TutorialManager.startStep();
}
public static function startTutorial():void{
TutorialManager.stepID = 1;
if (!(TutorialManager.triggerTimer.hasEventListener(TimerEvent.TIMER))){
TutorialManager.triggerTimer.addEventListener(TimerEvent.TIMER, TutorialManager.onTriggerTimerHandler);
};
if (!(TutorialManager.triggerTimer.hasEventListener(TimerEvent.TIMER_COMPLETE))){
TutorialManager.triggerTimer.addEventListener(TimerEvent.TIMER_COMPLETE, TutorialManager.onTriggerTimerCompleteHandler);
};
TutorialManager.triggerFunction = null;
TutorialManager.triggerCompleteFunction = null;
TutorialManager.startL2M0 = LevelStatus.VOID;
TutorialManager.startL3M0 = LevelStatus.VOID;
TutorialManager.startL4M0 = LevelStatus.VOID;
TutorialManager.startL5M0 = LevelStatus.VOID;
TutorialManager.startUpgradeTech = LevelStatus.VOID;
TutorialManager.startSetWeapon = LevelStatus.VOID;
TutorialManager.startCloseTechFirst = LevelStatus.VOID;
TutorialManager.startCloseTechSecond = LevelStatus.VOID;
TutorialManager.THitForStep9 = false;
var _local1:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(50, 50, 200, 80), note:"Hello, I'm the Tutor A.I. I'm here to guide you and provide informations on how to play this game.<br>(press Enter to continue)"}};
var _local2:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.initStep2, notes:{rect:new Rectangle(75, 20, 350, 65), note:"First lesson, NAVIGATE.<br>Use the WASD keys to do so. W for up, S for down, A for left and D for right."}};
var _local3:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.initStep3, notes:{rect:new Rectangle(75, 20, 350, 65), note:"Excellent!<br>To shoot, press the left mouse button. It has autofire, so no need to click everytime to shoot."}};
var _local4:* = {trigger:null, onTrigger:TutorialManager.stopLevel2Mission0, onStop:TutorialManager.startStep, onStart:TutorialManager.startLevel2Mission0, notes:{rect:new Rectangle(50, 10, 400, 50), note:"Great!<br>Now let's try some target practice. Destroy all of these enemy mines."}};
var _local5:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(50, 20, 400, 65), note:"Schweet!<br>Remember, most enemies move around so don't expect things lightly.<br>(press enter to continue)"}};
var _local6:* = {trigger:null, onTrigger:TutorialManager.stopLevel3Mission0, onStop:TutorialManager.startStep, onStart:TutorialManager.startLevel3Mission0, notes:{rect:new Rectangle(50, 10, 400, 30), note:"Ok, here's some more to kill. It should be as easy as before."}};
var _local7:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(50, 50, 200, 80), note:"Awright, way to go! Now you may notice you just got a techpoint. Did you see it?<br>(press Enter to continue)"}};
var _local8:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(410, 410, 80, 65), note:"Right here.<br>(press Enter to continue)"}};
var _local9:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.initStep9, notes:{rect:new Rectangle(50, 50, 150, 50), note:"Now open the TechTree Dialog, to do that, press T."}};
var _local10:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(150, 50, 200, 80), note:"Great! In here you can upgrade and setup new weapons, with 2 conditions.<br>(press Enter to continue)"}};
var _local11:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(150, 50, 200, 80), note:"First, you need to have enough techpoints. Every 100 score, you get 1 techpoint.<br>(press Enter to continue)"}};
var _local12:* = {trigger:null, onTrigger:TutorialManager.stopUpgradingTech, onStop:TutorialManager.startStep, onStart:TutorialManager.startUpgradingTech, notes:{rect:new Rectangle(150, 50, 200, 80), note:"You've got 1 techpoint already, that's why this item is now upgradable. Notice how the item box is different than the others. Click to upgrade."}};
var _local13:* = {trigger:null, onTrigger:TutorialManager.stopSetupWeapon, onStop:TutorialManager.startStep, onStart:TutorialManager.startSetupWeapon, notes:{rect:new Rectangle(60, 320, 200, 110), note:"Superb!<br>Now the tech is active, you can install and use it whenever you want. To install, click the active item to lift and click again on any WEAPON SLOT below."}};
var _local14:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(150, 50, 200, 80), note:"Excellent!<br>Remember you can always cancel a lift, just by clicking anywhere.<br>(press Enter to continue)"}};
var _local15:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(150, 50, 200, 80), note:"Besides having enough techpoints, the other condition for upgrade is the PREREQUISITE LINE.<br>(press Enter to continue)"}};
var _local16:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(150, 50, 200, 80), note:"A solid line indicates the previous tech needs to be active, while a dotted line means it's optional.<br>(press Enter to continue)"}};
var _local17:* = {trigger:null, onTrigger:TutorialManager.stopClosingTechFirst, onStop:TutorialManager.startStep, onStart:TutorialManager.startClosingTechFirst, notes:{rect:new Rectangle(300, 50, 150, 65), note:"For now, let's just close the TechTree and try the new weapon upgrade."}};
var _local18:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(50, 20, 400, 65), note:"The new weapon has a fire range slightly higher than the previous. If you don't see the difference, try swapping by pressing E.<br>(press Enter to continue)"}};
var _local19:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(50, 20, 400, 65), note:"Besides shooting, you can also use bombs. Bombs can eliminate any enemy within range.<br>(press Enter to continue)"}};
var _local20:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.initStep20, notes:{rect:new Rectangle(50, 20, 200, 50), note:"Here are some enemy mines to try a bomb. Pressing SPACE BAR releases a bomb."}};
var _local21:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(5, 340, 150, 133), note:"Cool! Now after releasing a bomb, notice the bomb indicator has greyed meaning it's cooling down and unusable for a moment.<br>(press Enter to continue)"}};
var _local22:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureTKeyForStop, notes:{rect:new Rectangle(50, 50, 200, 70), note:"You can also upgrade and add more bombs. Please open the TechTree dialog again."}};
var _local23:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(250, 325, 200, 95), note:"QTY adds more bombs, LVL upgrades your bomb. Adding and upgrading only requires sufficient techpoints.<br>(press Enter to continue)"}};
var _local24:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(250, 325, 200, 95), note:"Please note that upon upgrading, cooldown will reset so you won't be able to use it instantly. This doesn't occur when adding bombs.<br>(press Enter to continue)"}};
var _local25:* = {trigger:null, onTrigger:TutorialManager.stopClosingTechSecond, onStop:TutorialManager.startStep, onStart:TutorialManager.startClosingTechSecond, notes:{rect:new Rectangle(300, 50, 150, 65), note:"On to the final lesson, but first please close the TechTree dialog."}};
var _local26:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(100, 70, 300, 65), note:"Do you notice the 2 bars up there? Those are important indicators.<br>(press Enter to continue)"}};
var _local27:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(100, 70, 300, 65), note:"The top most bar is the System Integrity bar. This is used to show the systems 'health point'.<br>(press Enter to continue)"}};
var _local28:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(100, 70, 300, 80), note:"A system is the current area your defending againts enemies. The more enemies in this area, the faster this bar drops.<br>(press Enter to continue)"}};
var _local29:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(100, 70, 300, 80), note:"When the bar reaches 0%, the system will extract energy from you for recovery, thus destroying your craft.<br>(press Enter to continue)"}};
var _local30:* = {trigger:null, onTrigger:null, onStop:TutorialManager.startStep, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(100, 70, 300, 65), note:"The bar below it is the Next Wave bar. This is to show how soon the next enemy wave will enter.<br>(press Enter to continue)"}};
var _local31:* = {trigger:null, onTrigger:TutorialManager.stopLevel5Mission0, onStop:TutorialManager.startStep, onStart:TutorialManager.startLevel5Mission0, notes:{rect:new Rectangle(50, 400, 400, 50), note:"Let's test your survival skills. Try eliminating all enemies without loosing a life. (Note that the bars are a lot faster than in the real game)"}};
var _local32:* = {trigger:null, onTrigger:null, onStop:TutorialManager.endTutorial, onStart:TutorialManager.captureEnterKeyForStop, notes:{rect:new Rectangle(50, 50, 200, 115), note:"Cool!<br>Now I'm sure you're ready for the real thing.<br>Let's get it ON!<br>-- Tutor A.I. out. --<br>(press Enter to end tutorial)"}};
TutorialManager.steps = new IntHash();
TutorialManager.steps.set(1, _local1);
TutorialManager.steps.set(2, _local2);
TutorialManager.steps.set(3, _local3);
TutorialManager.steps.set(4, _local4);
TutorialManager.steps.set(5, _local5);
TutorialManager.steps.set(6, _local6);
TutorialManager.steps.set(7, _local7);
TutorialManager.steps.set(8, _local8);
TutorialManager.steps.set(9, _local9);
TutorialManager.steps.set(10, _local10);
TutorialManager.steps.set(11, _local11);
TutorialManager.steps.set(12, _local12);
TutorialManager.steps.set(13, _local13);
TutorialManager.steps.set(14, _local14);
TutorialManager.steps.set(15, _local15);
TutorialManager.steps.set(16, _local16);
TutorialManager.steps.set(17, _local17);
TutorialManager.steps.set(18, _local18);
TutorialManager.steps.set(19, _local19);
TutorialManager.steps.set(20, _local20);
TutorialManager.steps.set(21, _local21);
TutorialManager.steps.set(22, _local22);
TutorialManager.steps.set(23, _local23);
TutorialManager.steps.set(24, _local24);
TutorialManager.steps.set(25, _local25);
TutorialManager.steps.set(26, _local26);
TutorialManager.steps.set(27, _local27);
TutorialManager.steps.set(28, _local28);
TutorialManager.steps.set(29, _local29);
TutorialManager.steps.set(30, _local30);
TutorialManager.steps.set(31, _local31);
TutorialManager.steps.set(32, _local32);
TutorialManager.noteBox = new Sprite();
TutorialManager.noteLabel = new Label("", TutorialManager.lstyle);
TutorialManager.noteFrame = new Sprite();
TutorialManager.noteFrame.addChild(TutorialManager.noteLabel.getTextField());
KeyMouseManager.registerDownKey(Keyboard.ESCAPE, TutorialManager.captureEscKeyForPause);
}
public static function endTutorial():void{
TutorialManager.isRunning = false;
TutorialManager.hasDoneTutorial = true;
TutorialManager.steps.remove(1);
TutorialManager.steps.remove(2);
TutorialManager.steps.remove(3);
TutorialManager.steps.remove(4);
TutorialManager.steps.remove(5);
TutorialManager.steps.remove(6);
TutorialManager.steps.remove(7);
TutorialManager.steps.remove(8);
TutorialManager.steps.remove(9);
TutorialManager.steps.remove(10);
TutorialManager.steps.remove(11);
TutorialManager.steps.remove(12);
TutorialManager.steps.remove(13);
TutorialManager.steps.remove(14);
TutorialManager.steps.remove(15);
TutorialManager.steps.remove(16);
TutorialManager.steps.remove(17);
TutorialManager.steps.remove(18);
TutorialManager.steps.remove(19);
TutorialManager.steps.remove(20);
TutorialManager.steps.remove(21);
TutorialManager.steps.remove(22);
TutorialManager.steps.remove(23);
TutorialManager.steps.remove(24);
TutorialManager.steps.remove(25);
TutorialManager.steps.remove(26);
TutorialManager.steps.remove(27);
TutorialManager.steps.remove(28);
TutorialManager.steps.remove(29);
TutorialManager.steps.remove(30);
TutorialManager.steps.remove(31);
TutorialManager.steps.remove(32);
TutorialManager.steps = (null as IntHash);
TutorialManager.noteBox.removeChild(TutorialManager.noteFrame);
TutorialManager.noteBox = (null as Sprite);
TutorialManager.noteFrame.removeChild(TutorialManager.noteLabel.getTextField());
TutorialManager.noteFrame = (null as Sprite);
TutorialManager.noteLabel = (null as Label);
KeyMouseManager.unregisterDownKey(Keyboard.ESCAPE, TutorialManager.captureEscKeyForPause);
TutorialManager.triggerTimer.removeEventListener(TimerEvent.TIMER, TutorialManager.onTriggerTimerHandler);
TutorialManager.triggerTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, TutorialManager.onTriggerTimerCompleteHandler);
var _local1:Boolean = Tweener.removeAllTweens();
if (_local1){
Profile.reset();
ScreenManager.playScreen.pause();
ScreenManager.playScreen.reset();
ScreenManager.techDialog.resetTechTree();
ScreenManager.hideDialog();
ScreenManager.showScreen("title");
};
}
public static function getStepData():Object{
var _local1:* = null;
if (TutorialManager.steps.exists(TutorialManager.stepID)){
_local1 = TutorialManager.steps.get(TutorialManager.stepID);
};
return (_local1);
}
public static function drawStep(_arg1:Object):Sprite{
if (TutorialManager.noteBox.contains(TutorialManager.noteFrame)){
TutorialManager.noteBox.removeChild(TutorialManager.noteFrame);
};
var _local2:* = _arg1.notes;
Reflect.setField(TutorialManager.lstyle, "width", ((_local2.rect as Rectangle).width - 10));
Reflect.setField(TutorialManager.lstyle, "height", ((_local2.rect as Rectangle).height - 10));
TutorialManager.noteLabel.updateLabel((_local2.note as String));
TutorialManager.noteLabel.setStyle(TutorialManager.lstyle);
TutorialManager.noteLabel.getTextField().x = 5;
TutorialManager.noteLabel.getTextField().y = 5;
TutorialManager.noteFrame.graphics.clear();
TutorialManager.noteFrame.graphics.lineStyle(1, 0xFFFFFF, 0.8);
TutorialManager.noteFrame.graphics.beginFill(0, 0.6);
TutorialManager.noteFrame.graphics.drawRect(0, 0, (_local2.rect as Rectangle).width, (_local2.rect as Rectangle).height);
TutorialManager.noteFrame.x = (_local2.rect as Rectangle).x;
TutorialManager.noteFrame.y = (_local2.rect as Rectangle).y;
TutorialManager.noteBox.addChild(TutorialManager.noteFrame);
return (TutorialManager.noteBox);
}
public static function onTriggerTimerHandler(_arg1:TimerEvent):void{
if (!((TutorialManager.triggerFunction == null))){
TutorialManager.triggerFunction();
};
}
public static function onTriggerTimerCompleteHandler(_arg1:TimerEvent):void{
if (!((TutorialManager.triggerCompleteFunction == null))){
TutorialManager.triggerCompleteFunction();
};
}
public static function pauseStep():void{
Tweener.addTween(TutorialManager.noteFrame, {onComplete:ScreenManager.hideTutorialStep, transition:"easeOutQuad", time:0.5, alpha:0, y:(TutorialManager.noteFrame.y - 50)});
}
public static function resumeStep():void{
TutorialManager.startStep();
}
public static function startStep():void{
var _local2 = (null as Sprite);
var _local1:* = TutorialManager.getStepData();
if (!((_local1 == null))){
_local2 = (TutorialManager.drawStep(_local1) as Sprite);
ScreenManager.showTutorialStep(_local2);
TutorialManager.noteFrame.y = (TutorialManager.noteFrame.y - 50);
TutorialManager.noteFrame.alpha = 0;
Tweener.addTween(TutorialManager.noteFrame, {onComplete:_local1.onStart, transition:"easeOutQuad", time:0.5, alpha:1, y:(TutorialManager.noteFrame.y + 50)});
};
}
public static function stopStep():void{
var _local1:* = TutorialManager.getStepData();
TutorialManager.stepID = (TutorialManager.stepID + 1);
if (!((_local1.onStop == null))){
Tweener.addTween(TutorialManager.noteFrame, {onComplete:_local1.onStop, transition:"easeOutQuad", time:0.5, alpha:0, y:(TutorialManager.noteFrame.y - 50)});
} else {
Tweener.addTween(TutorialManager.noteFrame, {onComplete:ScreenManager.hideTutorialStep, transition:"easeOutQuad", time:0.5, alpha:0, y:(TutorialManager.noteFrame.y - 50)});
};
}
public static function captureEscKeyForPause():void{
TutorialManager.pauseStep();
}
public static function captureEnterKeyForStop():void{
KeyMouseManager.registerDownKey(Keyboard.ENTER, TutorialManager.releaseEnterKeyForStop);
}
public static function releaseEnterKeyForStop():void{
KeyMouseManager.unregisterDownKey(Keyboard.ENTER, TutorialManager.releaseEnterKeyForStop);
TutorialManager.stopStep();
}
public static function captureTKeyForStop():void{
KeyMouseManager.registerDownKey(Config.openTechDialog, TutorialManager.releaseTKeyForStop);
}
public static function releaseTKeyForStop():void{
KeyMouseManager.unregisterDownKey(Config.openTechDialog, TutorialManager.releaseTKeyForStop);
TutorialManager.stopStep();
}
public static function captureSpaceKeyForStop():void{
KeyMouseManager.registerDownKey(Config.releaseBomb, TutorialManager.releaseSpaceKeyForStop);
}
public static function releaseSpaceKeyForStop():void{
KeyMouseManager.unregisterDownKey(Config.releaseBomb, TutorialManager.releaseSpaceKeyForStop);
TutorialManager.stopLevel4Mission0();
}
public static function captureClickForStop():void{
KeyMouseManager.registerClickMouse(TutorialManager.releaseClickForStop);
}
public static function releaseClickForStop():void{
KeyMouseManager.unregisterClickMouse(TutorialManager.releaseClickForStop);
TutorialManager.stopStep();
}
public static function wait300TicksAndStop():void{
TutorialManager.triggerCompleteFunction = TutorialManager.cleanup300Ticks;
TutorialManager.triggerTimer.repeatCount = 300;
TutorialManager.triggerTimer.start();
}
public static function cleanup300Ticks():void{
TutorialManager.triggerCompleteFunction = null;
TutorialManager.triggerTimer.repeatCount = 0;
TutorialManager.triggerTimer.reset();
TutorialManager.stopStep();
}
public static function startLevel2Mission0():void{
if ((TutorialManager.startL2M0 == LevelStatus.VOID)){
MissionManager.currentMission.next();
TutorialManager.startL2M0 = LevelStatus.STARTED;
};
}
public static function stopLevel2Mission0():void{
if ((TutorialManager.startL2M0 == LevelStatus.FINISHED)){
TutorialManager.stopStep();
};
}
public static function startLevel3Mission0():void{
if ((TutorialManager.startL3M0 == LevelStatus.VOID)){
MissionManager.currentMission.next();
TutorialManager.startL3M0 = LevelStatus.STARTED;
};
}
public static function stopLevel3Mission0():void{
if ((TutorialManager.startL3M0 == LevelStatus.FINISHED)){
TutorialManager.stopStep();
};
}
public static function startLevel4Mission0():void{
if ((TutorialManager.startL4M0 == LevelStatus.VOID)){
MissionManager.currentMission.next();
TutorialManager.captureSpaceKeyForStop();
TutorialManager.startL4M0 = LevelStatus.STARTED;
};
}
public static function stopLevel4Mission0():void{
if ((TutorialManager.startL4M0 == LevelStatus.FINISHED)){
TutorialManager.stopStep();
};
}
public static function startLevel5Mission0():void{
if ((TutorialManager.startL5M0 == LevelStatus.VOID)){
MissionManager.currentMission.next();
TutorialManager.startL5M0 = LevelStatus.STARTED;
};
}
public static function stopLevel5Mission0():void{
if ((TutorialManager.startL5M0 == LevelStatus.FINISHED)){
TutorialManager.stopStep();
};
}
public static function startUpgradingTech():void{
if ((TutorialManager.startUpgradeTech == LevelStatus.VOID)){
TutorialManager.startUpgradeTech = LevelStatus.STARTED;
};
}
public static function stopUpgradingTech():void{
if ((TutorialManager.startUpgradeTech == LevelStatus.FINISHED)){
TutorialManager.stopStep();
};
}
public static function startSetupWeapon():void{
if ((TutorialManager.startSetWeapon == LevelStatus.VOID)){
TutorialManager.startSetWeapon = LevelStatus.STARTED;
};
}
public static function stopSetupWeapon():void{
if ((TutorialManager.startSetWeapon == LevelStatus.FINISHED)){
TutorialManager.stopStep();
};
}
public static function startClosingTechFirst():void{
ScreenManager.techDialog.unlockCloseButton();
if ((TutorialManager.startCloseTechFirst == LevelStatus.VOID)){
TutorialManager.startCloseTechFirst = LevelStatus.STARTED;
};
}
public static function stopClosingTechFirst():void{
if ((TutorialManager.startCloseTechFirst == LevelStatus.FINISHED)){
TutorialManager.stopStep();
};
}
public static function startClosingTechSecond():void{
ScreenManager.techDialog.unlockCloseButton();
if ((TutorialManager.startCloseTechSecond == LevelStatus.VOID)){
TutorialManager.startCloseTechSecond = LevelStatus.STARTED;
};
}
public static function stopClosingTechSecond():void{
if ((TutorialManager.startCloseTechSecond == LevelStatus.FINISHED)){
TutorialManager.stopStep();
};
}
public static function initStep2():void{
ScreenManager.playScreen.captureNavigationKeys();
TutorialManager.wait300TicksAndStop();
}
public static function initStep3():void{
ScreenManager.playScreen.captureMouse();
TutorialManager.wait300TicksAndStop();
}
public static function initStep9():void{
ScreenManager.playScreen.captureOpenTechDialog();
TutorialManager.captureTKeyForStop();
}
public static function initStep20():void{
ScreenManager.playScreen.captureReleaseBombKey();
TutorialManager.startLevel4Mission0();
}
}
class TweenListObj {
public var waitFrames:Boolean;
public var useFrames:Boolean;
public var updatesSkipped:Number;
public var transition:Object;
public var timesCalled:int;
public var timeStart:Number;
public var timePaused:Object;
public var timeComplete:Number;
public var skipUpdates:Object;
public var scope:DisplayObject;
public var rounded:Boolean;
public var properties:Object;
public var onUpdateParams:Array;
public var onUpdate:Object;
public var onStartParams:Array;
public var onStart:Object;
public var onOverwriteParams:Array;
public var onOverwrite:Object;
public var onError:Object;
public var onCompleteParams:Array;
public var onComplete:Object;
public var isPaused:Boolean;
public var isCaller:Boolean;
public var hasStarted:Boolean;
public var count:Number;
public var auxProperties:Object;
public function TweenListObj(_arg1:DisplayObject=undefined, _arg2:Number=undefined, _arg3:Number=undefined, _arg4:Boolean=undefined, _arg5:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
scope = _arg1;
timeStart = _arg2;
timeComplete = _arg3;
useFrames = _arg4;
transition = _arg5;
auxProperties = Reflect.empty();
properties = Reflect.empty();
isPaused = false;
timePaused = null;
isCaller = false;
updatesSkipped = 0;
timesCalled = 0;
skipUpdates = 0;
hasStarted = false;
}
public function toString():String{
var _local4:* = null;
var _local1 = ("\n[TweenListObj " as String);
_local1 = (((_local1 + (("scope:" + Std.string(scope)) as String)) as String) as String);
_local1 = (((_local1 + ", properties:") as String) as String);
var _local2:Boolean = true;
var _local3:* = Reflect.fields(properties).iterator();
do {
//unresolved if
_local4 = _local3.next();
if (!(_local2)){
_local1 = (((_local1 + ",") as String) as String);
};
_local1 = (((_local1 + (("[name:" + scope.name) as String)) as String) as String);
_local1 = (((_local1 + (",valueStart:" + Reflect.field(properties, _local4).valueStart)) as String) as String);
_local1 = (((_local1 + (",valueComplete:" + Reflect.field(properties, _local4).valueComplete)) as String) as String);
_local1 = (((_local1 + "]") as String) as String);
_local2 = false;
} while (true);
_local1 = (((_local1 + ((", timeStart:" + Std.string(timeStart)) as String)) as String) as String);
_local1 = (((_local1 + ((", timeComplete:" + Std.string(timeComplete)) as String)) as String) as String);
_local1 = (((_local1 + ((", useFrames:" + Std.string(useFrames)) as String)) as String) as String);
_local1 = (((_local1 + ((", transition:" + Std.string(transition)) as String)) as String) as String);
if (Std.bool(skipUpdates)){
_local1 = (((_local1 + ((", skipUpdates:" + Std.string(skipUpdates)) as String)) as String) as String);
};
if (Std.bool(updatesSkipped)){
_local1 = (((_local1 + ((", updatesSkipped:" + Std.string(updatesSkipped)) as String)) as String) as String);
};
if (Std.bool(onStart)){
_local1 = (((_local1 + ((", onStart:" + Std.string(onStart)) as String)) as String) as String);
};
if (Std.bool(onUpdate)){
_local1 = (((_local1 + ((", onUpdate:" + Std.string(onUpdate)) as String)) as String) as String);
};
if (Std.bool(onComplete)){
_local1 = (((_local1 + ((", onComplete:" + Std.string(onComplete)) as String)) as String) as String);
};
if (Std.bool(onOverwrite)){
_local1 = (((_local1 + ((", onOverwrite:" + Std.string(onOverwrite)) as String)) as String) as String);
};
if (Std.bool(onError)){
_local1 = (((_local1 + ((", onError:" + Std.string(onError)) as String)) as String) as String);
};
if (Std.bool(onStartParams)){
_local1 = (((_local1 + ((", onStartParams:" + Std.string(onStartParams)) as String)) as String) as String);
};
if (Std.bool(onUpdateParams)){
_local1 = (((_local1 + ((", onUpdateParams:" + Std.string(onUpdateParams)) as String)) as String) as String);
};
if (Std.bool(onCompleteParams)){
_local1 = (((_local1 + ((", onCompleteParams:" + Std.string(onCompleteParams)) as String)) as String) as String);
};
if (Std.bool(onOverwriteParams)){
_local1 = (((_local1 + ((", onOverwriteParams:" + Std.string(onOverwriteParams)) as String)) as String) as String);
};
if (rounded){
_local1 = (((_local1 + ((", rounded:" + Std.string(rounded)) as String)) as String) as String);
};
if (isPaused){
_local1 = (((_local1 + ((", isPaused:" + Std.string(isPaused)) as String)) as String) as String);
};
if (Std.bool(timePaused)){
_local1 = (((_local1 + ((", timePaused:" + Std.string(timePaused)) as String)) as String) as String);
};
if (isCaller){
_local1 = (((_local1 + ((", isCaller:" + Std.string(isCaller)) as String)) as String) as String);
};
if (Std.bool(count)){
_local1 = (((_local1 + ((", count:" + Std.string(count)) as String)) as String) as String);
};
if (Std.bool(timesCalled)){
_local1 = (((_local1 + ((", timesCalled:" + Std.string(timesCalled)) as String)) as String) as String);
};
if (waitFrames){
_local1 = (((_local1 + ((", waitFrames:" + Std.string(waitFrames)) as String)) as String) as String);
};
if (hasStarted){
_local1 = (((_local1 + ((", hasStarted:" + Std.string(hasStarted)) as String)) as String) as String);
};
_local1 = (((_local1 + "]\n") as String) as String);
return (_local1);
}
public function clone(_arg1:Boolean):TweenListObj{
var _local4:* = null;
var _local2 = (new TweenListObj(scope, timeStart, timeComplete, useFrames, transition) as TweenListObj);
_local2.properties = Reflect.empty();
var _local3:* = Reflect.fields(properties).iterator();
do {
//unresolved if
_local4 = _local3.next();
Reflect.setField(_local2.properties, _local4, Reflect.field(properties, _local4).clone());
} while (true);
_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.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 static function makePropertiesChain(_arg1:Object):Object{
var _local3:* = null;
var _local4 = (null as Array);
var _local5:int;
var _local6:* = null;
var _local7:int;
var _local8:int;
var _local9:int;
var _local2:* = _arg1.base;
if (Std.bool(_local2)){
_local3 = Reflect.empty();
if (Std.is(_local2, Array)){
_local4 = ([] as Array);
_local5 = 0;
_local6 = _local2.length;
do {
//unresolved if
_local7 = _local5;
_local5++;
_local4.push(_local2[_local7]);
} while (true);
} else {
_local4 = ([_local2] as Array);
};
_local4.push(_arg1);
_local5 = _local4.length;
_local7 = 0;
_local8 = _local5;
do {
//unresolved if
_local9 = _local7;
_local7++;
if (Reflect.hasField(_local4[_local9], "base")){
_local6 = AuxFunctions.concatObjects([TweenListObj.makePropertiesChain(Reflect.field(_local4[_local9], "base")), _local4[_local9]]);
} else {
_local6 = _local4[_local9];
};
_local3 = AuxFunctions.concatObjects([_local3, _local6]);
} while (true);
if (Reflect.hasField(_local3, "base")){
Reflect.setField(_local3, "base", null);
};
return (_local3);
} else {
return (_arg1);
};
}
}
class StringTools {
public function StringTools():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function urlEncode(_arg1:String):String{
return (encodeURIComponent(_arg1));
}
public static function urlDecode(_arg1:String):String{
return (decodeURIComponent(_arg1.split("+").join(" ")));
}
public static function htmlEscape(_arg1:String):String{
return (_arg1.split("&").join("&").split("<").join("<").split(">").join(">"));
}
public static function htmlUnescape(_arg1:String):String{
return (_arg1.split(">").join(">").split("<").join("<").split("&").join("&"));
}
public static function startsWith(_arg1:String, _arg2:String):Boolean{
if ((_arg1.length >= _arg2.length)){
false;
};
return (false);
}
public static function endsWith(_arg1:String, _arg2:String):Boolean{
var _local3:int = _arg2.length;
var _local4:int = _arg1.length;
if ((_local4 >= _local3)){
false;
};
return (false);
}
public static function isSpace(_arg1:String, _arg2:int):Boolean{
var _local3:* = _arg1.charCodeAt(_arg2);
if ((_local3 >= 9)){
false;
};
if (!false){
true;
};
return (true);
}
public static function ltrim(_arg1:String):String{
var _local2:int = _arg1.length;
var _local3:int;
do {
if ((_local3 < _local2)){
false;
};
//unresolved if
_local3++;
} while (true);
if ((_local3 > 0)){
return (_arg1.substr(_local3, (_local2 - _local3)));
} else {
return (_arg1);
};
}
public static function rtrim(_arg1:String):String{
var _local2:int = _arg1.length;
var _local3:int;
do {
if ((_local3 < _local2)){
false;
};
//unresolved if
_local3++;
} while (true);
if ((_local3 > 0)){
return (_arg1.substr(0, (_local2 - _local3)));
} else {
return (_arg1);
};
}
public static function trim(_arg1:String):String{
return (StringTools.ltrim(StringTools.rtrim(_arg1)));
}
public static function rpad(_arg1:String, _arg2:String, _arg3:int):String{
var _local4:int = _arg1.length;
var _local5:int = _arg2.length;
do {
//unresolved if
if (((_arg3 - _local4) < _local5)){
_arg1 = (((_arg1 + _arg2.substr(0, (_arg3 - _local4))) as String) as String);
_local4 = _arg3;
} else {
_arg1 = (((_arg1 + _arg2) as String) as String);
_local4 = (_local4 + _local5);
};
} while (true);
return (_arg1);
}
public static function lpad(_arg1:String, _arg2:String, _arg3:int):String{
var _local4 = ("" as String);
var _local5:int = _arg1.length;
if ((_local5 >= _arg3)){
return (_arg1);
};
var _local6:int = _arg2.length;
do {
//unresolved if
if (((_arg3 - _local5) < _local6)){
_local4 = (((_local4 + _arg2.substr(0, (_arg3 - _local5))) as String) as String);
_local5 = _arg3;
} else {
_local4 = (((_local4 + _arg2) as String) as String);
_local5 = (_local5 + _local6);
};
} while (true);
return (((_local4 + _arg1) as String));
}
public static function replace(_arg1:String, _arg2:String, _arg3:String):String{
return (_arg1.split(_arg2).join(_arg3));
}
public static function baseEncode(_arg1:String, _arg2:String):String{
var _local11:* = null;
var _local12:* = null;
var _local3:int = _arg2.length;
var _local4:int = 1;
do {
//unresolved if
_local4++;
} while (true);
if (!(_local4 > 8)){
true;
};
if (true){
throw ("baseEncode: base must be a power of two.");
};
var _local5:int = Std.int(((((_arg1.length * 8) + _local4) - 1) / _local4));
var _local6 = (new StringBuf() as StringBuf);
var _local7:int;
var _local8:int;
var _local9:int = ((1 << _local4) - 1);
var _local10:int;
do {
_local11 = _local5;
_local5 = (_local11 - 1);
//unresolved if
do {
//unresolved if
_local8 = (_local8 + 8);
_local7 = (_local7 << 8);
_local12 = _local10;
_local10 = (_local12 + 1);
_local11 = _arg1.charCodeAt(_local12);
if ((_local11 > 0xFF)){
throw ("baseEncode: bad chars");
};
_local7 = (_local7 | _local11);
} while (true);
_local8 = (_local8 - _local4);
_local6.addChar(_arg2.charCodeAt(((_local7 >> _local8) & _local9)));
} while (true);
return (_local6.toString());
}
public static function baseDecode(_arg1:String, _arg2:String):String{
var _local9:int;
var _local12:* = null;
var _local13:int;
var _local3:int = _arg2.length;
var _local4:int = 1;
do {
//unresolved if
_local4++;
} while (true);
if (!(_local4 > 8)){
true;
};
if (true){
throw ("baseDecode: base must be a power of two.");
};
var _local5:Number = ((((_arg1.length * 8) + _local4) - 1) / _local4);
var _local6 = (new Array() as Array);
var _local7:int;
var _local8:int = 0x0100;
do {
//unresolved if
_local9 = _local7;
_local7++;
_local6[_local9] = -1;
} while (true);
_local7 = 0;
_local8 = _local3;
do {
//unresolved if
_local9 = _local7;
_local7++;
_local6[_arg2.charCodeAt(_local9)] = _local9;
} while (true);
var _local10:Number = ((_arg1.length * _local4) / 8);
var _local11 = (new StringBuf() as StringBuf);
_local7 = 0;
_local8 = 0;
_local9 = 0;
do {
_local12 = _local10;
_local10 = (_local12 - 1);
//unresolved if
do {
//unresolved if
_local8 = (_local8 + _local4);
_local7 = (_local7 << _local4);
_local12 = _local9;
_local9 = (_local12 + 1);
_local13 = _local6[_arg1.charCodeAt(_local12)];
if ((_local13 == -1)){
throw ("baseDecode: bad chars");
};
_local7 = (_local7 | _local13);
} while (true);
_local8 = (_local8 - 8);
_local11.addChar(((_local7 >> _local8) & 0xFF));
} while (true);
return (_local11.toString());
}
public static function hex(_arg1:int, _arg2:Object=undefined):String{
var _local3 = ("" as String);
var _local4 = ("0123456789ABCDEF" as String);
//unresolved jump
do {
//unresolved if
_local3 = (((_local4.charAt((_arg1 % 16)) + _local3) as String) as String);
_arg1 = Std.int((_arg1 / 16));
} while (true);
if (!((_arg2 == null))){
do {
//unresolved if
_local3 = ((("0" + _local3) as String) as String);
} while (true);
};
return (_local3);
}
}
class ButtonTile extends SimpleButton {
public var up:Bitmap;
public var selected:Bitmap;
public var over:Bitmap;
public var isSelected:Boolean;
public var hit:Sprite;
public var hasSelection:Boolean;
public var down:Bitmap;
public var disable:Bitmap;
public var click;
public function ButtonTile(_arg1:BitmapData=undefined, _arg2:int=undefined, _arg3:int=undefined, _arg4:Object=undefined):void{
var _local9 = (null as BitmapData);
if (Boot_BA08CD.skip_constructor){
return;
};
click = function ():void{
};
super();
hasSelection = ((_arg4 == null)) ? false : _arg4;
var _local5 = (new BitmapData(_arg2, _arg3, true) as BitmapData);
var _local6 = (new BitmapData(_arg2, _arg3, true) as BitmapData);
var _local7 = (new BitmapData(_arg2, _arg3, true) as BitmapData);
var _local8 = (new BitmapData(_arg2, _arg3, true) as BitmapData);
_local7.copyPixels(_arg1, new Rectangle(0, (_arg1.height - _arg3), _arg2, _arg3), new Point(0, 0));
_local5.copyPixels(_arg1, new Rectangle(0, (_arg1.height - (_arg3 * 2)), _arg2, _arg3), new Point(0, 0));
_local6.copyPixels(_arg1, new Rectangle(0, (_arg1.height - (_arg3 * 3)), _arg2, _arg3), new Point(0, 0));
_local8.copyPixels(_arg1, new Rectangle(0, (_arg1.height - (_arg3 * 4)), _arg2, _arg3), new Point(0, 0));
if (hasSelection){
_local9 = (new BitmapData(_arg2, _arg3, true) as BitmapData);
_local9.copyPixels(_arg1, new Rectangle(0, (_arg1.height - (_arg3 * 5)), _arg2, _arg3), new Point(0, 0));
selected = new Bitmap(_local9);
};
up = new Bitmap(_local7);
over = new Bitmap(_local5);
down = new Bitmap(_local6);
disable = new Bitmap(_local8);
hit = new Sprite();
hit.graphics.beginFill(0);
hit.graphics.drawRect(0, 0, _arg2, _arg3);
upState = up;
overState = over;
downState = down;
hitTestState = hit;
addEventListener(MouseEvent.CLICK, onClickHandler);
}
public function unlock():void{
enabled = true;
upState = up;
}
public function toggleSelected():void{
if (hasSelection){
upState = ((upState == selected)) ? up : selected;
if ((upState == selected)){
isSelected = true;
} else {
isSelected = false;
};
};
}
public function setUnselected():void{
if (hasSelection){
upState = up;
isSelected = false;
};
}
public function setSelected():void{
if (hasSelection){
upState = selected;
isSelected = true;
};
}
public function onClickHandler(_arg1:MouseEvent):void{
if (enabled){
click();
};
}
public function lock():void{
enabled = false;
upState = disable;
}
}
class CreditsScreen extends Screen {
public var foreground:Sprite;
public var background:Sprite;
public function CreditsScreen():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
background = new Sprite();
background.addChild(new Bitmap(Assets.objects.get("Background00")));
foreground = new Sprite();
foreground.addChild(new Bitmap(Assets.objects.get("Credits")));
foreground.buttonMode = true;
container.addChild(background);
container.addChild(foreground);
foreground.addEventListener(MouseEvent.CLICK, onForegroundClickHandler);
}
public function onForegroundClickHandler(_arg1:MouseEvent):void{
closeScreen();
}
public function closeScreen():void{
ScreenManager.showScreen("title");
}
}
class ProjectileBaseType {
public const __enum__ = true;
public var tag;
public var params;
public static const __isenum = true;
public static var NORMAL:ProjectileBaseType;
public static var MISSILE:ProjectileBaseType;
public static var LIGHTNING:ProjectileBaseType;
public function ProjectileBaseType(_arg1:String, _arg2:Object):void{
tag = _arg1;
params = _arg2;
}
public function toString():String{
return (Boot_BA08CD.enum_to_string(this));
}
}
class ProjectileManager {
public static var projectiles:Array;
public static var projectileContainer:Sprite;
public static var lightningLineContainer:Sprite;
public static var boundary:Rectangle;
public function ProjectileManager():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function update():void{
var _local1:int;
var _local2 = (null as Projectile);
var _local3 = (null as Point);
var _local4 = (null as String);
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11 = (null as Rectangle);
var _local12:* = null;
if ((ProjectileManager.projectiles.length > 0)){
_local1 = 0;
do {
//unresolved if
_local2 = ((ProjectileManager.projectiles[_local1] as Projectile) as Projectile);
_local3 = (new Point(_local2.projectileSprite.x, _local2.projectileSprite.y) as Point);
_local4 = ((_local2.isEnemy) ? "enemyProjectile" : "projectile" as String);
if ((_local2.baseType == ProjectileBaseType.MISSILE)){
_local5 = (_local2.turningSpeed * (Math.PI / 180));
_local6 = Math.atan2((_local2.targetPoint.y - _local2.projectileSprite.y), (_local2.targetPoint.x - _local2.projectileSprite.x));
_local7 = ((_local2.projectileSprite.rotation * Math.PI) / 180);
_local8 = (_local6 - _local7);
if ((_local8 < 0)){
_local8 = (_local8 + (Math.PI * 2));
} else {
if ((_local8 >= (Math.PI * 2))){
_local8 = (_local8 - (Math.PI * 2));
};
};
if ((_local7 < ((_local6 - (_local5 / 2)) + _local5))){
false;
};
if (false){
_local7 = _local6;
} else {
if ((_local8 <= Math.PI)){
_local7 = (_local7 + _local5);
} else {
_local7 = (_local7 - _local5);
};
};
_local9 = (Math.cos(_local7) * _local2.speed);
_local10 = (Math.sin(_local7) * _local2.speed);
_local2.projectileSprite.x = (_local2.projectileSprite.x + _local9);
_local2.projectileSprite.y = (_local2.projectileSprite.y + _local10);
_local2.projectileSprite.rotation = ((_local7 * 180) / Math.PI);
} else {
_local2.projectileSprite.x = (_local2.projectileSprite.x + _local2.vector.vx);
_local2.projectileSprite.y = (_local2.projectileSprite.y + _local2.vector.vy);
};
_local2.currentDistance = (_local2.currentDistance + Point.distance(_local3, new Point(_local2.projectileSprite.x, _local2.projectileSprite.y)));
if (ProjectileManager.projectileContainer.contains(_local2.projectileSprite)){
if (!(_local2.projectileSprite.x < 10)){
true;
if (!(_local2.projectileSprite.y < 10)){
true;
if (!(_local2.projectileSprite.x > 490)){
true;
};
};
};
if (true){
if ((_local2.baseType == ProjectileBaseType.LIGHTNING)){
ProjectileManager.drawLightning(_local2);
};
CollisionManager.unregisterGridRegions(_local2.grid, _local4, _local2);
_local2.destroy();
ProjectileManager.removeProjectile(_local2);
} else {
if (_local2.useTarget){
false;
};
if (false){
if ((_local2.baseType == ProjectileBaseType.LIGHTNING)){
ProjectileManager.drawLightning(_local2);
};
CollisionManager.unregisterGridRegions(_local2.grid, _local4, _local2);
_local2.destroy();
ProjectileManager.removeProjectile(_local2);
} else {
if ((_local2.maxDistance > 0)){
false;
};
if (false){
_local2.isFading = true;
};
};
};
};
if (_local2.isFading){
_local5 = (1 / _local2.fadeSteps);
_local2.projectileSprite.alpha = (_local2.projectileSprite.alpha - _local5);
if ((_local2.projectileSprite.alpha <= 0)){
CollisionManager.unregisterGridRegions(_local2.grid, _local4, _local2);
_local2.destroy(false);
ProjectileManager.removeProjectile(_local2);
};
} else {
_local11 = (_local2.projectileSprite.getBounds(ProjectileManager.projectileContainer) as Rectangle);
_local12 = CollisionManager.getGridRegions(_local11);
CollisionManager.registerGridRegions(_local12, _local4, _local2);
_local2.grid = _local12;
};
_local1++;
} while (true);
};
if (!((ProjectileManager.lightningLineContainer == (null as Sprite)))){
if (ProjectileManager.projectileContainer.contains(ProjectileManager.lightningLineContainer)){
if ((ProjectileManager.lightningLineContainer.alpha <= 0)){
ProjectileManager.projectileContainer.removeChild(ProjectileManager.lightningLineContainer);
} else {
ProjectileManager.lightningLineContainer.alpha = (ProjectileManager.lightningLineContainer.alpha - 0.4);
};
};
};
}
public static function drawLightning(_arg1:Projectile):void{
if ((ProjectileManager.lightningLineContainer == (null as Sprite))){
ProjectileManager.lightningLineContainer = new Sprite();
};
var _local2:Number = (Math.random() * 10);
var _local3 = (new Point(ScreenManager.playScreen.player.locX, ScreenManager.playScreen.player.locY) as Point);
var _local4 = (new Point(_arg1.projectileSprite.x, _arg1.projectileSprite.y) as Point);
ProjectileManager.lightningLineContainer.alpha = 1;
ProjectileManager.lightningLineContainer.graphics.clear();
ProjectileManager.lightningLineContainer.graphics.lineStyle(_arg1.projectileSprite.width, 0xFFFFFF);
ProjectileManager.lightningLineContainer.graphics.moveTo(_local3.x, _local3.y);
ProjectileManager.lightningLineContainer.graphics.lineTo(_local4.x, _local4.y);
if (!(ProjectileManager.projectileContainer.contains(ProjectileManager.lightningLineContainer))){
ProjectileManager.projectileContainer.addChild(ProjectileManager.lightningLineContainer);
};
}
public static function spawnProjectile(_arg1:Point, _arg2:Projectile):void{
var _local4:Number;
ProjectileManager.projectiles.push(_arg2);
_arg2.setInitPos(_arg1);
var _local3:Number = Math.atan2(_arg2.vector.vy, _arg2.vector.vx);
_arg2.projectileSprite.rotation = ((_local3 * 180) / Math.PI);
if ((_arg2.baseType == ProjectileBaseType.MISSILE)){
_local4 = (Math.random() * 360);
_arg2.projectileSprite.rotation = _local4;
};
ProjectileManager.projectileContainer.addChild(_arg2.projectileSprite);
}
public static function removeProjectile(_arg1:Projectile):void{
ProjectileManager.projectiles.remove(_arg1);
ProjectileManager.projectileContainer.removeChild(_arg1.projectileSprite);
_arg1 = ((null as Projectile) as Projectile);
}
public static function setupContainer(_arg1:Sprite, _arg2:Rectangle):void{
ProjectileManager.projectileContainer = _arg1;
ProjectileManager.boundary = _arg2;
}
public static function clearContainer():void{
var _local1:* = null;
var _local2:* = null;
if (!(ProjectileManager.projectileContainer.numChildren > 0)){
true;
};
if (true){
_local1 = ProjectileManager.projectiles.iterator();
do {
//unresolved if
_local2 = _local1.next();
ProjectileManager.projectileContainer.removeChild(_local2.projectileSprite);
} while (true);
ProjectileManager.projectiles = new Array();
};
ProjectileManager.projectileContainer = (null as Sprite);
ProjectileManager.boundary = (null as Rectangle);
}
}
class ProjectileF extends Projectile {
public function ProjectileF(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
useTarget = true;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(8, 2, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 8, 2), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -1;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
}
class ProjectileV extends Projectile {
public function ProjectileV(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
isEnemy = true;
damage = 25;
speed = 4;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
maxDistance = 200;
fadeSteps = 10;
useTarget = false;
var _local3 = (new Sprite() as Sprite);
_local3.graphics.lineStyle(2, 0xFFFFFF);
_local3.graphics.moveTo(3, 0);
_local3.graphics.lineTo(-3, 3);
_local3.graphics.lineTo(-3, -3);
_local3.graphics.lineTo(3, 0);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class SpawnerD extends Enemy {
public var spawnerSprite:SpawnerSprite;
public var spawnTime:int;
public var spawnEnemy:Object;
public var spawnCount:int;
public var currentSpawnTime:int;
public var curanimateque:int;
public var animatespeed:int;
public function SpawnerD(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
spawnTime = Config.spawnerD.spawnTime;
spawnCount = Config.spawnerD.spawnCount;
spawnEnemy = Config.spawnerD.spawnEnemy;
hitpoint = Config.spawnerD.hitpoint;
worth = Config.spawnerD.worth;
currentSpawnTime = 0;
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFF00);
_local4.graphics.drawRect(0, 0, 16, 16);
hitbox = _local4;
hitbox.x = (-(hitbox.width) / 2);
hitbox.y = (-(hitbox.height) / 2);
hitbox.alpha = 0;
spawnerSprite = new SpawnerSprite();
inflictHitSprite.addChild(spawnerSprite.inflictGroup);
animatespeed = 10;
curanimateque = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
spawnerSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(spawnerSprite);
container.addChild(inflictHitSprite);
if ((_arg3.x == 0)){
false;
};
if (false){
container.x = ((Math.round(((Math.random() * boundary.width) - (container.width / 2))) + boundary.x) + (container.width / 2));
container.y = ((Math.round(((Math.random() * boundary.height) - (container.height / 2))) + boundary.y) + (container.height / 2));
} else {
container.x = _arg3.x;
container.y = _arg3.y;
};
displayParent.addChild(container);
}
override public function update():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6 = (null as Enemy);
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
spawnerSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
spawnerSprite.alpha = 1;
};
} else {
if ((currentSpawnTime > spawnTime)){
currentSpawnTime = 0;
_local1 = 0;
_local2 = spawnCount;
do {
//unresolved if
_local3 = _local1;
_local1++;
_local4 = (container.x + (Math.cos((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local5 = (container.y + (Math.sin((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local6 = (Type.createInstance(Type.toClass(spawnEnemy), [displayParent, boundary, new Point(_local4, _local5)]) as Enemy);
MissionManager.currentMission.enemyList().push(_local6);
} while (true);
spawnerSprite.spawning(true);
} else {
if ((currentSpawnTime == 0)){
spawnerSprite.spawning(false);
};
currentSpawnTime = (currentSpawnTime + 1);
};
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
spawnerSprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.spawnerScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class MissionStatus {
public const __enum__ = true;
public var tag;
public var params;
public static const __isenum = true;
public static var START:MissionStatus;
public static var CLEARALL:MissionStatus;
public static var CLEAR:MissionStatus;
public function MissionStatus(_arg1:String, _arg2:Object):void{
tag = _arg1;
params = _arg2;
}
public function toString():String{
return (Boot_BA08CD.enum_to_string(this));
}
}
class MissionManager {
public static var currentMissionID:int;
public static var enemyContainer:Sprite;
public static var boundary:Rectangle;
public static var mission0:Mission0;
public static var mission1:Mission1;
public static var mission2:Mission2;
public static var mission3:Mission3;
public static var mission4:Mission4;
public static var mission5:Mission5;
public static var currentMission:IMission;
public function MissionManager():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function update():void{
var _local1:int;
var _local2 = (null as Enemy);
var _local3 = (null as Rectangle);
var _local4:* = null;
if (!((MissionManager.currentMission == (null as IMission)))){
MissionManager.currentMission.evaluate();
_local1 = 0;
do {
//unresolved if
_local2 = ((MissionManager.currentMission.enemyList()[_local1] as Enemy) as Enemy);
_local3 = (_local2.getHitboxBounds() as Rectangle);
_local4 = CollisionManager.getGridRegions(_local3);
CollisionManager.registerGridRegions(_local4, "enemy", _local2);
_local2.grid = _local4;
_local1++;
} while (true);
};
}
public static function loadMissions():void{
MissionManager.mission0 = new Mission0();
MissionManager.mission1 = new Mission1();
MissionManager.mission2 = new Mission2();
MissionManager.mission3 = new Mission3();
MissionManager.mission4 = new Mission4();
MissionManager.mission5 = new Mission5();
}
public static function stopMission():void{
MissionManager.currentMission = (null as IMission);
}
public static function startMission(_arg1:Object=undefined):void{
MissionManager.currentMissionID = ((_arg1 == null)) ? 1 : _arg1;
MissionManager.run();
}
public static function nextMission():void{
Profile.curLevel = (Profile.curLevel + 1);
Profile.curMissionID = (Profile.curMissionID + 1);
ScreenManager.playScreen.pause();
ScreenManager.playScreen.reset();
ScreenManager.showScreen("playNextMission");
}
public static function endMission():void{
ScreenManager.playScreen.pause();
ScreenManager.showDialog("gameover");
}
public static function run():void{
if (Reflect.hasField(MissionManager, (("mission" + MissionManager.currentMissionID) as String))){
MissionManager.currentMission = Reflect.field(MissionManager, (("mission" + MissionManager.currentMissionID) as String));
};
MissionManager.currentMission.prepare(MissionManager.enemyContainer, MissionManager.boundary);
}
public static function setupContainer(_arg1:Sprite, _arg2:Rectangle):void{
MissionManager.enemyContainer = _arg1;
MissionManager.boundary = _arg2;
}
public static function clearContainer():void{
var _local1:* = null;
var _local2:* = null;
if (!((MissionManager.currentMission.enemyList().length < 1))){
_local1 = MissionManager.currentMission.enemyList().iterator();
do {
//unresolved if
_local2 = _local1.next();
_local2.destroy(false);
} while (true);
};
MissionManager.currentMission.clearEnemies();
MissionManager.currentMission.levelList().clear();
MissionManager.stopMission();
MissionManager.enemyContainer = (null as Sprite);
MissionManager.boundary = (null as Rectangle);
}
}
class SponsorsScreen extends Screen {
public var timeToDisplay:int;
public var mainTick:Timer;
public var foreground:Sprite;
public var background:Sprite;
public function SponsorsScreen():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
timeToDisplay = 200;
background = new Sprite();
background.graphics.beginFill(0);
background.graphics.drawRect(0, 0, 500, 500);
var _local1 = (new BitmapData(500, 500) as BitmapData);
_local1.copyPixels(Assets.objects.get("Sponsors"), new Rectangle(0, 0, 500, 500), new Point(0, 0));
foreground = new Sprite();
foreground.addChild(new Bitmap(_local1));
foreground.x = (Math.round((500 - foreground.width)) / 2);
foreground.y = (Math.round((500 - foreground.height)) / 2);
container.addChild(background);
container.addChild(foreground);
mainTick = new Timer(Config.mainTick);
mainTick.addEventListener(TimerEvent.TIMER, onMainTickTimerHandler);
}
public function start():void{
mainTick.start();
}
public function onMainTickTimerHandler(_arg1:TimerEvent):void{
if ((mainTick.currentCount > timeToDisplay)){
closeScreen();
};
}
public function closeScreen():void{
mainTick.reset();
ScreenManager.showScreen("title");
}
}
class Lib {
public static var current:MovieClip;
public function Lib():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function getTimer():Number{
return (getTimer());
}
public static function eval(_arg1:String):Object{
var _local6:* = null;
var _local7:* = null;
var _local3 = (_arg1.split(".") as Array);
var _local4 = (new Array() as Array);
var _local5:* = null;
do {
//unresolved if
try {
_local5 = getDefinitionByName(_local3.join("."));
} catch(#InvalidMultinameIndex#) {
_local7 = !NULL!;
_local6 = _local7;
_local4.unshift(_local3.pop());
};
if (!((_local5 == null))){
break;
};
} while (true);
if ((_local5 == null)){
if ((_arg1 == "api")){
return (api);
};
return (null);
};
_local6 = _local4.iterator();
do {
//unresolved if
_local7 = _local6.next();
_local5 = _local5[_local7];
} while (true);
return (_local5);
}
public static function getURL(_arg1:URLRequest, _arg2:String=undefined):void{
var _local3:* = navigateToURL;
if ((_arg2 == (null as String))){
_local3(_arg1);
} else {
_local3(_arg1, _arg2);
};
}
public static function fscommand(_arg1:String, _arg2:Object=undefined):void{
fscommand(_arg1, _arg2);
}
public static function trace(_arg1:Object):void{
trace(_arg1);
}
}
class SpecialPropertiesDefault {
public function SpecialPropertiesDefault():void{
if (Boot_BA08CD.skip_constructor){
return;
};
Log.trace("SpecialProperties is an static class and should not be instantiated.", {methodName:"new", className:"caurina.transitions.SpecialPropertiesDefault", lineNumber:25, fileName:"SpecialPropertiesDefault.hx"});
}
public static function init():void{
Tweener.registerSpecialProperty("_frame", SpecialPropertiesDefault._frame_get, SpecialPropertiesDefault._frame_set, (null as Array));
Tweener.registerSpecialProperty("_sound_volume", SpecialPropertiesDefault._sound_volume_get, SpecialPropertiesDefault._sound_volume_set, (null as Array));
Tweener.registerSpecialProperty("_sound_pan", SpecialPropertiesDefault._sound_pan_get, SpecialPropertiesDefault._sound_pan_set, (null as Array));
Tweener.registerSpecialProperty("_color_ra", SpecialPropertiesDefault._color_property_get, SpecialPropertiesDefault._color_property_set, ["redMultiplier"]);
Tweener.registerSpecialProperty("_color_rb", SpecialPropertiesDefault._color_property_get, SpecialPropertiesDefault._color_property_set, ["redOffset"]);
Tweener.registerSpecialProperty("_color_ga", SpecialPropertiesDefault._color_property_get, SpecialPropertiesDefault._color_property_set, ["greenMultiplier"]);
Tweener.registerSpecialProperty("_color_gb", SpecialPropertiesDefault._color_property_get, SpecialPropertiesDefault._color_property_set, ["greenOffset"]);
Tweener.registerSpecialProperty("_color_ba", SpecialPropertiesDefault._color_property_get, SpecialPropertiesDefault._color_property_set, ["blueMultiplier"]);
Tweener.registerSpecialProperty("_color_bb", SpecialPropertiesDefault._color_property_get, SpecialPropertiesDefault._color_property_set, ["blueOffset"]);
Tweener.registerSpecialProperty("_color_aa", SpecialPropertiesDefault._color_property_get, SpecialPropertiesDefault._color_property_set, ["alphaMultiplier"]);
Tweener.registerSpecialProperty("_color_ab", SpecialPropertiesDefault._color_property_get, SpecialPropertiesDefault._color_property_set, ["alphaOffset"]);
Tweener.registerSpecialProperty("_autoAlpha", SpecialPropertiesDefault._autoAlpha_get, SpecialPropertiesDefault._autoAlpha_set, (null as Array));
Tweener.registerSpecialPropertySplitter("_color", SpecialPropertiesDefault._color_splitter);
Tweener.registerSpecialPropertySplitter("_colorTransform", SpecialPropertiesDefault._colorTransform_splitter);
Tweener.registerSpecialPropertySplitter("_scale", SpecialPropertiesDefault._scale_splitter);
Tweener.registerSpecialProperty("_blur_blurX", SpecialPropertiesDefault._filter_property_get, SpecialPropertiesDefault._filter_property_set, [BlurFilter, "blurX"]);
Tweener.registerSpecialProperty("_blur_blurY", SpecialPropertiesDefault._filter_property_get, SpecialPropertiesDefault._filter_property_set, [BlurFilter, "blurY"]);
Tweener.registerSpecialProperty("_blur_quality", SpecialPropertiesDefault._filter_property_get, SpecialPropertiesDefault._filter_property_set, [BlurFilter, "quality"]);
Tweener.registerSpecialPropertySplitter("_filter", SpecialPropertiesDefault._filter_splitter);
Tweener.registerSpecialPropertyModifier("_bezier", SpecialPropertiesDefault._bezier_modifier, SpecialPropertiesDefault._bezier_get);
}
public static function _color_splitter(_arg1:Object, _arg2:Array):Array{
var _local3 = (new Array() as Array);
if ((_arg1 == null)){
_local3.push({value:100, name:"_color_ra"});
_local3.push({value:0, name:"_color_rb"});
_local3.push({value:100, name:"_color_ga"});
_local3.push({value:0, name:"_color_gb"});
_local3.push({value:100, name:"_color_ba"});
_local3.push({value:0, name:"_color_bb"});
} else {
_local3.push({value:0, name:"_color_ra"});
_local3.push({value:AuxFunctions.numberToR(_arg1), name:"_color_rb"});
_local3.push({value:0, name:"_color_ga"});
_local3.push({value:AuxFunctions.numberToG(_arg1), name:"_color_gb"});
_local3.push({value:0, name:"_color_ba"});
_local3.push({value:AuxFunctions.numberToB(_arg1), name:"_color_bb"});
};
return (_local3);
}
public static function _colorTransform_splitter(_arg1:Object, _arg2:Array):Array{
var _local3 = (new Array() as Array);
if ((_arg1 == null)){
_local3.push({value:100, name:"_color_ra"});
_local3.push({value:0, name:"_color_rb"});
_local3.push({value:100, name:"_color_ga"});
_local3.push({value:0, name:"_color_gb"});
_local3.push({value:100, name:"_color_ba"});
_local3.push({value:0, name:"_color_bb"});
} else {
if (!((_arg1.ra == null))){
_local3.push({value:_arg1.ra, name:"_color_ra"});
};
if (!((_arg1.rb == null))){
_local3.push({value:_arg1.rb, name:"_color_rb"});
};
if (!((_arg1.ga == null))){
_local3.push({value:_arg1.ba, name:"_color_ba"});
};
if (!((_arg1.gb == null))){
_local3.push({value:_arg1.bb, name:"_color_bb"});
};
if (!((_arg1.ba == null))){
_local3.push({value:_arg1.ga, name:"_color_ga"});
};
if (!((_arg1.bb == null))){
_local3.push({value:_arg1.gb, name:"_color_gb"});
};
if (!((_arg1.aa == null))){
_local3.push({value:_arg1.aa, name:"_color_aa"});
};
if (!((_arg1.ab == null))){
_local3.push({value:_arg1.ab, name:"_color_ab"});
};
};
return (_local3);
}
public static function _scale_splitter(_arg1:int, _arg2:Array):Array{
var _local3 = (new Array() as Array);
_local3.push({value:_arg1, name:"_xscale"});
_local3.push({value:_arg1, name:"_yscale"});
return (_local3);
}
public static function _filter_splitter(_arg1:BitmapFilter, _arg2:Array):Array{
var _local3 = (new Array() as Array);
if (Std.is(_arg1, BlurFilter)){
} else {
Log.trace("??", {methodName:"_filter_splitter", className:"caurina.transitions.SpecialPropertiesDefault", lineNumber:164, fileName:"SpecialPropertiesDefault.hx"});
};
return (_local3);
}
public static function _frame_get(_arg1:Object):Number{
return (_arg1._currentFrame);
}
public static function _frame_set(_arg1:Object, _arg2:Number):void{
_arg1.gotoAndStop(Math.round(_arg2));
}
public static function _sound_volume_get(_arg1:Object):Number{
return (_arg1.getVolume());
}
public static function _sound_volume_set(_arg1:Object, _arg2:Number):void{
_arg1.setVolume(_arg2);
}
public static function _sound_pan_get(_arg1:Object):Number{
return (_arg1.getPan());
}
public static function _sound_pan_set(_arg1:Object, _arg2:Number):void{
_arg1.setPan(_arg2);
}
public static function _color_property_get(_arg1:Object, _arg2:Array):Object{
return (Reflect.field(_arg1.transform.colorTransform, (_arg2[0] as String)));
}
public static function _color_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{
var _local4 = (_arg1.transform.colorTransform as ColorTransform);
Reflect.setField(_local4, (_arg3[0] as String), Math.round(_arg2));
_arg1.transform.colorTransform = _local4;
}
public static function _autoAlpha_get(_arg1:Object):Number{
return (_arg1.alpha);
}
public static function _autoAlpha_set(_arg1:Object, _arg2:Number):void{
_arg1.alpha = _arg2;
_arg1.visible = (_arg2 > 0);
}
public static function _filter_property_get(_arg1:Object, _arg2:Array):Object{
var _local8:int;
var _local9:* = null;
var _local3 = (_arg1.filters as Array);
var _local4:* = _arg2[0];
var _local5 = ((_arg2[1] as String) as String);
var _local6:int;
var _local7:int = _local3.length;
do {
//unresolved if
_local8 = _local6;
_local6++;
if (Std.is(_local3[_local8], _local4)){
return (Reflect.field(_local3[_local8], _local5));
};
} while (true);
var _local10:* = _local4;
if (_local10 == BlurFilter){
_local9 = {quality:null, blurY:0, blurX:0};
//unresolved jump
};
return (Reflect.field(_local9, _local5));
}
public static function _filter_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{
var _local9:int;
var _local10 = (null as BitmapFilter);
var _local4 = (_arg1.filters as Array);
var _local5:* = _arg3[0];
var _local6 = ((_arg3[1] as String) as String);
var _local7:int;
var _local8:int = _local4.length;
do {
//unresolved if
_local9 = _local7;
_local7++;
if (Std.is(_local4[_local9], _local5)){
Reflect.setField(_local4[_local9], _local6, _arg2);
_arg1.filters = _local4;
return;
};
} while (true);
if ((_local4 == (null as Array))){
_local4 = (new Array() as Array);
};
var _local11:* = _local5;
if (_local11 == BlurFilter){
_local10 = (new BlurFilter(0, 0) as BitmapFilter);
//unresolved jump
};
Reflect.setField(_local10, _local6, _arg2);
_local4.push(_local10);
_arg1.filters = _local4;
}
public static function _bezier_modifier(_arg1:Object):Array{
var _local3 = (null as Array);
var _local7:int;
var _local8:* = null;
var _local9:* = null;
var _local2 = ([] as Array);
if (Std.is(_arg1, Array)){
_local3 = (_arg1 as Array);
} else {
_local3 = ([_arg1] as Array);
};
var _local4:* = Reflect.empty();
var _local5:int;
var _local6:int = _local3.length;
do {
//unresolved if
_local7 = _local5;
_local5++;
_local8 = Reflect.fields(_local3[_local7]).iterator();
do {
//unresolved if
_local9 = _local8.next();
if ((Reflect.field(_local4, _local9) == null)){
Reflect.setField(_local4, _local9, []);
};
Reflect.field(_local4, _local9).push(Reflect.field(_local3[_local7], _local9));
} while (true);
} while (true);
_local8 = Reflect.fields(_local4).iterator();
do {
//unresolved if
_local9 = _local8.next();
_local2.push({parameters:Reflect.field(_local4, _local9), name:_local9});
} while (true);
return (_local2);
}
public static function _bezier_get(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Array):Number{
var _local5:int;
var _local6:Number;
var _local7:Number;
var _local8:Number;
if ((_arg4.length == 1)){
return ((_arg1 + (_arg3 * (((2 * (1 - _arg3)) * (_arg4[0] - _arg1)) + (_arg3 * (_arg2 - _arg1))))));
} else {
_local5 = Math.floor((_arg3 * _arg4.length));
_local6 = ((_arg3 - (_local5 * (1 / _arg4.length))) * _arg4.length);
if ((_local5 == 0)){
_local7 = _arg1;
_local8 = ((_arg4[0] + _arg4[1]) / 2);
} else {
if ((_local5 == (_arg4.length - 1))){
_local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2);
_local8 = _arg2;
} else {
_local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2);
_local8 = ((_arg4[_local5] + _arg4[(_local5 + 1)]) / 2);
};
};
return ((_local7 + (_local6 * (((2 * (1 - _local6)) * (_arg4[_local5] - _local7)) + (_local6 * (_local8 - _local7))))));
};
}
}
class NoMoreLifeDialog extends Screen {
public var yesButton:ButtonTile;
public var noButton:ButtonTile;
public var continueDialog:Sprite;
public var annihilated:Sprite;
public function NoMoreLifeDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(240, 32, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(0, 240, 240, 32), new Point(0, 0));
var _local2 = (new Bitmap(_local1) as Bitmap);
_local2.x = (-(_local2.width) / 2);
_local2.y = (-(_local2.height) / 2);
annihilated = new Sprite();
annihilated.addChild(_local2);
annihilated.filters = [new GlowFilter(0xFFFFFF, 0.7, 4, 4, 2, 3, false, false)];
continueDialog = new Sprite();
continueDialog.addChild(new Bitmap(Assets.objects.get("ContinueDialog")));
var _local3 = (new BitmapData(60, 120, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(328, 384, 60, 120), new Point(0, 0));
var _local4 = (new BitmapData(60, 120, true) as BitmapData);
_local4.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(388, 384, 60, 120), new Point(0, 0));
yesButton = new ButtonTile(_local3, 60, 30);
noButton = new ButtonTile(_local4, 60, 30);
annihilated.x = 250;
annihilated.y = 250;
yesButton.x = 23;
yesButton.y = 55;
noButton.x = 117;
noButton.y = 55;
continueDialog.x = 150;
continueDialog.y = 320;
continueDialog.addChild(yesButton);
continueDialog.addChild(noButton);
container.addChild(continueDialog);
container.addChild(annihilated);
yesButton.click = onYesClick;
noButton.click = onNoClick;
}
public function toGameOverDialog():void{
ScreenManager.showDialog("gameover");
}
public function onYesClick():void{
Tweener.addTween(annihilated, {onComplete:closeDialog, time:0.5, transition:"easeOutCubic", alpha:0, y:(250 - annihilated.height)});
Tweener.addTween(continueDialog, {time:0.5, transition:"easeOutCubic", alpha:0, y:(320 + continueDialog.height)});
}
public function onNoClick():void{
Tweener.addTween(annihilated, {onComplete:toGameOverDialog, time:0.5, transition:"easeOutCubic", alpha:0, y:(250 - annihilated.height)});
Tweener.addTween(continueDialog, {time:0.5, transition:"easeOutCubic", alpha:0, y:(320 + continueDialog.height)});
}
public function init():void{
annihilated.y = (250 - annihilated.height);
annihilated.alpha = 0;
continueDialog.y = (320 + continueDialog.height);
continueDialog.alpha = 0;
Tweener.addTween(annihilated, {time:0.5, transition:"easeOutCubic", alpha:1, y:250});
Tweener.addTween(continueDialog, {time:0.5, transition:"easeOutCubic", alpha:1, y:320});
}
public function closeDialog():void{
Profile.reset(true);
MissionManager.currentMission.resetIntegrity();
ScreenManager.playScreen.start();
ScreenManager.playScreen.updateHUDScore();
ScreenManager.playScreen.updateHUDLives();
ScreenManager.playScreen.player.setGhost();
ScreenManager.playScreen.player.setGameOver(false);
ScreenManager.hideDialog();
}
}
class EnemyCSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function EnemyCSprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(14, 14, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -7;
core.y = -7;
var _local2 = (new BitmapData(192, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 64, 192, 32), new Point(0, 0));
equip = new MovieTile(_local2, 32, 32);
equip.x = -16;
equip.y = -16;
equipframes = equip.frames;
var _local3 = (new BitmapData(14, 14, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
var _local4:int;
var _local5:int = 14;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 14;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -7;
inflictCore.y = -7;
var _local10 = (new BitmapData(192, 32, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 64, 192, 32), new Point(0, 0));
_local4 = 0;
_local5 = 192;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 32;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 32, 32);
inflictEquip.x = -16;
inflictEquip.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function idle():void{
equip.goToFrame(2);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
class TitleScreen extends Screen {
public var titleforeground:Sprite;
public var titlebackground:Sprite;
public var sponsor2Button:SimpleButton;
public var sponsor1Button:SimpleButton;
public var playmoreButton:SimpleButton;
public var playButton:SimpleButton;
public var particleContainer:Sprite;
public var maxEmitter:int;
public var mainTick:Timer;
public var instructionsButton:SimpleButton;
public var highScoreButton:SimpleButton;
public var creditsButton:SimpleButton;
public var background:Sprite;
public function TitleScreen():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1:int = 50;
var _local2:int = 20;
maxEmitter = Math.round(((Math.random() * (_local1 - _local2)) + _local2));
background = new Sprite();
background.addChild(new Bitmap(Assets.objects.get("Background00")));
titlebackground = new Sprite();
titlebackground.addChild(new Bitmap(Assets.objects.get("TitleBackground")));
titleforeground = new Sprite();
titleforeground.addChild(new Bitmap(Assets.objects.get("TitleForeground")));
particleContainer = new Sprite();
var _local3 = (new BitmapData(48, 16, true) as BitmapData);
var _local4 = (new Bitmap(_local3) as Bitmap);
var _local5 = (new Sprite() as Sprite);
var _local6 = (new Sprite() as Sprite);
_local3.copyPixels(Assets.objects.get("UITiles"), new Rectangle(272, 0, 48, 16), new Point(0, 0));
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
_local5.addChild(_local4);
_local6.graphics.beginFill(0);
_local6.graphics.drawRect(0, 0, _local5.width, _local5.height);
_local6.x = (-(_local6.width) / 2);
_local6.y = (-(_local6.height) / 2);
playButton = new SimpleButton(_local5, _local5, _local5, _local6);
var _local7 = (new BitmapData(112, 16, true) as BitmapData);
var _local8 = (new Bitmap(_local7) as Bitmap);
var _local9 = (new Sprite() as Sprite);
var _local10 = (new Sprite() as Sprite);
_local7.copyPixels(Assets.objects.get("UITiles"), new Rectangle(272, 16, 112, 16), new Point(0, 0));
_local8.x = (-(_local8.width) / 2);
_local8.y = (-(_local8.height) / 2);
_local9.addChild(_local8);
_local10.graphics.beginFill(0);
_local10.graphics.drawRect(0, 0, _local9.width, _local9.height);
_local10.x = (-(_local10.width) / 2);
_local10.y = (-(_local10.height) / 2);
instructionsButton = new SimpleButton(_local9, _local9, _local9, _local10);
var _local11 = (new BitmapData(96, 16, true) as BitmapData);
var _local12 = (new Bitmap(_local11) as Bitmap);
var _local13 = (new Sprite() as Sprite);
var _local14 = (new Sprite() as Sprite);
_local11.copyPixels(Assets.objects.get("UITiles"), new Rectangle(272, 32, 96, 16), new Point(0, 0));
_local12.x = (-(_local12.width) / 2);
_local12.y = (-(_local12.height) / 2);
_local13.addChild(_local12);
_local14.graphics.beginFill(0);
_local14.graphics.drawRect(0, 0, _local13.width, _local13.height);
_local14.x = (-(_local14.width) / 2);
_local14.y = (-(_local14.height) / 2);
highScoreButton = new SimpleButton(_local13, _local13, _local13, _local14);
var _local15 = (new BitmapData(64, 16, true) as BitmapData);
var _local16 = (new Bitmap(_local15) as Bitmap);
var _local17 = (new Sprite() as Sprite);
var _local18 = (new Sprite() as Sprite);
_local15.copyPixels(Assets.objects.get("UITiles"), new Rectangle(272, 48, 64, 16), new Point(0, 0));
_local16.x = (-(_local16.width) / 2);
_local16.y = (-(_local16.height) / 2);
_local17.addChild(_local16);
_local18.graphics.beginFill(0);
_local18.graphics.drawRect(0, 0, _local17.width, _local17.height);
_local18.x = (-(_local18.width) / 2);
_local18.y = (-(_local18.height) / 2);
creditsButton = new SimpleButton(_local17, _local17, _local17, _local18);
var _local19 = (new BitmapData(144, 16, true) as BitmapData);
var _local20 = (new Bitmap(_local19) as Bitmap);
var _local21 = (new Sprite() as Sprite);
var _local22 = (new Sprite() as Sprite);
_local19.copyPixels(Assets.objects.get("UITiles"), new Rectangle(272, 64, 144, 16), new Point(0, 0));
_local20.x = (-(_local20.width) / 2);
_local20.y = (-(_local20.height) / 2);
_local21.addChild(_local20);
_local22.graphics.beginFill(0);
_local22.graphics.drawRect(0, 0, _local21.width, _local21.height);
_local22.x = (-(_local22.width) / 2);
_local22.y = ((-(_local22.height) / 2) - 100);
playmoreButton = new SimpleButton(_local21, _local21, _local21, _local22);
playmoreButton.enabled = false;
var _local23 = (new BitmapData(112, 16, true) as BitmapData);
var _local24 = (new Bitmap(_local23) as Bitmap);
var _local25 = (new Sprite() as Sprite);
var _local26 = (new Sprite() as Sprite);
_local23.copyPixels(Assets.objects.get("UITiles"), new Rectangle(240, 208, 112, 16), new Point(0, 0));
_local24.x = (-(_local24.width) / 2);
_local24.y = (-(_local24.height) / 2);
_local25.addChild(_local24);
_local26.graphics.beginFill(0);
_local26.graphics.drawRect(0, 0, _local25.width, _local25.height);
_local26.x = (-(_local26.width) / 2);
_local26.y = (-(_local26.height) / 2);
sponsor1Button = new SimpleButton(_local25, _local25, _local25, _local26);
var _local27 = (new BitmapData(80, 16, true) as BitmapData);
var _local28 = (new Bitmap(_local27) as Bitmap);
var _local29 = (new Sprite() as Sprite);
var _local30 = (new Sprite() as Sprite);
_local27.copyPixels(Assets.objects.get("UITiles"), new Rectangle(240, 224, 80, 16), new Point(0, 0));
_local28.x = (-(_local28.width) / 2);
_local28.y = (-(_local28.height) / 2);
_local29.addChild(_local28);
_local30.graphics.beginFill(0);
_local30.graphics.drawRect(0, 0, _local29.width, _local29.height);
_local30.x = (-(_local30.width) / 2);
_local30.y = (-(_local30.height) / 2);
sponsor2Button = new SimpleButton(_local29, _local29, _local29, _local30);
var _local31:* = 250;
playmoreButton.x = _local31;
creditsButton.x = _local31;
highScoreButton.x = _local31;
instructionsButton.x = _local31;
playButton.x = _local31;
playButton.y = 250;
instructionsButton.y = 280;
highScoreButton.y = 310;
creditsButton.y = 340;
playmoreButton.y = 450;
sponsor1Button.x = 190;
sponsor2Button.x = 310;
sponsor1Button.y = 470;
sponsor2Button.y = 470;
container.addChild(background);
container.addChild(particleContainer);
container.addChild(titlebackground);
container.addChild(titleforeground);
container.addChild(playButton);
container.addChild(highScoreButton);
container.addChild(instructionsButton);
container.addChild(creditsButton);
container.addChild(playmoreButton);
container.addChild(sponsor1Button);
container.addChild(sponsor2Button);
mainTick = new Timer(Config.mainTick);
mainTick.addEventListener(TimerEvent.TIMER, onMainTickTimerHandler);
}
public function start():void{
Tweener.addTween(titlebackground, {transition:"easeOutQuad", time:1, alpha:1});
Tweener.addTween(titleforeground, {transition:"easeOutQuad", delay:0.5, time:1.5, alpha:1});
Tweener.addTween(playButton, {transition:"easeOutQuad", delay:1.5, time:0.25, alpha:1});
Tweener.addTween(instructionsButton, {transition:"easeOutQuad", delay:1.6, time:0.25, alpha:1});
Tweener.addTween(highScoreButton, {transition:"easeOutQuad", delay:1.7, time:0.25, alpha:1});
Tweener.addTween(creditsButton, {transition:"easeOutQuad", delay:1.8, time:0.25, alpha:1});
Tweener.addTween(playmoreButton, {onComplete:captureEvents, transition:"easeOutQuad", delay:1.9, time:0.25, alpha:1});
Tweener.addTween(sponsor1Button, {onComplete:captureEvents, transition:"easeOutQuad", delay:2.1, time:0.25, alpha:1});
Tweener.addTween(sponsor2Button, {onComplete:captureEvents, transition:"easeOutQuad", delay:2.1, time:0.25, alpha:1});
SoundManager.playAmbient("mainmenu");
}
public function resetButtonPositions():void{
Tweener.addTween(playButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:250});
Tweener.addTween(instructionsButton, {transition:"easeOutCubic", scaleY:1, scaleX:1, time:0.3, y:280});
Tweener.addTween(highScoreButton, {transition:"easeOutCubic", scaleY:1, scaleX:1, time:0.3, y:310});
Tweener.addTween(creditsButton, {transition:"easeOutCubic", scaleY:1, scaleX:1, time:0.3, y:340});
Tweener.addTween(playmoreButton, {transition:"easeOutCubic", scaleY:1, scaleX:1, time:0.3, y:450});
Tweener.addTween(sponsor1Button, {transition:"easeOutCubic", scaleY:1, scaleX:1, time:0.3, y:470, x:190});
Tweener.addTween(sponsor2Button, {transition:"easeOutCubic", scaleY:1, scaleX:1, time:0.3, y:470, x:310});
}
public function reset():void{
releaseEvents();
ParticleManager.clearContainer();
SoundManager.stopAmbient();
}
public function releaseEvents():void{
mainTick.reset();
playButton.removeEventListener(MouseEvent.CLICK, onPlayClick);
playButton.removeEventListener(MouseEvent.ROLL_OVER, onPlayOver);
playButton.removeEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
instructionsButton.removeEventListener(MouseEvent.CLICK, onInstructionsClick);
instructionsButton.removeEventListener(MouseEvent.ROLL_OVER, onInstructionsOver);
instructionsButton.removeEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
highScoreButton.removeEventListener(MouseEvent.CLICK, onHighscoreClick);
highScoreButton.removeEventListener(MouseEvent.ROLL_OVER, onHighscoreOver);
highScoreButton.removeEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
creditsButton.removeEventListener(MouseEvent.CLICK, onCreditsClick);
creditsButton.removeEventListener(MouseEvent.ROLL_OVER, onCreditsOver);
creditsButton.removeEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
sponsor1Button.removeEventListener(MouseEvent.CLICK, onSponsor1Click);
sponsor1Button.removeEventListener(MouseEvent.ROLL_OVER, onSponsor1Over);
sponsor1Button.removeEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
sponsor2Button.removeEventListener(MouseEvent.CLICK, onSponsor2Click);
sponsor2Button.removeEventListener(MouseEvent.ROLL_OVER, onSponsor2Over);
sponsor2Button.removeEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
}
public function onSponsor2Over(_arg1:MouseEvent):void{
Tweener.addTween(sponsor1Button, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:470, x:180});
Tweener.addTween(sponsor2Button, {transition:"easeOutCubic", time:0.3, scaleY:2, scaleX:2, x:320});
Tweener.addTween(playmoreButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:440});
}
public function onSponsor2Click(_arg1:MouseEvent):void{
resetButtonPositions();
Lib.getURL(new URLRequest(Config.sponsor2url));
}
public function onSponsor1Over(_arg1:MouseEvent):void{
Tweener.addTween(sponsor1Button, {transition:"easeOutCubic", time:0.3, scaleY:2, scaleX:2, x:180});
Tweener.addTween(sponsor2Button, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:470, x:330});
Tweener.addTween(playmoreButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:440});
}
public function onSponsor1Click(_arg1:MouseEvent):void{
resetButtonPositions();
Lib.getURL(new URLRequest(Config.sponsor1url));
}
public function onPlayOver(_arg1:MouseEvent):void{
resetButtonPositions();
Tweener.addTween(playButton, {transition:"easeOutCubic", time:0.3, scaleY:2, scaleX:2});
Tweener.addTween(instructionsButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(instructionsButton.y + 10)});
Tweener.addTween(highScoreButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(highScoreButton.y + 10)});
Tweener.addTween(creditsButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(creditsButton.y + 10)});
}
public function onPlayInstructionsHighScoreCreditsOut(_arg1:MouseEvent):void{
resetButtonPositions();
}
public function onPlayClick(_arg1:MouseEvent):void{
resetButtonPositions();
reset();
if (TutorialManager.hasDoneTutorial){
ScreenManager.showScreen("play");
} else {
ScreenManager.showScreen("hasTutorial");
};
}
public function onMainTickTimerHandler(_arg1:TimerEvent):void{
ParticleManager.update();
}
public function onInstructionsOver(_arg1:MouseEvent):void{
resetButtonPositions();
Tweener.addTween(playButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(playButton.y - 10)});
Tweener.addTween(instructionsButton, {transition:"easeOutCubic", time:0.3, scaleY:2, scaleX:2});
Tweener.addTween(highScoreButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(highScoreButton.y + 10)});
Tweener.addTween(creditsButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(creditsButton.y + 10)});
}
public function onInstructionsClick(_arg1:MouseEvent):void{
resetButtonPositions();
reset();
ScreenManager.showScreen("instructionsFromTitle");
}
public function onHighscoreOver(_arg1:MouseEvent):void{
resetButtonPositions();
Tweener.addTween(playButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(playButton.y - 10)});
Tweener.addTween(instructionsButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(instructionsButton.y - 10)});
Tweener.addTween(highScoreButton, {transition:"easeOutCubic", time:0.3, scaleY:2, scaleX:2});
Tweener.addTween(creditsButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(creditsButton.y + 10)});
}
public function onHighscoreClick(_arg1:MouseEvent):void{
resetButtonPositions();
Lib.getURL(new URLRequest(Config.highscoreurl));
}
public function onCreditsOver(_arg1:MouseEvent):void{
resetButtonPositions();
Tweener.addTween(playButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(playButton.y - 10)});
Tweener.addTween(instructionsButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(instructionsButton.y - 10)});
Tweener.addTween(highScoreButton, {transition:"easeOutCubic", time:0.3, scaleY:1, scaleX:1, y:(highScoreButton.y - 10)});
Tweener.addTween(creditsButton, {transition:"easeOutCubic", time:0.3, scaleY:2, scaleX:2});
}
public function onCreditsClick(_arg1:MouseEvent):void{
resetButtonPositions();
reset();
ScreenManager.showScreen("credits");
}
public function init():void{
ParticleManager.setupContainer(particleContainer, mainTick);
titlebackground.alpha = 0;
titleforeground.alpha = 0;
playButton.alpha = 0;
instructionsButton.alpha = 0;
highScoreButton.alpha = 0;
creditsButton.alpha = 0;
playmoreButton.alpha = 0;
sponsor1Button.alpha = 0;
sponsor2Button.alpha = 0;
releaseEvents();
createParticleEmitter();
}
public function dummyTweenOnComplete():void{
}
public function createParticleEmitter():void{
var _local1 = (new ParticleEmitter(Config.runeRunningParticleEmitter) as ParticleEmitter);
_local1.loc = new Point(250, 250);
ParticleManager.createEmitter(_local1);
}
public function captureEvents():void{
mainTick.start();
playButton.addEventListener(MouseEvent.CLICK, onPlayClick);
playButton.addEventListener(MouseEvent.ROLL_OVER, onPlayOver);
playButton.addEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
instructionsButton.addEventListener(MouseEvent.CLICK, onInstructionsClick);
instructionsButton.addEventListener(MouseEvent.ROLL_OVER, onInstructionsOver);
instructionsButton.addEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
highScoreButton.addEventListener(MouseEvent.CLICK, onHighscoreClick);
highScoreButton.addEventListener(MouseEvent.ROLL_OVER, onHighscoreOver);
highScoreButton.addEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
creditsButton.addEventListener(MouseEvent.CLICK, onCreditsClick);
creditsButton.addEventListener(MouseEvent.ROLL_OVER, onCreditsOver);
creditsButton.addEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
sponsor1Button.addEventListener(MouseEvent.CLICK, onSponsor1Click);
sponsor1Button.addEventListener(MouseEvent.ROLL_OVER, onSponsor1Over);
sponsor1Button.addEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
sponsor2Button.addEventListener(MouseEvent.CLICK, onSponsor2Click);
sponsor2Button.addEventListener(MouseEvent.ROLL_OVER, onSponsor2Over);
sponsor2Button.addEventListener(MouseEvent.ROLL_OUT, onPlayInstructionsHighScoreCreditsOut);
}
}
class Tweener {
public static var __tweener_controller__:MovieClip;
public static var _engineExists:Boolean;
public static var _inited:Boolean;
public static var _currentTime:Number;
public static var _tweenList:List;
public static var _timeScale:Number;
public static var _transitionList:Object;
public static var _specialPropertyList:Object;
public static var _specialPropertyModifierList:Object;
public static var _specialPropertySplitterList:Object;
public function Tweener():void{
if (Boot_BA08CD.skip_constructor){
return;
};
Log.trace("Tweener is an static class and should not be instantiated.", {methodName:"new", className:"caurina.transitions.Tweener", lineNumber:75, fileName:"Tweener.hx"});
}
public static function addTween(_arg1:Object, _arg2:Object):Boolean{
var _local6:* = null;
var _local7:* = null;
var _local12:* = null;
var _local13:* = null;
var _local14 = (null as Array);
var _local15:int;
var _local16:int;
var _local17:int;
var _local18 = (null as String);
var _local19 = (null as TweenListObj);
var _local20 = (null as TweenListObj);
var _local22 = (null as DisplayObject);
var _local23:* = null;
var _local24:* = null;
if (!(_arg1 == null)){
true;
};
if (true){
return (false);
};
var _local3 = (new List() as List);
if (Std.is(_arg1, Array)){
_local6 = _arg1;
if (Std.is(_local6, Array)){
} else {
throw ("Class cast error");
};
_local6 = !NULL!.iterator();
do {
//unresolved if
_local7 = _local6.next();
_local3.push(_local7);
} while (true);
} else {
_local3.push(_arg1);
};
_local6 = TweenListObj.makePropertiesChain(_arg2);
if (!(Tweener._inited)){
Tweener.init();
};
if (!!(Tweener._engineExists)){
true;
};
if (true){
Tweener.startEngine();
};
var _local8:Number = (Math.isNaN(_local6.time)) ? 0 : _local6.time;
var _local9:Number = (Math.isNaN(_local6.delay)) ? 0 : _local6.delay;
_local7 = Reflect.empty();
var _local10:* = {quickAdd:true, onOverwriteParams:true, onCompleteParams:true, onUpdateParams:true, onStartParams:true, rounded:true, onOverwrite:true, onComplete:true, onUpdate:true, onStart:true, transition:true, skipUpdates:true, useFrames:true, delay:true, time:true};
var _local11:* = Reflect.empty();
_local12 = Reflect.fields(_local6).iterator();
do {
//unresolved if
_local13 = _local12.next();
if (!(Reflect.field(_local10, _local13))){
if (!((Reflect.field(Tweener._specialPropertySplitterList, _local13) == null))){
_local14 = (Reflect.field(Tweener._specialPropertySplitterList, _local13).splitValues(Reflect.field(_local6, _local13), Reflect.field(Tweener._specialPropertySplitterList, _local13).parameters) as Array);
_local15 = 0;
_local16 = _local14.length;
do {
//unresolved if
_local17 = _local15;
_local15++;
Reflect.setField(_local7, (_local14[_local17].name as String), {valueComplete:_local14[_local17].value, valueStart:null});
} while (true);
} else {
if (!((Reflect.field(Tweener._specialPropertyModifierList, _local13) == null))){
_local14 = (Reflect.field(Tweener._specialPropertyModifierList, _local13).modifyValues(Reflect.field(_local6, _local13)) as Array);
_local15 = 0;
_local16 = _local14.length;
do {
//unresolved if
_local17 = _local15;
_local15++;
Reflect.setField(_local11, (_local14[_local17].name as String), {modifierFunction:Reflect.field(Tweener._specialPropertyModifierList, _local13).getValue, modifierParameters:_local14[_local17].parameters});
} while (true);
} else {
Reflect.setField(_local7, _local13, {valueComplete:Reflect.field(_local6, _local13), valueStart:null});
};
};
};
} while (true);
_local12 = Reflect.fields(_local11).iterator();
do {
//unresolved if
_local13 = _local12.next();
if (!((Reflect.field(_local7, _local13) == null))){
Reflect.setField(Reflect.field(_local7, _local13), "modifierParameters", Reflect.field(_local11, _local13).modifierParameters);
Reflect.setField(Reflect.field(_local7, _local13), "modifierFunction", Reflect.field(_local11, _local13).modifierFunction);
};
} while (true);
if (Std.is(_local6.transition, String)){
_local18 = (_local6.transition.toLowerCase() as String);
_local12 = Reflect.field(Tweener._transitionList, _local18);
} else {
_local12 = _local6.transition;
};
if ((_local12 == null)){
_local12 = Reflect.field(Tweener._transitionList, "linear");
};
var _local21:* = _local3.iterator();
do {
//unresolved if
_local22 = (_local21.next() as DisplayObject);
_local13 = Reflect.empty();
_local23 = Reflect.fields(_local7).iterator();
do {
//unresolved if
_local24 = _local23.next();
Reflect.setField(_local13, _local24, new PropertyInfoObj(Reflect.field(_local7, _local24).valueStart, Reflect.field(_local7, _local24).valueComplete, Reflect.field(_local7, _local24).modifierFunction, Reflect.field(_local7, _local24).modifierParameters));
} while (true);
_local19 = (new TweenListObj(_local22, (Tweener._currentTime + ((_local9 * 1000) / Tweener._timeScale)), (Tweener._currentTime + (((_local9 * 1000) + (_local8 * 1000)) / Tweener._timeScale)), (_local6.useFrames == true), _local12) as TweenListObj);
_local19.properties = _local13;
_local19.onStart = _local6.onStart;
_local19.onUpdate = _local6.onUpdate;
_local19.onComplete = _local6.onComplete;
_local19.onOverwrite = _local6.onOverwrite;
_local19.onError = _local6.onError;
_local19.onStartParams = _local6.onStartParams;
_local19.onUpdateParams = _local6.onUpdateParams;
_local19.onCompleteParams = _local6.onCompleteParams;
_local19.onOverwriteParams = _local6.onOverwriteParams;
_local19.rounded = _local6.rounded;
_local19.skipUpdates = _local6.skipUpdates;
if (!(_local6.quickAdd)){
Tweener.removeTweensByTime(_local19.scope, _local19.properties, _local19.timeStart, _local19.timeComplete);
};
Tweener._tweenList.push(_local19);
if ((_local8 == 0)){
false;
};
if (false){
_local20 = (Tweener._tweenList.first() as TweenListObj);
Tweener.updateTweenByTweenListObj(_local20);
Tweener.removeTweenByTweenListObj(_local20);
};
} while (true);
return (true);
}
public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{
var _local7:Boolean;
var _local10 = (null as TweenListObj);
var _local11:* = null;
var _local12:* = null;
var _local13:* = null;
var _local14:* = null;
var _local6:Boolean;
var _local9:* = Tweener._tweenList.iterator();
do {
//unresolved if
_local10 = (_local9.next() as TweenListObj);
if ((_arg1 == _local10.scope)){
if ((_arg4 > _local10.timeStart)){
false;
};
if (false){
_local7 = false;
_local11 = Reflect.fields(_local10.properties).iterator();
do {
//unresolved if
_local12 = _local11.next();
if (!((Reflect.field(_arg2, _local12) == null))){
if (!((_local10.onOverwrite == null))){
try {
Reflect.callMethod(_local10.scope, _local10.onOverwrite, _local10.onOverwriteParams);
} catch(#InvalidMultinameIndex#) {
_local14 = !NULL!;
_local13 = _local14;
Tweener.handleError(_local10, _local13, "onOverwrite");
};
};
Reflect.setField(_local10.properties, _local12, null);
_local7 = true;
_local6 = true;
};
} while (true);
if (_local7){
Tweener.removeTweenByTweenListObj(_local10);
};
};
};
} while (true);
return (_local6);
}
public static function removeTweens(_arg1:Object, _arg2:Array):Boolean{
var _local6:int;
var _local3 = (new Array() as Array);
var _local4:int;
var _local5:int = _arg2.length;
do {
//unresolved if
_local6 = _local4;
_local4++;
if (Std.is((_arg2[_local6] as String), String)){
false;
};
if (false){
_local3.push((_arg2[_local6] as String));
};
} while (true);
return (Tweener.affectTweens(Tweener.removeTweenByTweenListObj, _arg1, _local3));
}
public static function removeAllTweens():Boolean{
var _local2:int;
var _local3:int;
var _local4:* = null;
var _local5 = (null as TweenListObj);
var _local1:Boolean;
if ((Tweener._tweenList == (null as List))){
_local1 = true;
} else {
_local2 = Tweener._tweenList.length;
_local3 = 0;
if ((Tweener._tweenList.length > 0)){
_local4 = Tweener._tweenList.iterator();
do {
//unresolved if
_local5 = (_local4.next() as TweenListObj);
Tweener.removeTweenByTweenListObj(_local5);
_local3++;
} while (true);
};
if ((_local3 == _local2)){
_local1 = true;
};
};
return (_local1);
}
public static function pauseTweens(_arg1:Object, _arg2:Array):Boolean{
var _local6:int;
var _local3 = (new Array() as Array);
var _local4:int;
var _local5:int = _arg2.length;
do {
//unresolved if
_local6 = _local4;
_local4++;
if (Std.is((_arg2[_local6] as String), String)){
false;
};
if (false){
_local3.push((_arg2[_local6] as String));
};
} while (true);
return (Tweener.affectTweens(Tweener.pauseTweenByTweenListObj, _arg1, _local3));
}
public static function pauseAllTweens():Boolean{
var _local3 = (null as TweenListObj);
var _local1:Boolean;
var _local2:* = Tweener._tweenList.iterator();
do {
//unresolved if
_local3 = (_local2.next() as TweenListObj);
Tweener.pauseTweenByTweenListObj(_local3);
_local1 = true;
} while (true);
return (_local1);
}
public static function resumeTweens(_arg1:Object, _arg2:Array):Boolean{
var _local6:int;
var _local3 = (new Array() as Array);
var _local4:int;
var _local5:int = _arg2.length;
do {
//unresolved if
_local6 = _local4;
_local4++;
if (Std.is((_arg2[_local6] as String), String)){
false;
};
if (false){
_local3.push((_arg2[_local6] as String));
};
} while (true);
return (Tweener.affectTweens(Tweener.resumeTweenByTweenListObj, _arg1, _local3));
}
public static function resumeAllTweens():Boolean{
var _local3 = (null as TweenListObj);
if (!(Std.bool(Tweener._tweenList))){
return (false);
};
var _local1:Boolean;
var _local2:* = Tweener._tweenList.iterator();
do {
//unresolved if
_local3 = (_local2.next() as TweenListObj);
Tweener.resumeTweenByTweenListObj(_local3);
_local1 = true;
} while (true);
return (_local1);
}
public static function affectTweens(_arg1:Object, _arg2:Object, _arg3:Array):Boolean{
var _local6 = (null as TweenListObj);
var _local7 = (null as Array);
var _local8:* = null;
var _local9:* = null;
var _local10:int;
var _local11:int;
var _local4:Boolean;
if (!(Std.bool(Tweener._tweenList))){
return (false);
};
var _local5:* = Tweener._tweenList.iterator();
do {
//unresolved if
_local6 = (_local5.next() as TweenListObj);
if ((_local6.scope == _arg2)){
if ((_arg3.length == 0)){
_arg1(_local6);
_local4 = true;
} else {
_local7 = (new Array() as Array);
_local8 = _arg3.iterator();
do {
//unresolved if
_local9 = _local8.next();
if (!((Reflect.field(_local6.properties, _local9) == null))){
_local7.push(_local9);
};
} while (true);
if ((_local7.length > 0)){
_local10 = AuxFunctions.getObjectLength(_local6.properties);
if ((_local10 == _local7.length)){
_arg1(_local6);
_local4 = true;
} else {
_local11 = Tweener.splitTweens(_local6, _local7);
_arg1(_local11);
_local4 = true;
};
};
};
};
} while (true);
return (_local4);
}
public static function splitTweens(_arg1:TweenListObj, _arg2:Array):int{
var _local5 = (null as String);
var _local7:* = null;
var _local8:Boolean;
var _local9:* = null;
var _local10:* = null;
var _local3 = (_arg1 as TweenListObj);
var _local4 = (_local3.clone(false) as TweenListObj);
var _local6:* = _arg2.iterator();
do {
//unresolved if
_local7 = _local6.next();
_local5 = (_local7 as String);
if (!((Reflect.field(_local3.properties, _local5) == null))){
Reflect.setField(_local3.properties, _local5, null);
};
} while (true);
_local6 = Reflect.fields(_local4.properties).iterator();
do {
//unresolved if
_local7 = _local6.next();
_local8 = false;
_local9 = _arg2.iterator();
do {
//unresolved if
_local10 = _local9.next();
if ((_local10 == _local7)){
_local8 = true;
break;
};
} while (true);
if (!(_local8)){
Reflect.setField(_local4.properties, _local7, null);
};
} while (true);
Tweener._tweenList.push(_local4);
return ((Tweener._tweenList.length - 1));
}
public static function updateTweens():Boolean{
var _local2 = (null as TweenListObj);
if (Tweener._tweenList.isEmpty()){
return (false);
};
var _local1:* = Tweener._tweenList.iterator();
do {
//unresolved if
_local2 = (_local1.next() as TweenListObj);
if (!(_local2.isPaused)){
if (!(Tweener.updateTweenByTweenListObj(_local2))){
Tweener.removeTweenByTweenListObj(_local2);
};
};
} while (true);
return (true);
}
public static function removeTweenByTweenListObj(_arg1:TweenListObj):Boolean{
Tweener._tweenList.remove(_arg1);
return (true);
}
public static function pauseTweenByTweenListObj(_arg1:TweenListObj):Boolean{
if (!(_arg1 == (null as TweenListObj))){
true;
};
if (true){
return (false);
};
_arg1.timePaused = Tweener._currentTime;
_arg1.isPaused = true;
return (true);
}
public static function resumeTweenByTweenListObj(_arg1:TweenListObj):Boolean{
if (!(_arg1 == (null as TweenListObj))){
true;
};
if (true){
return (false);
};
_arg1.timeStart = (_arg1.timeStart + (Tweener._currentTime - _arg1.timePaused));
_arg1.timeComplete = (_arg1.timeComplete + (Tweener._currentTime - _arg1.timePaused));
_arg1.timePaused = null;
_arg1.isPaused = false;
return (true);
}
public static function updateTweenByTweenListObj(_arg1:TweenListObj):Boolean{
var _local5:Boolean;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local12:* = null;
var _local13:* = null;
var _local14:* = null;
var _local15:* = null;
var _local16:Number;
var _local3 = (_arg1 as TweenListObj);
if (!(_local3 == (null as TweenListObj))){
true;
};
if (true){
return (false);
};
var _local4:Boolean;
if ((Tweener._currentTime >= _local3.timeStart)){
_local12 = _local3.scope;
if (_local3.isCaller){
//unresolved jump
do {
//unresolved if
_local7 = (((_local3.timeComplete - _local3.timeStart) / _local3.count) * (_local3.timesCalled + 1));
_local8 = _local3.timeStart;
_local9 = (_local3.timeComplete - _local3.timeStart);
_local10 = (_local3.timeComplete - _local3.timeStart);
_local6 = _local3.transition(_local7, _local8, _local9, _local10);
if ((Tweener._currentTime >= _local6)){
if (!((_local3.onUpdate == null))){
try {
Reflect.callMethod(_local12, _local3.onUpdate, _local3.onUpdateParams);
} catch(#InvalidMultinameIndex#) {
_local15 = !NULL!;
_local14 = _local15;
Tweener.handleError(_local3, _local14, "onUpdate");
};
};
_local3.timesCalled = (_local3.timesCalled + 1);
if ((_local3.timesCalled >= _local3.count)){
_local4 = true;
break;
};
if (_local3.waitFrames){
break;
};
};
} while (true);
} else {
if (!Math.isNaN(_local3.skipUpdates)){
true;
if (!(_local3.skipUpdates < 1)){
true;
if (!(_local3.skipUpdates == null)){
true;
};
};
};
_local5 = true;
if ((Tweener._currentTime >= _local3.timeComplete)){
_local4 = true;
_local5 = true;
};
if (!(_local3.hasStarted)){
if (!((_local3.onStart == null))){
try {
Reflect.callMethod(_local12, _local3.onStart, _local3.onStartParams);
} catch(#InvalidMultinameIndex#) {
_local15 = !NULL!;
_local14 = _local15;
Tweener.handleError(_local3, _local14, "onStart");
};
};
_local14 = Reflect.fields(_local3.properties).iterator();
do {
//unresolved if
_local15 = _local14.next();
_local16 = Tweener.getPropertyValue(_local12, _local15);
Reflect.field(_local3.properties, _local15).valueStart = (Math.isNaN(_local16)) ? Reflect.field(_local3.properties, _local15).valueComplete : _local16;
} while (true);
_local5 = true;
_local3.hasStarted = true;
};
if (_local5){
_local14 = Reflect.fields(_local3.properties).iterator();
do {
//unresolved if
_local15 = _local14.next();
_local13 = Reflect.field(_local3.properties, _local15);
if (_local4){
_local6 = _local13.valueComplete;
} else {
if (_local13.hasModifier){
_local7 = (Tweener._currentTime - _local3.timeStart);
_local10 = (_local3.timeComplete - _local3.timeStart);
_local6 = _local3.transition(_local7, 0, 1, _local10);
_local6 = _local13.modifierFunction(_local13.valueStart, _local13.valueComplete, _local6, _local13.modifierParameters);
} else {
_local7 = (Tweener._currentTime - _local3.timeStart);
_local8 = _local13.valueStart;
_local9 = (_local13.valueComplete - _local13.valueStart);
_local10 = (_local3.timeComplete - _local3.timeStart);
_local6 = _local3.transition(_local7, _local8, _local9, _local10);
};
};
if (_local3.rounded){
_local6 = Math.round(_local6);
};
Tweener.setPropertyValue(_local12, _local15, _local6);
} while (true);
_local3.updatesSkipped = 0;
if (!((_local3.onUpdate == null))){
try {
Reflect.callMethod(_local12, _local3.onUpdate, _local3.onUpdateParams);
} catch(#InvalidMultinameIndex#) {
_local15 = !NULL!;
_local14 = _local15;
Tweener.handleError(_local3, _local14, "onUpdate");
};
};
} else {
_local3.updatesSkipped = (_local3.updatesSkipped + 1);
};
};
if (_local4){
false;
};
if (false){
try {
Reflect.callMethod(_local12, _local3.onComplete, _local3.onCompleteParams);
} catch(#InvalidMultinameIndex#) {
_local15 = !NULL!;
_local14 = _local15;
Tweener.handleError(_local3, _local14, "onComplete");
};
};
return (!(_local4));
};
return (true);
}
public static function init():void{
Tweener._inited = true;
Tweener._transitionList = Reflect.empty();
Equations.init();
Tweener._specialPropertyList = Reflect.empty();
Tweener._specialPropertyModifierList = Reflect.empty();
Tweener._specialPropertySplitterList = Reflect.empty();
SpecialPropertiesDefault.init();
}
public static function registerTransition(_arg1:String, _arg2:Object):void{
if (!(Tweener._inited)){
Tweener.init();
};
Reflect.setField(Tweener._transitionList, _arg1, _arg2);
}
public static function registerSpecialProperty(_arg1:String, _arg2:Object, _arg3:Object, _arg4:Array):void{
if (!(Tweener._inited)){
Tweener.init();
};
var _local5 = (new SpecialProperty(_arg2, _arg3, _arg4) as SpecialProperty);
Reflect.setField(Tweener._specialPropertyList, _arg1, _local5);
}
public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Object, _arg3:Object):void{
if (!(Tweener._inited)){
Tweener.init();
};
var _local4 = (new SpecialPropertyModifier(_arg2, _arg3) as SpecialPropertyModifier);
Reflect.setField(Tweener._specialPropertyModifierList, _arg1, _local4);
}
public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Object, _arg3:Array=undefined):void{
if (!(Tweener._inited)){
Tweener.init();
};
if ((_arg3 == (null as Array))){
_arg3 = ([] as Array);
};
var _local4 = (new SpecialPropertySplitter(_arg2, _arg3) as SpecialPropertySplitter);
Reflect.setField(Tweener._specialPropertySplitterList, _arg1, _local4);
}
public static function startEngine():void{
Tweener._engineExists = true;
Tweener._tweenList = new List();
Tweener.__tweener_controller__ = new MovieClip();
Tweener.__tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
Tweener.updateTime();
}
public static function stopEngine():void{
Tweener._engineExists = false;
Tweener._tweenList = (null as List);
Tweener._currentTime = 0;
Tweener.__tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
Tweener.__tweener_controller__ = (null as MovieClip);
}
public static function getPropertyValue(_arg1:Object, _arg2:String):Number{
if (!((Reflect.field(Tweener._specialPropertyList, _arg2) == null))){
if (Std.bool(Reflect.field(Tweener._specialPropertyList, _arg2).parameters)){
return (Reflect.field(Tweener._specialPropertyList, _arg2).getValue(_arg1, Reflect.field(Tweener._specialPropertyList, _arg2).parameters));
} else {
return (Reflect.field(Tweener._specialPropertyList, _arg2).getValue(_arg1));
};
} else {
return (Reflect.field(_arg1, _arg2));
};
}
public static function setPropertyValue(_arg1:Object, _arg2:String, _arg3:Number):void{
if (!((Reflect.field(Tweener._specialPropertyList, _arg2) == null))){
if (Std.bool(Reflect.field(Tweener._specialPropertyList, _arg2).parameters)){
Reflect.field(Tweener._specialPropertyList, _arg2).setValue(_arg1, _arg3, Reflect.field(Tweener._specialPropertyList, _arg2).parameters);
//unresolved jump
};
} else {
Reflect.setField(_arg1, _arg2, _arg3);
};
}
public static function updateTime():void{
Tweener._currentTime = Lib.getTimer();
}
public static function onEnterFrame(_arg1:Event):void{
Tweener.updateTime();
var _local2:Boolean;
_local2 = Tweener.updateTweens();
if (!(_local2)){
Tweener.stopEngine();
};
}
public static function setTimeScale(_arg1:Number):void{
var _local2:* = null;
var _local3 = (null as TweenListObj);
if (Math.isNaN(_arg1)){
_arg1 = 1;
};
if ((_arg1 < 1E-5)){
_arg1 = 1E-5;
};
if (!((_arg1 == Tweener._timeScale))){
_local2 = Tweener._tweenList.iterator();
do {
//unresolved if
_local3 = (_local2.next() as TweenListObj);
_local3.timeStart = (Tweener._currentTime - (((Tweener._currentTime - _local3.timeStart) * Tweener._timeScale) / _arg1));
_local3.timeComplete = (Tweener._currentTime - (((Tweener._currentTime - _local3.timeComplete) * Tweener._timeScale) / _arg1));
if (!((_local3.timePaused == null))){
_local3.timePaused = (Tweener._currentTime - (((Tweener._currentTime - _local3.timePaused) * Tweener._timeScale) / _arg1));
};
} while (true);
Tweener._timeScale = _arg1;
};
}
public static function isTweening(_arg1:Object):Boolean{
var _local3 = (null as TweenListObj);
var _local2:* = Tweener._tweenList.iterator();
do {
//unresolved if
_local3 = (_local2.next() as TweenListObj);
if (Reflect.hasField(_local3, "scope")){
false;
};
if (false){
return (true);
};
} while (true);
return (false);
}
public static function getTweens(_arg1:Object):Array{
var _local5 = (null as TweenListObj);
var _local6:* = null;
var _local7:* = null;
if (!(Std.bool(Tweener._tweenList))){
return ([]);
};
var _local3 = (new Array() as Array);
var _local4:* = Tweener._tweenList.iterator();
do {
//unresolved if
_local5 = (_local4.next() as TweenListObj);
if ((_local5.scope == _arg1)){
_local6 = Reflect.fields(_local5.properties).iterator();
do {
//unresolved if
_local7 = _local6.next();
_local3.push(_local7);
} while (true);
};
} while (true);
return (_local3);
}
public static function getTweenCount(_arg1:Object):int{
var _local4 = (null as TweenListObj);
if (!(Std.bool(Tweener._tweenList))){
return (0);
};
var _local2:int;
var _local3:* = Tweener._tweenList.iterator();
do {
//unresolved if
_local4 = (_local3.next() as TweenListObj);
if ((_local4.scope == _arg1)){
_local2 = (_local2 + AuxFunctions.getObjectLength(_local4.properties));
};
} while (true);
return (_local2);
}
public static function handleError(_arg1:TweenListObj, _arg2:Object, _arg3:String):void{
var _local5:* = null;
var _local6:* = null;
if (Std.bool(_arg1.onError)){
false;
};
if (false){
try {
_arg1.onError.apply(_arg1.scope, [_arg1.scope, _arg2]);
} catch(#InvalidMultinameIndex#) {
_local6 = !NULL!;
_local5 = _local6;
Log.trace("## [Tweener] Error:", {customParams:[_arg1.scope, "raised an error while executing the 'onError' handler. Original error:\n", _arg2.getStackTrace(), "\nonError error:", _local5.getStackTrace()], methodName:"handleError", className:"caurina.transitions.Tweener", lineNumber:993, fileName:"Tweener.hx"});
};
} else {
if (!(Std.bool(_arg1.onError))){
Log.trace("## [Tweener] Error: :", {customParams:[_arg1.scope, (((("raised an error while executing the'" + _arg3) as String) + "'handler. \n") as String), _arg2.getStackTrace()], methodName:"handleError", className:"caurina.transitions.Tweener", lineNumber:998, fileName:"Tweener.hx"});
};
};
}
public static function getVersion():String{
return ("HAXE FlASH9 1.26.62");
}
public static function debug_getList():String{
var _local5 = (null as TweenListObj);
var _local6:* = null;
var _local7:* = null;
var _local1 = ("" as String);
var _local2:int;
var _local4:* = Tweener._tweenList.iterator();
do {
//unresolved if
_local5 = (_local4.next() as TweenListObj);
_local1 = (((_local1 + (((("[" + _local2) as String) + "] ::\n") as String)) as String) as String);
_local6 = Reflect.fields(_local5.properties).iterator();
do {
//unresolved if
_local7 = _local6.next();
_local1 = (((_local1 + ((((((" " + _local7) + " -> ") as String) + Reflect.field(_local5.properties, _local7).valueComplete) + "\n") as String)) as String) as String);
} while (true);
_local2++;
} while (true);
return (_local1);
}
public static function debugTweenList():List{
return (Tweener._tweenList);
}
}
class IntIter {
public var min:int;
public var max:int;
public function IntIter(_arg1:int=undefined, _arg2:int=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
min = _arg1;
max = _arg2;
}
public function next():int{
var _local1:* = min;
min = (_local1 + 1);
return (_local1);
}
public function hasNext():Boolean{
return ((min < max));
}
}
class BossBSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function BossBSprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(28, 28, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(386, 130, 28, 28), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -14;
core.y = -14;
var _local2 = (new BitmapData(320, 64, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 224, 320, 128), new Point(0, 0));
equip = new MovieTile(_local2, 64, 64);
equip.x = -32;
equip.y = -32;
equipframes = equip.frames;
var _local3 = (new BitmapData(28, 28, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(386, 130, 28, 28), new Point(0, 0));
var _local4:int;
var _local5:int = 28;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 28;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -14;
inflictCore.y = -14;
var _local10 = (new BitmapData(320, 64, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 224, 320, 128), new Point(0, 0));
_local4 = 0;
_local5 = 320;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 128;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 64, 64);
inflictEquip.x = -32;
inflictEquip.y = -32;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function idle():void{
equip.goToFrame(0);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
class CollisionManager {
public static var gridSize:int;
public static var grids:Hash;
public static var gridNames:Array;
public static var comboCount:int;
public static var curHitTime:int;
public static var lastHitTime:int;
public static var hasShoutedCombo:Boolean;
public static var cGridCount:int;
public static var eGridCount:int;
public static var pGridCount:int;
public static var epGridCount:int;
public static var plGridCount:int;
public function CollisionManager():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function calculatePairwise():void{
}
public static function calculateGrids():void{
var _local5:* = null;
var _local6:int;
var _local7:int;
var _local8 = (null as Enemy);
var _local9 = (null as Projectile);
var _local10:* = null;
var _local11:Number;
var _local12:Number;
CollisionManager.curHitTime = (CollisionManager.curHitTime + 1);
CollisionManager.cGridCount = 0;
CollisionManager.eGridCount = 0;
CollisionManager.pGridCount = 0;
CollisionManager.epGridCount = 0;
CollisionManager.plGridCount = 0;
var _local1 = (ScreenManager.playScreen.player as Player);
var _local2 = (_local1.getHitboxBounds() as Rectangle);
var _local3:* = CollisionManager.getGridRegions(_local2);
CollisionManager.registerGridRegions(_local3, "player", _local1);
var _local4:int;
do {
//unresolved if
_local5 = CollisionManager.grids.get((CollisionManager.gridNames[_local4] as String));
CollisionManager.eGridCount = (CollisionManager.eGridCount + (_local5.enemies as Array).length);
CollisionManager.pGridCount = (CollisionManager.pGridCount + (_local5.projectiles as Array).length);
CollisionManager.epGridCount = (CollisionManager.epGridCount + (_local5.enemyProjectiles as Array).length);
CollisionManager.plGridCount = (CollisionManager.plGridCount + (!(((_local5.player as Player) == (null as Player)))) ? 1 : 0);
if (((_local5.enemies as Array).length > 0)){
false;
};
if (false){
CollisionManager.cGridCount = (CollisionManager.cGridCount + 1);
_local6 = 0;
_local7 = 0;
do {
//unresolved if
_local7 = 0;
do {
//unresolved if
_local8 = (((_local5.enemies as Array)[_local6] as Enemy) as Enemy);
_local9 = (((_local5.projectiles as Array)[_local7] as Projectile) as Projectile);
if (_local8.checkCollision(_local9.projectileSprite)){
false;
if (!(_local9.isFading)){
false;
if (!(_local9.isEnemy)){
false;
if (!(_local8.isInvincible)){
false;
};
};
};
};
if (false){
_local8.hitpoint = (_local8.hitpoint - _local9.damage);
if ((_local8.hitpoint <= 0)){
Profile.score = (Profile.score + _local8.worth);
if ((Profile.score > (Config.scoreToLifeThreshold * Profile.score4live))){
Profile.lives = (Profile.lives + 1);
Profile.score4live = (Profile.score4live + 1);
ScreenManager.playScreen.updateHUDLives();
};
ScreenManager.playScreen.calculateAddedTechPoints(_local8.worth);
ScreenManager.playScreen.updateHUDScore();
if ((CollisionManager.curHitTime <= (CollisionManager.lastHitTime + Config.comboCountDelay))){
false;
};
if (false){
CollisionManager.lastHitTime = CollisionManager.curHitTime;
CollisionManager.comboCount = (CollisionManager.comboCount + 1);
CollisionManager.hasShoutedCombo = false;
} else {
_local10 = 0;
CollisionManager.curHitTime = _local10;
CollisionManager.lastHitTime = _local10;
CollisionManager.comboCount = 0;
};
CollisionManager.unregisterGridRegions(_local8.grid, "enemy", _local8);
_local8.destroy();
MissionManager.currentMission.removeEnemy(_local8);
_local8 = ((null as Enemy) as Enemy);
} else {
_local8.inflictHit();
};
if (_local9.hitNDestroy){
if ((_local9.baseType == ProjectileBaseType.LIGHTNING)){
ProjectileManager.drawLightning(_local9);
};
CollisionManager.unregisterGridRegions(_local9.grid, "projectile", _local9);
ProjectileManager.removeProjectile(_local9);
_local9.destroy();
};
} else {
if (_local8.checkCollision(_local9.projectileSprite)){
false;
};
if (false){
_local8.shieldpoint = (_local8.shieldpoint - _local9.damage);
_local8.decreaseShield();
if (!((_local9.baseType == ProjectileBaseType.LIGHTNING))){
_local11 = ((((Math.random() * 90) - 45) * Math.PI) / 180);
_local12 = Math.atan2(_local9.vector.vy, _local9.vector.vx);
_local9.projectileSprite.rotation = (((_local12 + _local11) * 180) / Math.PI);
_local9.vector.vx = ((Math.cos((_local12 + _local11)) * _local9.speed) * -1);
_local9.vector.vy = ((Math.sin((_local12 + _local11)) * _local9.speed) * -1);
};
};
};
_local7++;
} while (true);
_local6++;
} while (true);
};
if (((_local5.enemyProjectiles as Array).length > 0)){
false;
};
if (false){
CollisionManager.cGridCount = (CollisionManager.cGridCount + 1);
_local6 = 0;
do {
//unresolved if
_local9 = (((_local5.enemyProjectiles as Array)[_local6] as Projectile) as Projectile);
if ((_local5.player as Player).checkCollision(_local9.projectileSprite)){
false;
if (!((_local5.player as Player).isHit)){
false;
};
};
if (false){
CollisionManager.unregisterGridRegions((_local5.player as Player).grid, "player", (_local5.player as Player));
(_local5.player as Player).destroy();
CollisionManager.unregisterGridRegions(_local9.grid, "enemyProjectile", _local9);
ProjectileManager.removeProjectile(_local9);
_local9.destroy(false);
};
_local6++;
} while (true);
};
if (((_local5.enemies as Array).length > 0)){
false;
};
if (false){
CollisionManager.cGridCount = (CollisionManager.cGridCount + 1);
_local6 = 0;
do {
//unresolved if
_local8 = (((_local5.enemies as Array)[_local6] as Enemy) as Enemy);
if (_local8.checkCollision((_local5.player as Player).getHitbox())){
false;
if (!(_local8.isGhosting)){
false;
if (!((_local5.player as Player).isHit)){
false;
};
};
};
if (false){
CollisionManager.unregisterGridRegions((_local5.player as Player).grid, "player", (_local5.player as Player));
(_local5.player as Player).destroy();
};
_local6++;
} while (true);
};
CollisionManager.cleanupGrids(_local5);
_local4++;
} while (true);
if ((CollisionManager.comboCount > 0)){
false;
};
if (false){
CollisionManager.hasShoutedCombo = true;
Profile.score = (Profile.score + (Config.bonusComboScore * CollisionManager.comboCount));
if ((Profile.score > (Config.scoreToLifeThreshold * Profile.score4live))){
Profile.lives = (Profile.lives + 1);
Profile.score4live = (Profile.score4live + 1);
ScreenManager.playScreen.updateHUDLives();
};
ScreenManager.playScreen.player.spawnComboParticle();
ScreenManager.playScreen.calculateAddedTechPoints(Config.bonusComboScore);
ScreenManager.playScreen.updateHUDScore();
};
}
public static function calculateBombRadius(_arg1:Point):void{
var _local3:int;
var _local4 = (null as Enemy);
var _local5 = (null as Point);
var _local2:* = Reflect.field(Config, (("bomb" + Profile.bomblvl) as String));
if ((MissionManager.currentMission.enemyList().length > 0)){
_local3 = 0;
do {
//unresolved if
_local4 = ((MissionManager.currentMission.enemyList()[_local3] as Enemy) as Enemy);
_local5 = (new Point(_local4.locX, _local4.locY) as Point);
if ((Point.distance(_arg1, _local5) <= _local2.radius)){
if (!(_local4.isGhosting)){
_local4.hitpoint = (_local4.hitpoint - _local2.damage);
if ((_local4.hitpoint <= 0)){
Profile.score = (Profile.score + _local4.worth);
if ((Profile.score > (Config.scoreToLifeThreshold * Profile.score4live))){
Profile.lives = (Profile.lives + 1);
Profile.score4live = (Profile.score4live + 1);
ScreenManager.playScreen.updateHUDLives();
};
ScreenManager.playScreen.calculateAddedTechPoints(_local4.worth);
ScreenManager.playScreen.updateHUDScore();
CollisionManager.unregisterGridRegions(_local4.grid, "enemy", _local4);
_local4.destroy();
MissionManager.currentMission.removeEnemy(_local4);
_local4 = ((null as Enemy) as Enemy);
} else {
_local4.inflictHit();
};
};
} else {
if ((Point.distance(_arg1, _local5) <= (_local2.radius + (_local2.radius * 0.1)))){
false;
};
if (false){
if (!(_local4.isGhosting)){
_local4.hitpoint = (_local4.hitpoint - Math.round((_local2.damage / 100)));
if ((_local4.hitpoint <= 0)){
Profile.score = (Profile.score + _local4.worth);
if ((Profile.score > (Config.scoreToLifeThreshold * Profile.score4live))){
Profile.lives = (Profile.lives + 1);
Profile.score4live = (Profile.score4live + 1);
ScreenManager.playScreen.updateHUDLives();
};
ScreenManager.playScreen.calculateAddedTechPoints(_local4.worth);
ScreenManager.playScreen.updateHUDScore();
CollisionManager.unregisterGridRegions(_local4.grid, "enemy", _local4);
_local4.destroy();
MissionManager.currentMission.removeEnemy(_local4);
_local4 = ((null as Enemy) as Enemy);
} else {
_local4.inflictHit();
};
};
};
};
_local3++;
} while (true);
};
}
public static function update():void{
CollisionManager.calculateGrids();
}
public static function setupGrids():void{
var _local4 = (null as String);
var _local5:* = null;
CollisionManager.grids = new Hash();
CollisionManager.gridNames = new Array();
CollisionManager.cGridCount = 0;
CollisionManager.eGridCount = 0;
CollisionManager.epGridCount = 0;
CollisionManager.plGridCount = 0;
CollisionManager.comboCount = 0;
CollisionManager.curHitTime = 0;
CollisionManager.lastHitTime = 0;
CollisionManager.hasShoutedCombo = false;
var _local1:int = Math.round((500 / CollisionManager.gridSize));
var _local2:int;
var _local3:int;
do {
//unresolved if
_local3 = 0;
do {
//unresolved if
_local4 = (Std.string(((((_local2 + "_") as String) + _local3) as String)) as String);
_local5 = {player:(null as Player), enemies:new Array(), enemyProjectiles:new Array(), projectiles:new Array()};
CollisionManager.grids.set(_local4, _local5);
CollisionManager.gridNames.push(_local4);
_local3++;
} while (true);
_local2++;
} while (true);
}
public static function resetGrids():void{
var _local2:* = null;
var _local1:int;
do {
//unresolved if
_local2 = CollisionManager.grids.get((CollisionManager.gridNames[_local1] as String));
CollisionManager.cleanupGrids(_local2);
CollisionManager.grids.set((CollisionManager.gridNames[_local1] as String), null);
CollisionManager.grids.remove((CollisionManager.gridNames[_local1] as String));
_local1++;
} while (true);
CollisionManager.gridNames = (null as Array);
CollisionManager.grids = (null as Hash);
CollisionManager.setupGrids();
}
public static function cleanupGrids(_arg1:Object):void{
var _local3 = (null as Enemy);
var _local5 = (null as Projectile);
var _local2:int;
do {
//unresolved if
_local3 = (((_arg1.enemies as Array)[_local2] as Enemy) as Enemy);
(_arg1.enemies as Array).remove(_local3);
_local3 = ((null as Enemy) as Enemy);
_local2++;
} while (true);
var _local4:int;
do {
//unresolved if
_local5 = (((_arg1.projectiles as Array)[_local4] as Projectile) as Projectile);
(_arg1.projectiles as Array).remove(_local5);
_local5 = ((null as Projectile) as Projectile);
_local4++;
} while (true);
var _local6:int;
do {
//unresolved if
_local5 = (((_arg1.enemyProjectiles as Array)[_local6] as Projectile) as Projectile);
(_arg1.enemyProjectiles as Array).remove(_local5);
_local5 = ((null as Projectile) as Projectile);
_local6++;
} while (true);
_arg1.player = (null as Player);
}
public static function registerGrid(_arg1:String, _arg2:String, _arg3:Object):void{
var _local4 = (null as String);
if (!((_arg1 == ""))){
_local4 = (_arg2 as String);
if (_local4 == "projectile"){
(CollisionManager.grids.get(_arg1).projectiles as Array).push(_arg3);
} else {
if (_local4 == "enemyProjectile"){
(CollisionManager.grids.get(_arg1).enemyProjectiles as Array).push(_arg3);
} else {
if (_local4 == "enemy"){
(CollisionManager.grids.get(_arg1).enemies as Array).push(_arg3);
} else {
if (_local4 == "player"){
CollisionManager.grids.get(_arg1).player = _arg3;
//unresolved jump
};
};
};
};
};
}
public static function registerGridRegions(_arg1:Object, _arg2:String, _arg3:Object):void{
CollisionManager.registerGrid((_arg1.center as String), _arg2, _arg3);
CollisionManager.registerGrid((_arg1.top as String), _arg2, _arg3);
CollisionManager.registerGrid((_arg1.bottom as String), _arg2, _arg3);
CollisionManager.registerGrid((_arg1.left as String), _arg2, _arg3);
CollisionManager.registerGrid((_arg1.right as String), _arg2, _arg3);
CollisionManager.registerGrid((_arg1.topleft as String), _arg2, _arg3);
CollisionManager.registerGrid((_arg1.topright as String), _arg2, _arg3);
CollisionManager.registerGrid((_arg1.bottomleft as String), _arg2, _arg3);
CollisionManager.registerGrid((_arg1.bottomright as String), _arg2, _arg3);
}
public static function unregisterGrid(_arg1:String, _arg2:String, _arg3:Object):void{
var _local4 = (null as String);
if (!((_arg1 == ""))){
_local4 = (_arg2 as String);
if (_local4 == "projectile"){
(CollisionManager.grids.get(_arg1).projectiles as Array).remove(_arg3);
} else {
if (_local4 == "enemyProjectile"){
(CollisionManager.grids.get(_arg1).enemyProjectiles as Array).remove(_arg3);
} else {
if (_local4 == "enemy"){
(CollisionManager.grids.get(_arg1).enemies as Array).remove(_arg3);
} else {
if (_local4 == "player"){
CollisionManager.grids.get(_arg1).player = (null as Player);
//unresolved jump
};
};
};
};
};
}
public static function unregisterGridRegions(_arg1:Object, _arg2:String, _arg3:Object):void{
CollisionManager.unregisterGrid((_arg1.center as String), _arg2, _arg3);
CollisionManager.unregisterGrid((_arg1.top as String), _arg2, _arg3);
CollisionManager.unregisterGrid((_arg1.bottom as String), _arg2, _arg3);
CollisionManager.unregisterGrid((_arg1.left as String), _arg2, _arg3);
CollisionManager.unregisterGrid((_arg1.right as String), _arg2, _arg3);
CollisionManager.unregisterGrid((_arg1.topleft as String), _arg2, _arg3);
CollisionManager.unregisterGrid((_arg1.topright as String), _arg2, _arg3);
CollisionManager.unregisterGrid((_arg1.bottomleft as String), _arg2, _arg3);
CollisionManager.unregisterGrid((_arg1.bottomright as String), _arg2, _arg3);
}
public static function getGridRegions(_arg1:Rectangle):Object{
var _local2:Boolean;
var _local3:Boolean;
var _local4:Boolean;
var _local5:Boolean;
var _local6:* = {bottomright:"", bottomleft:"", topright:"", topleft:"", left:"", right:"", bottom:"", top:"", center:""};
var _local7:int = Math.round((_arg1.x / CollisionManager.gridSize));
var _local8:int = Math.round((_arg1.y / CollisionManager.gridSize));
_local6.center = ((((_local7 + "_") as String) + _local8) as String);
var _local9:int = Math.round((_arg1.top / CollisionManager.gridSize));
var _local10:int = Math.round((_arg1.bottom / CollisionManager.gridSize));
if (!((_local9 == _local8))){
_local6.top = ((((_local7 + "_") as String) + _local9) as String);
_local2 = true;
};
if (!((_local10 == _local8))){
_local6.bottom = ((((_local7 + "_") as String) + _local10) as String);
_local3 = true;
};
var _local11:int = Math.round((_arg1.left / CollisionManager.gridSize));
var _local12:int = Math.round((_arg1.right / CollisionManager.gridSize));
if (!((_local11 == _local7))){
_local6.left = ((((_local11 + "_") as String) + _local8) as String);
_local4 = true;
};
if (!((_local12 == _local7))){
_local6.right = ((((_local12 + "_") as String) + _local8) as String);
_local5 = true;
};
if (_local2){
false;
};
if (false){
_local6.topleft = ((((_local11 + "_") as String) + _local9) as String);
};
if (_local2){
false;
};
if (false){
_local6.topright = ((((_local12 + "_") as String) + _local9) as String);
};
if (_local3){
false;
};
if (false){
_local6.bottomleft = ((((_local11 + "_") as String) + _local10) as String);
};
if (_local3){
false;
};
if (false){
_local6.bottomright = ((((_local12 + "_") as String) + _local10) as String);
};
return (_local6);
}
}
class KeyMouseManager {
public static var stage:Stage;
public static var upKeyRegisters:IntHash;
public static var downKeyRegisters:IntHash;
public static var clickMouseRegisters:List;
public static var upMouseRegisters:Object;
public static var downMouseRegisters:Object;
public static var moveMouseRegisters:Object;
public static var wheelMouseRegisters:Object;
public function KeyMouseManager():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function setupEvents():void{
KeyMouseManager.stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyMouseManager.onKeyDownHandler);
KeyMouseManager.stage.addEventListener(KeyboardEvent.KEY_UP, KeyMouseManager.onKeyUpHandler);
KeyMouseManager.stage.addEventListener(MouseEvent.CLICK, KeyMouseManager.onMouseClickHandler);
KeyMouseManager.stage.addEventListener(MouseEvent.MOUSE_DOWN, KeyMouseManager.onMouseDownHandler);
KeyMouseManager.stage.addEventListener(MouseEvent.MOUSE_UP, KeyMouseManager.onMouseUpHandler);
KeyMouseManager.stage.addEventListener(MouseEvent.MOUSE_MOVE, KeyMouseManager.onMouseMoveHandler);
KeyMouseManager.stage.addEventListener(MouseEvent.MOUSE_WHEEL, KeyMouseManager.onMouseWheelHandler);
}
public static function onKeyDownHandler(_arg1:KeyboardEvent):void{
var _local2 = (null as List);
var _local3:* = null;
var _local4:* = null;
if (KeyMouseManager.downKeyRegisters.exists(_arg1.keyCode)){
_local2 = (KeyMouseManager.downKeyRegisters.get(_arg1.keyCode) as List);
_local3 = _local2.iterator();
do {
//unresolved if
_local4 = _local3.next();
_local4();
} while (true);
};
}
public static function onKeyUpHandler(_arg1:KeyboardEvent):void{
var _local2 = (null as List);
var _local3:* = null;
var _local4:* = null;
if (KeyMouseManager.upKeyRegisters.exists(_arg1.keyCode)){
_local2 = (KeyMouseManager.upKeyRegisters.get(_arg1.keyCode) as List);
_local3 = _local2.iterator();
do {
//unresolved if
_local4 = _local3.next();
_local4();
} while (true);
};
}
public static function onMouseClickHandler(_arg1:MouseEvent):void{
var _local2:* = null;
var _local3:* = null;
if (!(KeyMouseManager.clickMouseRegisters.isEmpty())){
_local2 = KeyMouseManager.clickMouseRegisters.iterator();
do {
//unresolved if
_local3 = _local2.next();
_local3();
} while (true);
};
}
public static function onMouseDownHandler(_arg1:MouseEvent):void{
if (!((KeyMouseManager.downMouseRegisters == null))){
KeyMouseManager.downMouseRegisters();
};
}
public static function onMouseUpHandler(_arg1:MouseEvent):void{
if (!((KeyMouseManager.upMouseRegisters == null))){
KeyMouseManager.upMouseRegisters();
};
}
public static function onMouseMoveHandler(_arg1:MouseEvent):void{
if (!((KeyMouseManager.moveMouseRegisters == null))){
KeyMouseManager.moveMouseRegisters();
};
}
public static function onMouseWheelHandler(_arg1:MouseEvent):void{
if (!((KeyMouseManager.wheelMouseRegisters == null))){
KeyMouseManager.wheelMouseRegisters();
};
}
public static function registerDownKey(_arg1:int, _arg2:Object):void{
if (!(KeyMouseManager.downKeyRegisters.exists(_arg1))){
KeyMouseManager.downKeyRegisters.set(_arg1, new List());
};
var _local3 = (KeyMouseManager.downKeyRegisters.get(_arg1) as List);
_local3.add(_arg2);
}
public static function unregisterDownKey(_arg1:int, _arg2:Object):void{
var _local3 = (null as List);
if (KeyMouseManager.downKeyRegisters.exists(_arg1)){
_local3 = (KeyMouseManager.downKeyRegisters.get(_arg1) as List);
_local3.remove(_arg2);
if (_local3.isEmpty()){
KeyMouseManager.downKeyRegisters.remove(_arg1);
};
};
}
public static function registerUpKey(_arg1:int, _arg2:Object):void{
if (!(KeyMouseManager.upKeyRegisters.exists(_arg1))){
KeyMouseManager.upKeyRegisters.set(_arg1, new List());
};
var _local3 = (KeyMouseManager.upKeyRegisters.get(_arg1) as List);
_local3.add(_arg2);
}
public static function unregisterUpKey(_arg1:int, _arg2:Object):void{
var _local3 = (null as List);
if (KeyMouseManager.upKeyRegisters.exists(_arg1)){
_local3 = (KeyMouseManager.upKeyRegisters.get(_arg1) as List);
_local3.remove(_arg2);
if (_local3.isEmpty()){
KeyMouseManager.upKeyRegisters.remove(_arg1);
};
};
}
public static function registerClickMouse(_arg1:Object):void{
KeyMouseManager.clickMouseRegisters.add(_arg1);
}
public static function unregisterClickMouse(_arg1:Object):void{
KeyMouseManager.clickMouseRegisters.remove(_arg1);
}
public static function registerDownMouse(_arg1:Object):void{
KeyMouseManager.downMouseRegisters = _arg1;
}
public static function unregisterDownMouse():void{
KeyMouseManager.downMouseRegisters = null;
}
public static function registerUpMouse(_arg1:Object):void{
KeyMouseManager.upMouseRegisters = _arg1;
}
public static function unregisterUpMouse():void{
KeyMouseManager.upMouseRegisters = null;
}
public static function registerMoveMouse(_arg1:Object):void{
KeyMouseManager.moveMouseRegisters = _arg1;
}
public static function unregisterMoveMouse():void{
KeyMouseManager.moveMouseRegisters = null;
}
public static function registerWheelMouse(_arg1:Object):void{
KeyMouseManager.wheelMouseRegisters = _arg1;
}
public static function unregisterWheelMouse():void{
KeyMouseManager.wheelMouseRegisters = null;
}
public static function listKeyDownFuncs(_arg1:int):List{
return (KeyMouseManager.downKeyRegisters.get(_arg1));
}
}
class SpecialPropertySplitter {
public var splitValues:Object;
public var parameters:Array;
public function SpecialPropertySplitter(_arg1:Object=undefined, _arg2:Array=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
splitValues = _arg1;
}
public function toString():String{
var _local1 = ("" as String);
_local1 = (((_local1 + "[SpecialPropertySplitter ") as String) as String);
_local1 = (((_local1 + (("splitValues:" + Std.string(splitValues)) as String)) as String) as String);
_local1 = (((_local1 + ", ") as String) as String);
_local1 = (((_local1 + (("parameters:" + Std.string(parameters)) as String)) as String) as String);
_local1 = (((_local1 + "]") as String) as String);
return (_local1);
}
}
class Mission1 extends Mission {
public var level9:Object;
public var level8:Object;
public var level7:Object;
public var level6:Object;
public var level5:Object;
public var level4:Object;
public var level3:Object;
public var level2:Object;
public var level10:Object;
public var level1:Object;
public function Mission1():void{
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:Number;
var _local9:Number;
var _local10 = (null as Point);
if (Boot_BA08CD.skip_constructor){
return;
};
super();
integrityThreshold = 10;
regenIntegrityRate = 0.001;
damageIntegrityRate = 0.0005;
var _local1 = (new List() as List);
_local1.add({pos:new Point(250, 100), enemy:EnemyA});
_local1.add({pos:new Point(250, 400), enemy:EnemyA});
_local1.add({pos:new Point(100, 250), enemy:EnemyA});
_local1.add({pos:new Point(400, 250), enemy:EnemyA});
level1 = {pattern:_local1, delay:2500, id:1};
var _local2 = (new List() as List);
_local2.add({pos:new Point(250, 100), enemy:EnemyB});
_local2.add({pos:new Point(250, 400), enemy:EnemyB});
var _local3:int;
var _local4:int = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local2.add({pos:_local10, enemy:EnemyA});
} while (true);
level2 = {pattern:_local2, delay:2500, id:2};
var _local11 = (new List() as List);
_local11.add({pos:new Point(100, 150), enemy:EnemyB});
_local11.add({pos:new Point(100, 350), enemy:EnemyB});
_local11.add({pos:new Point(400, 150), enemy:EnemyB});
_local11.add({pos:new Point(400, 350), enemy:EnemyB});
_local11.add({pos:new Point(150, 100), enemy:EnemyA});
_local11.add({pos:new Point(150, 400), enemy:EnemyA});
_local11.add({pos:new Point(350, 100), enemy:EnemyA});
_local11.add({pos:new Point(350, 400), enemy:EnemyA});
level3 = {pattern:_local11, delay:2500, id:3};
var _local12 = (new List() as List);
_local3 = 0;
_local4 = 10;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local12.add({pos:_local10, enemy:EnemyB});
} while (true);
level4 = {pattern:_local12, delay:2500, id:4};
var _local13 = (new List() as List);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyA});
} while (true);
_local3 = 0;
_local4 = 8;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyB});
} while (true);
level5 = {pattern:_local13, delay:2500, id:5};
var _local14 = (new List() as List);
_local3 = 0;
_local4 = 2;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyA});
} while (true);
_local3 = 0;
_local4 = 2;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyB});
} while (true);
_local14.add({pos:new Point(100, 150), enemy:EnemyC});
_local14.add({pos:new Point(100, 350), enemy:EnemyC});
_local14.add({pos:new Point(400, 150), enemy:EnemyC});
_local14.add({pos:new Point(400, 350), enemy:EnemyC});
level6 = {pattern:_local14, delay:2500, id:6};
var _local15 = (new List() as List);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyA});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyB});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyC});
} while (true);
level7 = {pattern:_local15, delay:2500, id:7};
var _local16 = (new List() as List);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local16.add({pos:_local10, enemy:EnemyC});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local16.add({pos:_local10, enemy:EnemyB});
} while (true);
level8 = {pattern:_local16, delay:2500, id:8};
var _local17 = (new List() as List);
_local3 = 0;
_local4 = 10;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local17.add({pos:_local10, enemy:EnemyC});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local17.add({pos:_local10, enemy:EnemyB});
} while (true);
level9 = {pattern:_local17, delay:2500, id:9};
var _local18 = (new List() as List);
_local18.add({pos:new Point(150, 100), enemy:BossA});
_local18.add({pos:new Point(150, 400), enemy:BossA});
_local18.add({pos:new Point(350, 100), enemy:BossA});
_local18.add({pos:new Point(350, 400), enemy:BossA});
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local18.add({pos:_local10, enemy:EnemyA});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local18.add({pos:_local10, enemy:EnemyB});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local18.add({pos:_local10, enemy:EnemyC});
} while (true);
level10 = {pattern:_local18, delay:-1, id:10};
}
override public function prepareLevels():void{
levels.add(level1);
levels.add(level2);
levels.add(level3);
levels.add(level4);
levels.add(level5);
levels.add(level6);
levels.add(level7);
levels.add(level8);
levels.add(level9);
levels.add(level10);
var _local1 = (new Bitmap(Assets.objects.get("Background01")) as Bitmap);
ScreenManager.playScreen.setBackground(_local1);
}
}
class BossC extends Enemy {
public var spawnerSprite:BossCSprite;
public var spawnTime:int;
public var spawnEnemy:Object;
public var spawnCount:int;
public var currentSpawnTime:int;
public var curanimateque:int;
public var animatespeed:int;
public function BossC(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
spawnTime = Config.bossSpawner.spawnTime;
spawnCount = Config.bossSpawner.spawnCount;
spawnEnemy = Config.bossSpawner.spawnEnemy;
hitpoint = Config.bossSpawner.hitpoint;
worth = Config.bossSpawner.worth;
currentSpawnTime = 0;
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFF00);
_local4.graphics.drawRect(-14, -14, 28, 28);
hitbox = _local4;
hitbox.alpha = 0;
spawnerSprite = new BossCSprite();
inflictHitSprite.addChild(spawnerSprite.inflictGroup);
animatespeed = 10;
curanimateque = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
spawnerSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(spawnerSprite);
container.addChild(inflictHitSprite);
if ((_arg3.x == 0)){
false;
};
if (false){
container.x = ((Math.round(((Math.random() * boundary.width) - (container.width / 2))) + boundary.x) + (container.width / 2));
container.y = ((Math.round(((Math.random() * boundary.height) - (container.height / 2))) + boundary.y) + (container.height / 2));
} else {
container.x = _arg3.x;
container.y = _arg3.y;
};
displayParent.addChild(container);
}
override public function update():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:* = null;
var _local7:int;
var _local8 = (null as Enemy);
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
spawnerSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
spawnerSprite.alpha = 1;
};
} else {
if ((currentSpawnTime > spawnTime)){
currentSpawnTime = 0;
_local1 = 0;
_local2 = spawnCount;
do {
//unresolved if
_local3 = _local1;
_local1++;
_local4 = (container.x + (Math.cos((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local5 = (container.y + (Math.sin((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
if (Std.is(spawnEnemy, Array)){
_local6 = Reflect.empty();
_local7 = Math.round((Math.random() * spawnEnemy.length));
if (!((_local7 == spawnEnemy.length))){
_local6 = spawnEnemy[_local7];
};
_local8 = (Type.createInstance(Type.toClass(_local6), [displayParent, boundary, new Point(_local4, _local5)]) as Enemy);
MissionManager.currentMission.enemyList().push(_local8);
};
} while (true);
spawnerSprite.spawning(true);
} else {
if ((currentSpawnTime == 0)){
spawnerSprite.spawning(false);
};
currentSpawnTime = (currentSpawnTime + 1);
};
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
spawnerSprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.bossCScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class Label {
public var tf:TextFormat;
public var t:TextField;
public var renderHTML:Boolean;
public var labelStyle:Object;
public function Label(_arg1:String=undefined, _arg2:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
tf = new TextFormat();
t = new TextField();
t.type = TextFieldType.DYNAMIC;
_arg2 = ((_arg2 == null)) ? {color:0} : _arg2;
setStyle(_arg2);
updateLabel(_arg1);
}
public function updateLabel(_arg1:String, _arg2:Object=undefined, _arg3:Object=undefined):void{
var _local4:Boolean = ((_arg2 == null)) ? false : _arg2;
var _local5:Boolean = ((_arg3 == null)) ? false : true;
if (_local5){
setStyle(_arg3);
};
if (renderHTML){
t.htmlText = (_local4) ? Std.string(((t.htmlText + _arg1) as String)) : _arg1;
} else {
t.text = (_local4) ? Std.string(((t.text + _arg1) as String)) : _arg1;
};
}
public function setStyle(_arg1:Object):void{
labelStyle = _arg1;
var _local2 = ((Reflect.hasField(labelStyle, "font")) ? (Reflect.field(labelStyle, "font") as String) : "Verdana" as String);
var _local3:int = (Reflect.hasField(labelStyle, "color")) ? Reflect.field(labelStyle, "color") : 0;
var _local4:int = (Reflect.hasField(labelStyle, "size")) ? Reflect.field(labelStyle, "size") : 10;
var _local5:Boolean = (Reflect.hasField(labelStyle, "background")) ? Reflect.field(labelStyle, "background") : false;
var _local6:int = (Reflect.hasField(labelStyle, "backgroundColor")) ? Reflect.field(labelStyle, "backgroundColor") : 0xFFFFFF;
var _local7:Number = (Reflect.hasField(labelStyle, "width")) ? Reflect.field(labelStyle, "width") : 300;
var _local8:Number = (Reflect.hasField(labelStyle, "height")) ? Reflect.field(labelStyle, "height") : 50;
var _local9:Boolean = (Reflect.hasField(labelStyle, "embedFonts")) ? Reflect.field(labelStyle, "embedFonts") : false;
var _local10:Boolean = (Reflect.hasField(labelStyle, "wordwrap")) ? Reflect.field(labelStyle, "wordwrap") : true;
var _local11:Boolean = (Reflect.hasField(labelStyle, "selectable")) ? Reflect.field(labelStyle, "selectable") : true;
var _local12:Boolean = (Reflect.hasField(labelStyle, "multiline")) ? Reflect.field(labelStyle, "multiline") : true;
var _local13 = ((Reflect.hasField(labelStyle, "autosize")) ? (Reflect.field(labelStyle, "autosize") as String) : TextFieldAutoSize.NONE as String);
var _local14 = ((Reflect.hasField(labelStyle, "align")) ? (Reflect.field(labelStyle, "align") as String) : TextFormatAlign.LEFT as String);
var _local15:Boolean = (Reflect.hasField(labelStyle, "border")) ? Reflect.field(labelStyle, "border") : false;
var _local16:int = (Reflect.hasField(labelStyle, "borderColor")) ? Reflect.field(labelStyle, "borderColor") : 0;
var _local17:Boolean = (Reflect.hasField(labelStyle, "bold")) ? Reflect.field(labelStyle, "bold") : false;
renderHTML = (Reflect.hasField(labelStyle, "html")) ? Reflect.field(labelStyle, "html") : true;
tf.font = _local2;
tf.color = _local3;
tf.size = _local4;
tf.align = _local14;
tf.bold = _local17;
t.defaultTextFormat = tf;
t.embedFonts = _local9;
t.gridFitType = GridFitType.PIXEL;
t.background = _local5;
t.backgroundColor = _local6;
t.width = _local7;
t.height = _local8;
t.selectable = _local11;
t.multiline = _local12;
t.autoSize = _local13;
t.border = _local15;
t.borderColor = _local16;
t.wordWrap = _local10;
}
public function getTextField():TextField{
return (t);
}
}
class ProjectileJ extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileJ(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
speed = 12;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
maxDistance = 300;
fadeSteps = 5;
useTarget = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 6, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 12, 6), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -3;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectileJBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class ProjectileI extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileI(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
speed = 10;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
useTarget = true;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 4, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 12, 4), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -2;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectileGBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class Assets {
public static var objects:Hash;
public static var classes:Hash;
public function Assets():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
}
class Input {
public var tf:TextFormat;
public var t:TextField;
public var labelStyle:Object;
public function Input(_arg1:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
tf = new TextFormat();
t = new TextField();
t.autoSize = TextFieldAutoSize.NONE;
t.type = TextFieldType.INPUT;
setStyle(_arg1);
update("");
}
public function update(_arg1:String=undefined):void{
if (!((_arg1 == (null as String)))){
t.text = _arg1;
};
}
public function setStyle(_arg1:Object):void{
labelStyle = _arg1;
var _local2 = ((Reflect.hasField(labelStyle, "font")) ? (Reflect.field(labelStyle, "font") as String) : "Verdana" as String);
var _local3:int = (Reflect.hasField(labelStyle, "color")) ? Reflect.field(labelStyle, "color") : 0;
var _local4:int = (Reflect.hasField(labelStyle, "size")) ? Reflect.field(labelStyle, "size") : 10;
var _local5:Boolean = (Reflect.hasField(labelStyle, "background")) ? Reflect.field(labelStyle, "background") : false;
var _local6:int = (Reflect.hasField(labelStyle, "backgroundColor")) ? Reflect.field(labelStyle, "backgroundColor") : 0xFFFFFF;
var _local7:Number = (Reflect.hasField(labelStyle, "width")) ? Reflect.field(labelStyle, "width") : 300;
var _local8:Number = (Reflect.hasField(labelStyle, "height")) ? Reflect.field(labelStyle, "height") : 50;
var _local9:Boolean = (Reflect.hasField(labelStyle, "embedFonts")) ? Reflect.field(labelStyle, "embedFonts") : false;
var _local10:Boolean = (Reflect.hasField(labelStyle, "selectable")) ? Reflect.field(labelStyle, "selectable") : true;
var _local11:Boolean = (Reflect.hasField(labelStyle, "password")) ? Reflect.field(labelStyle, "password") : false;
var _local12:Boolean = (Reflect.hasField(labelStyle, "multiline")) ? Reflect.field(labelStyle, "multiline") : false;
var _local13:int = (Reflect.hasField(labelStyle, "maxchars")) ? Reflect.field(labelStyle, "maxchars") : 30;
var _local14:Boolean = (Reflect.hasField(labelStyle, "border")) ? Reflect.field(labelStyle, "border") : false;
var _local15:int = (Reflect.hasField(labelStyle, "borderColor")) ? Reflect.field(labelStyle, "borderColor") : 0;
var _local16 = ((Reflect.hasField(labelStyle, "align")) ? (Reflect.field(labelStyle, "align") as String) : TextFormatAlign.LEFT as String);
var _local17 = ((Reflect.hasField(labelStyle, "restrict")) ? (Reflect.field(labelStyle, "restrict") as String) : (null as String) as String);
tf.font = _local2;
tf.color = _local3;
tf.size = _local4;
tf.align = _local16;
t.embedFonts = _local9;
t.gridFitType = GridFitType.PIXEL;
t.background = _local5;
t.backgroundColor = _local6;
t.width = _local7;
t.height = _local8;
t.selectable = _local10;
t.displayAsPassword = _local11;
t.tabEnabled = true;
t.border = _local14;
t.borderColor = _local15;
t.mouseEnabled = true;
t.alwaysShowSelection = true;
t.multiline = _local12;
t.maxChars = _local13;
t.restrict = _local17;
t.defaultTextFormat = tf;
}
public function getTextField():TextField{
return (t);
}
}
class SpawnerB extends Enemy {
public var spawnerSprite:SpawnerSprite;
public var spawnTime:int;
public var spawnEnemy:Object;
public var spawnCount:int;
public var currentSpawnTime:int;
public var curanimateque:int;
public var animatespeed:int;
public function SpawnerB(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
spawnTime = Config.spawnerB.spawnTime;
spawnCount = Config.spawnerB.spawnCount;
spawnEnemy = Config.spawnerB.spawnEnemy;
hitpoint = Config.spawnerB.hitpoint;
worth = Config.spawnerB.worth;
currentSpawnTime = 0;
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFF00);
_local4.graphics.drawRect(0, 0, 16, 16);
hitbox = _local4;
hitbox.x = (-(hitbox.width) / 2);
hitbox.y = (-(hitbox.height) / 2);
hitbox.alpha = 0;
spawnerSprite = new SpawnerSprite();
inflictHitSprite.addChild(spawnerSprite.inflictGroup);
animatespeed = 10;
curanimateque = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
spawnerSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(spawnerSprite);
container.addChild(inflictHitSprite);
if ((_arg3.x == 0)){
false;
};
if (false){
container.x = ((Math.round(((Math.random() * boundary.width) - (container.width / 2))) + boundary.x) + (container.width / 2));
container.y = ((Math.round(((Math.random() * boundary.height) - (container.height / 2))) + boundary.y) + (container.height / 2));
} else {
container.x = _arg3.x;
container.y = _arg3.y;
};
displayParent.addChild(container);
}
override public function update():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6 = (null as Enemy);
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
spawnerSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
spawnerSprite.alpha = 1;
};
} else {
if ((currentSpawnTime > spawnTime)){
currentSpawnTime = 0;
_local1 = 0;
_local2 = spawnCount;
do {
//unresolved if
_local3 = _local1;
_local1++;
_local4 = (container.x + (Math.cos((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local5 = (container.y + (Math.sin((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local6 = (Type.createInstance(Type.toClass(spawnEnemy), [displayParent, boundary, new Point(_local4, _local5)]) as Enemy);
MissionManager.currentMission.enemyList().push(_local6);
} while (true);
spawnerSprite.spawning(true);
} else {
if ((currentSpawnTime == 0)){
spawnerSprite.spawning(false);
};
currentSpawnTime = (currentSpawnTime + 1);
};
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
spawnerSprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.spawnerScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class InstructionsScreen extends Screen {
public var prevScreen:String;
public var pages:Label;
public var page3:Sprite;
public var page2:Sprite;
public var page1:Sprite;
public var openpage3:ButtonTile;
public var openpage2:ButtonTile;
public var openpage1:ButtonTile;
public var navigation:Sprite;
public var dialogBackground:Sprite;
public var background:Sprite;
public var backToMenuButton:ButtonTile;
public function InstructionsScreen():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new TitleKroeger() as Font);
var _local2:* = {align:TextFormatAlign.CENTER, height:9, width:48, selectable:false, embedFonts:true, color:0xFFFFFF, size:8, font:_local1.fontName};
pages = new Label("PAGES:", _local2);
background = new Sprite();
background.addChild(new Bitmap(Assets.objects.get("Background00")));
dialogBackground = new Sprite();
dialogBackground.addChild(new Bitmap(Assets.objects.get("InstructionsDialog")));
page1 = new Sprite();
page1.addChild(new Bitmap(Assets.objects.get("ControlInstructions")));
page2 = new Sprite();
page2.addChild(new Bitmap(Assets.objects.get("TechUIInstructions")));
page3 = new Sprite();
page3.addChild(new Bitmap(Assets.objects.get("HudBarsInstructions")));
var _local3 = (new BitmapData(149, 120, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(179, 384, 149, 120), new Point(0, 0));
backToMenuButton = new ButtonTile(_local3, 149, 30);
var _local4 = (new BitmapData(9, 45, true) as BitmapData);
_local4.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(105, 384, 9, 45), new Point(0, 0));
openpage1 = new ButtonTile(_local4, 9, 9, true);
var _local5 = (new BitmapData(9, 45, true) as BitmapData);
_local5.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(114, 384, 9, 45), new Point(0, 0));
openpage2 = new ButtonTile(_local5, 9, 9, true);
var _local6 = (new BitmapData(9, 45, true) as BitmapData);
_local6.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(123, 384, 9, 45), new Point(0, 0));
openpage3 = new ButtonTile(_local6, 9, 9, true);
navigation = new Sprite();
dialogBackground.x = ((500 - dialogBackground.width) / 2);
dialogBackground.y = ((500 - dialogBackground.height) / 2);
openpage1.x = pages.getTextField().width;
openpage2.x = ((openpage1.x + openpage1.width) + 3);
openpage3.x = ((openpage2.x + openpage2.width) + 3);
var _local7:* = 3;
openpage3.y = _local7;
openpage2.y = _local7;
openpage1.y = _local7;
openpage1.setSelected();
navigation.x = ((dialogBackground.width - navigation.width) - 97);
navigation.y = 16;
page2.alpha = 0;
page3.alpha = 0;
backToMenuButton.x = ((500 - backToMenuButton.width) / 2);
backToMenuButton.y = 450;
navigation.addChild(openpage1);
navigation.addChild(openpage2);
navigation.addChild(openpage3);
navigation.addChild(pages.getTextField());
dialogBackground.addChild(page1);
dialogBackground.addChild(page2);
dialogBackground.addChild(page3);
dialogBackground.addChild(navigation);
container.addChild(background);
container.addChild(dialogBackground);
container.addChild(backToMenuButton);
backToMenuButton.click = onBackToMenuClick;
openpage1.click = onOpenPage1Click;
openpage2.click = onOpenPage2Click;
openpage3.click = onOpenPage3Click;
}
public function onOpenPage3Click():void{
openpage3.setSelected();
openpage2.setUnselected();
openpage1.setUnselected();
Tweener.addTween(page3, {transition:"Linear", time:0.5, alpha:1});
Tweener.addTween(page2, {transition:"Linear", time:0.5, alpha:0});
Tweener.addTween(page1, {transition:"Linear", time:0.5, alpha:0});
}
public function onOpenPage2Click():void{
openpage3.setUnselected();
openpage2.setSelected();
openpage1.setUnselected();
Tweener.addTween(page3, {transition:"Linear", time:0.5, alpha:0});
Tweener.addTween(page2, {transition:"Linear", time:0.5, alpha:1});
Tweener.addTween(page1, {transition:"Linear", time:0.5, alpha:0});
}
public function onOpenPage1Click():void{
openpage3.setUnselected();
openpage2.setUnselected();
openpage1.setSelected();
Tweener.addTween(page3, {transition:"Linear", time:0.5, alpha:0});
Tweener.addTween(page2, {transition:"Linear", time:0.5, alpha:0});
Tweener.addTween(page1, {transition:"Linear", time:0.5, alpha:1});
}
public function onBackToMenuClick():void{
var _local1 = (null as String);
if (!((prevScreen == ""))){
ScreenManager.showScreen(prevScreen);
_local1 = (prevScreen as String);
if (_local1 == "playresume"){
ScreenManager.showDialog("menuNoInit");
//unresolved jump
};
} else {
ScreenManager.showScreen("title");
};
onOpenPage1Click();
}
}
class EnemyGSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function EnemyGSprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(14, 14, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -7;
core.y = -7;
var _local2 = (new BitmapData(0x0100, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(192, 64, 0x0100, 32), new Point(0, 0));
equip = new MovieTile(_local2, 32, 32);
equip.x = -16;
equip.y = -16;
equipframes = equip.frames;
var _local3 = (new BitmapData(14, 14, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
var _local4:int;
var _local5:int = 14;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 14;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -7;
inflictCore.y = -7;
var _local10 = (new BitmapData(0x0100, 32, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(192, 64, 0x0100, 32), new Point(0, 0));
_local4 = 0;
_local5 = 192;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 32;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 32, 32);
inflictEquip.x = -16;
inflictEquip.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function idle():void{
equip.goToFrame(0);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
class SoundManager {
public static var ambientChannel:SoundChannel;
public function SoundManager():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function playAmbient(_arg1:String):void{
var _local3 = (null as Sound);
if (SoundManager.isAmbientPlaying()){
SoundManager.ambientChannel.stop();
SoundManager.ambientChannel = (null as SoundChannel);
};
var _local2 = (_arg1 as String);
if (_local2 == "mainmenu"){
_local3 = (Type.createInstance(Assets.classes.get("TitleAmbient"), []) as Sound);
SoundManager.ambientChannel = _local3.play(0, 10000, new SoundTransform(Config.ambientVolume));
} else {
if (_local2 == "mission"){
_local3 = (Type.createInstance(Assets.classes.get("PlayTrack"), []) as Sound);
SoundManager.ambientChannel = _local3.play(0, 10000, new SoundTransform(Config.ambientVolume));
//unresolved jump
};
};
}
public static function isAmbientPlaying():Boolean{
var _local1:Boolean;
if (!((SoundManager.ambientChannel == (null as SoundChannel)))){
_local1 = true;
};
return (_local1);
}
public static function stopAmbient():void{
if (SoundManager.isAmbientPlaying()){
SoundManager.ambientChannel.stop();
SoundManager.ambientChannel = (null as SoundChannel);
};
}
public static function playSFX(_arg1:String):void{
var _local2 = (null as Sound);
var _local3 = (null as SoundChannel);
if (!!((_arg1 == ""))){
true;
};
if (true){
_local2 = (Type.createInstance(Assets.classes.get(_arg1), []) as Sound);
_local3 = (_local2.play(0, 1, new SoundTransform(Config.sfxVolume)) as SoundChannel);
_local3.addEventListener(Event.SOUND_COMPLETE, SoundManager.stopSFXChannelEvent);
};
}
public static function stopSFX(_arg1:SoundChannel):void{
_arg1.stop();
if (_arg1.hasEventListener(Event.SOUND_COMPLETE)){
_arg1.removeEventListener(Event.SOUND_COMPLETE, SoundManager.stopSFXChannelEvent);
};
_arg1 = ((null as SoundChannel) as SoundChannel);
}
public static function stopSFXChannelEvent(_arg1:Event):void{
SoundManager.stopSFX(_arg1.currentTarget);
}
}
class Trace {
public static var container:Sprite;
public static var panel:Sprite;
public static var textfield:TextField;
public static var textformat:TextFormat;
public static var watcherContainer:Sprite;
public static var scroller:Sprite;
public static var scrollbar:Sprite;
public static var bg:Sprite;
public static var fullscrbutton:SimpleButton;
public static var hidebutton:SimpleButton;
public static var showbutton:SimpleButton;
public static var margin:int;
public function Trace():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function use(_arg1:Sprite=undefined):void{
var _local3:* = null;
var _local2 = (((_arg1 == (null as Sprite))) ? (Lib.current as Sprite) : _arg1 as Sprite);
Trace.margin = 5;
Trace.container = ((Trace.container == (null as Sprite))) ? new Sprite() : Trace.container;
if (_local2.contains(Trace.container)){
_local2.swapChildren(Trace.container, _local2.getChildAt((_local2.numChildren - 1)));
} else {
Trace.panel = new Sprite();
Trace.bg = new Sprite();
Trace.bg.graphics.beginFill(0, 0.5);
Trace.bg.graphics.drawRoundRect(Trace.margin, Trace.margin, (Lib.current.stage.stageWidth - (Trace.margin * 2)), ((Lib.current.stage.stageHeight / 2) - (Trace.margin * 2)), 7, 7);
_local3 = 0;
Trace.bg.y = _local3;
Trace.bg.x = _local3;
Trace.textformat = new TextFormat("arial", 10, 0xFFFFFF, null, null, null, "", "", "left", 5, 5, null, null);
Trace.buildHideButton();
Trace.buildShowButton();
Trace.hidebutton.x = (Trace.margin * 2);
Trace.hidebutton.y = (((Trace.bg.height + Trace.bg.y) - Trace.hidebutton.height) - Trace.margin);
Trace.showbutton.x = 0;
Trace.showbutton.y = 0;
Trace.textfield = new TextField();
Trace.textfield.type = TextFieldType.DYNAMIC;
Trace.textfield.selectable = true;
Trace.textfield.wordWrap = true;
Trace.textfield.multiline = true;
Trace.textfield.width = Trace.bg.width;
Trace.textfield.height = ((Trace.bg.height - Trace.hidebutton.height) - Trace.margin);
Trace.textfield.defaultTextFormat = Trace.textformat;
Trace.textfield.htmlText = "";
_local3 = Trace.margin;
Trace.textfield.y = _local3;
Trace.textfield.x = _local3;
Trace.panel.addChild(Trace.bg);
Trace.panel.addChild(Trace.textfield);
Trace.panel.addChild(Trace.hidebutton);
Trace.panel.visible = false;
Trace.watcherContainer = new Sprite();
Trace.watcherContainer.x = (Trace.showbutton.width + Trace.margin);
Trace.container.addChild(Trace.panel);
Trace.container.addChild(Trace.showbutton);
Trace.container.addChild(Trace.watcherContainer);
_local2.addChild(Trace.container);
Trace.hidebutton.addEventListener(MouseEvent.CLICK, Trace.hidePanel);
Trace.showbutton.addEventListener(MouseEvent.CLICK, Trace.showPanel);
Log.trace = Trace.doTrace;
};
}
public static function buildHideButton():void{
var _local1 = (new TextField() as TextField);
_local1.defaultTextFormat = Trace.textformat;
_local1.type = TextFieldType.DYNAMIC;
_local1.selectable = false;
_local1.autoSize = TextFieldAutoSize.LEFT;
_local1.border = true;
_local1.borderColor = -1;
_local1.background = true;
_local1.backgroundColor = 0;
_local1.text = "hide";
var _local2 = (new TextField() as TextField);
_local2.defaultTextFormat = Trace.textformat;
_local2.type = TextFieldType.DYNAMIC;
_local2.selectable = false;
_local2.autoSize = TextFieldAutoSize.LEFT;
_local2.border = true;
_local2.borderColor = -16711936;
_local1.background = true;
_local1.backgroundColor = 0;
_local2.text = "hide";
var _local3 = (new TextField() as TextField);
_local3.defaultTextFormat = Trace.textformat;
_local3.type = TextFieldType.DYNAMIC;
_local3.selectable = false;
_local3.autoSize = TextFieldAutoSize.LEFT;
_local3.border = true;
_local3.borderColor = -256;
_local1.background = true;
_local1.backgroundColor = 0;
_local3.text = "hide";
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0);
_local4.graphics.drawRect(0, 0, _local1.width, _local1.height);
Trace.hidebutton = new SimpleButton();
Trace.hidebutton.upState = _local1;
Trace.hidebutton.downState = _local2;
Trace.hidebutton.overState = _local3;
Trace.hidebutton.hitTestState = _local4;
}
public static function buildShowButton():void{
var _local1 = (new TextField() as TextField);
_local1.defaultTextFormat = Trace.textformat;
_local1.type = TextFieldType.DYNAMIC;
_local1.selectable = false;
_local1.autoSize = TextFieldAutoSize.LEFT;
_local1.border = true;
_local1.borderColor = -1;
_local1.background = true;
_local1.backgroundColor = 0;
_local1.text = "show";
var _local2 = (new TextField() as TextField);
_local2.type = TextFieldType.DYNAMIC;
_local2.defaultTextFormat = Trace.textformat;
_local2.selectable = false;
_local2.autoSize = TextFieldAutoSize.LEFT;
_local2.border = true;
_local2.borderColor = -16711936;
_local1.background = true;
_local1.backgroundColor = 0;
_local2.text = "show";
var _local3 = (new TextField() as TextField);
_local3.defaultTextFormat = Trace.textformat;
_local3.type = TextFieldType.DYNAMIC;
_local3.selectable = false;
_local3.autoSize = TextFieldAutoSize.LEFT;
_local3.border = true;
_local3.borderColor = -256;
_local1.background = true;
_local1.backgroundColor = 0;
_local3.text = "show";
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0);
_local4.graphics.drawRect(0, 0, _local1.width, _local1.height);
Trace.showbutton = new SimpleButton();
Trace.showbutton.upState = _local1;
Trace.showbutton.downState = _local2;
Trace.showbutton.overState = _local3;
Trace.showbutton.hitTestState = _local4;
}
public static function toggleVisible(_arg1:Object=undefined):void{
if ((Trace.panel.visible == true)){
Trace.panel.visible = false;
} else {
Trace.panel.visible = true;
};
if (!((_arg1 == null))){
Trace.panel.visible = _arg1;
};
Trace.showbutton.visible = !(Trace.panel.visible);
Trace.watcherContainer.visible = Trace.showbutton.visible;
}
public static function hidePanel(_arg1:MouseEvent):void{
Trace.panel.visible = false;
Trace.showbutton.visible = !(Trace.panel.visible);
Trace.watcherContainer.visible = Trace.showbutton.visible;
}
public static function showPanel(_arg1:MouseEvent):void{
Trace.panel.visible = true;
Trace.showbutton.visible = !(Trace.panel.visible);
Trace.watcherContainer.visible = Trace.showbutton.visible;
}
public static function doTrace(_arg1:Object, _arg2:Object=undefined):void{
var _local3:Boolean = (Trace.textfield.scrollV == Trace.textfield.maxScrollV);
Trace.textfield.htmlText = ((Trace.textfield.htmlText + (((((((((((("<b>" + (_arg2.fileName as String)) as String) + "(") as String) + _arg2.lineNumber) as String) + "):</b> ") as String) + Std.string(_arg1)) as String) + "<br>") as String)) as String);
if (_local3){
Trace.textfield.scrollV = Trace.textfield.maxScrollV;
};
Trace.toggleVisible(true);
}
public static function addToWatcher(_arg1:DisplayObject):void{
if ((Trace.watcherContainer.numChildren < 1)){
Trace.watcherContainer.addChild(_arg1);
};
}
public static function removeFromWatcher():void{
Trace.watcherContainer.removeChildAt(0);
}
}
class SpawnerSprite extends Sprite {
public var spawnCore:Bitmap;
public var inflictGroup:Sprite;
public var inflictCore:Bitmap;
public var equipframes:int;
public var core:MovieTile;
public var container:Sprite;
public function SpawnerSprite():void{
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(192, 32, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(32, 128, 192, 32), new Point(0, 0));
core = new MovieTile(_local1, 32, 32);
core.x = -16;
core.y = -16;
var _local2 = (new BitmapData(32, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 128, 32, 32), new Point(0, 0));
var _local3:int;
var _local4:int = 32;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 0;
_local7 = 32;
do {
//unresolved if
_local8 = _local6;
_local6++;
if ((_local2.getPixel32(_local5, _local8) > 0)){
_local2.setPixel32(_local5, _local8, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local2);
inflictCore.x = -16;
inflictCore.y = -16;
var _local9 = (new BitmapData(32, 32, true) as BitmapData);
_local9.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 128, 32, 32), new Point(0, 0));
spawnCore = new Bitmap(_local9);
spawnCore.x = -16;
spawnCore.y = -16;
spawnCore.visible = false;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(core);
container.addChild(spawnCore);
addChild(container);
}
public function spawning(_arg1:Boolean):void{
spawnCore.visible = _arg1;
}
public function animate():void{
core.nextFrame();
}
}
class SpecialPropertyModifier {
public var modifyValues:Object;
public var getValue:Object;
public function SpecialPropertyModifier(_arg1:Object=undefined, _arg2:Object=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
modifyValues = _arg1;
getValue = _arg2;
}
public function toString():String{
var _local1 = ("" as String);
_local1 = (((_local1 + "[SpecialPropertyModifier ") as String) as String);
_local1 = (((_local1 + (("modifyValues:" + Std.string(modifyValues)) as String)) as String) as String);
_local1 = (((_local1 + ", ") as String) as String);
_local1 = (((_local1 + (("getValue:" + Std.string(getValue)) as String)) as String) as String);
_local1 = (((_local1 + "]") as String) as String);
return (_local1);
}
}
class Type {
public function Type():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function toEnum(_arg1:Object):Class{
var _local3:* = null;
var _local4:* = null;
try {
if (!(_arg1.__isenum)){
return ((null as Class));
};
return (_arg1);
} catch(#InvalidMultinameIndex#) {
_local4 = !NULL!;
_local3 = _local4;
};
return ((null as Class));
}
public static function toClass(_arg1:Object):Class{
var _local3:* = null;
var _local4:* = null;
try {
if (!(_arg1.hasOwnProperty("prototype"))){
return ((null as Class));
};
return (_arg1);
} catch(#InvalidMultinameIndex#) {
_local4 = !NULL!;
_local3 = _local4;
};
return ((null as Class));
}
public static function getClass(_arg1:Object):Class{
var _local2 = (getQualifiedClassName(_arg1) as String);
if (!(_local2 == "null")){
true;
if (!(_local2 == "Object")){
true;
if (!(_local2 == "int")){
true;
if (!(_local2 == "Number")){
true;
};
};
};
};
if (true){
return ((null as Class));
};
if (_arg1.hasOwnProperty("prototype")){
return ((null as Class));
};
var _local3:* = (getDefinitionByName(_local2) as Class);
if (_local3.__isenum){
return ((null as Class));
};
return (_local3);
}
public static function getEnum(_arg1:Object):Class{
var _local2 = (getQualifiedClassName(_arg1) as String);
if (!(_local2 == "null")){
true;
};
if (true){
return ((null as Class));
};
if (_arg1.hasOwnProperty("prototype")){
return ((null as Class));
};
var _local3:* = (getDefinitionByName(_local2) as Class);
if (!(_local3.__isenum)){
return ((null as Class));
};
return (_local3);
}
public static function getSuperClass(_arg1:Class):Class{
var _local2 = (getQualifiedSuperclassName(_arg1) as String);
if ((_local2 == "Object")){
return ((null as Class));
};
return ((getDefinitionByName(_local2) as Class));
}
public static function getClassName(_arg1:Class):String{
if ((_arg1 == (null as Class))){
return ((null as String));
};
var _local2 = (getQualifiedClassName(_arg1) as String);
return (_local2.split("::").join("."));
}
public static function getEnumName(_arg1:Class):String{
var _local2 = (getQualifiedClassName(_arg1) as String);
return (_local2);
}
public static function resolveClass(_arg1:String):Class{
var _local3 = (null as Class);
var _local4:* = null;
var _local5:* = null;
try {
_local3 = ((getDefinitionByName(_arg1) as Class) as Class);
if (_local3.__isenum){
return ((null as Class));
};
return (_local3);
} catch(#InvalidMultinameIndex#) {
_local5 = !NULL!;
_local4 = _local5;
return ((null as Class));
};
if (!(_local3 == (null as Class))){
true;
};
if (true){
return ((null as Class));
} else {
null;
};
return (_local3);
}
public static function resolveEnum(_arg1:String):Class{
var _local3:* = null;
var _local4:* = null;
var _local5:* = null;
try {
_local3 = getDefinitionByName(_arg1);
if (!(_local3.__isenum)){
return ((null as Class));
};
return (_local3);
} catch(#InvalidMultinameIndex#) {
_local5 = !NULL!;
_local4 = _local5;
return ((null as Class));
};
if (!(_local3 == null)){
true;
};
if (true){
return ((null as Class));
} else {
null;
};
return (_local3);
}
public static function createInstance(_arg1:Class, _arg2:Array):Object{
var _local3:int = _arg2.length;
if (_local3 == 0){
} else {
if (_local3 == 1){
} else {
if (_local3 == 2){
} else {
if (_local3 == 3){
} else {
if (_local3 == 4){
} else {
if (_local3 == 5){
} else {
throw ("Too many arguments");
};
};
};
};
};
};
return (!NULL!);
}
public static function createEmptyInstance(_arg1:Class):Object{
var _local3 = (null as Object);
var _local4:* = null;
var _local5:* = null;
try {
Boot_BA08CD.skip_constructor = true;
_local3 = (new (_arg1) as Object);
Boot_BA08CD.skip_constructor = false;
return (_local3);
} catch(#InvalidMultinameIndex#) {
_local5 = !NULL!;
_local4 = _local5;
Boot_BA08CD.skip_constructor = false;
throw (_local4);
};
return ((null as Object));
}
public static function describe(_arg1:Object, _arg2:Boolean):Array{
var _local8:int;
var _local3 = (new Array() as Array);
var _local4:* = describeType(_arg1);
if (_arg2){
_local4 = _local4.factory;
};
var _local5:* = _local4.child("method");
var _local6:int;
var _local7:int = _local5.length();
do {
//unresolved if
_local8 = _local6;
_local6++;
_local3.push(Std.string(_local5[_local8].attribute("name")));
} while (true);
var _local9:* = _local4.child("variable");
_local6 = 0;
_local7 = _local9.length();
do {
//unresolved if
_local8 = _local6;
_local6++;
_local3.push(Std.string(_local9[_local8].attribute("name")));
} while (true);
return (_local3);
}
public static function getInstanceFields(_arg1:Class):Array{
return (Type.describe(_arg1, true));
}
public static function getClassFields(_arg1:Class):Array{
var _local2 = (Type.describe(_arg1, false) as Array);
_local2.remove("__construct__");
return (_local2);
}
public static function getEnumConstructs(_arg1:Class):Array{
return (Type.describe(_arg1, false));
}
public static function typeof(_arg1:Object):ValueType{
var _local5:* = null;
var _local6:* = null;
var _local7:* = null;
var _local3 = (getQualifiedClassName(_arg1) as String);
var _local4 = (_local3 as String);
if (_local4 == "null"){
return (ValueType.TNull);
} else {
if (_local4 == "void"){
return (ValueType.TNull);
} else {
if (_local4 == "int"){
return (ValueType.TInt);
} else {
if (_local4 == "Number"){
return (ValueType.TFloat);
} else {
if (_local4 == "Boolean"){
return (ValueType.TBool);
} else {
if (_local4 == "Object"){
return (ValueType.TObject);
} else {
try {
_local5 = getDefinitionByName(_local3);
if (_arg1.hasOwnProperty("prototype")){
return (ValueType.TObject);
};
if (_local5.__isenum){
return (ValueType.TEnum(_local5));
};
return (ValueType.TClass(_local5));
} catch(#InvalidMultinameIndex#) {
_local7 = !NULL!;
_local6 = _local7;
if (!(_local3 == "builtin.as$0::MethodClosure")){
true;
};
if (true){
return (ValueType.TFunction);
};
return (((_local5 == null)) ? ValueType.TFunction : ValueType.TClass(_local5));
};
};
};
};
};
};
};
return ((null as ValueType));
}
public static function enumEq(_arg1:Object, _arg2:Object):Boolean{
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:* = null;
var _local8:* = null;
if ((_arg1 == _arg2)){
return (true);
};
try {
if (!((_arg1.tag == _arg2.tag))){
return (false);
};
_local4 = 0;
_local5 = _arg1.params.length;
do {
//unresolved if
_local6 = _local4;
_local4++;
if (!(Type.enumEq(_arg1.params[_local6], _arg2.params[_local6]))){
return (false);
};
} while (true);
} catch(#InvalidMultinameIndex#) {
_local8 = !NULL!;
_local7 = _local8;
return (false);
};
return (true);
}
public static function enumConstructor(_arg1:Object):String{
return (_arg1.tag);
}
public static function enumParameters(_arg1:Object):Array{
return (((_arg1.params == null)) ? [] : _arg1.params);
}
}
class Unserializer {
public var scache:Array;
public var resolver:Object;
public var pos:int;
public var length:int;
public var cache:Array;
public var buf:String;
public static var DEFAULT_RESOLVER:Object;
public function Unserializer(_arg1:String=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
buf = _arg1;
length = _arg1.length;
pos = 0;
scache = new Array();
cache = new Array();
setResolver(Unserializer.DEFAULT_RESOLVER);
}
public function unserializeObject(_arg1:Object):void{
var _local2 = (null as String);
var _local3:* = null;
do {
//unresolved if
if ((pos >= length)){
throw ("Invalid object");
};
if ((buf.charCodeAt(pos) == 103)){
break;
};
_local2 = (unserialize() as String);
if (!(Std.is(_local2, String))){
throw ("Invalid object key");
};
_local3 = unserialize();
Reflect.setField(_arg1, _local2, _local3);
} while (true);
pos = (pos + 1);
}
public function unserialize():Object{
var _local2:* = null;
var _local3:int;
var _local4 = (null as String);
var _local5 = (null as Array);
var _local6 = (null as Class);
var _local7 = (null as String);
var _local8:* = null;
var _local9 = (null as List);
var _local10 = (null as Hash);
var _local11 = (null as IntHash);
var _local12 = (null as Date);
_local2 = pos;
pos = (_local2 + 1);
var _local1:* = buf.charCodeAt(_local2);
if (_local1 == 110){
return (null);
} else {
if (_local1 == 116){
return (true);
} else {
if (_local1 == 102){
return (false);
} else {
if (_local1 == 122){
return (0);
} else {
if (_local1 == 105){
return (readDigits());
} else {
if (_local1 == 100){
_local3 = pos;
do {
//unresolved if
_local2 = buf.charCodeAt(pos);
if ((_local2 >= 43)){
false;
};
if (!false){
true;
if (!(_local2 == 101)){
true;
};
};
if (true){
pos = (pos + 1);
} else {
break;
};
} while (true);
return (Std.parseFloat(buf.substr(_local3, (pos - _local3))));
} else {
if (_local1 == 121){
_local3 = readDigits();
_local2 = pos;
pos = (_local2 + 1);
if (!!((buf.charAt(_local2) == ":"))){
true;
};
if (true){
throw ("Invalid string length");
};
_local4 = (buf.substr(pos, _local3) as String);
pos = (pos + _local3);
_local4 = (StringTools.urlDecode(_local4) as String);
scache.push(_local4);
return (_local4);
} else {
if (_local1 == 107){
return (Math.NaN);
} else {
if (_local1 == 109){
return (Math.NEGATIVE_INFINITY);
} else {
if (_local1 == 112){
return (Math.POSITIVE_INFINITY);
} else {
if (_local1 == 97){
_local5 = (new Array() as Array);
cache.push(_local5);
do {
//unresolved if
_local2 = buf.charCodeAt(pos);
if ((_local2 == 104)){
pos = (pos + 1);
break;
};
if ((_local2 == 117)){
pos = (pos + 1);
_local3 = readDigits();
_local5[((_local5.length + _local3) - 1)] = null;
} else {
_local5.push(unserialize());
};
} while (true);
return (_local5);
} else {
if (_local1 == 111){
_local2 = Reflect.empty();
cache.push(_local2);
unserializeObject(_local2);
return (_local2);
} else {
if (_local1 == 114){
_local3 = readDigits();
if (!(_local3 < 0)){
true;
};
if (true){
throw ("Invalid reference");
};
return (cache[_local3]);
} else {
if (_local1 == 82){
_local3 = readDigits();
if (!(_local3 < 0)){
true;
};
if (true){
throw ("Invalid string reference");
};
return ((scache[_local3] as String));
} else {
if (_local1 == 120){
throw (unserialize());
} else {
if (_local1 == 99){
_local4 = (unserialize() as String);
_local6 = (resolver.resolveClass(_local4) as Class);
if ((_local6 == (null as Class))){
throw ((("Class not found " + _local4) as String));
};
_local2 = Type.createEmptyInstance(_local6);
cache.push(_local2);
unserializeObject(_local2);
return (_local2);
} else {
if (_local1 == 119){
_local4 = (unserialize() as String);
_local6 = (resolver.resolveEnum(_local4) as Class);
if ((_local6 == (null as Class))){
throw ((("Enum not found " + _local4) as String));
};
_local7 = (unserialize() as String);
if (!(Std.is(_local7, String))){
throw ("Invalid enum tag");
};
_local2 = Reflect.field(_local6, _local7);
if ((_local2 == null)){
throw ((((((("Unknown enum tag " + _local4) as String) + ".") as String) + _local7) as String));
};
_local8 = pos;
pos = (_local8 + 1);
if (!((buf.charCodeAt(_local8) == 58))){
throw ("Invalid enum format");
};
_local3 = readDigits();
if ((_local3 == 0)){
cache.push(_local2);
return (_local2);
};
_local5 = (new Array() as Array);
do {
//unresolved if
_local5.push(unserialize());
_local3 = (_local3 - 1);
} while (true);
_local8 = Reflect.callMethod(_local6, _local2, _local5);
cache.push(_local8);
return (_local8);
} else {
if (_local1 == 108){
_local9 = (new List() as List);
do {
//unresolved if
_local9.add(unserialize());
} while (true);
pos = (pos + 1);
return (_local9);
} else {
if (_local1 == 98){
_local10 = (new Hash() as Hash);
do {
//unresolved if
_local4 = (unserialize() as String);
_local10.set(_local4, unserialize());
} while (true);
pos = (pos + 1);
return (_local10);
} else {
if (_local1 == 113){
_local11 = (new IntHash() as IntHash);
_local8 = pos;
pos = (_local8 + 1);
_local2 = buf.charCodeAt(_local8);
do {
//unresolved if
_local3 = readDigits();
_local11.set(_local3, unserialize());
_local8 = pos;
pos = (_local8 + 1);
_local2 = buf.charCodeAt(_local8);
} while (true);
if (!((_local2 == 104))){
throw ("Invalid IntHash format");
};
return (_local11);
} else {
if (_local1 == 118){
_local12 = ((Date.fromString(buf.substr(pos, 19)) as Date) as Date);
pos = (pos + 19);
return (_local12);
} else {
if (_local1 == 115){
_local3 = readDigits();
_local2 = pos;
pos = (_local2 + 1);
if (!!((buf.charAt(_local2) == ":"))){
true;
};
if (true){
throw ("Invalid string length");
};
_local4 = (buf.substr(pos, _local3) as String);
pos = (pos + _local3);
scache.push(_local4);
return (_local4);
} else {
if (_local1 == 106){
_local3 = readDigits();
_local2 = pos;
pos = (_local2 + 1);
if (!((buf.charAt(_local2) == ":"))){
throw ("Invalid string length");
};
_local4 = (buf.substr(pos, _local3) as String);
pos = (pos + _local3);
_local7 = ("##__delim__##" as String);
_local5 = (new EReg("\\\\\\\\", "g").split(_local4) as Array);
_local4 = (_local5.join(_local7).split("\\r").join("\r").split("\\n").join("\n").split(_local7).join("\\") as String);
scache.push(_local4);
return (_local4);
//unresolved jump
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
pos = (pos - 1);
throw ((((((("Invalid char " + buf.charAt(pos)) as String) + " at position ") as String) + pos) as String));
}
public function setResolver(_arg1:Object):void{
if ((_arg1 == null)){
resolver = {resolveEnum:function (_arg1:String):Class{
return ((null as Class));
}, resolveClass:function (_arg1:String):Class{
return ((null as Class));
}};
} else {
resolver = _arg1;
};
}
public function readDigits():int{
var _local4:* = null;
var _local1:int;
var _local2:Boolean;
var _local3:int = pos;
do {
//unresolved if
_local4 = buf.charCodeAt(pos);
if ((_local4 == null)){
//unresolved jump
};
//unresolved if
if (!((pos == _local3))){
//unresolved jump
};
_local2 = true;
pos = (pos + 1);
} while (true);
_local4 = (_local4 - 48);
if (!(_local4 < 0)){
true;
};
if (true){
} else {
_local1 = ((_local1 * 10) + _local4);
pos = (pos + 1);
//unresolved jump
};
if (_local2){
_local1 = (_local1 * -1);
};
return (_local1);
}
public static function run(_arg1:String):Object{
return (new Unserializer(_arg1).unserialize());
}
}
class Mission3 extends Mission {
public var level9:Object;
public var level8:Object;
public var level7:Object;
public var level6:Object;
public var level5:Object;
public var level4:Object;
public var level3:Object;
public var level2:Object;
public var level10:Object;
public var level1:Object;
public function Mission3():void{
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:Number;
var _local9:Number;
var _local10 = (null as Point);
var _local17:* = null;
var _local18:Number;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
integrityThreshold = 30;
regenIntegrityRate = 0.001;
damageIntegrityRate = 0.001;
var _local1 = (new List() as List);
_local1.add({pos:new Point(250, 100), enemy:EnemyF});
_local1.add({pos:new Point(250, 400), enemy:EnemyF});
_local1.add({pos:new Point(100, 250), enemy:EnemyF});
_local1.add({pos:new Point(400, 250), enemy:EnemyF});
_local1.add({pos:new Point(25, 25), enemy:EnemyF});
_local1.add({pos:new Point(475, 475), enemy:EnemyF});
level1 = {pattern:_local1, delay:2500, id:1};
var _local2 = (new List() as List);
_local2.add({pos:new Point(250, 100), enemy:EnemyE});
_local2.add({pos:new Point(250, 400), enemy:EnemyE});
_local2.add({pos:new Point(25, 25), enemy:EnemyF});
_local2.add({pos:new Point(475, 475), enemy:EnemyF});
_local2.add({pos:new Point(475, 25), enemy:EnemyF});
_local2.add({pos:new Point(25, 475), enemy:EnemyF});
var _local3:int;
var _local4:int = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local2.add({pos:_local10, enemy:EnemyA});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local2.add({pos:_local10, enemy:EnemyB});
} while (true);
level2 = {pattern:_local2, delay:2500, id:2};
var _local11 = (new List() as List);
_local11.add({pos:new Point(100, 150), enemy:EnemyF});
_local11.add({pos:new Point(100, 350), enemy:EnemyF});
_local11.add({pos:new Point(400, 150), enemy:EnemyF});
_local11.add({pos:new Point(400, 350), enemy:EnemyF});
_local11.add({pos:new Point(150, 100), enemy:EnemyE});
_local11.add({pos:new Point(150, 400), enemy:EnemyE});
_local11.add({pos:new Point(350, 100), enemy:EnemyE});
_local11.add({pos:new Point(350, 400), enemy:EnemyE});
_local11.add({pos:new Point(250, 225), enemy:EnemyB});
_local11.add({pos:new Point(225, 200), enemy:EnemyB});
_local11.add({pos:new Point(275, 200), enemy:EnemyB});
_local11.add({pos:new Point(250, 275), enemy:EnemyC});
_local11.add({pos:new Point(225, 300), enemy:EnemyC});
_local11.add({pos:new Point(275, 300), enemy:EnemyC});
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local11.add({pos:_local10, enemy:EnemyA});
} while (true);
level3 = {pattern:_local11, delay:2500, id:3};
var _local12 = (new List() as List);
_local3 = 0;
_local4 = 16;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local12.add({pos:_local10, enemy:EnemyF});
} while (true);
level4 = {pattern:_local12, delay:2500, id:4};
var _local13 = (new List() as List);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyF});
} while (true);
_local3 = 0;
_local4 = 5;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyB});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyC});
} while (true);
_local3 = 0;
_local4 = 5;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local13.add({pos:_local10, enemy:EnemyD});
} while (true);
level5 = {pattern:_local13, delay:2500, id:5};
var _local14 = (new List() as List);
_local14.add({pos:new Point(100, 150), enemy:SpawnerA});
_local14.add({pos:new Point(100, 350), enemy:SpawnerA});
_local14.add({pos:new Point(400, 150), enemy:SpawnerC});
_local14.add({pos:new Point(400, 350), enemy:SpawnerC});
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local14.add({pos:_local10, enemy:EnemyD});
} while (true);
_local14.add({pos:new Point(150, 100), enemy:EnemyB});
_local14.add({pos:new Point(150, 400), enemy:EnemyB});
_local14.add({pos:new Point(350, 100), enemy:EnemyB});
_local14.add({pos:new Point(350, 400), enemy:EnemyB});
level6 = {pattern:_local14, delay:2500, id:6};
var _local15 = (new List() as List);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyB});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:EnemyF});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 100;
_local7 = (500 - 100);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local15.add({pos:_local10, enemy:SpawnerC});
} while (true);
level7 = {pattern:_local15, delay:2500, id:7};
var _local16 = (new List() as List);
_local3 = 0;
_local4 = 2;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 100;
_local7 = (500 - 100);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local17 = SpawnerA;
_local18 = (Math.random() * 3);
if ((_local18 >= 0)){
false;
};
if (false){
_local17 = SpawnerA;
} else {
_local17 = SpawnerE;
};
_local16.add({pos:_local10, enemy:_local17});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local16.add({pos:_local10, enemy:EnemyF});
} while (true);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local16.add({pos:_local10, enemy:EnemyD});
} while (true);
level8 = {pattern:_local16, delay:2500, id:8};
var _local19 = (new List() as List);
_local3 = 0;
_local4 = 4;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 100;
_local7 = (500 - 100);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local17 = SpawnerB;
_local18 = (Math.random() * 3);
if ((_local18 >= 0)){
false;
};
if (false){
_local17 = SpawnerB;
} else {
_local17 = SpawnerD;
};
_local19.add({pos:_local10, enemy:_local17});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local19.add({pos:_local10, enemy:EnemyA});
} while (true);
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local19.add({pos:_local10, enemy:EnemyC});
} while (true);
level9 = {pattern:_local19, delay:2500, id:9};
var _local20 = (new List() as List);
_local20.add({pos:new Point(250, 100), enemy:BossC});
_local20.add({pos:new Point(250, 400), enemy:BossC});
_local3 = 0;
_local4 = 6;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 32;
_local7 = (500 - 32);
_local8 = ((Math.random() * (_local7 - _local6)) + _local6);
_local9 = ((Math.random() * (_local7 - _local6)) + _local6);
_local10 = (new Point(_local8, _local9) as Point);
_local20.add({pos:_local10, enemy:EnemyB});
} while (true);
level10 = {pattern:_local20, delay:-1, id:10};
}
override public function prepareLevels():void{
levels.add(level1);
levels.add(level2);
levels.add(level3);
levels.add(level4);
levels.add(level5);
levels.add(level6);
levels.add(level7);
levels.add(level8);
levels.add(level9);
levels.add(level10);
var _local1 = (new Bitmap(Assets.objects.get("Background03")) as Bitmap);
ScreenManager.playScreen.setBackground(_local1);
}
}
class EnemyASprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function EnemyASprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(14, 14, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -7;
core.y = -7;
var _local2 = (new BitmapData(0x0100, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 0, 0x0100, 32), new Point(0, 0));
equip = new MovieTile(_local2, 32, 32);
equip.x = -16;
equip.y = -16;
equipframes = equip.frames;
var _local3 = (new BitmapData(14, 14, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
var _local4:int;
var _local5:int = 14;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 14;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -7;
inflictCore.y = -7;
var _local10 = (new BitmapData(192, 32, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 0, 0x0100, 32), new Point(0, 0));
_local4 = 0;
_local5 = 192;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 32;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 32, 32);
inflictEquip.x = -16;
inflictEquip.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
class ScreenManager {
public static var titleScreen:TitleScreen;
public static var sponsorsScreen:SponsorsScreen;
public static var creditsScreen:CreditsScreen;
public static var instructionsScreen:InstructionsScreen;
public static var playScreen:PlayScreen;
public static var askTutorialScreen:AskTutorialScreen;
public static var techDialog:TechDialog;
public static var menuDialog:MenuDialog;
public static var gameOverDialog:GameOverDialog;
public static var noMoreLifeDialog:NoMoreLifeDialog;
public static var contentLayer:Sprite;
public static var dialogLayer:Sprite;
public static var tutorialLayer:Sprite;
public static var cursorLayer:Sprite;
public static var transitionLayer:Sprite;
public static var currentScreen:Sprite;
public static var currentScreenName:String;
public static var currentDialog:Sprite;
public static var currentTutorialStep:Sprite;
public static var nextScreen:Sprite;
public static var nextScreenName:String;
public static var nextScreenIndex:int;
public static var screenBlur:BlurFilter;
public function ScreenManager():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function loadScreens():void{
ScreenManager.contentLayer = new Sprite();
ScreenManager.dialogLayer = new Sprite();
ScreenManager.tutorialLayer = new Sprite();
ScreenManager.cursorLayer = new Sprite();
ScreenManager.transitionLayer = new Sprite();
ScreenManager.transitionLayer.graphics.beginFill(0);
ScreenManager.transitionLayer.graphics.drawRect(0, 0, 500, 500);
ScreenManager.transitionLayer.alpha = 0;
ScreenManager.currentScreen = new Sprite();
ScreenManager.currentScreenName = "";
ScreenManager.currentDialog = new Sprite();
ScreenManager.currentTutorialStep = new Sprite();
ScreenManager.cursorLayer.buttonMode = false;
ScreenManager.cursorLayer.mouseEnabled = false;
ScreenManager.screenBlur = new BlurFilter(3, 3, 3);
Lib.current.addChild(ScreenManager.contentLayer);
Lib.current.addChild(ScreenManager.dialogLayer);
Lib.current.addChild(ScreenManager.tutorialLayer);
Lib.current.addChild(ScreenManager.transitionLayer);
Lib.current.addChild(ScreenManager.cursorLayer);
ScreenManager.titleScreen = new TitleScreen();
ScreenManager.sponsorsScreen = new SponsorsScreen();
ScreenManager.creditsScreen = new CreditsScreen();
ScreenManager.instructionsScreen = new InstructionsScreen();
ScreenManager.playScreen = new PlayScreen();
ScreenManager.askTutorialScreen = new AskTutorialScreen();
ScreenManager.techDialog = new TechDialog();
ScreenManager.menuDialog = new MenuDialog();
ScreenManager.gameOverDialog = new GameOverDialog();
ScreenManager.noMoreLifeDialog = new NoMoreLifeDialog();
}
public static function prepareScreen():void{
var _local1 = (ScreenManager.nextScreenName as String);
if (_local1 == "title"){
ScreenManager.nextScreen = ScreenManager.titleScreen.getContainer();
ScreenManager.titleScreen.init();
} else {
if (_local1 == "sponsors"){
ScreenManager.nextScreen = ScreenManager.sponsorsScreen.getContainer();
} else {
if (_local1 == "credits"){
ScreenManager.nextScreen = ScreenManager.creditsScreen.getContainer();
} else {
if (_local1 == "instructionsFromTitle"){
ScreenManager.nextScreen = ScreenManager.instructionsScreen.getContainer();
ScreenManager.instructionsScreen.prevScreen = "title";
} else {
if (_local1 == "instructionsFromPlay"){
ScreenManager.nextScreen = ScreenManager.instructionsScreen.getContainer();
ScreenManager.instructionsScreen.prevScreen = "playresume";
} else {
if (_local1 == "playresume"){
ScreenManager.nextScreen = ScreenManager.playScreen.getContainer();
} else {
if (_local1 == "play"){
ScreenManager.nextScreen = ScreenManager.playScreen.getContainer();
Profile.reset();
ScreenManager.playScreen.init();
} else {
if (_local1 == "playNextMission"){
ScreenManager.nextScreen = ScreenManager.playScreen.getContainer();
ScreenManager.playScreen.init();
} else {
if (_local1 == "endMission"){
ScreenManager.nextScreen = ScreenManager.titleScreen.getContainer();
Profile.reset();
} else {
if (_local1 == "hasTutorial"){
ScreenManager.nextScreen = ScreenManager.askTutorialScreen.getContainer();
ScreenManager.askTutorialScreen.init();
//unresolved jump
};
};
};
};
};
};
};
};
};
};
}
public static function switchScreen():void{
if (ScreenManager.contentLayer.contains(ScreenManager.currentScreen)){
ScreenManager.contentLayer.removeChild(ScreenManager.currentScreen);
};
ScreenManager.currentScreen = ScreenManager.nextScreen;
ScreenManager.currentScreenName = ScreenManager.nextScreenName;
ScreenManager.contentLayer.addChild(ScreenManager.currentScreen);
}
public static function runScreen():void{
ScreenManager.transitionLayer.mouseEnabled = false;
ScreenManager.transitionLayer.visible = false;
var _local1 = (ScreenManager.currentScreenName as String);
if (_local1 == "title"){
ScreenManager.titleScreen.start();
} else {
if (_local1 == "sponsors"){
ScreenManager.sponsorsScreen.start();
} else {
if (_local1 == "play"){
ScreenManager.playScreen.start();
} else {
if (_local1 == "playNextMission"){
if ((ScreenManager.dialogLayer.numChildren == 0)){
ScreenManager.playScreen.start();
};
//unresolved jump
};
};
};
};
}
public static function transition():void{
ScreenManager.prepareScreen();
Tweener.addTween(ScreenManager.transitionLayer, {onComplete:ScreenManager.switchScreen, time:0.5, alpha:1});
Tweener.addTween(ScreenManager.transitionLayer, {onComplete:ScreenManager.runScreen, delay:0.5, time:1, alpha:0});
Lib.current.stage.focus = Lib.current;
}
public static function showScreen(_arg1:String, _arg2:Object=undefined):void{
ScreenManager.transitionLayer.mouseEnabled = true;
ScreenManager.transitionLayer.visible = true;
ScreenManager.nextScreenIndex = (Std.bool(_arg2)) ? _arg2 : 0;
ScreenManager.nextScreenName = _arg1;
ScreenManager.transition();
}
public static function showDialog(_arg1:String):void{
ScreenManager.hideDialog();
var _local2 = (_arg1 as String);
if (_local2 == "gameover"){
ScreenManager.currentDialog = ScreenManager.gameOverDialog.getContainer();
ScreenManager.gameOverDialog.init();
} else {
if (_local2 == "nomorelife"){
ScreenManager.currentDialog = ScreenManager.noMoreLifeDialog.getContainer();
ScreenManager.noMoreLifeDialog.init();
} else {
if (_local2 == "tech"){
ScreenManager.currentDialog = ScreenManager.techDialog.getContainer();
ScreenManager.techDialog.init();
ScreenManager.techDialog.updateDialog();
} else {
if (_local2 == "menu"){
ScreenManager.currentDialog = ScreenManager.menuDialog.getContainer();
ScreenManager.menuDialog.init();
} else {
if (_local2 == "menuNoInit"){
ScreenManager.currentDialog = ScreenManager.menuDialog.getContainer();
ScreenManager.menuDialog.bypassInit();
//unresolved jump
};
};
};
};
};
ScreenManager.dialogLayer.addChild(ScreenManager.currentDialog);
ScreenManager.contentLayer.filters = [ScreenManager.screenBlur];
}
public static function hideDialog():void{
if (ScreenManager.dialogLayer.contains(ScreenManager.currentDialog)){
ScreenManager.dialogLayer.removeChild(ScreenManager.currentDialog);
};
ScreenManager.contentLayer.filters = [];
Lib.current.stage.focus = Lib.current;
}
public static function showTutorialStep(_arg1:Sprite):void{
ScreenManager.hideTutorialStep();
ScreenManager.currentTutorialStep = _arg1;
ScreenManager.tutorialLayer.addChild(ScreenManager.currentTutorialStep);
}
public static function hideTutorialStep():void{
if (ScreenManager.tutorialLayer.contains(ScreenManager.currentTutorialStep)){
ScreenManager.tutorialLayer.removeChild(ScreenManager.currentTutorialStep);
};
Lib.current.stage.focus = Lib.current;
}
}
class BossA extends Enemy {
public var speed:Number;
public var shieldSprite:Sprite;
public var projectileData:Object;
public var moveTime:int;
public var minSpeed:Number;
public var maxshieldpoint:int;
public var maxSpeed:Number;
public var enemySprite:BossASprite;
public var curanimateque:int;
public var curMoveTime:int;
public var curClosingInTime:int;
public var closingInTime:int;
public var animatespeed:int;
public function BossA(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.bossA.hitpoint;
maxshieldpoint = (Config.bossA.hitpoint * 8);
shieldpoint = maxshieldpoint;
worth = Config.bossA.worth;
enemySprite = new BossASprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
shieldSprite = new Sprite();
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-14, -14, 28, 28);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 0.4;
maxSpeed = 0.8;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
var _local6:int = 550;
var _local7:int = 1350;
var _local8:int = 700;
var _local9:int = 1300;
closingInTime = Std.int(((Math.random() * (_local7 - _local6)) + _local6));
moveTime = Std.int(((Math.random() * (_local9 - _local8)) + _local8));
curClosingInTime = 0;
curMoveTime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
var _local1 = (null as Point);
var _local2:Number;
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
if ((curMoveTime < moveTime)){
false;
};
if (false){
curMoveTime = (curMoveTime + 1);
if ((shieldpoint > 1)){
isInvincible = true;
createShield();
} else {
isInvincible = false;
};
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
} else {
if ((curClosingInTime < closingInTime)){
false;
};
if (false){
curClosingInTime = (curClosingInTime + 1);
isInvincible = false;
destroyShield();
_local1 = (new Point(ScreenManager.playScreen.player.locX, ScreenManager.playScreen.player.locY) as Point);
_local2 = Math.atan2((_local1.y - container.y), (_local1.x - container.x));
vectorX = (Math.cos(_local2) * speed);
vectorY = (Math.sin(_local2) * speed);
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
} else {
curClosingInTime = 0;
curMoveTime = 0;
shieldpoint = maxshieldpoint;
};
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.bossAScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
public function destroyShield():void{
if (container.contains(shieldSprite)){
shieldSprite.graphics.clear();
shieldSprite.filters = [];
container.removeChild(shieldSprite);
};
}
override public function decreaseShield():void{
var _local1:Number = 0.3;
var _local2:Number = 1;
var _local3:Number = (shieldpoint / maxshieldpoint);
if ((_local3 <= 0)){
destroyShield();
};
var _local4:Number = ((_local3 * (_local2 - _local1)) + _local1);
var _local5:* = _local4;
shieldSprite.scaleY = _local5;
shieldSprite.scaleX = _local5;
}
public function createShield():void{
var _local1:* = null;
if (!(container.contains(shieldSprite))){
_local1 = 1;
shieldSprite.scaleY = _local1;
shieldSprite.scaleX = _local1;
shieldSprite.graphics.lineStyle(2, 0xFFFFFF, 0.5);
shieldSprite.graphics.drawCircle(0, 0, (enemySprite.width / 3));
shieldSprite.filters = [new BlurFilter(2, 2, 2)];
container.addChild(shieldSprite);
};
}
}
class ProjectileM extends Projectile {
public function ProjectileM(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
speed = 20;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
baseType = ProjectileBaseType.LIGHTNING;
useTarget = true;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(4, 4, true, 0xFFFFFF) as BitmapData);
Raster.circle(_local4, 0, 0, 2, 0xFFFFFF);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.x = -2;
_local5.y = -2;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
}
class Log {
public static var trace;
public static var clear;
public static var setColor;
public function Log():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
}
class SpawnerE extends Enemy {
public var spawnerSprite:SpawnerSprite;
public var spawnTime:int;
public var spawnEnemy:Object;
public var spawnCount:int;
public var currentSpawnTime:int;
public var curanimateque:int;
public var animatespeed:int;
public function SpawnerE(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
spawnTime = Config.spawnerE.spawnTime;
spawnCount = Config.spawnerE.spawnCount;
spawnEnemy = Config.spawnerE.spawnEnemy;
hitpoint = Config.spawnerE.hitpoint;
worth = Config.spawnerE.worth;
currentSpawnTime = 0;
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFF00);
_local4.graphics.drawRect(0, 0, 16, 16);
hitbox = _local4;
hitbox.x = (-(hitbox.width) / 2);
hitbox.y = (-(hitbox.height) / 2);
hitbox.alpha = 0;
spawnerSprite = new SpawnerSprite();
inflictHitSprite.addChild(spawnerSprite.inflictGroup);
animatespeed = 10;
curanimateque = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
spawnerSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(spawnerSprite);
container.addChild(inflictHitSprite);
if ((_arg3.x == 0)){
false;
};
if (false){
container.x = ((Math.round(((Math.random() * boundary.width) - (container.width / 2))) + boundary.x) + (container.width / 2));
container.y = ((Math.round(((Math.random() * boundary.height) - (container.height / 2))) + boundary.y) + (container.height / 2));
} else {
container.x = _arg3.x;
container.y = _arg3.y;
};
displayParent.addChild(container);
}
override public function update():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6 = (null as Enemy);
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
spawnerSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
spawnerSprite.alpha = 1;
};
} else {
if ((currentSpawnTime > spawnTime)){
currentSpawnTime = 0;
_local1 = 0;
_local2 = spawnCount;
do {
//unresolved if
_local3 = _local1;
_local1++;
_local4 = (container.x + (Math.cos((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local5 = (container.y + (Math.sin((((90 * _local3) * Math.PI) / 180)) * ((container.width / 2) + 20)));
_local6 = (Type.createInstance(Type.toClass(spawnEnemy), [displayParent, boundary, new Point(_local4, _local5)]) as Enemy);
MissionManager.currentMission.enemyList().push(_local6);
} while (true);
spawnerSprite.spawning(true);
} else {
if ((currentSpawnTime == 0)){
spawnerSprite.spawning(false);
};
currentSpawnTime = (currentSpawnTime + 1);
};
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
spawnerSprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.spawnerScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class Serializer {
public var useCache:Boolean;
public var shash:Hash;
public var scount:int;
public var cache:Array;
public var buf:StringBuf;
public static var USE_CACHE:Boolean;
public function Serializer():void{
if (Boot_BA08CD.skip_constructor){
return;
};
buf = new StringBuf();
cache = new Array();
useCache = Serializer.USE_CACHE;
shash = new Hash();
scount = 0;
}
public function toString():String{
return (buf.toString());
}
public function serializeString(_arg1:String):void{
var _local2:* = shash.get(_arg1);
if (!((_local2 == null))){
buf.add("R");
buf.add(_local2);
return;
};
var _local3:* = scount;
scount = (_local3 + 1);
shash.set(_arg1, _local3);
buf.add("y");
_arg1 = (StringTools.urlEncode(_arg1) as String);
buf.add(_arg1.length);
buf.add(":");
buf.add(_arg1);
}
public function serializeRef(_arg1:Object):Boolean{
var _local4:int;
var _local2:int;
var _local3:int = cache.length;
do {
//unresolved if
_local4 = _local2;
_local2++;
if ((cache[_local4] == _arg1)){
buf.add("r");
buf.add(_local4);
return (true);
};
} while (true);
cache.push(_arg1);
return (false);
}
public function serializeFields(_arg1:Object):void{
var _local3:* = null;
var _local2:* = Reflect.fields(_arg1).iterator();
do {
//unresolved if
_local3 = _local2.next();
serializeString(_local3);
serialize(Reflect.field(_arg1, _local3));
} while (true);
buf.add("g");
}
public function serializeException(_arg1:Object):void{
var _local2:* = null;
buf.add("x");
if ((_arg1 is Error)){
_local2 = _arg1.getStackTrace();
if ((_local2 == null)){
serialize(_arg1.message);
} else {
serialize(_local2);
};
return;
};
serialize(_arg1);
}
public function serializeClassFields(_arg1:Object, _arg2:Class):void{
var _local7:int;
var _local8 = (null as String);
var _local3:* = describeType(_arg2).factory;
var _local4:* = _local3.child("variable");
var _local5:int;
var _local6:int = _local4.length();
do {
//unresolved if
_local7 = _local5;
_local5++;
_local8 = (_local4[_local7].attribute("name").toString() as String);
//unresolved if
} while (true);
serializeString(_local8);
serialize(Reflect.field(_arg1, _local8));
//unresolved jump
buf.add("g");
}
public function serialize(_arg1:Object):void{
var _local4 = (null as Class);
var _local5 = (null as Class);
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:int;
var _local11 = (null as List);
var _local12:* = null;
var _local13:* = null;
var _local14 = (null as Date);
var _local15 = (null as Hash);
var _local16 = (null as String);
var _local17 = (null as IntHash);
var _local18 = (null as ByteArray);
var _local19 = (null as Array);
var _local20:uint;
var _local3:* = Type.typeof(_arg1).tag;
var _local2:* = Type.typeof(_arg1).params;
if (_local3 == "TNull"){
buf.add("n");
} else {
if (_local3 == "TInt"){
if ((_arg1 == 0)){
buf.add("z");
return;
};
buf.add("i");
buf.add(_arg1);
} else {
if (_local3 == "TFloat"){
if (Math.isNaN(_arg1)){
buf.add("k");
} else {
if (!(Math.isFinite(_arg1))){
buf.add(((_arg1 < 0)) ? "m" : "p");
} else {
buf.add("d");
buf.add(_arg1);
};
};
} else {
if (_local3 == "TBool"){
buf.add((_arg1) ? "t" : "f");
} else {
if (_local3 == "TClass"){
_local4 = (_local2[0] as Class);
if ((_local4 == String)){
serializeString(_arg1);
return;
};
if (useCache){
false;
};
if (false){
return;
};
_local5 = (_local4 as Class);
if (_local5 == Array){
_local6 = 0;
buf.add("a");
_local7 = _arg1["length"];
_local8 = 0;
_local9 = _local7;
do {
//unresolved if
_local10 = _local8;
_local8++;
if ((_arg1[_local10] == null)){
_local6++;
} else {
if ((_local6 > 0)){
if ((_local6 == 1)){
buf.add("n");
} else {
buf.add("u");
buf.add(_local6);
};
_local6 = 0;
};
serialize(_arg1[_local10]);
};
} while (true);
if ((_local6 > 0)){
if ((_local6 == 1)){
buf.add("n");
} else {
buf.add("u");
buf.add(_local6);
};
};
buf.add("h");
} else {
if (_local5 == List){
buf.add("l");
_local11 = (_arg1 as List);
_local12 = _local11.iterator();
do {
//unresolved if
_local13 = _local12.next();
serialize(_local13);
} while (true);
buf.add("h");
} else {
if (_local5 == Date){
_local14 = (_arg1 as Date);
buf.add("v");
buf.add((_local14.toString() as String));
} else {
if (_local5 == Hash){
buf.add("b");
_local15 = (_arg1 as Hash);
_local12 = _local15.keys();
do {
//unresolved if
_local16 = (_local12.next() as String);
serializeString(_local16);
serialize(_local15.get(_local16));
} while (true);
buf.add("h");
} else {
if (_local5 == IntHash){
buf.add("q");
_local17 = (_arg1 as IntHash);
_local12 = _local17.keys();
do {
//unresolved if
_local6 = _local12.next();
buf.add(":");
buf.add(_local6);
serialize(_local17.get(_local6));
} while (true);
buf.add("h");
} else {
if (_local5 == ByteArray){
buf.add("y");
_local16 = ("" as String);
_local18 = (_arg1 as ByteArray);
_local19 = (["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"] as Array);
_local6 = 0;
_local20 = _local18.length;
do {
//unresolved if
_local7 = _local6;
_local6++;
_local8 = _local18[_local7];
if ((_local8 >= 48)){
false;
};
if (!false){
true;
if ((_local8 >= 65)){
false;
};
if (!false){
true;
if ((_local8 >= 97)){
false;
};
};
};
if (true){
_local16 = (((_local16 + String.fromCharCode(_local8)) as String) as String);
} else {
_local16 = (((_local16 + (((("%" + (_local19[(_local8 >> 4)] as String)) as String) + (_local19[(_local8 & 15)] as String)) as String)) as String) as String);
};
} while (true);
buf.add(_local16.length);
buf.add(":");
buf.add(_local16);
} else {
cache.pop();
buf.add("c");
serialize(Type.getClassName(_local4));
cache.push(_arg1);
serializeClassFields(_arg1, _local4);
};
};
};
};
};
};
} else {
if (_local3 == "TObject"){
if (useCache){
false;
};
if (false){
return;
};
buf.add("o");
serializeFields(_arg1);
} else {
if (_local3 == "TEnum"){
_local4 = (_local2[0] as Class);
if (useCache){
false;
};
if (false){
return;
};
cache.pop();
buf.add("w");
serialize(Type.getEnumName(_local4));
serializeString(_arg1.tag);
buf.add(":");
if ((_arg1.params == null)){
buf.add(0);
} else {
_local6 = _arg1.params.length;
buf.add(_local6);
_local7 = 0;
_local8 = _local6;
do {
//unresolved if
_local9 = _local7;
_local7++;
serialize(_arg1.params[_local9]);
} while (true);
};
cache.push(_arg1);
} else {
if (_local3 == "TFunction"){
throw ("Cannot serialize function");
} else {
throw ((("Cannot serialize " + Std.string(_arg1)) as String));
};
};
};
};
};
};
};
};
}
public static function run(_arg1:Object):String{
var _local2 = (new Serializer() as Serializer);
_local2.serialize(_arg1);
return (_local2.toString());
}
}
class MovieTile extends Sprite {
public var tiles:Array;
public var frames:int;
public var curframe:int;
public var container:Bitmap;
public var animTimer:Timer;
public function MovieTile(_arg1:BitmapData=undefined, _arg2:int=undefined, _arg3:int=undefined):void{
var _local8:int;
var _local9:int;
var _local10:int;
var _local11:int;
var _local12 = (null as BitmapData);
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local4:int = Std.int((_arg1.width / _arg2));
var _local5:int = Std.int((_arg1.height / _arg3));
tiles = new Array();
container = new Bitmap();
animTimer = new Timer(100);
curframe = 0;
frames = 0;
var _local6:int;
var _local7:int = _local5;
do {
//unresolved if
_local8 = _local6;
_local6++;
_local9 = 0;
_local10 = _local4;
do {
//unresolved if
_local11 = _local9;
_local9++;
_local12 = (new BitmapData(_arg2, _arg3, true) as BitmapData);
_local12.copyPixels(_arg1, new Rectangle((_local11 * _arg2), (_local8 * _arg3), _arg2, _arg3), new Point(0, 0));
tiles.push(_local12);
frames = (frames + 1);
} while (true);
} while (true);
container.bitmapData = (tiles[curframe] as BitmapData);
animTimer.addEventListener(TimerEvent.TIMER, animateTimerHandler);
addChild(container);
}
public function stop():void{
animTimer.stop();
animTimer.reset();
container.bitmapData = (tiles[0] as BitmapData);
curframe = 0;
}
public function setSmooting(_arg1:Boolean):void{
container.smoothing = _arg1;
}
public function play(_arg1:Object=undefined, _arg2:Object=undefined):void{
if (Std.bool(_arg1)){
animTimer.delay = _arg1;
};
if (Std.bool(_arg2)){
animTimer.repeatCount = _arg2;
};
animTimer.start();
}
public function nextFrame():void{
curframe = ((curframe == (tiles.length - 1))) ? 0 : (curframe + 1);
container.bitmapData = (tiles[curframe] as BitmapData);
}
public function isNextFrame(_arg1:int):Boolean{
var _local2:Boolean;
if (((curframe + 1) == _arg1)){
_local2 = true;
};
return (_local2);
}
public function goToFrame(_arg1:int):void{
container.bitmapData = (tiles[_arg1] as BitmapData);
curframe = _arg1;
}
public function animateTimerHandler(_arg1:TimerEvent):void{
curframe = ((curframe == (tiles.length - 1))) ? 0 : (curframe + 1);
container.bitmapData = (tiles[curframe] as BitmapData);
}
}
class EnemyDSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictEquip:MovieTile;
public var inflictCore:Bitmap;
public var equipframes:int;
public var equip:MovieTile;
public var core:Sprite;
public var container:Sprite;
public function EnemyDSprite():void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(14, 14, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
core = new Sprite();
core.addChild(new Bitmap(_local1));
core.x = -7;
core.y = -7;
var _local2 = (new BitmapData(448, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 96, 448, 32), new Point(0, 0));
equip = new MovieTile(_local2, 32, 32);
equip.x = -16;
equip.y = -16;
equipframes = equip.frames;
var _local3 = (new BitmapData(14, 14, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(425, 137, 14, 14), new Point(0, 0));
var _local4:int;
var _local5:int = 14;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 14;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local3.getPixel32(_local6, _local9) > 0)){
_local3.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local3);
inflictCore.x = -7;
inflictCore.y = -7;
var _local10 = (new BitmapData(448, 32, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(0, 96, 448, 32), new Point(0, 0));
_local4 = 0;
_local5 = 448;
do {
//unresolved if
_local6 = _local4;
_local4++;
_local7 = 0;
_local8 = 32;
do {
//unresolved if
_local9 = _local7;
_local7++;
if ((_local10.getPixel32(_local6, _local9) > 0)){
_local10.setPixel32(_local6, _local9, -1);
};
} while (true);
} while (true);
inflictEquip = new MovieTile(_local10, 32, 32);
inflictEquip.x = -16;
inflictEquip.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictEquip);
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(equip);
container.addChild(core);
addChild(container);
}
public function animate():void{
equip.nextFrame();
inflictEquip.nextFrame();
}
}
class BossMine extends Enemy {
public var speed:Number;
public var lifetime:int;
public var enemySprite:BossMineSprite;
public var curlifetime:int;
public var curanimateque:int;
public var animatespeed:int;
public function BossMine(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
isMine = true;
hitpoint = Config.bossMine.hitpoint;
worth = Config.bossMine.worth;
enemySprite = new BossMineSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
var _local4:int = 1;
var _local5:int = 2;
speed = ((Math.random() * (_local5 - _local4)) + _local4);
var _local6 = (new Sprite() as Sprite);
_local6.graphics.beginFill(0xFFFFFF);
_local6.graphics.drawRect(-10, -10, 20, 20);
hitbox = _local6;
hitbox.alpha = 0;
animatespeed = 20;
curanimateque = 0;
lifetime = 700;
curlifetime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = false;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (1 - (curGhostingQue / ghostingTime));
} else {
curGhostingQue = ghostingTime;
MissionManager.currentMission.removeEnemy(this);
destroy(false);
};
} else {
if ((curlifetime < lifetime)){
curlifetime = (curlifetime + 1);
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
} else {
if ((curlifetime >= lifetime)){
isGhosting = true;
curlifetime = lifetime;
};
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.bossMineScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class Http {
public var url:String;
public var params:Hash;
public var onStatus;
public var onError;
public var onData;
public var headers:Hash;
public function Http(_arg1:String=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
onData = function (_arg1:String):void{
};
onError = function (_arg1:String):void{
};
onStatus = function (_arg1:int):void{
};
url = _arg1;
headers = new Hash();
params = new Hash();
}
public function setParameter(_arg1:String, _arg2:String):void{
params.set(_arg1, _arg2);
}
public function setHeader(_arg1:String, _arg2:String):void{
headers.set(_arg1, _arg2);
}
public function request(_arg1:Boolean):void{
var _local5:* = null;
var _local6 = (null as String);
var _local7 = (null as Array);
var _local9 = (null as String);
var _local10:* = null;
var me = this;
var loader = new URLLoader();
loader.addEventListener("complete", function (_arg1:Object):void{
me.onData(loader.data);
});
loader.addEventListener("httpStatus", function (_arg1:Object):void{
if (!((_arg1.status == 0))){
me.onStatus(_arg1.status);
};
});
loader.addEventListener("ioError", function (_arg1:Object):void{
me.onError((_arg1.text as String));
});
loader.addEventListener("securityError", function (_arg1:Object):void{
me.onError((_arg1.text as String));
});
var _local3:Boolean;
var _local4 = (new URLVariables() as URLVariables);
_local5 = params.keys();
do {
//unresolved if
_local6 = (_local5.next() as String);
_local3 = true;
Reflect.setField(_local4, _local6, params.get(_local6));
} while (true);
_local6 = (url as String);
if (_local3){
false;
};
if (false){
_local7 = (url.split("?") as Array);
if ((_local7.length > 1)){
_local6 = (_local7.shift() as String);
_local4.decode(_local7.join("?"));
};
};
_local7 = (_local6.split("xxx") as Array);
var _local8 = (new URLRequest(_local6) as URLRequest);
_local5 = headers.keys();
do {
//unresolved if
_local9 = (_local5.next() as String);
_local8.requestHeaders.push(new URLRequestHeader(_local9, headers.get(_local9)));
} while (true);
_local8.data = _local4;
_local8.method = (_arg1) ? "POST" : "GET";
try {
loader.load(_local8);
} catch(#InvalidMultinameIndex#) {
_local10 = !NULL!;
_local5 = _local10;
onError((("Exception: " + Std.string(_local5)) as String));
};
}
}
class Mission0 extends Mission {
public var level9:Object;
public var level8:Object;
public var level7:Object;
public var level6:Object;
public var level5:Object;
public var level4:Object;
public var level3:Object;
public var level2:Object;
public var level10:Object;
public var level1:Object;
public function Mission0():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
integrityThreshold = 4;
regenIntegrityRate = 0.001;
damageIntegrityRate = 0.001;
var _local1 = (new List() as List);
level1 = {pattern:_local1, delay:-1, id:1};
var _local2 = (new List() as List);
_local2.add({pos:new Point(250, 100), enemy:EnemyTestMine});
_local2.add({pos:new Point(250, 400), enemy:EnemyTestMine});
_local2.add({pos:new Point(100, 250), enemy:EnemyTestMine});
_local2.add({pos:new Point(400, 250), enemy:EnemyTestMine});
level2 = {pattern:_local2, delay:-1, id:2};
var _local3 = (new List() as List);
_local3.add({pos:new Point(100, 150), enemy:EnemyTestMine});
_local3.add({pos:new Point(100, 350), enemy:EnemyTestMine});
_local3.add({pos:new Point(400, 150), enemy:EnemyTestMine});
_local3.add({pos:new Point(400, 350), enemy:EnemyTestMine});
_local3.add({pos:new Point(150, 100), enemy:EnemyTestMine});
_local3.add({pos:new Point(150, 400), enemy:EnemyTestMine});
_local3.add({pos:new Point(350, 100), enemy:EnemyTestMine});
_local3.add({pos:new Point(350, 400), enemy:EnemyTestMine});
level3 = {pattern:_local3, delay:-1, id:3};
var _local4 = (new List() as List);
_local4.add({pos:new Point(250, 200), enemy:EnemyTestMine});
_local4.add({pos:new Point(250, 300), enemy:EnemyTestMine});
_local4.add({pos:new Point(200, 250), enemy:EnemyTestMine});
_local4.add({pos:new Point(300, 250), enemy:EnemyTestMine});
level4 = {pattern:_local4, delay:-1, id:4};
var _local5 = (new List() as List);
_local5.add({pos:new Point(100, 150), enemy:EnemyTestMine});
_local5.add({pos:new Point(200, 150), enemy:EnemyTestMine});
_local5.add({pos:new Point(300, 150), enemy:EnemyTestMine});
_local5.add({pos:new Point(400, 150), enemy:EnemyTestMine});
_local5.add({pos:new Point(100, 350), enemy:EnemyTestMine});
_local5.add({pos:new Point(200, 350), enemy:EnemyTestMine});
_local5.add({pos:new Point(300, 350), enemy:EnemyTestMine});
_local5.add({pos:new Point(400, 350), enemy:EnemyTestMine});
level5 = {pattern:_local5, delay:1500, id:5};
var _local6 = (new List() as List);
_local6.add({pos:new Point(50, 200), enemy:EnemyTestMine});
_local6.add({pos:new Point(150, 200), enemy:EnemyTestMine});
_local6.add({pos:new Point(250, 200), enemy:EnemyTestMine});
_local6.add({pos:new Point(350, 200), enemy:EnemyTestMine});
_local6.add({pos:new Point(450, 200), enemy:EnemyTestMine});
_local6.add({pos:new Point(50, 300), enemy:EnemyTestMine});
_local6.add({pos:new Point(150, 300), enemy:EnemyTestMine});
_local6.add({pos:new Point(250, 300), enemy:EnemyTestMine});
_local6.add({pos:new Point(350, 300), enemy:EnemyTestMine});
_local6.add({pos:new Point(450, 300), enemy:EnemyTestMine});
level6 = {pattern:_local6, delay:-1, id:6};
}
override public function start():void{
var _local3:* = null;
var _local4:* = null;
var _local5 = (null as Enemy);
hasStarted = true;
nextLevelTime = currentLevel.delay;
var _local1 = ((currentLevel.pattern as List) as List);
var _local2:* = _local1.iterator();
do {
//unresolved if
_local3 = _local2.next();
_local4 = _local3.enemy;
_local5 = (Type.createInstance(Type.toClass(_local4), [parent, boundary, (_local3.pos as Point)]) as Enemy);
enemies.push(_local5);
} while (true);
if (!(SoundManager.isAmbientPlaying())){
SoundManager.playAmbient("mission");
};
}
override public function resetPlayerDestroyFlag():void{
hasDestroyedPlayer = false;
}
override public function resetIntegrity():void{
currentIntegrity = 1;
}
override public function removeEnemy(_arg1:Enemy):void{
enemies.remove(_arg1);
}
override public function prepareLevels():void{
levels.add(level1);
levels.add(level2);
levels.add(level3);
levels.add(level4);
levels.add(level5);
levels.add(level6);
var _local1 = (new Bitmap(Assets.objects.get("Background00")) as Bitmap);
ScreenManager.playScreen.setBackground(_local1);
}
override public function prepare(_arg1:Sprite, _arg2:Rectangle):void{
hasStarted = false;
isLastLevelInMission = false;
hasDestroyedPlayer = false;
parent = _arg1;
boundary = _arg2;
nextLevelTime = 0;
currentTime = 0;
lastCheckedTime = 0;
currentIntegrity = 1;
prepareLevels();
preStart();
}
override public function preStart():void{
currentLevel = levels.first();
start();
}
override public function preEnd():void{
hasStarted = false;
TutorialManager.startL5M0 = LevelStatus.FINISHED;
TutorialManager.steps.get(31).onTrigger();
}
override public function next():void{
levels.remove(currentLevel);
if (!(levels.isEmpty())){
currentLevel = levels.first();
start();
} else {
isLastLevelInMission = true;
};
if (!(isLastLevelInMission)){
Profile.curLevel = (Profile.curLevel + 1);
ScreenManager.playScreen.updateHUDLevels();
};
}
override public function levelList():List{
return (levels);
}
override public function evaluate():void{
var _local1:int;
var _local2 = (null as Enemy);
var _local3:* = null;
var _local4:* = null;
if (hasStarted){
false;
};
if (false){
if ((TutorialManager.startL2M0 == LevelStatus.STARTED)){
_local1 = 0;
do {
//unresolved if
_local2 = ((enemies[_local1] as Enemy) as Enemy);
_local2.update();
_local1++;
} while (true);
if ((enemies.length == 0)){
TutorialManager.startL2M0 = LevelStatus.FINISHED;
TutorialManager.steps.get(4).onTrigger();
};
};
if ((TutorialManager.startL3M0 == LevelStatus.STARTED)){
_local3 = enemies.iterator();
do {
//unresolved if
_local4 = _local3.next();
_local4.update();
} while (true);
if ((enemies.length == 0)){
TutorialManager.startL3M0 = LevelStatus.FINISHED;
TutorialManager.steps.get(6).onTrigger();
};
};
if ((TutorialManager.startL4M0 == LevelStatus.STARTED)){
_local3 = enemies.iterator();
do {
//unresolved if
_local4 = _local3.next();
_local4.update();
} while (true);
TutorialManager.startL4M0 = LevelStatus.FINISHED;
};
if ((TutorialManager.startL5M0 == LevelStatus.STARTED)){
if ((currentTime < nextLevelTime)){
currentTime = (currentTime + 1);
ScreenManager.playScreen.setWavePerc((1 - (currentTime / nextLevelTime)));
} else {
currentTime = 0;
if (!(isLastLevelInMission)){
next();
};
};
_local3 = enemies.iterator();
do {
//unresolved if
_local4 = _local3.next();
_local4.update();
} while (true);
if ((enemies.length >= integrityThreshold)){
currentIntegrity = (currentIntegrity - damageIntegrityRate);
} else {
if ((enemies.length > 0)){
false;
};
if (false){
currentIntegrity = (currentIntegrity - ((enemies.length / integrityThreshold) * damageIntegrityRate));
} else {
if ((enemies.length == 0)){
currentIntegrity = (currentIntegrity + regenIntegrityRate);
};
};
};
if ((currentIntegrity > 1)){
currentIntegrity = 1;
} else {
if ((currentIntegrity < 0)){
currentIntegrity = 0;
if (!(hasDestroyedPlayer)){
ScreenManager.playScreen.player.destroy();
hasDestroyedPlayer = true;
if ((Profile.lives > 0)){
currentIntegrity = 1;
} else {
preEnd();
};
};
};
};
ScreenManager.playScreen.setSystemHPPerc(currentIntegrity);
if ((currentIntegrity < 1)){
false;
};
if (false){
currentIntegrity = (currentIntegrity + 0.01);
};
if ((currentTime < nextLevelTime)){
false;
if ((currentIntegrity == 1)){
false;
};
};
if (false){
_local1 = Math.round((((nextLevelTime - currentTime) / nextLevelTime) * 10));
currentTime = (currentTime + Std.int((nextLevelTime * 0.01)));
if (!((lastCheckedTime == _local1))){
lastCheckedTime = _local1;
ScreenManager.playScreen.addBonusTime();
};
};
if (levels.isEmpty()){
false;
};
if (false){
preEnd();
};
};
} else {
currentTime = (currentTime + 1);
if ((currentTime == 75)){
false;
};
if (false){
TutorialManager.startFirstStep();
};
};
}
override public function enemyList():Array{
return (enemies);
}
override public function end():void{
MissionManager.nextMission();
if (!(SoundManager.isAmbientPlaying())){
SoundManager.stopAmbient();
};
}
}
class ValueType {
public const __enum__ = true;
public var tag;
public var params;
public static const __isenum = true;
public static var TUnknown:ValueType;
public static var TObject:ValueType;
public static var TNull:ValueType;
public static var TInt:ValueType;
public static var TFunction:ValueType;
public static var TFloat:ValueType;
public static var TBool:ValueType;
public function ValueType(_arg1:String, _arg2:Object):void{
tag = _arg1;
params = _arg2;
}
public function toString():String{
return (Boot_BA08CD.enum_to_string(this));
}
public static function TEnum(_arg1:Class):ValueType{
return (new ValueType("TEnum", [_arg1]));
}
public static function TClass(_arg1:Class):ValueType{
return (new ValueType("TClass", [_arg1]));
}
}
class Vector {
public var vy:Number;
public var vx:Number;
public function Vector(_arg1:Number=undefined, _arg2:Number=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
vx = _arg1;
vy = _arg2;
}
public function toString():String{
return (((((vx + " : ") as String) + vy) as String));
}
public function times(_arg1:Vector):Vector{
return (new Vector((vx * _arg1.vx), (vy * _arg1.vy)));
}
public function setTo(_arg1:Number, _arg2:Number):void{
vx = _arg1;
vy = _arg2;
}
public function plusEquals(_arg1:Vector):Vector{
vx = (vx + _arg1.vx);
vy = (vy + _arg1.vy);
return (this);
}
public function plus(_arg1:Vector):Vector{
return (new Vector((vx + _arg1.vx), (vy + _arg1.vy)));
}
public function normalize():Vector{
var _local1:Number = magnitude();
if ((_local1 == 0)){
_local1 = 0.0001;
};
return (mult((1 / _local1)));
}
public function multEquals(_arg1:Number):Vector{
vx = (vx * _arg1);
vy = (vy * _arg1);
return (this);
}
public function mult(_arg1:Number):Vector{
return (new Vector((vx * _arg1), (vy * _arg1)));
}
public function minusEquals(_arg1:Vector):Vector{
vx = (vx - _arg1.vx);
vy = (vy - _arg1.vy);
return (this);
}
public function minus(_arg1:Vector):Vector{
return (new Vector((vx - _arg1.vx), (vy - _arg1.vy)));
}
public function magnitude():Number{
return (Math.sqrt(((vx * vx) + (vy * vy))));
}
public function dot(_arg1:Vector):Number{
return (((vx * _arg1.vx) + (vy * _arg1.vy)));
}
public function divEqual(_arg1:Number):Vector{
if ((_arg1 == 0)){
_arg1 = 0.0001;
};
vx = (vx / _arg1);
vy = (vy / _arg1);
return (this);
}
public function distance(_arg1:Vector):Number{
var _local2 = (minus(_arg1) as Vector);
return (_local2.magnitude());
}
public function cross(_arg1:Vector):Number{
return (((vx * _arg1.vy) - (vy * _arg1.vx)));
}
public function copy(_arg1:Vector):void{
vx = _arg1.vx;
vy = _arg1.vy;
}
}
class Raster {
public function Raster():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function line(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:uint):void{
var _local12:int;
var _local15:int;
var _local16:int;
var _local17:int;
var _local13:uint = _arg2;
var _local14:uint = _arg3;
var _local7:int = (_arg4 - _arg2);
var _local8:int = (_arg5 - _arg3);
var _local10:uint = ((_local7 > 0)) ? 1 : -1;
var _local11:uint = ((_local8 > 0)) ? 1 : -1;
_local7 = Math.round(Math.abs(_local7));
_local8 = Math.round(Math.abs(_local8));
_arg1.setPixel32(_local13, _local14, _arg6);
if ((_local7 > _local8)){
_local12 = Math.round((_local7 / 2));
_local15 = 1;
_local16 = (_local7 + 1);
do {
//unresolved if
_local17 = _local15;
_local15++;
_local13 = (_local13 + _local10);
_local12 = (_local12 + _local8);
if ((_local12 >= _local7)){
_local12 = (_local12 - _local7);
_local14 = (_local14 + _local11);
};
_arg1.setPixel32(_local13, _local14, _arg6);
} while (true);
} else {
_local12 = Math.round((_local8 / 2));
_local15 = 1;
_local16 = (_local8 + 1);
do {
//unresolved if
_local17 = _local15;
_local15++;
_local14 = (_local14 + _local11);
_local12 = (_local12 + _local7);
if ((_local12 >= _local8)){
_local12 = (_local12 - _local8);
_local13 = (_local13 + _local10);
};
_arg1.setPixel32(_local13, _local14, _arg6);
} while (true);
};
}
public static function triangle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:uint):void{
Raster.line(_arg1, _arg2, _arg3, _arg4, _arg5, _arg8);
Raster.line(_arg1, _arg4, _arg5, _arg6, _arg7, _arg8);
Raster.line(_arg1, _arg6, _arg7, _arg2, _arg3, _arg8);
}
public static function filledTri(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:uint):void{
var _local9:* = Reflect.empty();
Raster.lineTri(_local9, _arg1, _arg2, _arg3, _arg4, _arg5, _arg8);
Raster.lineTri(_local9, _arg1, _arg4, _arg5, _arg6, _arg7, _arg8);
Raster.lineTri(_local9, _arg1, _arg6, _arg7, _arg2, _arg3, _arg8);
}
public static function circle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:uint):void{
var _local6:int;
var _local7:int = _arg4;
var _local8:int = (1 - _arg4);
_arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5);
_arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5);
_arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5);
_arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5);
do {
//unresolved if
if ((_local8 < 0)){
_local8 = (_local8 + ((2 * _local6) + 3));
} else {
_local8 = (_local8 + ((2 * (_local6 - _local7)) + 5));
_local7--;
};
_local6++;
_arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5);
_arg1.setPixel32((_arg2 - _local6), (_arg3 + _local7), _arg5);
_arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5);
_arg1.setPixel32((_arg2 - _local6), (_arg3 - _local7), _arg5);
_arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5);
_arg1.setPixel32((_arg2 - _local7), (_arg3 - _local6), _arg5);
_arg1.setPixel32((_arg2 + _local7), (_arg3 - _local6), _arg5);
_arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5);
} while (true);
}
public static function aaCircle(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:int, _arg5:uint):void{
var _local10:Number;
var _local6:int = _arg4;
var _local7:int;
var _local9:Number = 0;
var _local11:* = Math.sqrt;
var _local12:* = Math.ceil;
_arg1.setPixel(Math.round((_arg2 + _local6)), Math.round((_arg3 + _local7)), _arg5);
_arg1.setPixel(Math.round((_arg2 - _local6)), Math.round((_arg3 + _local7)), _arg5);
_arg1.setPixel(Math.round((_arg2 + _local7)), Math.round((_arg3 + _local6)), _arg5);
_arg1.setPixel(Math.round((_arg2 + _local7)), Math.round((_arg3 - _local6)), _arg5);
do {
//unresolved if
_local7++;
_local10 = (_local12(_local11(((_arg4 * _arg4) - (_local7 * _local7)))) - _local11(((_arg4 * _arg4) - (_local7 * _local7))));
if ((_local10 < _local9)){
_local6--;
};
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 + _local6)), Math.round((_arg3 + _local7)), (1 - _local10), _arg5);
Raster.drawAlphaPixel(_arg1, Math.round(((_arg2 + _local6) - 1)), Math.round((_arg3 + _local7)), _local10, _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 - _local6)), Math.round((_arg3 + _local7)), (1 - _local10), _arg5);
Raster.drawAlphaPixel(_arg1, Math.round(((_arg2 - _local6) + 1)), Math.round((_arg3 + _local7)), _local10, _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 + _local6)), Math.round((_arg3 - _local7)), (1 - _local10), _arg5);
Raster.drawAlphaPixel(_arg1, Math.round(((_arg2 + _local6) - 1)), Math.round((_arg3 - _local7)), _local10, _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 - _local6)), Math.round((_arg3 - _local7)), (1 - _local10), _arg5);
Raster.drawAlphaPixel(_arg1, Math.round(((_arg2 - _local6) + 1)), Math.round((_arg3 - _local7)), _local10, _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 + _local7)), Math.round((_arg3 + _local6)), (1 - _local10), _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 + _local7)), Math.round(((_arg3 + _local6) - 1)), _local10, _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 - _local7)), Math.round((_arg3 + _local6)), (1 - _local10), _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 - _local7)), Math.round(((_arg3 + _local6) - 1)), _local10, _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 + _local7)), Math.round((_arg3 - _local6)), (1 - _local10), _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 + _local7)), Math.round(((_arg3 - _local6) + 1)), _local10, _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 - _local7)), Math.round((_arg3 - _local6)), (1 - _local10), _arg5);
Raster.drawAlphaPixel(_arg1, Math.round((_arg2 - _local7)), Math.round(((_arg3 - _local6) + 1)), _local10, _arg5);
_local9 = _local10;
} while (true);
}
public static function aaLine(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:uint):void{
var _local8:int;
var _local22:* = null;
var _local7:Boolean = (Math.abs((_arg5 - _arg3)) > Math.abs((_arg4 - _arg2)));
if (_local7){
_local8 = _arg2;
_arg2 = _arg3;
_arg3 = _local8;
_local8 = _arg4;
_arg4 = _arg5;
_arg5 = _local8;
};
if ((_arg2 > _arg4)){
_local8 = _arg2;
_arg2 = _arg4;
_arg4 = _local8;
_local8 = _arg3;
_arg3 = _arg5;
_arg5 = _local8;
};
var _local9:int = (_arg4 - _arg2);
var _local10:int = (_arg5 - _arg3);
var _local11:Number = (_local10 / _local9);
var _local12:int = _arg2;
var _local13:Number = (_arg3 + (_local11 * (_local12 - _arg2)));
var _local14:Number = (1 - ((_arg2 + 0.5) % 1));
var _local15:int = _local12;
var _local16:int = Math.floor(_local13);
var _local17:Number = ((1 - (_local13 % 1)) * _local14);
if (_local7){
//unresolved jump
};
_local17 = ((_local13 % 1) * _local14);
if (_local7){
//unresolved jump
};
var _local18:Number = (_local13 + _local11);
_local12 = _arg4;
_local13 = (_arg5 + (_local11 * (_local12 - _arg4)));
_local14 = ((_arg4 + 0.5) % 1);
var _local19:int = _local12;
var _local20:int = Math.floor(_local13);
_local17 = ((1 - (_local13 % 1)) * _local14);
if (_local7){
Raster.drawAlphaPixel(_arg1, _local20, _local19, _local17, _arg6);
} else {
Raster.drawAlphaPixel(_arg1, _local19, _local20, _local17, _arg6);
};
_local17 = ((_local13 % 1) * _local14);
if (_local7){
Raster.drawAlphaPixel(_arg1, (_local20 + 1), _local19, _local17, _arg6);
} else {
Raster.drawAlphaPixel(_arg1, _local19, (_local20 + 1), _local17, _arg6);
};
var _local21:int = _local15;
do {
_local22 = _local21;
_local21 = (_local22 + 1);
//unresolved if
_local17 = (1 - (_local18 % 1));
if (_local7){
Raster.drawAlphaPixel(_arg1, Math.round(_local18), _local21, _local17, _arg6);
} else {
Raster.drawAlphaPixel(_arg1, _local21, Math.round(_local18), _local17, _arg6);
};
_local17 = (_local18 % 1);
if (_local7){
Raster.drawAlphaPixel(_arg1, Math.round((_local18 + 1)), _local21, _local17, _arg6);
} else {
Raster.drawAlphaPixel(_arg1, _local21, Math.round((_local18 + 1)), _local17, _arg6);
};
_local18 = (_local18 + _local11);
} while (true);
}
public static function quadBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:uint, _arg9:Object=undefined):void{
var _local12:int;
var _local13:int;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
_arg9 = ((_arg9 == null)) ? 3 : _arg9;
var _local10:Number = _arg2;
var _local11:Number = _arg3;
var _local14:Number = 0;
var _local15:Number = (1 / _arg9);
var _local20:int;
do {
++_local20;
//unresolved if
_local16 = (_local15 * _local20);
_local17 = (_local16 * _local16);
_local18 = (1 - _local16);
_local19 = (_local18 * _local18);
_local12 = Math.round((((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6)));
_local13 = Math.round((((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7)));
_local14 = (_local14 + Math.sqrt((((_local12 - _local10) * (_local12 - _local10)) + ((_local13 - _local11) * (_local13 - _local11)))));
_local10 = _local12;
_local11 = _local13;
} while (true);
var _local21:int = Math.floor(_local14);
_local15 = (1 / _local21);
var _local22:int = _arg2;
var _local23:int = _arg3;
_local20 = -1;
do {
++_local20;
//unresolved if
_local16 = (_local15 * _local20);
_local17 = (_local16 * _local16);
_local18 = (1 - _local16);
_local19 = (_local18 * _local18);
_local12 = Math.round((((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6)));
_local13 = Math.round((((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7)));
Raster.line(_arg1, _local22, _local23, _local12, _local13, _arg8);
_local22 = _local12;
_local23 = _local13;
} while (true);
}
public static function cubicBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int, _arg9:int, _arg10:uint, _arg11:Object=undefined):void{
var _local14:int;
var _local15:int;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
_arg11 = ((_arg11 == null)) ? 5 : _arg11;
var _local12:Number = _arg2;
var _local13:Number = _arg3;
var _local16:Number = 0;
var _local17:Number = (1 / _arg11);
var _local24:int;
do {
++_local24;
//unresolved if
_local18 = (_local17 * _local24);
_local19 = (_local18 * _local18);
_local20 = (_local19 * _local18);
_local21 = (1 - _local18);
_local22 = (_local21 * _local21);
_local23 = (_local22 * _local21);
_local14 = Math.round(((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20)));
_local15 = Math.round(((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20)));
_local16 = (_local16 + Math.sqrt((((_local14 - _local12) * (_local14 - _local12)) + ((_local15 - _local13) * (_local15 - _local13)))));
_local12 = _local14;
_local13 = _local15;
} while (true);
var _local25:int = Math.floor(_local16);
_local17 = (1 / _local25);
var _local26:int = _arg2;
var _local27:int = _arg3;
_local24 = -1;
do {
++_local24;
//unresolved if
_local18 = (_local17 * _local24);
_local19 = (_local18 * _local18);
_local20 = (_local19 * _local18);
_local21 = (1 - _local18);
_local22 = (_local21 * _local21);
_local23 = (_local22 * _local21);
_local14 = Math.round(((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20)));
_local15 = Math.round(((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20)));
Raster.line(_arg1, _local26, _local27, _local14, _local15, _arg10);
_local26 = _local14;
_local27 = _local15;
} while (true);
}
public static function drawAlphaPixel(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:Number, _arg5:uint):void{
var _local6:uint = _arg1.getPixel32(_arg2, _arg3);
var _local7:uint = ((_local6 & 0xFF0000) >> 16);
var _local8:uint = ((_local6 & 0xFF00) >> 8);
var _local9:uint = (_local6 & 0xFF);
var _local10:uint = ((_arg5 & 0xFF0000) >> 16);
var _local11:uint = ((_arg5 & 0xFF00) >> 8);
var _local12:uint = (_arg5 & 0xFF);
var _local13:uint = 0xFF;
var _local14:uint = Math.round(((_local10 * _arg4) + (_local7 * (1 - _arg4))));
var _local15:uint = Math.round(((_local11 * _arg4) + (_local8 * (1 - _arg4))));
var _local16:uint = Math.round(((_local12 * _arg4) + (_local9 * (1 - _arg4))));
var _local17:uint = ((((_local13 << 24) + (_local14 << 16)) + (_local15 << 8)) + _local16);
_arg1.setPixel32(_arg2, _arg3, _local17);
}
public static function checkLine(_arg1:Object, _arg2:int, _arg3:int, _arg4:BitmapData, _arg5:uint, _arg6:Rectangle):void{
if (Reflect.hasField(_arg1, Std.string(_arg3))){
if ((Reflect.field(_arg1, Std.string(_arg3)) > _arg2)){
_arg6.width = (Reflect.field(_arg1, Std.string(_arg3)) - _arg2);
_arg6.x = _arg2;
_arg6.y = _arg3;
_arg4.fillRect(_arg6, _arg5);
} else {
_arg6.width = (_arg2 - Reflect.field(_arg1, Std.string(_arg3)));
_arg6.x = Reflect.field(_arg1, Std.string(_arg3));
_arg6.y = _arg3;
_arg4.fillRect(_arg6, _arg5);
};
} else {
Reflect.setField(_arg1, Std.string(_arg3), _arg2);
};
}
public static function lineTri(_arg1:Object, _arg2:BitmapData, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:uint):void{
var _local9:int;
var _local21:* = null;
var _local8:Boolean = (((_arg6 - _arg4) * (_arg6 - _arg4)) > ((_arg5 - _arg3) * (_arg5 - _arg3)));
if (_local8){
_local9 = _arg3;
_arg3 = _arg4;
_arg4 = _local9;
_local9 = _arg5;
_arg5 = _arg6;
_arg6 = _local9;
};
if ((_arg3 > _arg5)){
_arg3 = (_arg3 ^ _arg5);
_arg5 = (_arg5 ^ _arg3);
_arg3 = (_arg3 ^ _arg5);
_arg4 = (_arg4 ^ _arg6);
_arg6 = (_arg6 ^ _arg4);
_arg4 = (_arg4 ^ _arg6);
};
var _local10:int = (_arg5 - _arg3);
var _local11:int = Math.round(Math.abs((_arg6 - _arg4)));
var _local12:int;
var _local13:int = _arg4;
var _local14:int = ((_arg4 < _arg6)) ? 1 : -1;
var _local15:int = _arg3;
var _local16:int = (_arg5 - (_local10 >> 1));
var _local17:int = _arg5;
var _local18:int = _arg6;
var _local19 = (new Rectangle() as Rectangle);
var _local20:int;
_local19.x = 0;
_local19.y = 0;
_local19.width = 0;
_local19.height = 1;
do {
_local21 = _local15;
_local15 = (_local21 + 1);
//unresolved if
if (_local8){
Raster.checkLine(_arg1, _local13, _local15, _arg2, _arg7, _local19);
if (!((_local17 == _arg5))){
false;
};
if (false){
Raster.checkLine(_arg1, _local18, (_local17 + 1), _arg2, _arg7, _local19);
};
};
_local12 = (_local12 + _local11);
if (((_local12 << 1) >= _local10)){
if (!(_local8)){
Raster.checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19);
if (!((_local17 == _local16))){
Raster.checkLine(_arg1, (_local17 + 1), _local18, _arg2, _arg7, _local19);
};
};
_local20 = 0;
_local13 = (_local13 + _local14);
_local18 = (_local18 - _local14);
_local12 = (_local12 - _local10);
};
_local20++;
_local17--;
} while (true);
if (!(_local8)){
Raster.checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19);
};
}
}
class EnemyTestMine extends Enemy {
public var speed:Number;
public var lifetime:int;
public var enemySprite:EnemyMineSprite;
public var curlifetime:int;
public var curanimateque:int;
public var animatespeed:int;
public function EnemyTestMine(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
isMine = true;
hitpoint = Config.enemyTestMine.hitpoint;
worth = Config.enemyTestMine.worth;
enemySprite = new EnemyMineSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
var _local4:int = 1;
var _local5:int = 2;
speed = ((Math.random() * (_local5 - _local4)) + _local4);
var _local6 = (new Sprite() as Sprite);
_local6.graphics.beginFill(0xFFFFFF);
_local6.graphics.drawRect(-6, -6, 12, 12);
hitbox = _local6;
hitbox.alpha = 0;
animatespeed = 20;
curanimateque = 0;
lifetime = 999999;
curlifetime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = false;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (1 - (curGhostingQue / ghostingTime));
} else {
curGhostingQue = ghostingTime;
MissionManager.currentMission.removeEnemy(this);
destroy(false);
};
} else {
if ((curlifetime < lifetime)){
curlifetime = (curlifetime + 1);
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
} else {
if ((curlifetime >= lifetime)){
isGhosting = true;
curlifetime = lifetime;
};
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.enemyAScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class PlayerSprite extends Sprite {
public var weaponrotation:Number;
public var weapon:Sprite;
public var core:MovieTile;
public var container:Sprite;
public function PlayerSprite():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
core = new MovieTile(Assets.objects.get("Player_Cores"), 6, 6);
core.setSmooting(true);
core.x = -3;
core.y = -3;
weapon = new Sprite();
container = new Sprite();
container.addChild(weapon);
container.addChild(core);
addChild(container);
}
public function swapWeapon(_arg1:String):void{
if ((weapon.numChildren > 0)){
weapon.removeChildAt(0);
};
weapon.addChildAt(Type.createInstance(Assets.classes.get(_arg1), []), 0);
}
public function setRotation(_arg1:Number):Number{
weapon.rotation = _arg1;
return (weapon.rotation);
}
public function getRotation():Number{
return (weapon.rotation);
}
}
class BossCSprite extends Sprite {
public var spawnCore:MovieTile;
public var inflictGroup:Sprite;
public var inflictCore:Bitmap;
public var equipframes:int;
public var core:MovieTile;
public var container:Sprite;
public function BossCSprite():void{
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(128, 192, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(320, 224, 128, 192), new Point(0, 0));
core = new MovieTile(_local1, 64, 64);
core.x = -32;
core.y = -32;
var _local2 = (new BitmapData(64, 64, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(320, 224, 64, 64), new Point(0, 0));
var _local3:int;
var _local4:int = 64;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 0;
_local7 = 64;
do {
//unresolved if
_local8 = _local6;
_local6++;
if ((_local2.getPixel32(_local5, _local8) > 0)){
_local2.setPixel32(_local5, _local8, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local2);
inflictCore.x = -32;
inflictCore.y = -32;
var _local9 = (new BitmapData(128, 64, true) as BitmapData);
_local9.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(320, 160, 128, 64), new Point(0, 0));
spawnCore = new MovieTile(_local9, 64, 64);
spawnCore.x = -32;
spawnCore.y = -32;
spawnCore.visible = false;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(core);
container.addChild(spawnCore);
addChild(container);
}
public function spawning(_arg1:Boolean):void{
spawnCore.visible = _arg1;
spawnCore.nextFrame();
}
public function animate():void{
core.nextFrame();
}
}
class EnemyF extends Enemy {
public var speed:Number;
public var shieldSprite:Sprite;
public var projectileData:Object;
public var moveTime:int;
public var minSpeed:Number;
public var maxshieldpoint:int;
public var maxSpeed:Number;
public var invincibleTime:int;
public var enemySprite:EnemyFSprite;
public var curanimateque:int;
public var curMoveTime:int;
public var curInvincibleTime:int;
public var animatespeed:int;
public function EnemyF(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.enemyF.hitpoint;
maxshieldpoint = (Config.enemyF.hitpoint * 5);
shieldpoint = maxshieldpoint;
worth = Config.enemyF.worth;
enemySprite = new EnemyFSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
shieldSprite = new Sprite();
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-7, -7, 14, 14);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 0.5;
maxSpeed = 0.8;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
var _local6:int = 500;
var _local7:int = 800;
var _local8:int = 500;
var _local9:int = 800;
invincibleTime = Std.int(((Math.random() * (_local7 - _local6)) + _local6));
moveTime = Std.int(((Math.random() * (_local9 - _local8)) + _local8));
curInvincibleTime = 0;
curMoveTime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
var _local1 = (null as Point);
var _local2:Number;
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
if ((curMoveTime < moveTime)){
false;
};
if (false){
curMoveTime = (curMoveTime + 1);
isInvincible = false;
destroyShield();
} else {
if ((curInvincibleTime < invincibleTime)){
false;
};
if (false){
curInvincibleTime = (curInvincibleTime + 1);
if ((shieldpoint > 1)){
isInvincible = true;
createShield();
} else {
isInvincible = false;
};
enemySprite.idle();
} else {
curInvincibleTime = 0;
curMoveTime = 0;
shieldpoint = maxshieldpoint;
};
};
_local1 = (new Point(ScreenManager.playScreen.player.locX, ScreenManager.playScreen.player.locY) as Point);
_local2 = Math.atan2((_local1.y - container.y), (_local1.x - container.x));
vectorX = (Math.cos(_local2) * speed);
vectorY = (Math.sin(_local2) * speed);
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.enemyFScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
public function destroyShield():void{
if (container.contains(shieldSprite)){
shieldSprite.graphics.clear();
shieldSprite.filters = [];
container.removeChild(shieldSprite);
};
}
override public function decreaseShield():void{
var _local1:Number = 0.3;
var _local2:Number = 1;
var _local3:Number = (shieldpoint / maxshieldpoint);
if ((_local3 <= 0)){
destroyShield();
};
var _local4:Number = ((_local3 * (_local2 - _local1)) + _local1);
var _local5:* = _local4;
shieldSprite.scaleY = _local5;
shieldSprite.scaleX = _local5;
}
public function createShield():void{
var _local1:* = null;
if (!(container.contains(shieldSprite))){
_local1 = 1;
shieldSprite.scaleY = _local1;
shieldSprite.scaleX = _local1;
shieldSprite.graphics.lineStyle(2, 0xFFFFFF, 0.5);
shieldSprite.graphics.drawCircle(0, 0, (enemySprite.width / 3));
shieldSprite.filters = [new BlurFilter(2, 2, 2)];
container.addChild(shieldSprite);
};
}
}
class Reflect {
public function Reflect():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function empty():Object{
return (new (Object));
}
public static function hasField(_arg1:Object, _arg2:String):Boolean{
return (_arg1.hasOwnProperty(_arg2));
}
public static function field(_arg1:Object, _arg2:String):Object{
return (_arg1[_arg2]);
}
public static function setField(_arg1:Object, _arg2:String, _arg3:Object):void{
_arg1[_arg2] = _arg3;
}
public static function callMethod(_arg1:Object, _arg2:Object, _arg3:Array):Object{
return (_arg2.apply(_arg1, _arg3));
}
public static function fields(_arg1:Object):Array{
if ((_arg1 == null)){
return (new Array());
};
var _local4:int;
var _local3 = ([] as Array);
var _local5:* = _arg1;
for (/*?*/in _arg1) {
_local3.push(//unresolved nextvalue or nextname);
};
var _local2 = (_local3 as Array);
_local4 = 0;
do {
//unresolved if
if (!(_arg1.hasOwnProperty((_local2[_local4] as String)))){
_local2.splice(_local4, 1);
} else {
_local4++;
};
} while (true);
return (_local2);
}
public static function isFunction(_arg1:Object):Boolean{
return ((typeof(_arg1) == "function"));
}
public static function compareMethods(_arg1:Object, _arg2:Object):Boolean{
if ((_arg1 == _arg2)){
return (true);
};
if (!!(Reflect.isFunction(_arg1))){
true;
};
if (true){
return (false);
};
return (false);
}
public static function isObject(_arg1:Object):Boolean{
var _local4:* = null;
var _local5:* = null;
if ((_arg1 == null)){
return (false);
};
var _local3 = (typeof(_arg1) as String);
if ((_local3 == "object")){
try {
if ((_arg1.__enum__ == true)){
return (false);
};
} catch(#InvalidMultinameIndex#) {
_local5 = !NULL!;
_local4 = _local5;
};
return (true);
};
return ((_local3 == "string"));
}
public static function deleteField(_arg1:Object, _arg2:String):Boolean{
if (!((_arg1.hasOwnProperty(_arg2) == true))){
return (false);
};
delete _arg1[_arg2];
return (true);
}
public static function copy(_arg1:Object):Object{
var _local4:* = null;
var _local2 = (Reflect.empty() as Object);
var _local3:* = Reflect.fields(_arg1).iterator();
do {
//unresolved if
_local4 = _local3.next();
Reflect.setField(_local2, _local4, Reflect.field(_arg1, _local4));
} while (true);
return (_local2);
}
public static function makeVarArgs(_arg1:Function):Object{
var f = _arg1;
return (function (... _args):Object{
return (f(_args));
});
}
}
class AsyncConnection {
public var onError:Function;
public var __path:Array;
public var __error:Object;
public var __data:Object;
public function AsyncConnection(_arg1:Object=undefined, _arg2:Array=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
__data = _arg1;
__path = _arg2;
__error = {ref:function (_arg1:Object):void{
throw (_arg1);
}};
}
public function setErrorHandler(_arg1:Function):Function{
__error.ref = _arg1;
return (_arg1);
}
public function getErrorHandler():Function{
return (__error.ref);
}
public function call(_arg1:Array, _arg2:Function=undefined):void{
var _local3 = (null as Array);
var onData = _arg2;
if (Reflect.hasField(__data, "connect")){
var me = this;
_local3 = ((_arg1.copy() as Array) as Array);
_local3.unshift(new Responder(function (_arg1:Object):void{
onData(_arg1);
}, function (_arg1:Object):void{
me.__error.ref(_arg1);
}));
_local3.unshift(__path.join("."));
__data.call.apply(__data, _local3);
return;
};
var _local4 = (new Http(__data) as Http);
me = this;
var _local5 = (new Serializer() as Serializer);
_local5.serialize(__path);
_local5.serialize(_arg1);
_local4.setHeader("X-Haxe-Remoting", "1");
_local4.setParameter("__x", _local5.toString());
_local4.onData = function (_arg1:String):void{
var _local4:* = null;
var _local5 = (null as Unserializer);
var _local6:* = null;
var _local7:* = null;
var _local3:Boolean = true;
try {
if (!(_arg1.length < 3)){
true;
};
if (true){
throw ((((("Invalid response : '" + _arg1) as String) + "'") as String));
};
_local5 = (new Unserializer(_arg1.substr(3, (_arg1.length - 3))) as Unserializer);
_local4 = _local5.unserialize();
} catch(#InvalidMultinameIndex#) {
_local7 = !NULL!;
_local6 = _local7;
_local3 = false;
me.__error.ref(_local6);
};
if (_local3){
onData(_local4);
};
};
_local4.onError = function (_arg1:String):void{
me.__error.ref(_arg1);
};
_local4.request(true);
}
public function __resolve(_arg1:String):AsyncConnection{
var _local2 = (new AsyncConnection(__data, (__path.copy() as Array)) as AsyncConnection);
_local2.__error = __error;
_local2.__path.push(_arg1);
return (_local2);
}
public static function urlConnect(_arg1:String):AsyncConnection{
return (new AsyncConnection(_arg1, []));
}
public static function amfConnect(_arg1:String):AsyncConnection{
var _local2 = (new NetConnection() as NetConnection);
var cnx = new AsyncConnection(_local2, []);
_local2.addEventListener(NetStatusEvent.NET_STATUS, function (_arg1:NetStatusEvent):void{
cnx.getErrorHandler()(_arg1);
});
_local2.connect(_arg1);
return (cnx);
}
}
class TechDialog extends Screen {
public var weaponSubDialog:Sprite;
public var weaponSlot2:TechItembox;
public var weaponSlot1:TechItembox;
public var upgradeBombButton:ButtonTile;
public var topAnchorButton:ButtonTile;
public var techTreeMask:Sprite;
public var techTree:Sprite;
public var techSubDialog:Sprite;
public var techPoint:Label;
public var techItemU:TechItembox;
public var techItemT:TechItembox;
public var techItemS:TechItembox;
public var techItemR:TechItembox;
public var techItemQ:TechItembox;
public var techItemO:TechItembox;
public var techItemN:TechItembox;
public var techItemL:TechItembox;
public var techItemK:TechItembox;
public var techItemH:TechItembox;
public var techItemG:TechItembox;
public var techItemE:TechItembox;
public var techItemD:TechItembox;
public var techItemB:TechItembox;
public var techItemA:TechItembox;
public var techContainer:Sprite;
public var stage:Stage;
public var middleAnchorButton:ButtonTile;
public var liftedTechItembox:TechItembox;
public var liftedTechContainer:Sprite;
public var isLifting:Boolean;
public var descValRightCol:Label;
public var descValLeftCol:Label;
public var descTitle:Label;
public var descDetails:Label;
public var descBox:Sprite;
public var descAttrRightCol:Label;
public var descAttrLeftCol:Label;
public var closeButton:ButtonTile;
public var bottomAnchorButton:ButtonTile;
public var bombQtyValue:MovieTile;
public var bombLvlValue:MovieTile;
public var addBombButton:ButtonTile;
public function TechDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
stage = Lib.current.stage;
isLifting = false;
var _local1 = (new TitleKroeger() as Font);
var _local2 = (new DescStandard() as Font);
var _local3:* = {align:TextFormatAlign.CENTER, height:12, width:32, selectable:false, embedFonts:true, color:0xFFFFFF, size:8, font:_local1.fontName};
var _local4:* = {align:TextFormatAlign.LEFT, height:12, width:218, selectable:false, embedFonts:true, color:0xFFFFFF, size:8, font:_local1.fontName};
var _local5:* = {height:100, width:218, multiline:true, align:TextFormatAlign.LEFT, selectable:false, color:0xFFFFFF, embedFonts:true, size:8, font:_local2.fontName};
var _local6:* = {height:60, width:70, multiline:true, align:TextFormatAlign.LEFT, selectable:false, color:0xFFFFFF, embedFonts:true, size:8, font:_local2.fontName};
var _local7:* = {height:60, width:35, multiline:true, align:TextFormatAlign.RIGHT, selectable:false, color:0xFFFFFF, embedFonts:true, size:8, font:_local2.fontName};
techPoint = new Label("0", _local3);
descTitle = new Label("Weapon Name", _local4);
descDetails = new Label("Description of the weapon", _local5);
descAttrLeftCol = new Label("HEATUP<br>BURNING<br>COOLDOWN", _local6);
descValLeftCol = new Label("0<br>0<br>0", _local7);
descAttrRightCol = new Label("DAMAGE<br>SPEED<br>COST", _local6);
descValRightCol = new Label("0<br>0<br>0", _local7);
techSubDialog = new Sprite();
techSubDialog.addChild(new Bitmap(Assets.objects.get("TechSubDialog")));
weaponSubDialog = new Sprite();
weaponSubDialog.addChild(new Bitmap(Assets.objects.get("WeaponSubDialog")));
techTree = new Sprite();
techTree.addChild(new Bitmap(Assets.objects.get("TechTree")));
techTreeMask = new Sprite();
techTreeMask.graphics.beginFill(0);
techTreeMask.graphics.drawRect(0, 0, 304, 264);
techContainer = new Sprite();
liftedTechContainer = new Sprite();
var _local8 = (new BitmapData(37, 52, true) as BitmapData);
_local8.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(54, 384, 37, 52), new Point(0, 0));
var _local9 = (new BitmapData(18, 45, true) as BitmapData);
_local9.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(36, 384, 18, 45), new Point(0, 0));
var _local10 = (new BitmapData(18, 45, true) as BitmapData);
_local10.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(18, 384, 18, 45), new Point(0, 0));
var _local11 = (new BitmapData(18, 45, true) as BitmapData);
_local11.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(0, 384, 18, 45), new Point(0, 0));
closeButton = new ButtonTile(_local8, 37, 13);
topAnchorButton = new ButtonTile(_local9, 18, 9, true);
middleAnchorButton = new ButtonTile(_local10, 18, 9, true);
bottomAnchorButton = new ButtonTile(_local11, 18, 9, true);
liftedTechItembox = (null as TechItembox);
weaponSlot1 = new TechItembox(Config.projectileA);
weaponSlot2 = new TechItembox(Config.projectileA);
var _local12 = (new BitmapData(14, 56, true) as BitmapData);
_local12.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(91, 384, 14, 56), new Point(0, 0));
var _local13 = (new BitmapData(160, 20, true) as BitmapData);
_local13.copyPixels(Assets.objects.get("TechTiles"), new Rectangle(0, 440, 160, 20), new Point(0, 0));
addBombButton = new ButtonTile(_local12, 14, 14);
upgradeBombButton = new ButtonTile(_local12, 14, 14);
addBombButton.lock();
upgradeBombButton.lock();
bombQtyValue = new MovieTile(_local13, 16, 20);
bombLvlValue = new MovieTile(_local13, 16, 20);
descBox = new Sprite();
descBox.graphics.beginFill(0, 0.8);
descBox.graphics.drawRect(0, 0, 250, 200);
descBox.visible = false;
descTitle.getTextField().x = 16;
descTitle.getTextField().y = 16;
descDetails.getTextField().x = 16;
descDetails.getTextField().y = 32;
descAttrLeftCol.getTextField().x = 16;
descAttrLeftCol.getTextField().y = (200 - descAttrLeftCol.getTextField().height);
descValLeftCol.getTextField().x = (descAttrLeftCol.getTextField().x + descAttrLeftCol.getTextField().width);
descValLeftCol.getTextField().y = (200 - descValLeftCol.getTextField().height);
descValRightCol.getTextField().x = ((250 - 16) - descValRightCol.getTextField().width);
descValRightCol.getTextField().y = (200 - descValLeftCol.getTextField().height);
descAttrRightCol.getTextField().x = (descValRightCol.getTextField().x - descAttrRightCol.getTextField().width);
descAttrRightCol.getTextField().y = (200 - descAttrLeftCol.getTextField().height);
techSubDialog.x = 75;
techSubDialog.y = 24;
weaponSubDialog.x = 75;
weaponSubDialog.y = 384;
techTreeMask.x = 23;
techTreeMask.y = 64;
techContainer.x = 23;
techContainer.y = 64;
closeButton.x = 350;
topAnchorButton.x = 350;
middleAnchorButton.x = 350;
bottomAnchorButton.x = 350;
closeButton.y = -9;
topAnchorButton.y = 58;
middleAnchorButton.y = 175;
bottomAnchorButton.y = 291;
weaponSlot1.x = 23;
weaponSlot1.y = 50;
weaponSlot2.x = 114;
weaponSlot2.y = 50;
weaponSlot1.setActive(true, false);
weaponSlot2.setActive(true, false);
bombQtyValue.x = 212;
bombQtyValue.y = 56;
bombLvlValue.x = 303;
bombLvlValue.y = 56;
addBombButton.x = 244;
addBombButton.y = 64;
upgradeBombButton.x = 274;
upgradeBombButton.y = 64;
techPoint.getTextField().x = 305;
techPoint.getTextField().y = 13;
techItemA = new TechItembox(Config.projectileA);
posTechItem(techItemA, Config.techItemA);
techItemB = new TechItembox(Config.projectileB);
posTechItem(techItemB, Config.techItemB);
techItemD = new TechItembox(Config.projectileD);
posTechItem(techItemD, Config.techItemD);
techItemE = new TechItembox(Config.projectileE);
posTechItem(techItemE, Config.techItemE);
techItemG = new TechItembox(Config.projectileG);
posTechItem(techItemG, Config.techItemG);
techItemH = new TechItembox(Config.projectileH);
posTechItem(techItemH, Config.techItemH);
techItemK = new TechItembox(Config.projectileK);
posTechItem(techItemK, Config.techItemK);
techItemL = new TechItembox(Config.projectileL);
posTechItem(techItemL, Config.techItemL);
techItemN = new TechItembox(Config.projectileN);
posTechItem(techItemN, Config.techItemN);
techItemO = new TechItembox(Config.projectileO);
posTechItem(techItemO, Config.techItemO);
techItemQ = new TechItembox(Config.projectileQ);
posTechItem(techItemQ, Config.techItemQ);
techItemR = new TechItembox(Config.projectileR);
posTechItem(techItemR, Config.techItemR);
techItemS = new TechItembox(Config.projectileS);
posTechItem(techItemS, Config.techItemS);
techItemT = new TechItembox(Config.projectileT);
posTechItem(techItemT, Config.techItemT);
techItemU = new TechItembox(Config.projectileU);
posTechItem(techItemU, Config.techItemU);
techItemA.setActive(true);
techContainer.addChild(techTree);
techContainer.addChild(techItemA);
techContainer.addChild(techItemB);
techContainer.addChild(techItemD);
techContainer.addChild(techItemE);
techContainer.addChild(techItemG);
techContainer.addChild(techItemH);
techContainer.addChild(techItemK);
techContainer.addChild(techItemL);
techContainer.addChild(techItemN);
techContainer.addChild(techItemO);
techContainer.addChild(techItemQ);
techContainer.addChild(techItemR);
techContainer.addChild(techItemS);
techContainer.addChild(techItemT);
techContainer.addChild(techItemU);
techContainer.mask = techTreeMask;
descBox.addChild(descTitle.getTextField());
descBox.addChild(descDetails.getTextField());
descBox.addChild(descAttrLeftCol.getTextField());
descBox.addChild(descAttrRightCol.getTextField());
descBox.addChild(descValLeftCol.getTextField());
descBox.addChild(descValRightCol.getTextField());
techSubDialog.addChild(techContainer);
techSubDialog.addChild(techTreeMask);
techSubDialog.addChild(closeButton);
techSubDialog.addChild(topAnchorButton);
techSubDialog.addChild(middleAnchorButton);
techSubDialog.addChild(bottomAnchorButton);
techSubDialog.addChild(techPoint.getTextField());
weaponSubDialog.addChild(weaponSlot1);
weaponSubDialog.addChild(weaponSlot2);
weaponSubDialog.addChild(addBombButton);
weaponSubDialog.addChild(bombQtyValue);
weaponSubDialog.addChild(upgradeBombButton);
weaponSubDialog.addChild(bombLvlValue);
closeButton.click = onCloseClick;
topAnchorButton.click = onTopAnchorClick;
middleAnchorButton.click = onMiddleAnchorClick;
bottomAnchorButton.click = onBottomAnchorClick;
addBombButton.click = onAddBombClick;
upgradeBombButton.click = onUpgradeBombClick;
addBombButton.addEventListener(MouseEvent.MOUSE_OVER, onAddBombMouseOver);
addBombButton.addEventListener(MouseEvent.MOUSE_OUT, onAddBombMouseOut);
upgradeBombButton.addEventListener(MouseEvent.MOUSE_OVER, onUpgradeBombMouseOver);
upgradeBombButton.addEventListener(MouseEvent.MOUSE_OUT, onUpgradeBombMouseOut);
container.addChild(techSubDialog);
container.addChild(weaponSubDialog);
container.addChild(descBox);
container.addChild(liftedTechContainer);
}
public function updateDialog():void{
closeButton.unlock();
if (TutorialManager.isRunning){
if ((TutorialManager.stepID >= 9)){
false;
};
if (!false){
true;
if ((TutorialManager.stepID >= 22)){
false;
};
};
if (true){
closeButton.lock();
};
};
techPoint.updateLabel(Std.string(Profile.techpoint));
bombQtyValue.goToFrame((((Profile.bombqty - 1) < 0)) ? 9 : (Profile.bombqty - 1));
bombLvlValue.goToFrame((Profile.bomblvl - 1));
if (!(techItemB.isActive)){
false;
};
if (false){
techItemB.evaluate();
};
if (!(techItemD.isActive)){
false;
};
if (false){
techItemD.evaluate();
};
if (!(techItemE.isActive)){
false;
};
if (false){
techItemE.evaluate();
};
if (!(techItemG.isActive)){
false;
};
if (false){
techItemG.evaluate();
};
if (!(techItemH.isActive)){
false;
};
if (false){
techItemH.evaluate();
};
if (!(techItemK.isActive)){
false;
};
if (false){
techItemK.evaluate();
};
if (!(techItemL.isActive)){
false;
};
if (false){
techItemL.evaluate();
};
if (!(techItemN.isActive)){
false;
};
if (false){
techItemN.evaluate();
};
if (!(techItemO.isActive)){
false;
};
if (false){
techItemO.evaluate();
};
if (!(techItemQ.isActive)){
false;
};
if (false){
techItemQ.evaluate();
};
if (!(techItemR.isActive)){
false;
};
if (false){
techItemR.evaluate();
};
if (!(techItemS.isActive)){
false;
if (!techItemA.isActive){
true;
if (!techItemN.isActive){
true;
};
};
};
if (false){
techItemS.evaluate();
};
if (!(techItemT.isActive)){
false;
};
if (false){
techItemT.evaluate();
};
if (!(techItemU.isActive)){
false;
};
if (false){
techItemU.evaluate();
};
if ((Profile.techpoint >= Reflect.field(Config, (("bomb" + Profile.bomblvl) as String)).buypoint)){
addBombButton.unlock();
} else {
addBombButton.lock();
};
if (Reflect.hasField(Config, (("bomb" + (Profile.bomblvl + 1)) as String))){
if ((Profile.techpoint >= Reflect.field(Config, (("bomb" + (Profile.bomblvl + 1)) as String)).upgradepoint)){
upgradeBombButton.unlock();
} else {
upgradeBombButton.lock();
};
} else {
upgradeBombButton.visible = false;
};
if (TutorialManager.isRunning){
false;
};
if (false){
if (techItemB.isActive){
TutorialManager.startUpgradeTech = LevelStatus.FINISHED;
TutorialManager.steps.get(12).onTrigger();
};
};
}
public function unpausePlayScreen():void{
ScreenManager.playScreen.start();
}
public function unlockCloseButton():void{
closeButton.unlock();
}
public function showDesc(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String, _arg8:String):void{
descBox.visible = true;
descTitle.updateLabel(_arg1.toUpperCase());
descDetails.updateLabel(_arg2);
descAttrLeftCol.updateLabel("HEATUP<br>BURNING<br>COOLDOWN");
descValLeftCol.updateLabel(((((((((_arg3 + "<br>") as String) + _arg4) as String) + "<br>") as String) + _arg5) as String));
descAttrRightCol.updateLabel("DAMAGE<br>SPEED<br>COST");
descValRightCol.updateLabel(((((((((_arg6 + "<br>") as String) + _arg7) as String) + "<br>") as String) + _arg8) as String));
if ((stage.mouseX > 250)){
descBox.x = ((stage.mouseX - descBox.width) - 10);
} else {
descBox.x = (stage.mouseX + 10);
};
if ((stage.mouseY > 250)){
descBox.y = ((stage.mouseY - descBox.height) - 10);
} else {
descBox.y = (stage.mouseY + 10);
};
}
public function showBombUpgradeDesc(_arg1:Object):void{
descBox.visible = true;
descTitle.updateLabel((("NEXT LEVEL: " + (_arg1.name as String).toUpperCase()) as String));
descDetails.updateLabel((_arg1.desc as String));
descAttrLeftCol.updateLabel(" <br>RADIUS<br>COOLDOWN");
descValLeftCol.updateLabel(((((((" <br>" + _arg1.radius) as String) + "<br>") as String) + _arg1.cooldown) as String));
descAttrRightCol.updateLabel(" <br><br>UPGRADE COST");
descValRightCol.updateLabel(((" <br><br>" + _arg1.upgradepoint) as String));
if ((stage.mouseX > 250)){
descBox.x = ((stage.mouseX - descBox.width) - 10);
} else {
descBox.x = (stage.mouseX + 10);
};
if ((stage.mouseY > 250)){
descBox.y = ((stage.mouseY - descBox.height) - 10);
} else {
descBox.y = (stage.mouseY + 10);
};
}
public function showBombDesc(_arg1:Object):void{
descBox.visible = true;
descTitle.updateLabel((_arg1.name as String).toUpperCase());
descDetails.updateLabel((_arg1.desc as String));
descAttrLeftCol.updateLabel(" <br>RADIUS<br>COOLDOWN");
descValLeftCol.updateLabel(((((((" <br>" + _arg1.radius) as String) + "<br>") as String) + _arg1.cooldown) as String));
descAttrRightCol.updateLabel(" <br><br>BUY COST");
descValRightCol.updateLabel(((" <br><br>" + _arg1.buypoint) as String));
if ((stage.mouseX > 250)){
descBox.x = ((stage.mouseX - descBox.width) - 10);
} else {
descBox.x = (stage.mouseX + 10);
};
if ((stage.mouseY > 250)){
descBox.y = ((stage.mouseY - descBox.height) - 10);
} else {
descBox.y = (stage.mouseY + 10);
};
}
public function resetTechTree():void{
techItemB.reset();
techItemD.reset();
techItemE.reset();
techItemG.reset();
techItemH.reset();
techItemK.reset();
techItemL.reset();
techItemN.reset();
techItemO.reset();
techItemQ.reset();
techItemR.reset();
techItemS.reset();
techItemT.reset();
techItemU.reset();
weaponSubDialog.removeChild(weaponSlot1);
weaponSubDialog.removeChild(weaponSlot2);
weaponSlot1 = (null as TechItembox);
weaponSlot2 = (null as TechItembox);
weaponSlot1 = new TechItembox(Config.projectileA);
weaponSlot2 = new TechItembox(Config.projectileA);
weaponSlot1.x = 23;
weaponSlot1.y = 50;
weaponSlot2.x = 114;
weaponSlot2.y = 50;
weaponSlot1.setActive(true, false);
weaponSlot2.setActive(true, false);
weaponSubDialog.addChild(weaponSlot1);
weaponSubDialog.addChild(weaponSlot2);
}
public function posTechItem(_arg1:TechItembox, _arg2:Object):void{
_arg1.x = ((_arg2.col == 2)) ? 272 : ((_arg2.col == 1)) ? 136 : 0;
_arg1.y = ((_arg2.row == 7)) ? 542 : ((_arg2.row == 6)) ? 465 : ((_arg2.row == 5)) ? 387 : ((_arg2.row == 4)) ? 310 : ((_arg2.row == 3)) ? 232 : ((_arg2.row == 2)) ? 155 : ((_arg2.row == 1)) ? 77 : 0;
}
public function onUpgradeBombMouseOver(_arg1:MouseEvent):void{
if (Reflect.hasField(Config, (("bomb" + (Profile.bomblvl + 1)) as String))){
showBombUpgradeDesc(Reflect.field(Config, (("bomb" + (Profile.bomblvl + 1)) as String)));
};
}
public function onUpgradeBombMouseOut(_arg1:MouseEvent):void{
hideDesc();
}
public function onUpgradeBombClick():void{
Profile.bomblvl = (Profile.bomblvl + 1);
var _local1:int = Reflect.field(Config, (("bomb" + Profile.bomblvl) as String)).upgradepoint;
Profile.techpoint = (Profile.techpoint - _local1);
ScreenManager.playScreen.updateHUDTechpoints(Profile.techpoint, false);
ScreenManager.playScreen.player.currentBombCooldown = Reflect.field(Config, (("bomb" + Profile.bomblvl) as String)).cooldown;
ScreenManager.playScreen.updateHUDBomb();
updateDialog();
}
public function onTopAnchorClick():void{
if (!((techContainer.y == 64))){
Tweener.addTween(techContainer, {onComplete:activeTop, transition:"easeOutQuad", time:0.5, y:64});
topAnchorButton.lock();
middleAnchorButton.lock();
bottomAnchorButton.lock();
};
}
public function onMiddleAnchorClick():void{
if (!((techContainer.y == -91))){
Tweener.addTween(techContainer, {onComplete:activeMiddle, transition:"easeOutQuad", time:0.5, y:-91});
topAnchorButton.lock();
middleAnchorButton.lock();
bottomAnchorButton.lock();
};
}
public function onCloseClick():void{
Tweener.addTween(techSubDialog, {time:0.5, transition:"easeInBack", y:-350});
Tweener.addTween(weaponSubDialog, {onComplete:closeDialog, time:0.5, transition:"easeInBack", y:500});
if (TutorialManager.isRunning){
false;
};
if (false){
TutorialManager.startCloseTechFirst = LevelStatus.FINISHED;
TutorialManager.steps.get(12).onTrigger();
};
if (TutorialManager.isRunning){
false;
};
if (false){
TutorialManager.startCloseTechSecond = LevelStatus.FINISHED;
TutorialManager.steps.get(25).onTrigger();
};
}
public function onClickLifted(_arg1:MouseEvent):void{
if (!weaponSlot1.hitTestObject(_arg1.currentTarget)){
true;
};
var _local2:Boolean = true;
if (_local2){
if (weaponSlot1.hitTestObject(_arg1.currentTarget)){
weaponSubDialog.removeChild(weaponSlot1);
weaponSlot1 = (null as TechItembox);
weaponSlot1 = new TechItembox(liftedTechItembox.pData);
weaponSlot1.x = 23;
weaponSlot1.y = 50;
weaponSlot1.setActive(true, false);
weaponSubDialog.addChild(weaponSlot1);
Profile.weapon1 = weaponSlot1.pData;
ScreenManager.playScreen.player.weaponSlot[0] = weaponSlot1.pData;
ScreenManager.playScreen.player.updateWeaponSprite();
ScreenManager.playScreen.updateHUDWeaponSlots();
} else {
if (weaponSlot2.hitTestObject(_arg1.currentTarget)){
weaponSubDialog.removeChild(weaponSlot2);
weaponSlot2 = (null as TechItembox);
weaponSlot2 = new TechItembox(liftedTechItembox.pData);
weaponSlot2.x = 114;
weaponSlot2.y = 50;
weaponSlot2.setActive(true, false);
weaponSubDialog.addChild(weaponSlot2);
Profile.weapon2 = weaponSlot2.pData;
ScreenManager.playScreen.player.weaponSlot[1] = weaponSlot2.pData;
ScreenManager.playScreen.player.updateWeaponSprite();
ScreenManager.playScreen.updateHUDWeaponSlots();
};
};
if (TutorialManager.isRunning){
false;
};
if (false){
TutorialManager.startSetWeapon = LevelStatus.FINISHED;
TutorialManager.steps.get(13).onTrigger();
};
};
liftedTechItembox = (null as TechItembox);
isLifting = false;
_arg1.currentTarget.stopDrag();
_arg1.currentTarget.removeEventListener(MouseEvent.CLICK, onClickLifted);
liftedTechContainer.removeChildAt(0);
}
public function onBottomAnchorClick():void{
if (!((techContainer.y == -246))){
Tweener.addTween(techContainer, {onComplete:activeBottom, transition:"easeOutQuad", time:0.5, y:-246});
topAnchorButton.lock();
middleAnchorButton.lock();
bottomAnchorButton.lock();
};
}
public function onAddBombMouseOver(_arg1:MouseEvent):void{
showBombDesc(Reflect.field(Config, (("bomb" + Profile.bomblvl) as String)));
}
public function onAddBombMouseOut(_arg1:MouseEvent):void{
hideDesc();
}
public function onAddBombClick():void{
var _local1:int = Reflect.field(Config, (("bomb" + Profile.bomblvl) as String)).buypoint;
Profile.techpoint = (Profile.techpoint - _local1);
Profile.bombqty = (Profile.bombqty + 1);
ScreenManager.playScreen.updateHUDTechpoints(Profile.techpoint, false);
ScreenManager.playScreen.updateHUDBomb();
updateDialog();
}
public function lockCloseButton():void{
closeButton.lock();
}
public function lift(_arg1:Sprite, _arg2:TechItembox):void{
liftedTechItembox = _arg2;
_arg1.x = (stage.mouseX - (_arg1.width / 2));
_arg1.y = (stage.mouseY - (_arg1.height / 2));
_arg1.buttonMode = true;
_arg1.mouseEnabled = true;
liftedTechContainer.addChild(_arg1);
_arg1.startDrag(false);
_arg1.addEventListener(MouseEvent.CLICK, onClickLifted);
}
public function init():void{
techSubDialog.y = -350;
weaponSubDialog.y = 500;
upgradeBombButton.visible = true;
Tweener.addTween(techSubDialog, {time:0.5, transition:"easeOutCubic", y:24});
Tweener.addTween(weaponSubDialog, {time:0.5, transition:"easeOutCubic", y:384});
}
public function hideDesc():void{
descBox.visible = false;
}
public function closeDialog():void{
ScreenManager.hideDialog();
unpausePlayScreen();
closeButton.lock();
}
public function activeTop():void{
middleAnchorButton.unlock();
bottomAnchorButton.unlock();
topAnchorButton.setSelected();
middleAnchorButton.setUnselected();
bottomAnchorButton.setUnselected();
}
public function activeMiddle():void{
topAnchorButton.unlock();
bottomAnchorButton.unlock();
topAnchorButton.setUnselected();
middleAnchorButton.setSelected();
bottomAnchorButton.setUnselected();
}
public function activeBottom():void{
topAnchorButton.unlock();
middleAnchorButton.unlock();
topAnchorButton.setUnselected();
middleAnchorButton.setUnselected();
bottomAnchorButton.setSelected();
}
}
class EnemyH extends Enemy {
public var speed:Number;
public var projectileSpreadAngles:int;
public var projectileData:Object;
public var projectileCount:int;
public var networkTime:int;
public var moveTime:int;
public var minSpeed:Number;
public var maxSpeed:Number;
public var enemySprite:EnemyHSprite;
public var curanimateque:int;
public var curNetworkTime:int;
public var curMoveTime:int;
public var animatespeed:int;
public function EnemyH(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.enemyH.hitpoint;
worth = Config.enemyH.worth;
enemySprite = new EnemyHSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-7, -7, 14, 14);
hitbox = _local4;
hitbox.alpha = 0;
projectileCount = 8;
projectileSpreadAngles = 45;
minSpeed = 0.8;
maxSpeed = 1.1;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
var _local6:int = 100;
var _local7:int = 1000;
networkTime = 1;
moveTime = Std.int(((Math.random() * (_local7 - _local6)) + _local6));
curNetworkTime = 0;
curMoveTime = 0;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:int;
var _local5 = (null as Vector);
var _local6 = (null as Point);
var _local7 = (null as Projectile);
if (isGhosting){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
if ((curMoveTime < moveTime)){
false;
};
if (false){
curMoveTime = (curMoveTime + 1);
} else {
if ((curNetworkTime < networkTime)){
false;
};
if (false){
curNetworkTime = (curNetworkTime + 1);
_local1 = 0;
_local2 = projectileCount;
do {
//unresolved if
_local3 = _local1;
_local1++;
_local4 = (_local3 * projectileSpreadAngles);
_local5 = (new Vector(Math.cos(((_local4 * Math.PI) / 180)), Math.sin(((_local4 * Math.PI) / 180))) as Vector);
_local6 = (new Point(locX, locY) as Point);
_local7 = (new ProjectileV(_local5, _local6) as Projectile);
ProjectileManager.spawnProjectile(_local6, _local7);
} while (true);
enemySprite.idle();
} else {
curNetworkTime = 0;
curMoveTime = 0;
};
};
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
};
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.enemyHScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
}
class Mission5 extends Mission {
public var level9:Object;
public var level8:Object;
public var level7:Object;
public var level6:Object;
public var level5:Object;
public var level4:Object;
public var level3:Object;
public var level2:Object;
public var level10:Object;
public var level1:Object;
public function Mission5():void{
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:Number;
var _local8:Number;
var _local9 = (null as Point);
if (Boot_BA08CD.skip_constructor){
return;
};
super();
integrityThreshold = 10;
regenIntegrityRate = 0.001;
damageIntegrityRate = 0.0005;
var _local1 = (new List() as List);
var _local2:int;
var _local3:int = 10;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local1.add({pos:_local9, enemy:EnemyH});
} while (true);
level1 = {pattern:_local1, delay:2500, id:1};
var _local10 = (new List() as List);
_local10.add({pos:new Point(25, 25), enemy:EnemyH});
_local10.add({pos:new Point(475, 25), enemy:EnemyH});
_local10.add({pos:new Point(475, 475), enemy:EnemyH});
_local10.add({pos:new Point(25, 475), enemy:EnemyH});
_local10.add({pos:new Point(275, 275), enemy:SpawnerB});
_local10.add({pos:new Point(225, 275), enemy:SpawnerD});
_local10.add({pos:new Point(250, 50), enemy:EnemyH});
_local10.add({pos:new Point(250, 50), enemy:EnemyH});
_local10.add({pos:new Point(50, 250), enemy:EnemyH});
_local10.add({pos:new Point(50, 250), enemy:EnemyH});
_local10.add({pos:new Point(250, 250), enemy:EnemyB});
_local10.add({pos:new Point(250, 250), enemy:EnemyB});
_local10.add({pos:new Point(250, 250), enemy:EnemyB});
_local10.add({pos:new Point(250, 250), enemy:EnemyB});
_local10.add({pos:new Point(250, 250), enemy:EnemyB});
_local10.add({pos:new Point(250, 250), enemy:EnemyB});
level2 = {pattern:_local10, delay:2500, id:2};
var _local11 = (new List() as List);
_local11.add({pos:new Point(100, 150), enemy:EnemyE});
_local11.add({pos:new Point(100, 350), enemy:EnemyE});
_local11.add({pos:new Point(400, 150), enemy:EnemyE});
_local11.add({pos:new Point(400, 350), enemy:EnemyE});
_local11.add({pos:new Point(150, 100), enemy:EnemyH});
_local11.add({pos:new Point(150, 400), enemy:EnemyH});
_local11.add({pos:new Point(350, 100), enemy:EnemyH});
_local11.add({pos:new Point(350, 400), enemy:EnemyH});
_local2 = 0;
_local3 = 10;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local11.add({pos:_local9, enemy:EnemyA});
} while (true);
level3 = {pattern:_local11, delay:2500, id:3};
var _local12 = (new List() as List);
_local2 = 0;
_local3 = 10;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local12.add({pos:_local9, enemy:EnemyB});
} while (true);
_local2 = 0;
_local3 = 4;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local12.add({pos:_local9, enemy:EnemyF});
} while (true);
_local2 = 0;
_local3 = 4;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local12.add({pos:_local9, enemy:EnemyH});
} while (true);
level4 = {pattern:_local12, delay:2500, id:4};
var _local13 = (new List() as List);
_local2 = 0;
_local3 = 8;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local13.add({pos:_local9, enemy:EnemyH});
} while (true);
_local2 = 0;
_local3 = 10;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local13.add({pos:_local9, enemy:EnemyG});
} while (true);
level5 = {pattern:_local13, delay:2500, id:5};
var _local14 = (new List() as List);
_local2 = 0;
_local3 = 10;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local14.add({pos:_local9, enemy:EnemyH});
} while (true);
_local2 = 0;
_local3 = 4;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local14.add({pos:_local9, enemy:EnemyB});
} while (true);
_local14.add({pos:new Point(100, 150), enemy:SpawnerA});
_local14.add({pos:new Point(100, 350), enemy:SpawnerA});
_local14.add({pos:new Point(400, 150), enemy:SpawnerA});
_local14.add({pos:new Point(400, 350), enemy:SpawnerA});
level6 = {pattern:_local14, delay:2500, id:6};
var _local15 = (new List() as List);
_local2 = 0;
_local3 = 6;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local15.add({pos:_local9, enemy:EnemyA});
} while (true);
_local2 = 0;
_local3 = 4;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local15.add({pos:_local9, enemy:EnemyB});
} while (true);
_local2 = 0;
_local3 = 8;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local15.add({pos:_local9, enemy:EnemyC});
} while (true);
level7 = {pattern:_local15, delay:2500, id:7};
var _local16 = (new List() as List);
_local2 = 0;
_local3 = 6;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local16.add({pos:_local9, enemy:EnemyC});
} while (true);
_local2 = 0;
_local3 = 4;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local16.add({pos:_local9, enemy:EnemyH});
} while (true);
level8 = {pattern:_local16, delay:2500, id:8};
var _local17 = (new List() as List);
_local2 = 0;
_local3 = 10;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local17.add({pos:_local9, enemy:EnemyH});
} while (true);
_local17.add({pos:new Point(400, 150), enemy:SpawnerB});
_local17.add({pos:new Point(400, 350), enemy:SpawnerB});
level9 = {pattern:_local17, delay:2500, id:9};
var _local18 = (new List() as List);
_local18.add({pos:new Point(250, 100), enemy:BossA});
_local18.add({pos:new Point(250, 400), enemy:BossA});
_local18.add({pos:new Point(100, 250), enemy:BossA});
_local18.add({pos:new Point(400, 250), enemy:BossA});
_local18.add({pos:new Point(100, 250), enemy:BossB});
_local18.add({pos:new Point(400, 250), enemy:BossB});
_local18.add({pos:new Point(250, 250), enemy:BossC});
_local18.add({pos:new Point(250, 100), enemy:BossD});
_local18.add({pos:new Point(250, 400), enemy:BossD});
_local2 = 0;
_local3 = 4;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local18.add({pos:_local9, enemy:EnemyG});
} while (true);
_local2 = 0;
_local3 = 4;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local18.add({pos:_local9, enemy:EnemyB});
} while (true);
_local2 = 0;
_local3 = 4;
do {
//unresolved if
_local4 = _local2;
_local2++;
_local5 = 32;
_local6 = (500 - 32);
_local7 = ((Math.random() * (_local6 - _local5)) + _local5);
_local8 = ((Math.random() * (_local6 - _local5)) + _local5);
_local9 = (new Point(_local7, _local8) as Point);
_local18.add({pos:_local9, enemy:EnemyF});
} while (true);
level10 = {pattern:_local18, delay:-1, id:10};
}
override public function prepareLevels():void{
levels.add(level1);
levels.add(level2);
levels.add(level3);
levels.add(level4);
levels.add(level5);
levels.add(level6);
levels.add(level7);
levels.add(level8);
levels.add(level9);
levels.add(level10);
var _local1 = (new Bitmap(Assets.objects.get("Background05")) as Bitmap);
ScreenManager.playScreen.setBackground(_local1);
}
override public function preEnd():void{
hasStarted = false;
ScreenManager.playScreen.displayCustomHUDInfo(MissionStatus.CLEARALL, (((("Mission" + Profile.curMissionID) as String) + "Sector") as String), end);
}
override public function end():void{
MissionManager.endMission();
}
}
class TitleKroeger extends Font {
public function TitleKroeger():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class ScoreStandard extends Font {
public function ScoreStandard():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class SmallKroeger extends Font {
public function SmallKroeger():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class StylishM20 extends Font {
public function StylishM20():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class GetFlashPlayer extends Bitmap {
public function GetFlashPlayer():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class ArtElements extends BitmapData {
public function ArtElements():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class Background00 extends BitmapData {
public function Background00():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class Background01 extends BitmapData {
public function Background01():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class Background02 extends BitmapData {
public function Background02():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class Background03 extends BitmapData {
public function Background03():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class Background04 extends BitmapData {
public function Background04():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class Background05 extends BitmapData {
public function Background05():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class BarMarks extends BitmapData {
public function BarMarks():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(214, 25);
}
}
class ContinueDialog extends BitmapData {
public function ContinueDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(200, 100);
}
}
class ControlInstructions extends BitmapData {
public function ControlInstructions():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(480, 350);
}
}
class Credits extends BitmapData {
public function Credits():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class EnemyTiles extends BitmapData {
public function EnemyTiles():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class HasTutorialDialog extends BitmapData {
public function HasTutorialDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(240, 224);
}
}
class HighscoreDialog extends BitmapData {
public function HighscoreDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(240, 315);
}
}
class HudBarsInstructions extends BitmapData {
public function HudBarsInstructions():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(480, 350);
}
}
class InstructionsDialog extends BitmapData {
public function InstructionsDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(480, 350);
}
}
class MenuDialog extends BitmapData {
public function MenuDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(240, 224);
}
}
class Player_Cores extends BitmapData {
public function Player_Cores():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(72, 6);
}
}
class Sponsors extends BitmapData {
public function Sponsors():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class RUSureDialog extends BitmapData {
public function RUSureDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(200, 200);
}
}
class TechSubDialog extends BitmapData {
public function TechSubDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(350, 350);
}
}
class TechTiles extends BitmapData {
public function TechTiles():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(448, 0x0200);
}
}
class TechTree extends BitmapData {
public function TechTree():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(304, 574);
}
}
class TechUIInstructions extends BitmapData {
public function TechUIInstructions():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(480, 350);
}
}
class TitleBackground extends BitmapData {
public function TitleBackground():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class TitleForeground extends BitmapData {
public function TitleForeground():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class UITiles extends BitmapData {
public function UITiles():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(500, 500);
}
}
class WeaponSubDialog extends BitmapData {
public function WeaponSubDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(350, 92);
}
}
class Player_BasicLong extends Sprite {
public function Player_BasicLong():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_BasicShort extends Sprite {
public function Player_BasicShort():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_BasicSpread extends Sprite {
public function Player_BasicSpread():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_BasicSpreadLong extends Sprite {
public function Player_BasicSpreadLong():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_BasicSpreadTarget extends Sprite {
public function Player_BasicSpreadTarget():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_BasicTarget extends Sprite {
public function Player_BasicTarget():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_HCannonShortPierce extends Sprite {
public function Player_HCannonShortPierce():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_HCannonTargetPierce extends Sprite {
public function Player_HCannonTargetPierce():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_HCannonTargetSpreadPierce extends Sprite {
public function Player_HCannonTargetSpreadPierce():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_LaserCannonTarget extends Sprite {
public function Player_LaserCannonTarget():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_LaserCannonTargetPierce extends Sprite {
public function Player_LaserCannonTargetPierce():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_LaserTarget extends Sprite {
public function Player_LaserTarget():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_LCannonShort extends Sprite {
public function Player_LCannonShort():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_LCannonSpread extends Sprite {
public function Player_LCannonSpread():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_LCannonTarget extends Sprite {
public function Player_LCannonTarget():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_MCannonPierce extends Sprite {
public function Player_MCannonPierce():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_MCannonShort extends Sprite {
public function Player_MCannonShort():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_MCannonTarget extends Sprite {
public function Player_MCannonTarget():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_MissileTarget extends Sprite {
public function Player_MissileTarget():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_MissileTargetSpread extends Sprite {
public function Player_MissileTargetSpread():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Player_MissileTargetSpreadPierce extends Sprite {
public function Player_MissileTargetSpreadPierce():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class PlayTrack extends Sound {
public function PlayTrack():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class TitleAmbient extends Sound {
public function TitleAmbient():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class InflictHit extends Sound {
public function InflictHit():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class BasicProjectile extends Sound {
public function BasicProjectile():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class LightCannon extends Sound {
public function LightCannon():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class MediumCannon extends Sound {
public function MediumCannon():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class HeavyCannon extends Sound {
public function HeavyCannon():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Missiles extends Sound {
public function Missiles():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class EnemyTeleporting extends Sound {
public function EnemyTeleporting():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Exploding extends Sound {
public function Exploding():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class ExplodingBomb extends Sound {
public function ExplodingBomb():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Lasers extends Sound {
public function Lasers():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
}
}
class Main {
public static var loadContainer:Sprite;
public static var playerWarning:Sprite;
public static var domainWarning:Sprite;
public static var loadingBar:Sprite;
public static var loadingPerc:Sprite;
public static var loadingBarBG:Sprite;
public static var loadingCompleteText:Label;
public static var loadingPercText:Label;
public static var clientRunning:Boolean;
public function Main():void{
if (Boot_BA08CD.skip_constructor){
return;
};
KeyMouseManager.setupEvents();
MissionManager.loadMissions();
ScreenManager.loadScreens();
CollisionManager.setupGrids();
ScreenManager.showScreen("sponsors");
}
public static function isInDomain():Boolean{
var _local7:int;
var _local1:Boolean;
var _local2 = (Lib.current.loaderInfo.url as String);
var _local3:int = (_local2.indexOf("://") + 3);
var _local4:int = _local2.indexOf("/", (_local3 + 1));
var _local5 = (_local2.substr(0, _local4) as String);
var _local6 = (_local5.substr(_local3) as String);
if (Std.is(Config.domain, Array)){
if ((Config.domain.length > 0)){
_local7 = 0;
do {
//unresolved if
if ((_local6 == (Config.domain[_local7] as String))){
_local1 = true;
break;
};
_local7++;
} while (true);
} else {
_local1 = false;
};
};
return (_local1);
}
public static function parsePlayerVersion():Object{
var _local1 = ((Capabilities.version.split(" ")[0] as String) as String);
var _local2 = ((Capabilities.version.split(" ")[1] as String) as String);
var _local3:int = Std.parseInt((_local2.split(",")[0] as String));
var _local4:int = Std.parseInt((_local2.split(",")[1] as String));
var _local5:int = Std.parseInt((_local2.split(",")[2] as String));
var _local6:int = Std.parseInt((_local2.split(",")[3] as String));
return ({internalBuildNumber:_local6, buildNumber:_local5, minorversion:_local4, majorversion:_local3, platform:_local1});
}
public static function startGame():void{
Lib.current.removeChild(Main.loadContainer);
var _local1 = (new Main() as Main);
Main.clientRunning = true;
}
public static function populateAssets():void{
Assets.objects = new Hash();
Assets.objects.set("ArtElements", new ArtElements());
Assets.objects.set("Background00", new Background00());
Assets.objects.set("Background01", new Background01());
Assets.objects.set("Background02", new Background02());
Assets.objects.set("Background03", new Background03());
Assets.objects.set("Background04", new Background04());
Assets.objects.set("Background05", new Background05());
Assets.objects.set("BarMarks", new BarMarks());
Assets.objects.set("ContinueDialog", new ContinueDialog());
Assets.objects.set("ControlInstructions", new ControlInstructions());
Assets.objects.set("Credits", new Credits());
Assets.objects.set("EnemyTiles", new EnemyTiles());
Assets.objects.set("HasTutorialDialog", new HasTutorialDialog());
Assets.objects.set("HighscoreDialog", new HighscoreDialog());
Assets.objects.set("HudBarsInstructions", new HudBarsInstructions());
Assets.objects.set("InstructionsDialog", new InstructionsDialog());
Assets.objects.set("MenuDialog", new MenuDialog());
Assets.objects.set("Player_Cores", new Player_Cores());
Assets.objects.set("Sponsors", new Sponsors());
Assets.objects.set("RUSureDialog", new RUSureDialog());
Assets.objects.set("TechSubDialog", new TechSubDialog());
Assets.objects.set("TechTiles", new TechTiles());
Assets.objects.set("TechTree", new TechTree());
Assets.objects.set("TitleBackground", new TitleBackground());
Assets.objects.set("TitleForeground", new TitleForeground());
Assets.objects.set("TechUIInstructions", new TechUIInstructions());
Assets.objects.set("UITiles", new UITiles());
Assets.objects.set("WeaponSubDialog", new WeaponSubDialog());
Assets.classes = new Hash();
Assets.classes.set("Player_BasicLong", Player_BasicLong);
Assets.classes.set("Player_BasicShort", Player_BasicShort);
Assets.classes.set("Player_BasicSpread", Player_BasicSpread);
Assets.classes.set("Player_BasicSpreadLong", Player_BasicSpreadLong);
Assets.classes.set("Player_BasicSpreadTarget", Player_BasicSpreadTarget);
Assets.classes.set("Player_BasicTarget", Player_BasicTarget);
Assets.classes.set("Player_HCannonShortPierce", Player_HCannonShortPierce);
Assets.classes.set("Player_HCannonTargetPierce", Player_HCannonTargetPierce);
Assets.classes.set("Player_HCannonTargetSpreadPierce", Player_HCannonTargetSpreadPierce);
Assets.classes.set("Player_LaserCannonTarget", Player_LaserCannonTarget);
Assets.classes.set("Player_LaserCannonTargetPierce", Player_LaserCannonTargetPierce);
Assets.classes.set("Player_LaserTarget", Player_LaserTarget);
Assets.classes.set("Player_LCannonShort", Player_LCannonShort);
Assets.classes.set("Player_LCannonSpread", Player_LCannonSpread);
Assets.classes.set("Player_LCannonTarget", Player_LCannonTarget);
Assets.classes.set("Player_MCannonPierce", Player_MCannonPierce);
Assets.classes.set("Player_MCannonShort", Player_MCannonShort);
Assets.classes.set("Player_MCannonTarget", Player_MCannonTarget);
Assets.classes.set("Player_MissileTarget", Player_MissileTarget);
Assets.classes.set("Player_MissileTargetSpread", Player_MissileTargetSpread);
Assets.classes.set("Player_MissileTargetSpreadPierce", Player_MissileTargetSpreadPierce);
Assets.classes.set("PlayTrack", PlayTrack);
Assets.classes.set("TitleAmbient", TitleAmbient);
Assets.classes.set("InflictHit", InflictHit);
Assets.classes.set("BasicProjectile", BasicProjectile);
Assets.classes.set("LightCannon", LightCannon);
Assets.classes.set("MediumCannon", MediumCannon);
Assets.classes.set("HeavyCannon", HeavyCannon);
Assets.classes.set("Missiles", Missiles);
Assets.classes.set("EnemyTeleporting", EnemyTeleporting);
Assets.classes.set("Exploding", Exploding);
Assets.classes.set("ExplodingBomb", ExplodingBomb);
Assets.classes.set("Lasers", Lasers);
}
public static function setupLoaderContainer():void{
var _local1 = (new Sprite() as Sprite);
var _local2 = (new Matrix() as Matrix);
_local2.createGradientBox(500, 500, ((Math.PI / 180) * 90));
_local1.graphics.beginGradientFill(GradientType.LINEAR, [0x5C5C5C, 855309], [1, 1], [0, 0xFF], _local2);
_local1.graphics.drawRect(0, 0, 500, 500);
var _local3:* = {html:true, selectable:false, align:TextFormatAlign.CENTER, height:400, width:490, embedFonts:true, color:0xFFFFFF, size:8, font:new DescStandard().fontName};
Main.loadingPercText = new Label("LOADING.0%", _local3);
Main.loadingPercText.getTextField().x = (-(Main.loadingPercText.getTextField().width) / 2);
Main.loadingPercText.getTextField().y = -20;
Main.loadingPercText.getTextField().alpha = 0;
Main.loadingCompleteText = new Label("LOADING.COMPLETE", _local3);
Main.loadingCompleteText.getTextField().x = (-(Main.loadingCompleteText.getTextField().width) / 2);
Main.loadingCompleteText.getTextField().y = -20;
Main.loadingCompleteText.getTextField().alpha = 0.7;
Main.loadingBar = new Sprite();
Main.loadingBar.graphics.beginFill(0xFFFFFF, 0.4);
Main.loadingBar.graphics.drawRect(-243, 0, 486, 5);
Main.loadingBar.scaleX = 0;
Main.loadingBarBG = new Sprite();
Main.loadingBarBG.graphics.beginFill(0xFFFFFF, 0.3);
Main.loadingBarBG.graphics.drawRect(-243, 0, 486, 5);
Main.loadingPerc = new Sprite();
Main.loadingPerc.addChild(Main.loadingPercText.getTextField());
Main.loadingPerc.addChild(Main.loadingCompleteText.getTextField());
Main.loadingPerc.addChild(Main.loadingBarBG);
Main.loadingPerc.addChild(Main.loadingBar);
Main.loadingPerc.x = 250;
Main.loadingPerc.y = 486;
Main.domainWarning = new Sprite();
var _local4 = (new Label("- E R R O R - <br>Sorry, you can only access this from<br> http://www.flashgamelicense.com/ or http://www.fantasticchoice.com<br> Interested in sponsoring? Please go to either of the URLs above.<br>Thank you.", _local3) as Label);
_local4.getTextField().x = (-(_local4.getTextField().width) / 2);
_local4.getTextField().alpha = 0.7;
Main.domainWarning.addChild(_local4.getTextField());
Main.domainWarning.x = 250;
Main.domainWarning.y = 200;
Main.domainWarning.visible = false;
Main.playerWarning = new Sprite();
var _local5 = (new Sprite() as Sprite);
_local5.addChild(new GetFlashPlayer());
var _local6 = (new Label("- O O P S - <br>It seems like your using a Flash Player version below version 9,0,47,0.<br> Please install the latest Flash Player plugin by clicking on the banner below.", _local3) as Label);
_local6.getTextField().x = (-(_local6.getTextField().width) / 2);
_local6.getTextField().alpha = 0.7;
_local5.buttonMode = true;
_local5.x = (-(_local5.width) / 2);
_local5.y = (_local6.getTextField().height + 10);
Main.playerWarning.addChild(_local6.getTextField());
Main.playerWarning.addChild(_local5);
Main.playerWarning.x = 250;
Main.playerWarning.y = 200;
Main.playerWarning.visible = false;
_local5.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{
Lib.getURL(new URLRequest("http://www.adobe.com/go/getflashplayer"), "blank");
});
Main.loadContainer = new Sprite();
Main.loadContainer.addChild(_local1);
Main.loadContainer.addChild(Main.loadingPerc);
Main.loadContainer.addChild(Main.domainWarning);
Main.loadContainer.addChild(Main.playerWarning);
}
public static function setupLoader():void{
}
public static function main():void{
Main.clientRunning = false;
Main.setupLoaderContainer();
Main.setupLoader();
Lib.current.stage.quality = StageQuality.LOW;
Lib.current.stage.scaleMode = StageScaleMode.NO_SCALE;
Lib.current.addChild(Main.loadContainer);
if ((Main.parsePlayerVersion().majorversion >= 9)){
false;
};
if (false){
Main.playerWarning.visible = false;
Main.populateAssets();
Main.startGame();
} else {
Main.playerWarning.visible = true;
};
}
}
class Preloader extends MovieClip {
public function Preloader():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
Log.trace(loaderInfo.toString(), {methodName:"new", className:"Preloader", lineNumber:433, fileName:"Main.hx"});
loaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
}
public function showProgress(_arg1:ProgressEvent):void{
Log.trace("oke", {methodName:"showProgress", className:"Preloader", lineNumber:438, fileName:"Main.hx"});
var _local2:Number = Math.round(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100));
Log.trace(((_local2 + "% loaded") as String), {methodName:"showProgress", className:"Preloader", lineNumber:440, fileName:"Main.hx"});
}
public function initApplication(_arg1:Event):void{
Log.trace("loaded!", {methodName:"initApplication", className:"Preloader", lineNumber:444, fileName:"Main.hx"});
}
}
class FPS extends TextField {
public var textformat:TextFormat;
public var startTick:Number;
public var spritesToWatch:List;
public var numFrames:int;
public var mCalcs:int;
public var mCalcTotal:Number;
public var mCalc0:Number;
public var listsToWatch:List;
public var lastTick:Number;
public function FPS():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
textformat = new TextFormat("arial", 10, 0xFFFFFF, null, null, null, "", "", "left", 5, 5, null, null);
spritesToWatch = new List();
listsToWatch = new List();
type = TextFieldType.DYNAMIC;
selectable = false;
wordWrap = false;
multiline = false;
filters = [new DropShadowFilter(2, 45, 0, 1, 1, 1, 2, 3, false, false, false)];
htmlText = "FPS:--";
height = (textHeight + 6);
width = 440;
startTick = Lib.getTimer();
lastTick = startTick;
numFrames = 0;
mCalcTotal = 0;
mCalc0 = 0;
mCalcs = 0;
addEventListener(Event.ENTER_FRAME, onFrame);
}
public function stopCount():void{
mCalcTotal = (mCalcTotal + (Lib.getTimer() - mCalc0));
mCalcs = (mCalcs + 1);
}
public function startCount():void{
mCalc0 = Lib.getTimer();
}
public function onFrame(_arg1:Event):void{
var _local7:* = null;
var _local8:* = null;
numFrames = (numFrames + 1);
var _local2:Number = (Lib.getTimer() - startTick);
var _local3:Number = ((numFrames * 1000) / _local2);
var _local4:Number = 0;
if ((mCalcs > 0)){
_local4 = (mCalcTotal / mCalcs);
};
var _local5 = (Std.string(_local3).substr(0, 5) as String);
var _local6 = (Std.string(_local4).substr(0, 3) as String);
if (((_local2 / 1000) > 1)){
htmlText = (((((("FPS:" + _local5) as String) + " DT:") as String) + _local6) as String);
if ((spritesToWatch.length > 0)){
_local7 = spritesToWatch.iterator();
do {
//unresolved if
_local8 = _local7.next();
appendText(Std.string(((((((" " + (_local8.name as String)) as String) + ":") as String) + (_local8.obj as Sprite).numChildren) as String)));
} while (true);
};
if ((listsToWatch.length > 0)){
_local7 = listsToWatch.iterator();
do {
//unresolved if
_local8 = _local7.next();
if (((_local8.obj as List).length > 0)){
false;
};
if (false){
appendText(Std.string(((((((" " + (_local8.name as String)) as String) + ":") as String) + (_local8.obj as List).length) as String)));
} else {
appendText(Std.string(((((" " + (_local8.name as String)) as String) + ":--") as String)));
};
} while (true);
};
appendText(Std.string(((" C_G:" + CollisionManager.cGridCount) as String)));
appendText(Std.string(((" E_G:" + CollisionManager.eGridCount) as String)));
appendText(Std.string(((" P_G:" + CollisionManager.pGridCount) as String)));
appendText(Std.string(((" EP_G:" + CollisionManager.epGridCount) as String)));
appendText(Std.string(((" PL_G:" + CollisionManager.plGridCount) as String)));
setTextFormat(textformat);
numFrames = 0;
startTick = Lib.getTimer();
};
}
public function addSpritesToWatch(_arg1:Object):void{
spritesToWatch.add(_arg1);
}
public function addListsToWatch(_arg1:Object):void{
listsToWatch.add(_arg1);
}
}
class ProjectileC extends Projectile {
public function ProjectileC(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(8, 2, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 8, 2), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -1;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
}
class StringBuf {
public var b:Object;
public function StringBuf():void{
if (Boot_BA08CD.skip_constructor){
return;
};
b = "";
}
public function toString():String{
return (b);
}
public function addSub(_arg1:String, _arg2:int, _arg3:Object=undefined):void{
if ((_arg3 == null)){
b = (b + _arg1.substr(_arg2));
} else {
b = (b + _arg1.substr(_arg2, _arg3));
};
}
public function addChar(_arg1:int):void{
b = (b + String["fromCharCode"](_arg1));
}
public function add(_arg1:Object=undefined):void{
b = (b + _arg1);
}
}
class BossD extends Enemy {
public var teleportTime:int;
public var speed:Number;
public var shieldSprite:Sprite;
public var projectileData:Object;
public var moveTime:int;
public var minSpeed:Number;
public var maxshieldpoint:int;
public var maxSpeed:Number;
public var isTeleporting:Boolean;
public var enemySprite:BossDSprite;
public var distanceThreshold:int;
public var curanimateque:int;
public var curTeleportTime:int;
public var curMoveTime:int;
public var chanceOfTeleporting:Number;
public var animatespeed:int;
public function BossD(_arg1:Sprite=undefined, _arg2:Rectangle=undefined, _arg3:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2, _arg3);
hitpoint = Config.bossD.hitpoint;
maxshieldpoint = (Config.bossD.hitpoint * 8);
shieldpoint = maxshieldpoint;
worth = Config.bossD.worth;
enemySprite = new BossDSprite();
objectSprite = enemySprite;
inflictHitSprite.addChild(enemySprite.inflictGroup);
shieldSprite = new Sprite();
var _local4 = (new Sprite() as Sprite);
_local4.graphics.beginFill(0xFFFFFF);
_local4.graphics.drawRect(-14, -14, 28, 28);
hitbox = _local4;
hitbox.alpha = 0;
minSpeed = 0.2;
maxSpeed = 0.4;
var _local5:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local5 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local5 * Math.PI) / 180)) * speed);
animatespeed = Std.int(((1 / speed) * enemySprite.equipframes));
curanimateque = 0;
var _local6:int = 300;
var _local7:int = 800;
moveTime = Std.int(((Math.random() * (_local7 - _local6)) + _local6));
curMoveTime = 0;
var _local8:int = 3;
var _local9:int = 5;
teleportTime = Std.int(((Math.random() * (_local9 - _local8)) + _local8));
distanceThreshold = 100;
chanceOfTeleporting = 0.1;
isTeleporting = false;
ghostingTime = 100;
curGhostingQue = 0;
isGhosting = true;
objectSprite.alpha = 0;
container.addChild(hitbox);
container.addChild(objectSprite);
container.addChild(inflictHitSprite);
displayParent.addChild(container);
}
override public function update():void{
var _local1 = (null as Point);
var _local2:Number;
if (isGhosting){
false;
};
if (false){
if ((curGhostingQue < ghostingTime)){
curGhostingQue = (curGhostingQue + 1);
objectSprite.alpha = (curGhostingQue / ghostingTime);
} else {
curGhostingQue = 0;
isGhosting = false;
objectSprite.alpha = 1;
};
} else {
if ((curMoveTime < moveTime)){
curMoveTime = (curMoveTime + 1);
_local1 = (new Point(ScreenManager.playScreen.player.locX, ScreenManager.playScreen.player.locY) as Point);
_local2 = Math.atan2((_local1.y - container.y), (_local1.x - container.x));
vectorX = (Math.cos(_local2) * speed);
vectorY = (Math.sin(_local2) * speed);
if (!(((container.x + vectorX) + (container.width / 2)) > boundary.right)){
true;
};
if (true){
vectorX = (vectorX * -1);
};
if (!(((container.y + vectorY) + (container.height / 2)) > boundary.bottom)){
true;
};
if (true){
vectorY = (vectorY * -1);
};
container.x = (container.x + vectorX);
container.y = (container.y + vectorY);
locX = container.x;
locY = container.y;
if (isInflictedHit){
if ((currentInflictTime < showInflictTime)){
currentInflictTime = (currentInflictTime + 1);
} else {
inflictHit();
currentInflictTime = 0;
};
};
if ((curanimateque == animatespeed)){
enemySprite.animate();
curanimateque = 0;
} else {
curanimateque = (curanimateque + 1);
};
if ((Point.distance(_local1, new Point(locX, locY)) < (distanceThreshold * 2))){
if ((shieldpoint > 1)){
isInvincible = true;
createShield();
} else {
isInvincible = false;
};
} else {
isInvincible = false;
shieldpoint = maxshieldpoint;
destroyShield();
};
} else {
if ((curMoveTime == moveTime)){
_local1 = (new Point(ScreenManager.playScreen.player.locX, ScreenManager.playScreen.player.locY) as Point);
if ((Point.distance(_local1, new Point(locX, locY)) >= distanceThreshold)){
false;
};
if (false){
_local2 = Math.random();
if ((_local2 <= chanceOfTeleporting)){
if (!(isTeleporting)){
bamf();
};
curTeleportTime = (curTeleportTime + 1);
objectSprite.visible = false;
isGhosting = true;
isTeleporting = true;
};
} else {
teleport(_local1);
bamf();
objectSprite.visible = true;
isGhosting = false;
isTeleporting = false;
curTeleportTime = 0;
curMoveTime = 0;
};
};
};
};
}
public function teleport(_arg1:Point):void{
var _local2:Number = (Math.random() * 360);
var _local3:Number = ((Math.cos(((_local2 * Math.PI) / 180)) * distanceThreshold) + _arg1.x);
var _local4:Number = ((Math.sin(((_local2 * Math.PI) / 180)) * distanceThreshold) + _arg1.y);
var _local5 = (new Point(_local3, _local4) as Point);
var _local6:Number = (boundary.left + (objectSprite.width / 2));
var _local7:Number = (boundary.right - (objectSprite.width / 2));
var _local8:Number = (boundary.top + (objectSprite.height / 2));
var _local9:Number = (boundary.bottom - (objectSprite.height / 2));
if ((_local5.x < _local6)){
_local5.x = _local6;
};
if ((_local5.x > _local7)){
_local5.x = _local7;
};
if ((_local5.y < _local8)){
_local5.y = _local8;
};
if ((_local5.y > _local9)){
_local5.y = _local9;
};
container.x = _local5.x;
container.y = _local5.y;
var _local10:Number = (Math.random() * 360);
speed = ((Math.random() * (maxSpeed - minSpeed)) + minSpeed);
vectorX = (Math.cos(((_local10 * Math.PI) / 180)) * speed);
vectorY = (Math.sin(((_local10 * Math.PI) / 180)) * speed);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.enemyAExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
var _local2 = (new ParticleEmitter(Config.bossDScoreExplosionEmitter) as ParticleEmitter);
_local2.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local2);
}
public function destroyShield():void{
if (container.contains(shieldSprite)){
shieldSprite.graphics.clear();
shieldSprite.filters = [];
container.removeChild(shieldSprite);
};
}
override public function decreaseShield():void{
var _local1:Number = 0.3;
var _local2:Number = 1;
var _local3:Number = (shieldpoint / maxshieldpoint);
if ((_local3 <= 0)){
destroyShield();
};
var _local4:Number = ((_local3 * (_local2 - _local1)) + _local1);
var _local5:* = _local4;
shieldSprite.scaleY = _local5;
shieldSprite.scaleX = _local5;
}
public function createShield():void{
var _local1:* = null;
if (!(container.contains(shieldSprite))){
_local1 = 1;
shieldSprite.scaleY = _local1;
shieldSprite.scaleX = _local1;
shieldSprite.graphics.lineStyle(2, 0xFFFFFF, 0.5);
shieldSprite.graphics.drawCircle(0, 0, (enemySprite.width / 3));
shieldSprite.filters = [new BlurFilter(2, 2, 2)];
container.addChild(shieldSprite);
};
}
public function bamf():void{
var _local1 = (new ParticleEmitter(Config.enemyTeleportEmitter) as ParticleEmitter);
_local1.loc = new Point(container.x, container.y);
ParticleManager.createEmitter(_local1);
SoundManager.playSFX("EnemyTeleporting");
}
}
class PropertyInfoObj {
public var valueStart:Object;
public var valueComplete:Number;
public var modifierParameters:Array;
public var modifierFunction:Object;
public var hasModifier:Boolean;
public function PropertyInfoObj(_arg1:Object=undefined, _arg2:Number=undefined, _arg3:Object=undefined, _arg4:Array=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
valueStart = _arg1;
valueComplete = _arg2;
hasModifier = Std.bool(_arg3);
modifierFunction = _arg3;
modifierParameters = _arg4;
}
public function toString():String{
var _local1 = ("\n[PropertyInfoObj " as String);
_local1 = (((_local1 + (("valueStart:" + Std.string(valueStart)) as String)) as String) as String);
_local1 = (((_local1 + ", ") as String) as String);
_local1 = (((_local1 + (("valueComplete:" + Std.string(valueComplete)) as String)) as String) as String);
_local1 = (((_local1 + ", ") as String) as String);
_local1 = (((_local1 + (("modifierFunction:" + Std.string(modifierFunction)) as String)) as String) as String);
_local1 = (((_local1 + ", ") as String) as String);
_local1 = (((_local1 + (("modifierParameters:" + Std.string(modifierParameters)) as String)) as String) as String);
_local1 = (((_local1 + "]\n") as String) as String);
return (_local1);
}
public function clone():PropertyInfoObj{
var _local1 = (new PropertyInfoObj(valueStart, valueComplete, modifierFunction, modifierParameters) as PropertyInfoObj);
return (_local1);
}
}
class BossMineSprite extends Sprite {
public var inflictGroup:Sprite;
public var inflictCore:Bitmap;
public var coreframes:int;
public var core:MovieTile;
public var container:Sprite;
public function BossMineSprite():void{
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(32, 64, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(448, 128, 32, 64), new Point(0, 0));
core = new MovieTile(_local1, 32, 32);
core.x = -16;
core.y = -16;
coreframes = core.frames;
var _local2 = (new BitmapData(32, 32, true) as BitmapData);
_local2.copyPixels(Assets.objects.get("EnemyTiles"), new Rectangle(448, 128, 32, 32), new Point(0, 0));
var _local3:int;
var _local4:int = 32;
do {
//unresolved if
_local5 = _local3;
_local3++;
_local6 = 0;
_local7 = 32;
do {
//unresolved if
_local8 = _local6;
_local6++;
if ((_local2.getPixel32(_local5, _local8) > 0)){
_local2.setPixel32(_local5, _local8, -1);
};
} while (true);
} while (true);
inflictCore = new Bitmap(_local2);
inflictCore.x = -16;
inflictCore.y = -16;
inflictGroup = new Sprite();
inflictGroup.addChild(inflictCore);
container = new Sprite();
container.addChild(core);
addChild(container);
}
public function animate():void{
core.nextFrame();
}
}
class ProjectileP extends Projectile {
public var burstEmitter:ParticleEmitter;
public function ProjectileP(_arg1:Vector=undefined, _arg2:Point=undefined):void{
if (Boot_BA08CD.skip_constructor){
return;
};
super(_arg1, _arg2);
speed = 20;
vector = new Vector((_arg1.vx * speed), (_arg1.vy * speed));
maxDistance = 400;
fadeSteps = 5;
useTarget = false;
hitNDestroy = false;
var _local3 = (new Sprite() as Sprite);
var _local4 = (new BitmapData(12, 8, true, 0xFFFFFF) as BitmapData);
_local4.fillRect(new Rectangle(0, 0, 12, 8), -1);
var _local5 = (new Bitmap(_local4) as Bitmap);
_local5.y = -4;
_local3.addChild(_local5);
projectileSprite.addChild(_local3);
}
override public function setInitPos(_arg1:Point):void{
initPoint = _arg1;
projectileSprite.x = initPoint.x;
projectileSprite.y = initPoint.y;
burstEmitter = new ParticleEmitter(Config.projectilePBurstEmitter, projectileSprite);
burstEmitter.loc = _arg1;
ParticleManager.createEmitter(burstEmitter);
}
override public function explode():void{
var _local1 = (new ParticleEmitter(Config.projectileBExplosionEmitter) as ParticleEmitter);
_local1.loc = new Point(projectileSprite.x, projectileSprite.y);
ParticleManager.createEmitter(_local1);
}
override public function destroy(_arg1:Object=undefined):void{
burstEmitter.killMe();
var _local2:Boolean = ((_arg1 == null)) ? true : _arg1;
if (_local2){
explode();
};
if ((projectileSprite.numChildren > 0)){
projectileSprite.removeChildAt(0);
};
}
}
class GameOverDialog extends Screen {
public var yourScore:Sprite;
public var yourName:Sprite;
public var submittingContainer:Sprite;
public var submitting:Sprite;
public var submitTwirl:MovieTile;
public var submitButton:ButtonTile;
public var scoreLabel:Label;
public var scoreDataLoader:URLLoader;
public var scoreContainer:Sprite;
public var noButton:ButtonTile;
public var nameInputBG:Sprite;
public var nameInput:Input;
public var highscoreDialog:Sprite;
public var gameover:Sprite;
public var beforeSubmittingContainer:Sprite;
public function GameOverDialog():void{
if (Boot_BA08CD.skip_constructor){
return;
};
super();
var _local1 = (new BitmapData(176, 32, true) as BitmapData);
_local1.copyPixels(Assets.objects.get("ArtElements"), new Rectangle(0x0100, 80, 176, 32), new Point(0, 0));
var _local2 = (new Bitmap(_local1) as Bitmap);
_local2.x = (-(_local2.width) / 2);
_local2.y = (-(_local2.height) / 2);
gameover = new Sprite();
gameover.addChild(_local2);
gameover.filters = [new GlowFilter(0xFFFFFF, 0.7, 4, 4, 2, 3, false, false)];
highscoreDialog = new Sprite();
highscoreDialog.addChild(new Bitmap(Assets.objects.get("HighscoreDialog")));
submittingContainer = new Sprite();
beforeSubmittingContainer = new Sprite();
var _local3 = (new BitmapData(128, 32, true) as BitmapData);
_local3.copyPixels(Assets.objects.get("UITiles"), new Rectangle(272, 80, 128, 32), new Point(0, 0));
var _local4 = (new Bitmap(_local3) as Bitmap);
_local4.x = (-(_local4.width) / 2);
_local4.y = (-(_local4.height) / 2);
yourScore = new Sprite();
yourScore.addChild(_local4);
var _local5:* = {align:TextFormatAlign.CENTER, autosize:TextFieldAutoSize.CENTER, embedFonts:true, wordwrap:false, multiline:false, selectable:false, color:0xFFFFFF, size:24, font:new StylishM20().fontName};
scoreLabel = new Label(Std.string(Profile.score), _local5);
scoreLabel.getTextField().x = (-(scoreLabel.getTextField().width) / 2);
scoreLabel.getTextField().y = (-(scoreLabel.getTextField().height) / 2);
scoreContainer = new Sprite();
scoreContainer.addChild(scoreLabel.getTextField());
var _local6 = (new BitmapData(64, 32, true) as BitmapData);
_local6.copyPixels(Assets.objects.get("UITiles"), new Rectangle(272, 112, 64, 32), new Point(0, 0));
var _local7 = (new Bitmap(_local6) as Bitmap);
_local7.x = (-(_local7.width) / 2);
_local7.y = (-(_local7.height) / 2);
yourName = new Sprite();
yourName.addChild(_local7);
var _local8:* = {restrict:"A-Za-z0-9", width:200, maxchars:20, align:TextFormatAlign.CENTER, embedFonts:true, color:0xFFFFFF, size:16, font:new ScoreStandard().fontName};
nameInput = new Input(_local8);
nameInput.getTextField().x = (-(nameInput.getTextField().width) / 2);
nameInput.getTextField().y = -14;
var _local9 = (new BitmapData(200, 32, true) as BitmapData);
_local9.copyPixels(Assets.objects.get("UITiles"), new Rectangle(248, 176, 200, 32), new Point(0, 0));
var _local10 = (new Bitmap(_local9) as Bitmap);
_local10.x = (-(_local10.width) / 2);
_local10.y = (-(_local10.height) / 2);
nameInputBG = new Sprite();
nameInputBG.addChild(_local10);
nameInputBG.addChild(nameInput.getTextField());
var _local11 = (new BitmapData(176, 32, true) as BitmapData);
_local11.copyPixels(Assets.objects.get("UITiles"), new Rectangle(272, 144, 176, 32), new Point(0, 0));
var _local12 = (new Bitmap(_local11) as Bitmap);
_local12.x = (-(_local12.width) / 2);
_local12.y = (-(_local12.height) / 2);
submitting = new Sprite();
submitting.addChild(_local12);
var _local13 = (new BitmapData(48, 384, true) as BitmapData);
_local13.copyPixels(Assets.objects.get("UITiles"), new Rectangle(448, 0, 48, 384), new Point(0, 0));
submitTwirl = new MovieTile(_local13, 48, 48);
submitTwirl.play();
var _local14 = (new BitmapData(149, 120, true) as BitmapData);
_local14.copyPixels(Assets.objects.get("UITiles"), new Rectangle(0, 260, 149, 120), new Point(0, 0));
var _local15 = (new BitmapData(149, 120, true) as BitmapData);
_local15.copyPixels(Assets.objects.get("UITiles"), new Rectangle(149, 260, 149, 120), new Point(0, 0));
submitButton = new ButtonTile(_local14, 149, 30);
noButton = new ButtonTile(_local15, 149, 30);
yourName.x = (highscoreDialog.width / 2);
yourName.y = 130;
nameInputBG.x = (highscoreDialog.width / 2);
nameInputBG.y = 170;
submitButton.x = 46;
submitButton.y = 199;
noButton.x = 46;
noButton.y = 260;
beforeSubmittingContainer.addChild(yourName);
beforeSubmittingContainer.addChild(nameInputBG);
beforeSubmittingContainer.addChild(submitButton);
beforeSubmittingContainer.addChild(noButton);
submitting.x = (highscoreDialog.width / 2);
submitting.y = 240;
submitTwirl.x = ((highscoreDialog.width / 2) - (submitTwirl.width / 2));
submitTwirl.y = 150;
submittingContainer.addChild(submitting);
submittingContainer.addChild(submitTwirl);
yourScore.x = (highscoreDialog.width / 2);
yourScore.y = 34;
scoreContainer.x = (highscoreDialog.width / 2);
scoreContainer.y = 74;
highscoreDialog.addChild(beforeSubmittingContainer);
highscoreDialog.addChild(submittingContainer);
highscoreDialog.addChild(yourScore);
highscoreDialog.addChild(scoreContainer);
container.addChild(gameover);
container.addChild(highscoreDialog);
submitButton.click = onSubmitClick;
noButton.click = onNoClick;
}
public function onSubmitClick():void{
submittingContainer.visible = true;
beforeSubmittingContainer.visible = false;
var _local1 = (nameInput.getTextField().text as String);
var _local2 = (Std.string(Profile.score) as String);
var _local3 = (new URLRequest("http://rankz.armorbot.com/submit/as3_v0.php") as URLRequest);
_local3.method = URLRequestMethod.POST;
var _local4 = (new URLVariables() as URLVariables);
_local4.flashkey = "cE1nRWNOc0s=";
_local4.SU0249 = "MTk5N2olZSVhJW4lcw==";
_local4.bmFtZTE = _local1;
var _local5 = (_local2 as String);
var _local6 = (((_local5 + "Z") as String) as String);
_local4.c2NvcmUx = _local6.split("0").join("U");
_local4.c2NvcmUx = _local4.c2NvcmUx.split("").join("A");
_local4.c2NvcmUx = _local4.c2NvcmUx.split("AU").join("Y");
_local4.c2NvcmUx = _local4.c2NvcmUx.split("A1").join("B");
_local4.c2NvcmUx = _local4.c2NvcmUx.split(".").join("N");
_local3.data = _local4;
scoreDataLoader = new URLLoader();
scoreDataLoader.dataFormat = URLLoaderDataFormat.TEXT;
scoreDataLoader.addEventListener(Event.COMPLETE, dataOnComplete);
scoreDataLoader.load(_local3);
}
public function onNoClick():void{
var _local1:Boolean = Tweener.removeAllTweens();
if (_local1){
Profile.reset();
ScreenManager.playScreen.reset();
ScreenManager.techDialog.resetTechTree();
ScreenManager.hideDialog();
ScreenManager.showScreen("title");
};
}
public function init():void{
scoreLabel.updateLabel(Std.string(Profile.score));
gameover.x = 250;
gameover.y = 250;
gameover.alpha = 0;
highscoreDialog.x = (250 - (highscoreDialog.width / 2));
highscoreDialog.y = ((250 - (highscoreDialog.height / 2)) - 100);
highscoreDialog.alpha = 0;
beforeSubmittingContainer.visible = true;
submittingContainer.visible = false;
Tweener.addTween(gameover, {time:0.5, transition:"easeOutCubic", alpha:1});
Tweener.addTween(gameover, {delay:2, time:0.5, transition:"easeOutCubic", alpha:0});
Tweener.addTween(highscoreDialog, {delay:3, time:0.5, transition:"easeOutCubic", alpha:1, y:(250 - (highscoreDialog.height / 2))});
}
public function getFeedback(_arg1:Object):void{
if ((_arg1 == "okay")){
Profile.reset();
ScreenManager.playScreen.reset();
ScreenManager.techDialog.resetTechTree();
ScreenManager.hideDialog();
ScreenManager.showScreen("title");
};
}
public function dataOnComplete(_arg1:Event):void{
getFeedback("okay");
}
}
class Profile {
public static var lives:int;
public static var score:int;
public static var techpoint:int;
public static var curMissionID:int;
public static var curLevel:int;
public static var speed:int;
public static var handling:int;
public static var weapon1:Object;
public static var weapon2:Object;
public static var bombqty:int;
public static var bomblvl:int;
public static var score4tech:int;
public static var score4live:int;
public static var time:int;
public static var totaltime:int;
public function Profile():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
public static function reset(_arg1:Object=undefined):void{
Profile.lives = 5;
Profile.score = 0;
Profile.time = 0;
Profile.totaltime = 0;
Profile.score4tech = 0;
Profile.score4live = 1;
var _local2:Boolean = ((_arg1 == null)) ? false : _arg1;
if (!(_local2)){
Profile.curMissionID = 1;
Profile.curLevel = 1;
Profile.techpoint = 0;
Profile.weapon1 = Config.projectileA;
Profile.weapon2 = Config.projectileA;
Profile.speed = 3;
Profile.handling = 1;
Profile.bombqty = 3;
Profile.bomblvl = 1;
};
}
}
class Equations {
public function Equations():void{
if (Boot_BA08CD.skip_constructor){
return;
};
Log.trace("Equations is a static class and should not be instantiated.", {methodName:"new", className:"caurina.transitions.Equations", lineNumber:38, fileName:"Equations.hx"});
}
public static function init():void{
Tweener.registerTransition("easenone", Equations.easeNone);
Tweener.registerTransition("linear", Equations.easeNone);
Tweener.registerTransition("easeinquad", Equations.easeInQuad);
Tweener.registerTransition("easeoutquad", Equations.easeOutQuad);
Tweener.registerTransition("easeinoutquad", Equations.easeInOutQuad);
Tweener.registerTransition("easeoutinquad", Equations.easeOutInQuad);
Tweener.registerTransition("easeincubic", Equations.easeInCubic);
Tweener.registerTransition("easeoutcubic", Equations.easeOutCubic);
Tweener.registerTransition("easeinoutcubic", Equations.easeInOutCubic);
Tweener.registerTransition("easeoutincubic", Equations.easeOutInCubic);
Tweener.registerTransition("easeinquart", Equations.easeInQuart);
Tweener.registerTransition("easeoutquart", Equations.easeOutQuart);
Tweener.registerTransition("easeinoutquart", Equations.easeInOutQuart);
Tweener.registerTransition("easeoutinquart", Equations.easeOutInQuart);
Tweener.registerTransition("easeinquint", Equations.easeInQuint);
Tweener.registerTransition("easeoutquint", Equations.easeOutQuint);
Tweener.registerTransition("easeinoutquint", Equations.easeInOutQuint);
Tweener.registerTransition("easeoutinquint", Equations.easeOutInQuint);
Tweener.registerTransition("easeinsine", Equations.easeInSine);
Tweener.registerTransition("easeoutsine", Equations.easeOutSine);
Tweener.registerTransition("easeinoutsine", Equations.easeInOutSine);
Tweener.registerTransition("easeoutinsine", Equations.easeOutInSine);
Tweener.registerTransition("easeincirc", Equations.easeInCirc);
Tweener.registerTransition("easeoutcirc", Equations.easeOutCirc);
Tweener.registerTransition("easeinoutcirc", Equations.easeInOutCirc);
Tweener.registerTransition("easeoutincirc", Equations.easeOutInCirc);
Tweener.registerTransition("easeinexpo", Equations.easeInExpo);
Tweener.registerTransition("easeoutexpo", Equations.easeOutExpo);
Tweener.registerTransition("easeinoutexpo", Equations.easeInOutExpo);
Tweener.registerTransition("easeoutinexpo", Equations.easeOutInExpo);
Tweener.registerTransition("easeinelastic", Equations.easeInElastic);
Tweener.registerTransition("easeoutelastic", Equations.easeOutElastic);
Tweener.registerTransition("easeinoutelastic", Equations.easeInOutElastic);
Tweener.registerTransition("easeoutinelastic", Equations.easeOutInElastic);
Tweener.registerTransition("easeinback", Equations.easeInBack);
Tweener.registerTransition("easeoutback", Equations.easeOutBack);
Tweener.registerTransition("easeinoutback", Equations.easeInOutBack);
Tweener.registerTransition("easeoutinback", Equations.easeOutInBack);
Tweener.registerTransition("easeinbounce", Equations.easeInBounce);
Tweener.registerTransition("easeoutbounce", Equations.easeOutBounce);
Tweener.registerTransition("easeinoutbounce", Equations.easeInOutBounce);
Tweener.registerTransition("easeoutinbounce", Equations.easeOutInBounce);
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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 easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (Equations.easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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 easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (Equations.easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2));
}
public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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 easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (Equations.easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if ((_arg1 < 1)){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (Equations.easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2));
}
public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2));
}
public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2));
}
public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (Equations.easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg1 == 0)) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001)));
}
public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg1 == _arg4)) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2));
}
public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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 easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (Equations.easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
}
public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2));
}
public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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 easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (Equations.easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=undefined, _arg6:Object=undefined):Number{
var _local7:Number;
if ((_arg1 == 0)){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if ((_arg1 == 1)){
return ((_arg2 + _arg3));
};
if (!(Std.bool(_arg6))){
_arg6 = (_arg4 * 0.3);
};
if (!(_arg5 == null)){
true;
};
if (true){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
_arg1 = (_arg1 - 1);
return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2));
}
public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=undefined, _arg6:Object=undefined):Number{
var _local7:Number;
if ((_arg1 == 0)){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if ((_arg1 == 1)){
return ((_arg2 + _arg3));
};
if (!(Std.bool(_arg6))){
_arg6 = (_arg4 * 0.3);
};
if (!(_arg5 == null)){
true;
};
if (true){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) + _arg3) + _arg2));
}
public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=undefined, _arg6:Object=undefined):Number{
var _local7:Number;
if ((_arg1 == 0)){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if ((_arg1 == 2)){
return ((_arg2 + _arg3));
};
if (!(Std.bool(_arg6))){
_arg6 = (_arg4 * (0.3 * 1.5));
};
if (!(_arg5 == null)){
true;
};
if (true){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
if ((_arg1 < 1)){
_arg1 = (_arg1 - 1);
return (((-(0.5) * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2));
};
_arg1 = (_arg1 - 1);
return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) * 0.5) + _arg3) + _arg2));
}
public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=undefined, _arg6:Object=undefined):Number{
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5, _arg6));
};
return (Equations.easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5, _arg6));
}
public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=undefined):Number{
if ((_arg5 == null)){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2));
}
public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=undefined):Number{
if ((_arg5 == null)){
_arg5 = 1.70158;
};
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2));
}
public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=undefined):Number{
if ((_arg5 == null)){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / (_arg4 / 2));
if ((_arg1 < 1)){
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2));
};
_arg1 = (_arg1 - 2);
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2));
}
public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=undefined):Number{
if ((_arg5 == null)){
_arg5 = 1.70158;
};
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (Equations.easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg3 - Equations.easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2));
}
public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
if ((_arg1 < (1 / 2.75))){
return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2));
} else {
if ((_arg1 < (2 / 2.75))){
_arg1 = (_arg1 - (1.5 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2));
} else {
if ((_arg1 < (2.5 / 2.75))){
_arg1 = (_arg1 - (2.25 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2));
} else {
_arg1 = (_arg1 - (2.625 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2));
};
};
};
}
public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if ((_arg1 < (_arg4 / 2))){
return (((Equations.easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
} else {
return ((((Equations.easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
};
}
public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if ((_arg1 < (_arg4 / 2))){
return (Equations.easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (Equations.easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
}
class @Main {
public static var init:Object;
public function @Main():void{
if (Boot_BA08CD.skip_constructor){
return;
};
}
}