Section 1
//GameProgress_53 (game_fla.GameProgress_53)
package game_fla {
import flash.display.*;
public dynamic class GameProgress_53 extends MovieClip {
public function GameProgress_53(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_fla
Section 2
//gamoverSponsor_86 (game_fla.gamoverSponsor_86)
package game_fla {
import flash.display.*;
import flash.text.*;
public dynamic class gamoverSponsor_86 extends MovieClip {
public var txt:TextField;
}
}//package game_fla
Section 3
//keybMove_57 (game_fla.keybMove_57)
package game_fla {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public dynamic class keybMove_57 extends MovieClip {
public var timerLogo1:Timer;
public var timerLogo2:Timer;
public var timerLogo5:Timer;
public var timerLogo4:Timer;
public var timerLogo3:Timer;
public function keybMove_57(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5);
}
public function timerLogo5_Timer(_arg1:TimerEvent):void{
play();
}
public function timerLogo1_Timer(_arg1:TimerEvent):void{
play();
}
public function timerLogo2_Timer(_arg1:TimerEvent):void{
play();
}
function frame3(){
stop();
timerLogo3 = new Timer(1000, 1);
timerLogo3.start();
timerLogo3.addEventListener(TimerEvent.TIMER, timerLogo3_Timer);
}
function frame1(){
stop();
timerLogo1 = new Timer(1000, 1);
timerLogo1.start();
timerLogo1.addEventListener(TimerEvent.TIMER, timerLogo1_Timer);
}
function frame4(){
stop();
timerLogo4 = new Timer(1000, 1);
timerLogo4.start();
timerLogo4.addEventListener(TimerEvent.TIMER, timerLogo4_Timer);
}
function frame2(){
stop();
timerLogo2 = new Timer(1000, 1);
timerLogo2.start();
timerLogo2.addEventListener(TimerEvent.TIMER, timerLogo2_Timer);
}
function frame5(){
stop();
timerLogo5 = new Timer(1000, 1);
timerLogo5.start();
timerLogo5.addEventListener(TimerEvent.TIMER, timerLogo5_Timer);
}
public function timerLogo3_Timer(_arg1:TimerEvent):void{
play();
}
public function timerLogo4_Timer(_arg1:TimerEvent):void{
play();
}
}
}//package game_fla
Section 4
//keybSpace_58 (game_fla.keybSpace_58)
package game_fla {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public dynamic class keybSpace_58 extends MovieClip {
public var timerLogo11:Timer;
public var timerLogo12:Timer;
public function keybSpace_58(){
addFrameScript(0, frame1, 1, frame2);
}
public function timerLogo12_Timer(_arg1:TimerEvent):void{
play();
}
function frame1(){
stop();
timerLogo11 = new Timer(1000, 1);
timerLogo11.start();
timerLogo11.addEventListener(TimerEvent.TIMER, timerLogo11_Timer);
}
function frame2(){
stop();
timerLogo12 = new Timer(1000, 1);
timerLogo12.start();
timerLogo12.addEventListener(TimerEvent.TIMER, timerLogo12_Timer);
}
public function timerLogo11_Timer(_arg1:TimerEvent):void{
play();
}
}
}//package game_fla
Section 5
//MainTimeline (game_fla.MainTimeline)
package game_fla {
import main.*;
import flash.display.*;
import flash.events.*;
import mochi.as3.*;
import flash.utils.*;
import flash.net.*;
import flash.media.*;
public dynamic class MainTimeline extends MovieClip {
public var soundSwitch:MovieClip;
public var timerLogoFade:Timer;
public var sponsorSplash:MovieClip;
public var bFader:blackFader;
public var bg:background;
public var aura:aura;
public var preloader:preloader;
public var thisgame:game;
public var timerLogo:Timer;
public var sponsorLogo:MovieClip;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
public function soundSwitch_Click(_arg1:MouseEvent):void{
var _local2:SoundTransform;
if (soundSwitch.currentFrame == 1){
soundSwitch.gotoAndStop(2);
thisgame.game_snd.vol = 0;
_local2 = new SoundTransform();
_local2.volume = 0;
thisgame.soundChannel.soundTransform = _local2;
} else {
soundSwitch.gotoAndStop(1);
thisgame.game_snd.vol = 0.9;
_local2 = new SoundTransform();
_local2.volume = 1;
thisgame.soundChannel.soundTransform = _local2;
};
}
public function timerLogoFade_Timer(_arg1:TimerEvent):void{
bFader.start();
}
function frame1(){
stage.quality = "medium";
stop();
sponsorLogo.buttonMode = true;
sponsorLogo.addEventListener(MouseEvent.CLICK, sponsorLogoClick_Click);
MochiAd.showPreGameAd({clip:root, id:"051d4ea116430275", res:"550x400", background:0, color:285194, outline:6352386, no_bg:true, no_progress_bar:true});
}
function frame3(){
soundSwitch.buttonMode = true;
soundSwitch.addEventListener(MouseEvent.CLICK, soundSwitch_Click);
stop();
}
function frame2(){
stop();
timerLogo = new Timer(9000, 1);
timerLogo.start();
timerLogo.addEventListener(TimerEvent.TIMER, timerLogo_Timer);
bFader.visible = false;
timerLogoFade = new Timer(8000, 1);
timerLogoFade.start();
timerLogoFade.addEventListener(TimerEvent.TIMER, timerLogoFade_Timer);
sponsorSplash.buttonMode = true;
sponsorSplash.addEventListener(MouseEvent.CLICK, sponsorSplash_Click);
}
public function timerLogo_Timer(_arg1:TimerEvent):void{
play();
}
public function sponsorLogoClick_Click(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://playedonline.com?campaign=8bit&utm_campaign=8bit&utm_medium=in_game&utm_source=8bit"), "_blank");
}
public function sponsorSplash_Click(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://playedonline.com?campaign=8bit&utm_campaign=8bit&utm_medium=in_game&utm_source=8bit"), "_blank");
}
}
}//package game_fla
Section 6
//pressAnyKey_60 (game_fla.pressAnyKey_60)
package game_fla {
import flash.display.*;
import flash.text.*;
public dynamic class pressAnyKey_60 extends MovieClip {
public var thanksPlay:TextField;
}
}//package game_fla
Section 7
//progressbar_5 (game_fla.progressbar_5)
package game_fla {
import flash.display.*;
public dynamic class progressbar_5 extends MovieClip {
public function progressbar_5(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_fla
Section 8
//sound_init_10 (game_fla.sound_init_10)
package game_fla {
import flash.display.*;
public dynamic class sound_init_10 extends MovieClip {
public function sound_init_10(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_fla
Section 9
//SoundSwitch_87 (game_fla.SoundSwitch_87)
package game_fla {
import flash.display.*;
public dynamic class SoundSwitch_87 extends MovieClip {
public function SoundSwitch_87(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_fla
Section 10
//sprite19_41 (game_fla.sprite19_41)
package game_fla {
import flash.display.*;
public dynamic class sprite19_41 extends MovieClip {
public function sprite19_41(){
addFrameScript(129, frame130);
}
function frame130(){
stop();
}
}
}//package game_fla
Section 11
//aura (main.aura)
package main {
public dynamic class aura extends statObject {
override public function toString():String{
return ("aura");
}
}
}//package main
Section 12
//background (main.background)
package main {
import flash.display.*;
import flash.events.*;
public class background extends MovieClip {
const StarNumber:Number = 250;
const SCR_H:Number = 400;
const SCR_W:Number = 550;
var starArray:Array;
public function background(){
addFrameScript(0, frame1);
starArray = new Array();
generate();
addEventListener(Event.ENTER_FRAME, Update);
}
function Random(_arg1:Number=NaN, _arg2:Number=NaN):Number{
if (isNaN(_arg1)){
throw (new Error("low must be defined"));
};
if (isNaN(_arg2)){
throw (new Error("high must be defined"));
};
return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1));
}
function Distance(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
public function RemapVal(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
return ((_arg4 + (((_arg5 - _arg4) * (_arg1 - _arg2)) / (_arg3 - _arg2))));
}
function frame1(){
stop();
}
public function generate():void{
var _local1:Number;
var _local2:Star;
_local1 = 0;
while (_local1 < StarNumber) {
_local2 = new Star();
placeOnStarfield(_local2);
starArray.push(_local2);
addChild(_local2);
_local1++;
};
}
public function placeOnStarfield(_arg1:Star):void{
_arg1.cx = Random((-(SCR_W) / 3), (SCR_W / 3));
_arg1.cy = Random((-(SCR_H) / 3), (SCR_H / 3));
_arg1.genx = _arg1.cx;
_arg1.geny = _arg1.cy;
_arg1.speed = Random(3, 12);
_arg1.gotoAndStop(Random(1, 10));
_arg1.scaleX = (_arg1.scaleY = (1 + (0.05 * Random(1, 12))));
}
public function Update(_arg1:Event):void{
var _local2:Star;
var _local3:Number;
for each (_local2 in starArray) {
_local2.cx = (_local2.cx * (1 + (0.003 * _local2.speed)));
_local2.cy = (_local2.cy * (1 + (0.003 * _local2.speed)));
_local2.x = (_local2.cx + (SCR_W / 2));
_local2.y = (_local2.cy + (SCR_H / 2));
_local3 = Distance(_local2.x, _local2.y, (_local2.genx + (SCR_W / 2)), (_local2.geny + (SCR_H / 2)));
_local2.alpha = RemapVal(_local3, 0, (SCR_H / 2), 0, 1);
if ((((((((_local2.x < 0)) || ((_local2.y < 0)))) || ((_local2.x > SCR_W)))) || ((_local2.y > SCR_H)))){
placeOnStarfield(_local2);
};
};
}
}
}//package main
Section 13
//baseObject (main.baseObject)
package main {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public dynamic class baseObject extends MovieClip {
public var isImmortal:Boolean;// = false
public var timerImmortal:Timer;
public var VIPNotCollision:Boolean;// = false
public var LifeBar:Number;// = 0
public var removeAlphaEffect:Number;// = 0.1
public var radius:Number;
public var removed:Boolean;// = false
public var AlwaysOnScreen:Boolean;// = false
public var readyToRemove:Boolean;// = false
public var LifeBarMax:Number;// = 1
public var NoBonus:Boolean;// = false
public var VIP:Boolean;// = false
public var useLifeBar:Boolean;// = false
public function baseObject(){
removed = false;
readyToRemove = false;
VIPNotCollision = false;
removeAlphaEffect = 0.1;
VIP = false;
NoBonus = false;
AlwaysOnScreen = false;
isImmortal = false;
useLifeBar = false;
LifeBar = 0;
LifeBarMax = 1;
super();
radius = Math.floor(((width + height) / 4));
timerImmortal = new Timer(2000, 1);
timerImmortal.stop();
timerImmortal.addEventListener(TimerEvent.TIMER, timerImmortal_Timer);
}
function Random(_arg1:Number=NaN, _arg2:Number=NaN):Number{
if (isNaN(_arg1)){
throw (new Error("low must be defined"));
};
if (isNaN(_arg2)){
throw (new Error("high must be defined"));
};
return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1));
}
public function distance(_arg1:baseObject):Number{
return (Math.sqrt(distance2(_arg1)));
}
public function getImmortal():void{
isImmortal = true;
timerImmortal.start();
}
public function CheckCollision(_arg1:baseObject):Boolean{
var _local2:Number;
var _local3:Number;
_local2 = distance2(_arg1);
_local3 = (radius + _arg1.radius);
return ((_local2 < (_local3 * _local3)));
}
public function timerImmortal_Timer(_arg1:TimerEvent):void{
isImmortal = false;
timerImmortal.stop();
}
override public function toString():String{
return ("baseObject");
}
public function startRemove():void{
removed = true;
}
public function updateRemoveEffect():void{
if (alpha < removeAlphaEffect){
readyToRemove = true;
alpha = 0;
} else {
alpha = (alpha - removeAlphaEffect);
};
}
public function recalcRadius():void{
radius = Math.floor(((width + height) / 4));
}
public function distance2(_arg1:baseObject):Number{
var _local2:Number;
var _local3:Number;
_local2 = (x - _arg1.x);
_local3 = (y - _arg1.y);
return (((_local2 * _local2) + (_local3 * _local3)));
}
}
}//package main
Section 14
//blackFader (main.blackFader)
package main {
public dynamic class blackFader extends menuFader {
}
}//package main
Section 15
//bonusBrown (main.bonusBrown)
package main {
public dynamic class bonusBrown extends dynObject {
public function bonusBrown(){
notTargetRotate = true;
rot = 4;
removeAlphaEffect = 0.1;
}
override public function toString():String{
return ("bonus");
}
override public function subType():String{
return ("bonusBrown");
}
}
}//package main
Section 16
//bonusGreen (main.bonusGreen)
package main {
public dynamic class bonusGreen extends dynObject {
public function bonusGreen(){
notTargetRotate = true;
rot = 4;
removeAlphaEffect = 0.1;
}
override public function toString():String{
return ("bonus");
}
override public function subType():String{
return ("bonusGreen");
}
}
}//package main
Section 17
//bonusPink (main.bonusPink)
package main {
public dynamic class bonusPink extends dynObject {
public function bonusPink(){
notTargetRotate = true;
rot = 4;
removeAlphaEffect = 0.1;
}
override public function toString():String{
return ("bonus");
}
override public function subType():String{
return ("bonusPink");
}
}
}//package main
Section 18
//bossDeath (main.bossDeath)
package main {
import flash.geom.*;
public dynamic class bossDeath extends turret {
public function bossDeath(){
var _local1:Number;
var _local2:Boolean;
var _local3:Boolean;
super();
addFrameScript(0, frame1);
rotateSpeed = 4;
VelocitySpd = 4;
angleTargeting = 360;
AlwaysOnScreen = true;
notTargetRotate = false;
zoomEffect = 0.01;
points = new Object();
points["part1"] = new Point(-14.5, 36.5);
points["part2"] = new Point(11, 32.3);
points["part3"] = new Point(-3.8, 32.3);
points["part4"] = new Point(3.8, 25.5);
points["part5"] = new Point(-10.8, 25.5);
points["part6"] = new Point(-18, 18);
points["part7"] = new Point(-3.8, 17.8);
points["part8"] = new Point(10.5, 18);
points["shoot_pnt1"] = new Point(-3.8, 17.8);
points["shoot_pnt2"] = new Point(-7.5, -2.1);
FlyByPath = true;
CurPathPoint = 1;
MaxPathPoint = 30;
_local1 = 1;
while (_local1 <= MaxPathPoint) {
_local2 = Boolean(Random(0, 1));
_local3 = Boolean(Random(0, 1));
points[("path" + _local1)] = new Point((_local2) ? Random(0, 150) : Random(350, 450), (_local3) ? Random(0, 150) : Random(300, 400));
_local1++;
};
maxShootSeria = 6;
curShootSeria = 0;
timeShoot = 90;
timeReload = 2000;
LifeBarMax = 9;
LifeBar = 0;
useLifeBar = true;
}
function frame1(){
stop();
}
override public function behaviorType():String{
return ("bossDeath");
}
}
}//package main
Section 19
//bossDeathPart (main.bossDeathPart)
package main {
public dynamic class bossDeathPart extends proj {
}
}//package main
Section 20
//bossDevastator (main.bossDevastator)
package main {
import flash.geom.*;
public dynamic class bossDevastator extends turret {
public function bossDevastator(){
var _local1:Number;
var _local2:Boolean;
var _local3:Boolean;
super();
addFrameScript(0, frame1);
rotateSpeed = 4;
VelocitySpd = 5;
angleTargeting = 45;
AlwaysOnScreen = true;
zoomEffect = 0.01;
points = new Object();
points["part1"] = new Point(-22.6, -9.2);
points["part2"] = new Point(17.9, -22.7);
points["part3"] = new Point(-39.6, -32.1);
points["part4"] = new Point(17.9, -32.1);
points["part5"] = new Point(-9, -23.2);
points["shoot_pnt1"] = new Point(-36.1, -41.2);
points["shoot_pnt2"] = new Point(20.6, -41.2);
points["shoot_pnt3"] = new Point(-7.8, -31.7);
FlyByPath = true;
CurPathPoint = 1;
MaxPathPoint = 30;
_local1 = 1;
while (_local1 <= MaxPathPoint) {
_local2 = Boolean(Random(0, 1));
_local3 = Boolean(Random(0, 1));
points[("path" + _local1)] = new Point((_local2) ? Random(0, 150) : Random(350, 450), (_local3) ? Random(0, 150) : Random(300, 400));
_local1++;
};
maxShootSeria = 10;
curShootSeria = 0;
timeShoot = 40;
timeReload = 4000;
LifeBarMax = 6;
LifeBar = 0;
useLifeBar = true;
}
function frame1(){
stop();
}
override public function behaviorType():String{
return ("bossDevastator");
}
}
}//package main
Section 21
//bossDevastatorPart1 (main.bossDevastatorPart1)
package main {
public dynamic class bossDevastatorPart1 extends proj {
}
}//package main
Section 22
//bossDevastatorPart2 (main.bossDevastatorPart2)
package main {
public dynamic class bossDevastatorPart2 extends proj {
}
}//package main
Section 23
//bossDevastatorPart3 (main.bossDevastatorPart3)
package main {
public dynamic class bossDevastatorPart3 extends proj {
}
}//package main
Section 24
//bossDevastatorPart4 (main.bossDevastatorPart4)
package main {
public dynamic class bossDevastatorPart4 extends proj {
}
}//package main
Section 25
//bossFighter (main.bossFighter)
package main {
import flash.geom.*;
public dynamic class bossFighter extends turret {
public function bossFighter(){
var _local1:Number;
var _local2:Boolean;
var _local3:Boolean;
super();
addFrameScript(0, frame1);
notTargetRotate = true;
rot = 4;
rotateSpeed = 2;
VelocitySpd = 2;
angleTargeting = 360;
AlwaysOnScreen = true;
zoomEffect = 0.01;
points = new Object();
points["part1"] = new Point(-30.8, 0.1);
points["part2"] = new Point(15.9, 26.3);
points["part3"] = new Point(16.1, -25.6);
points["shoot_pnt1"] = new Point(-30.8, 0.1);
points["shoot_pnt2"] = new Point(15.9, 26.3);
points["shoot_pnt3"] = new Point(16.1, -25.6);
points["shoot_pnt4"] = new Point(0, 0);
FlyByPath = true;
CurPathPoint = 1;
MaxPathPoint = 30;
_local1 = 1;
while (_local1 <= MaxPathPoint) {
_local2 = Boolean(Random(0, 1));
_local3 = Boolean(Random(0, 1));
points[("path" + _local1)] = new Point((_local2) ? Random(0, 150) : Random(350, 450), (_local3) ? Random(0, 150) : Random(300, 400));
_local1++;
};
maxShootSeria = 6;
curShootSeria = 0;
timeShoot = 80;
timeReload = 1200;
LifeBarMax = 4;
LifeBar = 0;
useLifeBar = true;
}
function frame1(){
stop();
}
override public function behaviorType():String{
return ("bossFighter");
}
}
}//package main
Section 26
//bossFighterTurret (main.bossFighterTurret)
package main {
import flash.geom.*;
public dynamic class bossFighterTurret extends turret {
public function bossFighterTurret(){
var _local1:Number;
var _local2:Boolean;
var _local3:Boolean;
super();
addFrameScript(0, frame1);
rotateSpeed = 7;
angleTargeting = 45;
maxShootSeria = 5;
curShootSeria = 0;
timeShoot = 100;
timeReload = 2000;
points = new Object();
points["part1"] = new Point(-15.2, -9.3);
points["part2"] = new Point(11.3, -9.3);
FlyByPath = true;
CurPathPoint = 1;
MaxPathPoint = 30;
_local1 = 1;
while (_local1 <= MaxPathPoint) {
_local2 = Boolean(Random(0, 1));
_local3 = Boolean(Random(0, 1));
points[("path" + _local1)] = new Point((_local2) ? Random(0, 150) : Random(350, 450), (_local3) ? Random(0, 150) : Random(300, 400));
_local1++;
};
LifeBarMax = 2;
LifeBar = 0;
useLifeBar = true;
VIPNotCollision = true;
}
function frame1(){
stop();
}
override public function behaviorType():String{
return ("bossFighterTurret");
}
}
}//package main
Section 27
//bossFighterTurretPart (main.bossFighterTurretPart)
package main {
public dynamic class bossFighterTurretPart extends proj {
}
}//package main
Section 28
//bossProgressor (main.bossProgressor)
package main {
import flash.geom.*;
public dynamic class bossProgressor extends turret {
public function bossProgressor(){
var _local1:Number;
var _local2:Boolean;
var _local3:Boolean;
super();
addFrameScript(0, frame1);
rotateSpeed = 2;
VelocitySpd = 2;
angleTargeting = 35;
AlwaysOnScreen = true;
zoomEffect = 0.01;
points = new Object();
points["part1"] = new Point(-52.6, -33.5);
points["part2"] = new Point(31.9, -34.2);
points["part3"] = new Point(-16.9, 20.4);
points["part4"] = new Point(-13.6, -85);
points["part5"] = new Point(-38.6, -59.3);
points["shoot_pnt1"] = new Point(-9, -99);
points["shoot_pnt2"] = new Point(-37.3, -72.3);
points["shoot_pnt3"] = new Point(17.2, -72.3);
FlyByPath = true;
CurPathPoint = 1;
MaxPathPoint = 30;
_local1 = 1;
while (_local1 <= MaxPathPoint) {
_local2 = Boolean(Random(0, 1));
_local3 = Boolean(Random(0, 1));
points[("path" + _local1)] = new Point((_local2) ? Random(0, 150) : Random(350, 450), (_local3) ? Random(0, 150) : Random(300, 400));
_local1++;
};
maxShootSeria = 6;
curShootSeria = 0;
timeShoot = 80;
timeReload = 2500;
LifeBarMax = 6;
LifeBar = 0;
useLifeBar = true;
}
function frame1(){
stop();
}
override public function behaviorType():String{
return ("bossProgressor");
}
}
}//package main
Section 29
//bossProgressorPart1 (main.bossProgressorPart1)
package main {
public dynamic class bossProgressorPart1 extends proj {
}
}//package main
Section 30
//bossProgressorPart2 (main.bossProgressorPart2)
package main {
public dynamic class bossProgressorPart2 extends proj {
}
}//package main
Section 31
//bossProgressorPart3 (main.bossProgressorPart3)
package main {
public dynamic class bossProgressorPart3 extends proj {
}
}//package main
Section 32
//bossProgressorPart4 (main.bossProgressorPart4)
package main {
public dynamic class bossProgressorPart4 extends proj {
}
}//package main
Section 33
//bossProgressorPart5 (main.bossProgressorPart5)
package main {
public dynamic class bossProgressorPart5 extends proj {
}
}//package main
Section 34
//bossSeeder (main.bossSeeder)
package main {
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
public dynamic class bossSeeder extends turret {
public var timerSeed:Timer;
public var seeding:Boolean;// = false
public function bossSeeder(){
var _local1:Number;
var _local2:Boolean;
var _local3:Boolean;
seeding = false;
super();
addFrameScript(0, frame1);
rotateSpeed = 4;
VelocitySpd = 4;
angleTargeting = 360;
AlwaysOnScreen = true;
notTargetRotate = false;
zoomEffect = 0.01;
points = new Object();
points["part1"] = new Point(-25.8, 3);
points["part2"] = new Point(11.8, -15.2);
points["part3"] = new Point(11.8, 2.8);
points["part4"] = new Point(-25.8, 21.6);
points["part5"] = new Point(11.8, 21.3);
points["part6"] = new Point(-25.8, -14.9);
points["shoot_pnt1"] = new Point(-25.8, 3);
points["shoot_pnt2"] = new Point(11.8, -15.2);
points["shoot_pnt3"] = new Point(11.8, 2.8);
points["shoot_pnt4"] = new Point(-25.8, 21.6);
points["shoot_pnt5"] = new Point(11.8, 21.3);
points["shoot_pnt6"] = new Point(-25.8, -14.9);
points["shoot_pnt7"] = new Point(0, -44.7);
FlyByPath = true;
CurPathPoint = 1;
MaxPathPoint = 30;
_local1 = 1;
while (_local1 <= MaxPathPoint) {
_local2 = Boolean(Random(0, 1));
_local3 = Boolean(Random(0, 1));
points[("path" + _local1)] = new Point((_local2) ? Random(0, 150) : Random(350, 450), (_local3) ? Random(0, 150) : Random(300, 400));
_local1++;
};
maxShootSeria = 3;
curShootSeria = 0;
timeShoot = 90;
timeReload = 2000;
LifeBarMax = 7;
LifeBar = 0;
useLifeBar = true;
timerSeed = new Timer(5000);
timerSeed.stop();
timerSeed.addEventListener(TimerEvent.TIMER, timerSeed_Timer);
}
function frame1(){
stop();
}
override public function behaviorType():String{
return ("bossSeeder");
}
public function timerSeed_Timer(_arg1:TimerEvent):void{
seeding = true;
}
}
}//package main
Section 35
//bossSeederPart (main.bossSeederPart)
package main {
public dynamic class bossSeederPart extends proj {
}
}//package main
Section 36
//ColorMatrix (main.ColorMatrix)
package main {
import flash.filters.*;
public class ColorMatrix {
public var matrix:Array;
private var preHue:ColorMatrix;
private var postHue:ColorMatrix;
private var hueInitialized:Boolean;
private static const ONETHIRD:Number = 0.333333333333333;
private static const LUMA_G:Number = 0.71516;
private static const LUMA_B:Number = 0.072169;
private static const LUMA_R2:Number = 0.3086;
private static const LUMA_G2:Number = 0.6094;
private static const LUMA_R:Number = 0.212671;
private static const LUMA_B2:Number = 0.082;
private static const RAD:Number = (Math.PI / 180);
private static const IDENTITY:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
public static const COLOR_DEFICIENCY_TYPES:Array = ["Protanopia", "Protanomaly", "Deuteranopia", "Deuteranomaly", "Tritanopia", "Tritanomaly", "Achromatopsia", "Achromatomaly"];
public function ColorMatrix(_arg1:Object=null){
if ((_arg1 is ColorMatrix)){
matrix = _arg1.matrix.concat();
} else {
if ((_arg1 is Array)){
matrix = _arg1.concat();
} else {
reset();
};
};
}
public function adjustBrightness(_arg1:Number, _arg2:Number=NaN, _arg3:Number=NaN):void{
if (isNaN(_arg2)){
_arg2 = _arg1;
};
if (isNaN(_arg3)){
_arg3 = _arg1;
};
concat([1, 0, 0, 0, _arg1, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg3, 0, 0, 0, 1, 0]);
}
public function averageRGB2Alpha():void{
concat([0, 0, 0, 0, 0xFF, 0, 0, 0, 0, 0xFF, 0, 0, 0, 0, 0xFF, ONETHIRD, ONETHIRD, ONETHIRD, 0, 0]);
}
public function luminance2Alpha():void{
concat([0, 0, 0, 0, 0xFF, 0, 0, 0, 0, 0xFF, 0, 0, 0, 0, 0xFF, LUMA_R, LUMA_G, LUMA_B, 0, 0]);
}
public function rotateRed(_arg1:Number):void{
rotateColor(_arg1, 2, 1);
}
public function adjustAlphaContrast(_arg1:Number):void{
_arg1 = (_arg1 + 1);
concat([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _arg1, (128 * (1 - _arg1))]);
}
public function adjustSaturation(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local2 = (1 - _arg1);
_local3 = (_local2 * LUMA_R);
_local4 = (_local2 * LUMA_G);
_local5 = (_local2 * LUMA_B);
concat([(_local3 + _arg1), _local4, _local5, 0, 0, _local3, (_local4 + _arg1), _local5, 0, 0, _local3, _local4, (_local5 + _arg1), 0, 0, 0, 0, 0, 1, 0]);
}
public function blend(_arg1:ColorMatrix, _arg2:Number):void{
var _local3:Number;
var _local4:int;
_local3 = (1 - _arg2);
_local4 = 0;
while (_local4 < 20) {
matrix[_local4] = ((_local3 * Number(matrix[_local4])) + (_arg2 * Number(_arg1.matrix[_local4])));
_local4++;
};
}
public function setChannels(_arg1:int=1, _arg2:int=2, _arg3:int=4, _arg4:int=8):void{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local5 = (((((((_arg1 & 1) == 1)) ? 1 : ((0 + ((_arg1 & 2) == 2))) ? 1 : 0 + ((_arg1 & 4) == 4))) ? 1 : 0 + ((_arg1 & 8) == 8))) ? 1 : 0;
if (_local5 > 0){
_local5 = (1 / _local5);
};
_local6 = (((((((_arg2 & 1) == 1)) ? 1 : ((0 + ((_arg2 & 2) == 2))) ? 1 : 0 + ((_arg2 & 4) == 4))) ? 1 : 0 + ((_arg2 & 8) == 8))) ? 1 : 0;
if (_local6 > 0){
_local6 = (1 / _local6);
};
_local7 = (((((((_arg3 & 1) == 1)) ? 1 : ((0 + ((_arg3 & 2) == 2))) ? 1 : 0 + ((_arg3 & 4) == 4))) ? 1 : 0 + ((_arg3 & 8) == 8))) ? 1 : 0;
if (_local7 > 0){
_local7 = (1 / _local7);
};
_local8 = (((((((_arg4 & 1) == 1)) ? 1 : ((0 + ((_arg4 & 2) == 2))) ? 1 : 0 + ((_arg4 & 4) == 4))) ? 1 : 0 + ((_arg4 & 8) == 8))) ? 1 : 0;
if (_local8 > 0){
_local8 = (1 / _local8);
};
concat([(((_arg1 & 1) == 1)) ? _local5 : 0, (((_arg1 & 2) == 2)) ? _local5 : 0, (((_arg1 & 4) == 4)) ? _local5 : 0, (((_arg1 & 8) == 8)) ? _local5 : 0, 0, (((_arg2 & 1) == 1)) ? _local6 : 0, (((_arg2 & 2) == 2)) ? _local6 : 0, (((_arg2 & 4) == 4)) ? _local6 : 0, (((_arg2 & 8) == 8)) ? _local6 : 0, 0, (((_arg3 & 1) == 1)) ? _local7 : 0, (((_arg3 & 2) == 2)) ? _local7 : 0, (((_arg3 & 4) == 4)) ? _local7 : 0, (((_arg3 & 8) == 8)) ? _local7 : 0, 0, (((_arg4 & 1) == 1)) ? _local8 : 0, (((_arg4 & 2) == 2)) ? _local8 : 0, (((_arg4 & 4) == 4)) ? _local8 : 0, (((_arg4 & 8) == 8)) ? _local8 : 0, 0]);
}
public function randomize(_arg1:Number=1):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local2 = (1 - _arg1);
_local3 = (_local2 + (_arg1 * (Math.random() - Math.random())));
_local4 = (_arg1 * (Math.random() - Math.random()));
_local5 = (_arg1 * (Math.random() - Math.random()));
_local6 = ((_arg1 * 0xFF) * (Math.random() - Math.random()));
_local7 = (_arg1 * (Math.random() - Math.random()));
_local8 = (_local2 + (_arg1 * (Math.random() - Math.random())));
_local9 = (_arg1 * (Math.random() - Math.random()));
_local10 = ((_arg1 * 0xFF) * (Math.random() - Math.random()));
_local11 = (_arg1 * (Math.random() - Math.random()));
_local12 = (_arg1 * (Math.random() - Math.random()));
_local13 = (_local2 + (_arg1 * (Math.random() - Math.random())));
_local14 = ((_arg1 * 0xFF) * (Math.random() - Math.random()));
concat([_local3, _local4, _local5, 0, _local6, _local7, _local8, _local9, 0, _local10, _local11, _local12, _local13, 0, _local14, 0, 0, 0, 1, 0]);
}
public function concat(_arg1:Array):void{
var _local2:Array;
var _local3:int;
var _local4:int;
var _local5:int;
_local2 = [];
_local3 = 0;
_local5 = 0;
while (_local5 < 4) {
_local4 = 0;
while (_local4 < 5) {
_local2[int((_local3 + _local4))] = (((((Number(_arg1[_local3]) * Number(matrix[_local4])) + (Number(_arg1[int((_local3 + 1))]) * Number(matrix[int((_local4 + 5))]))) + (Number(_arg1[int((_local3 + 2))]) * Number(matrix[int((_local4 + 10))]))) + (Number(_arg1[int((_local3 + 3))]) * Number(matrix[int((_local4 + 15))]))) + ((_local4 == 4)) ? Number(_arg1[int((_local3 + 4))]) : 0);
_local4++;
};
_local3 = (_local3 + 5);
_local5++;
};
matrix = _local2;
}
public function invert():void{
concat([-1, 0, 0, 0, 0xFF, 0, -1, 0, 0, 0xFF, 0, 0, -1, 0, 0xFF, 0, 0, 0, 1, 0]);
}
private function rotateColor(_arg1:Number, _arg2:int, _arg3:int):void{
var _local4:Array;
_arg1 = (_arg1 * RAD);
_local4 = IDENTITY.concat();
_local4[(_arg2 + (_arg2 * 5))] = (_local4[(_arg3 + (_arg3 * 5))] = Math.cos(_arg1));
_local4[(_arg3 + (_arg2 * 5))] = Math.sin(_arg1);
_local4[(_arg2 + (_arg3 * 5))] = -(Math.sin(_arg1));
concat(_local4);
}
public function colorize(_arg1:int, _arg2:Number=1):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local3 = (((_arg1 >> 16) & 0xFF) / 0xFF);
_local4 = (((_arg1 >> 8) & 0xFF) / 0xFF);
_local5 = ((_arg1 & 0xFF) / 0xFF);
_local6 = (1 - _arg2);
concat([(_local6 + ((_arg2 * _local3) * LUMA_R)), ((_arg2 * _local3) * LUMA_G), ((_arg2 * _local3) * LUMA_B), 0, 0, ((_arg2 * _local4) * LUMA_R), (_local6 + ((_arg2 * _local4) * LUMA_G)), ((_arg2 * _local4) * LUMA_B), 0, 0, ((_arg2 * _local5) * LUMA_R), ((_arg2 * _local5) * LUMA_G), (_local6 + ((_arg2 * _local5) * LUMA_B)), 0, 0, 0, 0, 0, 1, 0]);
}
public function rgb2Alpha(_arg1:Number, _arg2:Number, _arg3:Number):void{
concat([0, 0, 0, 0, 0xFF, 0, 0, 0, 0, 0xFF, 0, 0, 0, 0, 0xFF, _arg1, _arg2, _arg3, 0, 0]);
}
public function get filter():ColorMatrixFilter{
return (new ColorMatrixFilter(matrix));
}
public function shearBlue(_arg1:Number, _arg2:Number):void{
shearColor(2, 0, _arg1, 1, _arg2);
}
public function setAlpha(_arg1:Number):void{
concat([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _arg1, 0]);
}
public function rotateHue(_arg1:Number):void{
initHue();
concat(preHue.matrix);
rotateBlue(_arg1);
concat(postHue.matrix);
}
public function reset():void{
matrix = IDENTITY.concat();
}
private function initHue():void{
var _local1:Number;
var _local2:Array;
var _local3:Number;
var _local4:Number;
_local1 = 39.182655;
if (!hueInitialized){
hueInitialized = true;
preHue = new ColorMatrix();
preHue.rotateRed(45);
preHue.rotateGreen(-(_local1));
_local2 = [LUMA_R2, LUMA_G2, LUMA_B2, 1];
preHue.transformVector(_local2);
_local3 = (_local2[0] / _local2[2]);
_local4 = (_local2[1] / _local2[2]);
preHue.shearBlue(_local3, _local4);
postHue = new ColorMatrix();
postHue.shearBlue(-(_local3), -(_local4));
postHue.rotateGreen(_local1);
postHue.rotateRed(-45);
};
}
public function shearGreen(_arg1:Number, _arg2:Number):void{
shearColor(1, 0, _arg1, 2, _arg2);
}
public function shearRed(_arg1:Number, _arg2:Number):void{
shearColor(0, 1, _arg1, 2, _arg2);
}
public function clone():ColorMatrix{
return (new ColorMatrix(matrix));
}
public function applyMatrix(_arg1:uint):uint{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
_local2 = ((_arg1 >>> 24) & 0xFF);
_local3 = ((_arg1 >>> 16) & 0xFF);
_local4 = ((_arg1 >>> 8) & 0xFF);
_local5 = (_arg1 & 0xFF);
_local6 = (((((0.5 + (_local3 * matrix[0])) + (_local4 * matrix[1])) + (_local5 * matrix[2])) + (_local2 * matrix[3])) + matrix[4]);
_local7 = (((((0.5 + (_local3 * matrix[5])) + (_local4 * matrix[6])) + (_local5 * matrix[7])) + (_local2 * matrix[8])) + matrix[9]);
_local8 = (((((0.5 + (_local3 * matrix[10])) + (_local4 * matrix[11])) + (_local5 * matrix[12])) + (_local2 * matrix[13])) + matrix[14]);
_local9 = (((((0.5 + (_local3 * matrix[15])) + (_local4 * matrix[16])) + (_local5 * matrix[17])) + (_local2 * matrix[18])) + matrix[19]);
if (_local9 < 0){
_local9 = 0;
};
if (_local9 > 0xFF){
_local9 = 0xFF;
};
if (_local6 < 0){
_local6 = 0;
};
if (_local6 > 0xFF){
_local6 = 0xFF;
};
if (_local7 < 0){
_local7 = 0;
};
if (_local7 > 0xFF){
_local7 = 0xFF;
};
if (_local8 < 0){
_local8 = 0;
};
if (_local8 > 0xFF){
_local8 = 0xFF;
};
return (((((_local9 << 24) | (_local6 << 16)) | (_local7 << 8)) | _local8));
}
public function invertAlpha():void{
concat([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0xFF]);
}
public function adjustHue(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
_arg1 = (_arg1 * RAD);
_local2 = Math.cos(_arg1);
_local3 = Math.sin(_arg1);
concat([((LUMA_R + (_local2 * (1 - LUMA_R))) + (_local3 * -(LUMA_R))), ((LUMA_G + (_local2 * -(LUMA_G))) + (_local3 * -(LUMA_G))), ((LUMA_B + (_local2 * -(LUMA_B))) + (_local3 * (1 - LUMA_B))), 0, 0, ((LUMA_R + (_local2 * -(LUMA_R))) + (_local3 * 0.143)), ((LUMA_G + (_local2 * (1 - LUMA_G))) + (_local3 * 0.14)), ((LUMA_B + (_local2 * -(LUMA_B))) + (_local3 * -0.283)), 0, 0, ((LUMA_R + (_local2 * -(LUMA_R))) + (_local3 * -((1 - LUMA_R)))), ((LUMA_G + (_local2 * -(LUMA_G))) + (_local3 * LUMA_G)), ((LUMA_B + (_local2 * (1 - LUMA_B))) + (_local3 * LUMA_B)), 0, 0, 0, 0, 0, 1, 0]);
}
public function threshold(_arg1:Number, _arg2:Number=0x0100):void{
concat([(LUMA_R * _arg2), (LUMA_G * _arg2), (LUMA_B * _arg2), 0, (-(_arg2) * _arg1), (LUMA_R * _arg2), (LUMA_G * _arg2), (LUMA_B * _arg2), 0, (-(_arg2) * _arg1), (LUMA_R * _arg2), (LUMA_G * _arg2), (LUMA_B * _arg2), 0, (-(_arg2) * _arg1), 0, 0, 0, 1, 0]);
}
public function average(_arg1:Number=0.333333333333333, _arg2:Number=0.333333333333333, _arg3:Number=0.333333333333333):void{
concat([_arg1, _arg2, _arg3, 0, 0, _arg1, _arg2, _arg3, 0, 0, _arg1, _arg2, _arg3, 0, 0, 0, 0, 0, 1, 0]);
}
public function rotateBlue(_arg1:Number):void{
rotateColor(_arg1, 1, 0);
}
public function rotateGreen(_arg1:Number):void{
rotateColor(_arg1, 0, 2);
}
public function adjustContrast(_arg1:Number, _arg2:Number=NaN, _arg3:Number=NaN):void{
if (isNaN(_arg2)){
_arg2 = _arg1;
};
if (isNaN(_arg3)){
_arg3 = _arg1;
};
_arg1 = (_arg1 + 1);
_arg2 = (_arg2 + 1);
_arg3 = (_arg3 + 1);
concat([_arg1, 0, 0, 0, (128 * (1 - _arg1)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg3, 0, (128 * (1 - _arg3)), 0, 0, 0, 1, 0]);
}
public function transformVector(_arg1:Array):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
if (_arg1.length != 4){
return;
};
_local2 = (((((_arg1[0] * matrix[0]) + (_arg1[1] * matrix[1])) + (_arg1[2] * matrix[2])) + (_arg1[3] * matrix[3])) + matrix[4]);
_local3 = (((((_arg1[0] * matrix[5]) + (_arg1[1] * matrix[6])) + (_arg1[2] * matrix[7])) + (_arg1[3] * matrix[8])) + matrix[9]);
_local4 = (((((_arg1[0] * matrix[10]) + (_arg1[1] * matrix[11])) + (_arg1[2] * matrix[12])) + (_arg1[3] * matrix[13])) + matrix[14]);
_local5 = (((((_arg1[0] * matrix[15]) + (_arg1[1] * matrix[16])) + (_arg1[2] * matrix[17])) + (_arg1[3] * matrix[18])) + matrix[19]);
_arg1[0] = _local2;
_arg1[1] = _local3;
_arg1[2] = _local4;
_arg1[3] = _local5;
}
public function setMultiplicators(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1):void{
var _local5:Array;
_local5 = new Array(_arg1, 0, 0, 0, 0, 0, _arg2, 0, 0, 0, 0, 0, _arg3, 0, 0, 0, 0, 0, _arg4, 0);
concat(_local5);
}
public function desaturate():void{
concat([LUMA_R, LUMA_G, LUMA_B, 0, 0, LUMA_R, LUMA_G, LUMA_B, 0, 0, LUMA_R, LUMA_G, LUMA_B, 0, 0, 0, 0, 0, 1, 0]);
}
public function thresholdAlpha(_arg1:Number, _arg2:Number=0x0100):void{
concat([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _arg2, (-(_arg2) * _arg1)]);
}
private function shearColor(_arg1:int, _arg2:int, _arg3:Number, _arg4:int, _arg5:Number):void{
var _local6:Array;
_local6 = IDENTITY.concat();
_local6[(_arg2 + (_arg1 * 5))] = _arg3;
_local6[(_arg4 + (_arg1 * 5))] = _arg5;
concat(_local6);
}
public function clearChannels(_arg1:Boolean=false, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Boolean=false):void{
if (_arg1){
matrix[0] = (matrix[1] = (matrix[2] = (matrix[3] = (matrix[4] = 0))));
};
if (_arg2){
matrix[5] = (matrix[6] = (matrix[7] = (matrix[8] = (matrix[9] = 0))));
};
if (_arg3){
matrix[10] = (matrix[11] = (matrix[12] = (matrix[13] = (matrix[14] = 0))));
};
if (_arg4){
matrix[15] = (matrix[16] = (matrix[17] = (matrix[18] = (matrix[19] = 0))));
};
}
public function applyColorDeficiency(_arg1:String):void{
switch (_arg1){
case "Protanopia":
concat([0.567, 0.433, 0, 0, 0, 0.558, 0.442, 0, 0, 0, 0, 0.242, 0.758, 0, 0, 0, 0, 0, 1, 0]);
break;
case "Protanomaly":
concat([0.817, 0.183, 0, 0, 0, 0.333, 0.667, 0, 0, 0, 0, 0.125, 0.875, 0, 0, 0, 0, 0, 1, 0]);
break;
case "Deuteranopia":
concat([0.625, 0.375, 0, 0, 0, 0.7, 0.3, 0, 0, 0, 0, 0.3, 0.7, 0, 0, 0, 0, 0, 1, 0]);
break;
case "Deuteranomaly":
concat([0.8, 0.2, 0, 0, 0, 0.258, 0.742, 0, 0, 0, 0, 0.142, 0.858, 0, 0, 0, 0, 0, 1, 0]);
break;
case "Tritanopia":
concat([0.95, 0.05, 0, 0, 0, 0, 0.433, 0.567, 0, 0, 0, 0.475, 0.525, 0, 0, 0, 0, 0, 1, 0]);
break;
case "Tritanomaly":
concat([0.967, 0.033, 0, 0, 0, 0, 0.733, 0.267, 0, 0, 0, 0.183, 0.817, 0, 0, 0, 0, 0, 1, 0]);
break;
case "Achromatopsia":
concat([0.299, 0.587, 0.114, 0, 0, 0.299, 0.587, 0.114, 0, 0, 0.299, 0.587, 0.114, 0, 0, 0, 0, 0, 1, 0]);
break;
case "Achromatomaly":
concat([0.618, 0.32, 0.062, 0, 0, 0.163, 0.775, 0.062, 0, 0, 0.163, 0.32, 0.516, 0, 0, 0, 0, 0, 1, 0]);
break;
};
}
}
}//package main
Section 37
//dynObject (main.dynObject)
package main {
import flash.geom.*;
public dynamic class dynObject extends baseObject {
const MAX_SPEED:Number = 4;
const MIN_SPEED:Number = 1;
const DROP_RADIUS:Number = 100;
public var RotTarget:Vector;
public var CurPathPoint:Number;// = 1
public var zoomedIn:Boolean;// = false
public var explodeSize:Number;// = 85
public var notTargetRotate:Boolean;// = false
public var zoomedFinal:Number;
var points:Object;
public var Velocity:Vector;
public var FlyByPath:Boolean;// = false
public var CurPoint:Point;
public var zoomEffect:Number;// = 0.08
public var VelocitySpd:Number;// = 3
public var hunted:Boolean;// = false
public var MaxPathPoint:Number;// = 0
public var rotateSpeed:Number;// = 10
public var zoomed:Boolean;// = false
public var rot:Number;
public var alphaEffectMaxScale:Number;// = 1
public function dynObject(){
explodeSize = 85;
alphaEffectMaxScale = 1;
VelocitySpd = 3;
zoomed = false;
zoomedIn = false;
notTargetRotate = false;
zoomEffect = 0.08;
rotateSpeed = 10;
hunted = false;
FlyByPath = false;
CurPathPoint = 1;
MaxPathPoint = 0;
super();
Velocity = new Vector();
RotTarget = new Vector();
CurPoint = new Point();
rot = 0;
}
public function setRotTarget(_arg1:Number, _arg2:Number):void{
RotTarget.x = _arg1;
RotTarget.y = _arg2;
}
public function getPointGlobal(_arg1:String):Point{
return (points[_arg1]);
}
public function updateZoom():Boolean{
if (zoomedIn){
scaleX = (scaleX + zoomEffect);
scaleY = (scaleY + zoomEffect);
recalcRadius();
if ((((scaleX >= zoomedFinal)) || ((scaleY >= zoomedFinal)))){
scaleX = zoomedFinal;
scaleY = zoomedFinal;
recalcRadius();
zoomed = false;
return (true);
};
} else {
scaleX = (scaleX - zoomEffect);
scaleY = (scaleY - zoomEffect);
recalcRadius();
if ((((scaleX <= zoomedFinal)) || ((scaleY <= zoomedFinal)))){
scaleX = zoomedFinal;
scaleY = zoomedFinal;
recalcRadius();
zoomed = false;
return (true);
};
};
return (false);
}
override public function toString():String{
return ("dynObject");
}
public function setRotToVelocity():void{
setRotTarget(((Velocity.x * 6) + x), ((Velocity.y * 6) + y));
}
public function behaviorType():String{
return ("none");
}
public function mulVelocity(_arg1:Number){
Velocity.mulScalar(_arg1);
}
public function update():void{
rotate();
move();
}
public function drop(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Number;
x = (_arg1 + ((Math.random() - 0.5) * DROP_RADIUS));
y = (_arg2 + ((Math.random() - 0.5) * DROP_RADIUS));
Velocity.setMembers((_arg3 - x), (_arg4 - y));
_local5 = (MIN_SPEED + ((MAX_SPEED - MIN_SPEED) * Math.random()));
Velocity.mulScalar((_local5 / Velocity.magnitude()));
}
public function startZoom(_arg1:Boolean, _arg2:Number, _arg3:Number){
zoomed = true;
zoomedIn = _arg1;
scaleX = _arg2;
scaleY = _arg2;
zoomedFinal = _arg3;
}
public function rotate():void{
var _local1:Vector;
var _local2:Number;
var _local3:Number;
rotation = (rotation + rot);
if (!notTargetRotate){
_local1 = new Vector((RotTarget.x - x), (RotTarget.y - y));
_local2 = ((_local1.getDirection() - rotation) + 90);
if (_local2 > 180){
_local2 = (_local2 - 360);
} else {
if (_local2 < -180){
_local2 = (_local2 + 360);
};
};
if (Math.abs(_local2) > 0){
_local3 = rotateSpeed;
rotation = (rotation + ((Math.abs(_local2) > _local3)) ? ((_local2 > 0)) ? _local3 : -(_local3) : _local2);
};
};
}
public function setVelocity(_arg1:Number, _arg2:Number, _arg3:Number){
Velocity.setMembers(_arg1, _arg2);
Velocity.mulScalar((_arg3 / Velocity.magnitude()));
}
public function subType():String{
return ("none");
}
public function move():void{
x = (x + Velocity.x);
y = (y + Velocity.y);
}
public function getPoint(_arg1:String):Point{
return (localToGlobal(points[_arg1]));
}
}
}//package main
Section 38
//enemyHunter (main.enemyHunter)
package main {
public dynamic class enemyHunter extends dynObject {
public function enemyHunter(){
hunted = true;
}
override public function toString():String{
return ("enemy");
}
}
}//package main
Section 39
//enemyMiner (main.enemyMiner)
package main {
public dynamic class enemyMiner extends turret {
public function enemyMiner(){
maxShootSeria = 20;
curShootSeria = 0;
timeShoot = 160;
timeReload = 4000;
forceRotToVelocity = true;
alphaEffectMaxScale = 0.5;
}
override public function toString():String{
return ("enemy");
}
override public function behaviorType():String{
return ("enemyMiner");
}
}
}//package main
Section 40
//enemySaw (main.enemySaw)
package main {
import flash.geom.*;
public dynamic class enemySaw extends dynObject {
public function enemySaw(){
var _local1:Number;
var _local2:Boolean;
var _local3:Boolean;
super();
notTargetRotate = true;
rot = 25;
alphaEffectMaxScale = 0.8;
FlyByPath = true;
CurPathPoint = 1;
MaxPathPoint = 30;
points = new Object();
_local1 = 1;
while (_local1 <= MaxPathPoint) {
_local2 = Boolean(Random(0, 1));
_local3 = Boolean(Random(0, 1));
points[("path" + _local1)] = new Point((_local2) ? Random(0, 150) : Random(350, 450), (_local3) ? Random(0, 150) : Random(300, 400));
_local1++;
};
zoomEffect = 0.01;
VelocitySpd = 12;
}
override public function toString():String{
return ("enemy");
}
}
}//package main
Section 41
//enemySwirl (main.enemySwirl)
package main {
import flash.geom.*;
public dynamic class enemySwirl extends turret {
public function enemySwirl(){
addFrameScript(0, frame1);
notTargetRotate = true;
rot = 4;
zoomEffect = 0.01;
VIPNotCollision = true;
points = new Object();
points["part1"] = new Point(-88.8, -16.1);
points["part2"] = new Point(88.8, 16.1);
points["part3"] = new Point(16.1, -87.7);
points["part4"] = new Point(-16.1, 87.7);
points["shoot_pnt1"] = new Point((-88.8 - 20), -16.1);
points["shoot_pnt2"] = new Point((88.8 + 20), 16.1);
points["shoot_pnt3"] = new Point(16.1, (-87.7 - 20));
points["shoot_pnt4"] = new Point(-16.1, (87.7 + 20));
maxShootSeria = 4;
curShootSeria = 0;
timeShoot = 80;
timeReload = 2000;
dontTargeting = true;
alphaEffectMaxScale = 0.5;
LifeBarMax = 4;
LifeBar = 0;
useLifeBar = true;
}
function frame1(){
stop();
}
override public function behaviorType():String{
return ("enemySwirl");
}
}
}//package main
Section 42
//enemySwirlPart (main.enemySwirlPart)
package main {
public dynamic class enemySwirlPart extends proj {
}
}//package main
Section 43
//enemyWeak (main.enemyWeak)
package main {
public dynamic class enemyWeak extends dynObject {
override public function toString():String{
return ("enemy");
}
}
}//package main
Section 44
//enemyWeakGreen (main.enemyWeakGreen)
package main {
public dynamic class enemyWeakGreen extends dynObject {
override public function toString():String{
return ("enemy");
}
override public function subType():String{
return ("enemyWeakGreen");
}
}
}//package main
Section 45
//enemyWeakPink (main.enemyWeakPink)
package main {
public dynamic class enemyWeakPink extends dynObject {
override public function toString():String{
return ("enemy");
}
override public function subType():String{
return ("enemyWeakPink");
}
}
}//package main
Section 46
//explode (main.explode)
package main {
public dynamic class explode extends dynObject {
var chainCount:Number;
var maxSize:Number;
public function explode(){
chainCount = 0;
maxSize = 0;
}
override public function toString():String{
return ("explode");
}
public function updateExp():Boolean{
if (width < maxSize){
scaleX = (scaleX + 0.2);
scaleY = (scaleY + 0.2);
recalcRadius();
return (false);
};
return (true);
}
public function updateExpDecr():Boolean{
if (width > 0){
scaleX = (scaleX - 0.2);
scaleY = (scaleY - 0.2);
recalcRadius();
return (false);
};
return (true);
}
public function blast(_arg1:Number, _arg2:Number){
chainCount = (_arg1 + 1);
maxSize = _arg2;
}
}
}//package main
Section 47
//game (main.game)
package main {
import flash.filters.*;
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
import flash.net.*;
import flash.media.*;
import flash.text.*;
import fl.motion.*;
public class game extends MovieClip {
const SCR_RAD:Number;
const SCR_H:Number = 400;
const SCR_W:Number = 550;
const COUPLE_OFFSET:Number = 18;
public var menuDiff:menuDiff;
public var press_space;// = false
var greenBonusLevel:Number;// = 1
var paramPinkStartRespawnTime:Number;// = 12000
public var press_up;// = false
var paramEnemyStepSpeed:Number;// = 1
var LevelSubStage:Number;// = 0
var timerFreePlay:Timer;
public var menuFreeplay:menuFreePlay;
var inGameHlpLev:Number;// = 0
var paramNoEnemyGreen:Boolean;// = false
var totalBonusCnt:Number;// = 0
var curDeath:Number;// = 0
var isExpSound:Boolean;// = true
public var bg:background;
var timerMiner:Timer;
var SubStageFinalTime:Number;// = 0
var curBossBonus:Number;// = 0
public var playerObj:player;
public var playedAPI:MovieClip;
public var menuScores:menuScores;
public var menuGameOver:menuGameOver;
var curExtraBonus:Number;// = 0
var timerExpSoundDelay:Timer;
public var pauseMenu:pauseMenu;
var curChainBonus:Number;// = 0
var timerSaw:Timer;
public var textLevInfo:TextField;
var SubStageCurTime:Number;// = 0
public var ingame:Boolean;// = false
var maxStageLifeCount:Number;// = 0
public var press_left;// = false
var paramCoupleMinRespawnTime:Number;// = 500
var timerTurret:Timer;
var paramMaxEnemySpeed:Number;// = 7
public var mainMenu:menuiMain;
var SubStageTime:Boolean;// = true
var easyMode:Boolean;// = false
var MIN_DROP:Number;
public var gl:MovieClip;
var paramStartEnemyMinSpeed:Number;// = 2
var MAX_DROP:Number;
public var press_down;// = false
public var press_right;// = false
var timerRestart:Timer;
var timerHunter:Timer;
public var soundChannel:SoundChannel;
var lastScoreAnimStage:Number;// = 0
var timerTurretHeavy:Timer;
var dynObjArray:Array;
var paramCoupleStepRespawnTime:Number;// = 200
var SubStageTimer:Timer;
public var menuHelp:menuHelp;
var paramCoupleStartRespawnTime:Number;// = 2000
public var playerActive:Boolean;// = true
public var gameProgressBar:MovieClip;
var curDirectBonus:Number;// = 0
var SubStageKillVIP:Boolean;// = false
var curLenBonus:Number;// = 0
var timerEnemyPink:Timer;
public var textScore:TextField;
var paramStartEnemyMaxSpeed:Number;// = 5
var totalDeath:Number;// = 0
public var levEndScreen:levcompScreen;
public var lifeIcon:player;
var paramNoEnemyPink:Boolean;// = false
var player_life:Number;
public var game_snd:sounds;
var timerProjSoundDelay:Timer;
var timerCouple:Timer;
public var gamepaused:Boolean;// = false
public var buttPauseMenu:SimpleButton;
var isProjSound:Boolean;// = true
public var longChain:longChain;
var timerHunter2:Timer;
public var menuRestart:menuFader;
public var gameMessage:gameMessage;
var paramEnemyCurMaxSpeed:Number;// = 5
var player_combo_kill:Number;// = 0
var player_score:Number;// = 0
var inGameHlp:Boolean;// = false
public var hlp1:inGameHlp;
public var textLife:TextField;
public var hlp2:inGameHlp;
public var hlp3:inGameHlp;
var timerEndLevel:Timer;
public var playerAura:aura;
var LevelStage:Number;// = 0
var SubStageVIPCount:Number;// = 0
public var game_mus:Object;
public function game(){
var _local1:dynObject;
var _local2:Number;
var _local3:SoundTransform;
var _local4:String;
var _local5:URLRequest;
var _local6:Loader;
SCR_RAD = (Math.floor(((SCR_W + SCR_H) / 4)) * 1.5);
lastScoreAnimStage = 0;
inGameHlp = false;
inGameHlpLev = 0;
easyMode = false;
press_left = false;
press_right = false;
press_up = false;
press_down = false;
press_space = false;
gamepaused = false;
ingame = false;
isExpSound = true;
isProjSound = true;
playerActive = true;
player_score = 0;
player_combo_kill = 0;
curDirectBonus = 0;
curExtraBonus = 0;
curChainBonus = 0;
curBossBonus = 0;
curLenBonus = 0;
curDeath = 0;
totalDeath = 0;
totalBonusCnt = 0;
greenBonusLevel = 1;
paramCoupleStartRespawnTime = 2000;
paramCoupleMinRespawnTime = 500;
paramCoupleStepRespawnTime = 200;
paramPinkStartRespawnTime = 12000;
paramStartEnemyMinSpeed = 2;
paramStartEnemyMaxSpeed = 5;
paramEnemyCurMaxSpeed = 5;
paramEnemyStepSpeed = 1;
paramMaxEnemySpeed = 7;
paramNoEnemyGreen = false;
paramNoEnemyPink = false;
LevelStage = 0;
LevelSubStage = 0;
SubStageTime = true;
SubStageCurTime = 0;
SubStageFinalTime = 0;
SubStageKillVIP = false;
SubStageVIPCount = 0;
maxStageLifeCount = 0;
super();
addFrameScript(0, frame1);
if (mainGlobal.isPlayedonline){
_local4 = "http://www.playedonline.com/playedAPI.swf";
_local5 = new URLRequest(_local4);
_local6 = new Loader();
_local6.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
_local6.load(_local5);
};
dynObjArray = new Array();
game_snd = new sounds();
game_snd.init(SCR_W, SCR_H);
soundChannel = new SoundChannel();
game_mus = new Object();
game_mus["music1"] = new music1();
game_mus["music2"] = new music2();
game_mus["snd_boss_beat1"] = new snd_boss_beat1();
game_mus["snd_boss_beat2"] = new snd_boss_beat2();
game_mus["snd_boss_beat3"] = new snd_boss_beat3();
_local3 = new SoundTransform();
_local3.volume = 1;
soundChannel = game_mus["music1"].play(0, 99999, _local3);
dropPlayer((SCR_W / 2), (SCR_H / 2));
gameMessage.addMessage("");
levEndScreen.visible = false;
pauseMenu.visible = false;
menuScores.visible = false;
menuHelp.visible = false;
menuRestart.visible = false;
menuDiff.visible = false;
menuFreeplay.visible = false;
menuGameOver.visible = false;
longChain.visible = false;
player_score = 0;
player_life = 3;
hlp1.gotoAndStop(1);
hlp2.gotoAndStop(2);
hlp3.gotoAndStop(3);
addEventListener(Event.ENTER_FRAME, Update);
addEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
parent.stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
parent.stage.addEventListener(KeyboardEvent.KEY_UP, key_up);
timerExpSoundDelay = new Timer(50, 1);
timerExpSoundDelay.addEventListener(TimerEvent.TIMER, timerExpSoundDelay_Timer);
timerProjSoundDelay = new Timer(50, 1);
timerProjSoundDelay.addEventListener(TimerEvent.TIMER, timerProjSoundDelay_Timer);
timerEndLevel = new Timer(4000, 1);
timerEndLevel.stop();
timerEndLevel.addEventListener(TimerEvent.TIMER, timerEndLevel_Timer);
timerRestart = new Timer(3000, 1);
timerRestart.stop();
timerRestart.addEventListener(TimerEvent.TIMER, timerRestart_Timer);
timerCouple = new Timer(paramCoupleStartRespawnTime);
timerCouple.start();
timerCouple.addEventListener(TimerEvent.TIMER, timerCouple_Timer);
timerEnemyPink = new Timer(paramPinkStartRespawnTime);
timerEnemyPink.start();
timerEnemyPink.addEventListener(TimerEvent.TIMER, timerEnemyPink_Timer);
SubStageTimer = new Timer(1000);
SubStageTimer.addEventListener(TimerEvent.TIMER, SubStage_Timer);
timerTurret = new Timer(9000);
timerTurret.stop();
timerTurret.addEventListener(TimerEvent.TIMER, timerTurret_Timer);
timerTurretHeavy = new Timer(14000);
timerTurretHeavy.stop();
timerTurretHeavy.addEventListener(TimerEvent.TIMER, timerTurretHeavy_Timer);
timerHunter = new Timer(8000);
timerHunter.stop();
timerHunter.addEventListener(TimerEvent.TIMER, timerHunter_Timer);
timerHunter2 = new Timer(4000);
timerHunter2.stop();
timerHunter2.addEventListener(TimerEvent.TIMER, timerHunter_Timer);
timerMiner = new Timer(9000);
timerMiner.stop();
timerMiner.addEventListener(TimerEvent.TIMER, timerMiner_Timer);
timerSaw = new Timer(11000);
timerSaw.stop();
timerSaw.addEventListener(TimerEvent.TIMER, timerSaw_Timer);
timerFreePlay = new Timer(8000);
timerFreePlay.stop();
timerFreePlay.addEventListener(TimerEvent.TIMER, timerFreePlay_Timer);
}
public function MouseMove(_arg1:MouseEvent):void{
}
public function buttRestartNo_Click(_arg1:MouseEvent):void{
inGameHlp = false;
ingame = false;
menuRestart.startFadeOut();
mainMenu.start();
PlaySnd("snd_Menu2", playerObj);
}
function Distance(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
public function dropBossFighter(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
var _local4:Array;
_local3 = new bossFighter();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 75;
_local3.height = 75;
_local3.recalcRadius();
_local4 = new Array();
_local4.push(new GlowFilter(0xFF00, 1, 15, 15, 1, 2));
_local3.filters = _local4;
_local3.startZoom(true, 0, 1);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function loadComplete(_arg1:Event):void{
var _local2:String;
playedAPI = MovieClip(_arg1.target.content);
_local2 = LoaderInfo(this.root.loaderInfo).parameters.sessionID;
playedAPI.init(597306, _local2, "6c4a613a616d45322039313232597065");
}
public function RemapVal(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
return ((_arg4 + (((_arg5 - _arg4) * (_arg1 - _arg2)) / (_arg3 - _arg2))));
}
public function key_up(_arg1:KeyboardEvent){
if (_arg1.keyCode == 32){
press_space = false;
};
if ((((_arg1.keyCode == 37)) || ((_arg1.keyCode == 65)))){
press_left = false;
};
if ((((_arg1.keyCode == 38)) || ((_arg1.keyCode == 87)))){
press_up = false;
};
if ((((_arg1.keyCode == 39)) || ((_arg1.keyCode == 68)))){
press_right = false;
};
if ((((_arg1.keyCode == 40)) || ((_arg1.keyCode == 83)))){
press_down = false;
};
}
public function buttBack_Click(_arg1:MouseEvent):void{
menuDiff.startFadeOut();
mainMenu.start();
PlaySnd("snd_Menu2", playerObj);
}
public function dropEnemySwirlX2(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
var _local4:Array;
var _local5:ColorMatrix;
_local3 = new enemySwirl();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 75;
_local3.height = 75;
_local3.recalcRadius();
_local4 = new Array();
_local5 = new ColorMatrix();
_local5.adjustHue(180);
_local3.timeReload = 2500;
_local4.push(new ColorMatrixFilter(_local5.matrix));
_local3.filters = _local4;
_local3.startZoom(true, 0, 0.5);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function buttPauseMenu_Click(_arg1:MouseEvent):void{
if (player_life < 0){
return;
};
this.gamepaused = !(this.gamepaused);
PlaySnd("snd_Menu2", playerObj);
if (gamepaused){
pauseMenu.visible = true;
hideGui();
} else {
pauseMenu.visible = false;
showGui();
};
}
public function dropEnemySwirlX1(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
var _local4:Array;
var _local5:ColorMatrix;
_local3 = new enemySwirl();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 75;
_local3.height = 75;
_local3.recalcRadius();
_local4 = new Array();
_local5 = new ColorMatrix();
_local5.adjustHue(180);
_local5.adjustBrightness(-50);
_local4.push(new ColorMatrixFilter(_local5.matrix));
_local3.filters = _local4;
_local3.NoBonus = true;
_local3.timeReload = 2500;
_local3.startZoom(true, 0, 0.5);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function timerFreePlay_Timer(_arg1:TimerEvent):void{
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:dynObject;
var _local7:Boolean;
var _local8:Boolean;
_local2 = Math.round(Random(1, 3));
if (_local2 == 1){
_local3 = Math.round(Random(0, 5));
if (_local3 == 0){
timerTurret_Timer(_arg1);
} else {
if (_local3 == 1){
timerTurretHeavy_Timer(_arg1);
} else {
if (_local3 == 2){
timerSaw_Timer(_arg1);
} else {
if (_local3 == 3){
timerMiner_Timer(_arg1);
} else {
if (_local3 >= 4){
timerHunter_Timer(_arg1);
};
};
};
};
};
timerFreePlay.stop();
timerFreePlay.delay = Math.round(Random(100, 4000));
timerFreePlay.start();
} else {
if (_local2 == 2){
_local3 = Math.round(Random(0, 2));
if (_local3 == 0){
dropEnemySwirl(Random(100, 450), Random(100, 300));
} else {
if (_local3 == 1){
_local4 = Random(100, 450);
_local5 = Random(100, 300);
_local6 = dropEnemySwirlX1(_local4, _local5);
_local6 = dropEnemySwirlX2(_local4, _local5);
_local6.rotation = -45;
_local6.rot = -(_local6.rot);
} else {
if (_local3 >= 2){
_local7 = Boolean(Random(0, 1));
_local8 = Boolean(Random(0, 1));
_local6 = dropBossFighterTurret((_local7) ? Random(-100, 0) : Random(550, 650), (_local8) ? Random(-100, 0) : Random(450, 550));
_local7 = Boolean(Random(0, 1));
_local8 = Boolean(Random(0, 1));
_local6 = dropBossFighterTurret((_local7) ? Random(-100, 0) : Random(550, 650), (_local8) ? Random(-100, 0) : Random(450, 550));
_local7 = Boolean(Random(0, 1));
_local8 = Boolean(Random(0, 1));
_local6 = dropBossFighterTurret((_local7) ? Random(-100, 0) : Random(550, 650), (_local8) ? Random(-100, 0) : Random(450, 550));
};
};
};
timerFreePlay.stop();
timerFreePlay.delay = Math.round(Random(4000, 12000));
timerFreePlay.start();
} else {
if (_local2 >= 3){
_local3 = Math.round(Random(0, 3));
if (_local3 == 0){
dropBossProgressor(Random(100, 450), Random(100, 300));
} else {
if (_local3 == 1){
dropBossSeeder(Random(100, 450), Random(100, 300));
} else {
if (_local3 == 2){
dropBossFighter(Random(100, 450), Random(100, 300));
} else {
if (_local3 >= 3){
dropBossDevastator(Random(100, 450), Random(100, 300));
};
};
};
};
timerFreePlay.stop();
timerFreePlay.delay = Math.round(Random(12000, 18000));
timerFreePlay.start();
};
};
};
}
public function dropBonus(_arg1:Number, _arg2:dynObject):void{
var _local3:dynObject;
var _local4:Array;
if (_arg1 == 1){
_local3 = new bonusGreen();
} else {
if (_arg1 == 2){
_local3 = new bonusPink();
} else {
if (_arg1 == 3){
_local3 = new bonusBrown();
};
};
};
_local3.x = _arg2.x;
_local3.y = _arg2.y;
if (_arg2.Velocity.magnitude() < 0.1){
_local3.Velocity = new Vector(Random(-1, 1), Random(-1, 1));
} else {
_local3.Velocity = _arg2.Velocity;
_local3.Velocity.mulScalar(0.5);
};
_local3.width = 15;
_local3.height = 15;
_local3.recalcRadius();
_local4 = new Array();
if (_arg1 == 2){
_local4.push(new GlowFilter(13382655, 1, 15, 15, 1.7, 1));
} else {
if (_arg1 == 1){
_local4.push(new GlowFilter(0x339900, 1, 15, 15, 1.7, 1));
} else {
if (_arg1 == 3){
_local4.push(new GlowFilter(0xFF6600, 1, 15, 15, 1.7, 1));
};
};
};
_local3.filters = _local4;
gl.addChild(_local3);
dynObjArray.push(_local3);
}
public function hideGui():void{
lifeIcon.visible = false;
textScore.visible = false;
textLife.visible = false;
gameProgressBar.visible = false;
gameMessage.visible = false;
buttPauseMenu.visible = false;
textLevInfo.visible = false;
}
public function restartLevel(_arg1:Number, _arg2:Number=1){
showGui();
playerActive = true;
playerObj.visible = true;
playerAura.visible = true;
startStage(_arg1, _arg2, true);
PlaySnd("snd_drop", playerObj);
removeAllObjs();
ingame = true;
player_score = 0;
curDirectBonus = 0;
curExtraBonus = 0;
curChainBonus = 0;
curBossBonus = 0;
curLenBonus = 0;
curDeath = 0;
totalDeath = 0;
totalBonusCnt = 0;
player_life = (easyMode) ? 5 : 3;
timerFreePlay.stop();
}
public function dropPlayer(_arg1:Number, _arg2:Number):void{
var _local3:Array;
playerAura = new aura();
playerAura.x = 99999;
playerAura.y = 99999;
gl.addChild(playerAura);
playerObj = new player();
playerObj.x = _arg1;
playerObj.y = _arg2;
playerObj.startZoom(false, 5, 1);
_local3 = new Array();
_local3.push(new GlowFilter(0xFF00, 1, 15, 15, 1, 3));
playerObj.filters = _local3;
gl.addChild(playerObj);
}
public function timerEnemyPink_Timer(_arg1:TimerEvent):void{
var _local2:Number;
var _local3:Number;
var _local4:Vector;
var _local5:Vector;
var _local6:Number;
if (gamepaused){
return;
};
if (paramNoEnemyPink){
return;
};
_local4 = new Vector();
_local5 = new Vector();
_local2 = 0;
_local3 = -(SCR_RAD);
_local6 = (((360 * (Math.random() - 0.5)) / 180) * Math.PI);
_local4.x = (_local4.x + ((_local2 * Math.cos(_local6)) - (_local3 * Math.sin(_local6))));
_local4.y = (_local4.y + ((_local2 * Math.sin(_local6)) + (_local3 * Math.cos(_local6))));
_local5.x = (_local5.x + ((_local2 * Math.cos((Math.PI + _local6))) - (_local3 * Math.sin((Math.PI + _local6)))));
_local5.y = (_local5.y + ((_local2 * Math.sin((Math.PI + _local6))) + (_local3 * Math.cos((Math.PI + _local6)))));
dropPink((_local4.x + (SCR_W / 2)), (_local4.y + (SCR_H / 2)), (_local5.x + (SCR_W / 2)), (_local5.y + (SCR_H / 2)), Random(paramStartEnemyMinSpeed, paramStartEnemyMaxSpeed));
}
public function buttContinue_Click(_arg1:MouseEvent):void{
this.gamepaused = false;
pauseMenu.visible = false;
showGui();
PlaySnd("snd_Menu2", playerObj);
}
public function dropTurret(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
_local3 = new turretLite();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 24;
_local3.height = 24;
_local3.recalcRadius();
_local3.startZoom(true, 0, 1);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function sponsorLogoClick_Click(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://playedonline.com?campaign=8bit&utm_campaign=8bit&utm_medium=in_game&utm_source=8bit"), "_blank");
}
public function removeAllObjs():void{
var _local1:dynObject;
var _local2:Boolean;
while (1) {
_local2 = false;
for each (_local1 in dynObjArray) {
removeObject(_local1);
_local2 = true;
};
if (!_local2){
break;
};
};
}
public function MouseDown(_arg1:MouseEvent):void{
menuEvents();
}
public function dropMiner(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{
var _local6:dynObject;
var _local7:Number;
var _local8:Number;
var _local9:Vector;
_local9 = new Vector((_arg3 - _arg1), (_arg4 - _arg2));
_local8 = (_local9.getDirectionRad() + (Math.PI / 2));
if (_local8 > Math.PI){
_local8 = (_local8 - (Math.PI * 2));
} else {
if (_local8 < -(Math.PI)){
_local8 = (_local8 + (Math.PI * 2));
};
};
_local6 = new enemyMiner();
_local6.x = _arg1;
_local6.y = _arg2;
_local6.scaleX = _local6.alphaEffectMaxScale;
_local6.scaleY = _local6.alphaEffectMaxScale;
_local6.recalcRadius();
_local6.recalcRadius();
_local6.setRotTarget(_arg3, _arg4);
_local6.setVelocity(_local9.x, _local9.y, _arg5);
_local6.prepareTimers();
_local6.startZoom(true, 0, _local6.alphaEffectMaxScale);
gl.addChild(_local6);
dynObjArray.push(_local6);
}
public function missPlayer2():void{
timerCouple.delay = paramCoupleStartRespawnTime;
timerEnemyPink.delay = paramPinkStartRespawnTime;
paramEnemyCurMaxSpeed = paramStartEnemyMaxSpeed;
}
public function key_down(_arg1:KeyboardEvent){
if (inGameHlp){
if ((((inGameHlpLev == 1)) && ((((_arg1.keyCode >= 37)) && ((_arg1.keyCode <= 40)))))){
inGameHlpLev++;
hlp2.x = 396;
hlp2.y = 36;
hlp1.startFadeOut();
hlp2.start();
};
} else {
hideHlp();
};
menuEvents();
if (_arg1.keyCode == 32){
if (inGameHlp){
if (inGameHlpLev == 2){
inGameHlpLev++;
hlp3.x = 396;
hlp3.y = 36;
hlp2.startFadeOut();
hlp3.start();
};
} else {
hideHlp();
};
press_space = true;
};
if ((((_arg1.keyCode == 37)) || ((_arg1.keyCode == 65)))){
press_left = true;
};
if ((((_arg1.keyCode == 38)) || ((_arg1.keyCode == 87)))){
press_up = true;
};
if ((((_arg1.keyCode == 39)) || ((_arg1.keyCode == 68)))){
press_right = true;
};
if ((((_arg1.keyCode == 40)) || ((_arg1.keyCode == 83)))){
press_down = true;
};
if ((((_arg1.keyCode == 27)) && ((player_life >= 0)))){
gamepaused = !(gamepaused);
if (gamepaused){
pauseMenu.visible = true;
hideGui();
} else {
pauseMenu.visible = false;
showGui();
};
};
}
public function SubStage_Timer(_arg1:TimerEvent):void{
if (gamepaused){
return;
};
if (playerActive){
SubStageCurTime++;
};
}
public function Update(_arg1:Event):void{
var _local2:dynObject;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Point;
var _local7:Point;
var _local8:Point;
var _local9:Point;
var _local10:Number;
var _local11:Number;
var _local12:dynObject;
var _local13:Array;
var _local14:ColorMatrix;
var _local15:Vector;
var _local16:Point;
var _local17:Point;
var _local18:dynObject;
var _local19:dynObject;
var _local20:Number;
var _local21:Point;
var _local22:dynObject;
var _local23:dynObject;
var _local24:Number;
var _local25:Vector;
if (gamepaused){
return;
};
if (timerFreePlay.running){
textLevInfo.text = (((("Free play" + "\nbonuses: ") + totalBonusCnt) + "\nmax combo: ") + curLenBonus);
} else {
textLevInfo.text = ((((("level: " + LevelStage) + "\nbonuses: ") + totalBonusCnt) + "\nmax combo: ") + curLenBonus);
};
if (player_life > 15){
player_life = 15;
};
textScore.text = ("SCORE: " + player_score);
textLife.text = ("" + player_life);
gameMessage.update();
if (lastScoreAnimStage < levEndScreen.animstage){
if (levEndScreen.animstage < 6){
PlaySnd("snd_score", playerObj);
};
lastScoreAnimStage = levEndScreen.animstage;
};
levEndScreen.update();
if ((((player_life < 0)) && (textLife.visible))){
PlaySnd("snd_gameover", playerObj);
gameMessage.addMessage("GAME OVER!");
inGameHlp = false;
endLevel();
soundChannel.stop();
timerRestart.start();
};
for each (_local2 in dynObjArray) {
if (LevelStage == 1){
paramCoupleMinRespawnTime = 750;
} else {
paramCoupleMinRespawnTime = 500;
};
if (_local2.removed){
if (_local2.readyToRemove){
removeObject(_local2);
} else {
_local2.updateRemoveEffect();
};
if (_local2.toString() == "explode"){
_local2.updateExpDecr();
};
} else {
_local4 = (_local2.x - (SCR_W / 2));
_local5 = (_local2.y - (SCR_H / 2));
if (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))) > (SCR_RAD * 2)){
removeObject(_local2);
continue;
};
};
};
_local3 = 0;
for each (_local2 in dynObjArray) {
if (_local2.VIP){
_local3 = (_local3 + (_local2.LifeBarMax - _local2.LifeBar));
};
};
if (SubStageKillVIP){
if (_local3 == 0){
startStage(LevelStage, LevelSubStage, false);
};
gameProgressBar.gotoAndStop(Math.round(RemapVal(_local3, 0, maxStageLifeCount, 100, 0)));
} else {
if (SubStageTime){
if (SubStageCurTime >= SubStageFinalTime){
startStage(LevelStage, LevelSubStage, false);
};
gameProgressBar.gotoAndStop(Math.round(RemapVal(SubStageCurTime, 0, SubStageFinalTime, 0, 100)));
};
};
for each (_local2 in dynObjArray) {
if (_local2.removed){
} else {
if (_local2.zoomed){
_local2.updateZoom();
};
if (((!((_local2.toString() == "bonus"))) && (((!((_local2.subType() == "turret"))) || (_local2.forceRotToVelocity))))){
_local2.setRotToVelocity();
};
_local2.update();
if ((((_local2.toString() == "enemy")) && ((_local2.subType() == "turret")))){
_local2.updateTurret();
if (((playerActive) && (!(_local2.zoomed)))){
if (!_local2.forceRotToVelocity){
_local2.setRotTarget(playerObj.x, playerObj.y);
};
if (_local2.isReadyToFire()){
if (_local2.behaviorType() == "turretHeavy"){
_local8 = new Point();
_local8 = new Point();
if (_local2.currentFrame == 1){
_local7 = _local2.getPoint("shoot_pnt3");
_local6 = _local2.getPoint("shoot_pnt1");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 4);
_local7 = _local2.getPoint("shoot_pnt3");
_local6 = _local2.getPoint("shoot_pnt2");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 4);
};
if (_local2.currentFrame == 2){
_local7 = _local2.getPoint("shoot_pnt3");
_local6 = _local2.getPoint("shoot_pnt2");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 4);
};
if (_local2.currentFrame == 3){
_local7 = _local2.getPoint("shoot_pnt3");
_local6 = _local2.getPoint("shoot_pnt1");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 4);
};
} else {
if (_local2.behaviorType() == "enemySwirl"){
_local8 = new Point();
if (_local2.currentFrame < 2){
_local6 = _local2.getPoint("shoot_pnt1");
_local8 = new Point((((_local6.x - _local2.x) * 2) + _local6.x), (((_local6.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 3);
};
if (_local2.currentFrame < 3){
_local6 = _local2.getPoint("shoot_pnt2");
_local8 = new Point((((_local6.x - _local2.x) * 2) + _local6.x), (((_local6.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 3);
};
if (_local2.currentFrame < 4){
_local6 = _local2.getPoint("shoot_pnt3");
_local8 = new Point((((_local6.x - _local2.x) * 2) + _local6.x), (((_local6.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 3);
};
if (_local2.currentFrame < 5){
_local6 = _local2.getPoint("shoot_pnt4");
_local8 = new Point((((_local6.x - _local2.x) * 2) + _local6.x), (((_local6.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 3);
};
} else {
if (_local2.behaviorType() == "bossProgressor"){
_local8 = new Point();
if (_local2.currentFrame <= 4){
_local6 = _local2.getPoint("shoot_pnt1");
_local9 = new Point((_local6.x - _local2.x), (_local6.y - _local2.y));
_local10 = ((-45 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local10 = ((-22.5 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local10 = ((0 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local10 = ((22.5 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local10 = ((45 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
} else {
if (_local2.currentFrame == 5){
_local7 = _local2.getPoint("shoot_pnt1");
_local6 = _local2.getPoint("shoot_pnt2");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 8);
_local6 = _local2.getPoint("shoot_pnt3");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 8);
} else {
if (_local2.currentFrame == 6){
_local7 = _local2.getPoint("shoot_pnt1");
_local6 = _local2.getPoint("shoot_pnt3");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 8);
};
};
};
} else {
if (_local2.behaviorType() == "bossSeeder"){
_local8 = new Point();
_local8 = new Point();
_local2.maxShootSeria = (_local2.LifeBar + 5);
_local11 = _local2.currentFrame;
while (_local11 <= _local2.LifeBarMax) {
_local6 = _local2.getPoint(("shoot_pnt" + _local11));
_local8 = new Point((((_local6.x - _local2.x) * 2) + _local6.x), (((_local6.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local11++;
};
} else {
if (_local2.behaviorType() == "enemyMiner"){
_local12 = dropProj(_local2.x, _local2.y, _local2.RotTarget.x, _local2.RotTarget.y, 0);
_local12.timerRemove.start();
_local13 = new Array();
_local14 = new ColorMatrix();
_local14.adjustHue(-30);
_local13.push(new ColorMatrixFilter(_local14.matrix));
_local12.filters = _local13;
} else {
if (_local2.behaviorType() == "bossFighter"){
_local8 = new Point();
if (_local2.currentFrame < 2){
_local6 = _local2.getPoint("shoot_pnt1");
_local8 = new Point((((_local6.x - _local2.x) * 2) + _local6.x), (((_local6.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 3);
};
if (_local2.currentFrame < 3){
_local6 = _local2.getPoint("shoot_pnt2");
_local8 = new Point((((_local6.x - _local2.x) * 2) + _local6.x), (((_local6.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 3);
};
if (_local2.currentFrame < 4){
_local6 = _local2.getPoint("shoot_pnt3");
_local8 = new Point((((_local6.x - _local2.x) * 2) + _local6.x), (((_local6.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 3);
};
if (_local2.currentFrame == 4){
_local6 = _local2.getPoint("shoot_pnt4");
_local8 = new Point((((_local6.x - _local2.x) * 2) + _local6.x), (((_local6.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 3);
};
} else {
if (_local2.behaviorType() == "bossDevastator"){
_local8 = new Point();
if (_local2.currentFrame <= 3){
_local7 = _local2.getPoint("shoot_pnt3");
_local6 = _local2.getPoint("shoot_pnt1");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 10);
_local6 = _local2.getPoint("shoot_pnt2");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 10);
_local6 = _local2.getPoint("shoot_pnt3");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 10);
} else {
if (_local2.currentFrame == 4){
_local7 = _local2.getPoint("shoot_pnt3");
_local6 = _local2.getPoint("shoot_pnt2");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 10);
_local6 = _local2.getPoint("shoot_pnt3");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 10);
} else {
if (_local2.currentFrame >= 5){
_local7 = _local2.getPoint("shoot_pnt3");
_local6 = _local2.getPoint("shoot_pnt3");
_local8 = new Point((((_local7.x - _local2.x) * 2) + _local6.x), (((_local7.y - _local2.y) * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 8);
};
};
};
} else {
if (_local2.behaviorType() == "bossDeath"){
_local8 = new Point();
if (_local2.currentFrame > 7){
_local2.timeReload = 1200;
_local2.maxShootSeria = _local2.currentFrame;
};
if (_local2.currentFrame <= 5){
_local6 = _local2.getPoint("shoot_pnt1");
_local9 = new Point((-(_local6.x) + _local2.x), (-(_local6.y) + _local2.y));
_local10 = ((-45 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local10 = ((-22.5 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local10 = ((0 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local10 = ((22.5 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local10 = ((45 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
} else {
_local11 = 0;
while (_local11 <= 360) {
_local6 = _local2.getPoint("shoot_pnt1");
_local9 = new Point((_local6.x - _local2.x), (_local6.y - _local2.y));
_local10 = ((_local11 * Math.PI) / 180);
_local8.x = ((_local9.x * Math.cos(_local10)) - (_local9.y * Math.sin(_local10)));
_local8.y = ((_local9.x * Math.sin(_local10)) + (_local9.y * Math.cos(_local10)));
_local8 = new Point(((_local8.x * 2) + _local6.x), ((_local8.y * 2) + _local6.y));
dropProj(_local6.x, _local6.y, _local8.x, _local8.y, 5);
_local11 = (_local11 + 22.5);
};
};
} else {
if (_local2.behaviorType() == "bossFighterTurret"){
dropProj(_local2.x, _local2.y, _local2.RotTarget.x, _local2.RotTarget.y, 6);
} else {
dropProj(_local2.x, _local2.y, _local2.RotTarget.x, _local2.RotTarget.y, 3);
};
};
};
};
};
};
};
};
};
};
};
};
if (_local2.hunted){
if (((playerActive) && (!(_local2.zoomed)))){
_local2.setRotTarget(playerObj.x, playerObj.y);
_local15 = new Vector((_local2.RotTarget.x - _local2.x), (_local2.RotTarget.y - _local2.y));
_local2.setVelocity(_local15.x, _local15.y, 4);
};
};
if (_local2.FlyByPath){
if (!_local2.zoomed){
_local16 = _local2.getPointGlobal(("path" + _local2.CurPathPoint));
_local17 = new Point((_local16.x - _local2.x), (_local16.y - _local2.y));
_local2.setVelocity(_local17.x, _local17.y, _local2.VelocitySpd);
if (Distance(_local2.x, _local2.y, _local16.x, _local16.y) <= _local2.radius){
_local2.CurPathPoint++;
if (_local2.CurPathPoint > _local2.MaxPathPoint){
_local2.CurPathPoint = 1;
};
};
};
};
if (_local2.AlwaysOnScreen){
if (_local2.x < 0){
_local2.x = 0;
};
if (_local2.x > SCR_W){
_local2.x = SCR_W;
};
if (_local2.y < 0){
_local2.y = 0;
};
if (_local2.y > SCR_H){
_local2.y = SCR_H;
};
};
if (_local2.toString() == "explode"){
if (_local2.updateExp()){
_local2.startRemove();
continue;
};
for each (_local18 in dynObjArray) {
if (_local18.removed == false){
if ((((((_local18.toString() == "enemy")) && (!(_local18.zoomed)))) && (!(_local18.isImmortal)))){
if (_local2.CheckCollision(_local18)){
if (_local18.behaviorType() == "bossFighterTurret"){
if (_local18.LifeBar < (_local18.LifeBarMax - 1)){
_local18.LifeBar++;
_local18.gotoAndStop((_local18.LifeBar + 1));
_local18.recalcRadius();
_local18.getImmortal();
_local21 = _local18.getPoint(("part" + 1));
_local8 = new Point((((_local21.x - _local18.x) * 2) + _local21.x), (((_local21.y - _local18.y) * 2) + _local21.y));
_local15 = new Vector((_local8.x - _local21.x), (_local8.y - _local21.y));
dropExplode(_local21.x, _local21.y, _local2.chainCount, _local2.explodeSize);
_local19 = new bossFighterTurretPart();
_local19.x = _local21.x;
_local19.y = _local21.y;
_local19.recalcRadius();
_local19.rotation = (_local18.rotation + _local20);
_local19.rot = Random(-4, 4);
_local19.setVelocity(_local15.x, _local15.y, 3);
gl.addChild(_local19);
dynObjArray.push(_local19);
_local21 = _local18.getPoint(("part" + 2));
_local8 = new Point((((_local21.x - _local18.x) * 2) + _local21.x), (((_local21.y - _local18.y) * 2) + _local21.y));
_local15 = new Vector((_local8.x - _local21.x), (_local8.y - _local21.y));
dropExplode(_local21.x, _local21.y, _local2.chainCount, _local2.explodeSize);
_local19 = new bossFighterTurretPart();
_local19.x = _local21.x;
_local19.y = _local21.y;
_local19.recalcRadius();
_local19.rotation = (_local18.rotation + _local20);
_local19.rot = Random(-4, 4);
_local19.setVelocity(_local15.x, _local15.y, 3);
gl.addChild(_local19);
dynObjArray.push(_local19);
continue;
};
} else {
if (_local18.behaviorType() == "turretHeavy"){
if (_local18.LifeBar < (_local18.LifeBarMax - 1)){
_local18.LifeBar++;
_local18.gotoAndStop((_local18.LifeBar + Random(1, 2)));
_local18.recalcRadius();
_local18.getImmortal();
_local21 = _local18.getPoint(("part" + (_local18.currentFrame - 1)));
_local8 = new Point((((_local21.x - _local18.x) * 2) + _local21.x), (((_local21.y - _local18.y) * 2) + _local21.y));
_local15 = new Vector((_local8.x - _local21.x), (_local8.y - _local21.y));
if (_local18.LifeBar == 1){
_local20 = 0;
} else {
if (_local18.LifeBar == 2){
_local20 = 180;
} else {
if (_local18.LifeBar == 3){
_local20 = 90;
};
};
};
dropExplode(_local21.x, _local21.y, _local2.chainCount, _local2.explodeSize);
_local19 = new turretHeavyPart();
_local19.x = _local21.x;
_local19.y = _local21.y;
_local19.recalcRadius();
_local19.rotation = (_local18.rotation + _local20);
_local19.rot = Random(-4, 4);
_local19.setVelocity(_local15.x, _local15.y, 3);
gl.addChild(_local19);
dynObjArray.push(_local19);
continue;
};
} else {
if (_local18.behaviorType() == "enemySwirl"){
if (_local18.LifeBar < (_local18.LifeBarMax - 1)){
_local18.LifeBar++;
_local18.gotoAndStop((_local18.LifeBar + 1));
_local18.recalcRadius();
_local18.getImmortal();
_local21 = _local18.getPoint(("part" + _local18.LifeBar));
_local8 = new Point((((_local21.x - _local18.x) * 2) + _local21.x), (((_local21.y - _local18.y) * 2) + _local21.y));
_local15 = new Vector((_local8.x - _local21.x), (_local8.y - _local21.y));
if (_local18.LifeBar == 1){
_local20 = 0;
} else {
if (_local18.LifeBar == 2){
_local20 = 180;
} else {
if (_local18.LifeBar == 3){
_local20 = 90;
};
};
};
dropExplode(_local21.x, _local21.y, _local2.chainCount, _local2.explodeSize);
_local19 = new enemySwirlPart();
_local19.x = _local21.x;
_local19.y = _local21.y;
_local19.scaleX = 0.5;
_local19.scaleY = 0.5;
_local19.recalcRadius();
_local19.rotation = (_local18.rotation + _local20);
_local19.rot = Random(-4, 4);
_local19.setVelocity(_local15.x, _local15.y, 3);
_local19.filters = _local18.filters;
gl.addChild(_local19);
dynObjArray.push(_local19);
continue;
};
} else {
if (_local18.behaviorType() == "bossProgressor"){
if (_local18.LifeBar < (_local18.LifeBarMax - 1)){
_local18.LifeBar++;
_local18.gotoAndStop((_local18.LifeBar + 1));
_local18.recalcRadius();
_local18.getImmortal();
_local21 = _local18.getPoint(("part" + _local18.LifeBar));
_local8 = new Point((((_local21.x - _local18.x) * 2) + _local21.x), (((_local21.y - _local18.y) * 2) + _local21.y));
_local15 = new Vector((_local8.x - _local21.x), (_local8.y - _local21.y));
_local20 = 0;
dropExplode(_local21.x, _local21.y, _local2.chainCount, _local2.explodeSize);
if (_local18.LifeBar == 1){
_local19 = new bossProgressorPart1();
} else {
if (_local18.LifeBar == 2){
_local19 = new bossProgressorPart2();
} else {
if (_local18.LifeBar == 3){
_local19 = new bossProgressorPart3();
} else {
if (_local18.LifeBar == 4){
_local19 = new bossProgressorPart4();
} else {
if (_local18.LifeBar == 5){
_local19 = new bossProgressorPart5();
};
};
};
};
};
_local19.x = _local21.x;
_local19.y = _local21.y;
_local19.recalcRadius();
_local19.rotation = (_local18.rotation + _local20);
_local19.rot = Random(-4, 4);
_local19.setVelocity(_local15.x, _local15.y, 3);
gl.addChild(_local19);
dynObjArray.push(_local19);
continue;
};
} else {
if (_local18.behaviorType() == "bossSeeder"){
if (_local18.LifeBar < (_local18.LifeBarMax - 1)){
_local18.LifeBar++;
_local18.gotoAndStop((_local18.LifeBar + 1));
_local18.recalcRadius();
_local18.getImmortal();
_local21 = _local18.getPoint(("part" + _local18.LifeBar));
_local8 = new Point((((_local21.x - _local18.x) * 2) + _local21.x), (((_local21.y - _local18.y) * 2) + _local21.y));
_local15 = new Vector((_local8.x - _local21.x), (_local8.y - _local21.y));
_local20 = 0;
dropExplode(_local21.x, _local21.y, _local2.chainCount, _local2.explodeSize);
_local19 = new bossSeederPart();
_local19.x = _local21.x;
_local19.y = _local21.y;
_local19.recalcRadius();
_local19.rotation = (_local18.rotation + _local20);
_local19.rot = Random(-4, 4);
_local19.setVelocity(_local15.x, _local15.y, 3);
gl.addChild(_local19);
dynObjArray.push(_local19);
continue;
};
} else {
if (_local18.behaviorType() == "bossFighter"){
if (_local18.LifeBar < (_local18.LifeBarMax - 1)){
_local18.LifeBar++;
_local18.gotoAndStop((_local18.LifeBar + 1));
_local18.recalcRadius();
_local18.getImmortal();
_local21 = _local18.getPoint(("part" + _local18.LifeBar));
_local8 = new Point((((_local21.x - _local18.x) * 2) + _local21.x), (((_local21.y - _local18.y) * 2) + _local21.y));
_local15 = new Vector((_local8.x - _local21.x), (_local8.y - _local21.y));
if (_local18.LifeBar == 1){
_local20 = 0;
} else {
if (_local18.LifeBar == 2){
_local20 = -45;
} else {
if (_local18.LifeBar == 3){
_local20 = 45;
};
};
};
_local22 = dropBossFighterTurret(_local21.x, _local21.y);
_local22.rotation = _local20;
_local22.getImmortal();
_local22.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local22.LifeBarMax);
dropExplode(_local21.x, _local21.y, _local2.chainCount, _local2.explodeSize);
continue;
};
} else {
if (_local18.behaviorType() == "bossDevastator"){
if (_local18.LifeBar < (_local18.LifeBarMax - 1)){
_local18.LifeBar++;
_local18.gotoAndStop((_local18.LifeBar + 1));
_local18.recalcRadius();
_local18.getImmortal();
_local21 = _local18.getPoint(("part" + _local18.LifeBar));
_local8 = new Point((((_local21.x - _local18.x) * 2) + _local21.x), (((_local21.y - _local18.y) * 2) + _local21.y));
_local15 = new Vector((_local8.x - _local21.x), (_local8.y - _local21.y));
_local20 = 0;
dropExplode(_local21.x, _local21.y, _local2.chainCount, _local2.explodeSize);
if (_local18.LifeBar == 1){
_local19 = new bossDevastatorPart1();
} else {
if (_local18.LifeBar == 2){
_local19 = new bossDevastatorPart1();
} else {
if (_local18.LifeBar == 3){
_local19 = new bossDevastatorPart2();
} else {
if (_local18.LifeBar == 4){
_local19 = new bossDevastatorPart3();
} else {
if (_local18.LifeBar == 5){
_local19 = new bossDevastatorPart4();
};
};
};
};
};
_local19.x = _local21.x;
_local19.y = _local21.y;
_local19.recalcRadius();
_local19.rotation = (_local18.rotation + _local20);
_local19.rot = Random(-4, 4);
_local19.setVelocity(_local15.x, _local15.y, 3);
gl.addChild(_local19);
dynObjArray.push(_local19);
continue;
};
} else {
if (_local18.behaviorType() == "bossDeath"){
if (_local18.LifeBar < (_local18.LifeBarMax - 1)){
_local18.LifeBar++;
_local18.gotoAndStop((_local18.LifeBar + 1));
_local18.recalcRadius();
_local18.getImmortal();
_local21 = _local18.getPoint(("part" + _local18.LifeBar));
_local8 = new Point((((_local21.x - _local18.x) * 2) + _local21.x), (((_local21.y - _local18.y) * 2) + _local21.y));
_local15 = new Vector((_local8.x - _local21.x), (_local8.y - _local21.y));
_local20 = 0;
dropExplode(_local21.x, _local21.y, _local2.chainCount, _local2.explodeSize);
_local19 = new bossDeathPart();
_local19.x = _local21.x;
_local19.y = _local21.y;
_local19.recalcRadius();
_local19.rotation = (_local18.rotation + _local20);
_local19.rot = Random(-4, 4);
_local19.setVelocity(_local15.x, _local15.y, 3);
gl.addChild(_local19);
dynObjArray.push(_local19);
continue;
};
};
};
};
};
};
};
};
};
dropExplode(_local18.x, _local18.y, _local2.chainCount, _local2.explodeSize);
_local18.startRemove();
if (_local18.subType() == "enemyWeakGreen"){
dropBonus(1, _local18);
player_score = (player_score + 2);
curDirectBonus = (curDirectBonus + 2);
} else {
if (_local18.subType() == "enemyWeakPink"){
dropBonus(2, _local18);
player_score = (player_score + 5);
curDirectBonus = (curDirectBonus + 5);
} else {
if ((((_local18.behaviorType() == "turretLite")) || ((_local18.behaviorType() == "turretHeavy")))){
player_score = (player_score + 500);
curDirectBonus = (curDirectBonus + 500);
} else {
if (_local18.behaviorType() == "bossProgressor"){
dropBonus(3, _local18);
player_score = (player_score + 10000);
curBossBonus = (curBossBonus + 10000);
} else {
if (_local18.behaviorType() == "bossSeeder"){
dropBonus(3, _local18);
player_score = (player_score + 15000);
curBossBonus = (curBossBonus + 15000);
} else {
if (_local18.behaviorType() == "bossFighter"){
dropBonus(3, _local18);
player_score = (player_score + 25000);
curBossBonus = (curBossBonus + 25000);
} else {
if (_local18.behaviorType() == "bossDevastator"){
dropBonus(3, _local18);
player_score = (player_score + 15000);
curBossBonus = (curBossBonus + 15000);
} else {
if (_local18.behaviorType() == "bossDeath"){
dropBonus(3, _local18);
player_score = (player_score + 35000);
curBossBonus = (curBossBonus + 35000);
} else {
if (_local18.behaviorType() == "enemySwirl"){
if (!_local18.NoBonus){
dropBonus(3, _local18);
};
player_score = (player_score + 1000);
curDirectBonus = (curDirectBonus + 1000);
} else {
player_score = (player_score + 1);
curDirectBonus = (curDirectBonus + 1);
};
};
};
};
};
};
};
};
};
if (player_combo_kill > 0){
if ((player_combo_kill % 5) == 0){
_local23 = new gameText();
_local23.x = _local18.x;
_local23.y = _local18.y;
_local23.setToChainBonus((player_combo_kill * 50));
player_score = (player_score + (player_combo_kill * 50));
curChainBonus = (curChainBonus + (player_combo_kill * 50));
_local23.startRemove();
gl.addChild(_local23);
dynObjArray.push(_local23);
PlaySnd("snd_chain", playerObj);
};
};
};
};
};
};
};
if (playerActive){
if (((!(playerObj.zoomed)) || ((_local2.toString() == "bonus")))){
if (!playerObj.zoomed){
if ((((((_local2.toString() == "enemy")) || ((_local2.toString() == "proj")))) && (!(_local2.zoomed)))){
if (_local2.CheckCollision(playerObj)){
_local23 = new gameText();
_local23.x = playerObj.x;
_local23.y = playerObj.y;
_local23.setToMiss();
_local23.startRemove();
gl.addChild(_local23);
dynObjArray.push(_local23);
playerObj.startZoom(false, 5, 1);
playerObj.x = (SCR_W / 2);
playerObj.y = ((3 * SCR_H) / 5);
PlaySnd("snd_death", playerObj);
player_life--;
curDeath++;
totalDeath++;
missPlayer();
};
};
};
playerObj.recalcRadius();
if (_local2.toString() == "bonus"){
if (_local2.CheckCollision(playerObj)){
_local2.startRemove();
totalBonusCnt++;
if ((totalBonusCnt % 100) == 0){
if (mainGlobal.isPlayedonline){
_local24 = ((((curDirectBonus + curExtraBonus) + curChainBonus) + (curLenBonus * 1000)) + curBossBonus);
if (easyMode){
playedAPI.submit_stat(("easy_score_level" + LevelStage), _local24, "max");
} else {
playedAPI.submit_stat(("norm_score_level" + LevelStage), _local24, "max");
};
};
};
if (inGameHlp){
if (inGameHlpLev == 3){
hlp1.y = -999999;
hlp2.y = -999999;
inGameHlpLev++;
hlp3.startFadeOut();
};
} else {
hideHlp();
};
if (_local2.subType() == "bonusPink"){
Quiken();
PlaySnd("snd_bonus1", playerObj);
};
if (_local2.subType() == "bonusGreen"){
greenBonusLevel = (greenBonusLevel + 1);
player_score = (player_score + (greenBonusLevel * 20));
curExtraBonus = (curExtraBonus + (greenBonusLevel * 20));
_local23 = new gameText();
_local23.x = _local2.x;
_local23.y = _local2.y;
_local23.setToGreenBonus((greenBonusLevel * 20));
_local23.startRemove();
gl.addChild(_local23);
dynObjArray.push(_local23);
if ((greenBonusLevel % (easyMode) ? 15 : 25) == 0){
_local23 = new gameText();
_local23.x = _local2.x;
_local23.y = (_local2.y - 25);
_local23.setToExtraLife();
_local23.startRemove();
gl.addChild(_local23);
dynObjArray.push(_local23);
PlaySnd("snd_bonus3", playerObj);
player_life++;
} else {
PlaySnd("snd_bonus2", playerObj);
};
};
if (_local2.subType() == "bonusBrown"){
_local23 = new gameText();
_local23.x = _local2.x;
_local23.y = _local2.y;
_local23.setToExtraLife();
_local23.startRemove();
gl.addChild(_local23);
dynObjArray.push(_local23);
PlaySnd("snd_bonus3", playerObj);
player_life++;
};
};
};
playerObj.radius = 5;
};
};
};
};
if (playerActive){
_local25 = new Vector(0, 0);
if (press_left){
_local25.x = (_local25.x - 1);
};
if (press_right){
_local25.x = (_local25.x + 1);
};
if (press_up){
_local25.y = (_local25.y - 1);
};
if (press_down){
_local25.y = (_local25.y + 1);
};
_local25 = _local25.getUnitVector();
_local25.mulScalar(6.5);
playerObj.Velocity.addVector(_local25);
if (((press_space) && (!(playerObj.zoomed)))){
press_space = false;
dropExplode(playerObj.x, playerObj.y, 0, (easyMode) ? 130 : 100);
playerObj.startZoom(false, 5, 1);
playerObj.x = (SCR_W / 2);
playerObj.y = ((3 * SCR_H) / 5);
PlaySnd("snd_drop", playerObj);
player_combo_kill = 0;
};
playerObj.mulVelocity(0.6);
playerObj.update();
playerObj.radius = 5;
if (playerObj.zoomed){
playerObj.alpha = RemapVal(playerObj.scaleX, 5, 3, 0, 1);
playerAura.x = playerObj.x;
playerAura.y = playerObj.y;
playerAura.scaleX = playerObj.scaleX;
playerAura.scaleY = playerObj.scaleY;
playerAura.alpha = playerObj.alpha;
if (playerObj.updateZoom()){
playerAura.x = 9999;
playerAura.y = 9999;
};
};
if (playerObj.x < 0){
playerObj.x = 0;
};
if (playerObj.x > SCR_W){
playerObj.x = SCR_W;
};
if (playerObj.y < 0){
playerObj.y = 0;
};
if (playerObj.y > SCR_H){
playerObj.y = SCR_H;
};
};
}
public function stopAllTimers(){
timerTurret.stop();
timerTurretHeavy.stop();
timerHunter.stop();
timerHunter2.stop();
timerMiner.stop();
timerSaw.stop();
timerFreePlay.stop();
}
public function timerMiner_Timer(_arg1:TimerEvent):void{
var _local2:Number;
var _local3:Number;
var _local4:Vector;
var _local5:Vector;
var _local6:Number;
if (gamepaused){
return;
};
_local4 = new Vector();
_local5 = new Vector();
_local2 = 0;
_local3 = -(SCR_RAD);
_local6 = (((360 * (Math.random() - 0.5)) / 180) * Math.PI);
_local4.x = (_local4.x + ((_local2 * Math.cos(_local6)) - (_local3 * Math.sin(_local6))));
_local4.y = (_local4.y + ((_local2 * Math.sin(_local6)) + (_local3 * Math.cos(_local6))));
_local5.x = (_local5.x + ((_local2 * Math.cos((Math.PI + _local6))) - (_local3 * Math.sin((Math.PI + _local6)))));
_local5.y = (_local5.y + ((_local2 * Math.sin((Math.PI + _local6))) + (_local3 * Math.cos((Math.PI + _local6)))));
dropMiner((_local4.x + (SCR_W / 2)), (_local4.y + (SCR_H / 2)), (_local5.x + (SCR_W / 2)), (_local5.y + (SCR_H / 2)), 5);
}
public function dropBossProgressor(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
var _local4:Array;
_local3 = new bossProgressor();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 75;
_local3.height = 75;
_local3.recalcRadius();
_local4 = new Array();
_local4.push(new GlowFilter(0xFF0000, 1, 15, 15, 1, 2));
_local3.filters = _local4;
_local3.startZoom(true, 0, 1);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function dropBossFighterTurret(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
_local3 = new bossFighterTurret();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 24;
_local3.height = 24;
_local3.recalcRadius();
_local3.startZoom(true, 1, 1);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function dropExplode(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:dynObject;
_local5 = new explode();
_local5.x = _arg1;
_local5.y = _arg2;
_local5.width = 15;
_local5.height = 15;
_local5.recalcRadius();
_local5.blast(_arg3, _arg4);
player_combo_kill++;
if (player_combo_kill > 1){
if (player_combo_kill > curLenBonus){
extendLongestChain(player_combo_kill);
};
};
if (isExpSound){
PlaySnd(("snd_exp" + Random(1, 3)), _local5);
isExpSound = false;
timerExpSoundDelay.delay = 50;
timerExpSoundDelay.start();
};
gl.addChild(_local5);
dynObjArray.push(_local5);
}
public function buttRestartYes_Click(_arg1:MouseEvent):void{
inGameHlp = false;
menuRestart.startFadeOut();
restartLevel(LevelStage);
PlaySnd("snd_Menu2", playerObj);
}
public function missPlayer():void{
greenBonusLevel = 1;
timerCouple.delay = paramCoupleStartRespawnTime;
timerEnemyPink.delay = paramPinkStartRespawnTime;
paramEnemyCurMaxSpeed = paramStartEnemyMaxSpeed;
}
public function dropBossSeeder(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
var _local4:Array;
_local3 = new bossSeeder();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 75;
_local3.height = 75;
_local3.recalcRadius();
_local4 = new Array();
_local4.push(new GlowFilter(0xFF, 1, 15, 15, 1, 2));
_local3.filters = _local4;
_local3.startZoom(true, 0, 1);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function dropProj(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):dynObject{
var _local6:dynObject;
var _local7:Number;
var _local8:Number;
var _local9:Vector;
_local9 = new Vector((_arg3 - _arg1), (_arg4 - _arg2));
_local8 = (_local9.getDirectionRad() + (Math.PI / 2));
if (_local8 > Math.PI){
_local8 = (_local8 - (Math.PI * 2));
} else {
if (_local8 < -(Math.PI)){
_local8 = (_local8 + (Math.PI * 2));
};
};
_local6 = new projLite();
_local6.x = _arg1;
_local6.y = _arg2;
_local6.width = 18;
_local6.height = 18;
_local6.recalcRadius();
_local6.setVelocity(_local9.x, _local9.y, _arg5);
gl.addChild(_local6);
dynObjArray.push(_local6);
if (isProjSound){
PlaySnd("snd_proj1", playerObj);
isProjSound = false;
timerProjSoundDelay.start();
};
return (_local6);
}
public function showGui():void{
lifeIcon.visible = true;
textScore.visible = true;
textLife.visible = true;
gameProgressBar.visible = true;
gameMessage.visible = true;
buttPauseMenu.visible = true;
textLevInfo.visible = true;
}
function frame1(){
menuDiff.buttBack.addEventListener(MouseEvent.CLICK, buttBack_Click);
menuDiff.buttEasy.addEventListener(MouseEvent.CLICK, buttEasy_Click);
menuDiff.buttNorm.addEventListener(MouseEvent.CLICK, buttNorm_Click);
menuRestart.buttYes.addEventListener(MouseEvent.CLICK, buttRestartYes_Click);
menuRestart.buttNo.addEventListener(MouseEvent.CLICK, buttRestartNo_Click);
stop();
hideGui();
playerActive = false;
playerObj.visible = false;
startStage(0, 0, true);
mainMenu.buttNewGame.addEventListener(MouseEvent.CLICK, buttNewGame_Click);
mainMenu.buttScores.addEventListener(MouseEvent.CLICK, buttScores_Click);
mainMenu.buttHelp.addEventListener(MouseEvent.CLICK, buttHelp_Click);
mainMenu.buttMoreGames.addEventListener(MouseEvent.CLICK, buttMoreGames_Click);
mainMenu.sponsorLogo.buttonMode = true;
mainMenu.sponsorLogo.addEventListener(MouseEvent.CLICK, sponsorLogoClick_Click);
mainMenu.myLnk.buttonMode = true;
mainMenu.myLnk.useHandCursor = true;
mainMenu.myLnk.mouseChildren = false;
mainMenu.myLnk.addEventListener(MouseEvent.CLICK, myLink_Click);
pauseMenu.buttContinue.addEventListener(MouseEvent.CLICK, buttContinue_Click);
pauseMenu.buttExit.addEventListener(MouseEvent.CLICK, buttExit_Click);
buttPauseMenu.addEventListener(MouseEvent.CLICK, buttPauseMenu_Click);
}
function Random(_arg1:Number=NaN, _arg2:Number=NaN):Number{
if (isNaN(_arg1)){
throw (new Error("low must be defined"));
};
if (isNaN(_arg2)){
throw (new Error("high must be defined"));
};
return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1));
}
public function removeObject(_arg1:dynObject):void{
var _local2:Number;
_local2 = 0;
while (_local2 < dynObjArray.length) {
if (dynObjArray[_local2] == _arg1){
dynObjArray.splice(_local2, 1);
break;
};
_local2++;
};
gl.removeChild(_arg1);
}
public function dropEnemySwirl(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
_local3 = new enemySwirl();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 75;
_local3.height = 75;
_local3.recalcRadius();
_local3.startZoom(true, 0, 0.5);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function dropPink(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{
var _local6:dynObject;
var _local7:Number;
var _local8:Number;
var _local9:Vector;
_local9 = new Vector((_arg3 - _arg1), (_arg4 - _arg2));
_local8 = (_local9.getDirectionRad() + (Math.PI / 2));
if (_local8 > Math.PI){
_local8 = (_local8 - (Math.PI * 2));
} else {
if (_local8 < -(Math.PI)){
_local8 = (_local8 + (Math.PI * 2));
};
};
_local6 = new enemyWeakPink();
_local6.x = _arg1;
_local6.y = _arg2;
_local6.width = 24;
_local6.height = 24;
_local6.recalcRadius();
_local6.setRotTarget(_arg3, _arg4);
_local6.setVelocity(_local9.x, _local9.y, _arg5);
gl.addChild(_local6);
dynObjArray.push(_local6);
}
public function buttMoreGames_Click(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://playedonline.com?campaign=8bit&utm_campaign=8bit&utm_medium=in_game&utm_source=8bit"), "_blank");
PlaySnd("snd_Menu2", playerObj);
}
public function buttNewGame_Click(_arg1:MouseEvent):void{
mainMenu.startFadeOut();
menuDiff.start();
PlaySnd("snd_Menu2", playerObj);
}
public function menuEvents():void{
var _local1:SoundTransform;
if (levEndScreen.visible){
if (levEndScreen.animstage >= 6){
if (LevelStage == 5){
menuFreeplay.start();
levEndScreen.visible = false;
} else {
showGui();
playerActive = true;
playerObj.visible = true;
playerAura.visible = true;
startStage((LevelStage + 1), 1, true);
PlaySnd("snd_drop", playerObj);
removeAllObjs();
levEndScreen.visible = false;
};
};
} else {
if (pauseMenu.visible){
} else {
if (menuFreeplay.visible){
menuFreeplay.startFadeOut();
soundChannel.stop();
_local1 = new SoundTransform();
_local1.volume = 1;
soundChannel = game_mus["music2"].play(0, 99999, _local1);
timerFreePlay.start();
showGui();
playerActive = true;
playerObj.visible = true;
playerAura.visible = true;
startStage((LevelStage + 1), 1, true);
PlaySnd("snd_drop", playerObj);
removeAllObjs();
} else {
if (((menuGameOver.visible) && ((menuGameOver.alpha > 0.9)))){
if ((((LevelStage == 5)) && ((LevelSubStage == 9)))){
mainMenu.start();
menuGameOver.startFadeOut();
soundChannel.stop();
_local1 = new SoundTransform();
_local1.volume = 1;
soundChannel = game_mus["music1"].play(0, 99999, _local1);
} else {
menuRestart.start();
menuGameOver.startFadeOut();
};
} else {
if (((menuScores.visible) && (!(menuScores.loading)))){
if (ingame){
if (!menuScores.isGetHiScore){
if (menuScores.closedInGame){
if ((((LevelStage == 5)) && ((LevelSubStage == 9)))){
mainMenu.start();
menuScores.startFadeOut();
soundChannel.stop();
_local1 = new SoundTransform();
_local1.volume = 1;
soundChannel = game_mus["music1"].play(0, 99999, _local1);
} else {
menuRestart.start();
menuScores.startFadeOut();
};
} else {
menuScores.closedInGame = true;
};
};
} else {
if (menuScores.easyScore){
menuScores.easyScore = false;
menuScores.loadScores(menuScores.easyScore);
menuScores.refreshList();
menuScores.setTitle();
} else {
mainMenu.start();
menuScores.startFadeOut();
};
};
} else {
if (menuHelp.visible){
if (ingame){
} else {
menuHelp.startFadeOut();
mainMenu.start();
};
};
};
};
};
};
};
}
public function buttHelp_Click(_arg1:MouseEvent):void{
menuHelp.start();
mainMenu.startFadeOut();
PlaySnd("snd_Menu2", playerObj);
}
public function buttEasy_Click(_arg1:MouseEvent):void{
inGameHlp = true;
inGameHlpLev = 0;
menuDiff.startFadeOut();
easyMode = true;
restartLevel(1);
PlaySnd("snd_Menu2", playerObj);
}
public function MouseLeave(_arg1:FocusEvent){
press_space = false;
press_left = false;
press_up = false;
press_right = false;
press_down = false;
}
public function dropEnemySaw(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
_local3 = new enemySaw();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.recalcRadius();
_local3.startZoom(true, 0, _local3.alphaEffectMaxScale);
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function PlaySnd(_arg1:String, _arg2:Sprite):void{
var _local3:Point;
_local3 = _arg2.localToGlobal(new Point(0, 0));
game_snd.Play2DSnd(_arg1, (_local3.x - playerObj.x), (_local3.y - playerObj.y));
}
public function endLevel(){
timerEndLevel.stop();
textLife.visible = false;
stopAllTimers();
playerActive = false;
playerObj.visible = false;
playerAura.visible = false;
playerObj.startZoom(false, 5, 1);
playerObj.x = (SCR_W / 2);
playerObj.y = ((3 * SCR_H) / 5);
missPlayer();
timerFreePlay.stop();
}
public function buttExit_Click(_arg1:MouseEvent):void{
inGameHlp = false;
hideHlp();
pauseMenu.startFadeOut();
mainMenu.start();
ingame = false;
gamepaused = false;
endLevel();
PlaySnd("snd_Menu2", playerObj);
}
public function dropHunter(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{
var _local6:dynObject;
var _local7:Number;
var _local8:Number;
var _local9:Vector;
_local9 = new Vector((_arg3 - _arg1), (_arg4 - _arg2));
_local8 = (_local9.getDirectionRad() + (Math.PI / 2));
if (_local8 > Math.PI){
_local8 = (_local8 - (Math.PI * 2));
} else {
if (_local8 < -(Math.PI)){
_local8 = (_local8 + (Math.PI * 2));
};
};
_local6 = new enemyHunter();
_local6.x = _arg1;
_local6.y = _arg2;
_local6.width = 28;
_local6.height = 28;
_local6.recalcRadius();
_local6.setRotTarget(_arg3, _arg4);
_local6.setVelocity(_local9.x, _local9.y, _arg5);
gl.addChild(_local6);
dynObjArray.push(_local6);
}
public function buttScores_Click(_arg1:MouseEvent):void{
menuScores.start();
mainMenu.startFadeOut();
menuScores.initShowOnly();
PlaySnd("snd_Menu2", playerObj);
}
public function timerTurret_Timer(_arg1:TimerEvent):void{
var _local2:dynObject;
if (gamepaused){
return;
};
_local2 = dropTurret(Random(0, 550), Random(0, 400));
while (isCollideVIP(_local2)) {
_local2.x = Random(_local2.radius, (550 - _local2.radius));
_local2.y = Random(_local2.radius, (400 - _local2.radius));
};
}
public function dropTurretHeavy(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
_local3 = new turretHeavy();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 24;
_local3.height = 24;
_local3.recalcRadius();
_local3.startZoom(true, 0, 1);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function timerProjSoundDelay_Timer(_arg1:TimerEvent):void{
isProjSound = true;
}
public function hideHlp():void{
hlp1.y = -999999;
hlp2.y = -999999;
hlp3.y = -999999;
}
public function dropBossDevastator(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
var _local4:Array;
_local3 = new bossDevastator();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 75;
_local3.height = 75;
_local3.recalcRadius();
_local4 = new Array();
_local4.push(new GlowFilter(0xFFFF00, 1, 15, 15, 1, 2));
_local3.filters = _local4;
_local3.startZoom(true, 0, 1);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function timerHunter_Timer(_arg1:TimerEvent):void{
var _local2:Boolean;
var _local3:Boolean;
if (gamepaused){
return;
};
_local2 = Boolean(Random(0, 1));
_local3 = Boolean(Random(0, 1));
dropHunter((_local2) ? Random(-100, 0) : Random(550, 650), (_local3) ? Random(-100, 0) : Random(450, 550), Random(0, 550), Random(0, 400), 4);
}
public function Quiken():void{
if (timerCouple.delay >= paramCoupleMinRespawnTime){
if ((timerCouple.delay - paramCoupleStepRespawnTime) < paramCoupleMinRespawnTime){
timerCouple.delay = paramCoupleMinRespawnTime;
} else {
timerCouple.delay = (timerCouple.delay - paramCoupleStepRespawnTime);
};
};
if (paramEnemyCurMaxSpeed < paramMaxEnemySpeed){
paramEnemyCurMaxSpeed = (paramEnemyCurMaxSpeed + paramEnemyStepSpeed);
if (paramEnemyCurMaxSpeed > paramMaxEnemySpeed){
paramEnemyCurMaxSpeed = paramMaxEnemySpeed;
};
};
}
public function buttNorm_Click(_arg1:MouseEvent):void{
inGameHlp = true;
inGameHlpLev = 0;
menuDiff.startFadeOut();
easyMode = false;
restartLevel(1);
PlaySnd("snd_Menu2", playerObj);
}
public function timerEndLevel_Timer(_arg1:TimerEvent):void{
var _local2:Number;
hideGui();
player_score = (player_score + (curLenBonus * 1000));
_local2 = ((((curDirectBonus + curExtraBonus) + curChainBonus) + (curLenBonus * 1000)) + curBossBonus);
if (mainGlobal.isPlayedonline){
if (easyMode){
playedAPI.submit_stat(("easy_score_level" + LevelStage), _local2, "max");
playedAPI.submit_stat(("easy_spawns_count_level" + LevelStage), curDeath, "min");
} else {
playedAPI.submit_stat(("norm_score_level" + LevelStage), _local2, "max");
playedAPI.submit_stat(("norm_spawns_count_level" + LevelStage), curDeath, "min");
};
};
levEndScreen.start(curDirectBonus, curExtraBonus, curChainBonus, (curLenBonus * 1000), curBossBonus, _local2);
playerActive = false;
playerObj.visible = false;
playerAura.visible = false;
}
public function extendLongestChain(_arg1:int){
curLenBonus = _arg1;
if (mainGlobal.isPlayedonline){
if (easyMode){
playedAPI.submit_stat("easy_longest_combo", curLenBonus, "max");
} else {
playedAPI.submit_stat("norm_longest_combo", curLenBonus, "max");
};
};
longChain.txt.text = (("LONGEST COMBO: " + _arg1) + "!");
longChain.fadingSpeed = 0.01;
longChain.startFadeOut();
}
public function timerExpSoundDelay_Timer(_arg1:TimerEvent):void{
isExpSound = true;
}
public function myLink_Click(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://www.anegmetex.com"), "_blank");
}
public function dropCouple(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{
var _local7:dynObject;
var _local8:Number;
var _local9:Number;
var _local10:Vector;
var _local11:Number;
var _local12:Number;
_local10 = new Vector((_arg3 - _arg1), (_arg4 - _arg2));
_local9 = (_local10.getDirectionRad() + (Math.PI / 2));
if (_local9 > Math.PI){
_local9 = (_local9 - (Math.PI * 2));
} else {
if (_local9 < -(Math.PI)){
_local9 = (_local9 + (Math.PI * 2));
};
};
if (paramNoEnemyGreen){
_local7 = new enemyWeak();
} else {
_local7 = new enemyWeakGreen();
};
_local7.x = _arg1;
_local7.y = _arg2;
_local7.width = 24;
_local7.height = 24;
_local7.recalcRadius();
_local7.setRotTarget(_arg3, _arg4);
_local7.setVelocity(_local10.x, _local10.y, _arg6);
gl.addChild(_local7);
dynObjArray.push(_local7);
_local8 = 0;
while (_local8 < _arg5) {
_local7 = new enemyWeak();
_local11 = (-(COUPLE_OFFSET) * (_local8 + 1));
_local12 = (COUPLE_OFFSET * (_local8 + 1));
_local7.x = _arg1;
_local7.y = _arg2;
_local7.setVelocity(_local10.x, _local10.y, _arg6);
_local7.x = (_local7.x + ((_local11 * Math.cos(_local9)) - (_local12 * Math.sin(_local9))));
_local7.y = (_local7.y + ((_local11 * Math.sin(_local9)) + (_local12 * Math.cos(_local9))));
_local7.width = 24;
_local7.height = 24;
_local7.recalcRadius();
gl.addChild(_local7);
dynObjArray.push(_local7);
_local8++;
};
_local8 = 0;
while (_local8 < _arg5) {
_local7 = new enemyWeak();
_local11 = (COUPLE_OFFSET * (_local8 + 1));
_local12 = (COUPLE_OFFSET * (_local8 + 1));
_local7.x = _arg1;
_local7.y = _arg2;
_local7.setVelocity(_local10.x, _local10.y, _arg6);
_local7.x = (_local7.x + ((_local11 * Math.cos(_local9)) - (_local12 * Math.sin(_local9))));
_local7.y = (_local7.y + ((_local11 * Math.sin(_local9)) + (_local12 * Math.cos(_local9))));
_local7.width = 24;
_local7.height = 24;
_local7.recalcRadius();
gl.addChild(_local7);
dynObjArray.push(_local7);
_local8++;
};
}
public function dropBossDeath(_arg1:Number, _arg2:Number):dynObject{
var _local3:dynObject;
var _local4:Array;
_local3 = new bossDeath();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.width = 75;
_local3.height = 75;
_local3.recalcRadius();
_local4 = new Array();
_local4.push(new GlowFilter(0xFFFFFF, 1, 15, 15, 1, 2));
_local3.filters = _local4;
_local3.startZoom(true, 0, 1);
_local3.prepareTimers();
gl.addChild(_local3);
dynObjArray.push(_local3);
return (_local3);
}
public function startStage(_arg1:Number, _arg2:Number, _arg3:Boolean):void{
var _local4:Boolean;
var _local5:dynObject;
var _local6:dynObject;
var _local7:SoundTransform;
var _local8:Boolean;
var _local9:Boolean;
_local4 = _arg3;
if ((((_arg1 == 0)) && ((_arg2 == 0)))){
SubStageTime = false;
SubStageKillVIP = false;
LevelStage = _arg1;
LevelSubStage = _arg2;
};
if ((((_arg1 == 1)) && ((_arg2 == 1)))){
if (_local4){
if (inGameHlp){
if (inGameHlpLev == 0){
hlp2.y = -999999;
hlp3.y = -999999;
inGameHlpLev++;
hlp1.x = 396;
hlp1.y = 36;
hlp1.start();
};
} else {
hideHlp();
};
paramNoEnemyGreen = false;
paramNoEnemyPink = false;
curDirectBonus = 0;
curExtraBonus = 0;
curChainBonus = 0;
curBossBonus = 0;
curLenBonus = 0;
curDeath = 0;
bg.gotoAndStop(1);
gameMessage.addMessage("KILL'EM ALL!");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 40;
SubStageTimer.start();
soundChannel.stop();
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["music1"].play(0, 99999, _local7);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
};
};
if ((((_arg1 == 1)) && ((_arg2 == 2)))){
if (_local4){
gameMessage.addMessage("DESTROY TURRETS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 6;
maxStageLifeCount = 0;
_local5 = dropTurret(Random(0, 550), Random(0, 400));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(Random(0, 550), Random(0, 400));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(Random(0, 550), Random(0, 400));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(Random(0, 550), Random(0, 400));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(Random(0, 550), Random(0, 400));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
};
if ((((_arg1 == 1)) && ((_arg2 == 3)))){
if (_local4){
gameMessage.addMessage("COOLDOWN...");
missPlayer2();
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 45;
SubStageTimer.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 1)) && ((_arg2 == 4)))){
if (_local4){
gameMessage.addMessage("DESTROY TOWER");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
maxStageLifeCount = 0;
_local5 = dropEnemySwirl(Random(100, 450), Random(100, 300));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
};
if ((((_arg1 == 1)) && ((_arg2 == 5)))){
if (_local4){
gameMessage.addMessage("GET A SCORES");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 45;
SubStageTimer.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 1)) && ((_arg2 == 6)))){
if (_local4){
gameMessage.addMessage("DESTROY TWO TOWERS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 2;
maxStageLifeCount = 0;
_local5 = dropEnemySwirl(Random(100, 450), Random(100, 300));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropEnemySwirl(Random(100, 450), Random(100, 300));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
};
if ((((_arg1 == 1)) && ((_arg2 == 7)))){
if (_local4){
gameMessage.addMessage("PREPARE FOR BOSS...");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 45;
SubStageTimer.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 1)) && ((_arg2 == 8)))){
if (_local4){
gameMessage.addMessage("KILL RX99 'pROGRESSOR'!");
PlaySnd("snd_alarm", playerObj);
soundChannel.stop();
paramNoEnemyGreen = true;
paramNoEnemyPink = true;
missPlayer2();
timerCouple.delay = 1400;
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["snd_boss_beat3"].play(0, 99999, _local7);
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
maxStageLifeCount = 0;
_local5 = dropBossProgressor(Random(100, 450), Random(100, 300));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
lastScoreAnimStage = 0;
timerEndLevel.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
};
if ((((_arg1 == 2)) && ((_arg2 == 1)))){
if (_local4){
bg.gotoAndStop(2);
paramNoEnemyGreen = false;
paramNoEnemyPink = false;
soundChannel.stop();
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["music2"].play(0, 99999, _local7);
curDirectBonus = 0;
curExtraBonus = 0;
curChainBonus = 0;
curBossBonus = 0;
curLenBonus = 0;
curDeath = 0;
gameMessage.addMessage("KILL'EM ALL!");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerTurret.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 2)) && ((_arg2 == 2)))){
if (_local4){
gameMessage.addMessage("DESTROY HEAVY TURRETS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 6;
timerTurret.stop();
maxStageLifeCount = 0;
_local5 = dropTurretHeavy(100, 350);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurretHeavy(450, 350);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurretHeavy(275, 50);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
if ((((_arg1 == 2)) && ((_arg2 == 3)))){
if (_local4){
gameMessage.addMessage("COOLDOWN...");
missPlayer2();
timerTurret.start();
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 2)) && ((_arg2 == 4)))){
if (_local4){
gameMessage.addMessage("DESTROY X-TOWER");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
timerTurret.stop();
maxStageLifeCount = 0;
_local5 = dropEnemySwirlX1((SCR_W / 2), (SCR_H / 2));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
maxStageLifeCount = 0;
_local5 = dropEnemySwirlX2((SCR_W / 2), (SCR_H / 2));
_local5.VIP = true;
_local5.rotation = -45;
_local5.rot = -(_local5.rot);
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
if ((((_arg1 == 2)) && ((_arg2 == 5)))){
if (_local4){
gameMessage.addMessage("GET A SCORES");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerTurretHeavy.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 2)) && ((_arg2 == 6)))){
if (_local4){
gameMessage.addMessage("DESTROY TWO X-TOWERS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 2;
timerTurret.stop();
timerTurretHeavy.stop();
maxStageLifeCount = 0;
_local5 = dropEnemySwirlX1(183, 200);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
maxStageLifeCount = 0;
_local5 = dropEnemySwirlX2(183, 200);
_local5.VIP = true;
_local5.rotation = -45;
_local5.rot = -(_local5.rot);
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
maxStageLifeCount = 0;
_local5 = dropEnemySwirlX1(366, 200);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
maxStageLifeCount = 0;
_local5 = dropEnemySwirlX2(366, 200);
_local5.VIP = true;
_local5.rotation = -45;
_local5.rot = -(_local5.rot);
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
if ((((_arg1 == 2)) && ((_arg2 == 7)))){
if (_local4){
gameMessage.addMessage("PREPARE FOR BOSS...");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 2)) && ((_arg2 == 8)))){
if (_local4){
gameMessage.addMessage("KILL MT5 'sEEDER'!");
PlaySnd("snd_alarm", playerObj);
soundChannel.stop();
paramNoEnemyGreen = true;
paramNoEnemyPink = true;
missPlayer2();
timerCouple.delay = 1400;
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["snd_boss_beat2"].play(0, 99999, _local7);
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
maxStageLifeCount = 0;
_local5 = dropBossSeeder(Random(100, 450), Random(100, 300));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
lastScoreAnimStage = 0;
timerEndLevel.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
};
if ((((_arg1 == 3)) && ((_arg2 == 1)))){
if (_local4){
bg.gotoAndStop(3);
paramNoEnemyGreen = false;
paramNoEnemyPink = false;
soundChannel.stop();
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["music1"].play(0, 99999, _local7);
curDirectBonus = 0;
curExtraBonus = 0;
curChainBonus = 0;
curBossBonus = 0;
curLenBonus = 0;
curDeath = 0;
gameMessage.addMessage("KILL'EM ALL!");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerHunter.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 3)) && ((_arg2 == 2)))){
if (_local4){
gameMessage.addMessage("DESTROY TURRETS AND SAWS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 6;
timerTurret.stop();
timerHunter.stop();
maxStageLifeCount = 0;
_local5 = dropTurretHeavy(Random(0, 550), Random(0, 400));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local5 = dropTurretHeavy(Random(0, 550), Random(0, 400));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local5 = dropEnemySaw(Random(0, 550), Random(0, 400));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local5 = dropEnemySaw(Random(0, 550), Random(0, 400));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local5 = dropEnemySaw(Random(0, 550), Random(0, 400));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
};
if ((((_arg1 == 3)) && ((_arg2 == 3)))){
if (_local4){
gameMessage.addMessage("COOLDOWN...");
missPlayer2();
timerHunter.start();
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 3)) && ((_arg2 == 4)))){
if (_local4){
gameMessage.addMessage("DESTROY THREE BLASTERS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
timerHunter.stop();
_local8 = Boolean(Random(0, 1));
_local9 = Boolean(Random(0, 1));
_local5 = dropBossFighterTurret((_local8) ? Random(-100, 0) : Random(550, 650), (_local9) ? Random(-100, 0) : Random(450, 550));
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5.VIP = true;
_local8 = Boolean(Random(0, 1));
_local9 = Boolean(Random(0, 1));
_local5 = dropBossFighterTurret((_local8) ? Random(-100, 0) : Random(550, 650), (_local9) ? Random(-100, 0) : Random(450, 550));
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5.VIP = true;
_local8 = Boolean(Random(0, 1));
_local9 = Boolean(Random(0, 1));
_local5 = dropBossFighterTurret((_local8) ? Random(-100, 0) : Random(550, 650), (_local9) ? Random(-100, 0) : Random(450, 550));
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5.VIP = true;
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
};
if ((((_arg1 == 3)) && ((_arg2 == 5)))){
if (_local4){
gameMessage.addMessage("GET A SCORES");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerTurret.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 3)) && ((_arg2 == 6)))){
if (_local4){
gameMessage.addMessage("DESTROY THREE TOWERS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 2;
timerTurret.stop();
timerTurretHeavy.stop();
maxStageLifeCount = 0;
_local5 = dropEnemySwirl(Random(100, 450), Random(100, 300));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropEnemySwirl(Random(100, 450), Random(100, 300));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropEnemySwirl(Random(100, 450), Random(100, 300));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
};
if ((((_arg1 == 3)) && ((_arg2 == 7)))){
if (_local4){
gameMessage.addMessage("PREPARE FOR BOSS...");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 3)) && ((_arg2 == 8)))){
if (_local4){
gameMessage.addMessage("KILL LSS45-X 'fIGHTER'!");
PlaySnd("snd_alarm", playerObj);
soundChannel.stop();
paramNoEnemyGreen = true;
paramNoEnemyPink = true;
missPlayer2();
timerCouple.delay = 1400;
timerHunter.start();
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["snd_boss_beat1"].play(0, 99999, _local7);
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
maxStageLifeCount = 0;
_local5 = dropBossFighter(Random(100, 450), Random(100, 300));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
timerHunter.stop();
PlaySnd("snd_levcompl", playerObj);
lastScoreAnimStage = 0;
timerEndLevel.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
};
if ((((_arg1 == 4)) && ((_arg2 == 1)))){
if (_local4){
bg.gotoAndStop(4);
paramNoEnemyGreen = false;
paramNoEnemyPink = false;
soundChannel.stop();
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["music2"].play(0, 99999, _local7);
curDirectBonus = 0;
curExtraBonus = 0;
curChainBonus = 0;
curBossBonus = 0;
curLenBonus = 0;
curDeath = 0;
gameMessage.addMessage("KILL'EM ALL!");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerMiner.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 4)) && ((_arg2 == 2)))){
if (_local4){
gameMessage.addMessage("DESTROY TURRETS AND TOWER");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 6;
timerTurret.stop();
timerMiner.stop();
maxStageLifeCount = 0;
_local5 = dropTurretHeavy(Random(0, 550), Random(0, 400));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local5 = dropTurretHeavy(Random(0, 550), Random(0, 400));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local5 = dropTurretHeavy(Random(0, 550), Random(0, 400));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local5 = dropEnemySwirl(Random(0, 550), Random(0, 400));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
};
if ((((_arg1 == 4)) && ((_arg2 == 3)))){
if (_local4){
gameMessage.addMessage("COOLDOWN...");
missPlayer2();
timerHunter.start();
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 4)) && ((_arg2 == 4)))){
if (_local4){
gameMessage.addMessage("DESTROY TURETS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
timerHunter.stop();
_local8 = Boolean(Random(0, 1));
_local9 = Boolean(Random(0, 1));
_local5 = dropBossFighterTurret((_local8) ? Random(-100, 0) : Random(550, 650), (_local9) ? Random(-100, 0) : Random(450, 550));
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5.VIP = true;
_local8 = Boolean(Random(0, 1));
_local9 = Boolean(Random(0, 1));
_local5 = dropBossFighterTurret((_local8) ? Random(-100, 0) : Random(550, 650), (_local9) ? Random(-100, 0) : Random(450, 550));
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5.VIP = true;
_local8 = Boolean(Random(0, 1));
_local9 = Boolean(Random(0, 1));
_local5 = dropBossFighterTurret((_local8) ? Random(-100, 0) : Random(550, 650), (_local9) ? Random(-100, 0) : Random(450, 550));
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(50, 50);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(275, 50);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(500, 50);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(50, 350);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(275, 350);
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropTurret(500, 350);
_local5.VIP = true;
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
};
if ((((_arg1 == 4)) && ((_arg2 == 5)))){
if (_local4){
gameMessage.addMessage("GET A SCORES");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerTurretHeavy.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 4)) && ((_arg2 == 6)))){
if (_local4){
gameMessage.addMessage("DESTROY THREE TOWERS-X");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 2;
timerTurretHeavy.stop();
maxStageLifeCount = 0;
_local5 = dropEnemySwirlX1(Random(100, 450), Random(100, 300));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local6 = dropEnemySwirlX2((SCR_W / 2), (SCR_H / 2));
_local6.rotation = -45;
_local6.rot = -(_local5.rot);
_local6.x = _local5.x;
_local6.y = _local5.y;
maxStageLifeCount = (maxStageLifeCount + _local6.LifeBarMax);
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropEnemySwirlX1(Random(100, 450), Random(100, 300));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local6 = dropEnemySwirlX2((SCR_W / 2), (SCR_H / 2));
_local6.rotation = -45;
_local6.rot = -(_local5.rot);
_local6.x = _local5.x;
_local6.y = _local5.y;
maxStageLifeCount = (maxStageLifeCount + _local6.LifeBarMax);
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
_local5 = dropEnemySwirlX1(Random(100, 450), Random(100, 300));
_local5.VIP = true;
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
_local6 = dropEnemySwirlX2((SCR_W / 2), (SCR_H / 2));
_local6.rotation = -45;
_local6.rot = -(_local5.rot);
_local6.x = _local5.x;
_local6.y = _local5.y;
maxStageLifeCount = (maxStageLifeCount + _local6.LifeBarMax);
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
};
if ((((_arg1 == 4)) && ((_arg2 == 7)))){
if (_local4){
gameMessage.addMessage("PREPARE FOR BOSS...");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerMiner.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 4)) && ((_arg2 == 8)))){
if (_local4){
gameMessage.addMessage("KILL GH9-2K 'tWINS'!");
PlaySnd("snd_alarm", playerObj);
soundChannel.stop();
paramNoEnemyGreen = true;
paramNoEnemyPink = true;
missPlayer2();
timerCouple.delay = 1400;
timerMiner.stop();
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["snd_boss_beat3"].play(0, 99999, _local7);
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
maxStageLifeCount = 0;
_local5 = dropBossDevastator(Random(100, 450), Random(100, 300));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
maxStageLifeCount = 0;
_local5 = dropBossDevastator(Random(100, 450), Random(100, 300));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
while (isCollideVIP(_local5)) {
_local5.x = Random(_local5.radius, (550 - _local5.radius));
_local5.y = Random(_local5.radius, (400 - _local5.radius));
};
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
} else {
_arg2++;
_local4 = true;
timerHunter.stop();
PlaySnd("snd_levcompl", playerObj);
lastScoreAnimStage = 0;
timerEndLevel.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
};
};
if ((((_arg1 == 5)) && ((_arg2 == 1)))){
if (_local4){
bg.gotoAndStop(5);
paramNoEnemyGreen = false;
paramNoEnemyPink = false;
soundChannel.stop();
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["music1"].play(0, 99999, _local7);
curDirectBonus = 0;
curExtraBonus = 0;
curChainBonus = 0;
curBossBonus = 0;
curLenBonus = 0;
curDeath = 0;
gameMessage.addMessage("KILL'EM ALL!");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerSaw.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 5)) && ((_arg2 == 2)))){
if (_local4){
gameMessage.addMessage("KILL FIRST BOSS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
timerSaw.stop();
timerMiner.stop();
PlaySnd("snd_alarm", playerObj);
maxStageLifeCount = 0;
_local5 = dropBossProgressor(Random(100, 450), Random(100, 300));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
if ((((_arg1 == 5)) && ((_arg2 == 3)))){
if (_local4){
gameMessage.addMessage("COOLDOWN...");
missPlayer2();
timerHunter.start();
timerTurret.start();
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 5)) && ((_arg2 == 4)))){
if (_local4){
gameMessage.addMessage("KILL SECOND BOSS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
timerHunter.stop();
timerTurret.stop();
PlaySnd("snd_alarm", playerObj);
maxStageLifeCount = 0;
_local5 = dropBossSeeder(Random(100, 450), Random(100, 300));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
if ((((_arg1 == 5)) && ((_arg2 == 5)))){
if (_local4){
gameMessage.addMessage("GET A SCORES");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerTurretHeavy.start();
timerSaw.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 5)) && ((_arg2 == 6)))){
if (_local4){
gameMessage.addMessage("KILL THIRD BOSS");
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 2;
timerTurretHeavy.stop();
timerSaw.stop();
PlaySnd("snd_alarm", playerObj);
maxStageLifeCount = 0;
_local5 = dropBossFighter(Random(100, 450), Random(100, 300));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
PlaySnd("snd_levcompl", playerObj);
};
if ((((_arg1 == 5)) && ((_arg2 == 7)))){
if (_local4){
gameMessage.addMessage("PREPARE FOR BOSS...");
SubStageTime = true;
SubStageKillVIP = false;
SubStageCurTime = 0;
SubStageFinalTime = 60;
SubStageTimer.start();
timerMiner.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
_arg2++;
_local4 = true;
};
if ((((_arg1 == 5)) && ((_arg2 == 8)))){
if (_local4){
gameMessage.addMessage("KILL ZX1000 'dEATH'!");
PlaySnd("snd_alarm", playerObj);
soundChannel.stop();
paramNoEnemyGreen = true;
paramNoEnemyPink = true;
missPlayer2();
timerCouple.delay = 1400;
timerMiner.stop();
timerHunter2.start();
_local7 = new SoundTransform();
_local7.volume = 1;
soundChannel = game_mus["snd_boss_beat2"].play(0, 99999, _local7);
SubStageTimer.stop();
SubStageTime = false;
SubStageKillVIP = true;
SubStageVIPCount = 1;
maxStageLifeCount = 0;
_local5 = dropBossDeath(Random(100, 450), Random(100, 300));
_local5.VIP = true;
maxStageLifeCount = (maxStageLifeCount + _local5.LifeBarMax);
LevelStage = _arg1;
LevelSubStage = _arg2;
return;
};
timerHunter2.stop();
_arg2++;
_local4 = true;
timerHunter.stop();
PlaySnd("snd_levcompl", playerObj);
lastScoreAnimStage = 0;
timerEndLevel.start();
LevelStage = _arg1;
LevelSubStage = _arg2;
};
if ((((_arg1 == 5)) && ((_arg2 == 9)))){
SubStageTime = true;
SubStageKillVIP = false;
SubStageTimer.stop();
};
}
public function timerRestart_Timer(_arg1:TimerEvent):void{
if (gamepaused){
return;
};
hideGui();
menuGameOver.start();
menuGameOver.init(easyMode, player_score, totalDeath, totalBonusCnt);
}
public function timerCouple_Timer(_arg1:TimerEvent):void{
var _local2:Number;
var _local3:Number;
var _local4:Vector;
var _local5:Vector;
var _local6:Number;
if (gamepaused){
return;
};
_local4 = new Vector();
_local5 = new Vector();
_local2 = 0;
_local3 = -(SCR_RAD);
_local6 = (((360 * (Math.random() - 0.5)) / 180) * Math.PI);
_local4.x = (_local4.x + ((_local2 * Math.cos(_local6)) - (_local3 * Math.sin(_local6))));
_local4.y = (_local4.y + ((_local2 * Math.sin(_local6)) + (_local3 * Math.cos(_local6))));
_local5.x = (_local5.x + ((_local2 * Math.cos((Math.PI + _local6))) - (_local3 * Math.sin((Math.PI + _local6)))));
_local5.y = (_local5.y + ((_local2 * Math.sin((Math.PI + _local6))) + (_local3 * Math.cos((Math.PI + _local6)))));
dropCouple((_local4.x + (SCR_W / 2)), (_local4.y + (SCR_H / 2)), (_local5.x + (SCR_W / 2)), (_local5.y + (SCR_H / 2)), Random(2, 5), Random(paramStartEnemyMinSpeed, paramEnemyCurMaxSpeed));
}
public function timerSaw_Timer(_arg1:TimerEvent):void{
var _local2:dynObject;
if (gamepaused){
return;
};
_local2 = dropEnemySaw(Random(0, 550), Random(0, 400));
while (isCollideVIP(_local2)) {
_local2.x = Random(_local2.radius, (550 - _local2.radius));
_local2.y = Random(_local2.radius, (400 - _local2.radius));
};
}
public function isCollideVIP(_arg1:dynObject):Boolean{
var _local2:Number;
var _local3:dynObject;
for each (_local3 in dynObjArray) {
if (((((!((_local3 == _arg1))) && (_local3.VIPNotCollision))) && (_local3.CheckCollision(_arg1)))){
return (true);
};
};
return (false);
}
public function timerTurretHeavy_Timer(_arg1:TimerEvent):void{
var _local2:dynObject;
if (gamepaused){
return;
};
_local2 = dropTurretHeavy(Random(0, 550), Random(0, 400));
while (isCollideVIP(_local2)) {
_local2.x = Random(_local2.radius, (550 - _local2.radius));
_local2.y = Random(_local2.radius, (400 - _local2.radius));
};
}
}
}//package main
Section 48
//gameMessage (main.gameMessage)
package main {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;
public dynamic class gameMessage extends MovieClip {
public var alphaOut:Boolean;// = false
public var txt:TextField;
public var alphaOutSpd:Number;
public var alphaInSpd:Number;
public var timerTextDelay:Timer;
public var alphaDelay:Boolean;// = false
public function gameMessage(){
alphaOut = false;
alphaDelay = false;
super();
alphaOutSpd = 0.001;
alphaInSpd = 0.1;
txt.alpha = 0;
timerTextDelay = new Timer(3000, 1);
timerTextDelay.stop();
timerTextDelay.addEventListener(TimerEvent.TIMER, timerTextDelay_Timer);
}
public function timerTextDelay_Timer(_arg1:TimerEvent):void{
alphaDelay = false;
alphaOut = true;
}
public function addMessage(_arg1:String):void{
txt.text = _arg1;
alphaDelay = false;
alphaOut = false;
txt.alpha = 0;
timerTextDelay.stop();
}
public function update():void{
if (alphaDelay){
return;
};
if (alphaOut){
if ((txt.alpha - alphaOutSpd) <= 0){
alphaDelay = true;
txt.alpha = 0;
} else {
txt.alpha = (txt.alpha - alphaInSpd);
};
} else {
if ((txt.alpha + alphaInSpd) >= 1){
alphaDelay = true;
txt.alpha = 1;
timerTextDelay.start();
} else {
txt.alpha = (txt.alpha + alphaInSpd);
};
};
}
}
}//package main
Section 49
//gameText (main.gameText)
package main {
import flash.text.*;
public dynamic class gameText extends dynObject {
public var textTop:TextField;
public var textMiss:TextField;
public var textBottom:TextField;
public function gameText(){
removeAlphaEffect = 0.02;
}
public function setToChainBonus(_arg1:Number):void{
if ((((_arg1 >= 50)) && ((_arg1 <= 200)))){
};
if ((((_arg1 >= 200)) && ((_arg1 <= 450)))){
};
textMiss.text = "";
textTop.text = "combo bonus";
textBottom.text = ("+" + _arg1);
}
override public function toString():String{
return ("gameText");
}
public function setToMiss():void{
textMiss.text = "Miss!";
textTop.text = "";
textBottom.text = "";
}
public function setToExtraLife():void{
textMiss.text = "";
textTop.text = "EXTRA LIFE!";
textBottom.text = "";
}
public function setToGreenBonus(_arg1:Number):void{
textMiss.text = "";
textTop.text = "extra bonus";
textBottom.text = ("+" + _arg1);
}
}
}//package main
Section 50
//inGameHlp (main.inGameHlp)
package main {
public dynamic class inGameHlp extends menuFader {
public function inGameHlp(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame3(){
stop();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package main
Section 51
//levcompScreen (main.levcompScreen)
package main {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;
public dynamic class levcompScreen extends MovieClip {
public var numChainBonus:TextField;
public var numExtraBonus:TextField;
public var txtBossBonus:TextField;
public var txtDirectBonus:TextField;
public var txtLenChainBonus:TextField;
public var numDirectBonus:TextField;
public var numTotalBonus:TextField;
public var txtChainBonus:TextField;
public var txtExtraBonus:TextField;
public var thanksPlay:MovieClip;
var animstage:Number;
public var numBossBonus:TextField;
public var txtTotalBonus:TextField;
public var numLenChainBonus:TextField;
var timerAnim:Timer;
public function levcompScreen(){
timerAnim = new Timer(3000);
timerAnim.stop();
timerAnim.addEventListener(TimerEvent.TIMER, timerAnim_Timer);
}
public function start(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{
numDirectBonus.text = ("" + _arg1);
numExtraBonus.text = ("" + _arg2);
numChainBonus.text = ("" + _arg3);
numLenChainBonus.text = ("" + _arg4);
numBossBonus.text = ("" + _arg5);
numTotalBonus.text = ("" + _arg6);
txtDirectBonus.visible = false;
numDirectBonus.visible = false;
txtExtraBonus.visible = false;
numExtraBonus.visible = false;
txtChainBonus.visible = false;
numChainBonus.visible = false;
txtLenChainBonus.visible = false;
numLenChainBonus.visible = false;
txtBossBonus.visible = false;
numBossBonus.visible = false;
txtTotalBonus.visible = false;
numTotalBonus.visible = false;
thanksPlay.visible = false;
alpha = 0;
visible = true;
animstage = 0;
timerAnim.start();
timerAnim.delay = 1000;
}
public function timerAnim_Timer(_arg1:TimerEvent):void{
if (alpha >= 1){
animstage++;
};
}
public function update():Boolean{
if (visible){
if (alpha >= 1){
alpha = 1;
if (animstage == 1){
txtDirectBonus.visible = true;
numDirectBonus.visible = true;
} else {
if (animstage == 2){
txtExtraBonus.visible = true;
numExtraBonus.visible = true;
} else {
if (animstage == 3){
txtChainBonus.visible = true;
numChainBonus.visible = true;
} else {
if (animstage == 4){
txtLenChainBonus.visible = true;
numLenChainBonus.visible = true;
} else {
if (animstage == 5){
txtBossBonus.visible = true;
numBossBonus.visible = true;
} else {
if (animstage == 6){
txtTotalBonus.visible = true;
numTotalBonus.visible = true;
} else {
if (animstage > 6){
timerAnim.stop();
thanksPlay.visible = true;
return (true);
};
};
};
};
};
};
};
} else {
alpha = (alpha + 0.05);
};
};
return (false);
}
}
}//package main
Section 52
//longChain (main.longChain)
package main {
public dynamic class longChain extends menuFader {
}
}//package main
Section 53
//mainGlobal (main.mainGlobal)
package main {
public dynamic class mainGlobal {
public static var isPlayedonline:Boolean = false;
}
}//package main
Section 54
//menuDiff (main.menuDiff)
package main {
public dynamic class menuDiff extends menuFader {
}
}//package main
Section 55
//menuFader (main.menuFader)
package main {
import flash.display.*;
import flash.events.*;
public dynamic class menuFader extends MovieClip {
public var buttNo:SimpleButton;
var fadingout:Boolean;// = false
var fadingSpeed:Number;// = 0.1
public var buttYes:SimpleButton;
public function menuFader(){
fadingout = false;
fadingSpeed = 0.1;
super();
fadingout = false;
addEventListener(Event.ENTER_FRAME, update);
}
public function start():void{
alpha = 0;
visible = true;
fadingout = false;
}
public function startFadeOut():void{
alpha = 1;
visible = true;
fadingout = true;
}
public function update(_arg1:Event):void{
if (visible){
if (fadingout){
if (alpha <= 0){
alpha = 0;
visible = false;
fadingout = false;
} else {
alpha = (alpha - fadingSpeed);
};
} else {
if (alpha >= 1){
alpha = 1;
} else {
alpha = (alpha + fadingSpeed);
};
};
};
}
}
}//package main
Section 56
//menuFreePlay (main.menuFreePlay)
package main {
public dynamic class menuFreePlay extends menuFader {
}
}//package main
Section 57
//menuGameOver (main.menuGameOver)
package main {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.net.*;
import flash.text.*;
import flash.system.*;
public dynamic class menuGameOver extends menuFader {
public var infotxt:MovieClip;
public var thanksPlay:MovieClip;
public var txtTotalBonus:TextField;
public function menuGameOver(){
addFrameScript(0, frame1);
}
public function init(_arg1:Boolean, _arg2:Number, _arg3:Number, _arg4:Number){
txtTotalBonus.text = ("YOU SCORE IS: " + _arg2);
if (mainGlobal.isPlayedonline){
if (_arg1){
game(parent).playedAPI.submit_stat("easy_total_score", _arg2, "max");
game(parent).playedAPI.submit_stat("easy_total_spawns_count", _arg3, "min");
game(parent).playedAPI.submit_stat("easy_bonus_count", _arg4, "max");
} else {
game(parent).playedAPI.submit_stat("norm_total_score", _arg2, "max");
game(parent).playedAPI.submit_stat("norm_total_spawns_count", _arg3, "min");
game(parent).playedAPI.submit_stat("norm_bonus_count", _arg4, "max");
};
infotxt.txt.text = "YOUR SCORE WAS SUBMITTED ON PLAYEDONLINE.COM";
} else {
infotxt.txt.text = "PLAY ON PLAYEDONLINE.COM TO SUBMIT YOUR SCORES";
};
}
function frame1(){
infotxt.buttonMode = true;
infotxt.useHandCursor = true;
infotxt.mouseChildren = false;
infotxt.addEventListener(MouseEvent.CLICK, sponsorSiteClick_Click);
}
public function sponsorSiteClick_Click(_arg1:MouseEvent):void{
if (infotxt.txt.text != "YOUR RECORD WAS SUBMITTED ON PLAYEDONLINE.COM"){
navigateToURL(new URLRequest("http://www.playedonline.com/game/597306/8bit-little-killer.html"), "_blank");
} else {
navigateToURL(new URLRequest("http://playedonline.com?campaign=8bit&utm_campaign=8bit&utm_medium=in_game&utm_source=8bit"), "_blank");
};
}
}
}//package main
Section 58
//menuHelp (main.menuHelp)
package main {
public dynamic class menuHelp extends menuFader {
}
}//package main
Section 59
//menuiMain (main.menuiMain)
package main {
public dynamic class menuiMain extends menuFader {
}
}//package main
Section 60
//menuScores (main.menuScores)
package main {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.net.*;
import flash.text.*;
import flash.system.*;
public dynamic class menuScores extends menuFader {
var showOnly:Boolean;// = false
var curscore:Number;// = 0
public var txtScore1:TextField;
public var txtScore3:TextField;
public var txtScore5:TextField;
public var txtScore6:TextField;
public var txtName1:TextField;
public var txtName2:TextField;
public var txtName6:TextField;
public var txtName7:TextField;
public var txtScore9:TextField;
public var txtName3:TextField;
public var txtName4:TextField;
public var txtScore7:TextField;
public var txtScore4:TextField;
public var txtName8:TextField;
var elemScores:Object;
var playersScores:Array;
public var txtName9:TextField;
public var txtScore8:TextField;
public var txtScore2:TextField;
var isGetHiScore:Boolean;// = false
public var txtName5:TextField;
public var txtName10:TextField;
var playersNames:Array;
public var scoreTitle:TextField;
public var rectScore:MovieClip;
var elemPlayers:Object;
public var txtDirectBonus:TextField;
var loading:Boolean;// = false
var closedInGame:Boolean;// = false
public var thanksPlay:MovieClip;
public var txtScore10:TextField;
var easyScore:Boolean;// = true
var openInGame:Boolean;// = false
var editPos:int;// = -5
public function menuScores(){
var _local1:int;
isGetHiScore = false;
editPos = -5;
showOnly = false;
loading = false;
easyScore = true;
closedInGame = false;
openInGame = false;
curscore = 0;
super();
elemPlayers = new Object();
elemScores = new Object();
elemPlayers["txtName1"] = txtName1;
elemPlayers["txtName2"] = txtName2;
elemPlayers["txtName3"] = txtName3;
elemPlayers["txtName4"] = txtName4;
elemPlayers["txtName5"] = txtName5;
elemPlayers["txtName6"] = txtName6;
elemPlayers["txtName7"] = txtName7;
elemPlayers["txtName8"] = txtName8;
elemPlayers["txtName9"] = txtName9;
elemPlayers["txtName10"] = txtName10;
elemScores["txtScore1"] = txtScore1;
elemScores["txtScore2"] = txtScore2;
elemScores["txtScore3"] = txtScore3;
elemScores["txtScore4"] = txtScore4;
elemScores["txtScore5"] = txtScore5;
elemScores["txtScore6"] = txtScore6;
elemScores["txtScore7"] = txtScore7;
elemScores["txtScore8"] = txtScore8;
elemScores["txtScore9"] = txtScore9;
elemScores["txtScore10"] = txtScore10;
playersNames = new Array();
playersScores = new Array();
addEventListener(Event.ENTER_FRAME, updateScore);
parent.stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
_local1 = 0;
while (_local1 < 10) {
playersNames.push(("Player" + _local1));
playersScores.push("0");
_local1++;
};
}
public function refreshList(){
var _local1:int;
_local1 = 0;
while (_local1 < 10) {
elemPlayers[("txtName" + (_local1 + 1))].text = playersNames[_local1].toUpperCase();
elemScores[("txtScore" + (_local1 + 1))].text = playersScores[_local1].toUpperCase();
_local1++;
};
}
function ioErrorServer(_arg1:Event):void{
var _local2:int;
loading = false;
_local2 = 0;
_local2 = 0;
while (_local2 < 10) {
playersNames[_local2] = "";
playersScores[_local2] = "";
_local2++;
};
txtDirectBonus.text = "SORRY, CAN'T CONNECT TO SERVER!";
thanksPlay.visible = true;
}
public function key_down(_arg1:KeyboardEvent){
var _local2:URLVariables;
var _local3:URLRequest;
var _local4:URLLoader;
if (isGetHiScore){
if (_arg1.keyCode == 13){
isGetHiScore = false;
elemPlayers[("txtName" + (editPos + 1))].type = TextFieldType.DYNAMIC;
elemPlayers[("txtName" + (editPos + 1))].selectable = false;
thanksPlay.visible = true;
closedInGame = false;
if (elemPlayers[("txtName" + (editPos + 1))].text.length > 0){
playersNames[editPos] = elemPlayers[("txtName" + (editPos + 1))].text;
playersNames.splice(10, 1);
playersScores.splice(10, 1);
_local2 = new URLVariables();
_local2.type = "addScore";
_local2.diff = int(easyScore);
_local2.name = playersNames[editPos];
_local2.score = playersScores[editPos];
_local3 = new URLRequest();
_local3.url = "http://anegmetex.com/flash/8BLK_score.php";
_local3.data = _local2;
_local4 = new URLLoader();
_local4.load(_local3);
_local4.addEventListener(IOErrorEvent.IO_ERROR, ioErrorServer);
} else {
playersNames.splice(editPos, 1);
playersScores.splice(editPos, 1);
rectScore.y = -999999;
};
editPos = -1;
refreshList();
};
};
}
public function loadScores(_arg1:Boolean){
var _local2:URLVariables;
var _local3:URLRequest;
var _local4:URLLoader;
playersNames[0] = "LOADING...";
playersNames[1] = "LOADING...";
playersNames[2] = "LOADING...";
playersNames[3] = "LOADING...";
playersNames[4] = "LOADING...";
playersNames[5] = "LOADING...";
playersNames[6] = "LOADING...";
playersNames[7] = "LOADING...";
playersNames[8] = "LOADING...";
playersNames[9] = "LOADING...";
playersScores[0] = "";
playersScores[1] = "";
playersScores[2] = "";
playersScores[3] = "";
playersScores[4] = "";
playersScores[5] = "";
playersScores[6] = "";
playersScores[7] = "";
playersScores[8] = "";
playersScores[9] = "";
refreshList();
loading = true;
_local2 = new URLVariables();
_local2.type = "getScore";
_local2.diff = int(_arg1);
_local3 = new URLRequest();
_local3.url = "http://anegmetex.com/flash/8BLK_score.php";
_local3.data = _local2;
_local4 = new URLLoader();
_local4.load(_local3);
_local4.addEventListener(Event.COMPLETE, completeLoading);
_local4.addEventListener(IOErrorEvent.IO_ERROR, ioErrorServer);
}
public function init(_arg1:Boolean, _arg2:Number){
easyScore = _arg1;
editPos = -1;
setTitle();
loadScores(easyScore);
thanksPlay.visible = false;
curscore = _arg2;
rectScore.y = -999999;
openInGame = true;
}
public function setTitle(){
if (easyScore){
scoreTitle.text = "HI-SCORES (EASY)";
} else {
scoreTitle.text = "HI-SCORES (NORMAL)";
};
}
public function updateScore(_arg1:Event):void{
if (isGetHiScore){
if (stage.focus != elemPlayers[("txtName" + (editPos + 1))]){
stage.focus = elemPlayers[("txtName" + (editPos + 1))];
};
elemPlayers[("txtName" + (editPos + 1))].text = elemPlayers[("txtName" + (editPos + 1))].text.toUpperCase();
};
}
public function initShowOnly(){
showOnly = true;
easyScore = true;
setTitle();
loadScores(easyScore);
refreshList();
txtDirectBonus.text = "";
thanksPlay.visible = true;
rectScore.y = -999999;
closedInGame = false;
openInGame = false;
}
function completeLoading(_arg1:Event):void{
var _local2:XML;
var _local3:XMLList;
var _local4:int;
var _local5:XML;
loading = false;
_local2 = XML(_arg1.target.data);
_local3 = _local2.scoreboard.Name;
_local4 = 0;
for each (_local5 in _local3) {
playersNames[_local4] = _local5;
_local4++;
};
_local3 = _local2.scoreboard.Score;
_local4 = 0;
for each (_local5 in _local3) {
playersScores[_local4] = _local5;
_local4++;
};
refreshList();
if (openInGame){
_local4 = 0;
while (_local4 < 10) {
if (int(playersScores[_local4]) < curscore){
editPos = _local4;
break;
};
_local4++;
};
if (editPos < 0){
isGetHiScore = false;
} else {
isGetHiScore = true;
};
if (isGetHiScore){
txtDirectBonus.text = "YOU GET A HIGH SCORE!";
playersNames.splice(editPos, 0, "");
playersScores.splice(editPos, 0, String(curscore));
rectScore.y = elemPlayers[("txtName" + (editPos + 1))].y;
} else {
txtDirectBonus.text = ("YOU SCORE IS: " + String(curscore));
rectScore.y = -999999;
thanksPlay.visible = true;
closedInGame = true;
};
refreshList();
if (isGetHiScore){
elemPlayers[("txtName" + (editPos + 1))].type = TextFieldType.INPUT;
elemPlayers[("txtName" + (editPos + 1))].selectable = true;
elemPlayers[("txtName" + (editPos + 1))].maxChars = 13;
};
};
}
}
}//package main
Section 61
//pauseMenu (main.pauseMenu)
package main {
public dynamic class pauseMenu extends menuFader {
}
}//package main
Section 62
//player (main.player)
package main {
public dynamic class player extends dynObject {
public function player(){
explodeSize = 100;
}
override public function toString():String{
return ("player");
}
}
}//package main
Section 63
//preloader (main.preloader)
package main {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public dynamic class preloader extends MovieClip {
public var txt:TextField;
public var progressBar:MovieClip;
public function preloader(){
addFrameScript(0, frame1);
mainGlobal.isPlayedonline = isUrl(["playedonline.com", "www.playedonline.com"]);
addEventListener(Event.ENTER_FRAME, Update);
}
function frame1(){
stop();
}
public function isUrl(_arg1:Array):Boolean{
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:Number;
var _local7:Number;
var _local8:int;
_local2 = stage.loaderInfo.loaderURL;
_local3 = (_local2.indexOf("://") + 3);
_local4 = _local2.indexOf("/", _local3);
_local5 = _local2.substring(_local3, _local4);
_local6 = (_local5.lastIndexOf(".") - 1);
_local7 = (_local5.lastIndexOf(".", _local6) + 1);
_local5 = _local5.substring(_local7, _local5.length);
_local8 = 0;
while (_local8 < _arg1.length) {
if (_local5 == _arg1[_local8]){
return (true);
};
_local8++;
};
return (false);
}
public function Update(_arg1:Event):void{
var _local2:Number;
var _local3:Number;
var _local4:String;
var _local5:Number;
_local2 = stage.loaderInfo.bytesLoaded;
_local3 = stage.loaderInfo.bytesTotal;
_local4 = "";
_local5 = 0;
if (_local3 > 0){
_local5 = Math.floor(((_local2 / _local3) * 100));
_local4 = (((((_local5 + "% (") + Math.round((_local2 / 0x0400))) + "KB / ") + Math.round((_local3 / 0x0400))) + "KB)");
};
this.txt.text = ("LOADING... " + _local4);
this.progressBar.gotoAndStop((_local5 + 1));
if ((((_local2 == _local3)) || ((_local3 == 0)))){
removeEventListener(Event.ENTER_FRAME, Update);
if ((parent is MovieClip)){
};
};
}
}
}//package main
Section 64
//proj (main.proj)
package main {
import flash.events.*;
import flash.utils.*;
public dynamic class proj extends dynObject {
public var timerRemove:Timer;
public function proj(){
notTargetRotate = true;
timerRemove = new Timer(4000, 1);
timerRemove.stop();
timerRemove.addEventListener(TimerEvent.TIMER, timerRemove_Timer);
}
override public function toString():String{
return ("proj");
}
public function timerRemove_Timer(_arg1:TimerEvent):void{
timerRemove.stop();
startRemove();
}
}
}//package main
Section 65
//projLite (main.projLite)
package main {
public dynamic class projLite extends proj {
}
}//package main
Section 66
//sounds (main.sounds)
package main {
import flash.media.*;
public dynamic class sounds {
var snd:Object;
var stageRadius:Number;
public var vol:Number;// = 0.9
public function sounds(){
vol = 0.9;
super();
}
public function Play2DSnd(_arg1:String, _arg2:Number, _arg3:Number):void{
var _local4:SoundTransform;
var _local5:Vector;
_local5 = new Vector(_arg2, _arg3);
_local4 = new SoundTransform();
_local4.volume = (vol / (1 + (_local5.magnitude2() / stageRadius)));
snd[_arg1].play(0, 0, _local4);
}
public function init(_arg1:Number, _arg2:Number){
snd = new Object();
snd["snd_bonus1"] = new snd_bonus1();
snd["snd_bonus2"] = new snd_bonus2();
snd["snd_bonus3"] = new snd_bonus3();
snd["snd_death"] = new snd_death();
snd["snd_exp1"] = new snd_exp1();
snd["snd_exp2"] = new snd_exp2();
snd["snd_exp3"] = new snd_exp3();
snd["snd_Menu1"] = new snd_Menu1();
snd["snd_Menu2"] = new snd_Menu2();
snd["snd_drop"] = new snd_drop();
snd["snd_chain"] = new snd_chain();
snd["snd_gameover"] = new snd_gameover();
snd["snd_levcompl"] = new snd_levcompl();
snd["snd_proj1"] = new snd_proj1();
snd["snd_alarm"] = new snd_alarm();
snd["snd_score"] = new snd_score();
stageRadius = Math.pow(((_arg1 + _arg2) / 4), 2);
}
}
}//package main
Section 67
//Star (main.Star)
package main {
import flash.display.*;
public dynamic class Star extends MovieClip {
public var geny:Number;
public var speed:Number;
public var cx:Number;
public var cy:Number;
public var genx:Number;
}
}//package main
Section 68
//statObject (main.statObject)
package main {
public dynamic class statObject extends baseObject {
}
}//package main
Section 69
//turret (main.turret)
package main {
import flash.events.*;
import flash.utils.*;
public dynamic class turret extends dynObject {
public var dontTargeting:Boolean;// = false
public var reloadingOneShoot:Boolean;// = false
var oneProjReloadTimer:Timer;
public var forceRotToVelocity:Boolean;// = false
public var timeReload:Number;
public var curShootSeria:Number;
public var angleTargeting:Number;// = 10
var reloadTimer:Timer;
public var maxShootSeria:Number;
public var timeShoot:Number;
public var reloading:Boolean;// = false
public function turret(){
dontTargeting = false;
angleTargeting = 10;
reloading = false;
reloadingOneShoot = false;
forceRotToVelocity = false;
super();
zoomEffect = 0.01;
}
public function RemapVal(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
return ((_arg4 + (((_arg5 - _arg4) * (_arg1 - _arg2)) / (_arg3 - _arg2))));
}
override public function toString():String{
return ("enemy");
}
public function isTargeting():Boolean{
var _local1:Vector;
var _local2:Number;
_local1 = new Vector((RotTarget.x - x), (RotTarget.y - y));
_local2 = ((_local1.getDirection() - rotation) + 90);
if (_local2 > 180){
_local2 = (_local2 - 360);
} else {
if (_local2 < -180){
_local2 = (_local2 + 360);
};
};
return ((Math.abs(_local2) <= angleTargeting));
}
public function reload_Timer(_arg1:TimerEvent):void{
curShootSeria = 0;
reloading = false;
}
public function updateTurret():void{
alpha = RemapVal(scaleX, 0, alphaEffectMaxScale, 0, 1);
}
public function isReadyToFire():Boolean{
if (((((((isTargeting()) || (dontTargeting))) && (!(reloading)))) && (!(reloadingOneShoot)))){
reloadingOneShoot = true;
curShootSeria++;
oneProjReloadTimer.start();
return (true);
};
return (false);
}
public function oneProjReload_Timer(_arg1:TimerEvent):void{
reloadingOneShoot = false;
if (curShootSeria >= maxShootSeria){
reloadTimer.start();
reloading = true;
};
}
override public function subType():String{
return ("turret");
}
public function prepareTimers():void{
oneProjReloadTimer = new Timer(timeShoot, 1);
oneProjReloadTimer.addEventListener(TimerEvent.TIMER, oneProjReload_Timer);
reloadTimer = new Timer(timeReload, 1);
reloadTimer.addEventListener(TimerEvent.TIMER, reload_Timer);
}
}
}//package main
Section 70
//turretHeavy (main.turretHeavy)
package main {
import flash.geom.*;
public dynamic class turretHeavy extends turret {
public function turretHeavy(){
addFrameScript(0, frame1);
rotateSpeed = 4;
angleTargeting = 35;
maxShootSeria = 3;
curShootSeria = 0;
timeShoot = 100;
timeReload = 3000;
points = new Object();
points["part1"] = new Point(-18.6, -1.3);
points["part2"] = new Point(17.7, -1.6);
points["shoot_pnt1"] = new Point(-19.4, -27);
points["shoot_pnt2"] = new Point(16.6, -27);
points["shoot_pnt3"] = new Point(0, -30);
LifeBarMax = 2;
LifeBar = 0;
useLifeBar = true;
VIPNotCollision = true;
}
function frame1(){
stop();
}
override public function behaviorType():String{
return ("turretHeavy");
}
}
}//package main
Section 71
//turretHeavyPart (main.turretHeavyPart)
package main {
public dynamic class turretHeavyPart extends proj {
}
}//package main
Section 72
//turretLite (main.turretLite)
package main {
public dynamic class turretLite extends turret {
public function turretLite(){
rotateSpeed = 2;
maxShootSeria = 1;
curShootSeria = 0;
timeShoot = 40;
timeReload = 2000;
LifeBarMax = 1;
LifeBar = 0;
useLifeBar = true;
VIPNotCollision = true;
}
override public function behaviorType():String{
return ("turretLite");
}
}
}//package main
Section 73
//Vector (main.Vector)
package main {
public class Vector {
var y:Number;
var x:Number;
public function Vector(_arg1:Number=0, _arg2:Number=0){
x = _arg1;
y = _arg2;
}
function magnitude2():Number{
return (((x * x) + (y * y)));
}
function subVector(_arg1:Vector):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
}
function addVector(_arg1:Vector):void{
x = (x + _arg1.x);
y = (y + _arg1.y);
}
function mulScalar(_arg1:Number):void{
x = (x * _arg1);
y = (y * _arg1);
}
function getMulScalar(_arg1:Number):Vector{
return (new Vector((x * _arg1), (y * _arg1)));
}
function getDirection():Number{
return (((Math.atan2(y, x) / Math.PI) * 180));
}
function vectorProjectionOnto(_arg1:Vector):Vector{
var _local2:Vector;
_local2 = _arg1.getUnitVector();
_local2.mulScalar(scalarProjectionOnto(_arg1));
return (_local2);
}
function getUnitVector():Vector{
var _local1:Number;
var _local2:Vector;
_local1 = magnitude();
_local2 = new Vector(x, y);
if (_local1){
_local2.x = (_local2.x / _local1);
_local2.y = (_local2.y / _local1);
};
return (_local2);
}
function setMembers(_arg1:Number, _arg2:Number):void{
x = _arg1;
y = _arg2;
}
function copyVector(_arg1:Vector):void{
x = _arg1.x;
y = _arg1.y;
}
function getDirectionRad():Number{
return (Math.atan2(y, x));
}
function scalarProjectionOnto(_arg1:Vector):Number{
return ((((x * _arg1.x) + (y * _arg1.y)) / _arg1.magnitude()));
}
function magnitude():Number{
return (Math.sqrt(((x * x) + (y * y))));
}
}
}//package main
Section 74
//MochiAd (mochi.as3.MochiAd)
package mochi.as3 {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiAd {
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function showClickAwayAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_timeout:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var sendHostProgress:Boolean;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
sendHostProgress = false;
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType == "application"){
return (_local2);
};
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local3:Object;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var idx:Number;
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
idx = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var depth:Number;
var mc:MovieClip;
var wh:Array;
var lv:URLVariables;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!(clip is DisplayObject)){
trace("Warning: Object passed as container clip not a descendant of the DisplayObject type");
return (null);
};
if (MovieClip(clip).stage == null){
trace("Warning: Container clip for ad is not attached to the stage");
return (null);
};
if (!MochiAd._isNetworkAvailable()){
return (null);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
wh = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
} else {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
};
lv = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{
trace("[MochiAds] Blocked URL");
});
if (!options.skip){
loader.load(req);
};
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{
var _local4:Array;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip;
_local4 = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Array;
_local3 = _arg2.getBounds(_arg2.root);
_local4 = 0;
_local5 = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array;
var _local4:Number;
_local3 = _arg2.split(".");
_local4 = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = MochiAd.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + _arg3.id));
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
public static function showPreGameAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var bar:MovieClip;
var bar_w:Number;
var bar_color:Number;
var bar_background:Number;
var bar_outline:Number;
var backing_mc:MovieClip;
var backing:Object;
var inside_mc:MovieClip;
var inside:Object;
var outline_mc:MovieClip;
var outline:Object;
var complete:Boolean;
var unloaded:Boolean;
var progress:Number;
var f:Function;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (_arg1:Number):void{
}, progress_override:function (_arg1:Object):Number{
return (NaN);
}, bar_offset:0};
options = MochiAd._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
if (options.skip){
ad_timeout = 0;
};
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
MochiAd._cleanup(mc);
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
bar = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = (10 + options.bar_offset);
bar.y = (h - 20);
};
bar_w = ((w - bar.x) - 10);
bar_color = options.color;
delete options.color;
bar_background = options.background;
delete options.background;
bar_outline = options.outline;
delete options.outline;
backing_mc = createEmptyMovieClip(bar, "_outline", 1);
backing = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo(bar_w, 0);
backing.lineTo(bar_w, 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
inside_mc = createEmptyMovieClip(bar, "_inside", 2);
inside = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo(bar_w, 0);
inside.lineTo(bar_w, 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
outline_mc = createEmptyMovieClip(bar, "_outline", 3);
outline = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo(bar_w, 0);
outline.lineTo(bar_w, 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
progress = Math.min(1, options.progress_override(clip));
f = function (_arg1:Event):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
if (!isNaN(progress)){
complete = (progress == 1);
} else {
if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){
complete = true;
} else {
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
} else {
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
};
} else {
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
};
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
trace(("[MOCHIAD rpcTestFn] " + _arg1));
return (_arg1);
};
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Object;
var _local11:Number;
var _local12:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
_local1 = this.parent.parent.root;
_local2 = this.parent._mochiad_ctr;
_local3 = (getTimer() - this.started);
_local4 = false;
_local5 = _local1.loaderInfo.bytesTotal;
_local6 = _local1.loaderInfo.bytesLoaded;
_local7 = Math.min(1, options.progress_override(_local1));
if (_local7 == 1){
complete = true;
};
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
_local8 = ((100 * _local6) / _local5);
if (!isNaN(_local7)){
_local8 = (100 * _local7);
};
_local9 = ((100 * _local3) / chk.ad_msec);
_local10 = this._mochiad_bar._inside;
_local11 = Math.min(100, Math.min(((_local8) || (0)), _local9));
_local11 = Math.max(this.last_pcnt, _local11);
this.last_pcnt = _local11;
_local10.scaleX = (_local11 * 0.01);
options.ad_progress(_local11);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local8});
if (_local8 >= 100){
sendHostProgress = false;
};
};
if (!chk.showing){
_local12 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local12 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if ((((_local3 > chk.ad_timeout)) && ((_local8 == 100)))){
options.ad_failed();
_local4 = true;
};
};
};
if (_local3 > chk.ad_msec){
_local4 = true;
};
if (((complete) && (_local4))){
if (unloaded){
MochiAd.unload(_local1);
} else {
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
MochiAd.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
MochiAd.showInterLevelAd(_arg1);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var f:Function;
var mc = _arg1;
f = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package mochi.as3
Section 75
//MochiCoins (mochi.as3.MochiCoins)
package mochi.as3 {
public class MochiCoins {
public static const STORE_HIDE:String = "StoreHide";
public static const NO_USER:String = "NoUser";
public static const IO_ERROR:String = "IOError";
public static const ITEM_NEW:String = "ItemNew";
public static const ITEM_OWNED:String = "ItemOwned";
public static const STORE_ITEMS:String = "StoreItems";
public static const ERROR:String = "Error";
public static const STORE_SHOW:String = "StoreShow";
public static var _inventory:MochiInventory;
public static function triggerEvent(_arg1:String, _arg2:Object):void{
MochiSocial.triggerEvent(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
MochiSocial.removeEventListener(_arg1, _arg2);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
MochiSocial.addEventListener(_arg1, _arg2);
}
public static function getStoreItems():void{
MochiServices.send("coins_getStoreItems");
}
public static function get inventory():MochiInventory{
return (_inventory);
}
public static function showStore(_arg1:Object=null):void{
MochiServices.bringToTop();
MochiServices.send("coins_showStore", {options:_arg1}, null, null);
}
public static function showItem(_arg1:Object=null):void{
if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){
trace("ERROR: showItem call must pass an Object with an item key");
return;
};
MochiServices.bringToTop();
MochiServices.send("coins_showItem", {options:_arg1}, null, null);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function showVideo(_arg1:Object=null):void{
if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){
trace("ERROR: showVideo call must pass an Object with an item key");
return;
};
MochiServices.bringToTop();
MochiServices.send("coins_showVideo", {options:_arg1}, null, null);
}
MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{
_inventory = new MochiInventory();
});
MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{
_inventory = null;
});
}
}//package mochi.as3
Section 76
//MochiDigits (mochi.as3.MochiDigits)
package mochi.as3 {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{
Encoder = 0;
setValue(_arg1, _arg2);
}
public function set value(_arg1:Number):void{
setValue(_arg1);
}
public function reencode():void{
var _local1:uint;
_local1 = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (_local1 ^ Encoder));
Encoder = _local1;
}
public function toString():String{
var _local1:String;
_local1 = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
_local1 = (_local1 + Sibling.toString());
};
return (_local1);
}
public function get value():Number{
return (Number(this.toString()));
}
public function setValue(_arg1:Number=0, _arg2:uint=0):void{
var _local3:String;
_local3 = _arg1.toString();
var _temp1 = _arg2;
_arg2 = (_arg2 + 1);
Fragment = (_local3.charCodeAt(_temp1) ^ Encoder);
if (_arg2 < _local3.length){
Sibling = new MochiDigits(_arg1, _arg2);
} else {
Sibling = null;
};
reencode();
}
public function addValue(_arg1:Number):void{
value = (value + _arg1);
}
}
}//package mochi.as3
Section 77
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher)
package mochi.as3 {
public class MochiEventDispatcher {
private var eventTable:Object;
public function MochiEventDispatcher():void{
eventTable = {};
}
public function triggerEvent(_arg1:String, _arg2:Object):void{
var _local3:Object;
if (eventTable[_arg1] == undefined){
return;
};
for (_local3 in eventTable[_arg1]) {
var _local6 = eventTable[_arg1];
_local6[_local3](_arg2);
};
}
public function removeEventListener(_arg1:String, _arg2:Function):void{
var _local3:Object;
if (eventTable[_arg1] == undefined){
eventTable[_arg1] = [];
return;
};
for (_local3 in eventTable[_arg1]) {
if (eventTable[_arg1][_local3] != _arg2){
} else {
eventTable[_arg1].splice(Number(_local3), 1);
};
};
}
public function addEventListener(_arg1:String, _arg2:Function):void{
removeEventListener(_arg1, _arg2);
eventTable[_arg1].push(_arg2);
}
}
}//package mochi.as3
Section 78
//MochiEvents (mochi.as3.MochiEvents)
package mochi.as3 {
import flash.display.*;
public class MochiEvents {
public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL";
public static const FORMAT_LONG:String = "LongForm";
public static const ALIGN_BOTTOM:String = "ALIGN_B";
public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived";
public static const FORMAT_SHORT:String = "ShortForm";
public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR";
public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR";
public static const ALIGN_TOP:String = "ALIGN_T";
public static const ALIGN_LEFT:String = "ALIGN_L";
public static const ALIGN_RIGHT:String = "ALIGN_R";
public static const ALIGN_TOP_LEFT:String = "ALIGN_TL";
public static const ALIGN_CENTER:String = "ALIGN_C";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
private static var gameStart:Number;
private static var levelStart:Number;
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function startSession(_arg1:String):void{
MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null);
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{
var _local3:Object;
var _local4:Object;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
_local3.clip = _arg1;
MochiServices.send("events_setNotifications", _local3, null, null);
}
public static function endGame():void{
var _local1:Number;
_local1 = (new Date().time - gameStart);
trigger("end_game", {time:_local1});
}
public static function startGame():void{
gameStart = new Date().time;
trigger("start_game");
}
public static function trigger(_arg1:String, _arg2:Object=null):void{
if (_arg2 == null){
_arg2 = {};
} else {
if (_arg2["kind"] != undefined){
trace("WARNING: optional arguments package contains key 'id', it will be overwritten");
_arg2["kind"] = _arg1;
};
};
MochiServices.send("events_triggerEvent", {eventObject:_arg2}, null, null);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function startLevel():void{
levelStart = new Date().time;
trigger("start_level");
}
public static function endLevel():void{
var _local1:Number;
_local1 = (new Date().time - levelStart);
trigger("end_level", {time:_local1});
}
}
}//package mochi.as3
Section 79
//MochiInventory (mochi.as3.MochiInventory)
package mochi.as3 {
import flash.events.*;
import flash.utils.*;
public dynamic class MochiInventory extends Proxy {
private var _timer:Timer;
private var _names:Array;
private var _consumableProperties:Object;
private var _syncID:Number;
private var _storeSync:Object;
private var _outstandingID:Number;
private var _syncPending:Boolean;
public static const READY:String = "InvReady";
public static const ERROR:String = "Error";
public static const IO_ERROR:String = "IoError";
private static const KEY_SALT:String = " syncMaint";
public static const WRITTEN:String = "InvWritten";
public static const NOT_READY:String = "InvNotReady";
public static const VALUE_ERROR:String = "InvValueError";
private static const CONSUMER_KEY:String = "MochiConsumables";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public function MochiInventory():void{
MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned);
MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems);
MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn);
MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut);
_storeSync = new Object();
_syncPending = false;
_outstandingID = 0;
_syncID = 0;
_timer = new Timer(1000);
_timer.addEventListener(TimerEvent.TIMER, sync);
_timer.start();
if (MochiSocial.loggedIn){
loggedIn();
} else {
loggedOut();
};
}
private function newItems(_arg1:Object):void{
if (!this[(_arg1.id + KEY_SALT)]){
this[(_arg1.id + KEY_SALT)] = 0;
};
if (!this[_arg1.id]){
this[_arg1.id] = 0;
};
this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count);
this[_arg1.id] = (this[_arg1.id] + _arg1.count);
if (_arg1.privateProperties.consumable){
if (!this[_arg1.privateProperties.tag]){
this[_arg1.privateProperties.tag] = 0;
};
this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count));
};
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (-1);
};
if (_consumableProperties[_arg1]){
return (MochiDigits(_consumableProperties[_arg1]).value);
};
return (undefined);
}
public function release():void{
MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems);
MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn);
MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (false);
};
if (_consumableProperties[_arg1] == undefined){
return (false);
};
return (true);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{
return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1));
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{
var _local3:MochiDigits;
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return;
};
if (!(_arg2 is Number)){
triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2});
return;
};
if (_consumableProperties[_arg1]){
_local3 = MochiDigits(_consumableProperties[_arg1]);
if (_local3.value == _arg2){
return;
};
_local3.value = _arg2;
} else {
_names.push(_arg1);
_consumableProperties[_arg1] = new MochiDigits(_arg2);
};
_syncID++;
}
private function sync(_arg1:Event=null):void{
var _local2:Object;
var _local3:String;
if (((_syncPending) || ((_syncID == _outstandingID)))){
return;
};
_outstandingID = _syncID;
_local2 = {};
for (_local3 in _consumableProperties) {
_local2[_local3] = MochiDigits(_consumableProperties[_local3]).value;
};
MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag);
_syncPending = true;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{
return (_names[(_arg1 - 1)]);
}
private function loggedIn(_arg1:Object=null):void{
MochiUserData.get(CONSUMER_KEY, getConsumableBag);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{
if (!_consumableProperties[_arg1]){
return (false);
};
_names.splice(_names.indexOf(_arg1), 1);
delete _consumableProperties[_arg1];
return (true);
}
private function itemOwned(_arg1:Object):void{
_storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count};
}
private function putConsumableBag(_arg1:MochiUserData):void{
_syncPending = false;
if (_arg1.error){
triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error});
_outstandingID = -1;
};
triggerEvent(WRITTEN, {});
}
private function getConsumableBag(_arg1:MochiUserData):void{
var _local2:String;
var _local3:Number;
if (_arg1.error){
triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error});
return;
};
_consumableProperties = {};
_names = new Array();
if (_arg1.data){
for (_local2 in _arg1.data) {
_names.push(_local2);
_consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]);
};
};
for (_local2 in _storeSync) {
_local3 = _storeSync[_local2].count;
if (_consumableProperties[(_local2 + KEY_SALT)]){
_local3 = (_local3 - _consumableProperties[_local2]);
};
if (_local3 == 0){
} else {
newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties});
};
};
triggerEvent(READY, {});
}
private function loggedOut(_arg1:Object=null):void{
_consumableProperties = null;
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
}
}//package mochi.as3
Section 80
//MochiServices (mochi.as3.MochiServices)
package mochi.as3 {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
import flash.net.*;
import flash.system.*;
public class MochiServices {
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _swfVersion:String;
private static var _preserved:Object;
public static var netupAttempted:Boolean = false;
private static var _sendChannel:LocalConnection;
public static var servicesSync:MochiSync = new MochiSync();
private static var _clip:MovieClip;
private static var _id:String;
private static var _services:String = "services.swf";
private static var _servURL:String = "http://www.mochiads.com/static/lib/services/";
public static var widget:Boolean = false;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _loader:Loader;
private static var _connecting:Boolean = false;
private static var _mochiLocalConnection:MovieClip;
private static var _listenChannelName:String = "__ms_";
public static var onError:Object;
public static var netup:Boolean = true;
private static var _mochiLC:String = "MochiLC.swf";
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function get connected():Boolean{
return (_connected);
}
private static function onReceive(_arg1:Object):void{
var cb:String;
var cblst:Object;
var method:*;
var methodName:String;
var obj:Object;
var pkg = _arg1;
cb = pkg.callbackID;
cblst = _clip._callbacks[cb];
if (!cblst){
return;
};
method = cblst.callbackMethod;
methodName = "";
obj = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
} else {
trace((("Error: Method " + method) + " does not exist."));
};
};
if (method != undefined){
try {
method.apply(obj, pkg.args);
} catch(error:Error) {
trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString()));
};
} else {
if (obj != null){
try {
obj(pkg.args);
} catch(error:Error) {
trace(("Error invoking method on object: " + error.toString()));
};
};
};
delete _clip._callbacks[cb];
}
public static function get childClip():Object{
return (_clip);
}
public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{
if (_connected){
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1));
handleError(_arg2, _arg3, _arg4);
flush(true);
return;
};
_clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
};
if (_clip != null){
if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){
_clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4};
_clip._nextcallbackID++;
};
};
}
private static function init(_arg1:String, _arg2:Object):void{
_id = _arg1;
if (_arg2 != null){
_container = _arg2;
loadCommunicator(_arg1, _container);
};
}
private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{
var _local3:Array;
var _local4:int;
var _local5:Array;
var _local6:Array;
var _local7:MovieClip;
var _local8:LocalConnection;
var _local9:String;
var _local10:ByteArray;
var _local11:ByteArray;
var _local12:uint;
var _local13:uint;
var _local14:Loader;
_local3 = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23];
_local5 = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3];
_local6 = [0, 64, 0, 0, 0];
_local7 = new MovieClip();
_local8 = new LocalConnection();
_local9 = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time));
_local8 = new LocalConnection();
_local7.lc = _local8;
_local7.click = _arg2;
_local8.client = _local7;
_local8.connect(_local9);
_local10 = new ByteArray();
_local11 = new ByteArray();
_local11.endian = Endian.LITTLE_ENDIAN;
_local11.writeShort(1);
_local11.writeUTFBytes(((_arg1 + " ") + _local9));
_local11.writeByte(0);
_local12 = ((_local3.length + _local11.length) + 4);
_local13 = (_local12 + 35);
_local10.endian = Endian.LITTLE_ENDIAN;
_local10.writeUTFBytes("FWS");
_local10.writeByte(8);
_local10.writeUnsignedInt(_local13);
for each (_local4 in _local5) {
_local10.writeByte(_local4);
};
_local10.writeUnsignedInt(_local12);
_local10.writeByte(136);
_local10.writeShort(_local11.length);
_local10.writeBytes(_local11);
for each (_local4 in _local3) {
_local10.writeByte(_local4);
};
for each (_local4 in _local6) {
_local10.writeByte(_local4);
};
_local14 = new Loader();
_local14.loadBytes(_local10);
_local7.addChild(_local14);
return (_local7);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{
var vars:Object;
var avm1Click:DisplayObject;
var s:String;
var i:Number;
var x:String;
var req:URLRequest;
var loader:Loader;
var setURL:Function;
var err:Function;
var complete:Function;
var url = _arg1;
var burl = _arg2;
var btn = _arg3;
var onClick = _arg4;
vars = new Object();
vars["mav"] = getVersion();
vars["swfv"] = "9";
vars["swfurl"] = btn.loaderInfo.loaderURL;
vars["fv"] = Capabilities.version;
vars["os"] = Capabilities.os;
vars["lang"] = Capabilities.language;
vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY);
s = "?";
i = 0;
for (x in vars) {
if (i != 0){
s = (s + "&");
};
i = (i + 1);
s = (((s + x) + "=") + escape(vars[x]));
};
req = new URLRequest("http://x.mochiads.com/linkping.swf");
loader = new Loader();
setURL = function (_arg1:String):void{
var _local2:Rectangle;
if (avm1Click){
btn.removeChild(avm1Click);
};
avm1Click = clickMovie(_arg1, onClick);
_local2 = btn.getBounds(btn);
btn.addChild(avm1Click);
avm1Click.x = _local2.x;
avm1Click.y = _local2.y;
avm1Click.scaleX = (0.01 * _local2.width);
avm1Click.scaleY = (0.01 * _local2.height);
};
err = function (_arg1:Object):void{
netup = false;
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
setURL(burl);
};
complete = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
if (netup){
setURL((url + s));
} else {
setURL(burl);
};
if (!((netupAttempted) || (_connected))){
netupAttempted = true;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.load(req);
};
}
public static function warnID(_arg1:String, _arg2:Boolean):void{
var _local3:Number;
_arg1 = _arg1.toLowerCase();
if (_arg1.length != 16){
trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length"));
return;
} else {
if (_arg1 == "1e113c7239048b3f"){
if (_arg2){
trace("WARNING: Using testing board ID");
} else {
trace("WARNING: Using testing board ID as game ID");
};
return;
} else {
if (_arg1 == "84993a1de4031cd8"){
if (_arg2){
trace("WARNING: Using testing game ID as board ID");
} else {
trace("WARNING: Using testing game ID");
};
return;
};
};
};
_local3 = 0;
while (_local3 < _arg1.length) {
switch (_arg1.charAt(_local3)){
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case "a":
case "b":
case "c":
case "d":
case "e":
case "f":
break;
default:
trace(("WARNING: Board ID contains illegal characters: " + _arg1));
return;
};
_local3++;
};
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
try {
_mochiLocalConnection.close();
} catch(error:Error) {
};
};
if (_timer != null){
try {
_timer.stop();
} catch(error:Error) {
};
};
}
public static function allowDomains(_arg1:String):String{
var _local2:String;
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
if (_arg1.indexOf("http://") != -1){
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType != "application"){
Security.allowDomain(_local2);
Security.allowInsecureDomain(_local2);
};
};
return (_local2);
}
public static function getVersion():String{
return ("3.7 as3");
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
}
private static function flush(_arg1:Boolean):void{
var _local2:Object;
var _local3:Object;
if (((_clip) && (_clip._queue))){
while (_clip._queue.length > 0) {
_local2 = _clip._queue.shift();
_local3 = null;
if (_local2 != null){
if (_local2.callbackID != null){
_local3 = _clip._callbacks[_local2.callbackID];
};
delete _clip._callbacks[_local2.callbackID];
if (((_arg1) && (!((_local3 == null))))){
handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod);
};
};
};
};
}
public static function get id():String{
return (_id);
}
private static function onEvent(_arg1:Object):void{
var _local2:String;
var _local3:String;
_local2 = _arg1.target;
_local3 = _arg1.event;
switch (_local2){
case "events":
MochiEvents.triggerEvent(_arg1.event, _arg1.args);
break;
case "coins":
MochiCoins.triggerEvent(_arg1.event, _arg1.args);
break;
case "sync":
servicesSync.triggerEvent(_arg1.event, _arg1.args);
break;
};
}
private static function urlOptions(_arg1:Object):Object{
var _local2:Object;
var _local3:String;
var _local4:Array;
var _local5:Number;
var _local6:Array;
_local2 = {};
if (_arg1.stage){
_local3 = _arg1.stage.loaderInfo.parameters.mochiad_options;
} else {
_local3 = _arg1.loaderInfo.parameters.mochiad_options;
};
if (_local3){
_local4 = _local3.split("&");
_local5 = 0;
while (_local5 < _local4.length) {
_local6 = _local4[_local5].split("=");
_local2[unescape(_local6[0])] = unescape(_local6[1]);
_local5++;
};
};
return (_local2);
}
public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{
if (_arg1 != null){
if ((_arg1 is Sprite)){
_container = _arg1;
};
};
if (_arg2){
if ((_container is Sprite)){
Sprite(_container).addChild(_clip);
};
};
}
private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{
var args = _arg1;
var callbackObject = _arg2;
var callbackMethod = _arg3;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
if (((!((args.options == null))) && (!((args.options.onError == null))))){
args.options.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
try {
var _local5 = callbackObject;
_local5[callbackMethod](args);
} catch(error:Error) {
};
} else {
if (callbackMethod != null){
try {
callbackMethod.apply(args);
} catch(error:Error) {
};
};
};
};
}
private static function loadError(_arg1:Object):void{
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
}
private static function initComChannels():void{
if (!_connected){
trace("[SERVICES_API] connected!");
_connecting = false;
_connected = true;
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL});
_clip.onReceive = onReceive;
_clip.onEvent = onEvent;
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
while (_clip._queue.length > 0) {
_mochiLocalConnection.send(_sendChannelName, "onReceive", _clip._queue.shift());
};
};
}
private static function loadLCBridge(_arg1:Object):void{
var loader:Loader;
var mochiLCURL:String;
var req:URLRequest;
var complete:Function;
var clip = _arg1;
loader = new Loader();
mochiLCURL = (_servURL + _mochiLC);
req = new URLRequest(mochiLCURL);
complete = function (_arg1:Object):void{
_mochiLocalConnection = MovieClip(loader.content);
listen();
};
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
loader.load(req);
clip.addChild(loader);
}
private static function listen():void{
_mochiLocalConnection.connect(_listenChannelName);
_clip.handshake = function (_arg1:Object):void{
MochiServices.comChannelName = _arg1.newChannel;
};
trace("Waiting for MochiAds services to connect...");
}
public static function get clip():Object{
return (_container);
}
public static function set comChannelName(_arg1:String):void{
if (_arg1 != null){
if (_arg1.length > 3){
_sendChannelName = (_arg1 + "_fromgame");
initComChannels();
};
};
}
private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{
var _local3:String;
var _local4:String;
var _local5:URLRequest;
var _local6:URLVariables;
_local3 = ("_mochiservices_com_" + _arg1);
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
if (urlOptions(_arg2).servURL){
_servURL = urlOptions(_arg2).servURL;
};
_local4 = (_servURL + _services);
if (urlOptions(_arg2).servicesURL){
_local4 = urlOptions(_arg2).servicesURL;
};
_listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999))));
MochiServices.allowDomains(_local4);
_clip = createEmptyMovieClip(_arg2, _local3, 10336, false);
loadLCBridge(_clip);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
_local5 = new URLRequest(_local4);
_local6 = new URLVariables();
_local6.listenLC = _listenChannelName;
_local6.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options;
_local6.api_version = getVersion();
if (widget){
_local6.widget = true;
};
_local5.data = _local6;
_loader.load(_local5);
_clip.addChild(_loader);
_clip._mochiservices_com = _loader;
_sendChannel = new LocalConnection();
_clip._queue = [];
_clip._nextcallbackID = 0;
_clip._callbacks = {};
_timer = new Timer(10000, 1);
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
return (_clip);
}
public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{
var id = _arg1;
var clip = _arg2;
var onError = _arg3;
warnID(id, false);
if ((clip is DisplayObject)){
if (clip.stage == null){
trace("MochiServices connect requires the containing clip be attached to the stage");
};
if (((!(_connected)) && ((_clip == null)))){
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
};
} else {
trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (_arg1:String):void{
trace(_arg1);
};
};
};
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{
var mc:MovieClip;
var parent = _arg1;
var name = _arg2;
var depth = _arg3;
var doAdd = _arg4;
mc = new MovieClip();
if (doAdd){
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
};
try {
parent[name] = mc;
} catch(e:Error) {
throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
mc["_name"] = name;
return (mc);
}
public static function bringToTop(_arg1:Event=null):void{
var e = _arg1;
if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){
try {
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
} catch(errorObject:Error) {
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
}
public static function connectWait(_arg1:TimerEvent):void{
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load. (timeout)");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
}
}
}//package mochi.as3
Section 81
//MochiSocial (mochi.as3.MochiSocial)
package mochi.as3 {
public class MochiSocial {
public static const LOGGED_IN:String = "LoggedIn";
public static const PROFILE_HIDE:String = "ProfileHide";
public static const NO_USER:String = "NoUser";
public static const PROPERTIES_SIZE:String = "PropertiesSize";
public static const IO_ERROR:String = "IOError";
public static const PROPERTIES_SAVED:String = "PropertySaved";
public static const WIDGET_LOADED:String = "WidgetLoaded";
public static const USER_INFO:String = "UserInfo";
public static const ERROR:String = "Error";
public static const LOGIN_SHOW:String = "LoginShow";
public static const LOGGED_OUT:String = "LoggedOut";
public static const PROFILE_SHOW:String = "ProfileShow";
public static const LOGIN_SHOWN:String = "LoginShown";
public static const LOGIN_HIDE:String = "LoginHide";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public static var _user_info:Object = null;
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function saveUserProperties(_arg1:Object):void{
MochiServices.send("coins_saveUserProperties", _arg1);
}
public static function get loggedIn():Boolean{
return (!((_user_info == null)));
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
public static function getUserInfo():void{
MochiServices.send("coins_getUserInfo");
}
public static function showLoginWidget(_arg1:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("coins_showLoginWidget", {options:_arg1});
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function requestLogin():void{
MochiServices.send("coins_requestLogin");
}
public static function getAPIURL():String{
if (!_user_info){
return (null);
};
return (_user_info.api_url);
}
public static function hideLoginWidget():void{
MochiServices.send("coins_hideLoginWidget");
}
public static function getAPIToken():String{
if (!_user_info){
return (null);
};
return (_user_info.api_token);
}
MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{
_user_info = _arg1;
});
MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{
_user_info = null;
});
}
}//package mochi.as3
Section 82
//MochiSync (mochi.as3.MochiSync)
package mochi.as3 {
import flash.utils.*;
public dynamic class MochiSync extends Proxy {
private var _syncContainer:Object;
public static var SYNC_PROPERTY:String = "UpdateProperty";
public static var SYNC_REQUEST:String = "SyncRequest";
public function MochiSync():void{
_syncContainer = {};
}
public function triggerEvent(_arg1:String, _arg2:Object):void{
switch (_arg1){
case SYNC_REQUEST:
MochiServices.send("sync_syncronize", _syncContainer);
break;
case SYNC_PROPERTY:
_syncContainer[_arg2.name] = _arg2.value;
break;
};
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
return (_syncContainer[_arg1]);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{
var _local3:String;
if (_syncContainer[_arg1] == _arg2){
return;
};
_local3 = _arg1.toString();
_syncContainer[_local3] = _arg2;
MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2});
}
}
}//package mochi.as3
Section 83
//MochiUserData (mochi.as3.MochiUserData)
package mochi.as3 {
import flash.events.*;
import flash.utils.*;
import flash.net.*;
public class MochiUserData extends EventDispatcher {
public var callback:Function;// = null
public var error:Event;// = null
public var key:String;// = null
public var operation:String;// = null
public var data;// = null
public var _loader:URLLoader;
public function MochiUserData(_arg1:String="", _arg2:Function=null){
key = null;
data = null;
error = null;
operation = null;
callback = null;
super();
this.key = _arg1;
this.callback = _arg2;
}
public function securityErrorHandler(_arg1:SecurityErrorEvent):void{
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString())));
}
public function putEvent(_arg1):void{
request("put", serialize(_arg1));
}
public function request(_arg1:String, _arg2:ByteArray):void{
var api_url:String;
var api_token:String;
var args:URLVariables;
var req:URLRequest;
var _operation = _arg1;
var _data = _arg2;
operation = _operation;
api_url = MochiSocial.getAPIURL();
api_token = MochiSocial.getAPIToken();
if ((((api_url == null)) || ((api_token == null)))){
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in"));
return;
};
_loader = new URLLoader();
args = new URLVariables();
args.op = _operation;
args.key = key;
req = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString()));
req.method = URLRequestMethod.POST;
req.contentType = "application/x-mochi-userdata";
req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)];
req.data = _data;
_loader.dataFormat = URLLoaderDataFormat.BINARY;
_loader.addEventListener(Event.COMPLETE, completeHandler);
_loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
try {
_loader.load(req);
} catch(e:SecurityError) {
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString())));
};
}
public function completeHandler(_arg1:Event):void{
var event = _arg1;
try {
if (_loader.data.length){
data = deserialize(_loader.data);
} else {
data = null;
};
} catch(e:Error) {
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString())));
return;
};
if (callback != null){
performCallback();
} else {
dispatchEvent(event);
};
close();
}
public function performCallback():void{
try {
callback(this);
} catch(e:Error) {
trace(("[MochiUserData] exception during callback: " + e));
};
}
public function serialize(_arg1):ByteArray{
var _local2:ByteArray;
_local2 = new ByteArray();
_local2.objectEncoding = ObjectEncoding.AMF3;
_local2.writeObject(_arg1);
_local2.compress();
return (_local2);
}
public function errorHandler(_arg1:IOErrorEvent):void{
data = null;
error = _arg1;
if (callback != null){
performCallback();
} else {
dispatchEvent(_arg1);
};
close();
}
public function getEvent():void{
request("get", serialize(null));
}
override public function toString():String{
return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]"));
}
public function close():void{
if (_loader){
_loader.removeEventListener(Event.COMPLETE, completeHandler);
_loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_loader.close();
_loader = null;
};
error = null;
callback = null;
}
public function deserialize(_arg1:ByteArray){
_arg1.objectEncoding = ObjectEncoding.AMF3;
_arg1.uncompress();
return (_arg1.readObject());
}
public static function get(_arg1:String, _arg2:Function):void{
var _local3:MochiUserData;
_local3 = new MochiUserData(_arg1, _arg2);
_local3.getEvent();
}
public static function put(_arg1:String, _arg2, _arg3:Function):void{
var _local4:MochiUserData;
_local4 = new MochiUserData(_arg1, _arg3);
_local4.putEvent(_arg2);
}
}
}//package mochi.as3
Section 84
//music1 (music1)
package {
import flash.media.*;
public dynamic class music1 extends Sound {
}
}//package
Section 85
//music2 (music2)
package {
import flash.media.*;
public dynamic class music2 extends Sound {
}
}//package
Section 86
//snd_alarm (snd_alarm)
package {
import flash.media.*;
public dynamic class snd_alarm extends Sound {
}
}//package
Section 87
//snd_bonus1 (snd_bonus1)
package {
import flash.media.*;
public dynamic class snd_bonus1 extends Sound {
}
}//package
Section 88
//snd_bonus2 (snd_bonus2)
package {
import flash.media.*;
public dynamic class snd_bonus2 extends Sound {
}
}//package
Section 89
//snd_bonus3 (snd_bonus3)
package {
import flash.media.*;
public dynamic class snd_bonus3 extends Sound {
}
}//package
Section 90
//snd_boss_beat1 (snd_boss_beat1)
package {
import flash.media.*;
public dynamic class snd_boss_beat1 extends Sound {
}
}//package
Section 91
//snd_boss_beat2 (snd_boss_beat2)
package {
import flash.media.*;
public dynamic class snd_boss_beat2 extends Sound {
}
}//package
Section 92
//snd_boss_beat3 (snd_boss_beat3)
package {
import flash.media.*;
public dynamic class snd_boss_beat3 extends Sound {
}
}//package
Section 93
//snd_chain (snd_chain)
package {
import flash.media.*;
public dynamic class snd_chain extends Sound {
}
}//package
Section 94
//snd_death (snd_death)
package {
import flash.media.*;
public dynamic class snd_death extends Sound {
}
}//package
Section 95
//snd_drop (snd_drop)
package {
import flash.media.*;
public dynamic class snd_drop extends Sound {
}
}//package
Section 96
//snd_exp1 (snd_exp1)
package {
import flash.media.*;
public dynamic class snd_exp1 extends Sound {
}
}//package
Section 97
//snd_exp2 (snd_exp2)
package {
import flash.media.*;
public dynamic class snd_exp2 extends Sound {
}
}//package
Section 98
//snd_exp3 (snd_exp3)
package {
import flash.media.*;
public dynamic class snd_exp3 extends Sound {
}
}//package
Section 99
//snd_gameover (snd_gameover)
package {
import flash.media.*;
public dynamic class snd_gameover extends Sound {
}
}//package
Section 100
//snd_levcompl (snd_levcompl)
package {
import flash.media.*;
public dynamic class snd_levcompl extends Sound {
}
}//package
Section 101
//snd_Menu1 (snd_Menu1)
package {
import flash.media.*;
public dynamic class snd_Menu1 extends Sound {
}
}//package
Section 102
//snd_Menu2 (snd_Menu2)
package {
import flash.media.*;
public dynamic class snd_Menu2 extends Sound {
}
}//package
Section 103
//snd_proj1 (snd_proj1)
package {
import flash.media.*;
public dynamic class snd_proj1 extends Sound {
}
}//package
Section 104
//snd_score (snd_score)
package {
import flash.media.*;
public dynamic class snd_score extends Sound {
}
}//package