STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228109
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/57511304?noj=FRM57511304-8DC" width="1" height="1"></div>

The Last Canopy.swf

This is the info page for
Flash #47599

(Click the ID number above for more basic data on this flash file.)


Text
SCANNERS

DO NOT move or shoot
while you're being
scanned, or reinforcements
will be called!
You can still absorb, but
remember to stay still!

!

That... was... quite a fight,
young... one.

I... shall... let you... pass.

Go... and bring... her
back... to her mother...

So you think you got
what it takes?

Well, I've got what you got!

Looks like I'll be borrowing
her powers for awhile!

Hope you enjoy being
killed by your own kind!

You... you brought down
my entire fleet?!

BAH! You nature fairies,
nothing but trouble!

If it wasn't for you all, I
would've cut down that
tree long ago.

I've had enough of
your nuisance!

I wonder if nature fairies
can die? Let's find out!

STOP!

I saw you take down the
whole Wind Basin fleet!

Why are you meddling
in useless human affairs?!

What? To save that bird?

We fairies no longer have
the right to interfere with
this polluted world.

I admire your courage,
but I have no choice but
to stop you here.

Show me that the bird is
worth it, and maybe I'll let
you slip by.

Have a taste of my
absorbed powers,
young one!

WARNING!

ONE-OF-A-KIND ENTITY
APPROACHING!

TUTORIAL

SPACEBAR

: NEXT PAGE

Welcome to
The Last Canopy tutorial!
You may press the K
button at any time to skip
this tutorial.

This is you. Use the
mouse or the arrow keys
to move.

OR

TO MOVE

This is your enemy. It
wants to kill you.

Watch out for its bullets!
Avoid them. If your body
(not including the wings)
touches even one bullet,
you lose a life. If your life
reaches zero, game over!

To destroy the enemy,
shoot it with the Z button.
Try to shoot this guy.

Z

HOLD

TO SHOOT

Very good! But that's not
all you can do.

Here's another enemy. It's
a little tougher, coz it
takes more bullets to
shoot this one down.

Unless you copy its
attacks! Hold the X button
to shoot out the absorb
beam. Stay on it until you
draw out its power.

X

TO ABSORB

Good job! Now one of
your 5 spheres has been
upgraded with the
enemy's attack power!

USELESS
SPHERE

UPGRADED
SPHERE

Now shoot the enemy
with its own attack!
Again, press the Z button
to shoot.

How's that for sweet
revenge?!
And you can absorb as
much as to upgrade all
your 5 spheres, from
different enemies or even
the same enemy!

Tougher enemies take
longer to absorb, but you
can move while the
absorb beam stays on
them. You can't shoot
while absorbing though.

Bad news is that power
doesn't last forever. With
time, it will reset back to
its useless grey form.

HALF
TIME

1/4
TIME

POWER
GONE

The idea is to upgrade
your spheres often so that
you constantly have great
firepower.
If you absorb the 6th one,
it will replace the sphere
with the least time left.

And that ends the tutorial.
All the best!

K

: SKIP

BOSS

<p align="center"><font face="Palatino Linotype" size="14" color="#333333" letterSpacing="0.000000" kerning="1"><b>LOADING THE LAST CANOPY...</b></font></p>

TUTORIAL

HOW TO PLAY

THE LAST

CANOP

Y

CLICK HERE TO START

ON

Up / Down

Z

Select Difficulty

"I want to save this bird..."

"...I think I can do it."

"...by any means necessary."

"...at the cost of my life!"

"...but I'm scared of heights."

HARD

NORMAL

YOU'RE NUTS!

99 LIVES

<p align="left"></p>

MOVE

Z

SHOOT

X

ABSORB ATTACK

UP TO FIVE!

P

PAUSE / UNPAUSE

Q

TWICE TO QUIT

SCORE

<p align="left"><font face="Palatino Linotype" size="30" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>00000000</b></font></p>

<p align="left"><font face="Palatino Linotype" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>TIME BONUS +500</b></font></p>

<p align="left"><font face="Palatino Linotype" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>TIME BONUS +500</b></font></p>

<p align="left"><font face="Palatino Linotype" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>TIME BONUS +500</b></font></p>

<p align="left"><font face="Palatino Linotype" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>TIME BONUS +500</b></font></p>

<p align="left"><font face="Palatino Linotype" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>TIME BONUS +500</b></font></p>

HOLD

LIFE

<p align="left"><font face="Palatino Linotype" size="30" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>15</b></font></p>

U

<p align="left"><font face="Palatino Linotype" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>QUALITY : HIGH</b></font></p>

I

<p align="left"><font face="Palatino Linotype" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>PARTICLES : ON</b></font></p>

THE LAST

CANOPY

GAME OVER.

<p align="left"><font face="Palatino Linotype" size="14" color="#666666" letterSpacing="0.000000" kerning="1"><b>Your score is 00000000. Please try again!</b></font></p>

TIPS FOR SURVIVAL
+  Absorb as much as you can to defeat the enemies faster.
+  Use the glowing balls to shoot the enemies while you maintain a safe distance.
+  When the boss attacks, there's always at least one safe spot for the whole attack turn.
+  Most enemies shoot downwards, so stay up there if you have to (but you can't kill them for score).
+  Some absorbed powers are better than others. If enemies are abundant, choose wisely.
+  When the boss chatters away, absorb its power!
+  Choose an easier mode. If you were in 99 Lives Mode, all the best to you :)

BACK TO MAIN MENU

SUBMIT SCORE

YOU SAVED THE BIRD.

<p align="left"><font face="Palatino Linotype" size="14" color="#666666" letterSpacing="0.000000" kerning="1"><b>Your score is 00000000. Congratulations!</b></font></p>

TIPS FOR SCORING
+  Enemies at higher difficulty give you higher score.
+  The faster you kill each enemy/boss, the higher TIME BONUS you get.
+  Destroying the same type of enemy in a row will yield an escalating COMBO score.
+  You can avoid enemies to survive, but you won't be able to destroy them for score.

PRESS ANY KEY

ActionScript [AS3]

Section 1
//Bullet (classes.Bullet) package classes { import flash.display.*; import flash.events.*; public class Bullet extends MovieClip { public var BULLETMOVE_FASTER:int;// = 2 public var origWidth:Number; public var PARTICLE_DAMAGESMOKE:int;// = 2 public var STATE_REMOVE:int;// = 3 public var gameMC:MovieClip; public var PARTICLE_LINE:int;// = 3 public var currRotationRadian:Number; public var currSpeed:Number; public var currRotationDegrees:Number; public var speedModifier:Number; public var PARTICLE_SMOKE:int;// = 1 public var stopTimer:int; public var particleSystem:int; public var damage:int; public var currState:int; public var posX:Number; public var posY:Number; public var STATE_DIE:int;// = 2 public var isHoming:Boolean; public var isRotating:Boolean; public var BULLETMOVE_CONSISTENT:int;// = 1 public var removeNow:Boolean; public var isYours:Boolean; public var sprite:Sprite; public var homingTimer:int; public var origHeight:Number; public var bulletMovement:int; public var incRotate:Number; public var STATE_MOVE:int;// = 1 public var targetMC:MovieClip; public var BULLETMOVE_STOP:int;// = 3 public function Bullet(_arg1:Class, _arg2:int, _arg3:int, _arg4:int, _arg5:Number, _arg6:Boolean, _arg7:Boolean, _arg8:Number, _arg9:int, _arg10:Boolean, _arg11:int, _arg12:MovieClip, _arg13:int, _arg14:Number){ var _local15:int; STATE_MOVE = 1; STATE_DIE = 2; STATE_REMOVE = 3; PARTICLE_SMOKE = 1; PARTICLE_DAMAGESMOKE = 2; PARTICLE_LINE = 3; BULLETMOVE_CONSISTENT = 1; BULLETMOVE_FASTER = 2; BULLETMOVE_STOP = 3; super(); this.posX = _arg2; this.posY = _arg3; this.x = _arg2; this.y = _arg3; this.isYours = _arg10; this.damage = _arg11; this.isHoming = _arg6; this.isRotating = _arg7; this.incRotate = ((this.incRotate / 2) + ((Math.random() * this.incRotate) / 2)); this.incRotate = ((_arg8 * Math.PI) / 180); if (this.isHoming){ this.incRotate = Math.abs(this.incRotate); }; this.particleSystem = _arg9; sprite = new (_arg1); this.addChild(sprite); this.currRotationRadian = ((_arg4 * Math.PI) / 180); this.currRotationDegrees = ((this.currRotationRadian * 180) / Math.PI); this.rotation = this.currRotationDegrees; this.currSpeed = _arg5; if (_arg13 != BULLETMOVE_STOP){ this.currSpeed = (this.currSpeed + 2); }; this.gameMC = _arg12; this.gameMC.gameEngine.bulletLayer.addChild(this); this.homingTimer = 0; this.origWidth = this.width; this.origHeight = this.height; this.removeNow = false; this.currState = this.STATE_MOVE; if (this.isYours){ _local15 = Math.round((Math.random() * (this.gameMC.gameEngine.enemyArray.length - 1))); this.targetMC = this.gameMC.gameEngine.enemyArray[_local15]; } else { this.targetMC = this.gameMC.gameEngine.yourShip; }; this.addParticleGenerator(this.particleSystem, (0 - (sprite.width / 4)), 0, true, true); this.stopTimer = 0; this.bulletMovement = _arg13; this.speedModifier = _arg14; } public function addParticleGenerator(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean){ var _local6:Array; _local6 = this.gameMC.gameEngine.particleGeneratorArray; switch (_arg1){ case this.PARTICLE_SMOKE: _local6.push(new ParticleGeneratorSmoke(_arg2, _arg3, this.sprite, _arg4, _arg5, this.gameMC)); break; case this.PARTICLE_DAMAGESMOKE: _local6.push(new ParticleGeneratorDamageSmoke(_arg2, _arg3, this.sprite, _arg4, _arg5, this.gameMC)); break; case this.PARTICLE_LINE: _local6.push(new ParticleGeneratorLine(_arg2, _arg3, this.sprite, _arg4, _arg5, this.gameMC)); break; }; } public function specialrender(){ } public function render(){ var _local1:Number; var _local2:Number; switch (this.bulletMovement){ case BULLETMOVE_CONSISTENT: break; case BULLETMOVE_FASTER: this.currSpeed = (this.currSpeed * this.speedModifier); break; case BULLETMOVE_STOP: this.stopTimer++; if (this.stopTimer > 100){ if (this.currSpeed < 1){ this.currSpeed = 1; }; this.currSpeed = (this.currSpeed * this.speedModifier); } else { if (this.stopTimer > 20){ this.currSpeed = (this.currSpeed + ((0 - this.currSpeed) * 0.2)); }; }; break; }; switch (this.currState){ case this.STATE_MOVE: if (isHoming){ if (this.homingTimer < 60){ if (this.targetMC == null){ this.homingTimer = 9999; } else { _local1 = Math.atan2((this.targetMC.y - this.y), (this.targetMC.x - this.x)); _local2 = (_local1 - this.currRotationRadian); if (Math.abs(_local2) > Math.PI){ if (_local1 > Math.PI){ _local1 = (_local1 - (2 * Math.PI)); } else { _local1 = (_local1 + (2 * Math.PI)); }; _local2 = (_local1 - this.currRotationRadian); }; if (this.incRotate > Math.abs(_local2)){ this.currRotationRadian = _local1; } else { if (_local1 > this.currRotationRadian){ this.currRotationRadian = (this.currRotationRadian + this.incRotate); } else { this.currRotationRadian = (this.currRotationRadian - this.incRotate); }; if (this.currRotationRadian > (2 * Math.PI)){ this.currRotationRadian = (this.currRotationRadian - (2 * Math.PI)); } else { if (this.currRotationRadian < 0){ this.currRotationRadian = (this.currRotationRadian + (2 * Math.PI)); }; }; }; this.rotation = ((this.currRotationRadian * 180) / Math.PI); this.homingTimer++; }; }; } else { if (isRotating){ this.currRotationRadian = (this.currRotationRadian + this.incRotate); this.rotation = ((this.currRotationRadian * 180) / Math.PI); }; }; this.posX = (this.posX + (this.currSpeed * Math.cos(this.currRotationRadian))); this.posY = (this.posY + (this.currSpeed * Math.sin(this.currRotationRadian))); this.x = Math.round(this.posX); this.y = Math.round(this.posY); break; case this.STATE_DIE: if ((this.scaleX - 0.2) < 0){ this.scaleX = 0; this.scaleY = this.scaleX; this.currState = this.STATE_REMOVE; } else { this.scaleX = (this.scaleX - 0.2); this.scaleY = this.scaleX; }; break; case this.STATE_REMOVE: break; }; } } }//package classes
Section 2
//BulletGenerator (classes.BulletGenerator) package classes { import flash.display.*; import flash.events.*; import flash.media.*; public class BulletGenerator { public var offsetAngle:int; public var gameMC:MovieClip; public var ownerMC:MovieClip; public var isYours:Boolean; public var bulletSoundChannel:SoundChannel; public var maxTick:int; public var isRotating:Boolean; public var offsetX:int; public var isHoming:Boolean; public var offsetY:int; public var bulletSound:Sound; public var speedModifier:Number; public var particleSystem:int; public var bulletMovement:int; public var incRotate:Number; public var shootTick:int; public var bulletSpeed:int; public var targetShip:CharShip; public var BULLETMOVE_STOP:int;// = 3 public var damage:int; public var BULLETMOVE_FASTER:int;// = 2 public var currTick:int; public var bulletArray:Array; public var BulletClass:Class; public var BULLETMOVE_CONSISTENT:int;// = 1 public function BulletGenerator(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean, _arg6:Number, _arg7:int, _arg8:int, _arg9:int, _arg10:Boolean, _arg11:int, _arg12:Class, _arg13:MovieClip, _arg14:int, _arg15:Number){ BULLETMOVE_CONSISTENT = 1; BULLETMOVE_FASTER = 2; BULLETMOVE_STOP = 3; super(); this.gameMC = _arg13.gameMC; this.bulletSpeed = _arg3; if (_arg10){ this.shootTick = _arg1; this.maxTick = _arg2; } else { this.shootTick = Math.ceil((_arg1 / 2)); this.maxTick = Math.ceil((_arg2 / 2)); }; this.currTick = 0; this.BulletClass = _arg12; this.ownerMC = _arg13; this.bulletArray = new Array(); this.bulletMovement = _arg14; this.speedModifier = _arg15; this.offsetAngle = 0; this.isYours = _arg10; this.damage = _arg11; this.offsetX = _arg8; this.offsetY = _arg9; this.isHoming = _arg4; this.isRotating = _arg5; this.incRotate = _arg6; this.particleSystem = _arg7; if (this.isYours){ } else { bulletSound = new sndEnemyFire(); }; } public function render(){ var _local1:*; this.currTick++; if (this.currTick == this.shootTick){ generateBulletPattern(); if (this.gameMC.jukebox.isMute == false){ if (this.isYours){ } else { bulletSoundChannel = bulletSound.play(0, 0, new SoundTransform(0.5, 0)); }; }; }; if (this.currTick >= this.maxTick){ this.currTick = -1; }; _local1 = 0; while (_local1 < this.bulletArray.length) { bulletArray[_local1].render(); _local1++; }; } public function generateBulletPattern(){ } public function generateBullet(_arg1:int, _arg2:int, _arg3:int, _arg4:int){ var _local5:Bullet; _local5 = new Bullet(this.BulletClass, _arg1, _arg2, _arg3, _arg4, this.isHoming, this.isRotating, this.incRotate, this.particleSystem, this.isYours, this.damage, this.ownerMC.gameMC, this.bulletMovement, this.speedModifier); this.gameMC.gameEngine.addBullet(_local5); } } }//package classes
Section 3
//BulletGeneratorAngle (classes.BulletGeneratorAngle) package classes { import flash.display.*; import flash.events.*; import flash.geom.*; public class BulletGeneratorAngle extends BulletGenerator { public var incAngle:int; public var numBullets:int; public function BulletGeneratorAngle(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean, _arg6:Number, _arg7:int, _arg8:int, _arg9:int, _arg10:Boolean, _arg11:int, _arg12:Class, _arg13:MovieClip, _arg14:int, _arg15:Number, _arg16:int, _arg17:int, _arg18:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15); this.numBullets = _arg16; this.incAngle = _arg17; this.offsetAngle = _arg18; } override public function generateBulletPattern(){ var _local1:Number; var _local2:int; var _local3:Number; var _local4:Point; var _local5:Point; var _local6:Number; _local1 = 0; if ((this.numBullets % 2) == 0){ _local1 = (_local1 + (this.incAngle / 2)); _local2 = 0; while (_local2 < ((this.numBullets - 2) / 2)) { _local1 = (_local1 + this.incAngle); _local2++; }; } else { _local2 = 0; while (_local2 < ((this.numBullets - 1) / 2)) { _local1 = (_local1 + this.incAngle); _local2++; }; }; _local3 = (this.offsetAngle - _local1); if (this.ownerMC.followEnemy){ this.targetShip = this.gameMC.gameEngine.yourShip; _local6 = Math.atan2((this.targetShip.y - this.ownerMC.y), (this.targetShip.x - this.ownerMC.x)); _local6 = ((_local6 * 180) / Math.PI); _local3 = (_local3 + (_local6 - 90)); }; _local4 = new Point(this.offsetX, this.offsetY); _local5 = this.ownerMC.localToGlobal(_local4); this.ownerMC.localToGlobal(_local4).x = (_local5.x + this.gameMC.x); _local5.y = (_local5.y + this.gameMC.y); _local2 = 0; while (_local2 < this.numBullets) { generateBullet(_local5.x, _local5.y, _local3, this.bulletSpeed); _local3 = (_local3 + this.incAngle); _local2++; }; } public function cloneMe():BulletGeneratorAngle{ var _local1:BulletGeneratorAngle; _local1 = new BulletGeneratorAngle(this.shootTick, this.maxTick, this.bulletSpeed, this.isHoming, this.isRotating, this.incRotate, this.particleSystem, this.offsetX, this.offsetY, this.isYours, this.damage, this.BulletClass, this.ownerMC, this.bulletMovement, this.speedModifier, this.numBullets, this.incAngle, this.offsetAngle); _local1.targetShip = this.targetShip; _local1.offsetAngle = this.offsetAngle; return (_local1); } } }//package classes
Section 4
//BulletGeneratorCircular (classes.BulletGeneratorCircular) package classes { import flash.display.*; import flash.geom.*; public class BulletGeneratorCircular extends BulletGenerator { public var numBullets:int; public function BulletGeneratorCircular(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean, _arg6:Number, _arg7:int, _arg8:int, _arg9:int, _arg10:Boolean, _arg11:int, _arg12:Class, _arg13:MovieClip, _arg14:int, _arg15:Number, _arg16:int, _arg17:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15); this.numBullets = _arg16; this.offsetAngle = _arg17; } override public function generateBulletPattern(){ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Point; var _local7:Point; var _local8:*; _local1 = (360 / this.numBullets); _local2 = this.offsetAngle; _local6 = new Point(this.offsetX, this.offsetY); _local7 = this.ownerMC.localToGlobal(_local6); this.ownerMC.localToGlobal(_local6).x = (_local7.x + this.gameMC.x); _local7.y = (_local7.y + this.gameMC.y); _local8 = 0; while (_local8 < this.numBullets) { _local5 = ((_local2 * Math.PI) / 180); _local3 = (50 * Math.cos(_local5)); _local4 = (50 * Math.sin(_local5)); generateBullet((_local7.x + _local3), (_local7.y + _local4), _local2, this.bulletSpeed); _local2 = (_local2 + _local1); _local8++; }; } public function cloneMe():BulletGeneratorCircular{ var _local1:BulletGeneratorCircular; _local1 = new BulletGeneratorCircular(this.shootTick, this.maxTick, this.bulletSpeed, this.isHoming, this.isRotating, this.incRotate, this.particleSystem, this.offsetX, this.offsetY, this.isYours, this.damage, this.BulletClass, this.ownerMC, this.bulletMovement, this.speedModifier, this.numBullets, this.offsetAngle); _local1.targetShip = this.targetShip; _local1.offsetAngle = this.offsetAngle; return (_local1); } } }//package classes
Section 5
//BulletGeneratorRandom (classes.BulletGeneratorRandom) package classes { import flash.display.*; import flash.events.*; import flash.geom.*; public class BulletGeneratorRandom extends BulletGenerator { public var minAngle:int; public var numBullets:int; public var maxAngle:int; public function BulletGeneratorRandom(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean, _arg6:Number, _arg7:int, _arg8:int, _arg9:int, _arg10:Boolean, _arg11:int, _arg12:Class, _arg13:MovieClip, _arg14:int, _arg15:Number, _arg16:int, _arg17:int, _arg18:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15); this.numBullets = _arg16; this.minAngle = _arg17; this.maxAngle = _arg18; } function randRange(_arg1:Number, _arg2:Number){ var _local3:Number; _local3 = ((Math.random() * (_arg2 - _arg1)) + _arg1); return (_local3); } override public function generateBulletPattern(){ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:Number; var _local8:Point; var _local9:Point; _local2 = this.minAngle; _local3 = this.maxAngle; if (this.ownerMC.followEnemy){ _local4 = (90 - _local2); _local5 = (_local3 - _local2); this.targetShip = this.gameMC.gameEngine.yourShip; _local7 = Math.atan2((this.targetShip.y - this.ownerMC.y), (this.targetShip.x - this.ownerMC.x)); _local7 = ((_local7 * 180) / Math.PI); _local6 = _local7; _local2 = (_local6 - _local4); _local3 = (_local2 + _local5); }; _local8 = new Point(this.offsetX, this.offsetY); _local9 = this.ownerMC.localToGlobal(_local8); this.ownerMC.localToGlobal(_local8).x = (_local9.x + this.gameMC.x); _local9.y = (_local9.y + this.gameMC.y); _local1 = 0; while (_local1 < this.numBullets) { generateBullet(_local9.x, _local9.y, randRange(_local2, _local3), this.bulletSpeed); _local1++; }; } public function cloneMe():BulletGeneratorRandom{ var _local1:BulletGeneratorRandom; _local1 = new BulletGeneratorRandom(this.shootTick, this.maxTick, this.bulletSpeed, this.isHoming, this.isRotating, this.incRotate, this.particleSystem, this.offsetX, this.offsetY, this.isYours, this.damage, this.BulletClass, this.ownerMC, this.bulletMovement, this.speedModifier, this.numBullets, this.minAngle, this.maxAngle); _local1.targetShip = this.targetShip; _local1.offsetAngle = this.offsetAngle; return (_local1); } } }//package classes
Section 6
//BulletGeneratorRotate (classes.BulletGeneratorRotate) package classes { import flash.display.*; import flash.geom.*; public class BulletGeneratorRotate extends BulletGenerator { public var incAngle:int; public var currAngle:int; public function BulletGeneratorRotate(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean, _arg6:Number, _arg7:int, _arg8:int, _arg9:int, _arg10:Boolean, _arg11:int, _arg12:Class, _arg13:MovieClip, _arg14:int, _arg15:Number, _arg16:int, _arg17:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15); this.incAngle = _arg16; this.currAngle = _arg17; } override public function generateBulletPattern(){ var _local1:Point; var _local2:Point; currAngle = (currAngle + incAngle); if (currAngle > 360){ currAngle = (currAngle - 360); }; _local1 = new Point(this.offsetX, this.offsetY); _local2 = this.ownerMC.localToGlobal(_local1); _local2.x = (_local2.x + this.gameMC.x); _local2.y = (_local2.y + this.gameMC.y); generateBullet(_local2.x, _local2.y, currAngle, this.bulletSpeed); } public function cloneMe():BulletGeneratorRotate{ var _local1:BulletGeneratorRotate; _local1 = new BulletGeneratorRotate(this.shootTick, this.maxTick, this.bulletSpeed, this.isHoming, this.isRotating, this.incRotate, this.particleSystem, this.offsetX, this.offsetY, this.isYours, this.damage, this.BulletClass, this.ownerMC, this.bulletMovement, this.speedModifier, this.incAngle, this.offsetAngle); _local1.targetShip = this.targetShip; _local1.offsetAngle = this.offsetAngle; return (_local1); } } }//package classes
Section 7
//CharShip (classes.CharShip) package classes { import flash.display.*; import flash.events.*; import flash.media.*; import flash.geom.*; import flash.ui.*; public class CharShip extends MovieClip { public var origWidth:Number; public var absorbTimer:int; public var dyAbsorb:int; public var posXArray:Array; public var isMovingLeft:Boolean; public var followEnemy:Boolean; public var absorbPercent:Number; public var currLife:int; public var speed:Number; public var absorbAngleArray:Array; public var prevMouseX:int; public var prevMouseY:int; public var soundAbsorbChannel:SoundChannel; public var COOLDOWN_DEATH:int;// = 30 public var posX:int; public var posY:int; public var COOLDOWN_INVULNERABLE:int;// = 100 public var BULLETMOVE_CONSISTENT:int;// = 1 public var optionAbsorbY:Number; public var cooldownTimer:int; public var optionAbsorbX:Number; public var isShooting:Boolean; public var dySpeed:int; public var shieldMC:ShieldMC; public var isAbsorbLock:Boolean; public var whichOptionAbsorb:int; public var currAbsorbEnemy:MovieClip; public var optionMC:MovieClip; public var BULLETGENERATOR_RANDOM:int;// = 4 public var isMovingUp:Boolean; public var posYArray:Array; public var origHeight:Number; public var isMovingDown:Boolean; public var isMovingRight:Boolean; public var BULLETGENERATOR_ANGLE:int;// = 3 public var bulletGeneratorArray:Array; public var optionArray:Array; public var BULLETMOVE_STOP:int;// = 3 public var STATE_EXPLODE:int;// = 4 public var isShielded:Boolean; public var gameMC:MovieClip; public var soundAbsorb:Sound; public var MAX_LIFE:int;// = 15 public var ABSORB_NONE:int;// = 1 public var BULLETGENERATOR_CIRCULAR:int;// = 1 public var STATE_INVULNERABLE:int;// = 2 public var soundConfirmAbsorb:Sound; public var ABSORB_DONE:int;// = 4 public var STATE_ALIVE:int;// = 3 public var shieldTimer:int; public var absorbState:int; public var BULLETGENERATOR_ROTATE:int;// = 2 public var STATE_COOLDOWN:int;// = 5 public var currState:int; public var ABSORB_FIND:int;// = 2 public var BORDER_LIMITX:int;// = 10 public var BORDER_LIMITY:int;// = 15 public var justAbsorbed:Boolean; public var isAbsorbing:Boolean; public var removeNow:Boolean; public var STATE_CANMOVE:int;// = 1 public var ABSORB_FOUND:int;// = 3 public var soundConfirmAbsorbChannel:SoundChannel; public var BULLETMOVE_FASTER:int;// = 2 public function CharShip(_arg1:int, _arg2:int, _arg3:MovieClip){ var _local4:*; STATE_CANMOVE = 1; STATE_INVULNERABLE = 2; STATE_ALIVE = 3; STATE_EXPLODE = 4; STATE_COOLDOWN = 5; BULLETGENERATOR_CIRCULAR = 1; BULLETGENERATOR_ROTATE = 2; BULLETGENERATOR_ANGLE = 3; BULLETGENERATOR_RANDOM = 4; BULLETMOVE_CONSISTENT = 1; BULLETMOVE_FASTER = 2; BULLETMOVE_STOP = 3; COOLDOWN_DEATH = 30; COOLDOWN_INVULNERABLE = 100; BORDER_LIMITX = 10; BORDER_LIMITY = 15; ABSORB_NONE = 1; ABSORB_FIND = 2; ABSORB_FOUND = 3; ABSORB_DONE = 4; MAX_LIFE = 15; super(); this.posX = _arg1; this.posY = _arg2; this.speed = 7; this.currState = STATE_CANMOVE; this.bulletGeneratorArray = new Array(); this.isMovingUp = false; this.isMovingDown = false; this.isMovingLeft = false; this.isMovingRight = false; this.isShooting = false; this.justAbsorbed = false; this.isAbsorbing = false; this.dyAbsorb = 0; this.isAbsorbLock = false; this.isShielded = false; this.optionArray = new Array(); this.followEnemy = false; this.addChild(new Fairy()); this.x = this.posX; this.y = this.posY; _arg3.gameEngine.shipLayer.addChild(this); this.gameMC = _arg3; this.addBulletGeneratorManual(this.BULLETGENERATOR_ANGLE, 7, 10, 15, false, false, 10, 0, 0, -25, 1, BulletPointyNormal, BULLETMOVE_CONSISTENT, 0, 2, 3, 270); this.absorbAngleArray = new Array(); this.absorbAngleArray.push(new Array(Math.PI, 0.1, 0.6)); this.absorbAngleArray.push(new Array(0, 0.05, 0.4)); this.absorbAngleArray.push(new Array(Math.PI, -0.1, 0.8)); this.absorbAngleArray.push(new Array(0, -0.065, 0.4)); this.absorbAngleArray.push(new Array(Math.PI, 0.03, 0.6)); this.absorbAngleArray.push(new Array(0, 0.2, 1)); this.absorbAngleArray.push(new Array(Math.PI, -0.3, 0.8)); this.absorbAngleArray.push(new Array(0, -0.2, 0.4)); this.absorbPercent = 0.5; this.origWidth = 10; this.origHeight = 10; this.removeNow = false; this.absorbState = ABSORB_NONE; this.shieldTimer = -1; soundAbsorb = new sndAbsorbing(); soundAbsorbChannel = null; soundConfirmAbsorb = new sndConfirmAbsorb(); soundConfirmAbsorbChannel = null; posXArray = new Array(50); posYArray = new Array(50); _local4 = 0; while (_local4 < posXArray.length) { posXArray[_local4] = this.x; posYArray[_local4] = this.y; _local4++; }; currLife = MAX_LIFE; this.gameMC.treeMC.txtLife.text = currLife; this.optionArray.push(new Option(OptionNormal, this.gameMC)); this.optionArray.push(new Option(OptionNormal, this.gameMC)); this.optionArray.push(new Option(OptionNormal, this.gameMC)); this.optionArray.push(new Option(OptionNormal, this.gameMC)); this.optionArray.push(new Option(OptionNormal, this.gameMC)); prevMouseX = -5000; prevMouseY = -5000; } public function shootBullet(){ var _local1:int; var _local2:int; _local2 = 0; while (_local2 < this.optionArray.length) { this.optionArray[_local2].render(); _local1 = ((posXArray.length - 1) - ((_local2 + 1) * 6)); this.optionArray[_local2].x = posXArray[_local1]; this.optionArray[_local2].y = posYArray[_local1]; _local2++; }; if (this.isShooting){ _local2 = 0; while (_local2 < this.bulletGeneratorArray.length) { this.bulletGeneratorArray[_local2].render(); _local2++; }; }; } public function moveShipByMouse(_arg1:int, _arg2:int){ var _local3:int; var _local4:int; var _local5:Boolean; _local3 = this.posX; _local4 = this.posY; _local5 = false; this.posX = _arg1; this.posY = _arg2; if ((((Math.abs((_arg1 - prevMouseX)) >= (speed - 2))) || ((Math.abs((_arg2 - prevMouseY)) >= (speed - 2))))){ prevMouseX = _arg1; prevMouseY = _arg2; posXArray.shift(); posYArray.shift(); posXArray.push(this.x); posYArray.push(this.y); }; if ((((this.posX < BORDER_LIMITX)) || ((this.posX > (this.gameMC.STAGE_WIDTH - BORDER_LIMITX))))){ this.posX = _local3; _local5 = true; }; if ((((this.posY < BORDER_LIMITY)) || ((this.posY > (this.gameMC.STAGE_HEIGHT - BORDER_LIMITY))))){ this.posY = _local4; _local5 = true; }; if (this.gameMC.gameEngine.currState == this.gameMC.gameEngine.STATE_PAUSE){ _local5 = true; }; if (_local5){ Mouse.show(); } else { Mouse.hide(); }; this.x = this.posX; this.y = this.posY; } public function unshieldMe(){ this.shieldTimer = 30; this.removeChild(shieldMC); } public function drawAbsorbLineFind(){ var _local1:Sprite; _local1 = this.gameMC.gameEngine.absorbLayer; _local1.graphics.clear(); _local1.graphics.lineStyle(3, 15379655, 1); _local1.graphics.moveTo(this.x, this.y); _local1.graphics.lineTo(this.x, (this.y - this.dyAbsorb)); } public function disableAllOptions(){ var _local1:*; _local1 = 0; while (_local1 < optionArray.length) { optionArray[_local1].alpha = 0; optionArray[_local1].removeAllBulletGenerator(); _local1++; }; } public function shieldMe(){ this.isShielded = true; shieldMC = new ShieldMC(); shieldMC.x = 0; shieldMC.y = 0; this.addChild(shieldMC); } public function addBulletGeneratorManual(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Boolean, _arg6:Boolean, _arg7:Number, _arg8:int, _arg9:int, _arg10:int, _arg11:int, _arg12:Class, _arg13:int, _arg14:Number, ... _args){ switch (_arg1){ case BULLETGENERATOR_CIRCULAR: addBulletGenerator(new BulletGeneratorCircular(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, true, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1])); break; case BULLETGENERATOR_ROTATE: addBulletGenerator(new BulletGeneratorRotate(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, true, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1])); break; case BULLETGENERATOR_ANGLE: addBulletGenerator(new BulletGeneratorAngle(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, true, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1], _args[2])); break; case BULLETGENERATOR_RANDOM: addBulletGenerator(new BulletGeneratorAngle(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, true, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1], _args[2])); break; }; } public function addBulletGenerator(_arg1:BulletGenerator){ _arg1.offsetAngle = 270; _arg1.ownerMC = this; this.bulletGeneratorArray.push(_arg1); } public function drawAbsorbLine(_arg1:int, _arg2:int, _arg3:MovieClip, _arg4:Boolean){ var _local5:Sprite; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Point; var _local13:Point; var _local14:*; var _local15:Number; var _local16:Number; var _local17:Number; _local5 = this.gameMC.gameEngine.absorbLayer; _local5.graphics.clear(); if (_arg4){ _local6 = _arg3.x; _local7 = _arg3.y; _local8 = (_local6 - _arg1); _local9 = (_local7 - _arg2); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local11 = Math.atan2(_local9, _local8); _local12 = new Point(); _local13 = new Point(); if (this.absorbPercent < 0.2){ this.absorbPercent = 0.8; }; _local5.graphics.lineStyle(3, 15379655, 1); _local14 = 0; while (_local14 < absorbAngleArray.length) { _local15 = this.absorbAngleArray[_local14][0]; _local16 = this.absorbAngleArray[_local14][1]; _local17 = this.absorbAngleArray[_local14][2]; this.absorbAngleArray[_local14][0] = (this.absorbAngleArray[_local14][0] + this.absorbAngleArray[_local14][1]); if ((_local14 % 2) == 0){ _local12.x = ((Math.cos((_local11 + this.absorbAngleArray[_local14][0])) * (_local10 * 0.2)) + _arg1); _local12.y = ((Math.sin((_local11 + this.absorbAngleArray[_local14][0])) * (_local10 * 0.2)) + _arg2); _local5.graphics.moveTo(_arg1, _arg2); _local5.graphics.curveTo(_local12.x, _local12.y, _local6, _local7); } else { _local12.x = ((Math.cos((_local11 + this.absorbAngleArray[_local14][0])) * _arg3.origWidth) + _local6); _local12.y = ((Math.sin((_local11 + this.absorbAngleArray[_local14][0])) * _arg3.origHeight) + _local7); _local5.graphics.moveTo(_local13.x, _local13.y); _local5.graphics.curveTo(_local12.x, _local12.y, _local6, _local7); }; _local13 = _local12; _local14++; }; }; } public function enableAllOptions(){ var _local1:*; _local1 = 0; while (_local1 < optionArray.length) { optionArray[_local1].alpha = 1; optionArray[_local1].x = this.x; optionArray[_local1].y = this.y; _local1++; }; } public function moveShip(){ var _local1:int; var _local2:int; _local1 = this.posX; _local2 = this.posY; if (isMovingUp){ this.posY = (this.posY - speed); }; if (isMovingDown){ this.posY = (this.posY + speed); }; if (isMovingLeft){ this.posX = (this.posX - speed); }; if (isMovingRight){ this.posX = (this.posX + speed); }; if (((!((_local1 == this.posX))) || (!((_local2 == this.posY))))){ posXArray.shift(); posYArray.shift(); posXArray.push(this.x); posYArray.push(this.y); }; if ((((this.posX < BORDER_LIMITX)) || ((this.posX > (this.gameMC.STAGE_WIDTH - BORDER_LIMITX))))){ this.posX = _local1; }; if ((((this.posY < BORDER_LIMITY)) || ((this.posY > (this.gameMC.STAGE_HEIGHT - BORDER_LIMITY))))){ this.posY = _local2; }; this.x = this.posX; this.y = this.posY; } public function render(){ var _local1:int; var _local2:*; if (shieldTimer >= 0){ this.shieldTimer--; if (this.shieldTimer == 0){ this.shieldTimer = -1; this.isShielded = false; }; }; switch (this.currState){ case this.STATE_CANMOVE: this.currState = this.STATE_ALIVE; break; case this.STATE_INVULNERABLE: moveShip(); absorbAttack(); shootBullet(); this.cooldownTimer++; if (this.cooldownTimer > this.COOLDOWN_INVULNERABLE){ this.cooldownTimer = 0; this.currState = this.STATE_ALIVE; }; break; case this.STATE_ALIVE: moveShip(); absorbAttack(); shootBullet(); break; case this.STATE_EXPLODE: this.cooldownTimer = 0; this.gameMC.gameEngine.addExplosion(this.x, this.y, 1, true); this.alpha = 0; this.posX = this.x; this.posY = this.y; disableAllOptions(); if (this.gameMC.gameEngine.currLevel != 0){ currLife--; this.gameMC.treeMC.txtLife.text = currLife; if (currLife <= 0){ this.gameMC.gameEngine.quitGame(6); }; }; this.currState = this.STATE_COOLDOWN; break; case this.STATE_COOLDOWN: this.cooldownTimer++; if (this.cooldownTimer > this.COOLDOWN_DEATH){ this.cooldownTimer = 0; this.currState = this.STATE_INVULNERABLE; this.alpha = 1; this.x = (this.gameMC.STAGE_WIDTH / 2); this.y = (this.gameMC.STAGE_HEIGHT - 50); _local2 = 0; while (_local2 < posXArray.length) { posXArray[_local2] = this.x; posYArray[_local2] = this.y; _local2++; }; this.posX = this.x; this.posY = this.y; enableAllOptions(); }; break; }; } public function absorbAttack(){ var _local1:Array; var _local2:int; var _local3:int; var _local4:*; if (this.isAbsorbing){ if ((((this.absorbState == this.ABSORB_NONE)) && ((this.isAbsorbLock == false)))){ this.absorbState = this.ABSORB_FIND; this.dyAbsorb = 0; this.dySpeed = 10; }; } else { if (((!((this.absorbState == this.ABSORB_NONE))) && (!((this.absorbState == this.ABSORB_DONE))))){ drawAbsorbLine(0, 0, null, false); this.absorbState = this.ABSORB_NONE; this.gameMC.treeMC.absorbMC.absorbFillMC.alpha = 1; this.gameMC.treeMC.absorbMC.absorbFillMC.y = 90; }; }; switch (this.absorbState){ case this.ABSORB_NONE: if (soundAbsorbChannel != null){ soundAbsorbChannel.stop(); soundAbsorbChannel = null; }; break; case this.ABSORB_FIND: this.dyAbsorb = (this.dyAbsorb + this.dySpeed); this.dySpeed = (this.dySpeed + 2); if ((this.y - this.dyAbsorb) < -100){ this.isAbsorbing = false; drawAbsorbLine(0, 0, null, false); this.absorbState = this.ABSORB_NONE; this.isAbsorbLock = true; } else { drawAbsorbLineFind(); _local1 = this.gameMC.gameEngine.enemyArray; _local2 = 0; while (_local2 < _local1.length) { if (_local1[_local2].isAbsorbable){ if (this.gameMC.gameEngine.isCollidePoint(_local1[_local2], this.x, (this.y - this.dyAbsorb), 5, 5, 0)){ currAbsorbEnemy = _local1[_local2]; this.absorbState = this.ABSORB_FOUND; absorbTimer = 0; if (soundAbsorbChannel == null){ if (this.gameMC.jukebox.isMute == false){ soundAbsorbChannel = soundAbsorb.play(0, int.MAX_VALUE, new SoundTransform(0.6, 0)); }; }; break; }; }; _local2++; }; }; break; case this.ABSORB_FOUND: if (currAbsorbEnemy == null){ this.isAbsorbing = false; drawAbsorbLine(0, 0, null, false); this.absorbState = this.ABSORB_NONE; this.isAbsorbLock = true; } else { drawAbsorbLine(this.x, this.y, currAbsorbEnemy, true); absorbTimer++; this.gameMC.treeMC.absorbMC.absorbFillMC.y = (90 + ((absorbTimer * -90) / currAbsorbEnemy.absorbTimer)); if (absorbTimer >= currAbsorbEnemy.absorbTimer){ absorbTimer = 0; this.gameMC.treeMC.absorbMC.finishedAbsorb(); this.optionAbsorbX = currAbsorbEnemy.x; this.optionAbsorbY = currAbsorbEnemy.y; this.optionMC = new OptionNormal(); this.optionMC.x = this.optionAbsorbX; this.optionMC.y = this.optionAbsorbY; this.optionMC.gotoAndStop(2); this.optionMC.origWidth = this.optionMC.width; this.optionMC.origHeight = this.optionMC.height; this.gameMC.gameEngine.absorbLayer.addChild(this.optionMC); this.isAbsorbLock = true; this.absorbState = this.ABSORB_DONE; if (soundAbsorbChannel != null){ soundAbsorbChannel.stop(); soundAbsorbChannel = null; }; _local3 = 0; _local4 = 1; while (_local4 < this.optionArray.length) { if (optionArray[_local4].optionTimer < optionArray[_local3].optionTimer){ _local3 = _local4; }; _local4++; }; whichOptionAbsorb = _local3; }; }; break; case this.ABSORB_DONE: this.optionAbsorbX = (this.optionAbsorbX + ((optionArray[whichOptionAbsorb].x - this.optionAbsorbX) * 0.25)); this.optionAbsorbY = (this.optionAbsorbY + ((optionArray[whichOptionAbsorb].y - this.optionAbsorbY) * 0.25)); if ((((Math.abs((this.optionAbsorbX - optionArray[whichOptionAbsorb].x)) < 8)) && ((Math.abs((this.optionAbsorbY - optionArray[whichOptionAbsorb].y)) < 8)))){ if (this.gameMC.jukebox.isMute == false){ soundConfirmAbsorb.play(500, 0); }; if (currAbsorbEnemy.isShielded){ this.shieldMe(); currAbsorbEnemy.unshieldMe(); } else { optionArray[whichOptionAbsorb].addBulletGenerator(currAbsorbEnemy.absorbReward); }; this.gameMC.gameEngine.absorbLayer.removeChild(this.optionMC); this.isAbsorbing = false; drawAbsorbLine(0, 0, null, false); this.absorbState = this.ABSORB_NONE; this.isAbsorbLock = false; } else { this.optionMC.x = this.optionAbsorbX; this.optionMC.y = this.optionAbsorbY; drawAbsorbLine(this.x, this.y, this.optionMC, true); }; break; }; } } }//package classes
Section 8
//CheckPoint (classes.CheckPoint) package classes { public class CheckPoint { public var posX:int; public var posY:int; public var howLong:int; public var movementMode:int; public var speed:Number; public var speedModifier:Number; public function CheckPoint(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Number, _arg6:int){ this.posX = _arg1; this.posY = _arg2; this.howLong = _arg3; this.speed = _arg4; this.speedModifier = _arg5; this.movementMode = _arg6; } } }//package classes
Section 9
//Enemy (classes.Enemy) package classes { import flash.display.*; import flash.events.*; import flash.media.*; import flash.geom.*; import flash.filters.*; public class Enemy extends MovieClip { public var origWidth:Number; public var DIFFICULTY_EASY:int;// = 1 public var STATE_KILLED:int;// = 2 public var PARTICLE_LINE:int;// = 3 public var isVulnerable:Boolean; public var currRotationRadian:Number; public var absorbTimer:int; public var MOVEMENT_CONSISTENT:int;// = 1 protected var currCheckPointTimer:int; public var CHKPOINT_IMMEDIATE:int;// = 9999 public var isQuarterLife:Boolean; public var rotationMode:int; public var followEnemy:Boolean; public var PARTICLE_SMOKE:int;// = 1 public var currLife:int; public var MOVEMENT_ACCELERATE:int;// = 3 public var explosionMagnitude:int; public var BULLETMOVE_CONSISTENT:int;// = 1 public var DIFFICULTY_MEDIUM:int;// = 2 public var BULLET_SIMPLE2:int;// = 2 public var maxLife:int; public var difficultyLevel:int; public var score:int; public var howLongSurvive:int; public var groupNo:int; public var isShooting:Boolean; public var shieldMC:ShieldMC; public var absorbReward:Array; public var PARTICLE_FAIRY:int;// = 4 public var origHeight:Number; public var BULLETGENERATOR_RANDOM:int;// = 4 public var incRotate:Number; protected var startShoot:Boolean; public var STATE_MOVE:int;// = 1 public var SCORE_SMALL:int;// = 10 public var BULLETGENERATOR_ANGLE:int;// = 3 public var bulletGeneratorArray:Array; public var isAbsorbable:Boolean; public var BULLETMOVE_STOP:int;// = 3 public var DIFFICULTY_HARD:int;// = 3 public var gameMC:MovieClip; public var STATE_OUTOFSTAGE:int;// = 3 public var isHalfLife:Boolean; public var SCORE_BOSS:int;// = 1000 public var PARTICLE_DAMAGESMOKE:int;// = 2 public var isShielded:Boolean; public var BULLETGENERATOR_CIRCULAR:int;// = 1 public var isRammable:Boolean; protected var currCheckPoint:int; public var isNormalEnemy:Boolean; public var layer:Sprite; public var isHittable:Boolean; public var BULLETGENERATOR_ROTATE:int;// = 2 public var alreadyCreated:Boolean;// = false public var ROTATION_NONE:int;// = 1 public var BULLET_CANGGIH:int;// = 3 public var SCORE_COMBO:int;// = 5 public var shotAnimationStage:int; public var currState:int; public var BULLET_SIMPLE:int;// = 1 public var isHarmful:Boolean; public var SCORE_BIG:int;// = 100 public var mc:MovieClip; public var CHKPOINT_END:int;// = -1 public var removeNow:Boolean; public var MOVEMENT_DECELERATE:int;// = 2 public var MOVEMENT_FOLLOWROTATION:int;// = 4 public var ROTATION_NOTSHOOTING:int;// = 3 public var SCORE_MEDIUM:int;// = 50 public var chkPointArray:Array; public var ROTATION_ALWAYS:int;// = 2 public var BULLETMOVE_FASTER:int;// = 2 public function Enemy(_arg1:Class, _arg2:int, _arg3:MovieClip){ alreadyCreated = false; STATE_MOVE = 1; STATE_KILLED = 2; STATE_OUTOFSTAGE = 3; BULLETGENERATOR_CIRCULAR = 1; BULLETGENERATOR_ROTATE = 2; BULLETGENERATOR_ANGLE = 3; BULLETGENERATOR_RANDOM = 4; BULLET_SIMPLE = 1; BULLET_SIMPLE2 = 2; BULLET_CANGGIH = 3; BULLETMOVE_CONSISTENT = 1; BULLETMOVE_FASTER = 2; BULLETMOVE_STOP = 3; ROTATION_NONE = 1; ROTATION_ALWAYS = 2; ROTATION_NOTSHOOTING = 3; DIFFICULTY_EASY = 1; DIFFICULTY_MEDIUM = 2; DIFFICULTY_HARD = 3; MOVEMENT_CONSISTENT = 1; MOVEMENT_DECELERATE = 2; MOVEMENT_ACCELERATE = 3; MOVEMENT_FOLLOWROTATION = 4; CHKPOINT_END = -1; CHKPOINT_IMMEDIATE = 9999; PARTICLE_SMOKE = 1; PARTICLE_DAMAGESMOKE = 2; PARTICLE_LINE = 3; PARTICLE_FAIRY = 4; SCORE_SMALL = 10; SCORE_MEDIUM = 50; SCORE_BIG = 100; SCORE_BOSS = 1000; SCORE_COMBO = 5; super(); this.gameMC = _arg3; this.mc = new (_arg1); this.addChild(this.mc); this.rotationMode = this.ROTATION_NONE; this.isShooting = false; this.followEnemy = false; this.chkPointArray = new Array(); this.bulletGeneratorArray = new Array(); this.currCheckPoint = 0; this.currCheckPointTimer = 0; this.currState = this.STATE_MOVE; this.startShoot = false; this.currRotationRadian = 0; this.incRotate = 0; this.origWidth = (this.width * 0.8); this.origHeight = (this.height * 0.8); this.removeNow = false; setLife(10, true); this.absorbTimer = 20; this.absorbReward = new Array(); this.shotAnimationStage = 0; this.isHalfLife = false; this.isQuarterLife = false; this.isNormalEnemy = true; this.isVulnerable = true; this.difficultyLevel = _arg2; this.explosionMagnitude = 1; this.layer = this.gameMC.gameEngine.shipLayer; this.groupNo = 0; this.isHarmful = true; this.isShielded = false; this.isRammable = false; this.isAbsorbable = true; this.isHittable = true; this.score = SCORE_SMALL; this.howLongSurvive = 0; } public function addParticleGenerator(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean){ var _local6:Array; _local6 = this.gameMC.gameEngine.particleGeneratorArray; switch (_arg1){ case this.PARTICLE_SMOKE: _local6.push(new ParticleGeneratorSmoke(_arg2, _arg3, this, _arg4, _arg5, this.gameMC)); break; case this.PARTICLE_DAMAGESMOKE: _local6.push(new ParticleGeneratorDamageSmoke(_arg2, _arg3, this, _arg4, _arg5, this.gameMC)); break; case this.PARTICLE_LINE: _local6.push(new ParticleGeneratorLine(_arg2, _arg3, this, _arg4, _arg5, this.gameMC)); break; case this.PARTICLE_FAIRY: _local6.push(new ParticleGeneratorFairy(_arg2, _arg3, this, _arg4, _arg5, this.gameMC)); break; }; } public function beingShot(_arg1:Bullet){ if (isVulnerable){ this.currLife = (this.currLife - _arg1.damage); if (this.currLife <= 0){ if (this.currState == this.STATE_MOVE){ killMe(); }; } else { if (this.shotAnimationStage == 0){ this.shotAnimationStage = 1; }; if (this.isNormalEnemy){ if (this.isHalfLife){ if (this.isQuarterLife){ } else { if (this.currLife <= (this.maxLife / 4)){ this.isQuarterLife = true; this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, (Math.random() * (this.origWidth / 2)), ((Math.random() * this.origHeight) - (this.origHeight / 2)), true, true); }; }; } else { if (this.currLife <= (this.maxLife / 2)){ this.isHalfLife = true; this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, (0 - (Math.random() * (this.origWidth / 2))), ((Math.random() * this.origHeight) - (this.origHeight / 2)), true, true); }; }; }; }; }; } public function removeAllBullets(){ var _local1:Array; var _local2:*; _local1 = this.gameMC.gameEngine.bulletArray; _local2 = (_local1.length - 1); while (_local2 >= 0) { if (_local1[_local2].isYours == false){ _local1[_local2].currState = _local1[_local2].STATE_DIE; }; _local2--; }; } public function setLife(_arg1:int, _arg2:Boolean){ if (_arg2){ this.maxLife = _arg1; }; this.currLife = _arg1; } public function unshieldMe(){ this.isShielded = false; this.removeChild(shieldMC); } public function addCheckPoint(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Number, _arg6:int){ var _local7:CheckPoint; if (this.chkPointArray.length == 0){ this.x = _arg1; this.y = _arg2; gameMC.gameEngine.shipLayer.addChild(this); }; _local7 = new CheckPoint(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.chkPointArray.push(_local7); } public function addBulletGenerator(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Boolean, _arg6:Boolean, _arg7:Number, _arg8:int, _arg9:int, _arg10:int, _arg11:int, _arg12:Class, _arg13:int, _arg14:Number, ... _args){ switch (_arg1){ case BULLETGENERATOR_CIRCULAR: this.bulletGeneratorArray.push(new BulletGeneratorCircular(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, false, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1])); break; case BULLETGENERATOR_ROTATE: this.bulletGeneratorArray.push(new BulletGeneratorRotate(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, false, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1])); break; case BULLETGENERATOR_ANGLE: this.bulletGeneratorArray.push(new BulletGeneratorAngle(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, false, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1], _args[2])); break; case BULLETGENERATOR_RANDOM: this.bulletGeneratorArray.push(new BulletGeneratorRandom(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, false, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1], _args[2])); break; }; } public function addNiceExplosion(_arg1:Number, _arg2:Number){ var _local3:Point; _local3 = this.localToGlobal(new Point(_arg1, _arg2)); this.gameMC.gameEngine.addExplosion(_local3.x, _local3.y, 2, false); } public function addNiceExplosionFairy(_arg1:Number, _arg2:Number){ var _local3:Point; _local3 = this.localToGlobal(new Point(_arg1, _arg2)); this.gameMC.gameEngine.addExplosion(_local3.x, _local3.y, 2, true); } public function shieldMe(){ this.isShielded = true; shieldMC = new ShieldMC(); shieldMC.x = 0; shieldMC.y = 0; this.addChild(shieldMC); } public function animateShot(){ var _local1:sndReflect; switch (this.shotAnimationStage){ case 0: break; case 1: this.filters = [new ColorMatrixFilter([1.5, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 1, 0])]; if (this.gameMC.gameEngine.bossLifeMC.y > 0){ this.gameMC.gameEngine.bossLifeMC.bossLifeBgMC.filters = [new ColorMatrixFilter([1.5, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 1, 0])]; }; this.shotAnimationStage = 2; if (this.gameMC.jukebox.isMute == false){ _local1 = new sndReflect(); _local1.play(0, 0, new SoundTransform(0.5, 0)); }; break; case 2: this.filters = null; this.gameMC.gameEngine.bossLifeMC.bossLifeBgMC.filters = null; this.shotAnimationStage = 0; break; }; } public function specialrender(){ } public function getBulletGenerator(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Boolean, _arg6:Boolean, _arg7:Number, _arg8:int, _arg9:int, _arg10:int, _arg11:int, _arg12:Class, _arg13:int, _arg14:Number, ... _args):BulletGenerator{ switch (_arg1){ case BULLETGENERATOR_CIRCULAR: return (new BulletGeneratorCircular(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, true, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1])); case BULLETGENERATOR_ROTATE: return (new BulletGeneratorRotate(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, true, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1])); case BULLETGENERATOR_ANGLE: return (new BulletGeneratorAngle(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, true, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1], _args[2])); case BULLETGENERATOR_RANDOM: return (new BulletGeneratorRandom(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, true, _arg11, _arg12, this, _arg13, _arg14, _args[0], _args[1], _args[2])); default: return (null); }; } public function render(){ var _local1:Number; var _local2:CheckPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:*; this.howLongSurvive++; if (this.isNormalEnemy){ if (this.followEnemy){ _local1 = Math.atan2((gameMC.gameEngine.yourShip.y - this.y), (gameMC.gameEngine.yourShip.x - this.x)); this.rotation = (((_local1 * 180) / Math.PI) - 90); }; animateShot(); switch (this.currState){ case this.STATE_MOVE: specialrender(); _local2 = this.chkPointArray[this.currCheckPoint]; this.currCheckPointTimer++; if ((((this.currCheckPointTimer > _local2.howLong)) && (!((_local2.howLong == -1))))){ this.currCheckPoint++; this.currCheckPointTimer = 0; } else { switch (_local2.movementMode){ case this.MOVEMENT_CONSISTENT: _local4 = (_local2.posX - this.x); _local5 = (_local2.posY - this.y); _local3 = Math.atan2(_local5, _local4); _local6 = (Math.cos(_local3) * _local2.speed); _local7 = (Math.sin(_local3) * _local2.speed); if (Math.abs(_local4) > Math.abs(_local6)){ this.x = (this.x + (Math.cos(_local3) * _local2.speed)); } else { this.x = _local2.posX; }; if (Math.abs(_local5) > Math.abs(_local7)){ this.y = (this.y + (Math.sin(_local3) * _local2.speed)); } else { this.y = _local2.posY; }; break; case this.MOVEMENT_DECELERATE: this.x = (this.x + ((_local2.posX - this.x) * _local2.speedModifier)); this.y = (this.y + ((_local2.posY - this.y) * _local2.speedModifier)); break; case this.MOVEMENT_ACCELERATE: _local4 = (_local2.posX - this.x); _local5 = (_local2.posY - this.y); _local3 = Math.atan2(_local5, _local4); _local6 = (Math.cos(_local3) * _local2.speed); _local7 = (Math.sin(_local3) * _local2.speed); if (_local4 > _local6){ this.x = (this.x + (Math.cos(_local3) * _local2.speed)); } else { this.x = _local2.posX; }; if (_local5 > _local7){ this.y = (this.y + (Math.sin(_local3) * _local2.speed)); } else { this.y = _local2.posY; }; _local2.speed = (_local2.speed * (1 + _local2.speedModifier)); break; case this.MOVEMENT_FOLLOWROTATION: _local8 = Math.atan2((_local2.posY - this.y), (_local2.posX - this.x)); _local9 = (_local8 - this.currRotationRadian); if (Math.abs(_local9) > Math.PI){ if (_local8 > Math.PI){ _local8 = (_local8 - (2 * Math.PI)); } else { _local8 = (_local8 + (2 * Math.PI)); }; _local9 = (_local8 - this.currRotationRadian); }; if (this.incRotate > Math.abs(_local9)){ this.currRotationRadian = _local8; } else { if (_local8 > this.currRotationRadian){ this.currRotationRadian = (this.currRotationRadian + this.incRotate); } else { this.currRotationRadian = (this.currRotationRadian - this.incRotate); }; if (this.currRotationRadian > (2 * Math.PI)){ this.currRotationRadian = (this.currRotationRadian - (2 * Math.PI)); } else { if (this.currRotationRadian < 0){ this.currRotationRadian = (this.currRotationRadian + (2 * Math.PI)); }; }; }; this.rotation = (((this.currRotationRadian * 180) / Math.PI) - 90); this.x = (this.x + (_local2.speed * Math.cos(this.currRotationRadian))); this.y = (this.y + (_local2.speed * Math.sin(this.currRotationRadian))); break; }; if (this.currCheckPoint == 1){ if ((((Math.abs((_local2.posX - this.x)) < 10)) && ((Math.abs((_local2.posY - this.y)) < 10)))){ startShoot = true; }; }; if (((this.startShoot) && (((!((_local2.howLong == this.CHKPOINT_END))) || ((_local2.movementMode == this.MOVEMENT_FOLLOWROTATION)))))){ _local10 = 0; while (_local10 < this.bulletGeneratorArray.length) { this.bulletGeneratorArray[_local10].render(); _local10++; }; }; if (_local2.howLong == this.CHKPOINT_END){ if (this.gameMC.gameEngine.isInside(this)){ } else { this.currState = this.STATE_OUTOFSTAGE; }; } else { if (_local2.howLong == this.CHKPOINT_IMMEDIATE){ if ((((Math.abs((_local2.posX - this.x)) < 40)) && ((Math.abs((_local2.posY - this.y)) < 40)))){ this.currCheckPoint++; this.currCheckPointTimer = 0; }; }; }; }; break; case this.STATE_KILLED: this.currState = this.STATE_OUTOFSTAGE; break; case this.STATE_OUTOFSTAGE: break; }; } else { if (this.followEnemy){ _local1 = Math.atan2((gameMC.gameEngine.yourShip.y - this.y), (gameMC.gameEngine.yourShip.x - this.x)); this.rotation = (((_local1 * 180) / Math.PI) - 90); }; specialrender(); animateShot(); _local10 = 0; while (_local10 < this.bulletGeneratorArray.length) { this.bulletGeneratorArray[_local10].render(); _local10++; }; }; } public function killMe(){ var _local1:Number; var _local2:int; this.currState = this.STATE_KILLED; this.gameMC.gameEngine.addExplosion(this.x, this.y, this.explosionMagnitude, false); if (this.gameMC.gameEngine.currLevel != 0){ _local1 = 1; if (this.gameMC.gameEngine.yourShip.currLife > this.gameMC.gameEngine.yourShip.MAX_LIFE){ _local1 = 0.5; }; this.gameMC.gameEngine.addScore("ENEMY DESTROYED", (((this.score * this.difficultyLevel) * this.gameMC.gameEngine.currLevel) * _local1)); if (this.gameMC.gameEngine.prevEnemyGroupNo == this.groupNo){ this.gameMC.gameEngine.enemyGroupCombo++; this.gameMC.gameEngine.addScore((this.gameMC.gameEngine.enemyGroupCombo + "X COMBO"), (((SCORE_COMBO * this.gameMC.gameEngine.enemyGroupCombo) * this.difficultyLevel) * _local1)); } else { this.gameMC.gameEngine.enemyGroupCombo = 1; this.gameMC.gameEngine.prevEnemyGroupNo = this.groupNo; }; _local2 = (((this.maxLife * 20) - this.howLongSurvive) / 10); if (_local2 > 0){ this.gameMC.gameEngine.addScore("TIME BONUS", ((_local2 * this.difficultyLevel) * _local1)); }; }; } public function removeAllBulletGenerator(){ var _local1:int; _local1 = (this.bulletGeneratorArray.length - 1); while (_local1 >= 0) { this.bulletGeneratorArray[_local1] = null; this.bulletGeneratorArray.splice(_local1, 1); _local1--; }; } } }//package classes
Section 10
//EnemyAtoB (classes.EnemyAtoB) package classes { import flash.display.*; public class EnemyAtoB extends Enemy { public function EnemyAtoB(_arg1:Class, _arg2:int, _arg3:MovieClip, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int){ var _local9:Number; super(_arg1, _arg2, _arg3); this.addCheckPoint(_arg5, _arg6, 0, 0, 0, 0); this.addCheckPoint(_arg7, _arg8, this.CHKPOINT_IMMEDIATE, _arg4, 0, this.MOVEMENT_FOLLOWROTATION); this.addCheckPoint(_arg7, _arg8, this.CHKPOINT_END, _arg4, 0, this.MOVEMENT_FOLLOWROTATION); this.currRotationRadian = Math.atan2((_arg8 - _arg6), (_arg7 - _arg5)); this.rotationMode = this.ROTATION_NONE; _local9 = ((this.currRotationRadian * 180) / Math.PI); this.rotation = _local9; this.startShoot = true; } override public function specialrender(){ } } }//package classes
Section 11
//EnemyScanAndGo (classes.EnemyScanAndGo) package classes { import flash.display.*; import flash.events.*; public class EnemyScanAndGo extends Enemy { public function EnemyScanAndGo(_arg1:Class, _arg2:int, _arg3:MovieClip, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int, _arg9:Number, _arg10:int, _arg11:int){ var _local12:int; super(_arg1, _arg2, _arg3); _local12 = ((_arg9 > 0)) ? this.MOVEMENT_DECELERATE : this.MOVEMENT_CONSISTENT; if (_arg4 < (_arg3.STAGE_WIDTH / 2)){ this.addCheckPoint(_arg4, (0 - this.height), 0, 0, 0, 0); this.addCheckPoint(_arg4, _arg5, _arg8, _arg7, _arg9, _local12); this.addCheckPoint(_arg6, _arg5, _arg8, _arg7, _arg9, _local12); this.addCheckPoint((_arg3.STAGE_WIDTH - _arg6), _arg5, _arg8, _arg7, _arg9, _local12); this.addCheckPoint(_arg6, _arg5, _arg8, _arg7, _arg9, _local12); this.addCheckPoint(_arg6, (_arg3.STAGE_HEIGHT + this.height), this.CHKPOINT_END, _arg11, _arg9, this.MOVEMENT_CONSISTENT); this.rotationMode = _arg10; } else { this.addCheckPoint(_arg4, (0 - this.height), 0, 0, 0, 0); this.addCheckPoint(_arg4, _arg5, _arg8, _arg7, _arg9, _local12); this.addCheckPoint((_arg3.STAGE_WIDTH - _arg6), _arg5, _arg8, _arg7, _arg9, _local12); this.addCheckPoint(_arg6, _arg5, _arg8, _arg7, _arg9, _local12); this.addCheckPoint((_arg3.STAGE_WIDTH - _arg6), _arg5, _arg8, _arg7, _arg9, _local12); this.addCheckPoint((_arg3.STAGE_WIDTH - _arg6), (_arg3.STAGE_HEIGHT + this.height), this.CHKPOINT_END, _arg11, _arg9, this.MOVEMENT_CONSISTENT); this.rotationMode = _arg10; }; } override public function specialrender(){ } } }//package classes
Section 12
//EnemyStopAndGo (classes.EnemyStopAndGo) package classes { import flash.display.*; public class EnemyStopAndGo extends Enemy { public function EnemyStopAndGo(_arg1:Class, _arg2:int, _arg3:MovieClip, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int, _arg9:int, _arg10:int, _arg11:Number, _arg12:int, _arg13:int){ super(_arg1, _arg2, _arg3); this.addCheckPoint(_arg4, _arg5, 0, 0, 0, 0); this.addCheckPoint(_arg6, _arg7, _arg10, 0, _arg11, this.MOVEMENT_DECELERATE); this.addCheckPoint(_arg8, _arg9, this.CHKPOINT_END, _arg13, 0, this.MOVEMENT_CONSISTENT); this.rotationMode = _arg12; } override public function specialrender(){ } } }//package classes
Section 13
//EnemyZPattern (classes.EnemyZPattern) package classes { import flash.display.*; import flash.events.*; public class EnemyZPattern extends Enemy { public function EnemyZPattern(_arg1:Class, _arg2:int, _arg3:MovieClip, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int, _arg9:Number, _arg10:Boolean){ var _local11:Number; super(_arg1, _arg2, _arg3); if (_arg10){ this.addCheckPoint(_arg5, _arg6, 0, 0, 0, 0); this.addCheckPoint((_arg3.STAGE_WIDTH - _arg7), (_arg6 + _arg8), this.CHKPOINT_IMMEDIATE, _arg4, 0, this.MOVEMENT_FOLLOWROTATION); this.addCheckPoint(_arg7, ((_arg6 + _arg8) + _arg8), this.CHKPOINT_IMMEDIATE, _arg4, 0, this.MOVEMENT_FOLLOWROTATION); this.addCheckPoint((_arg3.STAGE_WIDTH + (this.width * 2)), (((_arg6 + _arg8) + _arg8) + _arg8), this.CHKPOINT_END, _arg4, 0, this.MOVEMENT_FOLLOWROTATION); this.currRotationRadian = 0; } else { this.addCheckPoint(_arg5, _arg6, 0, 0, 0, 0); this.addCheckPoint(_arg7, (_arg6 + _arg8), this.CHKPOINT_IMMEDIATE, _arg4, 0, this.MOVEMENT_FOLLOWROTATION); this.addCheckPoint((_arg3.STAGE_WIDTH - _arg7), ((_arg6 + _arg8) + _arg8), this.CHKPOINT_IMMEDIATE, _arg4, 0, this.MOVEMENT_FOLLOWROTATION); this.addCheckPoint((0 - (this.width * 2)), (((_arg6 + _arg8) + _arg8) + _arg8), this.CHKPOINT_END, _arg4, 0, this.MOVEMENT_FOLLOWROTATION); this.currRotationRadian = Math.PI; }; this.rotationMode = this.ROTATION_NONE; this.incRotate = _arg9; _local11 = ((this.currRotationRadian * 180) / Math.PI); this.rotation = _local11; this.startShoot = true; } override public function specialrender(){ } } }//package classes
Section 14
//Jukebox (classes.Jukebox) package classes { import flash.display.*; import flash.events.*; import flash.media.*; public class Jukebox { public var soundLvl2Fast:sndLvl2Fast; public var EVENT_TUTORIAL:int;// = 14 public var EVENT_MENU:int;// = 1 public var currEvent:int; public var EVENT_NOSOUND:int;// = 0 public var currSound:Sound; public var soundTutorial:sndTutorial; public var EVENT_LEVEL1FAST:int;// = 3 public var EVENT_LEVEL4FAST:int;// = 9 public var EVENT_BOSSSLOW:int;// = 10 public var soundLvl3Fast:sndLvl3Fast; public var soundLvl4Fast:sndLvl4Fast; public var EVENT_LEVEL2FAST:int;// = 5 public var soundBossFast:sndBossFast; public var c1PrevVol:Number; public var soundBossVerySlow:sndBossVerySlow; public var channel1:SoundChannel; public var EVENT_LEVEL3FAST:int;// = 7 public var soundLvl3Slow:sndLvl3Slow; public var EVENT_BOSSVERYFAST:int;// = 12 public var prevEvent:int; public var soundLvl4Slow:sndLvl4Slow; public var c2CurrVol:Number; public var soundLvl1Slow:sndLvl1Slow; public var soundLvl2Slow:sndLvl2Slow; public var channel2:SoundChannel; public var EVENT_LEVEL1SLOW:int;// = 2 public var EVENT_LEVEL2SLOW:int;// = 4 public var EVENT_LEVEL3SLOW:int;// = 6 public var EVENT_LEVEL4SLOW:int;// = 8 public var c1CurrVol:Number; public var soundBossSlow:sndBossSlow; public var EVENT_REALLYNOSOUND:int;// = -1 public var baseMC:MovieClip; public var soundLvl1Fast:sndLvl1Fast; public var soundHurricane:sndHurricane; public var FADE_IN:Number;// = 0.05 public var savedSound:Sound; public var nextSound:Sound; public var isMute:Boolean; public var EVENT_BOSSFAST:int;// = 11 public var c2PrevVol:Number; public var FADE_OUT:Number;// = 0.005 public var soundBossVeryFast:sndBossVeryFast; public var EVENT_BOSSDEAD:int;// = 13 public var prevIsMute:Boolean; public function Jukebox(_arg1:MovieClip){ EVENT_REALLYNOSOUND = -1; EVENT_NOSOUND = 0; EVENT_MENU = 1; EVENT_LEVEL1SLOW = 2; EVENT_LEVEL1FAST = 3; EVENT_LEVEL2SLOW = 4; EVENT_LEVEL2FAST = 5; EVENT_LEVEL3SLOW = 6; EVENT_LEVEL3FAST = 7; EVENT_LEVEL4SLOW = 8; EVENT_LEVEL4FAST = 9; EVENT_BOSSSLOW = 10; EVENT_BOSSFAST = 11; EVENT_BOSSVERYFAST = 12; EVENT_BOSSDEAD = 13; EVENT_TUTORIAL = 14; FADE_IN = 0.05; FADE_OUT = 0.005; super(); soundHurricane = new sndHurricane(); soundLvl1Slow = new sndLvl1Slow(); soundLvl1Fast = new sndLvl1Fast(); soundLvl2Slow = new sndLvl2Slow(); soundLvl2Fast = new sndLvl2Fast(); soundLvl3Slow = new sndLvl3Slow(); soundLvl3Fast = new sndLvl3Fast(); soundLvl4Slow = new sndLvl4Slow(); soundLvl4Fast = new sndLvl4Fast(); soundBossSlow = new sndBossSlow(); soundBossFast = new sndBossFast(); soundBossVeryFast = new sndBossVeryFast(); soundBossVerySlow = new sndBossVerySlow(); soundTutorial = new sndTutorial(); currEvent = EVENT_NOSOUND; prevEvent = EVENT_NOSOUND; this.baseMC = _arg1; this.baseMC.addEventListener(Event.ENTER_FRAME, doEveryFrame); currSound = null; nextSound = null; channel1 = null; channel2 = null; isMute = false; prevIsMute = false; } public function doEveryFrame(_arg1:Event){ processMusic(); if (prevEvent != currEvent){ prevEvent = currEvent; if (currEvent == EVENT_NOSOUND){ currSound = null; nextSound = null; } else { if (currEvent == EVENT_REALLYNOSOUND){ currSound = null; nextSound = null; if (channel1 != null){ channel1.stop(); channel1 = null; }; if (channel2 != null){ channel2.stop(); channel2 = null; }; } else { switch (currEvent){ case EVENT_MENU: nextSound = soundHurricane; break; case EVENT_TUTORIAL: nextSound = soundTutorial; break; case EVENT_LEVEL1SLOW: nextSound = soundLvl1Slow; break; case EVENT_LEVEL1FAST: nextSound = soundLvl1Fast; break; case EVENT_LEVEL2SLOW: nextSound = soundLvl2Slow; break; case EVENT_LEVEL2FAST: nextSound = soundLvl2Fast; break; case EVENT_LEVEL3SLOW: nextSound = soundLvl3Slow; break; case EVENT_LEVEL3FAST: nextSound = soundLvl3Fast; break; case EVENT_LEVEL4SLOW: nextSound = soundLvl4Slow; break; case EVENT_LEVEL4FAST: nextSound = soundLvl4Fast; break; case EVENT_BOSSSLOW: nextSound = soundBossSlow; break; case EVENT_BOSSFAST: nextSound = soundBossFast; break; case EVENT_BOSSVERYFAST: nextSound = soundBossVeryFast; break; case EVENT_BOSSDEAD: nextSound = soundBossVerySlow; break; }; if (((!((channel1 == null))) && (!((channel2 == null))))){ channel1.stop(); channel1 = channel2; channel2 = null; } else { if ((((channel1 == null)) && ((channel2 == null)))){ currSound = nextSound; nextSound = null; } else { if (((!((channel1 == null))) && ((currSound == null)))){ channel1.stop(); channel1 = null; currSound = nextSound; nextSound = null; }; }; }; }; }; }; } public function processMusic(){ var _local1:int; var _local2:int; if (currSound == null){ if (channel1 == null){ } else { if ((c1CurrVol - FADE_OUT) < 0){ channel1.stop(); channel1 = null; } else { c1CurrVol = (c1CurrVol - FADE_OUT); }; }; } else { if (channel1 == null){ c1CurrVol = 0.3; c1PrevVol = 0; if (isMute){ channel1 = currSound.play(0, int.MAX_VALUE, new SoundTransform(0, 0)); } else { channel1 = currSound.play(0, int.MAX_VALUE, new SoundTransform(c1CurrVol, 0)); }; } else { if (channel2 == null){ if ((c1CurrVol + FADE_IN) >= getMaxVolume(currSound)){ c1CurrVol = getMaxVolume(currSound); } else { c1CurrVol = (c1CurrVol + FADE_IN); }; }; }; }; if (nextSound == null){ if (channel1 == null){ }; if (channel2 == null){ } else { channel2.stop(); channel2 = null; }; } else { if (channel2 == null){ c2CurrVol = 0.3; c2PrevVol = 0; if (isMute){ channel2 = nextSound.play(0, int.MAX_VALUE, new SoundTransform(0, 0)); } else { _local1 = (channel1.position % currSound.length); _local2 = ((_local1 <= nextSound.length)) ? _local1 : 0; if ((((((currEvent == EVENT_LEVEL1FAST)) || ((currEvent == EVENT_LEVEL3FAST)))) || ((currEvent == EVENT_LEVEL4FAST)))){ } else { _local2 = 0; }; if (_local2 == 0){ channel2 = nextSound.play(0, int.MAX_VALUE, new SoundTransform(c2CurrVol, 0)); } else { channel2 = nextSound.play(_local1, 0, new SoundTransform(c2CurrVol, 0)); channel2.addEventListener(Event.SOUND_COMPLETE, onComplete); savedSound = nextSound; }; }; } else { if (channel1 == null){ c2CurrVol = 1; channel1 = channel2; channel2 = null; currSound = nextSound; nextSound = null; } else { if ((c2CurrVol + FADE_IN) >= getMaxVolume(nextSound)){ c2CurrVol = getMaxVolume(nextSound); c1CurrVol = getMaxVolume(nextSound); c1PrevVol = -1; channel1.stop(); channel1 = channel2; channel2 = null; currSound = nextSound; nextSound = null; } else { c2CurrVol = (c2CurrVol + FADE_IN); c1CurrVol = (1 - c2CurrVol); }; }; }; }; if (channel1 != null){ if (isMute){ if (prevIsMute){ } else { prevIsMute = true; channel1.soundTransform = new SoundTransform(0, 0); }; } else { if (prevIsMute){ prevIsMute = false; c1PrevVol = c1CurrVol; channel1.soundTransform = new SoundTransform(c1CurrVol, 0); } else { if (c1PrevVol != c1CurrVol){ c1PrevVol = c1CurrVol; channel1.soundTransform = new SoundTransform(c1CurrVol, 0); }; }; }; }; if (channel2 != null){ if (isMute){ if (prevIsMute){ } else { prevIsMute = true; channel2.soundTransform = new SoundTransform(0, 0); }; } else { if (prevIsMute){ prevIsMute = false; c2PrevVol = c2CurrVol; channel2.soundTransform = new SoundTransform(c2CurrVol, 0); } else { if (c2PrevVol != c2CurrVol){ c2PrevVol = c2CurrVol; channel2.soundTransform = new SoundTransform(c2CurrVol, 0); }; }; }; }; } public function onComplete(_arg1:Event){ _arg1.target.removeEventListener(Event.SOUND_COMPLETE, onComplete); if (nextSound == null){ channel1.stop(); channel1 = null; if (isMute){ channel1 = savedSound.play(0, int.MAX_VALUE, new SoundTransform(0, 0)); } else { channel1 = savedSound.play(0, int.MAX_VALUE, new SoundTransform(c1CurrVol, 0)); }; } else { channel2.stop(); channel2 = null; if (isMute){ channel2 = savedSound.play(0, int.MAX_VALUE, new SoundTransform(0, 0)); } else { channel2 = savedSound.play(0, int.MAX_VALUE, new SoundTransform(c2CurrVol, 0)); }; }; } public function getMaxVolume(_arg1:Sound):Number{ switch (_arg1){ case soundLvl2Slow: return (0.6); case soundLvl2Fast: return (0.6); default: return (1); }; } } }//package classes
Section 15
//Lvl0Medium (classes.Lvl0Medium) package classes { import flash.display.*; public class Lvl0Medium extends EnemyScanAndGo { public function Lvl0Medium(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl1MediumEnemy, _arg1, _arg2, _arg3, _arg4, 100, 3, int.MAX_VALUE, 0.05, this.ROTATION_ALWAYS, 6); this.groupNo = 4; this.origWidth = 70; this.origHeight = 50; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 15, 9, false, false, 5, 0, -20, 0, 1, BulletStickFriendly, BULLETMOVE_CONSISTENT, 0, 1, 8, 280)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 15, 9, false, false, 5, 0, 20, 0, 1, BulletStickFriendly, BULLETMOVE_CONSISTENT, 0, 1, 8, 260)); this.addParticleGenerator(this.PARTICLE_SMOKE, -39, -15, true, false); this.addParticleGenerator(this.PARTICLE_SMOKE, 39, -15, true, false); this.setLife(50, true); this.absorbTimer = this.currLife; this.score = this.SCORE_MEDIUM; this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 6, false, false, 5, 0, 38, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 6, false, false, 5, 0, -38, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); } } }//package classes
Section 16
//Lvl0SmallDozer (classes.Lvl0SmallDozer) package classes { import flash.display.*; public class Lvl0SmallDozer extends EnemyStopAndGo { public function Lvl0SmallDozer(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl1SmallEnemy1, _arg1, _arg2, _arg3, -50, _arg3, _arg4, _arg3, 600, int.MAX_VALUE, 0.1, this.ROTATION_NONE, 6); this.groupNo = 3; this.addParticleGenerator(this.PARTICLE_SMOKE, 0, -28, true, false); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 25, 9, false, false, 5, 0, 0, -3, 1, BulletStickFriendly, BULLETMOVE_CONSISTENT, 0, 1, 10, 270)); this.setLife(10, true); this.absorbTimer = this.currLife; } } }//package classes
Section 17
//Lvl1Big (classes.Lvl1Big) package classes { import flash.display.*; import flash.events.*; public class Lvl1Big extends EnemyStopAndGo { public function Lvl1Big(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl1BigEnemy, _arg1, _arg2, _arg3, -50, _arg3, _arg4, _arg3, 650, 1000, 0.01, this.ROTATION_NONE, 6); this.groupNo = 5; this.origWidth = 190; this.origHeight = 86; this.startShoot = true; this.explosionMagnitude = 2; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 9, false, false, 5, 0, 0, 0, 5, BulletSimpleMissileFriendly, BULLETMOVE_CONSISTENT, 0, 1, 8, 270)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 25, 7, false, false, 5, 0, 0, 0, 1, BulletStickFriendly, BULLETMOVE_CONSISTENT, 0, 3, 5, 270)); this.setLife(100, true); this.absorbTimer = this.currLife; this.score = this.SCORE_BIG; this.addParticleGenerator(this.PARTICLE_SMOKE, 0, -73, true, false); switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 150, 150, 6, false, false, 5, this.PARTICLE_DAMAGESMOKE, 24, 60, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 150, 150, 6, false, false, 5, this.PARTICLE_DAMAGESMOKE, -19, 60, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 4, false, false, 5, 0, 24, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 5, 15, 50); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 4, false, false, 5, 0, -19, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 5, 15, 130); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 150, 150, 6, false, false, 5, this.PARTICLE_DAMAGESMOKE, 24, 60, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 150, 150, 6, false, false, 5, this.PARTICLE_DAMAGESMOKE, -19, 60, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 4, false, false, 5, 0, 24, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 5, 15, 50); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 4, false, false, 5, 0, -19, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 5, 15, 130); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 50, 100, 4, false, false, 5, 0, 24, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 4, 15, 60); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 50, 100, 4, false, false, 5, 0, -19, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 4, 15, 120); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 150, 150, 6, false, false, 5, this.PARTICLE_DAMAGESMOKE, 24, 60, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 150, 150, 6, false, false, 5, this.PARTICLE_DAMAGESMOKE, -19, 60, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 4, false, false, 5, 0, 24, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 10, 50); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 4, false, false, 5, 0, -19, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 10, 130); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 50, 100, 4, false, false, 5, 0, 24, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 10, 60); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 50, 100, 4, false, false, 5, 0, -19, 60, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 10, 120); break; }; } override public function specialrender(){ this.mc.blade1MC.rotation = (this.mc.blade1MC.rotation + 5); this.mc.blade2MC.rotation = (this.mc.blade2MC.rotation - 5); } } }//package classes
Section 18
//Lvl1Boss (classes.Lvl1Boss) package classes { import flash.display.*; import flash.events.*; import flash.geom.*; public class Lvl1Boss extends Enemy { public var PHASE_ATTACK3:int;// = 7 public var PHASE_ATTACK4:int;// = 9 public var currBallAngle:Number; public var PHASE_ATTACK2:int;// = 5 public var explosionTimerMax:int; public var PHASE_ATTACK1:int;// = 3 public var SUPER_ATTACK2:int;// = 998 public var ballStringLayer:Sprite; public var SUPER_ATTACK3:int;// = 997 public var currPhase:int; public var PHASE_DEATH:int;// = 11 public var ballAttackTimer:int; public var posX:Number; public var posY:Number; public var ballLayer:Sprite; public var centerY:int; public var appearTimer:int; public var centerX:int; public var explosionNumber:int; public var SHAKE:Number;// = 0.2 public var PHASE_ARRIVAL:int;// = 1 public var PHASE_INTERMISSION2:int;// = 6 public var PHASE_INTERMISSION3:int;// = 8 public var PHASE_INTERMISSION4:int;// = 10 public var totalBallAngle:Number; public var readyBallAttack:Boolean; public var currFloatAnimX:Number; public var currFloatAnimY:Number; public var PHASE_INTERMISSION1:int;// = 4 public var explosionTimer:int; public var ORIG_INCBALLANGLE:Number;// = -0.2 public var SHAKE_DIST:int;// = 15 public var floatAnimX:Number; public var floatAnimY:Number; public var PHASE_BALLAPPEARS:int;// = 2 public var SUPER_ATTACK:int;// = 999 public var currBallLength:Number; public var incBallAngle:Number; public var ballMC:Enemy; public var BALLATTACK_TIMER:int;// = 100 public function Lvl1Boss(_arg1:int, _arg2:MovieClip){ PHASE_ARRIVAL = 1; PHASE_BALLAPPEARS = 2; PHASE_ATTACK1 = 3; PHASE_INTERMISSION1 = 4; PHASE_ATTACK2 = 5; PHASE_INTERMISSION2 = 6; PHASE_ATTACK3 = 7; PHASE_INTERMISSION3 = 8; PHASE_ATTACK4 = 9; PHASE_INTERMISSION4 = 10; PHASE_DEATH = 11; SUPER_ATTACK = 999; SUPER_ATTACK2 = 998; SUPER_ATTACK3 = 997; SHAKE = 0.2; SHAKE_DIST = 15; BALLATTACK_TIMER = 100; ORIG_INCBALLANGLE = -0.2; super(Lvl1BossEnemy, _arg1, _arg2); this.groupNo = 6; this.origWidth = 120; this.origHeight = 70; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 8, false, false, 5, 0, 0, 0, 5, BulletSimpleMissileFriendly, BULLETMOVE_CONSISTENT, 0, 1, 8, 270)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 15, 50, 8, false, false, 5, 0, 0, 0, 1, BulletStickFriendly, BULLETMOVE_CONSISTENT, 0, 6, 8, 270)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 30, 50, 8, false, false, 5, 0, 0, 0, 2, BulletDrillFriendly, BULLETMOVE_CONSISTENT, 0, 4, 8, 270)); this.setLife(1000, true); this.absorbTimer = 150; this.score = this.SCORE_BOSS; this.currPhase = this.PHASE_ARRIVAL; this.scaleX = 0.1; this.scaleY = 0.1; this.x = (this.gameMC.STAGE_WIDTH / 2); this.y = -150; this.posX = this.x; this.posY = this.y; this.gameMC.gameEngine.shipLayer.addChild(this); this.isNormalEnemy = false; this.ballMC = new Enemy(Lvl1BossEnemy_ball, _arg1, _arg2); this.ballMC.isNormalEnemy = false; this.ballMC.isVulnerable = false; this.ballMC.absorbTimer = 1000; this.incBallAngle = ORIG_INCBALLANGLE; this.currBallAngle = 0; this.currBallLength = 100; this.ballMC.alpha = 0; this.gameMC.gameEngine.enemyArray.push(this.ballMC); this.ballMC.isAbsorbable = false; this.ballStringLayer = new Sprite(); this.ballStringLayer.x = 0; this.ballStringLayer.y = 0; this.gameMC.addChild(this.ballStringLayer); this.ballLayer = new Sprite(); this.ballLayer.x = 0; this.ballLayer.y = 0; this.gameMC.addChild(this.ballLayer); this.ballMC.layer = this.ballLayer; this.ballLayer.addChild(this.ballMC); this.ballMC.isHarmful = false; this.centerX = 0; this.centerY = -22; this.currFloatAnimX = 0; this.currFloatAnimY = 0; this.floatAnimX = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.floatAnimY = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); } public function shake(){ var _local1:Boolean; var _local2:Boolean; _local1 = (Math.abs((this.floatAnimX - this.currFloatAnimX)) < this.SHAKE); _local2 = (Math.abs((this.floatAnimY - this.currFloatAnimY)) < this.SHAKE); if (_local1 == false){ if (this.currFloatAnimX < this.floatAnimX){ this.currFloatAnimX = (this.currFloatAnimX + this.SHAKE); } else { if (this.currFloatAnimX > this.floatAnimX){ this.currFloatAnimX = (this.currFloatAnimX - this.SHAKE); }; }; }; if (_local2 == false){ if (this.currFloatAnimY < this.floatAnimY){ this.currFloatAnimY = (this.currFloatAnimY + this.SHAKE); } else { if (this.currFloatAnimY > this.floatAnimY){ this.currFloatAnimY = (this.currFloatAnimY - this.SHAKE); }; }; }; if (((_local1) && (_local2))){ this.floatAnimX = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.floatAnimY = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); }; } public function checkBall(){ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = (this.gameMC.gameEngine.yourShip.x - ballMC.x); _local2 = (this.gameMC.gameEngine.yourShip.y - ballMC.y); _local3 = Math.sqrt(((_local1 * _local1) + (_local2 * _local2))); if (_local3 < (ballMC.height * 0.5)){ if (this.gameMC.gameEngine.yourShip.currState == this.gameMC.gameEngine.yourShip.STATE_ALIVE){ this.gameMC.gameEngine.yourShip.currState = this.gameMC.gameEngine.yourShip.STATE_EXPLODE; }; }; } public function processBossLifeBar(){ var _local1:BossLifeMC; var _local2:int; _local1 = this.gameMC.gameEngine.bossLifeMC; switch (currPhase){ case PHASE_ARRIVAL: _local1.y = -100; _local1.life1MC.scaleX = 1; _local1.life2MC.scaleX = 1; _local1.life3MC.scaleX = 1; _local1.life4MC.scaleX = 1; break; case PHASE_ATTACK1: _local1.y = (_local1.y + ((20 - _local1.y) * 0.2)); _local2 = (this.currLife - ((this.maxLife * 3) / 4)); if (_local2 < 0){ _local2 = 0; }; _local1.life4MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION1: _local1.life4MC.scaleX = 0; _local1.life3MC.alpha = this.alpha; break; case PHASE_ATTACK2: if (_local1.life3MC.alpha != 1){ _local1.life3MC.alpha = 1; }; _local2 = (this.currLife - (this.maxLife / 2)); if (_local2 < 0){ _local2 = 0; }; _local1.life3MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION2: _local1.life3MC.scaleX = 0; _local1.life2MC.alpha = this.alpha; break; case PHASE_ATTACK3: if (_local1.life2MC.alpha != 1){ _local1.life2MC.alpha = 1; }; _local2 = (this.currLife - (this.maxLife / 4)); if (_local2 < 0){ _local2 = 0; }; _local1.life2MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION3: _local1.life2MC.scaleX = 0; _local1.life1MC.alpha = this.alpha; break; case PHASE_ATTACK4: if (_local1.life1MC.alpha != 1){ _local1.life1MC.alpha = 1; }; _local2 = this.currLife; if (_local2 < 0){ _local2 = 0; }; _local1.life1MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_DEATH: _local1.life1MC.scaleX = 0; _local1.y = (_local1.y + ((-100 - _local1.y) * 0.05)); break; }; } public function spinBall(){ var _local1:Number; var _local2:Number; var _local3:Number; this.currBallAngle = (this.currBallAngle + this.incBallAngle); if (this.currBallAngle > (2 * Math.PI)){ this.currBallAngle = (this.currBallAngle - (2 * Math.PI)); } else { if (this.currBallAngle < 0){ this.currBallAngle = (this.currBallAngle + (2 * Math.PI)); }; }; ballMC.x = ((this.x + this.centerX) + (Math.cos(this.currBallAngle) * this.currBallLength)); ballMC.y = ((this.y + this.centerY) + (Math.sin(this.currBallAngle) * this.currBallLength)); _local1 = (Math.abs(this.incBallAngle) * 3); _local2 = ((this.x + this.centerX) + ((Math.cos((this.currBallAngle - _local1)) * this.currBallLength) / 2)); _local3 = ((this.y + this.centerY) + ((Math.sin((this.currBallAngle - _local1)) * this.currBallLength) / 2)); if (this.ballStringLayer != null){ this.ballStringLayer.graphics.clear(); this.ballStringLayer.graphics.lineStyle(3); this.ballStringLayer.graphics.moveTo((this.x + this.centerX), (this.y + this.centerY)); this.ballStringLayer.graphics.curveTo(_local2, _local3, this.ballMC.x, this.ballMC.y); }; } override public function specialrender(){ var _local1:int; var _local2:int; var _local3:int; var _local4:Point; var _local5:Point; processBossLifeBar(); switch (this.currPhase){ case PHASE_ARRIVAL: this.gameMC.gameEngine.vTreeAngle = -0.02; this.isVulnerable = false; this.ballMC.isHarmful = false; this.scaleX = (this.scaleX + 0.01); this.scaleY = this.scaleX; this.posX = (this.posX + (((this.gameMC.STAGE_WIDTH / 2) - this.posX) * 0.05)); this.posY = (this.posY + ((170 - this.posY) * 0.05)); if (this.scaleX >= 1){ this.scaleX = 1; this.scaleY = this.scaleX; this.appearTimer = 0; this.currPhase = PHASE_BALLAPPEARS; }; break; case PHASE_BALLAPPEARS: this.isVulnerable = false; this.ballMC.isHarmful = false; this.appearTimer++; if ((this.appearTimer % 4) < 2){ this.ballMC.alpha = 1; } else { this.ballMC.alpha = 0; }; if (this.appearTimer > 100){ this.ballMC.alpha = 1; this.currPhase = this.PHASE_ATTACK1; this.readyBallAttack = false; this.ballAttackTimer = ((Math.random() * BALLATTACK_TIMER) + BALLATTACK_TIMER); changeWeapon(this.PHASE_ATTACK1); this.gameMC.gameEngine.vTreeAngle = -0.015; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSSLOW; }; spinBall(); break; case PHASE_ATTACK1: this.isVulnerable = true; this.ballMC.isHarmful = true; if (this.readyBallAttack){ this.totalBallAngle = (this.totalBallAngle + Math.abs(this.incBallAngle)); this.currBallLength = (this.currBallLength + ((300 - this.currBallLength) * 0.1)); if ((((this.currBallAngle > (Math.PI / 4))) && ((this.currBallAngle < Math.PI)))){ this.incBallAngle = (ORIG_INCBALLANGLE / 4); }; if (this.totalBallAngle > (2 * Math.PI)){ this.ballAttackTimer = ((Math.random() * BALLATTACK_TIMER) + BALLATTACK_TIMER); this.readyBallAttack = false; changeWeapon(this.currPhase); this.incBallAngle = ORIG_INCBALLANGLE; }; } else { this.ballAttackTimer--; this.currBallLength = (this.currBallLength + ((100 - this.currBallLength) * 0.03)); if ((((this.ballAttackTimer < 0)) && ((this.currBallAngle < (Math.PI / 4))))){ this.readyBallAttack = true; this.totalBallAngle = 0; changeWeapon(-1); }; if (this.currLife < ((this.maxLife * 3) / 4)){ this.setLife(((this.maxLife * 3) / 4), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION1; this.incBallAngle = (ORIG_INCBALLANGLE * 2); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, -59, -36, true, true); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 111, 3, true, true); addNiceExplosion(-59, -36); addNiceExplosion(111, 3); removeAllBullets(); }; }; checkBall(); spinBall(); break; case PHASE_INTERMISSION1: this.gameMC.gameEngine.vTreeAngle = -0.02; this.isVulnerable = false; this.ballMC.isHarmful = false; this.currBallLength = (this.currBallLength + ((50 - this.currBallLength) * 0.03)); this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; this.ballMC.alpha = 1; } else { this.alpha = 0.5; this.ballMC.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK2; changeWeapon(PHASE_ATTACK2); this.alpha = 1; this.ballMC.alpha = 1; this.incBallAngle = ORIG_INCBALLANGLE; this.readyBallAttack = false; this.ballAttackTimer = ((Math.random() * BALLATTACK_TIMER) + BALLATTACK_TIMER); this.gameMC.gameEngine.vTreeAngle = -0.015; }; spinBall(); break; case PHASE_ATTACK2: this.isVulnerable = true; this.ballMC.isHarmful = true; if (this.readyBallAttack){ this.totalBallAngle = (this.totalBallAngle + Math.abs(this.incBallAngle)); this.currBallLength = (this.currBallLength + ((300 - this.currBallLength) * 0.1)); if ((((this.currBallAngle > (Math.PI / 4))) && ((this.currBallAngle < Math.PI)))){ this.incBallAngle = (ORIG_INCBALLANGLE / 4); }; if (this.totalBallAngle > (2 * Math.PI)){ this.ballAttackTimer = ((Math.random() * BALLATTACK_TIMER) + BALLATTACK_TIMER); this.readyBallAttack = false; changeWeapon(this.currPhase); this.incBallAngle = ORIG_INCBALLANGLE; }; } else { this.ballAttackTimer--; this.currBallLength = (this.currBallLength + ((100 - this.currBallLength) * 0.03)); if ((((this.ballAttackTimer < 0)) && ((this.currBallAngle < (Math.PI / 4))))){ this.readyBallAttack = true; this.totalBallAngle = 0; changeWeapon(SUPER_ATTACK); }; if (this.currLife < (this.maxLife / 2)){ this.setLife((this.maxLife / 2), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION2; this.incBallAngle = (ORIG_INCBALLANGLE * 2); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, -113, -75, true, true); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, -61, 6, true, true); addNiceExplosion(-113, -75); addNiceExplosion(-61, 6); removeAllBullets(); }; }; checkBall(); spinBall(); break; case PHASE_INTERMISSION2: this.gameMC.gameEngine.vTreeAngle = -0.02; this.isVulnerable = false; this.ballMC.isHarmful = false; this.currBallLength = (this.currBallLength + ((50 - this.currBallLength) * 0.03)); this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; this.ballMC.alpha = 1; } else { this.alpha = 0.5; this.ballMC.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK3; changeWeapon(PHASE_ATTACK3); this.alpha = 1; this.ballMC.alpha = 1; this.incBallAngle = ORIG_INCBALLANGLE; this.readyBallAttack = false; this.ballAttackTimer = ((Math.random() * BALLATTACK_TIMER) + BALLATTACK_TIMER); this.gameMC.gameEngine.vTreeAngle = -0.015; }; spinBall(); break; case PHASE_ATTACK3: this.isVulnerable = true; this.ballMC.isHarmful = true; if (this.readyBallAttack){ this.totalBallAngle = (this.totalBallAngle + Math.abs(this.incBallAngle)); this.currBallLength = (this.currBallLength + ((300 - this.currBallLength) * 0.1)); if ((((this.currBallAngle > (Math.PI / 4))) && ((this.currBallAngle < Math.PI)))){ this.incBallAngle = (ORIG_INCBALLANGLE / 4); }; if (this.totalBallAngle > (2 * Math.PI)){ this.ballAttackTimer = ((Math.random() * BALLATTACK_TIMER) + BALLATTACK_TIMER); this.readyBallAttack = false; changeWeapon(this.currPhase); this.incBallAngle = ORIG_INCBALLANGLE; }; } else { this.ballAttackTimer--; this.currBallLength = (this.currBallLength + ((100 - this.currBallLength) * 0.03)); if ((((this.ballAttackTimer < 0)) && ((this.currBallAngle < (Math.PI / 4))))){ this.readyBallAttack = true; this.totalBallAngle = 0; changeWeapon(SUPER_ATTACK2); }; if (this.currLife < (this.maxLife / 4)){ this.setLife((this.maxLife / 4), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION3; this.incBallAngle = (ORIG_INCBALLANGLE * 2); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 108, -85, true, true); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 40, -46, true, true); addNiceExplosion(108, -85); addNiceExplosion(40, -46); removeAllBullets(); this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSFAST; }; }; checkBall(); spinBall(); break; case PHASE_INTERMISSION3: this.gameMC.gameEngine.vTreeAngle = -0.04; this.isVulnerable = false; this.ballMC.isHarmful = false; this.currBallLength = (this.currBallLength + ((50 - this.currBallLength) * 0.03)); this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; this.ballMC.alpha = 1; } else { this.alpha = 0.5; this.ballMC.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK4; changeWeapon(PHASE_ATTACK4); this.alpha = 1; this.ballMC.alpha = 1; this.incBallAngle = ORIG_INCBALLANGLE; this.readyBallAttack = false; this.ballAttackTimer = ((Math.random() * BALLATTACK_TIMER) + BALLATTACK_TIMER); this.gameMC.gameEngine.vTreeAngle = -0.03; }; spinBall(); break; case PHASE_ATTACK4: this.isVulnerable = true; this.ballMC.isHarmful = true; if (this.readyBallAttack){ this.totalBallAngle = (this.totalBallAngle + Math.abs(this.incBallAngle)); this.currBallLength = (this.currBallLength + ((300 - this.currBallLength) * 0.1)); if ((((this.currBallAngle > (Math.PI / 4))) && ((this.currBallAngle < Math.PI)))){ this.incBallAngle = (ORIG_INCBALLANGLE / 4); }; if (this.totalBallAngle > (2 * Math.PI)){ this.ballAttackTimer = ((Math.random() * BALLATTACK_TIMER) + BALLATTACK_TIMER); this.readyBallAttack = false; changeWeapon(this.currPhase); this.incBallAngle = ORIG_INCBALLANGLE; }; } else { this.ballAttackTimer--; this.currBallLength = (this.currBallLength + ((100 - this.currBallLength) * 0.03)); if ((((this.ballAttackTimer < 0)) && ((this.currBallAngle < (Math.PI / 4))))){ this.readyBallAttack = true; this.totalBallAngle = 0; changeWeapon(SUPER_ATTACK3); }; if (this.currLife < 0){ this.setLife(0, false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_DEATH; this.incBallAngle = (ORIG_INCBALLANGLE / 8); this.explosionTimer = 0; this.explosionNumber = 0; this.explosionTimerMax = 100; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSDEAD; removeAllBullets(); }; }; checkBall(); spinBall(); break; case PHASE_DEATH: this.gameMC.gameEngine.vTreeAngle = -0.002; this.isHarmful = false; this.ballMC.isHarmful = false; spinBall(); this.currBallLength = (this.currBallLength + ((50 - this.currBallLength) * 0.03)); this.scaleX = (this.scaleX - 0.001); this.scaleY = this.scaleX; this.ballMC.scaleX = this.scaleX; this.ballMC.scaleY = this.scaleY; this.rotation = (this.rotation + 0.1); this.posY = (this.posY + 0.2); this.explosionTimer++; if (this.explosionTimer > this.explosionTimerMax){ this.explosionTimer = 0; this.explosionNumber++; switch (this.explosionNumber){ case 1: _local1 = -50; _local2 = -50; _local3 = 2; this.explosionTimerMax = 40; break; case 2: _local1 = 100; _local2 = 50; _local3 = 2; this.explosionTimerMax = 35; break; case 3: _local1 = -100; _local2 = 30; _local3 = 2; this.explosionTimerMax = 30; break; case 4: _local1 = 50; _local2 = -100; _local3 = 2; this.explosionTimerMax = 25; break; case 5: _local1 = -32; _local2 = -93; _local3 = 2; this.explosionTimerMax = 20; break; case 6: _local1 = -32; _local2 = -93; _local3 = 2; this.explosionTimerMax = 15; break; case 7: _local1 = -32; _local2 = -93; _local3 = 2; this.explosionTimerMax = 10; break; case 8: _local1 = 25; _local2 = 10; _local3 = 2; this.explosionTimerMax = 40; break; case 9: _local1 = 0; _local2 = 0; _local3 = 4; this.explosionTimerMax = 150; this.gameMC.removeChild(this.ballLayer); this.gameMC.removeChild(this.ballStringLayer); this.ballLayer = null; this.ballStringLayer = null; this.gameMC.gameEngine.shipLayer.addChild(this.ballMC); this.ballMC.layer = this.gameMC.gameEngine.shipLayer; break; case 10: this.currState = this.STATE_OUTOFSTAGE; this.ballMC.currState = this.STATE_OUTOFSTAGE; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_NOSOUND; break; }; if (this.explosionNumber <= 9){ _local4 = new Point((_local1 * this.scaleX), (_local2 * this.scaleY)); _local5 = this.localToGlobal(_local4); this.gameMC.gameEngine.addExplosion(_local5.x, _local5.y, _local3, false); }; }; break; }; shake(); this.x = (this.posX + this.currFloatAnimX); this.y = (this.posY + this.currFloatAnimY); } public function changeWeapon(_arg1:int){ this.removeAllBulletGenerator(); switch (this.difficultyLevel){ case this.DIFFICULTY_EASY: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 200, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 100, 200, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); break; case this.PHASE_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 200, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 100, 200, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 200, 4, false, false, 5, 0, -40, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 30, 90); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 200, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 100, 200, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 4, false, false, 5, 0, -40, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 30, 90); break; case this.PHASE_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 200, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 100, 200, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 6, 4, false, false, 5, 0, this.centerX, this.centerY, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 30, 0); break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); break; case this.SUPER_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 100, 3, false, false, 0.7, this.PARTICLE_SMOKE, this.centerX, this.centerY, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 8, 0); break; case this.SUPER_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 70, 3, true, false, 0.7, this.PARTICLE_SMOKE, this.centerX, this.centerY, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 8, 0); break; }; break; case this.DIFFICULTY_MEDIUM: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 50, 100, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); break; case this.PHASE_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 50, 100, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 4, false, false, 5, 0, -40, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 30, 90); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 50, 100, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 4, false, false, 5, 0, -40, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 30, 90); break; case this.PHASE_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 50, 100, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 3, 4, false, false, 5, 0, this.centerX, this.centerY, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 20, 0); break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); break; case this.SUPER_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 50, 3, true, false, 0.7, this.PARTICLE_SMOKE, this.centerX, this.centerY, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 8, 0); break; case this.SUPER_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 50, 3, true, false, 0.7, this.PARTICLE_SMOKE, this.centerX, this.centerY, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 8, 0); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 3, 3, false, false, 5, 0, this.centerX, this.centerY, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 20, 40); break; }; break; case this.DIFFICULTY_HARD: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 25, 50, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); break; case this.PHASE_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 25, 50, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 4, false, false, 5, 0, -40, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 30, 90); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 25, 50, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 4, false, false, 5, 0, -40, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 8, 30, 90); break; case this.PHASE_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 25, 50, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 3, 4, false, false, 5, 0, this.centerX, this.centerY, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 15, 30); break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); break; case this.SUPER_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 25, 3, true, false, 0.7, this.PARTICLE_SMOKE, this.centerX, this.centerY, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 8, 0); break; case this.SUPER_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, -90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, this.PARTICLE_DAMAGESMOKE, 90, 9, 1, BulletSimpleMissile, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 25, 3, true, false, 0.7, this.PARTICLE_SMOKE, this.centerX, this.centerY, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 8, 0); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 3, 3, false, false, 5, 0, this.centerX, this.centerY, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 20, 40); break; }; break; }; } } }//package classes
Section 19
//Lvl1Medium (classes.Lvl1Medium) package classes { import flash.display.*; public class Lvl1Medium extends EnemyScanAndGo { public function Lvl1Medium(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl1MediumEnemy, _arg1, _arg2, _arg3, _arg4, 100, 3, 200, 0.05, this.ROTATION_ALWAYS, 6); this.groupNo = 4; this.origWidth = 70; this.origHeight = 50; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 15, 9, false, false, 5, 0, -20, 0, 1, BulletStickFriendly, BULLETMOVE_CONSISTENT, 0, 1, 8, 280)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 15, 9, false, false, 5, 0, 20, 0, 1, BulletStickFriendly, BULLETMOVE_CONSISTENT, 0, 1, 8, 260)); this.addParticleGenerator(this.PARTICLE_SMOKE, -39, -15, true, false); this.addParticleGenerator(this.PARTICLE_SMOKE, 39, -15, true, false); this.setLife(50, true); this.absorbTimer = this.currLife; this.score = this.SCORE_MEDIUM; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 6, false, false, 5, 0, 38, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 6, false, false, 5, 0, -38, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 8, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 6, false, false, 5, 0, 38, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 8, 100); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 6, false, false, 5, 0, -38, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 8, 80); break; case this.DIFFICULTY_HARD: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 6, false, false, 5, 0, 38, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 8, 100); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 6, false, false, 5, 0, -38, 40, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 8, 80); break; }; } } }//package classes
Section 20
//Lvl1SmallDozer (classes.Lvl1SmallDozer) package classes { import flash.display.*; public class Lvl1SmallDozer extends EnemyAtoB { public function Lvl1SmallDozer(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(Lvl1SmallEnemy1, _arg1, _arg2, 2, _arg3, _arg4, _arg5, _arg6); this.groupNo = 1; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 25, 9, false, false, 5, 0, 0, -3, 1, BulletStickFriendly, BULLETMOVE_CONSISTENT, 0, 1, 10, 270)); this.addParticleGenerator(this.PARTICLE_SMOKE, -5, -25, true, false); this.addParticleGenerator(this.PARTICLE_SMOKE, 5, -25, true, false); this.setLife(10, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 6, false, false, 5, 0, 1, 2, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 10, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 6, false, false, 5, 0, 1, 2, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 1, 10, 90); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 4, false, false, 5, 0, 1, 2, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 3, 10, 90); break; }; } } }//package classes
Section 21
//Lvl1SmallDriller (classes.Lvl1SmallDriller) package classes { import flash.display.*; public class Lvl1SmallDriller extends EnemyStopAndGo { public function Lvl1SmallDriller(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl1SmallEnemy2, _arg1, _arg2, _arg3, -50, _arg3, _arg4, _arg3, 600, 400, 0.1, this.ROTATION_NONE, 6); this.groupNo = 3; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 25, 9, true, false, 2, 0, 0, 0, 5, BulletDrillFriendly, BULLETMOVE_CONSISTENT, 0, 1, 20, 270)); this.addParticleGenerator(this.PARTICLE_SMOKE, -4, -28, true, false); this.addParticleGenerator(this.PARTICLE_SMOKE, 4, -28, true, false); this.setLife(10, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 5, 50, 7, false, false, 0.2, PARTICLE_SMOKE, 0, 14, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 1, 20, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 5, 50, 7, true, false, 0.2, PARTICLE_SMOKE, 0, 14, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 1, 20, 90); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 5, 50, 7, true, false, 0.2, PARTICLE_SMOKE, 0, 14, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 3, 20, 90); break; }; } } }//package classes
Section 22
//Lvl1SmallTruck (classes.Lvl1SmallTruck) package classes { import flash.display.*; public class Lvl1SmallTruck extends EnemyZPattern { public function Lvl1SmallTruck(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:Boolean){ super(Lvl1SmallEnemy3, _arg1, _arg2, 5, _arg3, _arg4, 70, 40, 0.1, _arg5); this.groupNo = 2; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 6, false, false, 5, 0, 0, -3, 1, BulletRockFriendly, BULLETMOVE_CONSISTENT, 0, 1, 0, 270)); this.addParticleGenerator(this.PARTICLE_SMOKE, -7, -25, true, false); this.addParticleGenerator(this.PARTICLE_SMOKE, 7, -25, true, false); this.setLife(10, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 5, false, false, 0.5, 0, 0, -13, 1, BulletRock, BULLETMOVE_CONSISTENT, 0, 1, 0, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 5, false, false, 0.5, 0, 0, -13, 1, BulletRock, BULLETMOVE_CONSISTENT, 0, 1, 0, 90); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 25, 4, false, false, 0.5, 0, 0, -13, 1, BulletRock, BULLETMOVE_CONSISTENT, 0, 1, 0, 90); break; }; } } }//package classes
Section 23
//Lvl2Big (classes.Lvl2Big) package classes { import flash.display.*; public class Lvl2Big extends EnemyScanAndGo { public function Lvl2Big(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl2BigMC, _arg1, _arg2, _arg3, _arg4, 150, 5, 400, 0.05, this.ROTATION_ALWAYS, 6); this.groupNo = 25; this.origWidth = 94; this.origHeight = 67; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 40, 2, true, false, 2, 0, 0, 0, 1, BulletSquareArrowFriendly, BULLETMOVE_FASTER, 1.05, 2, 80, 270)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 10, 6, false, false, 0.5, 0, 0, 0, 1, BulletStickRedFriendly, BULLETMOVE_CONSISTENT, 1.05, 1, 250, 290)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 6, false, false, 0.5, 0, 0, 0, 3, BulletEnergyMissileFriendly, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 270)); this.addParticleGenerator(this.PARTICLE_SMOKE, 0, -38, true, false); this.setLife(100, true); this.absorbTimer = this.currLife; this.score = this.SCORE_BIG; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 160, 2, false, false, 0.5, PARTICLE_LINE, -82, 36, 1, BulletGlowCircle2, BULLETMOVE_FASTER, 1.05, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 160, 2, false, false, 0.5, PARTICLE_LINE, 82, 36, 1, BulletGlowCircle2, BULLETMOVE_FASTER, 1.05, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 6, false, false, 0.5, 0, -57, 26, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 6, false, false, 0.5, 0, 57, 26, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 200, 6, false, false, 0.5, PARTICLE_LINE, 0, 50, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 2, true, false, 0.5, PARTICLE_LINE, -82, 36, 1, BulletGlowCircle2, BULLETMOVE_FASTER, 1.05, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 2, true, false, 0.5, PARTICLE_LINE, 82, 36, 1, BulletGlowCircle2, BULLETMOVE_FASTER, 1.05, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 20, 6, false, false, 0.5, 0, -57, 26, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 1.05, 1, 70, 110); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 20, 6, false, false, 0.5, 0, 57, 26, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 1.05, 1, 70, 110); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 6, false, false, 0.5, PARTICLE_LINE, 0, 50, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 2, true, false, 0.5, PARTICLE_LINE, -82, 36, 1, BulletGlowCircle2, BULLETMOVE_FASTER, 1.05, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 2, true, false, 0.5, PARTICLE_LINE, 82, 36, 1, BulletGlowCircle2, BULLETMOVE_FASTER, 1.05, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 15, 6, false, false, 0.5, 0, -57, 26, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 1.05, 1, 70, 110); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 7, 15, 6, false, false, 0.5, 0, 57, 26, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 1.05, 1, 70, 110); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 6, false, false, 0.5, PARTICLE_LINE, 0, 50, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); break; }; } } }//package classes
Section 24
//Lvl2Boss (classes.Lvl2Boss) package classes { import flash.display.*; import flash.events.*; import flash.geom.*; public class Lvl2Boss extends Enemy { public var PHASE_ATTACK2:int;// = 5 public var PHASE_ATTACK3:int;// = 7 public var PHASE_ATTACK4:int;// = 9 public var STATE_SCANSTOP:int;// = 0 public var PHASE_ATTACK1:int;// = 3 public var STATE_REMOVE:int;// = 4 public var scannerMC:MovieClip; public var posX:Number; public var posY:Number; public var STATE_SCANNING:int;// = 1 public var currDetectTimer:int; public var PHASE_ARRIVAL:int;// = 1 public var scannerSpeed:int; public var yourShip:CharShip; public var PHASE_INTERMISSION2:int;// = 6 public var PHASE_INTERMISSION3:int;// = 8 public var PHASE_INTERMISSION4:int;// = 10 public var STATE_SPECIALREST:int;// = 6 public var PHASE_INTERMISSION1:int;// = 4 public var STATE_SPECIALDETECT:int;// = 7 public var explosionTimer:int; public var hasBeenScanned:Boolean; public var SCANNER_MAXY:int;// = 344 public var scannerGoingDown:Boolean; public var specialAttackPhase:int; public var PHASE_BALLAPPEARS:int;// = 2 public var STATE_RESTING:int;// = 3 public var scanThingMC:MovieClip; public var currRestTimer:int; public var soundScanAlarm:sndScanAlarm; public var currScanState:int; public var SUPER_ATTACK3:int;// = 997 public var specialScanTimer:int; public var explosionTimerMax:int; public var SUPER_ATTACK2:int;// = 998 public var SCANNER_MINY:int;// = 70 public var turret2MC:Lvl2BossTurret; public var currPhase:int; public var PHASE_DEATH:int;// = 11 public var STATE_DETECTED:int;// = 2 public var turret1MC:Lvl2BossTurret; public var scannerMC2:MovieClip; public var centerX:int; public var centerY:int; public var appearTimer:int; public var explosionNumber:int; public var SHAKE:Number;// = 0.2 public var currFloatAnimX:Number; public var currFloatAnimY:Number; public var scanThingMC2:MovieClip; public var SHAKE_DIST:int;// = 15 public var floatAnimX:Number; public var scannerRestTimer:int; public var floatAnimY:Number; public var SUPER_ATTACK:int;// = 999 public var prevFriendX:Number; public var prevFriendY:Number; public var STATE_SPECIALSCAN:int;// = 5 public function Lvl2Boss(_arg1:int, _arg2:MovieClip){ PHASE_ARRIVAL = 1; PHASE_BALLAPPEARS = 2; PHASE_ATTACK1 = 3; PHASE_INTERMISSION1 = 4; PHASE_ATTACK2 = 5; PHASE_INTERMISSION2 = 6; PHASE_ATTACK3 = 7; PHASE_INTERMISSION3 = 8; PHASE_ATTACK4 = 9; PHASE_INTERMISSION4 = 10; PHASE_DEATH = 11; SUPER_ATTACK = 999; SUPER_ATTACK2 = 998; SUPER_ATTACK3 = 997; SHAKE = 0.2; SHAKE_DIST = 15; STATE_SCANSTOP = 0; STATE_SCANNING = 1; STATE_DETECTED = 2; STATE_RESTING = 3; STATE_REMOVE = 4; STATE_SPECIALSCAN = 5; STATE_SPECIALREST = 6; STATE_SPECIALDETECT = 7; SCANNER_MINY = 70; SCANNER_MAXY = 344; super(Lvl2BossEnemy, _arg1, _arg2); this.groupNo = 6; this.origWidth = 310; this.origHeight = 78; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 30, 10, false, false, 5, 0, 0, 0, 1, BulletSquareArrowFriendly, BULLETMOVE_CONSISTENT, 1.05, 5, 250, 290)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 6, false, false, 0.5, 0, 0, 0, 2, BulletEnergyMissileFriendly, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 270)); this.currPhase = this.PHASE_ARRIVAL; this.x = (this.gameMC.STAGE_WIDTH / 2); this.y = -500; this.posX = this.x; this.posY = this.y; this.gameMC.gameEngine.shipLayer.addChild(this); this.isNormalEnemy = false; this.turret1MC = new Lvl2BossTurret(_arg1, _arg2, this, -140, 14); this.turret2MC = new Lvl2BossTurret(_arg1, _arg2, this, 140, 14); this.centerX = 0; this.centerY = -22; this.currFloatAnimX = 0; this.currFloatAnimY = 0; this.floatAnimX = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.floatAnimY = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.setLife(1000, true); this.absorbTimer = 150; this.score = this.SCORE_BOSS; this.scannerMC = this.mc.scannerMC; this.scannerMC2 = this.mc.scannerMC2; this.scannerMC.alpha = 0; this.scannerMC2.alpha = 0; this.currScanState = STATE_SCANSTOP; this.scanThingMC = this.mc.scanThingMC; this.scanThingMC2 = this.mc.scanThingMC2; this.yourShip = this.gameMC.gameEngine.yourShip; this.hasBeenScanned = false; this.soundScanAlarm = new sndScanAlarm(); } public function processBossLifeBar(){ var _local1:BossLifeMC; var _local2:int; _local1 = this.gameMC.gameEngine.bossLifeMC; switch (currPhase){ case PHASE_ARRIVAL: _local1.y = -100; _local1.life1MC.scaleX = 1; _local1.life2MC.scaleX = 1; _local1.life3MC.scaleX = 1; _local1.life4MC.scaleX = 1; break; case PHASE_ATTACK1: _local1.y = (_local1.y + ((20 - _local1.y) * 0.2)); _local2 = (this.currLife - ((this.maxLife * 3) / 4)); if (_local2 < 0){ _local2 = 0; }; _local1.life4MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION1: _local1.life4MC.scaleX = 0; _local1.life3MC.alpha = this.alpha; break; case PHASE_ATTACK2: if (_local1.life3MC.alpha != 1){ _local1.life3MC.alpha = 1; }; _local2 = (this.currLife - (this.maxLife / 2)); if (_local2 < 0){ _local2 = 0; }; _local1.life3MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION2: _local1.life3MC.scaleX = 0; _local1.life2MC.alpha = this.alpha; break; case PHASE_ATTACK3: if (_local1.life2MC.alpha != 1){ _local1.life2MC.alpha = 1; }; _local2 = (this.currLife - (this.maxLife / 4)); if (_local2 < 0){ _local2 = 0; }; _local1.life2MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION3: _local1.life2MC.scaleX = 0; _local1.life1MC.alpha = this.alpha; break; case PHASE_ATTACK4: if (_local1.life1MC.alpha != 1){ _local1.life1MC.alpha = 1; }; _local2 = this.currLife; if (_local2 < 0){ _local2 = 0; }; _local1.life1MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_DEATH: _local1.life1MC.scaleX = 0; _local1.y = (_local1.y + ((-100 - _local1.y) * 0.05)); break; }; } public function isScanned():Boolean{ if (Math.abs(((this.y + this.scannerMC.y) - this.yourShip.y)) < 20){ prevFriendX = this.yourShip.x; prevFriendY = this.yourShip.y; return (true); }; return (false); } public function changeWeapon(_arg1:int){ this.removeAllBulletGenerator(); switch (this.difficultyLevel){ case this.DIFFICULTY_EASY: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 80, 5, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 10, 80, 5, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 20, 80, 5, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 30, 80, 5, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); break; case this.PHASE_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 80, 2, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 10, 80, 2, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 20, 80, 2, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 30, 80, 2, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 80, 4, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 10, 80, 4, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 20, 80, 4, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 30, 80, 4, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 8, false, false, 0.5, PARTICLE_LINE, -15, 70, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 8, false, false, 0.5, PARTICLE_LINE, 15, 70, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); break; case this.PHASE_ATTACK4: break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 8, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.05, 1, 30, ((Math.random() * 30) + 50)); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 7, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.05, 1, 30, ((Math.random() * 30) + 50)); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 8, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.05, 1, 30, ((Math.random() * 30) + 100)); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 7, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.05, 1, 30, ((Math.random() * 30) + 100)); break; case this.SUPER_ATTACK2: break; case this.SUPER_ATTACK3: break; }; break; case this.DIFFICULTY_MEDIUM: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 5, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 10, 40, 5, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 20, 40, 5, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 30, 40, 5, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); break; case this.PHASE_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 2, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 10, 40, 2, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 20, 40, 2, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 30, 40, 2, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 4, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 10, 40, 4, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 20, 40, 4, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 30, 40, 4, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 8, false, false, 0.5, PARTICLE_LINE, -15, 70, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 8, false, false, 0.5, PARTICLE_LINE, 15, 70, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); break; case this.PHASE_ATTACK4: break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 8, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.05, 2, 30, ((Math.random() * 30) + 50)); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 7, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.05, 2, 30, ((Math.random() * 30) + 50)); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 8, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.05, 2, 30, ((Math.random() * 30) + 100)); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 7, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.05, 2, 30, ((Math.random() * 30) + 100)); break; case this.SUPER_ATTACK2: break; case this.SUPER_ATTACK3: break; }; break; case this.DIFFICULTY_HARD: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 5, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 10, 40, 5, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 20, 40, 5, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 30, 40, 5, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 90, 120); break; case this.PHASE_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 2, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 10, 40, 2, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 20, 40, 2, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 30, 40, 2, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 90, 120); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 4, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 10, 40, 4, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 20, 40, 4, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 30, 40, 4, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 2, 90, 120); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 60, 8, false, false, 0.5, PARTICLE_LINE, -15, 70, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 60, 8, false, false, 0.5, PARTICLE_LINE, 15, 70, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); break; case this.PHASE_ATTACK4: break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 8, false, false, 5, this.PARTICLE_LINE, -110, 24, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.1, 4, 30, ((Math.random() * 30) + 50)); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 7, false, false, 5, this.PARTICLE_LINE, -77, 11, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.1, 4, 30, ((Math.random() * 30) + 50)); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 8, false, false, 5, this.PARTICLE_LINE, 110, 24, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.1, 4, 30, ((Math.random() * 30) + 100)); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 1000, 7, false, false, 5, this.PARTICLE_LINE, 77, 11, 1, BulletSquareArrow, BULLETMOVE_STOP, 1.1, 4, 30, ((Math.random() * 30) + 100)); break; case this.SUPER_ATTACK2: break; case this.SUPER_ATTACK3: break; }; break; }; } public function shake(){ var _local1:Boolean; var _local2:Boolean; _local1 = (Math.abs((this.floatAnimX - this.currFloatAnimX)) < this.SHAKE); _local2 = (Math.abs((this.floatAnimY - this.currFloatAnimY)) < this.SHAKE); if (_local1 == false){ if (this.currFloatAnimX < this.floatAnimX){ this.currFloatAnimX = (this.currFloatAnimX + this.SHAKE); } else { if (this.currFloatAnimX > this.floatAnimX){ this.currFloatAnimX = (this.currFloatAnimX - this.SHAKE); }; }; }; if (_local2 == false){ if (this.currFloatAnimY < this.floatAnimY){ this.currFloatAnimY = (this.currFloatAnimY + this.SHAKE); } else { if (this.currFloatAnimY > this.floatAnimY){ this.currFloatAnimY = (this.currFloatAnimY - this.SHAKE); }; }; }; if (((_local1) && (_local2))){ this.floatAnimX = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.floatAnimY = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); }; } override public function specialrender(){ var _local1:int; var _local2:int; var _local3:int; var _local4:Point; var _local5:Point; processBossLifeBar(); if (this.currPhase != this.PHASE_DEATH){ renderScanner(); }; switch (this.currPhase){ case PHASE_ARRIVAL: this.gameMC.gameEngine.vTreeAngle = -0.015; this.isVulnerable = false; this.posY = (this.posY + ((110 - this.posY) * 0.03)); if (Math.abs((110 - this.posY)) < 2){ this.posY = 110; this.appearTimer = 0; this.currPhase = PHASE_ATTACK1; changeWeapon(PHASE_ATTACK1); this.gameMC.gameEngine.vTreeAngle = -0.006; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSSLOW; }; break; case PHASE_ATTACK1: this.isVulnerable = true; if (this.currLife < ((this.maxLife * 3) / 4)){ this.setLife(((this.maxLife * 3) / 4), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION1; this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 116, -17, true, true); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, -113, 24, true, true); addNiceExplosion(116, -17); addNiceExplosion(-113, 24); removeAllBullets(); }; break; case PHASE_INTERMISSION1: this.gameMC.gameEngine.vTreeAngle = -0.015; this.isVulnerable = false; this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; } else { this.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK2; changeWeapon(PHASE_ATTACK2); this.alpha = 1; this.currScanState = STATE_RESTING; this.scannerSpeed = 5; this.scannerRestTimer = 100; this.currRestTimer = 0; this.gameMC.gameEngine.vTreeAngle = -0.006; }; break; case PHASE_ATTACK2: this.isVulnerable = true; if (this.currLife < (this.maxLife / 2)){ this.setLife((this.maxLife / 2), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION2; this.currScanState = STATE_SCANSTOP; this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 177, 106, true, true); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 150, -8, true, true); addNiceExplosion(177, 106); addNiceExplosion(150, -8); removeAllBullets(); this.turret1MC.enableWeapon(false); this.turret2MC.enableWeapon(false); }; break; case PHASE_INTERMISSION2: this.gameMC.gameEngine.vTreeAngle = -0.015; this.isVulnerable = false; this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; } else { this.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK3; changeWeapon(PHASE_ATTACK3); this.alpha = 1; this.currScanState = STATE_RESTING; this.scannerSpeed = 5; this.scannerRestTimer = 100; this.currRestTimer = 0; this.gameMC.gameEngine.vTreeAngle = -0.006; }; break; case PHASE_ATTACK3: this.isVulnerable = true; if (this.currLife < (this.maxLife / 4)){ this.setLife((this.maxLife / 4), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION3; this.currScanState = STATE_SCANSTOP; this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, -165, 252, true, true); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 0, -33, true, true); addNiceExplosion(-165, 252); addNiceExplosion(0, -33); removeAllBullets(); this.turret1MC.enableWeapon(false); this.turret2MC.enableWeapon(false); this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSFAST; }; break; case PHASE_INTERMISSION3: this.gameMC.gameEngine.vTreeAngle = -0.03; this.isVulnerable = false; this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; } else { this.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK4; changeWeapon(PHASE_ATTACK4); this.alpha = 1; specialScanTimer = 0; scannerGoingDown = true; this.currScanState = STATE_SPECIALREST; this.scannerMC.y = SCANNER_MINY; this.scannerMC2.y = SCANNER_MINY; specialAttackPhase = 0; }; break; case PHASE_ATTACK4: this.isVulnerable = true; specialScanTimer++; switch (specialAttackPhase){ case 0: if (specialScanTimer > 100){ changeWeapon(SUPER_ATTACK); specialScanTimer = 0; specialAttackPhase = 1; }; break; case 1: if (specialScanTimer > 30){ changeWeapon(-1); if (this.currScanState != this.STATE_SPECIALDETECT){ this.currScanState = STATE_SPECIALSCAN; }; specialAttackPhase = 2; specialScanTimer = 0; }; break; case 2: if (specialScanTimer > 130){ scannerGoingDown = false; if (this.currScanState == this.STATE_SPECIALSCAN){ this.currScanState = STATE_SPECIALREST; }; specialAttackPhase = 0; specialScanTimer = 0; }; break; }; if (this.currLife < 0){ this.setLife(0, false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_DEATH; this.explosionTimer = 0; this.explosionNumber = 0; this.explosionTimerMax = 100; this.currScanState = STATE_SCANSTOP; this.turret1MC.enableWeapon(false); this.turret2MC.enableWeapon(false); this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSDEAD; removeAllBullets(); }; break; case PHASE_DEATH: this.gameMC.gameEngine.vTreeAngle = -0.002; this.isHarmful = false; this.scaleX = (this.scaleX - 0.002); this.scaleY = this.scaleX; this.turret1MC.scaleX = this.scaleX; this.turret1MC.scaleY = this.scaleY; this.turret2MC.scaleX = this.scaleX; this.turret2MC.scaleY = this.scaleY; this.rotation = (this.rotation + 0.15); this.turret1MC.rotation = this.rotation; this.turret2MC.rotation = this.rotation; this.posY = (this.posY + 0.2); this.explosionTimer++; if (this.explosionTimer > this.explosionTimerMax){ this.explosionTimer = 0; this.explosionNumber++; switch (this.explosionNumber){ case 1: _local1 = -50; _local2 = -50; _local3 = 2; this.explosionTimerMax = 40; break; case 2: _local1 = 100; _local2 = 50; _local3 = 2; this.explosionTimerMax = 35; break; case 3: _local1 = -100; _local2 = 30; _local3 = 2; this.explosionTimerMax = 30; break; case 4: _local1 = 50; _local2 = -100; _local3 = 2; this.explosionTimerMax = 25; break; case 5: _local1 = -32; _local2 = -93; _local3 = 2; this.explosionTimerMax = 20; break; case 6: _local1 = -32; _local2 = -93; _local3 = 2; this.explosionTimerMax = 15; break; case 7: _local1 = -32; _local2 = -93; _local3 = 2; this.explosionTimerMax = 10; break; case 8: _local1 = 25; _local2 = 10; _local3 = 2; this.explosionTimerMax = 40; break; case 9: _local1 = 0; _local2 = 200; _local3 = 4; this.explosionTimerMax = 150; break; case 10: this.currState = this.STATE_OUTOFSTAGE; this.turret1MC.currState = this.STATE_OUTOFSTAGE; this.turret2MC.currState = this.STATE_OUTOFSTAGE; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_NOSOUND; break; }; if (this.explosionNumber <= 9){ _local4 = new Point((_local1 * this.scaleX), (_local2 * this.scaleY)); _local5 = this.localToGlobal(_local4); this.gameMC.gameEngine.addExplosion(_local5.x, _local5.y, _local3, false); }; }; break; }; shake(); this.x = (this.posX + this.currFloatAnimX); this.y = (this.posY + this.currFloatAnimY); } public function renderScanner(){ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; switch (this.currScanState){ case this.STATE_SCANSTOP: if (this.scannerMC.alpha != 0){ this.scannerMC.alpha = 0; this.scannerMC2.alpha = 0; }; break; case this.STATE_SCANNING: this.scannerMC2.y = (this.scannerMC2.y + ((this.scannerMC.y - this.scannerMC2.y) * 0.3)); if (this.scannerMC.y > SCANNER_MAXY){ this.scannerMC.alpha = (this.scannerMC.alpha - 0.1); this.scannerMC2.alpha = (this.scannerMC.alpha / 4); if (this.scannerMC.alpha <= 0){ this.scannerMC.alpha = 0; this.scannerMC2.alpha = 0; this.currScanState = this.STATE_RESTING; this.currRestTimer = 0; }; } else { this.scannerMC.y = (this.scannerMC.y + this.scannerSpeed); }; if (hasBeenScanned){ _local1 = (this.yourShip.x - prevFriendX); _local2 = (this.yourShip.y - prevFriendY); _local3 = Math.sqrt(((_local1 * _local1) + (_local2 * _local2))); if ((((_local3 > 5)) || (this.yourShip.isShooting))){ soundScanAlarm.play(); this.currScanState = this.STATE_DETECTED; this.currRestTimer = 0; this.turret1MC.enableWeapon(true); this.turret2MC.enableWeapon(true); }; }; hasBeenScanned = false; if (isScanned()){ hasBeenScanned = true; }; break; case this.STATE_SPECIALSCAN: this.scannerMC.y = (this.scannerMC.y + (((this.yourShip.y - this.y) - this.scannerMC.y) * 0.1)); this.scannerMC2.y = (this.scannerMC2.y + ((this.scannerMC.y - this.scannerMC2.y) * 0.3)); if (hasBeenScanned){ _local4 = (this.yourShip.x - prevFriendX); _local5 = (this.yourShip.y - prevFriendY); _local6 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if ((((_local6 > 5)) || (this.yourShip.isShooting))){ soundScanAlarm.play(); this.currScanState = this.STATE_SPECIALDETECT; this.currRestTimer = 0; this.turret1MC.enableWeapon(true); this.turret2MC.enableWeapon(true); }; }; hasBeenScanned = false; if (isScanned()){ hasBeenScanned = true; }; break; case this.STATE_DETECTED: this.scannerMC2.y = (this.scannerMC2.y + ((this.scannerMC.y - this.scannerMC2.y) * 0.3)); hasBeenScanned = false; currRestTimer++; if ((currRestTimer % 8) < 4){ this.scannerMC.alpha = 1; this.scannerMC2.alpha = this.scannerMC.alpha; } else { this.scannerMC.alpha = 0.2; this.scannerMC2.alpha = this.scannerMC.alpha; }; if (currRestTimer > 100){ this.currRestTimer = 0; this.turret1MC.enableWeapon(false); this.turret2MC.enableWeapon(false); this.currScanState = STATE_RESTING; this.scannerMC.alpha = 0; this.scannerMC2.alpha = 0; }; break; case this.STATE_SPECIALDETECT: this.scannerMC2.y = (this.scannerMC2.y + ((this.scannerMC.y - this.scannerMC2.y) * 0.3)); hasBeenScanned = false; currRestTimer++; if ((currRestTimer % 8) < 4){ this.scannerMC.alpha = 1; this.scannerMC2.alpha = this.scannerMC.alpha; } else { this.scannerMC.alpha = 0.2; this.scannerMC2.alpha = this.scannerMC.alpha; }; if (currRestTimer > 100){ this.currRestTimer = 0; this.turret1MC.enableWeapon(false); this.turret2MC.enableWeapon(false); this.scannerMC.y = SCANNER_MINY; this.scannerMC2.y = SCANNER_MINY; this.currScanState = STATE_SPECIALREST; this.scannerMC.alpha = 0; this.scannerMC2.alpha = 0; this.scannerGoingDown = true; }; break; case this.STATE_RESTING: hasBeenScanned = false; this.currRestTimer++; if (this.currRestTimer > this.scannerRestTimer){ this.scannerMC.y = SCANNER_MINY; this.scannerMC2.y = SCANNER_MINY; this.scannerMC.alpha = (this.scannerMC.alpha + 0.1); this.scannerMC2.alpha = (this.scannerMC.alpha / 4); if (this.scannerMC.alpha >= 1){ this.scannerMC.alpha = 1; this.scannerMC2.alpha = (this.scannerMC.alpha / 4); this.currScanState = this.STATE_SCANNING; }; }; break; case this.STATE_SPECIALREST: if (this.scannerMC.alpha <= 1){ this.scannerMC.alpha = (this.scannerMC.alpha + 0.1); this.scannerMC2.alpha = (this.scannerMC.alpha / 4); }; this.scannerMC2.y = (this.scannerMC2.y + ((this.scannerMC.y - this.scannerMC2.y) * 0.3)); if (scannerGoingDown){ this.scannerMC.y = (this.scannerMC.y + 8); if (this.scannerMC.y > (SCANNER_MINY + ((SCANNER_MAXY - SCANNER_MINY) / 3))){ scannerGoingDown = false; }; } else { this.scannerMC.y = (this.scannerMC.y - 8); if (this.scannerMC.y < SCANNER_MINY){ scannerGoingDown = true; }; }; if (hasBeenScanned){ _local7 = (this.yourShip.x - prevFriendX); _local8 = (this.yourShip.y - prevFriendY); _local9 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); if ((((_local9 > 5)) || (this.yourShip.isShooting))){ soundScanAlarm.play(); this.currScanState = this.STATE_SPECIALDETECT; this.currRestTimer = 0; this.turret1MC.enableWeapon(true); this.turret2MC.enableWeapon(true); }; }; hasBeenScanned = false; if (isScanned()){ hasBeenScanned = true; }; break; }; if (this.yourShip.currState == this.yourShip.STATE_ALIVE){ if (isCollideScanner()){ this.yourShip.currState = this.yourShip.STATE_EXPLODE; }; }; } public function isCollideScanner():Boolean{ var _local1:Point; var _local2:Point; _local1 = new Point(this.scanThingMC.x, this.scanThingMC.y); _local2 = new Point(this.scanThingMC2.x, this.scanThingMC2.y); _local1 = this.localToGlobal(_local1); _local2 = this.localToGlobal(_local2); if ((((Math.abs((_local1.x - this.yourShip.x)) < ((this.scanThingMC.width / 2) + (this.yourShip.origWidth / 2)))) && ((Math.abs((_local1.y - this.yourShip.y)) < ((this.scanThingMC.height / 2) + (this.yourShip.origHeight / 2)))))){ return (true); }; if ((((Math.abs((_local2.x - this.yourShip.x)) < ((this.scanThingMC2.width / 2) + (this.yourShip.origWidth / 2)))) && ((Math.abs((_local2.y - this.yourShip.y)) < ((this.scanThingMC2.height / 2) + (this.yourShip.origHeight / 2)))))){ return (true); }; return (false); } } }//package classes
Section 25
//Lvl2BossTurret (classes.Lvl2BossTurret) package classes { import flash.display.*; import flash.events.*; import flash.geom.*; public class Lvl2BossTurret extends Enemy { public var posX:int; public var posY:int; public var hostMC:Enemy; public function Lvl2BossTurret(_arg1:int, _arg2:MovieClip, _arg3:Enemy, _arg4:int, _arg5:int){ super(Lvl2BossEnemy_turret, _arg1, _arg2); this.hostMC = _arg3; this.posX = _arg4; this.posY = _arg5; this.gameMC.gameEngine.shipLayer.addChild(this); this.isNormalEnemy = false; this.gameMC.gameEngine.enemyArray.push(this); this.isVulnerable = false; } override public function specialrender(){ var _local1:Point; _local1 = new Point(this.posX, this.posY); _local1 = this.hostMC.localToGlobal(_local1); this.x = _local1.x; this.y = _local1.y; } public function enableWeapon(_arg1:Boolean){ var _local2:*; if (_arg1){ switch (difficultyLevel){ case this.DIFFICULTY_EASY: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 0.5, PARTICLE_LINE, 0, 46, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 0, 1, 10, 90); break; case this.DIFFICULTY_MEDIUM: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 0.5, PARTICLE_LINE, 0, 46, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 0, 1, 10, 90); break; case this.DIFFICULTY_HARD: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 0.5, PARTICLE_LINE, 0, 46, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 0, 3, 10, 90); break; }; } else { this.followEnemy = false; _local2 = this.bulletGeneratorArray.length; while (_local2 >= 0) { this.bulletGeneratorArray[_local2] = null; this.bulletGeneratorArray.splice(_local2, 1); _local2--; }; }; } } }//package classes
Section 26
//Lvl2Medium (classes.Lvl2Medium) package classes { import flash.display.*; public class Lvl2Medium extends EnemyScanAndGo { public function Lvl2Medium(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl2MediumMC, _arg1, _arg2, _arg3, _arg4, 100, 5, 200, 0.1, this.ROTATION_ALWAYS, 6); this.groupNo = 24; this.origWidth = 15; this.origHeight = 70; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 40, 2, true, false, 2, 0, -14, -10, 1, BulletSquareArrowFriendly, BULLETMOVE_FASTER, 1.05, 2, 80, 270)); this.absorbTimer = 100; this.addParticleGenerator(this.PARTICLE_SMOKE, -19, -17, true, false); this.addParticleGenerator(this.PARTICLE_SMOKE, 19, -17, true, false); this.setLife(50, true); this.absorbTimer = this.currLife; this.score = this.SCORE_MEDIUM; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 160, 1, true, false, 0.5, PARTICLE_LINE, -14, -10, 1, BulletSquareArrow, BULLETMOVE_FASTER, 1.05, 1, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 160, 1, true, false, 0.5, PARTICLE_LINE, 14, -10, 1, BulletSquareArrow, BULLETMOVE_FASTER, 1.05, 1, 8, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 1, true, false, 0.5, PARTICLE_LINE, -14, -10, 1, BulletSquareArrow, BULLETMOVE_FASTER, 1.05, 2, 8, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 1, true, false, 0.5, PARTICLE_LINE, 14, -10, 1, BulletSquareArrow, BULLETMOVE_FASTER, 1.05, 2, 8, 90); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 1, true, false, 0.5, PARTICLE_LINE, -14, -10, 1, BulletSquareArrow, BULLETMOVE_FASTER, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 1, true, false, 0.5, PARTICLE_LINE, 14, -10, 1, BulletSquareArrow, BULLETMOVE_FASTER, 1.05, 5, 20, 90); break; }; } } }//package classes
Section 27
//Lvl2Scanner (classes.Lvl2Scanner) package classes { import flash.display.*; import flash.events.*; import flash.geom.*; public class Lvl2Scanner extends MovieClip { public var gameMC:MovieClip; public var scannerMC:MovieClip; public var yourShip:MovieClip; public var hasBeenScanned:Boolean; public var STATE_REMOVE:int;// = 4 public var SCANNER_MAXY:int;// = 244 public var speed:Number; public var scanThingMC2:MovieClip; public var layer:Sprite; public var tutorialMC:MovieClip; public var currState:int; public var difficultyLevel:int; public var STATE_DETECTED:int;// = 2 public var prevX:Number; public var prevY:Number; public var scannerRestTimer:int; public var scannerMC2:MovieClip; public var STATE_RESTING:int;// = 3 public var SCANNER_MINY:int;// = 34 public var scanThingMC:MovieClip; public var currRestTimer:int; public var soundScanAlarm:sndScanAlarm; public var STATE_SCANNING:int;// = 1 public var scannerSpeed:int; public function Lvl2Scanner(_arg1:int, _arg2:MovieClip, _arg3:Number, _arg4:int, _arg5:int, _arg6:Boolean){ STATE_SCANNING = 1; STATE_DETECTED = 2; STATE_RESTING = 3; STATE_REMOVE = 4; SCANNER_MINY = 34; SCANNER_MAXY = 244; super(); this.difficultyLevel = _arg1; this.gameMC = _arg2; this.speed = _arg3; this.scannerSpeed = _arg4; this.scannerRestTimer = _arg5; this.x = 5; this.y = (0 - this.height); this.gameMC.gameEngine.shipLayer.addChild(this); this.currRestTimer = 0; this.currState = STATE_RESTING; this.yourShip = this.gameMC.gameEngine.yourShip; this.layer = this.gameMC.gameEngine.shipLayer; this.hasBeenScanned = false; this.soundScanAlarm = new sndScanAlarm(); if (_arg6){ this.tutorialMC.alpha = 0.8; } else { this.tutorialMC.alpha = 0; }; } public function isScanned():Boolean{ if (Math.abs(((this.y + this.scannerMC.y) - this.yourShip.y)) < 20){ prevX = this.yourShip.x; prevY = this.yourShip.y; return (true); }; return (false); } public function isCollide():Boolean{ var _local1:Point; var _local2:Point; _local1 = new Point(this.scanThingMC.x, this.scanThingMC.y); _local2 = new Point(this.scanThingMC2.x, this.scanThingMC2.y); _local1 = this.localToGlobal(_local1); _local2 = this.localToGlobal(_local2); if ((((Math.abs((_local1.x - this.yourShip.x)) < ((this.scanThingMC.width / 2) + (this.yourShip.origWidth / 2)))) && ((Math.abs((_local1.y - this.yourShip.y)) < ((this.scanThingMC.height / 2) + (this.yourShip.origHeight / 2)))))){ return (true); }; if ((((Math.abs((_local2.x - this.yourShip.x)) < ((this.scanThingMC2.width / 2) + (this.yourShip.origWidth / 2)))) && ((Math.abs((_local2.y - this.yourShip.y)) < ((this.scanThingMC2.height / 2) + (this.yourShip.origHeight / 2)))))){ return (true); }; return (false); } public function render(){ var _local1:Number; var _local2:Number; var _local3:Number; switch (this.currState){ case this.STATE_SCANNING: this.scannerMC2.y = (this.scannerMC2.y + ((this.scannerMC.y - this.scannerMC2.y) * 0.3)); if (this.scannerMC.y > SCANNER_MAXY){ this.scannerMC.alpha = (this.scannerMC.alpha - 0.1); this.scannerMC2.alpha = (this.scannerMC.alpha / 4); if (this.scannerMC.alpha <= 0){ this.scannerMC.alpha = 0; this.scannerMC2.alpha = 0; this.currState = this.STATE_RESTING; this.currRestTimer = 0; }; } else { this.scannerMC.y = (this.scannerMC.y + this.scannerSpeed); }; if (hasBeenScanned){ _local1 = (this.yourShip.x - prevX); _local2 = (this.yourShip.y - prevY); _local3 = Math.sqrt(((_local1 * _local1) + (_local2 * _local2))); if ((((_local3 > 5)) || (this.yourShip.isShooting))){ soundScanAlarm.play(); this.currState = this.STATE_DETECTED; this.gameMC.gameEngine.enemyArray.push(new Lvl2SecurityBot(this.difficultyLevel, this.gameMC, 70, 100)); this.gameMC.gameEngine.enemyArray.push(new Lvl2SecurityBot(this.difficultyLevel, this.gameMC, (this.gameMC.STAGE_WIDTH - 70), 100)); currRestTimer = 0; }; }; hasBeenScanned = false; if (isScanned()){ hasBeenScanned = true; }; break; case this.STATE_DETECTED: this.scannerMC2.y = (this.scannerMC2.y + ((this.scannerMC.y - this.scannerMC2.y) * 0.3)); hasBeenScanned = false; currRestTimer++; if ((currRestTimer % 8) < 4){ this.scannerMC.alpha = 1; this.scannerMC2.alpha = this.scannerMC.alpha; } else { this.scannerMC.alpha = 0.2; this.scannerMC2.alpha = this.scannerMC.alpha; }; break; case this.STATE_RESTING: hasBeenScanned = false; this.currRestTimer++; if (this.currRestTimer > this.scannerRestTimer){ this.scannerMC.y = SCANNER_MINY; this.scannerMC2.y = SCANNER_MINY; this.scannerMC.alpha = (this.scannerMC.alpha + 0.1); this.scannerMC2.alpha = (this.scannerMC.alpha / 4); if (this.scannerMC.alpha >= 1){ this.scannerMC.alpha = 1; this.scannerMC2.alpha = (this.scannerMC.alpha / 4); this.currState = this.STATE_SCANNING; }; }; break; }; if (this.yourShip.currState == this.yourShip.STATE_ALIVE){ if (isCollide()){ this.yourShip.currState = this.yourShip.STATE_EXPLODE; }; }; this.y = (this.y + this.speed); if (this.y > this.gameMC.STAGE_HEIGHT){ this.currState = this.STATE_REMOVE; }; } } }//package classes
Section 28
//Lvl2SecurityBot (classes.Lvl2SecurityBot) package classes { import flash.display.*; public class Lvl2SecurityBot extends EnemyStopAndGo { public function Lvl2SecurityBot(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl2Small1, _arg1, _arg2, _arg3, -100, _arg3, _arg4, _arg3, -100, 400, 0.1, this.ROTATION_NONE, 6); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 10, 10, false, false, 0.5, 0, 0, 0, 1, BulletSquareArrowFriendly, BULLETMOVE_CONSISTENT, 1.05, 1, 250, 290)); this.absorbTimer = 70; this.setLife(70, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 20, 5, false, false, 0.5, PARTICLE_LINE, 0, 18, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 70, 110); break; case this.DIFFICULTY_MEDIUM: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 15, 6, false, false, 0.5, PARTICLE_LINE, 0, 18, 1, BulletSquareArrow, BULLETMOVE_CONSISTENT, 1.05, 1, 10, 90); break; case this.DIFFICULTY_HARD: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 15, 5, false, false, 0.5, PARTICLE_LINE, 0, 18, 1, BulletSquareArrow, BULLETGENERATOR_ANGLE, 1.05, 3, 70, 110); break; }; } } }//package classes
Section 29
//Lvl2SmallInterceptor (classes.Lvl2SmallInterceptor) package classes { import flash.display.*; public class Lvl2SmallInterceptor extends EnemyStopAndGo { public function Lvl2SmallInterceptor(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl2SmallInterceptorMC, _arg1, _arg2, _arg3, -50, _arg3, _arg4, _arg3, 700, 400, 0.1, this.ROTATION_NONE, 6); this.groupNo = 21; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 10, true, false, 1, 0, 0, 14, 1, BulletGlowCircle2Friendly, BULLETMOVE_FASTER, 1.02, 2, 20, 270)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 10, true, false, 1, 0, 0, 14, 1, BulletGlowCircle2Friendly, BULLETMOVE_FASTER, 1.02, 2, 20, 270)); this.addParticleGenerator(this.PARTICLE_SMOKE, -4, -21, true, false); this.addParticleGenerator(this.PARTICLE_SMOKE, 4, -21, true, false); this.followEnemy = true; this.setLife(20, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 5, 50, 4, false, false, 0.5, PARTICLE_LINE, 3, 25, 1, BulletGlowCircle2, BULLETMOVE_CONSISTENT, 1.05, 1, 20, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 5, 20, 2, false, false, 0.5, PARTICLE_LINE, 3, 25, 1, BulletGlowCircle2, BULLETMOVE_FASTER, 1.05, 1, 20, 90); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 5, 20, 2, false, false, 0.5, PARTICLE_LINE, 3, 25, 1, BulletGlowCircle2, BULLETMOVE_FASTER, 1.05, 1, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 15, 20, 6, false, false, 0.5, PARTICLE_LINE, 3, 25, 1, BulletGlowCircle2, BULLETMOVE_CONSISTENT, 1.05, 2, 10, 90); break; }; } } }//package classes
Section 30
//Lvl2SmallPursuit (classes.Lvl2SmallPursuit) package classes { import flash.display.*; public class Lvl2SmallPursuit extends EnemyAtoB { public function Lvl2SmallPursuit(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(Lvl2SmallScoutMC, _arg1, _arg2, 5, _arg3, _arg4, _arg5, _arg6); this.groupNo = 22; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 25, 8, false, false, 5, 0, 0, 0, 1, BulletStickRedFriendly, BULLETMOVE_CONSISTENT, 0, 3, 250, 290)); this.addParticleGenerator(this.PARTICLE_SMOKE, 19, -10, true, false); this.setLife(5, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 50, 4, false, false, 5, 0, 4, 5, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 0, 2, 70, 110); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 50, 4, false, false, 5, 0, 4, 5, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 0, 3, 70, 110); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 50, 6, false, false, 5, 0, 4, 5, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 0, 5, 60, 120); break; }; } } }//package classes
Section 31
//Lvl2SmallScout (classes.Lvl2SmallScout) package classes { import flash.display.*; public class Lvl2SmallScout extends EnemyZPattern { public function Lvl2SmallScout(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:Boolean){ super(Lvl2SmallPursuitMC, _arg1, _arg2, 6, _arg3, _arg4, 70, 60, 0.2, _arg5); this.groupNo = 23; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 15, 8, false, false, 0.5, 0, 0, 0, 1, BulletGlowCircleFriendly, BULLETMOVE_CONSISTENT, 0, 1, 0, 270)); this.addParticleGenerator(this.PARTICLE_SMOKE, 0, -30, true, false); this.setLife(5, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 70, 4, false, false, 0.5, 0, 0, 15, 1, BulletGlowCircle, BULLETMOVE_CONSISTENT, 0, 1, 0, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, ((Math.random() * 20) + 35), 4, false, false, 0.5, 0, 0, 15, 1, BulletGlowCircle, BULLETMOVE_CONSISTENT, 0, 1, 0, 90); break; case this.DIFFICULTY_HARD: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, ((Math.random() * 20) + 35), 5, false, false, 0.5, 0, 0, 15, 1, BulletGlowCircle, BULLETMOVE_CONSISTENT, 0, 1, 0, 90); break; }; } } }//package classes
Section 32
//Lvl3Big (classes.Lvl3Big) package classes { import flash.display.*; public class Lvl3Big extends EnemyScanAndGo { public var turret3MC:Enemy; public var turret2MC:Enemy; public var turret1MC:Enemy; public function Lvl3Big(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl3BigMC, _arg1, _arg2, _arg3, _arg4, 150, 5, 400, 0.05, this.ROTATION_ALWAYS, 6); this.groupNo = 35; this.turret1MC = new Lvl3BigTurret(_arg1, _arg2, this, 0, 11); this.turret2MC = new Lvl3BigTurret(_arg1, _arg2, this, -39, 29); this.turret3MC = new Lvl3BigTurret(_arg1, _arg2, this, 39, 29); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 2, false, false, 2, 0, 0, 0, 1, BulletCrescentFriendly, BULLETMOVE_FASTER, 1.05, 8, 10, 270)); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 10, 20, 8, false, false, 2, 0, 0, 0, 1, BulletRadarFriendly, BULLETMOVE_FASTER, 1.05, 4, 10, 270)); this.setLife(100, true); this.absorbTimer = this.currLife; this.score = this.SCORE_BIG; this.addParticleGenerator(this.PARTICLE_SMOKE, 0, -38, true, false); this.turret1MC.followEnemy = true; this.turret2MC.followEnemy = true; this.turret3MC.followEnemy = true; this.setLife(200, true); switch (_arg1){ case this.DIFFICULTY_EASY: this.turret1MC.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 2, false, false, 0.5, 0, 0, 22, 1, BulletRadar, BULLETMOVE_FASTER, 1.05, 2, 30, 90); this.turret2MC.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 80, 4, true, false, 0.5, 0, 0, 22, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.05, 3, 60, 120); this.turret3MC.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 80, 3, true, false, -0.5, 0, 0, 22, 1, BulletCrescent, BULLETMOVE_STOP, 1.1, 1, 60, 120); break; case this.DIFFICULTY_MEDIUM: this.turret1MC.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 2, false, false, 0.5, 0, 0, 22, 1, BulletRadar, BULLETMOVE_FASTER, 1.05, 4, 30, 90); this.turret2MC.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 80, 4, true, false, 0.5, 0, 0, 22, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.05, 5, 60, 120); this.turret3MC.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 80, 3, true, false, -0.5, 0, 0, 22, 1, BulletCrescent, BULLETMOVE_STOP, 1.1, 2, 60, 120); break; case this.DIFFICULTY_HARD: this.turret1MC.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 2, false, false, 0.5, 0, 0, 22, 1, BulletRadar, BULLETMOVE_FASTER, 1.05, 5, 30, 90); this.turret2MC.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 80, 4, true, false, 0.5, 0, 0, 22, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.05, 5, 60, 120); this.turret3MC.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 3, true, false, -0.5, 0, 0, 22, 1, BulletCrescent, BULLETMOVE_STOP, 1.1, 5, 20, 90); break; }; } override public function specialrender(){ this.turret1MC.currState = this.currState; this.turret2MC.currState = this.currState; this.turret3MC.currState = this.currState; } } }//package classes
Section 33
//Lvl3BigTurret (classes.Lvl3BigTurret) package classes { import flash.display.*; import flash.events.*; import flash.geom.*; public class Lvl3BigTurret extends Enemy { public var posX:int; public var posY:int; public var hostMC:Enemy; public function Lvl3BigTurret(_arg1:int, _arg2:MovieClip, _arg3:Enemy, _arg4:int, _arg5:int){ super(Lvl3BigTurretMC, _arg1, _arg2); this.hostMC = _arg3; this.posX = _arg4; this.posY = _arg5; this.gameMC.gameEngine.shipLayer.addChild(this); this.isNormalEnemy = false; this.gameMC.gameEngine.enemyArray.push(this); this.isVulnerable = false; } override public function specialrender(){ var _local1:Point; _local1 = new Point(this.posX, this.posY); _local1 = this.hostMC.localToGlobal(_local1); this.x = _local1.x; this.y = _local1.y; this.currState = this.hostMC.currState; } } }//package classes
Section 34
//Lvl3Boss (classes.Lvl3Boss) package classes { import flash.display.*; import flash.events.*; public class Lvl3Boss extends Enemy { public var PHASE_ATTACK2:int;// = 5 public var PHASE_ATTACK3:int;// = 7 public var PHASE_ATTACK4:int;// = 9 public var STATE_SCANSTOP:int;// = 0 public var PHASE_ATTACK1:int;// = 3 public var STATE_REMOVE:int;// = 4 public var scannerMC:MovieClip; public var maxTimer:int; public var dialogueTimer:int; public var posX:Number; public var posY:Number; public var PHASE_REALLYDEATH:int;// = 13 public var STATE_SCANNING:int;// = 1 public var currDetectTimer:int; public var PHASE_ARRIVAL:int;// = 1 public var scannerSpeed:int; public var yourShip:CharShip; public var PHASE_INTERMISSION2:int;// = 6 public var PHASE_INTERMISSION3:int;// = 8 public var PHASE_INTERMISSION4:int;// = 10 public var STATE_SPECIALREST:int;// = 6 public var PHASE_INTERMISSION1:int;// = 4 public var STATE_SPECIALDETECT:int;// = 7 public var explosionTimer:int; public var PHASE_SUPERDEATH:int;// = 15 public var SCANNER_MAXY:int;// = 344 public var phaseCheckpoint:int; public var scannerGoingDown:Boolean; public var dialogueMC:MovieClip; public var currCheckpoint:int; public var specialAttackPhase:int; public var PHASE_BALLAPPEARS:int;// = 2 public var STATE_RESTING:int;// = 3 public var scanThingMC:MovieClip; public var currRestTimer:int; public var currScanState:int; public var SUPER_ATTACK3:int;// = 997 public var SUPER_ATTACK4:int;// = 996 public var specialScanTimer:int; public var explosionTimerMax:int; public var SUPER_ATTACK2:int;// = 998 public var SCANNER_MINY:int;// = 70 public var PHASE_TAKEAWAY:int;// = 14 public var origPosX:int; public var currPhase:int; public var PHASE_DEATH:int;// = 11 public var origPosY:int; public var Lvl4Medium:MovieClip; public var dialoguePhase:int; public var STATE_DETECTED:int;// = 2 public var scannerMC2:MovieClip; public var centerX:int; public var centerY:int; public var pointArray:Array; public var appearTimer:int; public var explosionNumber:int; public var timerCheckpoint:int; public var SHAKE:Number;// = 0.2 public var currFloatAnimX:Number; public var currFloatAnimY:Number; public var scanThingMC2:MovieClip; public var SHAKE_DIST:int;// = 15 public var floatAnimX:Number; public var scannerRestTimer:int; public var PHASE_DIALOGUE1:int;// = 12 public var floatAnimY:Number; public var SUPER_ATTACK:int;// = 999 public var STATE_SPECIALSCAN:int;// = 5 public function Lvl3Boss(_arg1:int, _arg2:MovieClip){ PHASE_ARRIVAL = 1; PHASE_BALLAPPEARS = 2; PHASE_ATTACK1 = 3; PHASE_INTERMISSION1 = 4; PHASE_ATTACK2 = 5; PHASE_INTERMISSION2 = 6; PHASE_ATTACK3 = 7; PHASE_INTERMISSION3 = 8; PHASE_ATTACK4 = 9; PHASE_INTERMISSION4 = 10; PHASE_DEATH = 11; PHASE_DIALOGUE1 = 12; PHASE_REALLYDEATH = 13; PHASE_TAKEAWAY = 14; PHASE_SUPERDEATH = 15; SUPER_ATTACK = 999; SUPER_ATTACK2 = 998; SUPER_ATTACK3 = 997; SUPER_ATTACK4 = 996; SHAKE = 0.2; SHAKE_DIST = 15; STATE_SCANSTOP = 0; STATE_SCANNING = 1; STATE_DETECTED = 2; STATE_RESTING = 3; STATE_REMOVE = 4; STATE_SPECIALSCAN = 5; STATE_SPECIALREST = 6; STATE_SPECIALDETECT = 7; SCANNER_MINY = 70; SCANNER_MAXY = 344; super(EnemyFairy, _arg1, _arg2); this.groupNo = 999; this.origWidth = this.width; this.origHeight = this.height; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 10, false, false, 5, 0, 0, 0, 1, BulletCrescentFriendly, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 270)); this.currPhase = this.PHASE_ARRIVAL; this.x = (this.gameMC.STAGE_WIDTH / 2); this.y = -500; this.posX = this.x; this.posY = this.y; this.gameMC.gameEngine.shipLayer.addChild(this); this.isNormalEnemy = false; this.centerX = 0; this.centerY = 0; this.currFloatAnimX = 0; this.currFloatAnimY = 0; this.floatAnimX = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.floatAnimY = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.setLife(900, true); this.absorbTimer = 100; this.score = this.SCORE_BOSS; this.yourShip = this.gameMC.gameEngine.yourShip; this.addParticleGenerator(this.PARTICLE_FAIRY, 0, 0, true, false); } public function processBossLifeBar(){ var _local1:BossLifeMC; var _local2:int; _local1 = this.gameMC.gameEngine.bossLifeMC; switch (currPhase){ case PHASE_ARRIVAL: _local1.y = -100; _local1.life1MC.scaleX = 1; _local1.life2MC.scaleX = 1; _local1.life3MC.scaleX = 1; _local1.life4MC.scaleX = 1; break; case PHASE_ATTACK1: _local1.y = (_local1.y + ((20 - _local1.y) * 0.2)); _local2 = (this.currLife - ((this.maxLife * 3) / 4)); if (_local2 < 0){ _local2 = 0; }; _local1.life4MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION1: _local1.life4MC.scaleX = 0; _local1.life3MC.alpha = this.alpha; break; case PHASE_ATTACK2: if (_local1.life3MC.alpha != 1){ _local1.life3MC.alpha = 1; }; _local2 = (this.currLife - (this.maxLife / 2)); if (_local2 < 0){ _local2 = 0; }; _local1.life3MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION2: _local1.life3MC.scaleX = 0; _local1.life2MC.alpha = this.alpha; break; case PHASE_ATTACK3: if (_local1.life2MC.alpha != 1){ _local1.life2MC.alpha = 1; }; _local2 = (this.currLife - (this.maxLife / 4)); if (_local2 < 0){ _local2 = 0; }; _local1.life2MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION3: _local1.life2MC.scaleX = 0; _local1.life1MC.alpha = this.alpha; break; case PHASE_ATTACK4: if (_local1.life1MC.alpha != 1){ _local1.life1MC.alpha = 1; }; _local2 = this.currLife; if (_local2 < 0){ _local2 = 0; }; _local1.life1MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_DEATH: _local1.life1MC.scaleX = 0; _local1.y = (_local1.y + ((-100 - _local1.y) * 0.05)); break; }; } public function processAttack(){ if (currCheckpoint == 0){ this.posX = (this.posX + ((this.origPosX - this.posX) * 0.3)); this.posY = (this.posY + ((this.origPosY - this.posY) * 0.3)); } else { this.posX = (this.posX + ((pointArray[currCheckpoint].posX - this.posX) * pointArray[currCheckpoint].speedModifier)); this.posY = (this.posY + ((pointArray[currCheckpoint].posY - this.posY) * pointArray[currCheckpoint].speedModifier)); }; switch (phaseCheckpoint){ case 0: timerCheckpoint++; if (timerCheckpoint > pointArray[currCheckpoint].howLong){ phaseCheckpoint = 0; timerCheckpoint = 0; if (currCheckpoint == 0){ switch (currPhase){ case PHASE_ATTACK1: changeWeapon(SUPER_ATTACK); break; case PHASE_ATTACK2: changeWeapon(SUPER_ATTACK2); break; case PHASE_ATTACK3: changeWeapon(SUPER_ATTACK3); break; case PHASE_ATTACK4: changeWeapon(SUPER_ATTACK4); break; }; }; currCheckpoint++; if (currCheckpoint >= pointArray.length){ currCheckpoint = 0; changeWeapon(currPhase); }; }; break; case 1: currCheckpoint = 0; break; }; } public function changeWeapon(_arg1:int){ this.removeAllBulletGenerator(); switch (this.difficultyLevel){ case this.DIFFICULTY_EASY: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); break; case this.PHASE_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); break; case this.PHASE_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); break; case this.SUPER_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 50, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); break; case this.SUPER_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 50, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 50, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 80, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 60, 90); break; case this.SUPER_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 80, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletDoughnutBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 0, 180); break; }; break; case this.DIFFICULTY_MEDIUM: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); break; case this.PHASE_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); break; case this.PHASE_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 30, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); break; case this.SUPER_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 30, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 7, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); break; case this.SUPER_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 30, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 7, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 20, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 60, 90); break; case this.SUPER_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 20, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 20, 5, false, false, 5, 0, 0, 0, 1, BulletDoughnutBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 0, 180); break; }; break; case this.DIFFICULTY_HARD: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 10, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 9, 10, 90); break; case this.PHASE_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 10, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 9, 10, 90); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 10, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 9, 10, 90); break; case this.PHASE_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 10, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, false, 5, 0, 0, 0, 1, BulletCloverBoss4, BULLETMOVE_CONSISTENT, 1.05, 9, 10, 90); break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 60, 90); break; case this.SUPER_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 7, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); break; case this.SUPER_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 7, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 20, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 16, 60, 90); break; case this.SUPER_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 20, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 16, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 20, 5, false, false, 5, 0, 0, 0, 1, BulletDoughnutBoss4, BULLETMOVE_CONSISTENT, 1.05, 4, 0, 180); break; }; break; }; } public function shake(){ var _local1:Boolean; var _local2:Boolean; _local1 = (Math.abs((this.floatAnimX - this.currFloatAnimX)) < this.SHAKE); _local2 = (Math.abs((this.floatAnimY - this.currFloatAnimY)) < this.SHAKE); if (_local1 == false){ if (this.currFloatAnimX < this.floatAnimX){ this.currFloatAnimX = (this.currFloatAnimX + this.SHAKE); } else { if (this.currFloatAnimX > this.floatAnimX){ this.currFloatAnimX = (this.currFloatAnimX - this.SHAKE); }; }; }; if (_local2 == false){ if (this.currFloatAnimY < this.floatAnimY){ this.currFloatAnimY = (this.currFloatAnimY + this.SHAKE); } else { if (this.currFloatAnimY > this.floatAnimY){ this.currFloatAnimY = (this.currFloatAnimY - this.SHAKE); }; }; }; if (((_local1) && (_local2))){ this.floatAnimX = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.floatAnimY = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); }; } override public function specialrender(){ processBossLifeBar(); switch (this.currPhase){ case PHASE_ARRIVAL: this.gameMC.gameEngine.vTreeAngle = -0.015; this.isVulnerable = false; this.posY = (this.posY + ((110 - this.posY) * 0.1)); if (Math.abs((110 - this.posY)) < 2){ this.posY = 110; this.origPosX = this.x; this.origPosY = this.posY; this.currPhase = PHASE_DIALOGUE1; dialogueMC = new FairyDialogue(); dialogueMC.x = (this.x + 20); dialogueMC.y = (this.y + 20); dialogueMC.scaleX = 0; dialogueMC.scaleY = 0; dialogueTimer = 0; this.gameMC.gameEngine.interfaceLayer.addChild(dialogueMC); dialogueMC.gotoAndStop(2); }; break; case PHASE_DIALOGUE1: maxTimer = 100; if (dialogueMC.currentFrame == 2){ maxTimer = 50; }; dialogueTimer++; if (dialogueTimer > maxTimer){ if (dialogueMC.currentFrame >= dialogueMC.totalFrames){ dialogueMC.scaleX = (dialogueMC.scaleX + ((0 - dialogueMC.scaleX) * 0.4)); dialogueMC.scaleY = (dialogueMC.scaleY + ((0 - dialogueMC.scaleY) * 0.4)); if (dialogueMC.scaleX < 0.1){ this.gameMC.gameEngine.interfaceLayer.removeChild(dialogueMC); dialogueMC = null; this.appearTimer = 0; this.currPhase = PHASE_ATTACK1; changeWeapon(PHASE_ATTACK1); this.gameMC.gameEngine.vTreeAngle = -0.006; currCheckpoint = 0; phaseCheckpoint = 0; timerCheckpoint = 0; pointArray = new Array(); pointArray.push(new CheckPoint(0, 0, 200, 0, 0.05, 0)); pointArray.push(new CheckPoint(50, origPosY, 50, 0, 0.05, 0)); pointArray.push(new CheckPoint((this.gameMC.STAGE_WIDTH - 50), origPosY, 50, 0, 0.05, 0)); this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSSLOW; }; } else { dialogueTimer = 0; dialogueMC.scaleX = 0; dialogueMC.scaleY = 0; dialogueMC.gotoAndStop((dialogueMC.currentFrame + 1)); }; } else { dialogueMC.scaleX = (dialogueMC.scaleX + ((1 - dialogueMC.scaleX) * 0.4)); dialogueMC.scaleY = dialogueMC.scaleX; }; break; case PHASE_ATTACK1: this.isVulnerable = true; processAttack(); if (this.currLife < ((this.maxLife * 3) / 4)){ this.setLife(((this.maxLife * 3) / 4), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION1; addNiceExplosionFairy(0, 0); removeAllBullets(); }; break; case PHASE_INTERMISSION1: this.gameMC.gameEngine.vTreeAngle = -0.015; this.isVulnerable = false; this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; } else { this.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK2; changeWeapon(PHASE_ATTACK2); this.alpha = 1; this.currRestTimer = 0; this.gameMC.gameEngine.vTreeAngle = -0.006; currCheckpoint = 0; phaseCheckpoint = 0; timerCheckpoint = 0; pointArray = new Array(); pointArray.push(new CheckPoint(0, 0, 200, 0, 0.05, 0)); pointArray.push(new CheckPoint(50, (origPosY + 75), 50, 0, 0.05, 0)); pointArray.push(new CheckPoint((this.gameMC.STAGE_WIDTH - 50), (origPosY + 75), 50, 0, 0.05, 0)); }; break; case PHASE_ATTACK2: this.isVulnerable = true; processAttack(); if (this.currLife < (this.maxLife / 2)){ this.setLife((this.maxLife / 2), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = PHASE_INTERMISSION2; addNiceExplosionFairy(0, 0); removeAllBullets(); }; break; case PHASE_INTERMISSION2: this.gameMC.gameEngine.vTreeAngle = -0.015; this.isVulnerable = false; this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; } else { this.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK3; changeWeapon(PHASE_ATTACK3); this.alpha = 1; this.currRestTimer = 0; this.gameMC.gameEngine.vTreeAngle = -0.006; currCheckpoint = 0; phaseCheckpoint = 0; timerCheckpoint = 0; pointArray = new Array(); pointArray.push(new CheckPoint(0, 0, 200, 0, 0.05, 0)); pointArray.push(new CheckPoint(50, (origPosY + 50), 50, 0, 0.2, 0)); pointArray.push(new CheckPoint(origPosX, (origPosY + 100), 50, 0, 0.2, 0)); pointArray.push(new CheckPoint((this.gameMC.STAGE_WIDTH - 50), (origPosY + 50), 50, 0, 0.2, 0)); }; break; case PHASE_ATTACK3: this.isVulnerable = true; processAttack(); if (this.currLife < (this.maxLife / 4)){ this.setLife((this.maxLife / 4), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION3; addNiceExplosionFairy(0, 0); removeAllBullets(); this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSFAST; }; break; case PHASE_INTERMISSION3: this.gameMC.gameEngine.vTreeAngle = -0.03; this.isVulnerable = false; this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; } else { this.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK4; changeWeapon(PHASE_ATTACK4); this.alpha = 1; specialAttackPhase = 0; currCheckpoint = 0; phaseCheckpoint = 0; timerCheckpoint = 0; pointArray = new Array(); pointArray.push(new CheckPoint(0, 0, 200, 0, 0.05, 0)); pointArray.push(new CheckPoint(100, (origPosY + 75), 40, 0, 0.2, 0)); pointArray.push(new CheckPoint((this.gameMC.STAGE_WIDTH - 50), (origPosY + 40), 40, 0, 0.2, 0)); pointArray.push(new CheckPoint(50, (origPosY + 75), 40, 0, 0.2, 0)); pointArray.push(new CheckPoint((this.gameMC.STAGE_WIDTH - 50), (origPosY + 40), 40, 0, 0.2, 0)); }; break; case PHASE_ATTACK4: this.isVulnerable = true; processAttack(); switch (specialAttackPhase){ case 0: break; case 1: break; case 2: break; }; if (this.currLife < 0){ this.setLife(0, false); this.changeWeapon(-1); addNiceExplosionFairy(0, 0); removeAllBullets(); phaseCheckpoint = 1; if ((((Math.abs((this.origPosX - this.posX)) < 2)) && ((Math.abs((this.origPosY - this.posY)) < 2)))){ this.appearTimer = 0; this.currPhase = this.PHASE_DEATH; this.explosionTimer = 0; this.explosionNumber = 0; this.explosionTimerMax = 100; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSDEAD; dialogueMC = new FairyDialogue2(); dialogueMC.x = (this.x + 20); dialogueMC.y = (this.y + 20); dialogueMC.scaleX = 0; dialogueMC.scaleY = 0; dialogueTimer = 0; this.gameMC.gameEngine.interfaceLayer.addChild(dialogueMC); dialogueMC.gotoAndStop(2); }; }; break; case PHASE_DEATH: maxTimer = 100; dialogueTimer++; if (dialogueTimer > maxTimer){ if (dialogueMC.currentFrame >= dialogueMC.totalFrames){ dialogueMC.scaleX = (dialogueMC.scaleX + ((0 - dialogueMC.scaleX) * 0.4)); dialogueMC.scaleY = (dialogueMC.scaleY + ((0 - dialogueMC.scaleY) * 0.4)); if (dialogueMC.scaleX < 0.1){ this.gameMC.gameEngine.interfaceLayer.removeChild(dialogueMC); dialogueMC = null; Lvl4Medium = new Lvl4MediumMC(); Lvl4Medium.x = (this.gameMC.STAGE_WIDTH / 2); Lvl4Medium.y = (0 - Lvl4Medium.height); this.gameMC.gameEngine.shipLayer.addChild(Lvl4Medium); this.currPhase = this.PHASE_REALLYDEATH; }; } else { dialogueTimer = 0; dialogueMC.scaleX = 0; dialogueMC.scaleY = 0; dialogueMC.gotoAndStop((dialogueMC.currentFrame + 1)); }; } else { dialogueMC.scaleX = (dialogueMC.scaleX + ((1 - dialogueMC.scaleX) * 0.4)); dialogueMC.scaleY = dialogueMC.scaleX; }; break; case PHASE_REALLYDEATH: if ((Lvl4Medium.y + 3) >= this.y){ Lvl4Medium.y = this.y; this.currPhase = PHASE_TAKEAWAY; dialogueMC = new FairyDialogue3(); dialogueMC.x = this.yourShip.x; dialogueMC.y = this.yourShip.y; dialogueMC.scaleX = 0; dialogueMC.scaleY = 0; this.gameMC.gameEngine.interfaceLayer.addChild(dialogueMC); dialogueMC.gotoAndStop(2); } else { Lvl4Medium.y = (Lvl4Medium.y + 3); }; break; case PHASE_TAKEAWAY: Lvl4Medium.y = (Lvl4Medium.y - 3); this.posY = Lvl4Medium.y; dialogueMC.x = this.yourShip.x; dialogueMC.y = this.yourShip.y; dialogueMC.scaleX = (dialogueMC.scaleX + ((1 - dialogueMC.scaleX) * 0.4)); dialogueMC.scaleY = dialogueMC.scaleX; if (Lvl4Medium.y < (0 - Lvl4Medium.height)){ this.gameMC.gameEngine.interfaceLayer.removeChild(dialogueMC); dialogueMC = null; this.gameMC.gameEngine.shipLayer.removeChild(Lvl4Medium); Lvl4Medium = null; this.currPhase = PHASE_SUPERDEATH; this.currState = this.STATE_OUTOFSTAGE; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_NOSOUND; }; break; case PHASE_SUPERDEATH: break; }; shake(); this.x = (this.posX + this.currFloatAnimX); this.y = (this.posY + this.currFloatAnimY); } } }//package classes
Section 35
//Lvl3Medium (classes.Lvl3Medium) package classes { import flash.display.*; public class Lvl3Medium extends EnemyStopAndGo { public function Lvl3Medium(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl3MediumMC, _arg1, _arg2, _arg3, -50, _arg3, _arg4, _arg3, 800, 400, 0.1, this.ROTATION_NONE, 6); this.groupNo = 34; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 0.5, 0, 0, 0, 1, BulletCrescentFriendly, BULLETMOVE_CONSISTENT, 1.1, 4, 10, 270)); this.addParticleGenerator(this.PARTICLE_SMOKE, 0, -24, true, false); this.addParticleGenerator(this.PARTICLE_SMOKE, 0, -24, true, false); this.setLife(100, true); this.absorbTimer = this.currLife; this.score = this.SCORE_MEDIUM; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 80, 4, false, true, 0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 0); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 20, 80, 4, false, true, -0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 4); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 80, 4, false, false, 0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 0); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 20, 80, 4, false, true, -0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 4); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 40, 80, 4, false, true, 0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 8); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 60, 80, 4, false, true, 0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 12); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 80, 8, false, false, 0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 0); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 20, 80, 8, false, true, -0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 4); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 40, 80, 8, false, true, 0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 8); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 60, 80, 8, false, true, 0.5, 0, 0, 0, 1, BulletCrescent, BULLETMOVE_CONSISTENT, 1.1, 8, 12); break; }; } } }//package classes
Section 36
//Lvl3SmallConiferous (classes.Lvl3SmallConiferous) package classes { import flash.display.*; public class Lvl3SmallConiferous extends EnemyAtoB { public function Lvl3SmallConiferous(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(Lvl3SmallConiferousMC, _arg1, _arg2, 2, _arg3, _arg4, _arg5, _arg6); this.groupNo = 31; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 30, 8, false, false, 5, 0, 0, 0, 1, BulletRadarFriendly, BULLETMOVE_CONSISTENT, 0, 8, 0)); this.addParticleGenerator(this.PARTICLE_SMOKE, 26, 34, true, false); this.setLife(15, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 100, 3, false, false, 5, 0, 0, 0, 1, BulletRadar, BULLETMOVE_CONSISTENT, 0, 8, 0); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 50, 3, false, false, 5, 0, 0, 0, 1, BulletRadar, BULLETMOVE_CONSISTENT, 0, 8, 0); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 80, 4, false, false, 5, 0, 0, 0, 1, BulletRadar, BULLETMOVE_CONSISTENT, 0, 12, 0); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 40, 80, 4, false, false, 5, 0, 0, 0, 1, BulletRadar, BULLETMOVE_CONSISTENT, 0, 12, 15); break; }; } } }//package classes
Section 37
//Lvl3SmallRaptorial (classes.Lvl3SmallRaptorial) package classes { import flash.display.*; public class Lvl3SmallRaptorial extends EnemyStopAndGo { public function Lvl3SmallRaptorial(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl3SmallRaptorialMC, _arg1, _arg2, _arg3, -50, _arg3, _arg4, _arg3, 800, 400, 0.1, this.ROTATION_NONE, 6); this.groupNo = 32; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 20, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalFriendly, BULLETMOVE_CONSISTENT, 1.1, 3, 250, 290)); this.setLife(20, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 80, 2, false, true, 0.5, PARTICLE_LINE, 0, 45, 1, BulletGlowOval, BULLETMOVE_STOP, 1.1, 1, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 80, 2, false, true, -0.5, PARTICLE_LINE, 0, 45, 1, BulletGlowOval, BULLETMOVE_STOP, 1.1, 1, 20, 160); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 2, false, true, 0.5, PARTICLE_LINE, 0, 45, 1, BulletGlowOval, BULLETMOVE_STOP, 1.1, 1, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 3, false, true, -0.5, PARTICLE_LINE, 0, 45, 1, BulletGlowOval, BULLETMOVE_STOP, 1.1, 1, 20, 160); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 2, false, true, 0.5, PARTICLE_LINE, 0, 45, 1, BulletGlowOval, BULLETMOVE_STOP, 1.1, 1, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 3, false, true, -0.5, PARTICLE_LINE, 0, 45, 1, BulletGlowOval, BULLETMOVE_STOP, 1.1, 1, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 40, 6, false, true, -0.5, PARTICLE_LINE, 0, 45, 1, BulletGlowOval, BULLETMOVE_CONSISTENT, 1.1, 6, (Math.random() * 60)); break; }; } } }//package classes
Section 38
//Lvl3SmallScavenging (classes.Lvl3SmallScavenging) package classes { import flash.display.*; public class Lvl3SmallScavenging extends EnemyZPattern { public function Lvl3SmallScavenging(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:Boolean){ var _local6:int; super(Lvl3SmallScavengingMC, _arg1, _arg2, 5, _arg3, _arg4, 70, 60, 0.1, _arg5); this.groupNo = 33; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 15, 4, false, false, 0.5, 0, 0, 15, 1, BulletCloverFriendly, BULLETMOVE_CONSISTENT, 0, 2, 260, 280)); this.addParticleGenerator(this.PARTICLE_SMOKE, 0, 37, true, false); this.setLife(5, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 40, 4, false, true, 0.5, 0, 0, 15, 1, BulletClover, BULLETMOVE_CONSISTENT, 0, ((Math.random() * 30) + 30), (Math.random() * 360)); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 15, 4, false, true, 0.5, 0, 0, 15, 1, BulletClover, BULLETMOVE_CONSISTENT, 0, ((Math.random() * 30) + 30), (Math.random() * 360)); break; case this.DIFFICULTY_HARD: _local6 = ((Math.random() * 30) + 30); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 15, 4, false, true, 0.5, 0, 0, 15, 1, BulletClover, BULLETMOVE_CONSISTENT, 0, _local6, 0); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 15, 4, false, true, 0.5, 0, 0, 15, 1, BulletClover, BULLETMOVE_CONSISTENT, 0, _local6, 180); break; }; } } }//package classes
Section 39
//Lvl4Boss (classes.Lvl4Boss) package classes { import flash.display.*; import flash.events.*; import flash.geom.*; public class Lvl4Boss extends Enemy { public var PHASE_ATTACK2:int;// = 5 public var PHASE_ATTACK3:int;// = 7 public var PHASE_ATTACK4:int;// = 9 public var STATE_SCANSTOP:int;// = 0 public var PHASE_ATTACK1:int;// = 3 public var STATE_REMOVE:int;// = 4 public var scannerMC:MovieClip; public var maxTimer:int; public var dialogueTimer:int; public var posX:Number; public var posY:Number; public var STATE_SCANNING:int;// = 1 public var currDetectTimer:int; public var PHASE_ARRIVAL:int;// = 1 public var scannerSpeed:int; public var yourShip:CharShip; public var PHASE_INTERMISSION2:int;// = 6 public var PHASE_INTERMISSION3:int;// = 8 public var PHASE_INTERMISSION4:int;// = 10 public var STATE_SPECIALREST:int;// = 6 public var PHASE_INTERMISSION1:int;// = 4 public var STATE_SPECIALDETECT:int;// = 7 public var explosionTimer:int; public var SCANNER_MAXY:int;// = 344 public var phaseCheckpoint:int; public var scannerGoingDown:Boolean; public var dialogueMC:MovieClip; public var currCheckpoint:int; public var specialAttackPhase:int; public var PHASE_BALLAPPEARS:int;// = 2 public var STATE_RESTING:int;// = 3 public var scanThingMC:MovieClip; public var AnotherFairyMC:MovieClip; public var currRestTimer:int; public var currScanState:int; public var SUPER_ATTACK3:int;// = 997 public var SUPER_ATTACK4:int;// = 996 public var specialScanTimer:int; public var explosionTimerMax:int; public var SUPER_ATTACK2:int;// = 998 public var SCANNER_MINY:int;// = 70 public var origPosX:int; public var currPhase:int; public var PHASE_DEATH:int;// = 11 public var origPosY:int; public var dialoguePhase:int; public var STATE_DETECTED:int;// = 2 public var scannerMC2:MovieClip; public var centerX:int; public var centerY:int; public var pointArray:Array; public var appearTimer:int; public var explosionNumber:int; public var timerCheckpoint:int; public var SHAKE:Number;// = 0.2 public var currFloatAnimX:Number; public var currFloatAnimY:Number; public var scanThingMC2:MovieClip; public var SHAKE_DIST:int;// = 15 public var floatAnimX:Number; public var scannerRestTimer:int; public var PHASE_DIALOGUE1:int;// = 12 public var PHASE_DIALOGUE2:int;// = 13 public var floatAnimY:Number; public var SUPER_ATTACK:int;// = 999 public var STATE_SPECIALSCAN:int;// = 5 public function Lvl4Boss(_arg1:int, _arg2:MovieClip){ PHASE_ARRIVAL = 1; PHASE_BALLAPPEARS = 2; PHASE_ATTACK1 = 3; PHASE_INTERMISSION1 = 4; PHASE_ATTACK2 = 5; PHASE_INTERMISSION2 = 6; PHASE_ATTACK3 = 7; PHASE_INTERMISSION3 = 8; PHASE_ATTACK4 = 9; PHASE_INTERMISSION4 = 10; PHASE_DEATH = 11; PHASE_DIALOGUE1 = 12; PHASE_DIALOGUE2 = 13; SUPER_ATTACK = 999; SUPER_ATTACK2 = 998; SUPER_ATTACK3 = 997; SUPER_ATTACK4 = 996; SHAKE = 0.2; SHAKE_DIST = 15; STATE_SCANSTOP = 0; STATE_SCANNING = 1; STATE_DETECTED = 2; STATE_RESTING = 3; STATE_REMOVE = 4; STATE_SPECIALSCAN = 5; STATE_SPECIALREST = 6; STATE_SPECIALDETECT = 7; SCANNER_MINY = 70; SCANNER_MAXY = 344; super(Lvl4BossMC, _arg1, _arg2); this.groupNo = 999; this.origWidth = this.width; this.origHeight = (this.mc.hatchMC.height / 2); this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, 0, 0, 0, 1, BulletArrowFriendly, BULLETMOVE_CONSISTENT, 1.05, 4, 10, 270)); this.absorbTimer = 150; this.currPhase = this.PHASE_ARRIVAL; this.x = (this.gameMC.STAGE_WIDTH / 2); this.y = -500; this.posX = this.x; this.posY = this.y; this.gameMC.gameEngine.shipLayer.addChild(this); this.isNormalEnemy = false; this.centerX = 0; this.centerY = 0; this.currFloatAnimX = 0; this.currFloatAnimY = 0; this.floatAnimX = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.floatAnimY = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.setLife(1200, true); this.score = this.SCORE_BIG; this.yourShip = this.gameMC.gameEngine.yourShip; } public function processBossLifeBar(){ var _local1:BossLifeMC; var _local2:int; _local1 = this.gameMC.gameEngine.bossLifeMC; switch (currPhase){ case PHASE_ARRIVAL: _local1.y = -100; _local1.life1MC.scaleX = 1; _local1.life2MC.scaleX = 1; _local1.life3MC.scaleX = 1; _local1.life4MC.scaleX = 1; break; case PHASE_ATTACK1: _local1.y = (_local1.y + ((20 - _local1.y) * 0.2)); _local2 = (this.currLife - ((this.maxLife * 3) / 4)); if (_local2 < 0){ _local2 = 0; }; _local1.life4MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION1: _local1.life4MC.scaleX = 0; _local1.life3MC.alpha = this.alpha; break; case PHASE_ATTACK2: if (_local1.life3MC.alpha != 1){ _local1.life3MC.alpha = 1; }; _local2 = (this.currLife - (this.maxLife / 2)); if (_local2 < 0){ _local2 = 0; }; _local1.life3MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION2: _local1.life3MC.scaleX = 0; _local1.life2MC.alpha = this.alpha; break; case PHASE_ATTACK3: if (_local1.life2MC.alpha != 1){ _local1.life2MC.alpha = 1; }; _local2 = (this.currLife - (this.maxLife / 4)); if (_local2 < 0){ _local2 = 0; }; _local1.life2MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_INTERMISSION3: _local1.life2MC.scaleX = 0; _local1.life1MC.alpha = this.alpha; break; case PHASE_ATTACK4: if (_local1.life1MC.alpha != 1){ _local1.life1MC.alpha = 1; }; _local2 = this.currLife; if (_local2 < 0){ _local2 = 0; }; _local1.life1MC.scaleX = (_local2 / (this.maxLife / 4)); break; case PHASE_DEATH: _local1.life1MC.scaleX = 0; _local1.y = (_local1.y + ((-100 - _local1.y) * 0.05)); break; }; } public function processAttack(){ if (currCheckpoint == 0){ this.posX = (this.posX + ((this.origPosX - this.posX) * 0.3)); this.posY = (this.posY + ((this.origPosY - this.posY) * 0.3)); } else { this.posX = (this.posX + ((pointArray[currCheckpoint].posX - this.posX) * pointArray[currCheckpoint].speedModifier)); this.posY = (this.posY + ((pointArray[currCheckpoint].posY - this.posY) * pointArray[currCheckpoint].speedModifier)); }; switch (phaseCheckpoint){ case 0: timerCheckpoint++; if (timerCheckpoint > pointArray[currCheckpoint].howLong){ phaseCheckpoint = 0; timerCheckpoint = 0; if (currCheckpoint == 0){ switch (currPhase){ case PHASE_ATTACK1: changeWeapon(SUPER_ATTACK); break; case PHASE_ATTACK2: changeWeapon(SUPER_ATTACK2); break; case PHASE_ATTACK3: changeWeapon(SUPER_ATTACK3); break; case PHASE_ATTACK4: changeWeapon(SUPER_ATTACK4); break; }; }; currCheckpoint++; if (currCheckpoint >= pointArray.length){ currCheckpoint = 0; changeWeapon(currPhase); }; }; break; }; } public function changeWeapon(_arg1:int){ this.removeAllBulletGenerator(); this.followEnemy = false; switch (this.difficultyLevel){ case this.DIFFICULTY_EASY: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 160, 5, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 160, 5, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 160, 3, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 160, 3, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 160, 5, false, true, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 160, 5, false, true, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); break; case this.PHASE_ATTACK2: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 4, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 3, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 100, 120, 4, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 3, 90, 180); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 120, 2, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 2, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 120, 1, false, false, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 3, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 60, 120, 1, false, false, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 3, 90, 180); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 160, 5, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 160, 5, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 160, 3, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 160, 3, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 160, 5, false, true, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 160, 5, false, true, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); break; case this.PHASE_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 4, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 2, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 100, 120, 4, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 2, 90, 180); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 120, 2, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 2, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 2, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 2, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 120, 1, false, false, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 2, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 60, 120, 1, false, false, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 2, 90, 180); break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); break; case this.SUPER_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 20, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); break; case this.SUPER_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 20, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 40, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 60, 90); break; case this.SUPER_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 20, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 40, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 40, 5, false, false, 5, 0, 0, 0, 1, BulletDoughnutBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 0, 180); break; }; break; case this.DIFFICULTY_MEDIUM: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 80, 3, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 80, 3, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, true, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, true, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); break; case this.PHASE_ATTACK2: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 4, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 5, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 100, 120, 4, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 5, 90, 180); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 120, 2, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 2, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 120, 1, false, false, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 5, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 60, 120, 1, false, false, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 5, 90, 180); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 80, 3, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 80, 3, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, true, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, true, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); break; case this.PHASE_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 4, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 3, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 100, 120, 4, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 3, 90, 180); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 120, 2, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 2, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 120, 1, false, false, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 3, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 60, 120, 1, false, false, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 3, 90, 180); break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); break; case this.SUPER_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 7, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); break; case this.SUPER_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 7, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 20, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 60, 90); break; case this.SUPER_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 1, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 20, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 8, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 20, 5, false, false, 5, 0, 0, 0, 1, BulletDoughnutBoss4, BULLETMOVE_CONSISTENT, 1.05, 2, 0, 180); break; }; break; case this.DIFFICULTY_HARD: switch (_arg1){ case this.PHASE_ATTACK1: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 8, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 8, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 80, 3, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 8, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 80, 3, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 8, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, true, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 8, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, true, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 8, 20, 90); break; case this.PHASE_ATTACK2: this.followEnemy = true; this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 4, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 8, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 100, 120, 4, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 8, 90, 180); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 120, 2, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 8, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 2, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 8, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 120, 1, false, false, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 8, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 60, 120, 1, false, false, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 8, 90, 180); break; case this.PHASE_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 80, 5, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 80, 3, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 80, 3, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, true, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 80, 5, false, true, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_CONSISTENT, 1.05, 6, 20, 90); break; case this.PHASE_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 4, false, false, 5, 0, -157, -32, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 5, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 100, 120, 4, false, false, 5, 0, 169, -39, 1, BulletArrowRed, BULLETMOVE_STOP, 1.1, 5, 90, 180); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 120, 2, false, false, 5, 0, -121, -95, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 2, false, false, 5, 0, 113, -97, 1, BulletArrowBlue, BULLETMOVE_CONSISTENT, 1.05, 5, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 40, 120, 1, false, false, 0.5, 0, -79, -139, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 5, 0, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 60, 120, 1, false, false, -0.5, 0, 82, -135, 1, BulletArrowOrange, BULLETMOVE_FASTER, 1.05, 5, 90, 180); break; case this.SUPER_ATTACK: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 3, 60, 90); break; case this.SUPER_ATTACK2: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 3, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 7, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); break; case this.SUPER_ATTACK3: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 3, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_ROTATE, 1, 7, 6, false, false, 0.5, 0, 0, 0, 1, BulletGlowOvalBoss4, BULLETMOVE_CONSISTENT, 1.05, 10, 20); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 20, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 16, 60, 90); break; case this.SUPER_ATTACK4: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 10, 8, false, false, 5, 0, 0, 0, 1, BulletCrescentBoss4, BULLETMOVE_CONSISTENT, 1.05, 3, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_CIRCULAR, 1, 20, 6, false, false, 5, 0, 0, 0, 1, BulletRadarBoss4, BULLETMOVE_CONSISTENT, 1.05, 16, 60, 90); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 20, 5, false, false, 5, 0, 0, 0, 1, BulletDoughnutBoss4, BULLETMOVE_CONSISTENT, 1.05, 4, 0, 180); break; }; break; }; } public function shake(){ var _local1:Boolean; var _local2:Boolean; _local1 = (Math.abs((this.floatAnimX - this.currFloatAnimX)) < this.SHAKE); _local2 = (Math.abs((this.floatAnimY - this.currFloatAnimY)) < this.SHAKE); if (_local1 == false){ if (this.currFloatAnimX < this.floatAnimX){ this.currFloatAnimX = (this.currFloatAnimX + this.SHAKE); } else { if (this.currFloatAnimX > this.floatAnimX){ this.currFloatAnimX = (this.currFloatAnimX - this.SHAKE); }; }; }; if (_local2 == false){ if (this.currFloatAnimY < this.floatAnimY){ this.currFloatAnimY = (this.currFloatAnimY + this.SHAKE); } else { if (this.currFloatAnimY > this.floatAnimY){ this.currFloatAnimY = (this.currFloatAnimY - this.SHAKE); }; }; }; if (((_local1) && (_local2))){ this.floatAnimX = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); this.floatAnimY = ((Math.random() * SHAKE_DIST) - (SHAKE_DIST / 2)); }; } override public function specialrender(){ var _local1:int; var _local2:int; var _local3:int; var _local4:Point; var _local5:Point; processBossLifeBar(); switch (this.currPhase){ case PHASE_ARRIVAL: this.gameMC.gameEngine.vTreeAngle = -0.015; this.isVulnerable = false; this.posY = (this.posY + ((190 - this.posY) * 0.1)); if (Math.abs((190 - this.posY)) < 2){ this.posY = 190; this.origPosX = this.x; this.origPosY = this.posY; this.currPhase = PHASE_DIALOGUE1; dialogueMC = new Boss4Dialogue(); dialogueMC.x = (this.x + 20); dialogueMC.y = (this.y + 50); dialogueMC.scaleX = 0; dialogueMC.scaleY = 0; dialogueTimer = 0; this.gameMC.gameEngine.interfaceLayer.addChild(dialogueMC); dialogueMC.gotoAndStop(2); }; break; case PHASE_DIALOGUE1: maxTimer = 100; dialogueTimer++; if (dialogueTimer > maxTimer){ if (dialogueMC.currentFrame >= dialogueMC.totalFrames){ dialogueMC.scaleX = (dialogueMC.scaleX + ((0 - dialogueMC.scaleX) * 0.4)); dialogueMC.scaleY = (dialogueMC.scaleY + ((0 - dialogueMC.scaleY) * 0.4)); if (dialogueMC.scaleX < 0.1){ this.gameMC.gameEngine.interfaceLayer.removeChild(dialogueMC); dialogueMC = null; this.appearTimer = 0; this.currPhase = PHASE_ATTACK1; changeWeapon(PHASE_ATTACK1); this.gameMC.gameEngine.vTreeAngle = -0.006; currCheckpoint = 0; phaseCheckpoint = 0; timerCheckpoint = 0; pointArray = new Array(); pointArray.push(new CheckPoint(0, 0, 200, 0, 0.05, 0)); pointArray.push(new CheckPoint(origPosX, origPosY, 200, 0, 0.05, 0)); this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSSLOW; }; } else { dialogueTimer = 0; dialogueMC.scaleX = 0; dialogueMC.scaleY = 0; dialogueMC.gotoAndStop((dialogueMC.currentFrame + 1)); }; } else { dialogueMC.scaleX = (dialogueMC.scaleX + ((1 - dialogueMC.scaleX) * 0.4)); dialogueMC.scaleY = dialogueMC.scaleX; }; break; case PHASE_ATTACK1: this.isVulnerable = true; if (this.currLife < ((this.maxLife * 3) / 4)){ this.setLife(((this.maxLife * 3) / 4), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION1; this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, -84, -12, true, true); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, -7, -81, true, true); addNiceExplosion(-84, -12); addNiceExplosion(-7, -81); removeAllBullets(); }; break; case PHASE_INTERMISSION1: this.gameMC.gameEngine.vTreeAngle = -0.015; this.isVulnerable = false; this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; } else { this.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK2; changeWeapon(PHASE_ATTACK2); this.alpha = 1; this.currRestTimer = 0; this.gameMC.gameEngine.vTreeAngle = -0.006; }; break; case PHASE_ATTACK2: this.isVulnerable = true; if (this.currLife < (this.maxLife / 2)){ this.setLife((this.maxLife / 2), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = PHASE_INTERMISSION2; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSDEAD; this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 55, -34, true, true); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 82, 0, true, true); addNiceExplosion(55, -34); addNiceExplosion(82, 0); removeAllBullets(); }; break; case PHASE_INTERMISSION2: this.gameMC.gameEngine.vTreeAngle = -0.015; this.isVulnerable = false; this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; } else { this.alpha = 0.5; }; if (this.appearTimer > 150){ this.alpha = 1; this.currPhase = PHASE_DIALOGUE2; dialogueMC = new Boss4Dialogue2(); dialogueMC.x = (this.x + 20); dialogueMC.y = (this.y + 50); dialogueMC.scaleX = 0; dialogueMC.scaleY = 0; dialogueTimer = 0; this.gameMC.gameEngine.interfaceLayer.addChild(dialogueMC); dialogueMC.gotoAndStop(2); }; break; case PHASE_DIALOGUE2: maxTimer = 100; this.mc.fairyMC.alpha = 100; this.rotation = (this.rotation + ((0 - this.rotation) * 0.3)); dialogueTimer++; if (dialogueTimer > maxTimer){ if (dialogueMC.currentFrame >= dialogueMC.totalFrames){ dialogueMC.scaleX = (dialogueMC.scaleX + ((0 - dialogueMC.scaleX) * 0.4)); dialogueMC.scaleY = (dialogueMC.scaleY + ((0 - dialogueMC.scaleY) * 0.4)); if (dialogueMC.scaleX < 0.1){ this.gameMC.gameEngine.interfaceLayer.removeChild(dialogueMC); dialogueMC = null; this.currPhase = PHASE_ATTACK3; changeWeapon(PHASE_ATTACK3); this.alpha = 1; this.currRestTimer = 0; this.gameMC.gameEngine.vTreeAngle = -0.006; currCheckpoint = 0; phaseCheckpoint = 0; timerCheckpoint = 0; pointArray = new Array(); pointArray.push(new CheckPoint(0, 0, 200, 0, 0.05, 0)); pointArray.push(new CheckPoint(50, (origPosY + 50), 50, 0, 0.2, 0)); pointArray.push(new CheckPoint(origPosX, (origPosY + 100), 50, 0, 0.2, 0)); pointArray.push(new CheckPoint((this.gameMC.STAGE_WIDTH - 50), (origPosY + 50), 50, 0, 0.2, 0)); this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSFAST; }; } else { dialogueTimer = 0; dialogueMC.scaleX = 0; dialogueMC.scaleY = 0; dialogueMC.gotoAndStop((dialogueMC.currentFrame + 1)); if (dialogueMC.currentFrame == 3){ this.mc.hatchMC.gotoAndPlay(2); }; }; } else { dialogueMC.scaleX = (dialogueMC.scaleX + ((1 - dialogueMC.scaleX) * 0.4)); dialogueMC.scaleY = dialogueMC.scaleX; }; break; case PHASE_ATTACK3: this.isVulnerable = true; processAttack(); if (this.currLife < (this.maxLife / 4)){ this.setLife((this.maxLife / 4), false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_INTERMISSION3; this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, 26, -30, true, true); this.addParticleGenerator(this.PARTICLE_DAMAGESMOKE, -93, -60, true, true); addNiceExplosion(26, -30); addNiceExplosion(-93, -60); removeAllBullets(); }; break; case PHASE_INTERMISSION3: this.gameMC.gameEngine.vTreeAngle = -0.03; this.isVulnerable = false; this.appearTimer++; if ((this.appearTimer % 20) < 10){ this.alpha = 1; } else { this.alpha = 0.5; }; if (this.appearTimer > 150){ this.currPhase = PHASE_ATTACK4; changeWeapon(PHASE_ATTACK4); this.alpha = 1; specialAttackPhase = 0; currCheckpoint = 0; phaseCheckpoint = 0; timerCheckpoint = 0; pointArray = new Array(); pointArray.push(new CheckPoint(0, 0, 200, 0, 0.05, 0)); pointArray.push(new CheckPoint(100, (origPosY + 80), 40, 0, 0.2, 0)); pointArray.push(new CheckPoint((this.gameMC.STAGE_WIDTH - 50), (origPosY + 40), 40, 0, 0.2, 0)); pointArray.push(new CheckPoint(50, (origPosY + 80), 40, 0, 0.2, 0)); pointArray.push(new CheckPoint((this.gameMC.STAGE_WIDTH - 50), (origPosY + 40), 40, 0, 0.2, 0)); }; break; case PHASE_ATTACK4: this.isVulnerable = true; processAttack(); switch (specialAttackPhase){ case 0: break; case 1: break; case 2: break; }; if (this.currLife < 0){ this.setLife(0, false); this.changeWeapon(-1); this.appearTimer = 0; this.currPhase = this.PHASE_DEATH; this.explosionTimer = 0; this.explosionNumber = 0; this.explosionTimerMax = 100; AnotherFairyMC = new EnemyFairy(); AnotherFairyMC.x = this.x; AnotherFairyMC.y = this.y; this.gameMC.gameEngine.shipLayer.addChild(AnotherFairyMC); this.mc.fairyMC.alpha = 0; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSDEAD; removeAllBullets(); }; break; case PHASE_DEATH: this.gameMC.gameEngine.vTreeAngle = -0.002; this.isHarmful = false; AnotherFairyMC.x = (AnotherFairyMC.x + (((this.gameMC.STAGE_WIDTH / 2) - AnotherFairyMC.x) * 0.02)); AnotherFairyMC.y = (AnotherFairyMC.y + (((this.gameMC.STAGE_HEIGHT - 150) - AnotherFairyMC.y) * 0.02)); this.scaleX = (this.scaleX - 0.002); this.scaleY = this.scaleX; this.rotation = (this.rotation + 0.15); this.posY = (this.posY + 0.2); this.explosionTimer++; if (this.explosionTimer > this.explosionTimerMax){ this.explosionTimer = 0; this.explosionNumber++; switch (this.explosionNumber){ case 1: _local1 = -50; _local2 = -50; _local3 = 2; this.explosionTimerMax = 40; break; case 2: _local1 = 100; _local2 = 50; _local3 = 2; this.explosionTimerMax = 35; break; case 3: _local1 = -100; _local2 = 30; _local3 = 2; this.explosionTimerMax = 30; break; case 4: _local1 = 50; _local2 = -100; _local3 = 2; this.explosionTimerMax = 25; break; case 5: _local1 = -32; _local2 = -93; _local3 = 2; this.explosionTimerMax = 20; break; case 6: _local1 = -32; _local2 = -93; _local3 = 2; this.explosionTimerMax = 15; break; case 7: _local1 = -32; _local2 = -93; _local3 = 2; this.explosionTimerMax = 10; break; case 8: _local1 = 25; _local2 = 10; _local3 = 2; this.explosionTimerMax = 40; break; case 9: _local1 = 0; _local2 = 0; _local3 = 4; this.explosionTimerMax = 150; break; case 10: this.currState = this.STATE_OUTOFSTAGE; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_NOSOUND; break; }; if (this.explosionNumber <= 9){ _local4 = new Point((_local1 * this.scaleX), (_local2 * this.scaleY)); _local5 = this.localToGlobal(_local4); this.gameMC.gameEngine.addExplosion(_local5.x, _local5.y, _local3, false); }; }; break; }; shake(); this.x = (this.posX + this.currFloatAnimX); this.y = (this.posY + this.currFloatAnimY); } } }//package classes
Section 40
//Lvl4SmallBomber (classes.Lvl4SmallBomber) package classes { import flash.display.*; public class Lvl4SmallBomber extends EnemyAtoB { public function Lvl4SmallBomber(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(Lvl4SmallBomberMC, _arg1, _arg2, 2, _arg3, _arg4, _arg5, _arg6); this.groupNo = 41; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_ANGLE, 15, 30, 8, false, false, 5, 0, 0, 0, 1, BulletSmallDoughnutFriendly, BULLETMOVE_CONSISTENT, 1.05, 4, 20, 270)); this.addParticleGenerator(this.PARTICLE_SMOKE, 0, -28, true, false); this.setLife(15, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 50, 4, false, false, 5, 0, 0, 30, 1, BulletSmallDoughnut, BULLETMOVE_CONSISTENT, 1.05, 4, 20, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 10, 100, 3, true, false, 1, 0, 0, 30, 1, BulletSmallDoughnut, BULLETMOVE_CONSISTENT, 1.05, 3, 40, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 50, 4, false, false, 5, 0, 0, 30, 1, BulletSmallDoughnut, BULLETMOVE_CONSISTENT, 1.05, 4, 20, 90); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 10, 100, 4, true, false, 1, 0, 0, 30, 1, BulletSmallDoughnut, BULLETMOVE_CONSISTENT, 1.05, 6, 40, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 20, 40, 6, false, false, 5, 0, 0, 30, 1, BulletSmallDoughnut, BULLETMOVE_CONSISTENT, 1.05, 4, 20, 90); break; }; } } }//package classes
Section 41
//Lvl4SmallBomberShield (classes.Lvl4SmallBomberShield) package classes { import flash.display.*; public class Lvl4SmallBomberShield extends Lvl4SmallBomber { public function Lvl4SmallBomberShield(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.shieldMe(); } } }//package classes
Section 42
//Lvl4SmallFighter (classes.Lvl4SmallFighter) package classes { import flash.display.*; public class Lvl4SmallFighter extends EnemyScanAndGo { public function Lvl4SmallFighter(_arg1:int, _arg2:MovieClip, _arg3:int, _arg4:int){ super(Lvl4SmallFighterMC, _arg1, _arg2, _arg3, _arg4, 100, 5, 200, 0.1, this.ROTATION_ALWAYS, 6); this.groupNo = 42; this.origWidth = 34; this.origHeight = 36; this.absorbReward.push(getBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 30, 8, false, false, -0.5, 0, 0, 0, 1, BulletSakuraFriendly, BULLETMOVE_CONSISTENT, 1.05, 8, 230, 310)); this.addParticleGenerator(this.PARTICLE_SMOKE, 0, -17, true, false); this.setLife(30, true); this.absorbTimer = this.currLife; switch (_arg1){ case this.DIFFICULTY_EASY: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 3, false, false, -0.5, 0, -17, 17, 1, BulletSakuraRed, BULLETMOVE_STOP, 1.1, 1, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 3, false, false, 0.5, 0, 17, 17, 1, BulletSakuraRed, BULLETMOVE_STOP, 1.1, 1, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 120, 6, false, false, -0.5, 0, -17, 17, 1, BulletSakuraBlue, BULLETMOVE_CONSISTENT, 1.05, 2, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 120, 6, false, false, 0.5, 0, 17, 17, 1, BulletSakuraBlue, BULLETMOVE_CONSISTENT, 1.05, 2, 20, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 6, false, false, 1, 0, -17, 17, 1, BulletSakuraOrange, BULLETMOVE_CONSISTENT, 1.05, 1, 40, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 6, false, false, 1, 0, 17, 17, 1, BulletSakuraOrange, BULLETMOVE_CONSISTENT, 1.05, 1, 40, 90); break; case this.DIFFICULTY_MEDIUM: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 3, false, false, -0.5, 0, -17, 17, 1, BulletSakuraRed, BULLETMOVE_STOP, 1.1, 1, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 3, false, false, 0.5, 0, 17, 17, 1, BulletSakuraRed, BULLETMOVE_STOP, 1.1, 1, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 120, 6, false, true, -0.5, 0, -17, 17, 1, BulletSakuraBlue, BULLETMOVE_CONSISTENT, 1.05, 2, 15, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 120, 6, false, true, 0.5, 0, 17, 17, 1, BulletSakuraBlue, BULLETMOVE_CONSISTENT, 1.05, 2, 15, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 6, true, false, 1, 0, -17, 17, 1, BulletSakuraOrange, BULLETMOVE_CONSISTENT, 1.05, 1, 40, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 6, true, false, 1, 0, 17, 17, 1, BulletSakuraOrange, BULLETMOVE_CONSISTENT, 1.05, 1, 40, 90); break; case this.DIFFICULTY_HARD: this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 3, false, false, -0.5, 0, -17, 17, 1, BulletSakuraRed, BULLETMOVE_STOP, 1.1, 3, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_RANDOM, 1, 120, 3, false, false, 0.5, 0, 17, 17, 1, BulletSakuraRed, BULLETMOVE_STOP, 1.1, 3, 20, 160); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 120, 6, false, true, -0.5, 0, -17, 17, 1, BulletSakuraBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 15, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 40, 120, 6, false, true, 0.5, 0, 17, 17, 1, BulletSakuraBlue, BULLETMOVE_CONSISTENT, 1.05, 3, 15, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 6, true, false, 1, 0, -17, 17, 1, BulletSakuraOrange, BULLETMOVE_CONSISTENT, 1.05, 2, 40, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 80, 120, 6, true, false, 1, 0, 17, 17, 1, BulletSakuraOrange, BULLETMOVE_CONSISTENT, 1.05, 2, 40, 90); break; }; } } }//package classes
Section 43
//Lvl4SmallRammer (classes.Lvl4SmallRammer) package classes { import flash.display.*; import flash.events.*; public class Lvl4SmallRammer extends EnemyAtoB { public var MAX_SPEED:int;// = 12 public var MIN_SPEED:int;// = 4 public function Lvl4SmallRammer(_arg1:int, _arg2:MovieClip){ var _local3:Number; var _local4:Number; MIN_SPEED = 4; MAX_SPEED = 12; switch (_arg1){ case this.DIFFICULTY_EASY: MIN_SPEED = (MIN_SPEED / 2); MAX_SPEED = (MAX_SPEED / 2); break; case this.DIFFICULTY_MEDIUM: break; case this.DIFFICULTY_HARD: MIN_SPEED = (MIN_SPEED * 1.5); MAX_SPEED = (MAX_SPEED * 1.5); break; }; _local3 = (Math.random() * _arg2.STAGE_WIDTH); _local4 = ((Math.random() * (MAX_SPEED - MIN_SPEED)) + MIN_SPEED); super(Lvl4SmallRammerMC, _arg1, _arg2, _local4, _local3, -100, _local3, (_arg2.STAGE_HEIGHT + 100)); this.groupNo = 43; this.addParticleGenerator(this.PARTICLE_SMOKE, -6, -26, true, false); this.addParticleGenerator(this.PARTICLE_SMOKE, 6, -26, true, false); this.setLife(1000, true); this.origWidth = this.width; this.origHeight = this.height; this.isRammable = true; this.isHittable = false; this.isAbsorbable = false; } } }//package classes
Section 44
//MainGame (classes.MainGame) package classes { import flash.display.*; import flash.events.*; import flash.media.*; import flash.geom.*; import explosionpackage.*; import flash.filters.*; import flash.ui.*; public class MainGame { public var DIFFICULTY_EASY:int;// = 1 public var bgElemMedium:Array; public var ENEMY_2PURSUIT:int;// = 23 public var LEVEL_PIC:int;// = 999 public var ENEMY_2INTERCEPTOR:int;// = 22 public var bgLayer:Sprite; public var ENEMY_4BOSS:int;// = 46 public var levelTimer:int; public var bossEnemy:Enemy; public var absorbLayer:Sprite; public var bgElemLarge:Array; public var ENEMY_4BOMBER:int;// = 41 public var bgRed:Number; public var ENEMY_1SMALLDOZER:int;// = 1 public var isParticlePressed:Boolean; public var STATE_GAMEPLAY:int;// = 3 public var prevState:int; public var txtBonusArray:Array; public var MAX_VTREE:int;// = 1 public var currPicTimer:int; public var isWholeGame:Boolean; public var ENEMY_3BIG:int;// = 35 public var lastTxtBonus:int; public var bgBlue:Number; public var explosionArray:Array; public var treeScale:Number; public var QUIT_KEY:int;// = 81 public var ENEMY_2MEDIUM:int;// = 25 public var ENEMY_1SMALLTRUCK:int;// = 2 public var PAUSE_KEY:int;// = 80 public var ENEMY_4RAMMER:int;// = 43 public var ENEMY_2SCANNER:int;// = 21 public var quitPressTimer:int; public var currLevel:int; public var shipLayer:Sprite; public var bulletArray:Array; public var DIFFICULTY_MEDIUM:int;// = 2 public var treeX:int; public var treeY:int; public var STATE_SHOWBOSSWARNING:int;// = 5 public var STATE_PAUSE:int;// = 6 public var ENEMY_3BOSS:int;// = 36 public var STATE_SHOWLEVELPIC:int;// = 4 public var bossApproachMC:MovieClip; public var prevvTreeAngle:Number; public var ENEMY_4BOMBERSHIELD:int;// = 47 public var sinTree:Number; public var degreeTree:Number; public var tutorialSpacebarEnabled:Boolean; public var PARTICLE_LIMIT:int;// = 80 public var ENEMY_2SCOUT:int;// = 24 public var tutorialTarget:MovieClip; public var isBossFight:Boolean; public var ENEMY_4BIG:int;// = 45 public var bgSmallLayer:Sprite; public var tutorialFrame:int; public var tutorialSpacePressed:Boolean; public var tutorialPhase:int; public var ENEMY_2SCANNERTUTORIAL:int;// = 28 public var tutorialEnemy:Enemy; public var ENEMY_4MEDIUM:int;// = 44 public var newScore:int; public var ENEMY_3CONIFEROUS:int;// = 31 public var QUALITY_KEY:int;// = 85 public var ENEMY_4FIGHTER:int;// = 42 public var DIFFICULTY_HARD:int;// = 3 public var STATE_WIN:int;// = 7 public var STATE_START:int;// = 1 public var particleUpperLayer:Sprite; public var MAX_PARTICLE_LIMIT:int;// = 80 public var bgLargeLayer:Sprite; public var STAGE_WIDTH:int;// = 430 public var PARTICLE_KEY:int;// = 73 public var obstacleArray:Array; public var bgArray:Array; public var ENEMY_1MEDIUM:int;// = 4 public var ENEMY_2BOSS:int;// = 27 public var yourShip:CharShip; public var gameMC:MovieClip; public var textureLayer:Sprite; public var ENEMY_3SCAVENGING:int;// = 33 public var bulletSound:sndFriendShot; public var txtBonusTimer:int; public var levelArray:Array; public var enemyRestTimer:int; public var startEnemyRest:Boolean; public var explosionLayer:Sprite; public var ENEMY_3RAPTORIAL:int;// = 32 public var tutorialPanel:HowToPlayPanel; public var bgMediumLayer:Sprite; public var isQuitPressed:Boolean; public var bossLifeMC:BossLifeMC; public var particleGeneratorArray:Array; public var bulletLayer:Sprite; public var particleArray:Array; public var nextLevelTimer:int; public var ENEMY_1SMALLDRILLER:int;// = 3 public var currState:int; public var ENEMY_1BIG:int;// = 5 public var ENEMY_1BOSS:int;// = 6 public var currDifficulty:int; public var SKIP_KEY:int;// = 75 public var currScore:Number; public var ENEMY_3MEDIUM:int;// = 34 public var interfaceLayer:Sprite; public var bulletChannel:SoundChannel; public var isPausePressed:Boolean; public var STAGE_HEIGHT:int;// = 480 public var enemyArray:Array; public var levelPicPhase:int; public var bgGreen:Number; public var currTreeAngle:Number; public var cosTree:Number; public var shootKey:int; public var levelPicSprite:Sprite; public var treeRadius:int; public var prevEnemyGroupNo:int; public var bgColorLayer:Sprite; public var ENEMY_2BIG:int;// = 26 public var STATE_SETSTAGE:int;// = 2 public var isQualityPressed:Boolean; public var absorbKey:int; public var bgElemSmall:Array; public var enemyGroupCombo:int; public var particleLowerLayer:Sprite; public var vTreeAngle:Number; public function MainGame(_arg1:MovieClip, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean){ var _local6:Boolean; var _local7:*; DIFFICULTY_EASY = 1; DIFFICULTY_MEDIUM = 2; DIFFICULTY_HARD = 3; PARTICLE_LIMIT = 80; MAX_PARTICLE_LIMIT = 80; STATE_START = 1; STATE_SETSTAGE = 2; STATE_GAMEPLAY = 3; STATE_SHOWLEVELPIC = 4; STATE_SHOWBOSSWARNING = 5; STATE_PAUSE = 6; STATE_WIN = 7; STAGE_WIDTH = 430; STAGE_HEIGHT = 480; ENEMY_1SMALLDOZER = 1; ENEMY_1SMALLTRUCK = 2; ENEMY_1SMALLDRILLER = 3; ENEMY_1MEDIUM = 4; ENEMY_1BIG = 5; ENEMY_1BOSS = 6; ENEMY_2SCANNER = 21; ENEMY_2SCANNERTUTORIAL = 28; ENEMY_2INTERCEPTOR = 22; ENEMY_2PURSUIT = 23; ENEMY_2SCOUT = 24; ENEMY_2MEDIUM = 25; ENEMY_2BIG = 26; ENEMY_2BOSS = 27; ENEMY_3CONIFEROUS = 31; ENEMY_3RAPTORIAL = 32; ENEMY_3SCAVENGING = 33; ENEMY_3MEDIUM = 34; ENEMY_3BIG = 35; ENEMY_3BOSS = 36; ENEMY_4BOMBER = 41; ENEMY_4FIGHTER = 42; ENEMY_4RAMMER = 43; ENEMY_4MEDIUM = 44; ENEMY_4BIG = 45; ENEMY_4BOSS = 46; ENEMY_4BOMBERSHIELD = 47; LEVEL_PIC = 999; MAX_VTREE = 1; PAUSE_KEY = 80; QUIT_KEY = 81; SKIP_KEY = 75; QUALITY_KEY = 85; PARTICLE_KEY = 73; super(); _local6 = false; if (_local6){ shootKey = 88; absorbKey = 68; } else { shootKey = 90; absorbKey = 88; }; this.gameMC = _arg1; this.currDifficulty = _arg2; this.currLevel = _arg3; this.isWholeGame = _arg4; this.currState = this.STATE_START; this.enemyArray = new Array(); this.bulletArray = new Array(); this.particleGeneratorArray = new Array(); this.particleArray = new Array(); this.obstacleArray = new Array(); this.bgColorLayer = new Sprite(); this.bgColorLayer.x = 0; this.bgColorLayer.y = 0; this.gameMC.addChild(this.bgColorLayer); this.bgColorLayer.graphics.beginFill(0xFFFFFF); this.bgColorLayer.graphics.drawRect(0, 0, 640, 480); this.bgColorLayer.graphics.endFill(); this.bgRed = 0xFF; this.bgGreen = 0xFF; this.bgBlue = 0xFF; this.bgColorLayer.transform.colorTransform = new ColorTransform(0, 0, 0, 0, this.bgRed, this.bgGreen, this.bgBlue, 0xFF); this.bgLayer = new Sprite(); this.bgLayer.x = 0; this.bgLayer.y = 0; this.bgLayer.alpha = 0; this.gameMC.addChild(this.bgLayer); this.bgLargeLayer = new Sprite(); this.bgLargeLayer.x = 0; this.bgLargeLayer.y = 0; this.bgLargeLayer.alpha = 1; this.bgLayer.addChild(this.bgLargeLayer); this.bgMediumLayer = new Sprite(); this.bgMediumLayer.x = 0; this.bgMediumLayer.y = 0; this.bgMediumLayer.alpha = 1; this.bgLayer.addChild(this.bgMediumLayer); this.bgSmallLayer = new Sprite(); this.bgSmallLayer.x = 0; this.bgSmallLayer.y = 0; this.bgSmallLayer.alpha = 1; this.bgLayer.addChild(this.bgSmallLayer); this.textureLayer = new Sprite(); this.textureLayer.x = 0; this.textureLayer.y = 0; this.textureLayer.alpha = 1; this.textureLayer.graphics.beginFill(0x222222, 0.6); this.textureLayer.graphics.drawRect(0, 0, 640, this.gameMC.STAGE_HEIGHT); this.textureLayer.graphics.endFill(); this.gameMC.addChild(this.textureLayer); this.particleLowerLayer = new Sprite(); this.particleLowerLayer.x = 0; this.particleLowerLayer.y = 0; this.gameMC.addChild(this.particleLowerLayer); this.absorbLayer = new Sprite(); this.absorbLayer.x = 0; this.absorbLayer.y = 0; this.gameMC.addChild(this.absorbLayer); this.shipLayer = new Sprite(); this.shipLayer.x = 0; this.shipLayer.y = 0; this.gameMC.addChild(this.shipLayer); this.bulletLayer = new Sprite(); this.bulletLayer.x = 0; this.bulletLayer.y = 0; this.gameMC.addChild(this.bulletLayer); this.particleUpperLayer = new Sprite(); this.particleUpperLayer.x = 0; this.particleUpperLayer.y = 0; this.gameMC.addChild(this.particleUpperLayer); this.explosionLayer = new Sprite(); this.explosionLayer.x = 0; this.explosionLayer.y = 0; this.gameMC.addChild(this.explosionLayer); this.explosionArray = new Array(); this.interfaceLayer = new Sprite(); this.interfaceLayer.x = 0; this.interfaceLayer.y = 0; this.gameMC.addChild(this.interfaceLayer); this.bossLifeMC = new BossLifeMC(); this.bossLifeMC.x = (this.gameMC.STAGE_WIDTH / 2); this.bossLifeMC.y = -100; this.interfaceLayer.addChild(this.bossLifeMC); _arg1.addEventListener(Event.ENTER_FRAME, render); _arg1.stage.addEventListener(KeyboardEvent.KEY_DOWN, pressMovement); _arg1.stage.addEventListener(KeyboardEvent.KEY_UP, releaseMovement); _arg1.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMovement); bgElemSmall = new Array(); bgElemMedium = new Array(); bgElemLarge = new Array(); bgElemSmall[0] = new Array(bg0s_1, bg0s_2); bgElemMedium[0] = new Array(bg0m_1); bgElemLarge[0] = new Array(bg0l_1); bgElemSmall[1] = new Array(bg1s_1, bg1s_2, bg1s_3, bg1s_4, bg1s_5, bg1s_6, bg1s_7, bg1s_8, bg1s_9, bg1s_10); bgElemMedium[1] = new Array(bg1m_1, bg1m_2, bg1m_3, bg1m_4, bg1m_5, bg1m_6); bgElemLarge[1] = new Array(bg1l_1, bg1l_2, bg1l_3, bg1l_4); bgElemSmall[2] = new Array(bg2s_1, bg2s_2, bg2s_3, bg2s_4, bg2s_5, bg2s_6, bg2s_7, bg2s_8, bg2s_9, bg2s_10); bgElemMedium[2] = new Array(bg2m_1, bg2m_2, bg2m_3, bg2m_4, bg2m_5, bg2m_6); bgElemLarge[2] = new Array(bg2l_1, bg2l_2, bg2l_3, bg2l_4); bgElemSmall[3] = new Array(bg3s_1, bg3s_2, bg3s_3, bg3s_4, bg3s_5, bg3s_6, bg3s_7, bg3s_8, bg3s_9, bg3s_10); bgElemMedium[3] = new Array(bg3m_1, bg3m_2, bg3m_3, bg3m_4, bg3m_5, bg3m_6); bgElemLarge[3] = new Array(bg3l_1, bg3l_2, bg3l_3, bg3l_4); bgElemSmall[4] = new Array(bg4s_1, bg4s_2, bg4s_3, bg4s_4, bg4s_5, bg4s_6, bg4s_7, bg4s_8, bg4s_9, bg4s_10); bgElemMedium[4] = new Array(bg4m_1, bg4m_2, bg4m_3, bg4m_4, bg4m_5, bg4m_6); bgElemLarge[4] = new Array(bg4l_1, bg4l_2, bg4l_3, bg4l_4); this.bgArray = new Array(); this.treeX = 640; this.treeY = (this.gameMC.STAGE_HEIGHT / 2); this.treeRadius = (this.treeX - this.gameMC.STAGE_WIDTH); this.cosTree = 0; this.sinTree = 0; this.bgLayer.alpha = 0; this.isBossFight = _arg5; bulletSound = new sndFriendShot(); bulletChannel = null; this.currScore = 0; this.newScore = 0; this.gameMC.treeMC.txtScore.text = "00000000"; this.txtBonusArray = new Array(this.gameMC.treeMC.txtBonus1, this.gameMC.treeMC.txtBonus2, this.gameMC.treeMC.txtBonus3, this.gameMC.treeMC.txtBonus4, this.gameMC.treeMC.txtBonus5); _local7 = 0; while (_local7 < this.txtBonusArray.length) { this.txtBonusArray[_local7].text = ""; _local7++; }; this.lastTxtBonus = 0; this.txtBonusTimer = 0; this.prevEnemyGroupNo = -1; this.enemyGroupCombo = 1; isPausePressed = false; isQuitPressed = false; isQualityPressed = false; isParticlePressed = false; quitPressTimer = 9999; if (this.gameMC.isQualityHigh){ this.gameMC.treeMC.txtQuality.text = "QUALITY : HIGH"; } else { this.gameMC.treeMC.txtQuality.text = "QUALITY : LOW"; }; if (this.gameMC.isParticleOn){ this.gameMC.treeMC.txtParticles.text = "PARTICLES : ON"; PARTICLE_LIMIT = MAX_PARTICLE_LIMIT; } else { this.gameMC.treeMC.txtParticles.text = "PARTICLES : OFF"; PARTICLE_LIMIT = 0; }; } public function isCollideObject(_arg1:MovieClip, _arg2:MovieClip):Boolean{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local3 = Math.abs((_arg2.x - _arg1.x)); _local4 = Math.abs((_arg2.y - _arg1.y)); _local5 = ((_arg1.origWidth > _arg1.origHeight)) ? _arg1.origWidth : _arg1.origHeight; _local6 = ((_arg2.origWidth > _arg2.origHeight)) ? _arg2.origWidth : _arg2.origHeight; _local7 = (_local5 + _local6); if ((((_local3 < _local7)) && ((_local4 < _local7)))){ return (isCollide(_arg1.x, _arg1.y, _arg1.origWidth, _arg1.origHeight, _arg1.rotation, _arg2.x, _arg2.y, _arg2.origWidth, _arg2.origHeight, _arg2.rotation)); }; return (false); } public function RotateVector2DClockwise(_arg1:Point, _arg2:Number):Point{ var _local3:Number; var _local4:Number; var _local5:*; _local4 = Math.cos(_arg2); _local5 = Math.sin(_arg2); _local3 = _arg1.x; _arg1.x = ((_local3 * _local4) + (_arg1.y * _local5)); _arg1.y = ((-(_local3) * _local5) + (_arg1.y * _local4)); return (_arg1); } public function pressMovement(_arg1:KeyboardEvent){ var _local2:*; switch (_arg1.keyCode){ case Keyboard.UP: this.yourShip.isMovingUp = true; break; case Keyboard.DOWN: this.yourShip.isMovingDown = true; break; case Keyboard.LEFT: this.yourShip.isMovingLeft = true; break; case Keyboard.RIGHT: this.yourShip.isMovingRight = true; break; case shootKey: case (shootKey + 32): if ((((this.yourShip.isShooting == false)) && ((((this.yourShip.absorbState == this.yourShip.ABSORB_NONE)) || ((this.yourShip.absorbState == this.yourShip.ABSORB_DONE)))))){ this.yourShip.isShooting = true; if (bulletChannel == null){ if (this.gameMC.jukebox.isMute == false){ bulletChannel = bulletSound.play(0, int.MAX_VALUE, new SoundTransform(0.4, 0)); }; }; }; break; case absorbKey: case (absorbKey + 32): this.yourShip.isAbsorbing = true; this.yourShip.isShooting = false; break; case PAUSE_KEY: case (PAUSE_KEY + 32): if (this.isPausePressed == false){ this.isPausePressed = true; if (currState == STATE_PAUSE){ currState = prevState; } else { prevState = currState; currState = STATE_PAUSE; }; }; break; case QUIT_KEY: case (QUIT_KEY + 32): if (this.isQuitPressed == false){ this.isQuitPressed = true; if (quitPressTimer < 50){ quitGame(3); } else { quitPressTimer = 0; }; }; break; case QUALITY_KEY: case (QUALITY_KEY + 32): if (this.isQualityPressed == false){ this.isQualityPressed = true; this.gameMC.setQuality(!(this.gameMC.isQualityHigh)); if (this.gameMC.isQualityHigh){ this.gameMC.treeMC.txtQuality.text = "QUALITY : HIGH"; } else { this.gameMC.treeMC.txtQuality.text = "QUALITY : LOW"; }; }; break; case PARTICLE_KEY: case (PARTICLE_KEY + 32): if (this.isParticlePressed == false){ this.isParticlePressed = true; this.gameMC.setParticle(!(this.gameMC.isParticleOn)); if (this.gameMC.isParticleOn){ this.gameMC.treeMC.txtParticles.text = "PARTICLES : ON"; PARTICLE_LIMIT = MAX_PARTICLE_LIMIT; } else { this.gameMC.treeMC.txtParticles.text = "PARTICLES : OFF"; PARTICLE_LIMIT = 0; }; }; break; case Keyboard.SPACE: if (tutorialSpacePressed == false){ if (currState == STATE_GAMEPLAY){ if (tutorialSpacebarEnabled){ tutorialSpacePressed = true; tutorialPhase++; }; }; }; break; case SKIP_KEY: case (SKIP_KEY + 32): if (currLevel == 0){ if (tutorialPanel != null){ tutorialPanel.scaleX = (tutorialPanel.scaleY = 0); interfaceLayer.removeChild(tutorialPanel); tutorialPanel = null; }; tutorialEnemy = null; _local2 = 0; while (_local2 < yourShip.optionArray.length) { yourShip.optionArray[_local2].removeAllBulletGenerator(); _local2++; }; if (currState == STATE_SHOWLEVELPIC){ this.interfaceLayer.removeChild(this.levelPicSprite); this.treeScale = 1; this.levelPicSprite = null; this.currPicTimer = 0; this.levelPicPhase = -1; this.currState = this.STATE_GAMEPLAY; }; nextLevel(); }; break; }; } public function nextLevel(){ this.currLevel++; if ((((this.currLevel > 4)) || ((this.isWholeGame == false)))){ currState = STATE_WIN; quitGame(7); } else { totalCleanup(); init2(); currState = STATE_SETSTAGE; }; } public function isCollidePoint(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Boolean{ var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local7 = Math.abs((_arg2 - _arg1.x)); _local8 = Math.abs((_arg3 - _arg1.y)); _local9 = ((_arg1.origWidth > _arg1.origHeight)) ? _arg1.origWidth : _arg1.origHeight; _local10 = ((_arg4 > _arg5)) ? _arg4 : _arg5; _local11 = (_local9 + _local10); if ((((_local7 < _local11)) && ((_local8 < _local11)))){ return (isCollide(_arg1.x, _arg1.y, _arg1.origWidth, _arg1.origHeight, _arg1.rotation, _arg2, _arg3, _arg4, _arg5, _arg6)); }; return (false); } public function changeBgColor():Boolean{ var _local1:int; var _local2:int; var _local3:int; var _local4:Boolean; _local4 = true; this.bgLayer.alpha = (this.bgLayer.alpha + ((0 - this.bgLayer.alpha) * 0.3)); if (currLevel == 4){ this.textureLayer.visible = false; }; switch (currLevel){ case 0: _local1 = 0; _local2 = 0; _local3 = 0; break; case 1: _local1 = 69; _local2 = 62; _local3 = 0; break; case 2: _local1 = 75; _local2 = 87; _local3 = 108; break; case 3: _local1 = 90; _local2 = 91; _local3 = 82; break; case 4: _local1 = 246; _local2 = 249; _local3 = 215; break; }; if (Math.abs((_local1 - this.bgRed)) < 3){ this.bgRed = _local1; } else { _local4 = false; }; if (Math.abs((_local2 - this.bgGreen)) < 3){ this.bgGreen = _local2; } else { _local4 = false; }; if (Math.abs((_local3 - this.bgBlue)) < 3){ this.bgBlue = _local3; } else { _local4 = false; }; if (Math.abs(this.bgLayer.alpha) < 0.1){ this.bgLayer.alpha = 0; } else { _local4 = false; }; this.bgRed = (this.bgRed + ((_local1 - this.bgRed) * 0.1)); this.bgGreen = (this.bgGreen + ((_local2 - this.bgGreen) * 0.1)); this.bgBlue = (this.bgBlue + ((_local3 - this.bgBlue) * 0.1)); this.bgColorLayer.transform.colorTransform = new ColorTransform(0, 0, 0, 0, Math.round(this.bgRed), Math.round(this.bgGreen), Math.round(this.bgBlue), 0xFF); return (_local4); } public function showBossWarning(){ if (this.gameMC.jukebox.isMute){ bossApproachMC = new BossApproachNoSound(); } else { bossApproachMC = new BossApproach(); }; bossApproachMC.x = (this.STAGE_WIDTH / 2); bossApproachMC.y = (this.STAGE_HEIGHT / 2); interfaceLayer.addChild(bossApproachMC); currState = STATE_SHOWBOSSWARNING; this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_REALLYNOSOUND; } public function designLevel(){ this.levelArray = new Array(); if (this.isBossFight){ this.levelArray.push(new Array(50, LEVEL_PIC)); switch (currLevel){ case 1: this.levelArray.push(new Array(50000, ENEMY_1BOSS)); break; case 2: this.levelArray.push(new Array(50000, ENEMY_2BOSS)); break; case 3: this.levelArray.push(new Array(50000, ENEMY_3BOSS)); break; case 4: this.levelArray.push(new Array(50000, ENEMY_4BOSS)); break; }; } else { switch (currLevel){ case 0: this.levelArray.push(new Array(20, LEVEL_PIC)); break; case 1: this.levelArray.push(new Array(30, ENEMY_1SMALLDOZER, -100, 50, (this.STAGE_WIDTH + 200), 150)); this.levelArray.push(new Array(80, ENEMY_1SMALLDOZER, -100, 100, (this.STAGE_WIDTH + 200), 200)); this.levelArray.push(new Array(130, ENEMY_1SMALLDOZER, -100, 150, (this.STAGE_WIDTH + 200), 250)); this.levelArray.push(new Array(180, ENEMY_1SMALLDOZER, -100, 200, (this.STAGE_WIDTH + 200), 300)); this.levelArray.push(new Array(1000, LEVEL_PIC)); this.levelArray.push(new Array(2000, ENEMY_1MEDIUM, 210, 100)); this.levelArray.push(new Array(3000, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(3020, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(3040, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(3060, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(3080, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(4030, ENEMY_1SMALLDOZER, -100, 150, (this.STAGE_WIDTH + 200), 250)); this.levelArray.push(new Array(4080, ENEMY_1SMALLDOZER, -100, 200, (this.STAGE_WIDTH + 200), 300)); this.levelArray.push(new Array(4130, ENEMY_1SMALLDOZER, -100, 250, (this.STAGE_WIDTH + 200), 350)); this.levelArray.push(new Array(4180, ENEMY_1SMALLDOZER, -100, 300, (this.STAGE_WIDTH + 200), 400)); this.levelArray.push(new Array(4200, ENEMY_1MEDIUM, 210, 100)); this.levelArray.push(new Array(5000, ENEMY_1SMALLDRILLER, 100, 150)); this.levelArray.push(new Array(6000, ENEMY_1SMALLDRILLER, 200, 150)); this.levelArray.push(new Array(7000, ENEMY_1SMALLDRILLER, 300, 150)); this.levelArray.push(new Array(8000, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(8020, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(8040, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(8060, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(8080, ENEMY_1SMALLTRUCK, -50, 200, true)); this.levelArray.push(new Array(8100, ENEMY_1MEDIUM, 100, 100)); this.levelArray.push(new Array(8100, ENEMY_1MEDIUM, (this.STAGE_WIDTH - 100), 100)); this.levelArray.push(new Array(10000, ENEMY_1BIG, 215, 150)); this.levelArray.push(new Array(12030, ENEMY_1SMALLDOZER, -100, 150, (this.STAGE_WIDTH + 200), 250)); this.levelArray.push(new Array(12080, ENEMY_1SMALLDOZER, -100, 200, (this.STAGE_WIDTH + 200), 300)); this.levelArray.push(new Array(12130, ENEMY_1SMALLDOZER, -100, 250, (this.STAGE_WIDTH + 200), 350)); this.levelArray.push(new Array(12180, ENEMY_1SMALLDOZER, -100, 300, (this.STAGE_WIDTH + 200), 400)); this.levelArray.push(new Array(12200, ENEMY_1SMALLDRILLER, 100, 150)); this.levelArray.push(new Array(12200, ENEMY_1SMALLDRILLER, 200, 150)); this.levelArray.push(new Array(12200, ENEMY_1SMALLDRILLER, 300, 150)); this.levelArray.push(new Array(13000, ENEMY_1MEDIUM, 150, 100)); this.levelArray.push(new Array(13000, ENEMY_1MEDIUM, 100, 200)); this.levelArray.push(new Array(13000, ENEMY_1MEDIUM, (this.STAGE_WIDTH - 150), 100)); this.levelArray.push(new Array(13000, ENEMY_1MEDIUM, (this.STAGE_WIDTH - 100), 200)); this.levelArray.push(new Array(50000, ENEMY_1BOSS)); break; case 2: this.levelArray.push(new Array(50, ENEMY_2SCANNERTUTORIAL, 2, 4, 50)); this.levelArray.push(new Array(350, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(350, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(370, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(370, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(390, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(390, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(410, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(410, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(430, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(430, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(1000, LEVEL_PIC)); this.levelArray.push(new Array(2100, ENEMY_2PURSUIT, 200, -100, 300, (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(2100, ENEMY_2PURSUIT, 100, -100, 200, (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(2100, ENEMY_2PURSUIT, 300, -100, 100, (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(2200, ENEMY_2PURSUIT, 250, -100, 150, (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(2200, ENEMY_2PURSUIT, 200, -100, 200, (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(2200, ENEMY_2PURSUIT, 300, -100, 100, (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(3050, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(3050, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(3070, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(3070, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(3090, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(3090, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(3110, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(3110, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(3130, ENEMY_2SCOUT, -50, 100, true)); this.levelArray.push(new Array(3130, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(4000, ENEMY_2INTERCEPTOR, 215, 150)); this.levelArray.push(new Array(5000, ENEMY_2SCANNER, 2, 5, 50)); this.levelArray.push(new Array(5050, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(5070, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(5090, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(5110, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(5130, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(6000, ENEMY_2MEDIUM, 210, 150)); this.levelArray.push(new Array(6000, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(6000, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(6100, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(6100, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(6100, ENEMY_2SCANNER, 2, 6, 50)); this.levelArray.push(new Array(6200, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(6200, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(6300, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(6300, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(0x1900, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(0x1900, ENEMY_2PURSUIT, ((Math.random() * 200) + 200), -100, ((Math.random() * 200) + 200), (this.STAGE_HEIGHT + 100))); this.levelArray.push(new Array(6450, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(6470, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(6490, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(6410, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(6430, ENEMY_2SCOUT, (this.STAGE_WIDTH + 50), 100, false)); this.levelArray.push(new Array(7000, ENEMY_2INTERCEPTOR, 50, 200)); this.levelArray.push(new Array(7000, ENEMY_2INTERCEPTOR, (this.STAGE_WIDTH - 50), 200)); this.levelArray.push(new Array(7200, ENEMY_2BIG, 210, 150)); this.levelArray.push(new Array(50000, ENEMY_2BOSS)); break; case 3: this.levelArray.push(new Array(50, ENEMY_3CONIFEROUS, 200, -100, 300, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(50, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(80, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(110, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(140, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(170, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(1000, LEVEL_PIC)); this.levelArray.push(new Array(2000, ENEMY_3CONIFEROUS, 100, -100, 200, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(2100, ENEMY_3CONIFEROUS, 200, -100, 300, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(2200, ENEMY_3CONIFEROUS, 300, -100, 400, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(2300, ENEMY_3CONIFEROUS, 300, -100, 400, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(2400, ENEMY_3RAPTORIAL, 210, 150)); this.levelArray.push(new Array(2550, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(2580, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(2610, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(2700, ENEMY_3MEDIUM, 210, 150)); this.levelArray.push(new Array(4000, ENEMY_3RAPTORIAL, 100, 150)); this.levelArray.push(new Array(4000, ENEMY_3RAPTORIAL, (this.STAGE_WIDTH - 100), 150)); this.levelArray.push(new Array(4100, ENEMY_3CONIFEROUS, 100, -100, 200, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(4100, ENEMY_3CONIFEROUS, 200, -100, 300, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(5000, ENEMY_3BIG, 210, 150)); this.levelArray.push(new Array(7000, ENEMY_3MEDIUM, 100, 150)); this.levelArray.push(new Array(7000, ENEMY_3MEDIUM, (this.STAGE_WIDTH - 100), 150)); this.levelArray.push(new Array(8000, ENEMY_3MEDIUM, 210, 150)); this.levelArray.push(new Array(8000, ENEMY_3CONIFEROUS, 100, -100, 200, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(8100, ENEMY_3CONIFEROUS, 200, -100, 300, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(8200, ENEMY_3CONIFEROUS, 300, -100, 400, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(8300, ENEMY_3CONIFEROUS, 300, -100, 400, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(8400, ENEMY_3RAPTORIAL, 210, 150)); this.levelArray.push(new Array(10000, ENEMY_3CONIFEROUS, 100, -100, 100, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(10000, ENEMY_3CONIFEROUS, 300, -100, 300, (this.STAGE_HEIGHT + 200))); this.levelArray.push(new Array(10050, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(10080, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(10110, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(10140, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(10170, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(90000, ENEMY_3BOSS)); break; case 4: this.levelArray.push(new Array(50, ENEMY_4BOMBER, 100, -100, 350, (this.STAGE_HEIGHT + 150))); this.levelArray.push(new Array(50, ENEMY_4BOMBER, 350, -100, 100, (this.STAGE_HEIGHT + 150))); this.levelArray.push(new Array(1000, LEVEL_PIC)); this.levelArray.push(new Array(2000, ENEMY_4FIGHTER, 150, 100)); this.levelArray.push(new Array(2000, ENEMY_4BOMBER, 100, -100, 350, (this.STAGE_HEIGHT + 150))); this.levelArray.push(new Array(3000, ENEMY_4FIGHTER, 100, 50)); this.levelArray.push(new Array(3000, ENEMY_4FIGHTER, (this.STAGE_WIDTH - 100), 50)); this.levelArray.push(new Array(3000, ENEMY_4FIGHTER, 50, 100)); this.levelArray.push(new Array(3000, ENEMY_4FIGHTER, (this.STAGE_WIDTH - 50), 100)); this.levelArray.push(new Array(4000, ENEMY_4BOMBER, 350, -100, 100, (this.STAGE_HEIGHT + 150))); this.levelArray.push(new Array(4050, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(4080, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(4110, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(4140, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(4170, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(5000, ENEMY_4FIGHTER, 100, 150)); this.levelArray.push(new Array(5000, ENEMY_4FIGHTER, 350, 150)); this.levelArray.push(new Array(5050, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(5080, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(5110, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(0x1414, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(5170, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(5250, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(5280, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(5310, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(5340, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(5370, ENEMY_3SCAVENGING, -50, 100, true)); this.levelArray.push(new Array(10000, ENEMY_4BOSS)); break; }; }; } public function AddVectors2D(_arg1:Point, _arg2:Point):Point{ _arg1.x = (_arg1.x + _arg2.x); _arg1.y = (_arg1.y + _arg2.y); return (_arg1); } public function addScore(_arg1:String, _arg2:int){ var _local3:*; newScore = (newScore + _arg2); if (lastTxtBonus >= txtBonusArray.length){ _local3 = 0; while (_local3 < (txtBonusArray.length - 1)) { txtBonusArray[_local3].text = txtBonusArray[(_local3 + 1)].text; _local3++; }; lastTxtBonus = (txtBonusArray.length - 1); }; txtBonusArray[lastTxtBonus].text = ((_arg1 + ": ") + _arg2); lastTxtBonus++; txtBonusTimer = 0; } public function mouseMovement(_arg1:MouseEvent){ if (currState == STATE_PAUSE){ Mouse.show(); } else { if (this.yourShip != null){ this.yourShip.isMovingUp = false; this.yourShip.isMovingDown = false; this.yourShip.isMovingLeft = false; this.yourShip.isMovingRight = false; this.yourShip.moveShipByMouse(this.gameMC.mouseX, this.gameMC.mouseY); }; }; } public function transferBulletGenerator(_arg1:Enemy):BulletGenerator{ var _local2:BulletGenerator; var _local3:*; _local2 = _arg1.bulletGeneratorArray[0]; _local3 = (_arg1.bulletGeneratorArray.length - 1); while (_local3 >= 0) { _arg1.bulletGeneratorArray[_local3] = null; _arg1.bulletGeneratorArray.splice(_local3, 1); _local3--; }; return (_local2); } public function cleanup(){ var _local1:int; var _local2:int; var _local3:Particle; _local1 = (bulletArray.length - 1); while (_local1 >= 0) { if (bulletArray[_local1].currState == bulletArray[_local1].STATE_REMOVE){ _local2 = (this.particleGeneratorArray.length - 1); while (_local2 >= 0) { if (this.particleGeneratorArray[_local2].ownerMC == bulletArray[_local1].sprite){ this.particleGeneratorArray.splice(_local2, 1); }; _local2--; }; bulletArray[_local1].removeChild(bulletArray[_local1].sprite); bulletArray[_local1].sprite = null; this.bulletLayer.removeChild(bulletArray[_local1]); bulletArray[_local1] = null; bulletArray.splice(_local1, 1); }; _local1--; }; _local1 = (enemyArray.length - 1); while (_local1 >= 0) { if (enemyArray[_local1].currState == enemyArray[_local1].STATE_OUTOFSTAGE){ _local2 = (this.particleGeneratorArray.length - 1); while (_local2 >= 0) { if (this.particleGeneratorArray[_local2].ownerMC == enemyArray[_local1]){ this.particleGeneratorArray.splice(_local2, 1); }; _local2--; }; enemyArray[_local1].removeAllBulletGenerator(); enemyArray[_local1].removeChild(enemyArray[_local1].mc); enemyArray[_local1].mc = null; enemyArray[_local1].layer.removeChild(enemyArray[_local1]); enemyArray[_local1] = null; enemyArray.splice(_local1, 1); }; _local1--; }; _local1 = (explosionArray.length - 1); while (_local1 >= 0) { if (explosionArray[_local1].removeMe){ explosionArray[_local1].removeChild(explosionArray[_local1].bmp); this.explosionLayer.removeChild(explosionArray[_local1]); explosionArray[_local1] = null; explosionArray.splice(_local1, 1); }; _local1--; }; while (particleArray.length > this.PARTICLE_LIMIT) { _local3 = particleArray.shift(); _local3.targetMC.removeChild(_local3.clip); _local3.clip = null; _local3 = null; }; _local1 = (particleArray.length - 1); while (_local1 >= 0) { if (particleArray[_local1].removeMe){ this.particleArray[_local1].targetMC.removeChild(particleArray[_local1].clip); this.particleArray[_local1].clip = null; this.particleArray[_local1] = null; particleArray.splice(_local1, 1); }; _local1--; }; _local1 = (obstacleArray.length - 1); while (_local1 >= 0) { if (obstacleArray[_local1].currState == obstacleArray[_local1].STATE_REMOVE){ this.obstacleArray[_local1].layer.removeChild(obstacleArray[_local1]); this.obstacleArray[_local1] = null; obstacleArray.splice(_local1, 1); }; _local1--; }; } public function totalCleanup(){ var _local1:int; var _local2:int; _local1 = (bulletArray.length - 1); while (_local1 >= 0) { bulletArray[_local1].removeChild(bulletArray[_local1].sprite); bulletArray[_local1].sprite = null; this.bulletLayer.removeChild(bulletArray[_local1]); bulletArray[_local1] = null; bulletArray.splice(_local1, 1); _local1--; }; _local1 = (enemyArray.length - 1); while (_local1 >= 0) { enemyArray[_local1].removeAllBulletGenerator(); enemyArray[_local1].removeChild(enemyArray[_local1].mc); enemyArray[_local1].mc = null; enemyArray[_local1].layer.removeChild(enemyArray[_local1]); enemyArray[_local1] = null; enemyArray.splice(_local1, 1); _local1--; }; _local1 = (explosionArray.length - 1); while (_local1 >= 0) { explosionArray[_local1].removeChild(explosionArray[_local1].bmp); this.explosionLayer.removeChild(explosionArray[_local1]); explosionArray[_local1] = null; explosionArray.splice(_local1, 1); _local1--; }; _local1 = (this.particleGeneratorArray.length - 1); while (_local1 >= 0) { this.particleGeneratorArray[_local1] = null; this.particleGeneratorArray.splice(_local1, 1); _local1--; }; _local1 = (particleArray.length - 1); while (_local1 >= 0) { this.particleArray[_local1].targetMC.removeChild(particleArray[_local1].clip); this.particleArray[_local1].clip = null; this.particleArray[_local1] = null; particleArray.splice(_local1, 1); _local1--; }; _local1 = (obstacleArray.length - 1); while (_local1 >= 0) { this.obstacleArray[_local1].layer.removeChild(obstacleArray[_local1]); this.obstacleArray[_local1] = null; obstacleArray.splice(_local1, 1); _local1--; }; } public function quitGame(_arg1:int){ totalCleanup(); if (bulletChannel != null){ bulletChannel.stop(); bulletChannel = null; }; if (yourShip.soundAbsorbChannel != null){ yourShip.soundAbsorbChannel.stop(); yourShip.soundAbsorbChannel = null; }; Mouse.show(); this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_MENU; gameMC.removeEventListener(Event.ENTER_FRAME, render); gameMC.stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressMovement); gameMC.stage.removeEventListener(KeyboardEvent.KEY_UP, releaseMovement); gameMC.stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMovement); MovieClip(gameMC.parent).currScore = this.newScore; gameMC.gameEngine = null; MovieClip(gameMC.parent).changeSection(_arg1); } public function addBullet(_arg1:Bullet){ bulletArray.push(_arg1); } public function processBackground(){ var _local1:int; var _local2:Sprite; var _local3:int; var _local4:int; var _local5:Class; var _local6:int; var _local7:int; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; this.currTreeAngle = (this.currTreeAngle + Math.abs(this.vTreeAngle)); if (this.prevvTreeAngle != this.vTreeAngle){ this.prevvTreeAngle = this.vTreeAngle; this.cosTree = Math.cos(this.vTreeAngle); this.sinTree = Math.sin(this.vTreeAngle); this.degreeTree = ((this.vTreeAngle * 180) / Math.PI); }; if (currTreeAngle > MAX_VTREE){ currTreeAngle = 0; _local6 = this.gameMC.STAGE_WIDTH; _local7 = ((this.treeY - treeRadius) - (_local6 / 2)); _local3 = getRandomInt(1, 1); _local4 = (bgElemLarge[currLevel].length - 1); _local1 = 0; while (_local1 < _local3) { _local5 = bgElemLarge[currLevel][getRandomInt(0, _local4)]; _local2 = new (_local5); _local2.x = getRandomInt((this.treeX - 150), (this.treeX + 50)); _local2.y = getRandomInt((_local7 - (_local6 / 2)), (_local7 + (_local6 / 2))); _local2.rotation = getRandomInt(70, 110); _local2.scaleX = this.treeScale; _local2.scaleY = _local2.scaleX; this.bgLargeLayer.addChild(_local2); bgArray.push(_local2); _local1++; }; _local3 = getRandomInt(1, 2); _local4 = (bgElemMedium[currLevel].length - 1); _local1 = 0; while (_local1 < _local3) { _local5 = bgElemMedium[currLevel][getRandomInt(0, _local4)]; _local2 = new (_local5); _local2.x = getRandomInt((this.treeX - 150), (this.treeX + 150)); _local2.y = getRandomInt((_local7 - (_local6 / 2)), (_local7 + (_local6 / 2))); if ((((currLevel == 2)) || ((currLevel == 4)))){ _local2.rotation = (getRandomInt(1, 3) * 90); } else { _local2.rotation = getRandomInt(0, 360); }; _local2.scaleX = this.treeScale; _local2.scaleY = _local2.scaleX; this.bgMediumLayer.addChild(_local2); bgArray.push(_local2); _local1++; }; _local3 = getRandomInt(4, 6); _local4 = (bgElemSmall[currLevel].length - 1); _local1 = 0; while (_local1 < _local3) { _local5 = bgElemSmall[currLevel][getRandomInt(0, _local4)]; _local2 = new (_local5); _local2.x = getRandomInt((this.treeX - 200), (this.treeX + 200)); _local2.y = getRandomInt((_local7 - (_local6 / 2)), (_local7 + (_local6 / 2))); if ((((currLevel == 2)) || ((currLevel == 4)))){ _local2.rotation = (getRandomInt(1, 2) * 90); } else { _local2.rotation = getRandomInt(0, 360); }; _local2.scaleX = this.treeScale; _local2.scaleY = _local2.scaleX; this.bgSmallLayer.addChild(_local2); bgArray.push(_local2); _local1++; }; }; _local1 = (bgArray.length - 1); while (_local1 >= 0) { _local2 = bgArray[_local1]; _local8 = (_local2.x - treeX); _local9 = (_local2.y - treeY); _local10 = ((cosTree * _local8) - (sinTree * _local9)); _local11 = ((cosTree * _local9) + (sinTree * _local8)); _local2.x = (treeX + _local10); _local2.y = (treeY + _local11); if (currLevel == 3){ if (Sprite(_local2.parent) == this.bgSmallLayer){ _local2.x = (_local2.x + 0.2); _local2.y = (_local2.y + 0.2); }; }; _local2.rotation = (_local2.rotation + this.degreeTree); if (currLevel == 4){ if (Sprite(_local2.parent) == this.bgSmallLayer){ _local12 = (((_local2.rotation + 90) * Math.PI) / 180); _local2.x = (_local2.x + (Math.cos(_local12) * 1)); _local2.y = (_local2.y + (Math.sin(_local12) * 1)); }; }; _local2.scaleX = this.treeScale; _local2.scaleY = _local2.scaleX; if ((((_local2.x > (this.gameMC.STAGE_WIDTH + 100))) && ((_local2.y > (this.gameMC.STAGE_HEIGHT / 2))))){ Sprite(_local2.parent).removeChild(_local2); bgArray[_local1] = null; bgArray.splice(_local1, 1); }; _local1--; }; } public function getRandomNum(_arg1:int, _arg2:int):Number{ return (((Math.random() * (_arg2 - _arg1)) + _arg1)); } public function init(){ this.yourShip = new CharShip((this.STAGE_WIDTH / 2), (this.STAGE_HEIGHT - 50), this.gameMC); if (this.currDifficulty == 0){ this.yourShip.currLife = 99; this.gameMC.treeMC.txtLife.text = this.yourShip.currLife; this.currDifficulty = 1; }; designLevel(); this.levelTimer = 0; this.currTreeAngle = this.MAX_VTREE; this.prevvTreeAngle = -1; this.treeScale = 1; this.vTreeAngle = -0.04; this.nextLevelTimer = 0; this.enemyRestTimer = 0; this.startEnemyRest = false; this.tutorialPhase = 0; this.tutorialSpacePressed = false; this.tutorialFrame = -1; this.tutorialSpacebarEnabled = true; } public function init2(){ this.levelArray = new Array(); designLevel(); this.levelTimer = 0; this.currTreeAngle = this.MAX_VTREE; this.prevvTreeAngle = -1; this.treeScale = 1; this.vTreeAngle = -0.04; this.nextLevelTimer = 0; this.enemyRestTimer = 0; this.startEnemyRest = false; } public function updateScore(){ var _local1:String; var _local2:int; var _local3:*; if (newScore != currScore){ currScore = (currScore + ((newScore - currScore) * 0.2)); if (Math.abs((newScore - currScore)) < 5){ currScore = newScore; }; _local2 = int(currScore); if (_local2 > 9999999){ _local1 = String(_local2); } else { if (_local2 > 999999){ _local1 = ("0" + String(_local2)); } else { if (_local2 > 99999){ _local1 = ("00" + String(_local2)); } else { if (_local2 > 9999){ _local1 = ("000" + String(_local2)); } else { if (_local2 > 999){ _local1 = ("0000" + String(_local2)); } else { if (_local2 > 99){ _local1 = ("00000" + String(_local2)); } else { if (_local2 > 9){ _local1 = ("000000" + String(_local2)); } else { _local1 = ("0000000" + String(_local2)); }; }; }; }; }; }; }; this.gameMC.treeMC.txtScore.text = _local1; }; if (lastTxtBonus > 0){ txtBonusTimer++; if (txtBonusTimer > 60){ txtBonusTimer = 0; _local3 = 0; while (_local3 < (txtBonusArray.length - 1)) { txtBonusArray[_local3].text = txtBonusArray[(_local3 + 1)].text; _local3++; }; txtBonusArray[(txtBonusArray.length - 1)].text = ""; lastTxtBonus--; }; }; } public function getRandomInt(_arg1:int, _arg2:int):int{ return (Math.round(((Math.random() * (_arg2 - _arg1)) + _arg1))); } public function addExplosion(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean){ var _local5:int; var _local6:int; switch (_arg3){ case 2: _local5 = 100; _local6 = 100; break; case 3: _local5 = 200; _local6 = 200; break; case 4: _local5 = 300; _local6 = 300; break; default: _local5 = 100; _local6 = 100; break; }; this.explosionArray.push(new ExplosionEngine((_arg1 - (_local5 / 2)), (_arg2 - (_local6 / 2)), _local5, _local6, this.explosionLayer, _arg3, _arg4)); } public function SubVectors2D(_arg1:Point, _arg2:Point):Point{ _arg1.x = (_arg1.x - _arg2.x); _arg1.y = (_arg1.y - _arg2.y); return (_arg1); } public function render(_arg1:Event){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:*; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Bullet; if (quitPressTimer != 9999){ quitPressTimer++; if (quitPressTimer > 50){ quitPressTimer = 9999; }; }; switch (currState){ case STATE_PAUSE: break; case STATE_START: init(); currState = STATE_SETSTAGE; break; case STATE_SETSTAGE: if (changeBgColor()){ currState = STATE_GAMEPLAY; switch (currLevel){ case 0: this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_TUTORIAL; break; case 1: this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_LEVEL1SLOW; break; case 2: this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_LEVEL2SLOW; break; case 3: this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_LEVEL3SLOW; break; case 4: this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_LEVEL4SLOW; break; }; }; break; case STATE_SHOWLEVELPIC: case STATE_SHOWBOSSWARNING: case STATE_GAMEPLAY: processBackground(); updateScore(); this.gameMC.txtStatus.text = ""; if (currLevel == 0){ switch (tutorialPhase){ case 0: tutorialTarget = null; tutorialFrame = -1; break; case 1: tutorialTarget = null; tutorialPanel = new HowToPlayPanel(); tutorialPanel.x = ((this.gameMC.STAGE_WIDTH / 2) + 75); tutorialPanel.y = ((this.gameMC.STAGE_HEIGHT / 2) - 100); tutorialPanel.scaleX = (tutorialPanel.scaleY = 0); tutorialFrame = 2; interfaceLayer.addChild(tutorialPanel); tutorialPhase = 2; break; case 2: tutorialTarget = null; tutorialPanel.scaleX = (tutorialPanel.scaleY = (tutorialPanel.scaleY + 0.1)); if (tutorialPanel.scaleX >= 1){ tutorialPanel.scaleX = (tutorialPanel.scaleY = 1); tutorialPhase = 3; }; break; case 3: tutorialSpacebarEnabled = true; break; case 4: tutorialFrame = 3; tutorialTarget = this.yourShip; tutorialSpacebarEnabled = true; break; case 5: tutorialEnemy = new Lvl0SmallDozer(this.currLevel, this.gameMC, 100, 150); enemyArray.push(tutorialEnemy); tutorialSpacebarEnabled = false; tutorialPhase = 6; break; case 6: tutorialFrame = 4; tutorialTarget = tutorialEnemy; tutorialSpacebarEnabled = true; break; case 7: tutorialEnemy.addBulletGenerator(tutorialEnemy.BULLETGENERATOR_ANGLE, 1, 100, 6, false, false, 5, 0, 1, 2, 1, BulletStick, tutorialEnemy.BULLETMOVE_CONSISTENT, 0, 2, 10, 90); tutorialSpacebarEnabled = false; tutorialPhase = 8; break; case 8: tutorialFrame = 5; if (this.bulletArray.length > 1){ tutorialTarget = this.bulletArray[(this.bulletArray.length - 2)]; } else { tutorialTarget = null; }; tutorialSpacebarEnabled = true; break; case 9: tutorialFrame = 6; tutorialTarget = null; tutorialSpacebarEnabled = false; if (this.enemyArray.length <= 0){ tutorialPhase = 10; }; break; case 10: tutorialFrame = 7; tutorialTarget = null; tutorialSpacebarEnabled = true; break; case 11: tutorialEnemy = new Lvl0Medium(this.currLevel, this.gameMC, 100, 150); enemyArray.push(tutorialEnemy); tutorialSpacebarEnabled = false; tutorialPhase = 12; break; case 12: tutorialFrame = 8; tutorialTarget = tutorialEnemy; tutorialSpacebarEnabled = true; break; case 13: tutorialFrame = 9; tutorialTarget = null; tutorialSpacebarEnabled = false; if (yourShip.optionArray[0].optionTimer > 0){ tutorialPhase = 14; }; break; case 14: tutorialFrame = 10; tutorialTarget = yourShip.optionArray[0]; tutorialSpacebarEnabled = true; break; case 15: tutorialFrame = 11; tutorialTarget = null; tutorialSpacebarEnabled = false; if (this.enemyArray.length <= 0){ tutorialPhase = 16; }; break; case 16: tutorialFrame = 12; tutorialTarget = null; tutorialSpacebarEnabled = true; break; case 17: tutorialFrame = 13; tutorialTarget = null; tutorialSpacebarEnabled = true; break; case 18: tutorialFrame = 14; tutorialTarget = yourShip.optionArray[0]; tutorialSpacebarEnabled = true; break; case 19: tutorialFrame = 15; tutorialTarget = null; tutorialSpacebarEnabled = true; break; case 20: tutorialFrame = 16; tutorialTarget = null; tutorialSpacebarEnabled = true; break; case 21: tutorialFrame = 16; tutorialTarget = null; tutorialSpacebarEnabled = false; break; }; if (tutorialPhase >= 1){ if (tutorialPanel.tutorialMC.currentFrame != tutorialFrame){ tutorialPanel.tutorialMC.gotoAndStop(tutorialFrame); }; if (tutorialPanel.tutorialMC.spacebarMC.visible != tutorialSpacebarEnabled){ tutorialPanel.tutorialMC.spacebarMC.visible = tutorialSpacebarEnabled; }; }; if (tutorialTarget == null){ if (tutorialPhase >= 1){ tutorialPanel.arrowMC.alpha = 0; }; } else { _local4 = (tutorialTarget.x - tutorialPanel.x); _local5 = (tutorialTarget.y - tutorialPanel.y); _local6 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); _local7 = Math.atan2(_local5, _local4); _local8 = (_local6 - (30 + (tutorialTarget.width / 2))); _local6 = ((_local8 > 0)) ? _local8 : 0; tutorialPanel.arrowMC.rotation = ((_local7 * 180) / Math.PI); tutorialPanel.arrowMC.arrowInsideMC.width = _local6; tutorialPanel.arrowMC.alpha = 1; }; if (tutorialPhase == 21){ tutorialPanel.scaleX = (tutorialPanel.scaleY = (tutorialPanel.scaleY - 0.1)); if (tutorialPanel.scaleX <= 0){ tutorialPanel.scaleX = (tutorialPanel.scaleY = 0); tutorialEnemy = null; interfaceLayer.removeChild(tutorialPanel); tutorialPanel = null; _local9 = 0; while (_local9 < yourShip.optionArray.length) { yourShip.optionArray[_local9].removeAllBulletGenerator(); _local9++; }; nextLevel(); }; }; }; if (currState == STATE_SHOWLEVELPIC){ switch (levelPicPhase){ case 0: this.levelPicSprite.alpha = (this.levelPicSprite.alpha + 0.1); if (this.levelPicSprite.alpha >= 1){ this.levelPicSprite.alpha = 1; this.currPicTimer = 0; this.levelPicPhase = 1; }; break; case 1: currPicTimer++; if (currPicTimer > 150){ this.levelPicPhase = 2; if (this.isBossFight == false){ switch (currLevel){ case 0: tutorialPhase = 1; break; case 1: this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_LEVEL1FAST; break; case 2: this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_LEVEL2FAST; break; case 3: this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_LEVEL3FAST; break; case 4: this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_LEVEL4FAST; break; }; }; this.currPicTimer = 0; this.vTreeAngle = -0.004; }; break; case 2: this.levelPicSprite.alpha = (this.levelPicSprite.alpha - 0.1); this.bgLayer.alpha = (1 - this.levelPicSprite.alpha); this.treeScale = (1 + (this.levelPicSprite.alpha / 8)); if (this.levelPicSprite.alpha <= 0){ this.interfaceLayer.removeChild(this.levelPicSprite); this.bgLayer.alpha = 1; this.treeScale = 1; this.levelPicSprite = null; this.currPicTimer = 0; this.levelPicPhase = -1; this.currState = this.STATE_GAMEPLAY; }; break; }; } else { if (currState == STATE_SHOWBOSSWARNING){ if (bossApproachMC.currentFrame >= bossApproachMC.totalFrames){ addBoss(); }; } else { this.levelTimer++; }; }; if (this.levelArray.length > 0){ if (((!((currState == STATE_SHOWLEVELPIC))) && (!((currState == STATE_SHOWBOSSWARNING))))){ if (startEnemyRest){ if ((((enemyArray.length == 0)) && ((obstacleArray.length == 0)))){ enemyRestTimer++; if (enemyRestTimer > 50){ this.levelTimer = this.levelArray[0][0]; }; } else { enemyRestTimer = 0; }; }; }; while ((((this.levelArray.length > 0)) && ((this.levelTimer >= this.levelArray[0][0])))) { processAsset(this.levelArray[0]); levelArray.splice(0, 1); startEnemyRest = true; }; }; yourShip.render(); _local2 = 0; while (_local2 < enemyArray.length) { enemyArray[_local2].render(); if (yourShip.currState == yourShip.STATE_ALIVE){ if (((enemyArray[_local2].isRammable) && (yourShip.isShielded))){ _local10 = (enemyArray[_local2].x - yourShip.x); _local11 = (enemyArray[_local2].y - yourShip.y); if ((((_local10 < yourShip.shieldMC.width)) && ((_local11 < yourShip.shieldMC.height)))){ _local12 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); if (_local12 < yourShip.shieldMC.width){ enemyArray[_local2].currState = enemyArray[_local2].STATE_OUTOFSTAGE; _local13 = new Bullet(BulletRammer, enemyArray[_local2].x, enemyArray[_local2].y, 270, 6, false, false, 0, enemyArray[_local2].PARTICLE_DAMAGESMOKE, true, 100, this.gameMC, 1, 0); this.addBullet(_local13); if (yourShip.shieldTimer == -1){ yourShip.unshieldMe(); }; }; }; } else { if (enemyArray[_local2].isHarmful){ if (isCollideObject(yourShip, enemyArray[_local2])){ yourShip.currState = yourShip.STATE_EXPLODE; }; }; }; }; _local2++; }; _local2 = 0; while (_local2 < obstacleArray.length) { obstacleArray[_local2].render(); _local2++; }; _local2 = 0; while (_local2 < bulletArray.length) { bulletArray[_local2].render(); if (bulletArray[_local2].currState == bulletArray[_local2].STATE_MOVE){ if (bulletArray[_local2].isYours){ _local3 = 0; while (_local3 < enemyArray.length) { if (enemyArray[_local3].isHittable){ if (isCollideObject(enemyArray[_local3], bulletArray[_local2])){ if (enemyArray[_local3].currState != enemyArray[_local3].STATE_OUTOFSTAGE){ bulletArray[_local2].currState = bulletArray[_local2].STATE_DIE; if (enemyArray[_local3].isShielded == false){ enemyArray[_local3].beingShot(bulletArray[_local2]); }; }; break; }; }; _local3++; }; } else { if (yourShip.currState == yourShip.STATE_ALIVE){ if (isCollideObject(yourShip, bulletArray[_local2])){ bulletArray[_local2].currState = bulletArray[_local2].STATE_DIE; if (yourShip.isShielded == false){ yourShip.currState = yourShip.STATE_EXPLODE; } else { if (yourShip.shieldTimer == -1){ yourShip.unshieldMe(); }; }; }; } else { bulletArray[_local2].currState = bulletArray[_local2].STATE_DIE; }; }; if (isInside(bulletArray[_local2]) == false){ bulletArray[_local2].currState = bulletArray[_local2].STATE_REMOVE; }; }; _local2++; }; _local2 = 0; while (_local2 < this.particleGeneratorArray.length) { this.particleGeneratorArray[_local2].render(); _local2++; }; _local2 = 0; while (_local2 < particleArray.length) { particleArray[_local2].update(); _local2++; }; _local2 = 0; while (_local2 < explosionArray.length) { explosionArray[_local2].render(); _local2++; }; if (this.currLevel != 0){ if ((((this.levelArray.length == 0)) && ((this.enemyArray.length == 0)))){ this.nextLevelTimer++; if (this.nextLevelTimer > 200){ this.nextLevelTimer = 0; nextLevel(); }; }; }; break; }; cleanup(); } public function isCollide(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number):Boolean{ var _local11:Point; var _local12:Point; var _local13:Point; var _local14:Point; var _local15:Point; var _local16:Number; var _local17:Number; var _local18:Point; var _local19:Point; var _local20:Point; var _local21:Point; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; _local11 = new Point(); _local12 = new Point(); _local16 = ((_arg5 * Math.PI) / 180); _local17 = ((_arg10 * Math.PI) / 180); _local18 = new Point(_arg1, _arg2); _local19 = new Point(_arg6, _arg7); _local20 = new Point(_arg3, _arg4); _local21 = new Point(_arg8, _arg9); _local22 = (_local16 - _local17); _local23 = Math.cos(_local22); _local24 = Math.sin(_local22); _local26 = 0; _local13 = _local19; _local13 = SubVectors2D(_local13, _local18); _local13 = RotateVector2DClockwise(_local13, _local17); _local15 = _local13; _local14 = _local15; _local14 = SubVectors2D(_local14, _local21); _local15 = AddVectors2D(_local15, _local21); _local11.x = (-(_local20.y) * _local24); _local12.x = _local11.x; _local25 = (_local20.x * _local23); _local11.x = (_local11.x + _local25); _local12.x = (_local12.x - _local25); _local11.y = (_local20.y * _local23); _local12.y = _local11.y; _local25 = (_local20.x * _local24); _local11.y = (_local11.y + _local25); _local12.y = (_local12.y - _local25); _local25 = (_local24 * _local23); if (_local25 < 0){ _local25 = _local11.x; _local11.x = _local12.x; _local12.x = _local25; _local25 = _local11.y; _local11.y = _local12.y; _local12.y = _local25; }; if (_local24 < 0){ _local12.x = -(_local12.x); _local12.y = -(_local12.y); }; if ((((_local12.x > _local15.x)) || ((_local12.x > -(_local14.x))))){ return (false); }; if (_local25 == 0){ _local29 = _local11.y; _local30 = -(_local29); } else { _local26 = (_local14.x - _local11.x); _local27 = (_local15.x - _local11.x); _local29 = _local11.y; if ((_local27 * _local26) > 0){ _local28 = _local11.x; if (_local26 < 0){ _local28 = (_local28 - _local12.x); _local29 = (_local29 - _local12.y); _local26 = _local27; } else { _local28 = (_local28 + _local12.x); _local29 = (_local29 + _local12.y); }; _local29 = (_local29 * _local26); _local29 = (_local29 / _local28); _local29 = (_local29 + _local11.y); }; _local26 = (_local14.x + _local11.x); _local27 = (_local15.x + _local11.x); _local30 = -(_local11.y); if ((_local27 * _local26) > 0){ _local28 = -(_local11.x); if (_local26 < 0){ _local28 = (_local28 - _local12.x); _local30 = (_local30 - _local12.y); _local26 = _local27; } else { _local28 = (_local28 + _local12.x); _local30 = (_local30 + _local12.y); }; _local30 = (_local30 * _local26); _local30 = (_local30 / _local28); _local30 = (_local30 - _local11.y); }; }; return (!((((((_local29 < _local14.y)) && ((_local30 < _local14.y)))) || ((((_local29 > _local15.y)) && ((_local30 > _local15.y))))))); } public function addBoss(){ interfaceLayer.removeChild(bossApproachMC); bossApproachMC = null; currState = STATE_GAMEPLAY; enemyArray.push(bossEnemy); this.gameMC.jukebox.currEvent = this.gameMC.jukebox.EVENT_BOSSDEAD; } public function processAsset(_arg1:Array){ switch (_arg1[1]){ case LEVEL_PIC: this.currState = STATE_SHOWLEVELPIC; currPicTimer = 0; levelPicPhase = 0; switch (currLevel){ case 0: this.levelPicSprite = new Level0Pic(); break; case 1: this.levelPicSprite = new Level1Pic(); break; case 2: this.levelPicSprite = new Level2Pic(); break; case 3: this.levelPicSprite = new Level3Pic(); break; case 4: this.levelPicSprite = new Level4Pic(); break; }; this.levelPicSprite.x = 0; this.levelPicSprite.y = (this.gameMC.STAGE_HEIGHT / 2); this.levelPicSprite.alpha = 0; this.interfaceLayer.addChild(this.levelPicSprite); break; case ENEMY_1SMALLDOZER: enemyArray.push(new Lvl1SmallDozer(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4], _arg1[5])); break; case ENEMY_1SMALLTRUCK: enemyArray.push(new Lvl1SmallTruck(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4])); break; case ENEMY_1SMALLDRILLER: enemyArray.push(new Lvl1SmallDriller(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_1MEDIUM: enemyArray.push(new Lvl1Medium(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_1BIG: enemyArray.push(new Lvl1Big(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_1BOSS: bossEnemy = new Lvl1Boss(this.currDifficulty, this.gameMC); showBossWarning(); break; case ENEMY_2SCANNER: obstacleArray.push(new Lvl2Scanner(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4], false)); break; case ENEMY_2SCANNERTUTORIAL: obstacleArray.push(new Lvl2Scanner(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4], true)); break; case ENEMY_2BOSS: bossEnemy = new Lvl2Boss(this.currDifficulty, this.gameMC); showBossWarning(); break; case ENEMY_2INTERCEPTOR: enemyArray.push(new Lvl2SmallInterceptor(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_2PURSUIT: enemyArray.push(new Lvl2SmallPursuit(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4], _arg1[5])); break; case ENEMY_2SCOUT: enemyArray.push(new Lvl2SmallScout(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4])); break; case ENEMY_2MEDIUM: enemyArray.push(new Lvl2Medium(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_2BIG: enemyArray.push(new Lvl2Big(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_3CONIFEROUS: enemyArray.push(new Lvl3SmallConiferous(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4], _arg1[5])); break; case ENEMY_3RAPTORIAL: enemyArray.push(new Lvl3SmallRaptorial(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_3SCAVENGING: enemyArray.push(new Lvl3SmallScavenging(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4])); break; case ENEMY_3MEDIUM: enemyArray.push(new Lvl3Medium(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_3BIG: enemyArray.push(new Lvl3Big(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_3BOSS: bossEnemy = new Lvl3Boss(this.currDifficulty, this.gameMC); showBossWarning(); break; case ENEMY_4BOMBER: enemyArray.push(new Lvl4SmallBomber(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4], _arg1[5])); break; case ENEMY_4BOMBERSHIELD: enemyArray.push(new Lvl4SmallBomberShield(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3], _arg1[4], _arg1[5])); break; case ENEMY_4FIGHTER: enemyArray.push(new Lvl4SmallFighter(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_4RAMMER: enemyArray.push(new Lvl4SmallRammer(this.currDifficulty, this.gameMC)); break; case ENEMY_4MEDIUM: enemyArray.push(new Lvl1SmallDriller(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_4BIG: enemyArray.push(new Lvl1SmallDriller(this.currDifficulty, this.gameMC, _arg1[2], _arg1[3])); break; case ENEMY_4BOSS: bossEnemy = new Lvl4Boss(this.currDifficulty, this.gameMC); showBossWarning(); break; }; } public function isInside(_arg1:DisplayObject):Boolean{ if (((((((((_arg1.x + (_arg1.width / 2)) > 0)) && (((_arg1.x - (_arg1.width / 2)) < this.STAGE_WIDTH)))) && (((_arg1.y + (_arg1.height / 2)) > 0)))) && (((_arg1.y - (_arg1.height / 2)) < this.STAGE_HEIGHT)))){ return (true); }; return (false); } public function releaseMovement(_arg1:KeyboardEvent){ var _local2:*; switch (_arg1.keyCode){ case Keyboard.UP: this.yourShip.isMovingUp = false; break; case Keyboard.DOWN: this.yourShip.isMovingDown = false; break; case Keyboard.LEFT: this.yourShip.isMovingLeft = false; break; case Keyboard.RIGHT: this.yourShip.isMovingRight = false; break; case shootKey: case (shootKey + 32): if (this.yourShip.isShooting){ this.yourShip.isShooting = false; if (bulletChannel != null){ bulletChannel.stop(); bulletChannel = null; }; _local2 = 0; while (_local2 < this.yourShip.bulletGeneratorArray.length) { this.yourShip.bulletGeneratorArray[_local2].currTick = 0; _local2++; }; }; break; case absorbKey: case (absorbKey + 32): this.yourShip.isAbsorbing = false; this.yourShip.isAbsorbLock = false; break; case PAUSE_KEY: case (PAUSE_KEY + 32): this.isPausePressed = false; break; case QUIT_KEY: case (QUIT_KEY + 32): this.isQuitPressed = false; break; case QUALITY_KEY: case (QUALITY_KEY + 32): this.isQualityPressed = false; break; case PARTICLE_KEY: case (PARTICLE_KEY + 32): this.isParticlePressed = false; break; case Keyboard.SPACE: tutorialSpacePressed = false; break; }; } } }//package classes
Section 45
//Option (classes.Option) package classes { import flash.display.*; import flash.filters.*; import flash.utils.*; public class Option extends MovieClip { public var gameMC:MovieClip; public var STATE_OUTOFSTAGE:int;// = 3 public var currRotationRadian:Number; public var currTimer:int; public var followEnemy:Boolean;// = false public var anchorRotationRadian:Number; public var currState:int; public var STATE_FINISHED:int;// = 2 public var OPTION_TIMERMAX:int;// = 1500 public var ROTATION_LIMIT:Number;// = 1.5707963267949 public var mc:MovieClip; public var removeNow:Boolean; public var optionTimer:int; public var incRotate:Number; public var glowTimer:int; public var STATE_MOVE:int;// = 1 public var bulletGeneratorArray:Array; public function Option(_arg1:Class, _arg2:MovieClip){ var _local3:int; ROTATION_LIMIT = (Math.PI / 2); STATE_MOVE = 1; STATE_FINISHED = 2; STATE_OUTOFSTAGE = 3; OPTION_TIMERMAX = 1500; followEnemy = false; super(); this.gameMC = _arg2; mc = new (_arg1); mc.x = 0; mc.y = 0; this.addChild(mc); this.gameMC.gameEngine.shipLayer.addChild(this); this.bulletGeneratorArray = new Array(); this.currState = this.STATE_MOVE; this.removeNow = false; optionTimer = -999; glowTimer = -999; } public function addBulletGenerator(_arg1:Array){ var _local2:*; var _local3:BulletGenerator; _local2 = 0; while (_local2 < _arg1.length) { _local3 = _arg1[_local2].cloneMe(); _local3.ownerMC = this; this.bulletGeneratorArray.push(_local3); _local2++; }; this.mc.gotoAndStop(2); optionTimer = OPTION_TIMERMAX; glowTimer = 20; } public function removeAllBulletGenerator(){ var _local1:*; _local1 = (this.bulletGeneratorArray.length - 1); while (_local1 >= 0) { this.bulletGeneratorArray[_local1] = null; this.bulletGeneratorArray.splice(_local1, 1); _local1--; }; optionTimer = -999; this.mc.gotoAndStop(1); } public function render(){ var _local1:*; var _local2:GlowFilter; switch (this.currState){ case this.STATE_MOVE: if (this.gameMC.gameEngine.yourShip.isShooting){ _local1 = 0; while (_local1 < this.bulletGeneratorArray.length) { this.bulletGeneratorArray[_local1].render(); _local1++; }; }; if (optionTimer == -999){ } else { if (this.gameMC.gameEngine.currLevel != 0){ optionTimer--; }; if (optionTimer <= 0){ removeAllBulletGenerator(); } else { if (optionTimer <= (OPTION_TIMERMAX / 4)){ if (this.mc.currentFrame != 4){ this.mc.gotoAndStop(4); }; } else { if (optionTimer <= (OPTION_TIMERMAX / 2)){ if (this.mc.currentFrame != 3){ this.mc.gotoAndStop(3); }; }; }; }; }; if (glowTimer != -999){ glowTimer--; if (glowTimer <= 0){ glowTimer = -999; this.mc.filters = null; } else { _local2 = new GlowFilter(13434777, 1, 8, 8, (glowTimer / 4)); this.mc.filters = [_local2]; }; }; break; case this.STATE_FINISHED: this.currState = this.STATE_OUTOFSTAGE; break; case this.STATE_OUTOFSTAGE: break; }; } } }//package classes
Section 46
//Particle (classes.Particle) package classes { import flash.display.*; public class Particle { public var fade:Number;// = 1 public var xVel:Number; public var shrink:Number;// = 1 public var gravity:Number;// = 0 public var clip:Sprite; public var yVel:Number; public var targetMC:Sprite; public var drag:Number;// = 1 public var directionRotate:Boolean;// = false public var removeMe:Boolean; public function Particle(_arg1:Class, _arg2:Sprite, _arg3:Number, _arg4:Number){ drag = 1; fade = 1; shrink = 1; gravity = 0; directionRotate = false; super(); clip = new (_arg1); this.targetMC = _arg2; this.removeMe = false; this.targetMC.addChild(clip); clip.x = _arg3; clip.y = _arg4; } public function destroy():void{ this.targetMC.removeChild(clip); } public function setScale(_arg1:Number){ clip.scaleX = (clip.scaleY = _arg1); } public function update(){ clip.x = (clip.x + xVel); clip.y = (clip.y + yVel); xVel = (xVel * drag); yVel = (yVel * drag); clip.alpha = (((clip.alpha * 1000) * fade) / 1000); clip.scaleX = (clip.scaleY = (clip.scaleY * shrink)); yVel = (yVel + gravity); if (directionRotate){ updateRotation(); }; if (clip.alpha < 0.1){ this.removeMe = true; }; } public function setVel(_arg1:Number, _arg2:Number){ xVel = _arg1; yVel = _arg2; } public function updateRotation(){ clip.rotation = (Math.atan2(yVel, xVel) * (180 / Math.PI)); } } }//package classes
Section 47
//ParticleGenerator (classes.ParticleGenerator) package classes { import flash.display.*; import flash.geom.*; public class ParticleGenerator { public var isHigher:Boolean; public var posX:int; public var posY:int; public var gameMC:MovieClip; public var ownerMC:DisplayObject; public var targetMC:Sprite; public var hasOwner:Boolean; public var isRelative:Boolean; public function ParticleGenerator(_arg1:int, _arg2:int, _arg3:DisplayObject, _arg4:Boolean, _arg5:Boolean, _arg6:MovieClip){ this.posX = _arg1; this.posY = _arg2; this.ownerMC = _arg3; if (this.ownerMC == null){ this.hasOwner = false; } else { this.hasOwner = true; }; this.isRelative = _arg4; this.isHigher = _arg5; this.gameMC = _arg6; if (_arg5){ this.targetMC = this.gameMC.gameEngine.particleUpperLayer; } else { this.targetMC = this.gameMC.gameEngine.particleLowerLayer; }; } public function createParticle(_arg1:int, _arg2:int):Particle{ return (null); } public function addParticle(_arg1:int){ var _local2:int; var _local3:int; var _local4:int; var _local5:Point; var _local6:Point; _local2 = this.posX; _local3 = this.posY; if (this.ownerMC != null){ if (this.isRelative){ _local5 = new Point(_local2, _local3); _local6 = this.ownerMC.localToGlobal(_local5); _local2 = _local6.x; _local3 = _local6.y; } else { _local2 = (_local2 + ownerMC.x); _local3 = (_local3 + ownerMC.y); }; }; _local4 = 0; while (_local4 < _arg1) { this.gameMC.gameEngine.particleArray.push(createParticle(_local2, _local3)); _local4++; }; } public function render(){ } function randRange(_arg1:Number, _arg2:Number){ var _local3:Number; _local3 = ((Math.random() * (_arg2 - _arg1)) + _arg1); return (_local3); } } }//package classes
Section 48
//ParticleGeneratorDamageSmoke (classes.ParticleGeneratorDamageSmoke) package classes { import flash.display.*; public class ParticleGeneratorDamageSmoke extends ParticleGenerator { public function ParticleGeneratorDamageSmoke(_arg1:int, _arg2:int, _arg3:DisplayObject, _arg4:Boolean, _arg5:Boolean, _arg6:MovieClip){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } override public function createParticle(_arg1:int, _arg2:int):Particle{ var _local3:Particle; _local3 = new Particle(DamageSmoke, this.targetMC, _arg1, _arg2); _local3.setVel(randRange(-0.3, 0.3), 0); _local3.clip.scaleX = (_local3.clip.scaleY = randRange(0.5, 1)); _local3.clip.alpha = 0.4; _local3.drag = 0.99; _local3.fade = 0.9; _local3.shrink = 1.02; _local3.gravity = -0.5; return (_local3); } override public function render(){ addParticle(1); } } }//package classes
Section 49
//ParticleGeneratorFairy (classes.ParticleGeneratorFairy) package classes { import flash.display.*; public class ParticleGeneratorFairy extends ParticleGenerator { public var renderTimer:int; public function ParticleGeneratorFairy(_arg1:int, _arg2:int, _arg3:DisplayObject, _arg4:Boolean, _arg5:Boolean, _arg6:MovieClip){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); renderTimer = 0; } override public function render(){ renderTimer++; if (renderTimer > 5){ renderTimer = 0; addParticle(1); }; } override public function createParticle(_arg1:int, _arg2:int):Particle{ var _local3:Particle; _local3 = new Particle(FrozenFairy_inside, this.targetMC, _arg1, _arg2); _local3.setVel(0, 0); _local3.clip.scaleX = (_local3.clip.scaleY = 1); _local3.clip.alpha = randRange(0.5, 0.7); _local3.drag = 0.99; _local3.fade = 0.9; _local3.shrink = 1; _local3.gravity = 0; return (_local3); } } }//package classes
Section 50
//ParticleGeneratorLine (classes.ParticleGeneratorLine) package classes { import flash.display.*; public class ParticleGeneratorLine extends ParticleGenerator { public function ParticleGeneratorLine(_arg1:int, _arg2:int, _arg3:DisplayObject, _arg4:Boolean, _arg5:Boolean, _arg6:MovieClip){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } override public function createParticle(_arg1:int, _arg2:int):Particle{ var _local3:Particle; _local3 = new Particle(LineParticle, this.targetMC, _arg1, _arg2); _local3.setVel(0, 0); _local3.clip.scaleX = (_local3.clip.scaleY = randRange(2, 3)); _local3.clip.alpha = randRange(0.8, 1); _local3.drag = 0.99; _local3.fade = 0.95; _local3.shrink = 1; _local3.gravity = 0; return (_local3); } override public function render(){ addParticle(1); } } }//package classes
Section 51
//ParticleGeneratorSmoke (classes.ParticleGeneratorSmoke) package classes { import flash.display.*; public class ParticleGeneratorSmoke extends ParticleGenerator { public function ParticleGeneratorSmoke(_arg1:int, _arg2:int, _arg3:DisplayObject, _arg4:Boolean, _arg5:Boolean, _arg6:MovieClip){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } override public function createParticle(_arg1:int, _arg2:int):Particle{ var _local3:Particle; _local3 = new Particle(Smoke2, this.targetMC, _arg1, _arg2); _local3.setVel(randRange(-0.3, 0.3), 0); _local3.clip.scaleX = (_local3.clip.scaleY = randRange(0.1, 0.4)); _local3.clip.alpha = 0.2; _local3.drag = 0.99; _local3.fade = 0.95; _local3.shrink = 1.02; _local3.gravity = -0.05; return (_local3); } override public function render(){ addParticle(1); } } }//package classes
Section 52
//Explosion (explosionpackage.Explosion) package explosionpackage { import flash.display.*; import flash.geom.*; public class Explosion { private var P_COUNT:int;// = 3000 private var EXPLOSION_MAX_VELOCITY:Number;// = 2 public var c_particles:Array; private var EXPLOSION_MAX_HEAT:int;// = 0 private var PARTICLE_DAMP_MOVE:Number;// = 0.99 private var EXPLOSION_RADIUS:int;// = 40 private var PARTICLE_DAMP_ENERGIE:Number;// = 0.995 private var t_particles:Array; private var transform:ColorTransform; private var energie:Number; private var PARTICLE_CHAOTIC_MOVE:Number;// = 0.1 private var PCOUNT_EACH_FRAME:int;// = 100 public function Explosion(_arg1:Number, _arg2:Number, _arg3:int){ EXPLOSION_RADIUS = 40; EXPLOSION_MAX_VELOCITY = 2; EXPLOSION_MAX_HEAT = 0; PARTICLE_CHAOTIC_MOVE = 0.1; PARTICLE_DAMP_MOVE = 0.99; PARTICLE_DAMP_ENERGIE = 0.995; P_COUNT = 3000; PCOUNT_EACH_FRAME = 100; super(); switch (_arg3){ case 2: EXPLOSION_RADIUS = 20; EXPLOSION_MAX_VELOCITY = 2; EXPLOSION_MAX_HEAT = 0; PARTICLE_CHAOTIC_MOVE = 0.1; PARTICLE_DAMP_MOVE = 0.99; PARTICLE_DAMP_ENERGIE = 0.93; P_COUNT = 1500; PCOUNT_EACH_FRAME = 0; break; case 3: EXPLOSION_RADIUS = 20; EXPLOSION_MAX_VELOCITY = 2; EXPLOSION_MAX_HEAT = 0; PARTICLE_CHAOTIC_MOVE = 0.1; PARTICLE_DAMP_MOVE = 0.99; PARTICLE_DAMP_ENERGIE = 0.99; P_COUNT = 1500; PCOUNT_EACH_FRAME = 0; break; case 4: EXPLOSION_RADIUS = 40; EXPLOSION_MAX_VELOCITY = 2; EXPLOSION_MAX_HEAT = 0; PARTICLE_CHAOTIC_MOVE = 0.1; PARTICLE_DAMP_MOVE = 0.99; PARTICLE_DAMP_ENERGIE = 0.995; P_COUNT = 3000; PCOUNT_EACH_FRAME = 100; break; default: EXPLOSION_RADIUS = 40; EXPLOSION_MAX_VELOCITY = 8; EXPLOSION_MAX_HEAT = 0; PARTICLE_CHAOTIC_MOVE = 0.1825; PARTICLE_DAMP_MOVE = 0.99; PARTICLE_DAMP_ENERGIE = 0.88; P_COUNT = 500; PCOUNT_EACH_FRAME = 0; break; }; init(_arg1, _arg2); } private function init(_arg1:Number, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Particle; var _local7:int; t_particles = new Array(); c_particles = new Array(); energie = 1; _local7 = 0; while (_local7 < P_COUNT) { _local3 = ((Math.random() * Math.PI) * 2); _local4 = (Math.random() * EXPLOSION_MAX_VELOCITY); _local5 = (Math.random() * EXPLOSION_RADIUS); _local6 = new Particle((_arg1 + (Math.sin(_local3) * _local5)), (_arg2 + (Math.cos(_local3) * _local5)), (Math.sin(_local3) * _local4), ((Math.cos(_local3) * _local4) - (Math.random() * EXPLOSION_MAX_HEAT)), 1, PARTICLE_DAMP_ENERGIE); t_particles.push(_local6); _local7++; }; } public function render(_arg1:BitmapData):void{ var _local2:Particle; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:int; var _local8:int; if (t_particles.length >= PCOUNT_EACH_FRAME){ c_particles = c_particles.concat(t_particles.splice(-(PCOUNT_EACH_FRAME))); } else { if (t_particles.length > 0){ c_particles = t_particles.splice(); }; }; _local8 = c_particles.length; while (--_local8 > -1) { _local2 = c_particles[_local8]; _local3 = _local2.sx; _local4 = _local2.sy; _local5 = _local2.vx; _local6 = _local2.vy; _local5 = (_local5 + ((Math.random() / (0.5 / PARTICLE_CHAOTIC_MOVE)) - PARTICLE_CHAOTIC_MOVE)); _local6 = (_local6 + ((Math.random() / (0.5 / PARTICLE_CHAOTIC_MOVE)) - PARTICLE_CHAOTIC_MOVE)); if (_local2.energie < 0.1){ c_particles.splice(_local8, 1); }; _local2.energie = (_local2.energie * _local2.energieDamp); _arg1.setPixel(_local3, _local4, int((_local2.energie * 0xFF))); _local3 = (_local3 + _local5); _local4 = (_local4 + _local6); _local5 = (_local5 * PARTICLE_DAMP_MOVE); _local6 = (_local6 * PARTICLE_DAMP_MOVE); _local2.sx = _local3; _local2.sy = _local4; _local2.vx = _local5; _local2.vy = _local6; }; } } }//package explosionpackage
Section 53
//ExplosionEngine (explosionpackage.ExplosionEngine) package explosionpackage { import flash.display.*; import flash.media.*; import flash.geom.*; import flash.filters.*; public class ExplosionEngine extends Sprite { private const EXPLOSION_BLUR_QUALITY:int = 1; private const ORIGIN:Point; private const HEIGHT:int = 480; private const EXPLOSION_BLUR_STRENGTH:int = 2; private const WIDTH:int = 640; private var output:BitmapData; private var explosions:Array; public var magnitude:int; public var removeMe:Boolean; public var removeTimer:int; private var buffer:BitmapData; private var blur:BlurFilter; private var fireColors:Array; public var bmp:Bitmap; private var explosionSound:Sound; private var ExplosionSoundAsset:Class; public function ExplosionEngine(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Sprite, _arg6:int, _arg7:Boolean){ var _local8:Sound; ORIGIN = new Point(); super(); buffer = new BitmapData(_arg3, _arg4, true, 1426063360); output = new BitmapData(_arg3, _arg4, true, 1426063360); blur = new BlurFilter(EXPLOSION_BLUR_STRENGTH, EXPLOSION_BLUR_STRENGTH, EXPLOSION_BLUR_QUALITY); if (_arg7){ fireColors = Gradient.getArray([0, 0, 0x333333, 0xFF, 0xFFFF, 0xFFFFFF], [0, 0, 1, 1, 1, 1], [0, 34, 68, 85, 136, 0xFF]); if (MovieClip(_arg5.parent).jukebox.isMute == false){ _local8 = new sndFriendlyExplosion(); _local8.play(0, 1, new SoundTransform(0.5, 0)); }; } else { fireColors = Gradient.getArray([0, 0, 0x333333, 0xFF0000, 0xFFFF00, 0xFFFFFF], [0, 0, 1, 1, 1, 1], [0, 34, 68, 85, 136, 0xFF]); if (MovieClip(_arg5.parent).jukebox.isMute == false){ switch (_arg6){ case 2: case 3: _local8 = new sndMediumExplosion(); _local8.play(0, 1, new SoundTransform(0.5, 0)); break; case 4: _local8 = new sndBigExplosion(); _local8.play(0, 1, new SoundTransform(0.5, 0)); break; default: _local8 = new sndSmallExplosion(); _local8.play(0, 1, new SoundTransform(0.5, 0)); break; }; }; }; this.bmp = new Bitmap(output); this.addChild(bmp); explosions = new Array(); this.x = _arg1; this.y = _arg2; _arg5.addChild(this); this.magnitude = _arg6; createExplosion(); this.removeMe = false; this.removeTimer = 0; } private function createExplosion():void{ var _local1:Explosion; _local1 = new Explosion((this.width / 2), (this.height / 2), this.magnitude); explosions.push(_local1); } public function render():void{ var _local1:Explosion; var _local2:int; _local2 = explosions.length; while (--_local2 > -1) { _local1 = explosions[_local2]; _local1.render(buffer); if (_local1.c_particles.length <= 0){ this.removeTimer++; if (this.removeTimer > 20){ this.removeMe = true; }; }; }; buffer.applyFilter(buffer, buffer.rect, ORIGIN, blur); output.copyPixels(buffer, buffer.rect, ORIGIN); output.paletteMap(output, output.rect, ORIGIN, [], [], fireColors, []); } } }//package explosionpackage
Section 54
//Gradient (explosionpackage.Gradient) package explosionpackage { import flash.display.*; import flash.geom.*; public class Gradient { private static const IDENTITY:Matrix = new Matrix(); public static function getArray(_arg1:Array, _arg2:Array, _arg3:Array):Array{ var _local4:Array; var _local5:Shape; var _local6:Matrix; var _local7:BitmapData; var _local8:Graphics; var _local9:uint; var _local10:int; _local4 = new Array(); _local5 = new Shape(); _local6 = new Matrix(); _local7 = new BitmapData(0x0100, 1, true, 0); _local8 = _local5.graphics; _local6.createGradientBox(0x0100, 0x0100, 0, 0, 0); _local8.clear(); _local8.beginGradientFill("linear", _arg1, _arg2, _arg3, _local6); _local8.drawRect(0, 0, 0x0100, 0x0100); _local8.endFill(); _local7.draw(_local5, IDENTITY); _local10 = 0; while (_local10 < 0x0100) { _local9 = _local7.getPixel32(_local10, 0); _local4.push(_local9); _local10++; }; return (_local4); } } }//package explosionpackage
Section 55
//Particle (explosionpackage.Particle) package explosionpackage { public class Particle { public var vx:Number; public var vy:Number; public var sx:Number; public var sy:Number; public var energie:Number; public var energieDamp:Number; public function Particle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){ this.sx = _arg1; this.sy = _arg2; this.vx = _arg3; this.vy = _arg4; this.energie = _arg5; this.energieDamp = _arg6; } } }//package explosionpackage
Section 56
//AbsorbInterface_150 (game2_fla.AbsorbInterface_150) package game2_fla { import flash.display.*; import flash.events.*; public dynamic class AbsorbInterface_150 extends MovieClip { public var absorbFillMC:MovieClip; public function AbsorbInterface_150(){ addFrameScript(0, frame1); } public function finishedAbsorb(){ this.addEventListener(Event.ENTER_FRAME, doEveryFrame); } function frame1(){ stop(); } public function doEveryFrame(_arg1:Event){ this.absorbFillMC.alpha = (this.absorbFillMC.alpha - 0.1); if (this.absorbFillMC.alpha <= 0){ this.absorbFillMC.y = 90; this.absorbFillMC.alpha = 1; this.removeEventListener(Event.ENTER_FRAME, doEveryFrame); }; } } }//package game2_fla
Section 57
//btnBackToMainMenu_154 (game2_fla.btnBackToMainMenu_154) package game2_fla { import flash.display.*; public dynamic class btnBackToMainMenu_154 extends MovieClip { public function btnBackToMainMenu_154(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game2_fla
Section 58
//btnSubmitScore_155 (game2_fla.btnSubmitScore_155) package game2_fla { import flash.display.*; public dynamic class btnSubmitScore_155 extends MovieClip { public function btnSubmitScore_155(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game2_fla
Section 59
//button2_mc_131 (game2_fla.button2_mc_131) package game2_fla { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.*; import flash.external.*; public dynamic class button2_mc_131 extends MovieClip { public var button_mc:MovieClip; public var answered:Boolean; public function button2_mc_131(){ addFrameScript(0, frame1); } public function cgdc5Event(_arg1:Event):void{ if (ExternalInterface.available){ ExternalInterface.call("cgdc5close"); }; setTimeout(noResponse, 500); } public function noResponse(){ if (!answered){ navigateToURL(new URLRequest("http://jayisgames.com/cgdc5/?ref=e875ab05"), "_blank"); }; } function frame1(){ answered = false; button_mc.buttonMode = true; button_mc.addEventListener(MouseEvent.CLICK, cgdc5Event); if (ExternalInterface.available){ ExternalInterface.addCallback("answer", answer); }; MochiBot.track(this, "e875ab05"); } public function answer(){ answered = true; } } }//package game2_fla
Section 60
//difficultychoicemenu_144 (game2_fla.difficultychoicemenu_144) package game2_fla { import flash.display.*; public dynamic class difficultychoicemenu_144 extends MovieClip { public var detect1MC:MovieClip; public var diffBarMC:MovieClip; public var detect0MC:MovieClip; public var detect3MC:MovieClip; public var detect2MC:MovieClip; } }//package game2_fla
Section 61
//endingSequence_156 (game2_fla.endingSequence_156) package game2_fla { import flash.display.*; import flash.events.*; public dynamic class endingSequence_156 extends MovieClip { public var isDown:Boolean; public var currSequence:int; public var DIFFICULTYBAR_EASY_Y:int; public var DIFFICULTYBAR_MEDIUM_Y:int; public var intro3MC:MovieClip; public var currTimer:int; public var intro2MC:MovieClip; public var INC_ALPHA:Number; public var isUp:Boolean; public var difficultyMC:MovieClip; public var currDifficulty:int; public var intro1MC:MovieClip; public var TIMER_EVERYFRAME:int; public var DIFFICULTYBAR_HARD_Y:int; public var targetY:int; public function endingSequence_156(){ addFrameScript(0, frame1); } function frame1(){ stop(); currSequence = 1; currTimer = 0; TIMER_EVERYFRAME = 150; INC_ALPHA = 0.1; DIFFICULTYBAR_EASY_Y = 48; DIFFICULTYBAR_MEDIUM_Y = 72; DIFFICULTYBAR_HARD_Y = 96; currDifficulty = 2; targetY = DIFFICULTYBAR_MEDIUM_Y; isUp = false; isDown = false; this.addEventListener(Event.ENTER_FRAME, doEveryFrame); } public function doEveryFrame(_arg1:Event){ switch (currSequence){ case 1: if ((intro1MC.alpha + INC_ALPHA) >= 1){ intro1MC.alpha = 1; currSequence = 2; } else { intro1MC.alpha = (intro1MC.alpha + INC_ALPHA); }; break; case 2: currTimer++; if (currTimer > TIMER_EVERYFRAME){ currTimer = 0; currSequence = 3; }; break; case 3: if ((intro2MC.alpha + INC_ALPHA) >= 1){ intro2MC.alpha = 1; currSequence = 4; } else { intro2MC.alpha = (intro2MC.alpha + INC_ALPHA); }; intro1MC.alpha = (1 - intro2MC.alpha); break; case 4: currTimer++; if (currTimer > TIMER_EVERYFRAME){ currTimer = 0; currSequence = 5; }; break; case 5: if ((intro3MC.alpha + INC_ALPHA) >= 1){ intro3MC.alpha = 1; currSequence = 6; } else { intro3MC.alpha = (intro3MC.alpha + INC_ALPHA); }; intro2MC.alpha = (1 - intro3MC.alpha); break; case 6: currTimer++; if (currTimer > TIMER_EVERYFRAME){ currTimer = 0; currSequence = 7; }; break; case 7: if ((difficultyMC.alpha + INC_ALPHA) >= 1){ difficultyMC.alpha = 1; this.removeEventListener(Event.ENTER_FRAME, doEveryFrame); } else { difficultyMC.alpha = (difficultyMC.alpha + INC_ALPHA); }; break; case 8: break; }; } } }//package game2_fla
Section 62
//gameField_148 (game2_fla.gameField_148) package game2_fla { import flash.display.*; import flash.events.*; import flash.media.*; import classes.*; import flash.geom.*; import explosionpackage.*; import flash.filters.*; import flash.text.*; import flash.net.*; import flash.utils.*; import flash.ui.*; import flash.system.*; import flash.external.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.printing.*; import flash.xml.*; public dynamic class gameField_148 extends MovieClip { public var STAGE_WIDTH:int; public var DIFFICULTY_EASY:int; public var txtStatus:TextField; public var DIFFICULTY_MEDIUM:int; public var STAGE_HEIGHT:int; public var isQualityHigh:Boolean; public var treeMC:MovieClip; public var jukebox:Jukebox; public var isParticleOn:Boolean; public var gameEngine:MainGame; public var DIFFICULTY_HARD:int; public function gameField_148(){ addFrameScript(0, frame1); } public function setParticle(_arg1:Boolean){ isParticleOn = _arg1; MovieClip(this.parent).isParticleOn = _arg1; } public function setQuality(_arg1:Boolean){ isQualityHigh = _arg1; MovieClip(this.parent).isQualityHigh = _arg1; if (_arg1){ stage.quality = StageQuality.MEDIUM; } else { stage.quality = StageQuality.LOW; }; } function frame1(){ stop(); STAGE_WIDTH = 430; STAGE_HEIGHT = 480; DIFFICULTY_EASY = 1; DIFFICULTY_MEDIUM = 2; DIFFICULTY_HARD = 3; isQualityHigh = MovieClip(this.parent).isQualityHigh; isParticleOn = MovieClip(this.parent).isParticleOn; treeMC = MovieClip(this.parent).treeMC; if (MovieClip(this.parent).currDifficulty <= DIFFICULTY_EASY){ gameEngine = new MainGame(this, MovieClip(this.parent).currDifficulty, 0, true, false); } else { gameEngine = new MainGame(this, MovieClip(this.parent).currDifficulty, 1, true, false); }; jukebox = MovieClip(this.parent).jukebox; } } }//package game2_fla
Section 63
//GameOverScreen_152 (game2_fla.GameOverScreen_152) package game2_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.geom.*; import flash.filters.*; import flash.text.*; import flash.net.*; import flash.utils.*; import flash.ui.*; import flash.system.*; import flash.external.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.printing.*; import flash.xml.*; public dynamic class GameOverScreen_152 extends MovieClip { public var txtScore:TextField; public var pressAnyKeyMC:MovieClip; public var timerAnyKey:int; public function GameOverScreen_152(){ addFrameScript(0, frame1); } public function submitHighScore(_arg1:MouseEvent){ MovieClip(this.parent).changeSection(8); removeButtonListeners(); } public function removeButtonListeners(){ pressAnyKeyMC.mainMenuMC.removeEventListener(MouseEvent.CLICK, clickBackToMainMenu); pressAnyKeyMC.mainMenuMC.removeEventListener(MouseEvent.MOUSE_OVER, rollOverButton); pressAnyKeyMC.mainMenuMC.removeEventListener(MouseEvent.MOUSE_OUT, rollOutButton); pressAnyKeyMC.submitScoreMC.removeEventListener(MouseEvent.CLICK, submitHighScore); pressAnyKeyMC.submitScoreMC.removeEventListener(MouseEvent.MOUSE_OVER, rollOverButton); pressAnyKeyMC.submitScoreMC.removeEventListener(MouseEvent.MOUSE_OUT, rollOutButton); } public function rollOutButton(_arg1:MouseEvent){ _arg1.currentTarget.gotoAndStop(1); } public function addButtonListeners(){ pressAnyKeyMC.mainMenuMC.buttonMode = true; pressAnyKeyMC.mainMenuMC.addEventListener(MouseEvent.CLICK, clickBackToMainMenu); pressAnyKeyMC.mainMenuMC.addEventListener(MouseEvent.MOUSE_OVER, rollOverButton); pressAnyKeyMC.mainMenuMC.addEventListener(MouseEvent.MOUSE_OUT, rollOutButton); pressAnyKeyMC.submitScoreMC.buttonMode = true; pressAnyKeyMC.submitScoreMC.addEventListener(MouseEvent.CLICK, submitHighScore); pressAnyKeyMC.submitScoreMC.addEventListener(MouseEvent.MOUSE_OVER, rollOverButton); pressAnyKeyMC.submitScoreMC.addEventListener(MouseEvent.MOUSE_OUT, rollOutButton); } function frame1(){ stop(); timerAnyKey = 0; txtScore.text = (("Your score is " + MovieClip(this.parent).currScore) + ". Please try again!"); this.addEventListener(Event.ENTER_FRAME, doEveryFrame); } public function clickBackToMainMenu(_arg1:MouseEvent){ MovieClip(this.parent).changeSection(3); removeButtonListeners(); } public function rollOverButton(_arg1:MouseEvent){ _arg1.currentTarget.gotoAndStop(2); } public function doEveryFrame(_arg1:Event){ timerAnyKey++; if (timerAnyKey > 50){ pressAnyKeyMC.alpha = (pressAnyKeyMC.alpha + 0.1); if (pressAnyKeyMC.alpha >= 1){ pressAnyKeyMC.alpha = 1; addButtonListeners(); this.removeEventListener(Event.ENTER_FRAME, doEveryFrame); }; }; } } }//package game2_fla
Section 64
//introSequence_139 (game2_fla.introSequence_139) package game2_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.geom.*; import flash.filters.*; import flash.text.*; import flash.net.*; import flash.utils.*; import flash.ui.*; import flash.system.*; import flash.external.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.printing.*; import flash.xml.*; public dynamic class introSequence_139 extends MovieClip { public var isDown:Boolean; public var DIFFICULTYBAR_SUPEREASY_Y:int; public var currSequence:int; public var DIFFICULTYBAR_EASY_Y:int; public var DIFFICULTYBAR_MEDIUM_Y:int; public var intro3MC:MovieClip; public var currTimer:int; public var intro2MC:MovieClip; public var INC_ALPHA:Number; public var isUp:Boolean; public var difficultyMC:MovieClip; public var currDifficulty:int; public var intro1MC:MovieClip; public var TIMER_EVERYFRAME:int; public var DIFFICULTYBAR_HARD_Y:int; public var targetY:int; public function introSequence_139(){ addFrameScript(0, frame1); } public function pressKey(_arg1:KeyboardEvent){ switch (_arg1.keyCode){ case Keyboard.UP: if (isUp == false){ isUp = true; currDifficulty--; if (currDifficulty < 0){ currDifficulty = 0; }; if (currDifficulty == 1){ targetY = DIFFICULTYBAR_EASY_Y; } else { if (currDifficulty == 2){ targetY = DIFFICULTYBAR_MEDIUM_Y; } else { if (currDifficulty == 0){ targetY = DIFFICULTYBAR_SUPEREASY_Y; }; }; }; }; break; case Keyboard.DOWN: if (isDown == false){ isDown = true; currDifficulty++; if (currDifficulty > 3){ currDifficulty = 3; }; if (currDifficulty == 1){ targetY = DIFFICULTYBAR_EASY_Y; } else { if (currDifficulty == 2){ targetY = DIFFICULTYBAR_MEDIUM_Y; } else { if (currDifficulty == 3){ targetY = DIFFICULTYBAR_HARD_Y; }; }; }; }; break; case 90: case 122: endIntro(); break; }; } public function releaseKey(_arg1:KeyboardEvent){ switch (_arg1.keyCode){ case Keyboard.UP: isUp = false; break; case Keyboard.DOWN: isDown = false; break; }; } public function endIntro(){ difficultyMC.detect0MC.removeEventListener(MouseEvent.MOUSE_OVER, chooseByMouse); difficultyMC.detect1MC.removeEventListener(MouseEvent.MOUSE_OVER, chooseByMouse); difficultyMC.detect2MC.removeEventListener(MouseEvent.MOUSE_OVER, chooseByMouse); difficultyMC.detect3MC.removeEventListener(MouseEvent.MOUSE_OVER, chooseByMouse); difficultyMC.detect0MC.removeEventListener(MouseEvent.MOUSE_UP, selectByMouse); difficultyMC.detect1MC.removeEventListener(MouseEvent.MOUSE_UP, selectByMouse); difficultyMC.detect2MC.removeEventListener(MouseEvent.MOUSE_UP, selectByMouse); difficultyMC.detect3MC.removeEventListener(MouseEvent.MOUSE_UP, selectByMouse); stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressKey); stage.removeEventListener(KeyboardEvent.KEY_UP, releaseKey); MovieClip(this.parent).currDifficulty = currDifficulty; this.removeEventListener(Event.ENTER_FRAME, doEveryFrame); MovieClip(this.parent).changeSection(5); } function frame1(){ stop(); currSequence = 1; currTimer = 0; TIMER_EVERYFRAME = 50; INC_ALPHA = 0.1; DIFFICULTYBAR_SUPEREASY_Y = 24; DIFFICULTYBAR_EASY_Y = 48; DIFFICULTYBAR_MEDIUM_Y = 72; DIFFICULTYBAR_HARD_Y = 96; currDifficulty = 1; targetY = DIFFICULTYBAR_EASY_Y; isUp = false; isDown = false; this.addEventListener(Event.ENTER_FRAME, doEveryFrame); } public function chooseByMouse(_arg1:MouseEvent){ switch (_arg1.target.id){ case 0: currDifficulty = 0; targetY = DIFFICULTYBAR_SUPEREASY_Y; break; case 1: currDifficulty = 1; targetY = DIFFICULTYBAR_EASY_Y; break; case 2: currDifficulty = 2; targetY = DIFFICULTYBAR_MEDIUM_Y; break; case 3: currDifficulty = 3; targetY = DIFFICULTYBAR_HARD_Y; break; }; } public function selectByMouse(_arg1:MouseEvent){ endIntro(); } public function doEveryFrame(_arg1:Event){ switch (currSequence){ case 1: if ((intro1MC.alpha + INC_ALPHA) >= 1){ intro1MC.alpha = 1; currSequence = 2; } else { intro1MC.alpha = (intro1MC.alpha + INC_ALPHA); }; break; case 2: currTimer++; if (currTimer > TIMER_EVERYFRAME){ currTimer = 0; currSequence = 3; }; break; case 3: if ((intro2MC.alpha + INC_ALPHA) >= 1){ intro2MC.alpha = 1; currSequence = 4; } else { intro2MC.alpha = (intro2MC.alpha + INC_ALPHA); }; intro1MC.alpha = (1 - intro2MC.alpha); break; case 4: currTimer++; if (currTimer > TIMER_EVERYFRAME){ currTimer = 0; currSequence = 5; }; break; case 5: if ((intro3MC.alpha + INC_ALPHA) >= 1){ intro3MC.alpha = 1; currSequence = 6; } else { intro3MC.alpha = (intro3MC.alpha + INC_ALPHA); }; intro2MC.alpha = (1 - intro3MC.alpha); break; case 6: currTimer++; if (currTimer > TIMER_EVERYFRAME){ currTimer = 0; currSequence = 7; }; break; case 7: if ((difficultyMC.alpha + INC_ALPHA) >= 1){ difficultyMC.alpha = 1; currSequence = 8; stage.addEventListener(KeyboardEvent.KEY_DOWN, pressKey); stage.addEventListener(KeyboardEvent.KEY_UP, releaseKey); difficultyMC.detect0MC.id = 0; difficultyMC.detect1MC.id = 1; difficultyMC.detect2MC.id = 2; difficultyMC.detect3MC.id = 3; difficultyMC.detect0MC.buttonMode = true; difficultyMC.detect1MC.buttonMode = true; difficultyMC.detect2MC.buttonMode = true; difficultyMC.detect3MC.buttonMode = true; difficultyMC.detect0MC.addEventListener(MouseEvent.MOUSE_OVER, chooseByMouse); difficultyMC.detect1MC.addEventListener(MouseEvent.MOUSE_OVER, chooseByMouse); difficultyMC.detect2MC.addEventListener(MouseEvent.MOUSE_OVER, chooseByMouse); difficultyMC.detect3MC.addEventListener(MouseEvent.MOUSE_OVER, chooseByMouse); difficultyMC.detect0MC.addEventListener(MouseEvent.MOUSE_UP, selectByMouse); difficultyMC.detect1MC.addEventListener(MouseEvent.MOUSE_UP, selectByMouse); difficultyMC.detect2MC.addEventListener(MouseEvent.MOUSE_UP, selectByMouse); difficultyMC.detect3MC.addEventListener(MouseEvent.MOUSE_UP, selectByMouse); } else { difficultyMC.alpha = (difficultyMC.alpha + INC_ALPHA); }; break; case 8: difficultyMC.diffBarMC.y = (difficultyMC.diffBarMC.y + ((targetY - difficultyMC.diffBarMC.y) * 0.2)); break; }; } } }//package game2_fla
Section 65
//lovelybuttons_153 (game2_fla.lovelybuttons_153) package game2_fla { import flash.display.*; public dynamic class lovelybuttons_153 extends MovieClip { public var mainMenuMC:MovieClip; public var submitScoreMC:MovieClip; } }//package game2_fla
Section 66
//Lvl4BossMC_hatch_117 (game2_fla.Lvl4BossMC_hatch_117) package game2_fla { import flash.display.*; public dynamic class Lvl4BossMC_hatch_117 extends MovieClip { public function Lvl4BossMC_hatch_117(){ addFrameScript(0, frame1, 1, frame2, 11, frame12); } function frame12(){ stop(); } function frame1(){ stop(); } function frame2(){ play(); } } }//package game2_fla
Section 67
//MainTimeline (game2_fla.MainTimeline) package game2_fla { import flash.display.*; import flash.events.*; import flash.media.*; import classes.*; import flash.geom.*; import mochi.*; import flash.filters.*; import flash.text.*; import flash.net.*; import flash.utils.*; import flash.ui.*; import flash.system.*; import flash.external.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.printing.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var STAGE_WIDTH:int; public var DIFFICULTY_EASY:int; public var STATE_FADEIN:int; public var STATE_CHANGE:int; public var whichFrame:int; public var isWin:Boolean; public var STATE_FADEOUT:int; public var currState:int; public var currScore:int; public var DIFFICULTY_MEDIUM:int; public var STAGE_HEIGHT:int; public var currDifficulty:int; public var isQualityHigh:Boolean; public var treeMC:MovieClip; public var gameFieldMC:MovieClip; public var jukebox:Jukebox; public var isParticleOn:Boolean; public var soundMC:MovieClip; public var STATE_IDLE:int; public var DIFFICULTY_HARD:int; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 7, frame8); } public function startJukebox(){ jukebox = new Jukebox(this); } function frame2(){ stop(); } public function changeSection(_arg1:int){ whichFrame = _arg1; currState = STATE_FADEOUT; this.addEventListener(Event.ENTER_FRAME, doEveryFrame); } function frame3(){ stop(); soundMC.addEventListener(MouseEvent.CLICK, toggleVolume); soundMC.buttonMode = true; jukebox.currEvent = jukebox.EVENT_MENU; } public function toggleVolume(_arg1:MouseEvent){ jukebox.isMute = !(jukebox.isMute); if (jukebox.isMute){ _arg1.target.gotoAndStop(2); } else { _arg1.target.gotoAndStop(1); }; } function frame8(){ MochiScores.showLeaderboard({boardID:"9058501ee510b782", score:currScore, onClose:goBackToMainMenu}); } public function endGame(_arg1:Boolean){ isWin = _arg1; } function frame1(){ stop(); stage.quality = StageQuality.MEDIUM; STAGE_WIDTH = 430; STAGE_HEIGHT = 480; DIFFICULTY_EASY = 1; DIFFICULTY_MEDIUM = 2; DIFFICULTY_HARD = 3; currDifficulty = DIFFICULTY_MEDIUM; STATE_IDLE = 0; STATE_FADEOUT = 1; STATE_CHANGE = 2; STATE_FADEIN = 3; currState = STATE_IDLE; currScore = 0; isQualityHigh = true; isParticleOn = true; MochiAd.showPreGameAd({clip:root, id:"f104a9f155b7adb5", res:"640x480"}); MochiServices.connect("f104a9f155b7adb5", root); } public function goBackToMainMenu(){ changeSection(3); } public function doEveryFrame(_arg1:Event){ switch (currState){ case STATE_IDLE: break; case STATE_FADEOUT: this.alpha = (this.alpha - 0.1); if (this.alpha <= 0){ this.alpha = 0; currState = STATE_CHANGE; }; break; case STATE_CHANGE: this.gotoAndStop(whichFrame); this.currState = STATE_FADEIN; break; case STATE_FADEIN: this.alpha = (this.alpha + 0.1); if (this.alpha >= 1){ this.alpha = 1; this.removeEventListener(Event.ENTER_FRAME, doEveryFrame); }; break; }; } } }//package game2_fla
Section 68
//mc_logo_animation_123 (game2_fla.mc_logo_animation_123) package game2_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.geom.*; import flash.filters.*; import flash.text.*; import flash.net.*; import flash.utils.*; import flash.ui.*; import flash.system.*; import flash.external.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.printing.*; import flash.xml.*; public dynamic class mc_logo_animation_123 extends MovieClip { public function mc_logo_animation_123(){ addFrameScript(110, frame111); } function frame111(){ MovieClip(this.parent).startJukebox(); MovieClip(this.parent).changeSection(3); } } }//package game2_fla
Section 69
//menuAnim_127 (game2_fla.menuAnim_127) package game2_fla { import flash.display.*; public dynamic class menuAnim_127 extends MovieClip { public var menu3MC:MovieClip; public var menu2MC:MovieClip; public var menu1MC:MovieClip; } }//package game2_fla
Section 70
//menuMC_126 (game2_fla.menuMC_126) package game2_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.geom.*; import flash.filters.*; import flash.text.*; import flash.net.*; import flash.utils.*; import flash.ui.*; import flash.system.*; import flash.external.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.printing.*; import flash.xml.*; public dynamic class menuMC_126 extends MovieClip { public var currMenuPic:int; public var i:int; public var menuArray:Array; public var menuAnimMC:MovieClip; public var animTimer:int; public var btnClickHere:MovieClip; public var animPhase:int; public var prevMenuPic:int; public function menuMC_126(){ addFrameScript(0, frame1); } public function gotoGame(_arg1:MouseEvent){ MovieClip(this.parent).changeSection(4); } function frame1(){ stop(); menuArray = new Array(menuAnimMC.menu1MC, menuAnimMC.menu2MC, menuAnimMC.menu3MC); currMenuPic = 0; prevMenuPic = 0; animPhase = 0; animTimer = 0; menuArray[0].alpha = 1; menuArray[1].alpha = 0.5; menuArray[2].alpha = 0.5; this.addEventListener(Event.ENTER_FRAME, doEveryFrame); btnClickHere.addEventListener(MouseEvent.CLICK, gotoGame); btnClickHere.buttonMode = true; } public function doEveryFrame(_arg1:Event){ switch (animPhase){ case 0: animTimer++; if (animTimer > 20){ animTimer = 0; animPhase = 1; prevMenuPic = currMenuPic; currMenuPic++; if (currMenuPic >= menuArray.length){ currMenuPic = 0; }; menuArray[currMenuPic].alpha = 0; if (menuAnimMC.getChildIndex(menuArray[currMenuPic]) < (menuAnimMC.numChildren - 1)){ menuAnimMC.swapChildren(menuArray[currMenuPic], menuAnimMC.getChildAt((menuAnimMC.numChildren - 1))); }; }; break; case 1: menuArray[currMenuPic].alpha = (menuArray[currMenuPic].alpha + 0.1); if (menuArray[currMenuPic].alpha >= 1){ menuArray[currMenuPic].alpha = 1; animPhase = 0; }; break; }; } } }//package game2_fla
Section 71
//musicLoad_122 (game2_fla.musicLoad_122) package game2_fla { import flash.display.*; public dynamic class musicLoad_122 extends MovieClip { public function musicLoad_122(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game2_fla
Section 72
//soundButton_138 (game2_fla.soundButton_138) package game2_fla { import flash.display.*; public dynamic class soundButton_138 extends MovieClip { public function soundButton_138(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game2_fla
Section 73
//treebarkcopy_149 (game2_fla.treebarkcopy_149) package game2_fla { import flash.display.*; import flash.text.*; public dynamic class treebarkcopy_149 extends MovieClip { public var txtScore:TextField; public var txtParticles:TextField; public var txtQuality:TextField; public var txtBonus2:TextField; public var txtBonus3:TextField; public var absorbMC:MovieClip; public var txtBonus1:TextField; public var txtBonus5:TextField; public var txtBonus4:TextField; public var txtLife:TextField; } }//package game2_fla
Section 74
//tutorial_inside_172 (game2_fla.tutorial_inside_172) package game2_fla { import flash.display.*; public dynamic class tutorial_inside_172 extends MovieClip { public var spacebarMC:MovieClip; public function tutorial_inside_172(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game2_fla
Section 75
//tutorialarrow_170 (game2_fla.tutorialarrow_170) package game2_fla { import flash.display.*; public dynamic class tutorialarrow_170 extends MovieClip { public var arrowInsideMC:MovieClip; } }//package game2_fla
Section 76
//YouWinScreen_160 (game2_fla.YouWinScreen_160) package game2_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.geom.*; import flash.filters.*; import flash.text.*; import flash.net.*; import flash.utils.*; import flash.ui.*; import flash.system.*; import flash.external.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.printing.*; import flash.xml.*; public dynamic class YouWinScreen_160 extends MovieClip { public var txtScore:TextField; public var pressAnyKeyMC:MovieClip; public var timerAnyKey:int; public function YouWinScreen_160(){ addFrameScript(0, frame1); } public function submitHighScore(_arg1:MouseEvent){ MovieClip(this.parent.parent).changeSection(8); removeButtonListeners(); } public function removeButtonListeners(){ pressAnyKeyMC.mainMenuMC.removeEventListener(MouseEvent.CLICK, clickBackToMainMenu); pressAnyKeyMC.mainMenuMC.removeEventListener(MouseEvent.MOUSE_OVER, rollOverButton); pressAnyKeyMC.mainMenuMC.removeEventListener(MouseEvent.MOUSE_OUT, rollOutButton); pressAnyKeyMC.submitScoreMC.removeEventListener(MouseEvent.CLICK, submitHighScore); pressAnyKeyMC.submitScoreMC.removeEventListener(MouseEvent.MOUSE_OVER, rollOverButton); pressAnyKeyMC.submitScoreMC.removeEventListener(MouseEvent.MOUSE_OUT, rollOutButton); } public function rollOutButton(_arg1:MouseEvent){ _arg1.currentTarget.gotoAndStop(1); } public function addButtonListeners(){ pressAnyKeyMC.mainMenuMC.buttonMode = true; pressAnyKeyMC.mainMenuMC.addEventListener(MouseEvent.CLICK, clickBackToMainMenu); pressAnyKeyMC.mainMenuMC.addEventListener(MouseEvent.MOUSE_OVER, rollOverButton); pressAnyKeyMC.mainMenuMC.addEventListener(MouseEvent.MOUSE_OUT, rollOutButton); pressAnyKeyMC.submitScoreMC.buttonMode = true; pressAnyKeyMC.submitScoreMC.addEventListener(MouseEvent.CLICK, submitHighScore); pressAnyKeyMC.submitScoreMC.addEventListener(MouseEvent.MOUSE_OVER, rollOverButton); pressAnyKeyMC.submitScoreMC.addEventListener(MouseEvent.MOUSE_OUT, rollOutButton); } function frame1(){ stop(); timerAnyKey = 0; txtScore.text = (("Your score is " + MovieClip(this.parent.parent).currScore) + ". Congratulations!"); this.addEventListener(Event.ENTER_FRAME, doEveryFrame); } public function clickBackToMainMenu(_arg1:MouseEvent){ MovieClip(this.parent.parent).changeSection(3); removeButtonListeners(); } public function rollOverButton(_arg1:MouseEvent){ _arg1.currentTarget.gotoAndStop(2); } public function doEveryFrame(_arg1:Event){ timerAnyKey++; if (timerAnyKey > 50){ pressAnyKeyMC.alpha = (pressAnyKeyMC.alpha + 0.1); if (pressAnyKeyMC.alpha >= 1){ pressAnyKeyMC.alpha = 1; addButtonListeners(); this.removeEventListener(Event.ENTER_FRAME, doEveryFrame); }; }; } } }//package game2_fla
Section 77
//MochiScores (mochi.MochiScores) package mochi { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var options = _arg1; if (options != null){ if (options.clip != null){ if ((options.clip is Sprite)){ MochiServices.setContainer(options.clip); }; delete options.clip; } else { MochiServices.setContainer(); }; MochiServices.stayOnTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); //unresolved jump }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); //unresolved jump }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); //unresolved jump }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local2:Object; var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; _local2 = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (_arg1 != null){ if (_arg1.error != null){ if (_arg1.error == true){ if (onErrorHandler != null){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; }; }; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi
Section 78
//MochiServices (mochi.MochiServices) package mochi { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.*; 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 _sendChannel:LocalConnection; private static var _rcvChannelName:String; private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; private static var _timer:Timer; private static var _sendChannelName:String; private static var _startTime:Number; private static var _connecting:Boolean = false; public static var onError:Object; private static var _listenChannelName:String = "__mochiservices"; private static var _rcvChannel:LocalConnection; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ onError("NotConnected"); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } public static function get connected():Boolean{ return (_connected); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (_clip != null){ if (_clip._queue != null){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function get childClip():Object{ return (_clip); } public static function get id():String{ return (_id); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function getVersion():String{ return ("1.31"); } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _listenChannel.close(); _rcvChannel.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; Security.allowDomain("*"); Security.allowInsecureDomain("*"); if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; return (_local2); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); if (_clip.parent != null){ Sprite(_clip.parent).removeChild(_clip); }; } 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 onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } private static function initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion()}); _rcvChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (_arg1:Object):void{ var cb:String; var cblst:Object; var method:*; var methodName:String; var obj:Object; var pkg = _arg1; cb = pkg.callbackID; cblst = this.client._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]; //unresolved jump }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { }; }; }; delete this.client._callbacks[cb]; }; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; _rcvChannel.connect(_rcvChannelName); _connecting = false; _connected = true; _listenChannel.close(); while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); } 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 (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) { }; }; }; }; } 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"); _rcvChannelName = _arg1; initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var clipname:String; var f:Function; var req:URLRequest; var id = _arg1; var clip = _arg2; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; MochiServices.allowDomains(_gatewayURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); _timer = new Timer(1000, 0); _startTime = getTimer(); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); f = function (_arg1:Object):void{ _clip._mochiad_ctr_failed = true; MochiServices.disconnect(); MochiServices.onError("IOError"); }; _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); req = new URLRequest(_gatewayURL); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _rcvChannel = new LocalConnection(); _rcvChannel.allowDomain("*", "localhost"); _rcvChannel.allowInsecureDomain("*", "localhost"); _rcvChannel.client = _clip; _clip._nextcallbackID = 0; _clip._callbacks = {}; listen(); return (_clip); } public static function bringToTop(_arg1:Event):void{ var e = _arg1; if (MochiServices.clip != null){ if (MochiServices.childClip != null){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; }; } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ _connecting = true; init(id, clip); }; //unresolved jump }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ }; }; }; } 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 connectWait(_arg1:TimerEvent):void{ if ((getTimer() - _startTime) > 10000){ if (!_connected){ _clip._mochiad_ctr_failed = true; MochiServices.disconnect(); MochiServices.onError("IOError"); }; _timer.stop(); }; } } }//package mochi
Section 79
//bg0l_1 (bg0l_1) package { import flash.display.*; public dynamic class bg0l_1 extends MovieClip { } }//package
Section 80
//bg0m_1 (bg0m_1) package { import flash.display.*; public dynamic class bg0m_1 extends MovieClip { } }//package
Section 81
//bg0s_1 (bg0s_1) package { import flash.display.*; public dynamic class bg0s_1 extends MovieClip { } }//package
Section 82
//bg0s_2 (bg0s_2) package { import flash.display.*; public dynamic class bg0s_2 extends MovieClip { } }//package
Section 83
//bg1l_1 (bg1l_1) package { import flash.display.*; public dynamic class bg1l_1 extends MovieClip { } }//package
Section 84
//bg1l_2 (bg1l_2) package { import flash.display.*; public dynamic class bg1l_2 extends MovieClip { } }//package
Section 85
//bg1l_3 (bg1l_3) package { import flash.display.*; public dynamic class bg1l_3 extends MovieClip { } }//package
Section 86
//bg1l_4 (bg1l_4) package { import flash.display.*; public dynamic class bg1l_4 extends MovieClip { } }//package
Section 87
//bg1m_1 (bg1m_1) package { import flash.display.*; public dynamic class bg1m_1 extends MovieClip { } }//package
Section 88
//bg1m_2 (bg1m_2) package { import flash.display.*; public dynamic class bg1m_2 extends MovieClip { } }//package
Section 89
//bg1m_3 (bg1m_3) package { import flash.display.*; public dynamic class bg1m_3 extends MovieClip { } }//package
Section 90
//bg1m_4 (bg1m_4) package { import flash.display.*; public dynamic class bg1m_4 extends MovieClip { } }//package
Section 91
//bg1m_5 (bg1m_5) package { import flash.display.*; public dynamic class bg1m_5 extends MovieClip { } }//package
Section 92
//bg1m_6 (bg1m_6) package { import flash.display.*; public dynamic class bg1m_6 extends MovieClip { } }//package
Section 93
//bg1s_1 (bg1s_1) package { import flash.display.*; public dynamic class bg1s_1 extends MovieClip { } }//package
Section 94
//bg1s_10 (bg1s_10) package { import flash.display.*; public dynamic class bg1s_10 extends MovieClip { } }//package
Section 95
//bg1s_2 (bg1s_2) package { import flash.display.*; public dynamic class bg1s_2 extends MovieClip { } }//package
Section 96
//bg1s_3 (bg1s_3) package { import flash.display.*; public dynamic class bg1s_3 extends MovieClip { } }//package
Section 97
//bg1s_4 (bg1s_4) package { import flash.display.*; public dynamic class bg1s_4 extends MovieClip { } }//package
Section 98
//bg1s_5 (bg1s_5) package { import flash.display.*; public dynamic class bg1s_5 extends MovieClip { } }//package
Section 99
//bg1s_6 (bg1s_6) package { import flash.display.*; public dynamic class bg1s_6 extends MovieClip { } }//package
Section 100
//bg1s_7 (bg1s_7) package { import flash.display.*; public dynamic class bg1s_7 extends MovieClip { } }//package
Section 101
//bg1s_8 (bg1s_8) package { import flash.display.*; public dynamic class bg1s_8 extends MovieClip { } }//package
Section 102
//bg1s_9 (bg1s_9) package { import flash.display.*; public dynamic class bg1s_9 extends MovieClip { } }//package
Section 103
//bg2l_1 (bg2l_1) package { import flash.display.*; public dynamic class bg2l_1 extends MovieClip { } }//package
Section 104
//bg2l_2 (bg2l_2) package { import flash.display.*; public dynamic class bg2l_2 extends MovieClip { } }//package
Section 105
//bg2l_3 (bg2l_3) package { import flash.display.*; public dynamic class bg2l_3 extends MovieClip { } }//package
Section 106
//bg2l_4 (bg2l_4) package { import flash.display.*; public dynamic class bg2l_4 extends MovieClip { } }//package
Section 107
//bg2m_1 (bg2m_1) package { import flash.display.*; public dynamic class bg2m_1 extends MovieClip { } }//package
Section 108
//bg2m_2 (bg2m_2) package { import flash.display.*; public dynamic class bg2m_2 extends MovieClip { } }//package
Section 109
//bg2m_3 (bg2m_3) package { import flash.display.*; public dynamic class bg2m_3 extends MovieClip { } }//package
Section 110
//bg2m_4 (bg2m_4) package { import flash.display.*; public dynamic class bg2m_4 extends MovieClip { } }//package
Section 111
//bg2m_5 (bg2m_5) package { import flash.display.*; public dynamic class bg2m_5 extends MovieClip { } }//package
Section 112
//bg2m_6 (bg2m_6) package { import flash.display.*; public dynamic class bg2m_6 extends MovieClip { } }//package
Section 113
//bg2s_1 (bg2s_1) package { import flash.display.*; public dynamic class bg2s_1 extends MovieClip { } }//package
Section 114
//bg2s_10 (bg2s_10) package { import flash.display.*; public dynamic class bg2s_10 extends MovieClip { } }//package
Section 115
//bg2s_2 (bg2s_2) package { import flash.display.*; public dynamic class bg2s_2 extends MovieClip { } }//package
Section 116
//bg2s_3 (bg2s_3) package { import flash.display.*; public dynamic class bg2s_3 extends MovieClip { } }//package
Section 117
//bg2s_4 (bg2s_4) package { import flash.display.*; public dynamic class bg2s_4 extends MovieClip { } }//package
Section 118
//bg2s_5 (bg2s_5) package { import flash.display.*; public dynamic class bg2s_5 extends MovieClip { } }//package
Section 119
//bg2s_6 (bg2s_6) package { import flash.display.*; public dynamic class bg2s_6 extends MovieClip { } }//package
Section 120
//bg2s_7 (bg2s_7) package { import flash.display.*; public dynamic class bg2s_7 extends MovieClip { } }//package
Section 121
//bg2s_8 (bg2s_8) package { import flash.display.*; public dynamic class bg2s_8 extends MovieClip { } }//package
Section 122
//bg2s_9 (bg2s_9) package { import flash.display.*; public dynamic class bg2s_9 extends MovieClip { } }//package
Section 123
//bg3l_1 (bg3l_1) package { import flash.display.*; public dynamic class bg3l_1 extends MovieClip { } }//package
Section 124
//bg3l_2 (bg3l_2) package { import flash.display.*; public dynamic class bg3l_2 extends MovieClip { } }//package
Section 125
//bg3l_3 (bg3l_3) package { import flash.display.*; public dynamic class bg3l_3 extends MovieClip { } }//package
Section 126
//bg3l_4 (bg3l_4) package { import flash.display.*; public dynamic class bg3l_4 extends MovieClip { } }//package
Section 127
//bg3m_1 (bg3m_1) package { import flash.display.*; public dynamic class bg3m_1 extends MovieClip { } }//package
Section 128
//bg3m_2 (bg3m_2) package { import flash.display.*; public dynamic class bg3m_2 extends MovieClip { } }//package
Section 129
//bg3m_3 (bg3m_3) package { import flash.display.*; public dynamic class bg3m_3 extends MovieClip { } }//package
Section 130
//bg3m_4 (bg3m_4) package { import flash.display.*; public dynamic class bg3m_4 extends MovieClip { } }//package
Section 131
//bg3m_5 (bg3m_5) package { import flash.display.*; public dynamic class bg3m_5 extends MovieClip { } }//package
Section 132
//bg3m_6 (bg3m_6) package { import flash.display.*; public dynamic class bg3m_6 extends MovieClip { } }//package
Section 133
//bg3s_1 (bg3s_1) package { import flash.display.*; public dynamic class bg3s_1 extends MovieClip { } }//package
Section 134
//bg3s_10 (bg3s_10) package { import flash.display.*; public dynamic class bg3s_10 extends MovieClip { } }//package
Section 135
//bg3s_2 (bg3s_2) package { import flash.display.*; public dynamic class bg3s_2 extends MovieClip { } }//package
Section 136
//bg3s_3 (bg3s_3) package { import flash.display.*; public dynamic class bg3s_3 extends MovieClip { } }//package
Section 137
//bg3s_4 (bg3s_4) package { import flash.display.*; public dynamic class bg3s_4 extends MovieClip { } }//package
Section 138
//bg3s_5 (bg3s_5) package { import flash.display.*; public dynamic class bg3s_5 extends MovieClip { } }//package
Section 139
//bg3s_6 (bg3s_6) package { import flash.display.*; public dynamic class bg3s_6 extends MovieClip { } }//package
Section 140
//bg3s_7 (bg3s_7) package { import flash.display.*; public dynamic class bg3s_7 extends MovieClip { } }//package
Section 141
//bg3s_8 (bg3s_8) package { import flash.display.*; public dynamic class bg3s_8 extends MovieClip { } }//package
Section 142
//bg3s_9 (bg3s_9) package { import flash.display.*; public dynamic class bg3s_9 extends MovieClip { } }//package
Section 143
//bg4l_1 (bg4l_1) package { import flash.display.*; public dynamic class bg4l_1 extends MovieClip { } }//package
Section 144
//bg4l_2 (bg4l_2) package { import flash.display.*; public dynamic class bg4l_2 extends MovieClip { } }//package
Section 145
//bg4l_3 (bg4l_3) package { import flash.display.*; public dynamic class bg4l_3 extends MovieClip { } }//package
Section 146
//bg4l_4 (bg4l_4) package { import flash.display.*; public dynamic class bg4l_4 extends MovieClip { } }//package
Section 147
//bg4m_1 (bg4m_1) package { import flash.display.*; public dynamic class bg4m_1 extends MovieClip { } }//package
Section 148
//bg4m_2 (bg4m_2) package { import flash.display.*; public dynamic class bg4m_2 extends MovieClip { } }//package
Section 149
//bg4m_3 (bg4m_3) package { import flash.display.*; public dynamic class bg4m_3 extends MovieClip { } }//package
Section 150
//bg4m_4 (bg4m_4) package { import flash.display.*; public dynamic class bg4m_4 extends MovieClip { } }//package
Section 151
//bg4m_5 (bg4m_5) package { import flash.display.*; public dynamic class bg4m_5 extends MovieClip { } }//package
Section 152
//bg4m_6 (bg4m_6) package { import flash.display.*; public dynamic class bg4m_6 extends MovieClip { } }//package
Section 153
//bg4s_1 (bg4s_1) package { import flash.display.*; public dynamic class bg4s_1 extends MovieClip { } }//package
Section 154
//bg4s_10 (bg4s_10) package { import flash.display.*; public dynamic class bg4s_10 extends MovieClip { } }//package
Section 155
//bg4s_2 (bg4s_2) package { import flash.display.*; public dynamic class bg4s_2 extends MovieClip { } }//package
Section 156
//bg4s_3 (bg4s_3) package { import flash.display.*; public dynamic class bg4s_3 extends MovieClip { } }//package
Section 157
//bg4s_4 (bg4s_4) package { import flash.display.*; public dynamic class bg4s_4 extends MovieClip { } }//package
Section 158
//bg4s_5 (bg4s_5) package { import flash.display.*; public dynamic class bg4s_5 extends MovieClip { } }//package
Section 159
//bg4s_6 (bg4s_6) package { import flash.display.*; public dynamic class bg4s_6 extends MovieClip { } }//package
Section 160
//bg4s_7 (bg4s_7) package { import flash.display.*; public dynamic class bg4s_7 extends MovieClip { } }//package
Section 161
//bg4s_8 (bg4s_8) package { import flash.display.*; public dynamic class bg4s_8 extends MovieClip { } }//package
Section 162
//bg4s_9 (bg4s_9) package { import flash.display.*; public dynamic class bg4s_9 extends MovieClip { } }//package
Section 163
//Boss4Dialogue (Boss4Dialogue) package { import flash.display.*; public dynamic class Boss4Dialogue extends MovieClip { public function Boss4Dialogue(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 164
//Boss4Dialogue2 (Boss4Dialogue2) package { import flash.display.*; public dynamic class Boss4Dialogue2 extends MovieClip { public function Boss4Dialogue2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 165
//BossApproach (BossApproach) package { import flash.display.*; public dynamic class BossApproach extends MovieClip { public function BossApproach(){ addFrameScript(0, frame1, 119, frame120); } function frame1(){ play(); } function frame120(){ stop(); } } }//package
Section 166
//BossApproachNoSound (BossApproachNoSound) package { import flash.display.*; public dynamic class BossApproachNoSound extends MovieClip { public function BossApproachNoSound(){ addFrameScript(0, frame1, 119, frame120); } function frame1(){ play(); } function frame120(){ stop(); } } }//package
Section 167
//BossLifeMC (BossLifeMC) package { import flash.display.*; public dynamic class BossLifeMC extends MovieClip { public var life1MC:MovieClip; public var bossLifeBgMC:MovieClip; public var life4MC:MovieClip; public var life3MC:MovieClip; public var life2MC:MovieClip; } }//package
Section 168
//BulletArrowBlue (BulletArrowBlue) package { import flash.display.*; public dynamic class BulletArrowBlue extends MovieClip { } }//package
Section 169
//BulletArrowFriendly (BulletArrowFriendly) package { import flash.display.*; public dynamic class BulletArrowFriendly extends MovieClip { } }//package
Section 170
//BulletArrowOrange (BulletArrowOrange) package { import flash.display.*; public dynamic class BulletArrowOrange extends MovieClip { } }//package
Section 171
//BulletArrowRed (BulletArrowRed) package { import flash.display.*; public dynamic class BulletArrowRed extends MovieClip { } }//package
Section 172
//BulletClover (BulletClover) package { import flash.display.*; public dynamic class BulletClover extends MovieClip { } }//package
Section 173
//BulletCloverBoss4 (BulletCloverBoss4) package { import flash.display.*; public dynamic class BulletCloverBoss4 extends MovieClip { } }//package
Section 174
//BulletCloverFriendly (BulletCloverFriendly) package { import flash.display.*; public dynamic class BulletCloverFriendly extends MovieClip { } }//package
Section 175
//BulletCrescent (BulletCrescent) package { import flash.display.*; public dynamic class BulletCrescent extends MovieClip { } }//package
Section 176
//BulletCrescentBoss4 (BulletCrescentBoss4) package { import flash.display.*; public dynamic class BulletCrescentBoss4 extends MovieClip { } }//package
Section 177
//BulletCrescentFriendly (BulletCrescentFriendly) package { import flash.display.*; public dynamic class BulletCrescentFriendly extends MovieClip { } }//package
Section 178
//BulletCrystalBall (BulletCrystalBall) package { import flash.display.*; public dynamic class BulletCrystalBall extends MovieClip { } }//package
Section 179
//BulletCrystalBallFriendly (BulletCrystalBallFriendly) package { import flash.display.*; public dynamic class BulletCrystalBallFriendly extends MovieClip { } }//package
Section 180
//BulletDoughnut (BulletDoughnut) package { import flash.display.*; public dynamic class BulletDoughnut extends MovieClip { } }//package
Section 181
//BulletDoughnutBoss4 (BulletDoughnutBoss4) package { import flash.display.*; public dynamic class BulletDoughnutBoss4 extends MovieClip { } }//package
Section 182
//BulletDoughnutFriendly (BulletDoughnutFriendly) package { import flash.display.*; public dynamic class BulletDoughnutFriendly extends MovieClip { } }//package
Section 183
//BulletDrill (BulletDrill) package { import flash.display.*; public dynamic class BulletDrill extends MovieClip { } }//package
Section 184
//BulletDrillFriendly (BulletDrillFriendly) package { import flash.display.*; public dynamic class BulletDrillFriendly extends MovieClip { public function BulletDrillFriendly(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 185
//BulletElegant (BulletElegant) package { import flash.display.*; public dynamic class BulletElegant extends MovieClip { } }//package
Section 186
//BulletElegantFriendly (BulletElegantFriendly) package { import flash.display.*; public dynamic class BulletElegantFriendly extends MovieClip { } }//package
Section 187
//BulletEnergyMissile (BulletEnergyMissile) package { import flash.display.*; public dynamic class BulletEnergyMissile extends MovieClip { } }//package
Section 188
//BulletEnergyMissileFriendly (BulletEnergyMissileFriendly) package { import flash.display.*; public dynamic class BulletEnergyMissileFriendly extends MovieClip { } }//package
Section 189
//BulletGlowCircle (BulletGlowCircle) package { import flash.display.*; public dynamic class BulletGlowCircle extends MovieClip { } }//package
Section 190
//BulletGlowCircle2 (BulletGlowCircle2) package { import flash.display.*; public dynamic class BulletGlowCircle2 extends MovieClip { } }//package
Section 191
//BulletGlowCircle2Friendly (BulletGlowCircle2Friendly) package { import flash.display.*; public dynamic class BulletGlowCircle2Friendly extends MovieClip { } }//package
Section 192
//BulletGlowCircleFriendly (BulletGlowCircleFriendly) package { import flash.display.*; public dynamic class BulletGlowCircleFriendly extends MovieClip { } }//package
Section 193
//BulletGlowOval (BulletGlowOval) package { import flash.display.*; public dynamic class BulletGlowOval extends MovieClip { } }//package
Section 194
//BulletGlowOvalBoss4 (BulletGlowOvalBoss4) package { import flash.display.*; public dynamic class BulletGlowOvalBoss4 extends MovieClip { } }//package
Section 195
//BulletGlowOvalFriendly (BulletGlowOvalFriendly) package { import flash.display.*; public dynamic class BulletGlowOvalFriendly extends MovieClip { } }//package
Section 196
//BulletPointy (BulletPointy) package { import flash.display.*; public dynamic class BulletPointy extends MovieClip { } }//package
Section 197
//BulletPointyBlue (BulletPointyBlue) package { import flash.display.*; public dynamic class BulletPointyBlue extends MovieClip { } }//package
Section 198
//BulletPointyNormal (BulletPointyNormal) package { import flash.display.*; public dynamic class BulletPointyNormal extends MovieClip { } }//package
Section 199
//BulletRadar (BulletRadar) package { import flash.display.*; public dynamic class BulletRadar extends MovieClip { } }//package
Section 200
//BulletRadarBoss4 (BulletRadarBoss4) package { import flash.display.*; public dynamic class BulletRadarBoss4 extends MovieClip { } }//package
Section 201
//BulletRadarFriendly (BulletRadarFriendly) package { import flash.display.*; public dynamic class BulletRadarFriendly extends MovieClip { } }//package
Section 202
//BulletRammer (BulletRammer) package { import flash.display.*; public dynamic class BulletRammer extends MovieClip { } }//package
Section 203
//BulletRock (BulletRock) package { import flash.display.*; public dynamic class BulletRock extends MovieClip { } }//package
Section 204
//BulletRockFriendly (BulletRockFriendly) package { import flash.display.*; public dynamic class BulletRockFriendly extends MovieClip { } }//package
Section 205
//BulletSakuraBlue (BulletSakuraBlue) package { import flash.display.*; public dynamic class BulletSakuraBlue extends MovieClip { } }//package
Section 206
//BulletSakuraFriendly (BulletSakuraFriendly) package { import flash.display.*; public dynamic class BulletSakuraFriendly extends MovieClip { } }//package
Section 207
//BulletSakuraOrange (BulletSakuraOrange) package { import flash.display.*; public dynamic class BulletSakuraOrange extends MovieClip { } }//package
Section 208
//BulletSakuraRed (BulletSakuraRed) package { import flash.display.*; public dynamic class BulletSakuraRed extends MovieClip { } }//package
Section 209
//BulletSimple (BulletSimple) package { import flash.display.*; public dynamic class BulletSimple extends MovieClip { } }//package
Section 210
//BulletSimpleMissile (BulletSimpleMissile) package { import flash.display.*; public dynamic class BulletSimpleMissile extends MovieClip { public function BulletSimpleMissile(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 211
//BulletSimpleMissileFriendly (BulletSimpleMissileFriendly) package { import flash.display.*; public dynamic class BulletSimpleMissileFriendly extends MovieClip { } }//package
Section 212
//BulletSmallDoughnut (BulletSmallDoughnut) package { import flash.display.*; public dynamic class BulletSmallDoughnut extends MovieClip { } }//package
Section 213
//BulletSmallDoughnutFriendly (BulletSmallDoughnutFriendly) package { import flash.display.*; public dynamic class BulletSmallDoughnutFriendly extends MovieClip { } }//package
Section 214
//BulletSquareArrow (BulletSquareArrow) package { import flash.display.*; public dynamic class BulletSquareArrow extends MovieClip { } }//package
Section 215
//BulletSquareArrowFriendly (BulletSquareArrowFriendly) package { import flash.display.*; public dynamic class BulletSquareArrowFriendly extends MovieClip { } }//package
Section 216
//BulletStick (BulletStick) package { import flash.display.*; public dynamic class BulletStick extends MovieClip { } }//package
Section 217
//BulletStickFriendly (BulletStickFriendly) package { import flash.display.*; public dynamic class BulletStickFriendly extends MovieClip { public function BulletStickFriendly(){ addFrameScript(9, frame10); } function frame10(){ stop(); } } }//package
Section 218
//BulletStickRed (BulletStickRed) package { import flash.display.*; public dynamic class BulletStickRed extends MovieClip { } }//package
Section 219
//BulletStickRedFriendly (BulletStickRedFriendly) package { import flash.display.*; public dynamic class BulletStickRedFriendly extends MovieClip { } }//package
Section 220
//BulletV (BulletV) package { import flash.display.*; public dynamic class BulletV extends MovieClip { } }//package
Section 221
//button1_mc (button1_mc) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.*; import flash.external.*; public dynamic class button1_mc extends MovieClip { public var button_mc:MovieClip; public var answered:Boolean; public function button1_mc(){ addFrameScript(0, frame1); } public function cgdc5Event(_arg1:Event):void{ if (ExternalInterface.available){ ExternalInterface.call("cgdc5close"); }; setTimeout(noResponse, 500); } public function noResponse(){ if (!answered){ navigateToURL(new URLRequest("http://jayisgames.com/cgdc5/?ref=e875ab05"), "_blank"); }; } function frame1(){ answered = false; button_mc.buttonMode = true; button_mc.addEventListener(MouseEvent.CLICK, cgdc5Event); if (ExternalInterface.available){ ExternalInterface.addCallback("answer", answer); }; MochiBot.track(this, "e875ab05"); } public function answer(){ answered = true; } } }//package
Section 222
//DamageSmoke (DamageSmoke) package { import flash.display.*; public dynamic class DamageSmoke extends MovieClip { } }//package
Section 223
//EnemyFairy (EnemyFairy) package { import flash.display.*; public dynamic class EnemyFairy extends MovieClip { } }//package
Section 224
//EnemyLackey1 (EnemyLackey1) package { import flash.display.*; public dynamic class EnemyLackey1 extends MovieClip { } }//package
Section 225
//EnemyLackey2 (EnemyLackey2) package { import flash.display.*; public dynamic class EnemyLackey2 extends MovieClip { } }//package
Section 226
//EnemyLackey3 (EnemyLackey3) package { import flash.display.*; public dynamic class EnemyLackey3 extends MovieClip { } }//package
Section 227
//EnemyStar (EnemyStar) package { import flash.display.*; public dynamic class EnemyStar extends MovieClip { } }//package
Section 228
//Fairy (Fairy) package { import flash.display.*; public dynamic class Fairy extends MovieClip { } }//package
Section 229
//FairyDialogue (FairyDialogue) package { import flash.display.*; public dynamic class FairyDialogue extends MovieClip { public function FairyDialogue(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 230
//FairyDialogue2 (FairyDialogue2) package { import flash.display.*; public dynamic class FairyDialogue2 extends MovieClip { public function FairyDialogue2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 231
//FairyDialogue3 (FairyDialogue3) package { import flash.display.*; public dynamic class FairyDialogue3 extends MovieClip { public function FairyDialogue3(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 232
//FrozenFairy_inside (FrozenFairy_inside) package { import flash.display.*; public dynamic class FrozenFairy_inside extends MovieClip { } }//package
Section 233
//HowToPlayPanel (HowToPlayPanel) package { import flash.display.*; public dynamic class HowToPlayPanel extends MovieClip { public var arrowMC:MovieClip; public var tutorialMC:MovieClip; } }//package
Section 234
//Level0Pic (Level0Pic) package { import flash.display.*; public dynamic class Level0Pic extends MovieClip { } }//package
Section 235
//Level1Pic (Level1Pic) package { import flash.display.*; public dynamic class Level1Pic extends MovieClip { } }//package
Section 236
//Level2Pic (Level2Pic) package { import flash.display.*; public dynamic class Level2Pic extends MovieClip { } }//package
Section 237
//Level3Pic (Level3Pic) package { import flash.display.*; public dynamic class Level3Pic extends MovieClip { } }//package
Section 238
//Level4Pic (Level4Pic) package { import flash.display.*; public dynamic class Level4Pic extends MovieClip { } }//package
Section 239
//LineParticle (LineParticle) package { import flash.display.*; public dynamic class LineParticle extends MovieClip { } }//package
Section 240
//Lvl1BigEnemy (Lvl1BigEnemy) package { import flash.display.*; public dynamic class Lvl1BigEnemy extends MovieClip { public var blade2MC:MovieClip; public var blade1MC:MovieClip; } }//package
Section 241
//Lvl1BossEnemy (Lvl1BossEnemy) package { import flash.display.*; public dynamic class Lvl1BossEnemy extends MovieClip { } }//package
Section 242
//Lvl1BossEnemy_ball (Lvl1BossEnemy_ball) package { import flash.display.*; public dynamic class Lvl1BossEnemy_ball extends MovieClip { } }//package
Section 243
//Lvl1MediumEnemy (Lvl1MediumEnemy) package { import flash.display.*; public dynamic class Lvl1MediumEnemy extends MovieClip { } }//package
Section 244
//Lvl1SmallEnemy1 (Lvl1SmallEnemy1) package { import flash.display.*; public dynamic class Lvl1SmallEnemy1 extends MovieClip { } }//package
Section 245
//Lvl1SmallEnemy2 (Lvl1SmallEnemy2) package { import flash.display.*; public dynamic class Lvl1SmallEnemy2 extends MovieClip { } }//package
Section 246
//Lvl1SmallEnemy3 (Lvl1SmallEnemy3) package { import flash.display.*; public dynamic class Lvl1SmallEnemy3 extends MovieClip { } }//package
Section 247
//Lvl2BigMC (Lvl2BigMC) package { import flash.display.*; public dynamic class Lvl2BigMC extends MovieClip { } }//package
Section 248
//Lvl2BossEnemy (Lvl2BossEnemy) package { import flash.display.*; public dynamic class Lvl2BossEnemy extends MovieClip { public var scannerMC:MovieClip; public var scanThingMC2:MovieClip; public var scannerMC2:MovieClip; public var scanThingMC:MovieClip; } }//package
Section 249
//Lvl2BossEnemy_turret (Lvl2BossEnemy_turret) package { import flash.display.*; public dynamic class Lvl2BossEnemy_turret extends MovieClip { } }//package
Section 250
//Lvl2MediumMC (Lvl2MediumMC) package { import flash.display.*; public dynamic class Lvl2MediumMC extends MovieClip { } }//package
Section 251
//Lvl2Small1 (Lvl2Small1) package { import flash.display.*; public dynamic class Lvl2Small1 extends MovieClip { } }//package
Section 252
//Lvl2SmallInterceptorMC (Lvl2SmallInterceptorMC) package { import flash.display.*; public dynamic class Lvl2SmallInterceptorMC extends MovieClip { } }//package
Section 253
//Lvl2SmallPursuitMC (Lvl2SmallPursuitMC) package { import flash.display.*; public dynamic class Lvl2SmallPursuitMC extends MovieClip { } }//package
Section 254
//Lvl2SmallScoutMC (Lvl2SmallScoutMC) package { import flash.display.*; public dynamic class Lvl2SmallScoutMC extends MovieClip { } }//package
Section 255
//Lvl3BigMC (Lvl3BigMC) package { import flash.display.*; public dynamic class Lvl3BigMC extends MovieClip { } }//package
Section 256
//Lvl3BigTurretMC (Lvl3BigTurretMC) package { import flash.display.*; public dynamic class Lvl3BigTurretMC extends MovieClip { } }//package
Section 257
//Lvl3MediumMC (Lvl3MediumMC) package { import flash.display.*; public dynamic class Lvl3MediumMC extends MovieClip { } }//package
Section 258
//Lvl3SmallConiferousMC (Lvl3SmallConiferousMC) package { import flash.display.*; public dynamic class Lvl3SmallConiferousMC extends MovieClip { } }//package
Section 259
//Lvl3SmallRaptorialMC (Lvl3SmallRaptorialMC) package { import flash.display.*; public dynamic class Lvl3SmallRaptorialMC extends MovieClip { } }//package
Section 260
//Lvl3SmallScavengingMC (Lvl3SmallScavengingMC) package { import flash.display.*; public dynamic class Lvl3SmallScavengingMC extends MovieClip { } }//package
Section 261
//Lvl4BigMC (Lvl4BigMC) package { import flash.display.*; public dynamic class Lvl4BigMC extends MovieClip { } }//package
Section 262
//Lvl4BigTurretMC (Lvl4BigTurretMC) package { import flash.display.*; public dynamic class Lvl4BigTurretMC extends MovieClip { } }//package
Section 263
//Lvl4BossMC (Lvl4BossMC) package { import flash.display.*; public dynamic class Lvl4BossMC extends MovieClip { public var fairyMC:MovieClip; public var hatchMC:MovieClip; } }//package
Section 264
//Lvl4MediumMC (Lvl4MediumMC) package { import flash.display.*; public dynamic class Lvl4MediumMC extends MovieClip { } }//package
Section 265
//Lvl4SmallBomberMC (Lvl4SmallBomberMC) package { import flash.display.*; public dynamic class Lvl4SmallBomberMC extends MovieClip { } }//package
Section 266
//Lvl4SmallFighterMC (Lvl4SmallFighterMC) package { import flash.display.*; public dynamic class Lvl4SmallFighterMC extends MovieClip { } }//package
Section 267
//Lvl4SmallRammerMC (Lvl4SmallRammerMC) package { import flash.display.*; public dynamic class Lvl4SmallRammerMC extends MovieClip { } }//package
Section 268
//MochiAd (MochiAd) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return ("2.2"); } public static function showTimedAd(_arg1:Object):void{ MochiAd.showInterLevelAd(_arg1); } public static function _allowDomains(_arg1:String):String{ var _local2:String; _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } 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 f:Function; 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 (!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; }; 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; lv.lc = name; lv.st = getTimer(); loader = new Loader(); f = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); mc._mochiad_ctr_failed = true; }; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); 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")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function sendHighScore(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{ var _local4:MovieClip; _local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id}); if (!_local4){ return (false); }; _local4.doSend(["sendHighScore", _arg1], _arg2, _arg3); return (true); } 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"){ }; return (_local3); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } 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 unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (!_arg1._mochiad){ return (false); }; 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.")); }; }}; 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_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.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); }; 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 = _local1.loaderInfo.bytesTotal; if ((((_local4 > 0)) || (("number" == "undefined")))){ chk.showing = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ _local3 = true; }; }; }; if ((((_local2 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){ _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 _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 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 _loadCommunicator(_arg1:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var clipname:String; var server:String; var depth:Number; var mc:MovieClip; var lv:URLVariables; var k:String; var lc:LocalConnection; var name:String; var req:URLRequest; var loader:Loader; var options = _arg1; DEFAULTS = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; clipname = ("_mochiad_com_" + options.id); if (!MochiAd._isNetworkAvailable()){ return (null); }; if (clip[clipname]){ return (clip[clipname]); }; server = (options.com_server + options.id); MochiAd._allowDomains(server); delete options.id; delete options.com_server; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, clipname, depth); lv = new URLVariables(); for (k in options) { lv[k] = options[k]; }; 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.name = name; mc.lc = lc; lv.lc = name; mc._id = 0; mc._queue = []; mc.rpcResult = function (_arg1:Object):void{ var _local3:Array; var _local4:Array; var _local5:Number; var _local6:Object; var _local7:Object; _arg1 = parseInt(_arg1.toString()); _local3 = mc._callbacks[_arg1]; if (typeof(_local3) == "undefined"){ return; }; delete mc._callbacks[_arg1]; _local4 = []; _local5 = 2; while (_local5 < _local3.length) { _local4.push(_local3[_local5]); _local5++; }; _local5 = 1; while (_local5 < arguments.length) { _local4.push(arguments[_local5]); _local5++; }; _local6 = _local3[1]; _local7 = _local3[0]; if (((_local7) && ((typeof(_local6) == "string")))){ _local6 = _local7[_local6]; }; if (typeof(_local6) == "function"){ _local6.apply(_local7, _local4); }; }; mc._didConnect = function (_arg1:String):void{ var _local2:Array; var _local3:Function; var _local4:Number; var _local5:Array; mc._endpoint = _arg1; _local2 = mc._queue; delete mc._queue; _local3 = mc.doSend; _local4 = 0; while (_local4 < _local2.length) { _local5 = _local2[_local4]; _local3.apply(this, _local5); _local4++; }; }; mc.doSend = function (_arg1:Array, _arg2:Object, _arg3:Object):void{ var _local5:Number; var _local6:LocalConnection; var _local7:Array; var _local8:Number; if (mc._endpoint == null){ _local7 = []; _local8 = 0; while (_local8 < arguments.length) { _local7.push(arguments[_local8]); _local8++; }; mc._queue.push(_local7); return; }; mc._id = (mc._id + 1); _local5 = mc._id; mc._callbacks[_local5] = [_arg2, ((_arg3) || (_arg2))]; _local6 = new LocalConnection(); _local6.send(mc._endpoint, "rpc", _local5, _arg1); }; mc._callbacks = {}; mc._callbacks[0] = [mc, "_didConnect"]; lv.st = getTimer(); req = new URLRequest((server + ".swf")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader = new Loader(); loader.load(req); mc.addChild(loader); mc._mochiad_com = loader; return (mc); } 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_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 f:Function; var r:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, 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.")); }; }}; 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_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); bar.x = 10; bar.y = (h - 20); 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((w - 20), 0); backing.lineTo((w - 20), 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((w - 20), 0); inside.lineTo((w - 20), 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((w - 20), 0); outline.lineTo((w - 20), 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; f = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; 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; }; 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:Object; var _local10:Number; var _local11:Number; if (!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; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; _local7 = ((100 * _local6) / _local5); _local8 = ((100 * _local3) / chk.ad_msec); _local9 = this._mochiad_bar._inside; _local10 = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); if (!chk.showing){ _local11 = _local2.loaderInfo.bytesTotal; if ((((_local11 > 0)) || (("number" == "undefined")))){ chk.showing = true; chk.started = getTimer(); } else { if (_local3 > chk.ad_timeout){ _local4 = true; }; }; }; if ((((_local3 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){ _local4 = true; }; if (((complete) && (_local4))){ 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{ MochiAd.showPreGameAd(_arg1); } public static function fetchHighScores(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{ var _local4:MovieClip; _local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id}); if (!_local4){ return (false); }; _local4.doSend(["fetchHighScores", _arg1], _arg2, _arg3); return (true); } 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
Section 269
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 270
//OptionNormal (OptionNormal) package { import flash.display.*; public dynamic class OptionNormal extends MovieClip { public function OptionNormal(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 271
//sandTexture (sandTexture) package { import flash.display.*; public dynamic class sandTexture extends Sprite { } }//package
Section 272
//ShieldMC (ShieldMC) package { import flash.display.*; public dynamic class ShieldMC extends MovieClip { public function ShieldMC(){ addFrameScript(9, frame10); } function frame10(){ stop(); } } }//package
Section 273
//Smoke (Smoke) package { import flash.display.*; public dynamic class Smoke extends Sprite { } }//package
Section 274
//Smoke2 (Smoke2) package { import flash.display.*; public dynamic class Smoke2 extends Sprite { } }//package
Section 275
//Smoke3 (Smoke3) package { import flash.display.*; public dynamic class Smoke3 extends MovieClip { public function Smoke3(){ addFrameScript(99, frame100); } function frame100(){ stop(); } } }//package
Section 276
//sndAbsorbing (sndAbsorbing) package { import flash.media.*; public dynamic class sndAbsorbing extends Sound { } }//package
Section 277
//sndBigExplosion (sndBigExplosion) package { import flash.media.*; public dynamic class sndBigExplosion extends Sound { } }//package
Section 278
//sndBossFast (sndBossFast) package { import flash.media.*; public dynamic class sndBossFast extends Sound { } }//package
Section 279
//sndBossSlow (sndBossSlow) package { import flash.media.*; public dynamic class sndBossSlow extends Sound { } }//package
Section 280
//sndBossVeryFast (sndBossVeryFast) package { import flash.media.*; public dynamic class sndBossVeryFast extends Sound { } }//package
Section 281
//sndBossVerySlow (sndBossVerySlow) package { import flash.media.*; public dynamic class sndBossVerySlow extends Sound { } }//package
Section 282
//sndConfirmAbsorb (sndConfirmAbsorb) package { import flash.media.*; public dynamic class sndConfirmAbsorb extends Sound { } }//package
Section 283
//sndEnemyFire (sndEnemyFire) package { import flash.media.*; public dynamic class sndEnemyFire extends Sound { } }//package
Section 284
//sndFriendlyExplosion (sndFriendlyExplosion) package { import flash.media.*; public dynamic class sndFriendlyExplosion extends Sound { } }//package
Section 285
//sndFriendShot (sndFriendShot) package { import flash.media.*; public dynamic class sndFriendShot extends Sound { } }//package
Section 286
//sndHurricane (sndHurricane) package { import flash.media.*; public dynamic class sndHurricane extends Sound { } }//package
Section 287
//sndLvl1Fast (sndLvl1Fast) package { import flash.media.*; public dynamic class sndLvl1Fast extends Sound { } }//package
Section 288
//sndLvl1Slow (sndLvl1Slow) package { import flash.media.*; public dynamic class sndLvl1Slow extends Sound { } }//package
Section 289
//sndLvl2Fast (sndLvl2Fast) package { import flash.media.*; public dynamic class sndLvl2Fast extends Sound { } }//package
Section 290
//sndLvl2Slow (sndLvl2Slow) package { import flash.media.*; public dynamic class sndLvl2Slow extends Sound { } }//package
Section 291
//sndLvl3Fast (sndLvl3Fast) package { import flash.media.*; public dynamic class sndLvl3Fast extends Sound { } }//package
Section 292
//sndLvl3Slow (sndLvl3Slow) package { import flash.media.*; public dynamic class sndLvl3Slow extends Sound { } }//package
Section 293
//sndLvl4Fast (sndLvl4Fast) package { import flash.media.*; public dynamic class sndLvl4Fast extends Sound { } }//package
Section 294
//sndLvl4Slow (sndLvl4Slow) package { import flash.media.*; public dynamic class sndLvl4Slow extends Sound { } }//package
Section 295
//sndMediumExplosion (sndMediumExplosion) package { import flash.media.*; public dynamic class sndMediumExplosion extends Sound { } }//package
Section 296
//sndReflect (sndReflect) package { import flash.media.*; public dynamic class sndReflect extends Sound { } }//package
Section 297
//sndScanAlarm (sndScanAlarm) package { import flash.media.*; public dynamic class sndScanAlarm extends Sound { } }//package
Section 298
//sndSmallExplosion (sndSmallExplosion) package { import flash.media.*; public dynamic class sndSmallExplosion extends Sound { } }//package
Section 299
//sndTutorial (sndTutorial) package { import flash.media.*; public dynamic class sndTutorial extends Sound { } }//package

Library Items

Symbol 1 BitmapUsed by:2
Symbol 2 GraphicUses:1Used by:3
Symbol 3 MovieClipUses:2Used by:4
Symbol 4 MovieClip {button1_mc}Uses:3
Symbol 5 BitmapUsed by:6
Symbol 6 GraphicUses:5Used by:7
Symbol 7 MovieClip {Lvl4BigTurretMC}Uses:6
Symbol 8 BitmapUsed by:9
Symbol 9 GraphicUses:8Used by:10 572
Symbol 10 MovieClipUses:9Used by:11
Symbol 11 MovieClip {BulletRammer}Uses:10
Symbol 12 BitmapUsed by:13
Symbol 13 GraphicUses:12Used by:14
Symbol 14 MovieClip {Lvl3BigTurretMC}Uses:13
Symbol 15 BitmapUsed by:16
Symbol 16 GraphicUses:15Used by:17
Symbol 17 MovieClip {Lvl2BossEnemy_turret}Uses:16
Symbol 18 BitmapUsed by:19
Symbol 19 GraphicUses:18Used by:20 507
Symbol 20 MovieClip {Lvl2Small1}Uses:19
Symbol 21 BitmapUsed by:22
Symbol 22 GraphicUses:21Used by:23
Symbol 23 MovieClip {Lvl1BossEnemy_ball}Uses:22
Symbol 24 ShapeTweeningUsed by:26
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClip {Smoke3}Uses:24 25
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClip {DamageSmoke}Uses:27
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {Smoke2}Uses:29
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClip {Smoke}Uses:31
Symbol 33 MovieClip {EnemyLackey3}
Symbol 34 MovieClip {EnemyLackey2}
Symbol 35 BitmapUsed by:36
Symbol 36 GraphicUses:35Used by:37
Symbol 37 MovieClip {Lvl1MediumEnemy}Uses:36Used by:38  Timeline
Symbol 38 MovieClip {EnemyLackey1}Uses:37
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:41
Symbol 41 MovieClip {BulletStickFriendly}Uses:40
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClipUses:42Used by:44
Symbol 44 MovieClip {BulletDrillFriendly}Uses:43
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:47
Symbol 47 MovieClip {BulletDrill}Uses:46
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClipUses:48Used by:50 55
Symbol 50 MovieClip {BulletStickRedFriendly}Uses:49
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:53 54
Symbol 53 MovieClip {BulletEnergyMissileFriendly}Uses:52
Symbol 54 MovieClip {BulletEnergyMissile}Uses:52
Symbol 55 MovieClip {BulletStickRed}Uses:49
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClipUses:56Used by:58
Symbol 58 MovieClip {BulletStick}Uses:57
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClipUses:59Used by:61 62 63
Symbol 61 MovieClip {BulletRadarFriendly}Uses:60
Symbol 62 MovieClip {BulletRadarBoss4}Uses:60
Symbol 63 MovieClip {BulletRadar}Uses:60
Symbol 64 GraphicUsed by:65
Symbol 65 MovieClipUses:64Used by:66
Symbol 66 MovieClip {BulletPointyNormal}Uses:65
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:67Used by:69
Symbol 69 MovieClip {BulletPointyBlue}Uses:68
Symbol 70 GraphicUsed by:71
Symbol 71 MovieClip {BulletPointy}Uses:70
Symbol 72 GraphicUsed by:73
Symbol 73 MovieClip {BulletSimple}Uses:72
Symbol 74 ShapeTweeningUsed by:77
Symbol 75 ShapeTweeningUsed by:77
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClip {EnemyStar}Uses:74 75 76
Symbol 78 GraphicUsed by:79
Symbol 79 MovieClip {BulletV}Uses:78
Symbol 80 BitmapUsed by:81
Symbol 81 GraphicUses:80Used by:86 293
Symbol 82 BitmapUsed by:83
Symbol 83 GraphicUses:82Used by:86
Symbol 84 BitmapUsed by:85
Symbol 85 GraphicUses:84Used by:86
Symbol 86 MovieClip {EnemyFairy}Uses:81 83 85
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:87Used by:89 272
Symbol 89 MovieClip {OptionNormal}Uses:88
Symbol 90 GraphicUsed by:91
Symbol 91 MovieClipUses:90Used by:92
Symbol 92 MovieClip {BulletRockFriendly}Uses:91
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:95
Symbol 95 MovieClip {BulletRock}Uses:94
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClipUses:96Used by:98
Symbol 98 MovieClip {BulletSimpleMissileFriendly}Uses:97
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:99Used by:101
Symbol 101 MovieClip {BulletSimpleMissile}Uses:100
Symbol 102 GraphicUsed by:106
Symbol 103 FontUsed by:104 105 238 240 241 243 245 246 247 248 249 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 273 274 280 294 301 464 626 627 628 631 636 651 652 653 655 656 657 658 659 660 661 662 663 673 674 675 676 677 678 679 680 681 682 688 689 690 691 692 693 694 695 697 698 699 700 701 702 703 704 706 707 708 710 713 726 727 728 729
Symbol 104 TextUses:103Used by:106
Symbol 105 TextUses:103Used by:106
Symbol 106 MovieClipUses:102 104 105Used by:116
Symbol 107 GraphicUsed by:112
Symbol 108 GraphicUsed by:112
Symbol 109 GraphicUsed by:110
Symbol 110 MovieClipUses:109Used by:112
Symbol 111 GraphicUsed by:112
Symbol 112 MovieClipUses:107 108 110 111Used by:116 503
Symbol 113 BitmapUsed by:114
Symbol 114 GraphicUses:113Used by:115
Symbol 115 MovieClipUses:114Used by:116
Symbol 116 MovieClip {classes.Lvl2Scanner}Uses:106 112 115
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClipUses:117Used by:119
Symbol 119 MovieClip {BulletSquareArrowFriendly}Uses:118
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClipUses:120Used by:122
Symbol 122 MovieClip {BulletGlowCircleFriendly}Uses:121
Symbol 123 GraphicUsed by:124
Symbol 124 MovieClipUses:123Used by:125 126
Symbol 125 MovieClip {BulletGlowCircle2Friendly}Uses:124
Symbol 126 MovieClip {BulletGlowCircle2}Uses:124
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClipUses:127Used by:129
Symbol 129 MovieClip {BulletGlowCircle}Uses:128
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:132
Symbol 132 MovieClip {BulletSquareArrow}Uses:131
Symbol 133 GraphicUsed by:134
Symbol 134 MovieClipUses:133Used by:135
Symbol 135 MovieClip {LineParticle}Uses:134
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136Used by:138 139 140
Symbol 138 MovieClip {BulletCrescentFriendly}Uses:137
Symbol 139 MovieClip {BulletCrescentBoss4}Uses:137
Symbol 140 MovieClip {BulletCrescent}Uses:137
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:141Used by:143 144 145
Symbol 143 MovieClip {BulletCloverFriendly}Uses:142
Symbol 144 MovieClip {BulletCloverBoss4}Uses:142
Symbol 145 MovieClip {BulletClover}Uses:142
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClipUses:146Used by:148 149 150
Symbol 148 MovieClip {BulletGlowOvalFriendly}Uses:147
Symbol 149 MovieClip {BulletGlowOvalBoss4}Uses:147
Symbol 150 MovieClip {BulletGlowOval}Uses:147
Symbol 151 GraphicUsed by:152
Symbol 152 MovieClipUses:151Used by:153 154 155
Symbol 153 MovieClip {BulletDoughnutFriendly}Uses:152
Symbol 154 MovieClip {BulletDoughnutBoss4}Uses:152
Symbol 155 MovieClip {BulletDoughnut}Uses:152
Symbol 156 GraphicUsed by:157
Symbol 157 MovieClipUses:156Used by:158 159
Symbol 158 MovieClip {BulletElegantFriendly}Uses:157
Symbol 159 MovieClip {BulletElegant}Uses:157
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:160Used by:162 163 164 165
Symbol 162 MovieClip {BulletSakuraFriendly}Uses:161
Symbol 163 MovieClip {BulletSakuraOrange}Uses:161
Symbol 164 MovieClip {BulletSakuraBlue}Uses:161
Symbol 165 MovieClip {BulletSakuraRed}Uses:161
Symbol 166 GraphicUsed by:167
Symbol 167 MovieClipUses:166Used by:168 169 170 171
Symbol 168 MovieClip {BulletArrowFriendly}Uses:167
Symbol 169 MovieClip {BulletArrowOrange}Uses:167
Symbol 170 MovieClip {BulletArrowBlue}Uses:167
Symbol 171 MovieClip {BulletArrowRed}Uses:167
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClipUses:172Used by:174 175
Symbol 174 MovieClip {BulletSmallDoughnutFriendly}Uses:173
Symbol 175 MovieClip {BulletSmallDoughnut}Uses:173
Symbol 176 GraphicUsed by:177
Symbol 177 MovieClipUses:176Used by:178 179
Symbol 178 MovieClip {BulletCrystalBallFriendly}Uses:177
Symbol 179 MovieClip {BulletCrystalBall}Uses:177
Symbol 180 GraphicUsed by:183
Symbol 181 FontUsed by:182
Symbol 182 TextUses:181Used by:183
Symbol 183 MovieClip {FairyDialogue3}Uses:180 182
Symbol 184 GraphicUsed by:189 194 200 209
Symbol 185 FontUsed by:186 187 188 190 191 192 193 195 196 197 198 199 201 202 203 204 205 206 207 208
Symbol 186 TextUses:185Used by:189
Symbol 187 TextUses:185Used by:189
Symbol 188 TextUses:185Used by:189
Symbol 189 MovieClip {FairyDialogue2}Uses:184 186 187 188
Symbol 190 TextUses:185Used by:194
Symbol 191 TextUses:185Used by:194
Symbol 192 TextUses:185Used by:194
Symbol 193 TextUses:185Used by:194
Symbol 194 MovieClip {Boss4Dialogue2}Uses:184 190 191 192 193
Symbol 195 TextUses:185Used by:200
Symbol 196 TextUses:185Used by:200
Symbol 197 TextUses:185Used by:200
Symbol 198 TextUses:185Used by:200
Symbol 199 TextUses:185Used by:200
Symbol 200 MovieClip {Boss4Dialogue}Uses:184 195 196 197 198 199
Symbol 201 TextUses:185Used by:209
Symbol 202 TextUses:185Used by:209
Symbol 203 TextUses:185Used by:209
Symbol 204 TextUses:185Used by:209
Symbol 205 TextUses:185Used by:209
Symbol 206 TextUses:185Used by:209
Symbol 207 TextUses:185Used by:209
Symbol 208 TextUses:185Used by:209
Symbol 209 MovieClip {FairyDialogue}Uses:184 201 202 203 204 205 206 207 208
Symbol 210 GraphicUsed by:211
Symbol 211 MovieClipUses:210Used by:212
Symbol 212 MovieClip {ShieldMC}Uses:211
Symbol 213 BitmapUsed by:214 696
Symbol 214 GraphicUses:213Used by:219
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215Used by:219
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:219
Symbol 219 MovieClipUses:214 216 218Used by:220
Symbol 220 MovieClip {Fairy}Uses:219
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClipUses:221Used by:231 233
Symbol 223 BitmapUsed by:224 228 229 230
Symbol 224 GraphicUses:223Used by:231 233
Symbol 225 FontUsed by:226 227
Symbol 226 TextUses:225Used by:231 233
Symbol 227 TextUses:225Used by:231 233
Symbol 228 GraphicUses:223Used by:231 233
Symbol 229 GraphicUses:223Used by:231 233
Symbol 230 GraphicUses:223Used by:231 233
Symbol 231 MovieClip {BossApproachNoSound}Uses:222 224 226 227 228 229 230
Symbol 232 SoundUsed by:233
Symbol 233 MovieClip {BossApproach}Uses:222 224 226 227 232 228 229 230
Symbol 234 GraphicUsed by:235
Symbol 235 MovieClipUses:234Used by:236
Symbol 236 MovieClip {game2_fla.tutorialarrow_170}Uses:235Used by:276
Symbol 237 GraphicUsed by:276
Symbol 238 TextUses:103Used by:276
Symbol 239 GraphicUsed by:242 275
Symbol 240 TextUses:103Used by:242
Symbol 241 TextUses:103Used by:242
Symbol 242 MovieClipUses:239 240 241Used by:272
Symbol 243 TextUses:103Used by:272
Symbol 244 GraphicUsed by:272
Symbol 245 TextUses:103Used by:272
Symbol 246 TextUses:103Used by:272
Symbol 247 TextUses:103Used by:272
Symbol 248 TextUses:103Used by:272
Symbol 249 TextUses:103Used by:272
Symbol 250 GraphicUsed by:272
Symbol 251 TextUses:103Used by:272
Symbol 252 TextUses:103Used by:272
Symbol 253 TextUses:103Used by:272
Symbol 254 TextUses:103Used by:272
Symbol 255 TextUses:103Used by:272
Symbol 256 TextUses:103Used by:272
Symbol 257 TextUses:103Used by:272
Symbol 258 TextUses:103Used by:272
Symbol 259 TextUses:103Used by:272
Symbol 260 TextUses:103Used by:272
Symbol 261 TextUses:103Used by:272
Symbol 262 TextUses:103Used by:272
Symbol 263 TextUses:103Used by:272
Symbol 264 TextUses:103Used by:272
Symbol 265 TextUses:103Used by:272
Symbol 266 TextUses:103Used by:272
Symbol 267 TextUses:103Used by:272
Symbol 268 TextUses:103Used by:272
Symbol 269 TextUses:103Used by:272
Symbol 270 TextUses:103Used by:272
Symbol 271 TextUses:103Used by:272
Symbol 272 MovieClip {game2_fla.tutorial_inside_172}Uses:242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 88 261 262 263 264 265 266 267 268 269 270 271Used by:276
Symbol 273 TextUses:103Used by:275
Symbol 274 TextUses:103Used by:275
Symbol 275 MovieClipUses:239 273 274Used by:276
Symbol 276 MovieClip {HowToPlayPanel}Uses:236 237 238 272 275
Symbol 277 GraphicUsed by:289
Symbol 278 GraphicUsed by:279
Symbol 279 MovieClipUses:278Used by:289
Symbol 280 TextUses:103Used by:289
Symbol 281 GraphicUsed by:282
Symbol 282 MovieClipUses:281Used by:289
Symbol 283 GraphicUsed by:284
Symbol 284 MovieClipUses:283Used by:289
Symbol 285 GraphicUsed by:286
Symbol 286 MovieClipUses:285Used by:289
Symbol 287 GraphicUsed by:288
Symbol 288 MovieClipUses:287Used by:289
Symbol 289 MovieClip {BossLifeMC}Uses:277 279 280 282 284 286 288
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:292
Symbol 292 MovieClip {sandTexture}Uses:291Used by:667
Symbol 293 MovieClip {FrozenFairy_inside}Uses:81Used by:538
Symbol 294 EditableTextUses:103Used by:Timeline
Symbol 295 GraphicUsed by:296
Symbol 296 MovieClip {bg0l_1}Uses:295Used by:Timeline
Symbol 297 GraphicUsed by:298
Symbol 298 MovieClip {bg0m_1}Uses:297Used by:Timeline
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClip {bg0s_1}Uses:299Used by:Timeline
Symbol 301 TextUses:103Used by:302
Symbol 302 MovieClip {bg0s_2}Uses:301Used by:Timeline
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClip {bg1l_1}Uses:303Used by:Timeline
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClip {bg1l_2}Uses:305Used by:Timeline
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClip {bg1l_3}Uses:307Used by:Timeline
Symbol 309 GraphicUsed by:310
Symbol 310 MovieClip {bg1l_4}Uses:309Used by:Timeline
Symbol 311 GraphicUsed by:312
Symbol 312 MovieClip {bg1m_1}Uses:311Used by:Timeline
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClip {bg1m_2}Uses:313Used by:Timeline
Symbol 315 GraphicUsed by:316
Symbol 316 MovieClip {bg1m_3}Uses:315Used by:Timeline
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClip {bg1m_4}Uses:317Used by:Timeline
Symbol 319 GraphicUsed by:320
Symbol 320 MovieClip {bg1m_5}Uses:319Used by:Timeline
Symbol 321 GraphicUsed by:322
Symbol 322 MovieClip {bg1m_6}Uses:321Used by:Timeline
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClip {bg1s_1}Uses:323Used by:Timeline
Symbol 325 GraphicUsed by:326
Symbol 326 MovieClip {bg1s_2}Uses:325Used by:Timeline
Symbol 327 GraphicUsed by:328
Symbol 328 MovieClip {bg1s_3}Uses:327Used by:Timeline
Symbol 329 GraphicUsed by:330
Symbol 330 MovieClip {bg1s_4}Uses:329Used by:Timeline
Symbol 331 GraphicUsed by:332
Symbol 332 MovieClip {bg1s_5}Uses:331Used by:Timeline
Symbol 333 GraphicUsed by:334
Symbol 334 MovieClip {bg1s_6}Uses:333Used by:Timeline
Symbol 335 GraphicUsed by:336
Symbol 336 MovieClip {bg1s_7}Uses:335Used by:Timeline
Symbol 337 GraphicUsed by:338
Symbol 338 MovieClip {bg1s_8}Uses:337Used by:Timeline
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClip {bg1s_9}Uses:339Used by:Timeline
Symbol 341 GraphicUsed by:342
Symbol 342 MovieClip {bg1s_10}Uses:341Used by:Timeline
Symbol 343 GraphicUsed by:344
Symbol 344 MovieClip {bg2l_1}Uses:343Used by:Timeline
Symbol 345 GraphicUsed by:346
Symbol 346 MovieClip {bg2l_2}Uses:345Used by:Timeline
Symbol 347 GraphicUsed by:348
Symbol 348 MovieClip {bg2l_3}Uses:347Used by:Timeline
Symbol 349 GraphicUsed by:350
Symbol 350 MovieClip {bg2l_4}Uses:349Used by:Timeline
Symbol 351 GraphicUsed by:352
Symbol 352 MovieClip {bg2m_1}Uses:351Used by:Timeline
Symbol 353 GraphicUsed by:354
Symbol 354 MovieClip {bg2m_2}Uses:353Used by:Timeline
Symbol 355 GraphicUsed by:356
Symbol 356 MovieClip {bg2m_3}Uses:355Used by:Timeline
Symbol 357 GraphicUsed by:358
Symbol 358 MovieClip {bg2m_4}Uses:357Used by:Timeline
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClip {bg2m_5}Uses:359Used by:Timeline
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClip {bg2m_6}Uses:361Used by:Timeline
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClip {bg2s_1}Uses:363Used by:Timeline
Symbol 365 GraphicUsed by:366
Symbol 366 MovieClip {bg2s_2}Uses:365Used by:Timeline
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClip {bg2s_3}Uses:367Used by:Timeline
Symbol 369 GraphicUsed by:370
Symbol 370 MovieClip {bg2s_4}Uses:369Used by:Timeline
Symbol 371 GraphicUsed by:372
Symbol 372 MovieClip {bg2s_5}Uses:371Used by:Timeline
Symbol 373 GraphicUsed by:374
Symbol 374 MovieClip {bg2s_6}Uses:373Used by:Timeline
Symbol 375 GraphicUsed by:376
Symbol 376 MovieClip {bg2s_7}Uses:375Used by:Timeline
Symbol 377 GraphicUsed by:378
Symbol 378 MovieClip {bg2s_8}Uses:377Used by:Timeline
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClip {bg2s_9}Uses:379Used by:Timeline
Symbol 381 GraphicUsed by:382
Symbol 382 MovieClip {bg2s_10}Uses:381Used by:Timeline
Symbol 383 GraphicUsed by:384
Symbol 384 MovieClip {bg3l_1}Uses:383Used by:Timeline
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClip {bg3l_2}Uses:385Used by:Timeline
Symbol 387 GraphicUsed by:388
Symbol 388 MovieClip {bg3l_3}Uses:387Used by:Timeline
Symbol 389 GraphicUsed by:390
Symbol 390 MovieClip {bg3l_4}Uses:389Used by:Timeline
Symbol 391 GraphicUsed by:392
Symbol 392 MovieClip {bg3m_1}Uses:391Used by:Timeline
Symbol 393 GraphicUsed by:394
Symbol 394 MovieClip {bg3m_2}Uses:393Used by:Timeline
Symbol 395 GraphicUsed by:396
Symbol 396 MovieClip {bg3m_3}Uses:395Used by:Timeline
Symbol 397 GraphicUsed by:398
Symbol 398 MovieClip {bg3m_4}Uses:397Used by:Timeline
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClip {bg3m_5}Uses:399Used by:Timeline
Symbol 401 GraphicUsed by:402
Symbol 402 MovieClip {bg3m_6}Uses:401Used by:Timeline
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClip {bg3s_1}Uses:403Used by:Timeline
Symbol 405 GraphicUsed by:406
Symbol 406 MovieClip {bg3s_2}Uses:405Used by:Timeline
Symbol 407 GraphicUsed by:408
Symbol 408 MovieClip {bg3s_3}Uses:407Used by:Timeline
Symbol 409 GraphicUsed by:410
Symbol 410 MovieClip {bg3s_4}Uses:409Used by:Timeline
Symbol 411 GraphicUsed by:412
Symbol 412 MovieClip {bg3s_5}Uses:411Used by:Timeline
Symbol 413 GraphicUsed by:414
Symbol 414 MovieClip {bg3s_6}Uses:413Used by:Timeline
Symbol 415 GraphicUsed by:416
Symbol 416 MovieClip {bg3s_7}Uses:415Used by:Timeline
Symbol 417 GraphicUsed by:418
Symbol 418 MovieClip {bg3s_8}Uses:417Used by:Timeline
Symbol 419 GraphicUsed by:420
Symbol 420 MovieClip {bg3s_9}Uses:419Used by:Timeline
Symbol 421 GraphicUsed by:422
Symbol 422 MovieClip {bg3s_10}Uses:421Used by:Timeline
Symbol 423 GraphicUsed by:424
Symbol 424 MovieClip {bg4l_1}Uses:423Used by:Timeline
Symbol 425 GraphicUsed by:426
Symbol 426 MovieClip {bg4l_2}Uses:425Used by:Timeline
Symbol 427 GraphicUsed by:428
Symbol 428 MovieClip {bg4l_3}Uses:427Used by:Timeline
Symbol 429 GraphicUsed by:430
Symbol 430 MovieClip {bg4l_4}Uses:429Used by:Timeline
Symbol 431 GraphicUsed by:432
Symbol 432 MovieClip {bg4m_1}Uses:431Used by:Timeline
Symbol 433 GraphicUsed by:434
Symbol 434 MovieClip {bg4m_2}Uses:433Used by:Timeline
Symbol 435 GraphicUsed by:436
Symbol 436 MovieClip {bg4m_3}Uses:435Used by:Timeline
Symbol 437 GraphicUsed by:438
Symbol 438 MovieClip {bg4m_4}Uses:437Used by:Timeline
Symbol 439 GraphicUsed by:440
Symbol 440 MovieClip {bg4m_5}Uses:439Used by:Timeline
Symbol 441 GraphicUsed by:442
Symbol 442 MovieClip {bg4m_6}Uses:441Used by:Timeline
Symbol 443 GraphicUsed by:444
Symbol 444 MovieClip {bg4s_1}Uses:443Used by:Timeline
Symbol 445 GraphicUsed by:446
Symbol 446 MovieClip {bg4s_2}Uses:445Used by:Timeline
Symbol 447 GraphicUsed by:448
Symbol 448 MovieClip {bg4s_3}Uses:447Used by:Timeline
Symbol 449 GraphicUsed by:450
Symbol 450 MovieClip {bg4s_4}Uses:449Used by:Timeline
Symbol 451 GraphicUsed by:452
Symbol 452 MovieClip {bg4s_5}Uses:451Used by:Timeline
Symbol 453 GraphicUsed by:454
Symbol 454 MovieClip {bg4s_6}Uses:453Used by:Timeline
Symbol 455 GraphicUsed by:456
Symbol 456 MovieClip {bg4s_7}Uses:455Used by:Timeline
Symbol 457 GraphicUsed by:458
Symbol 458 MovieClip {bg4s_8}Uses:457Used by:Timeline
Symbol 459 GraphicUsed by:460
Symbol 460 MovieClip {bg4s_9}Uses:459Used by:Timeline
Symbol 461 GraphicUsed by:462
Symbol 462 MovieClip {bg4s_10}Uses:461Used by:Timeline
Symbol 463 GraphicUsed by:465
Symbol 464 TextUses:103Used by:465
Symbol 465 MovieClip {Level0Pic}Uses:463 464Used by:Timeline
Symbol 466 BitmapUsed by:467
Symbol 467 GraphicUses:466Used by:468
Symbol 468 MovieClip {Level1Pic}Uses:467Used by:Timeline
Symbol 469 BitmapUsed by:470
Symbol 470 GraphicUses:469Used by:471
Symbol 471 MovieClip {Level2Pic}Uses:470Used by:Timeline
Symbol 472 BitmapUsed by:473
Symbol 473 GraphicUses:472Used by:474
Symbol 474 MovieClip {Level3Pic}Uses:473Used by:Timeline
Symbol 475 BitmapUsed by:476
Symbol 476 GraphicUses:475Used by:477
Symbol 477 MovieClip {Level4Pic}Uses:476Used by:Timeline
Symbol 478 BitmapUsed by:479
Symbol 479 GraphicUses:478Used by:480
Symbol 480 MovieClipUses:479Used by:483
Symbol 481 BitmapUsed by:482
Symbol 482 GraphicUses:481Used by:483
Symbol 483 MovieClip {Lvl1BigEnemy}Uses:480 482Used by:Timeline
Symbol 484 BitmapUsed by:485
Symbol 485 GraphicUses:484Used by:486
Symbol 486 MovieClip {Lvl1BossEnemy}Uses:485Used by:Timeline
Symbol 487 BitmapUsed by:488
Symbol 488 GraphicUses:487Used by:489
Symbol 489 MovieClip {Lvl1SmallEnemy1}Uses:488Used by:Timeline
Symbol 490 BitmapUsed by:491
Symbol 491 GraphicUses:490Used by:492
Symbol 492 MovieClip {Lvl1SmallEnemy2}Uses:491Used by:Timeline
Symbol 493 BitmapUsed by:494
Symbol 494 GraphicUses:493Used by:495
Symbol 495 MovieClip {Lvl1SmallEnemy3}Uses:494Used by:Timeline
Symbol 496 BitmapUsed by:497
Symbol 497 GraphicUses:496Used by:498
Symbol 498 MovieClip {Lvl2BigMC}Uses:497Used by:Timeline
Symbol 499 BitmapUsed by:500
Symbol 500 GraphicUses:499Used by:503
Symbol 501 GraphicUsed by:502
Symbol 502 MovieClipUses:501Used by:503
Symbol 503 MovieClip {Lvl2BossEnemy}Uses:112 500 502Used by:Timeline
Symbol 504 BitmapUsed by:505
Symbol 505 GraphicUses:504Used by:506
Symbol 506 MovieClip {Lvl2MediumMC}Uses:505Used by:Timeline
Symbol 507 MovieClip {Lvl2SmallInterceptorMC}Uses:19Used by:Timeline
Symbol 508 BitmapUsed by:509
Symbol 509 GraphicUses:508Used by:510
Symbol 510 MovieClip {Lvl2SmallPursuitMC}Uses:509Used by:Timeline
Symbol 511 BitmapUsed by:512
Symbol 512 GraphicUses:511Used by:513
Symbol 513 MovieClip {Lvl2SmallScoutMC}Uses:512Used by:Timeline
Symbol 514 BitmapUsed by:515
Symbol 515 GraphicUses:514Used by:520
Symbol 516 BitmapUsed by:517
Symbol 517 GraphicUses:516Used by:518
Symbol 518 MovieClipUses:517Used by:519
Symbol 519 MovieClipUses:518Used by:520 523 526 529 532
Symbol 520 MovieClip {Lvl3BigMC}Uses:515 519Used by:Timeline
Symbol 521 BitmapUsed by:522
Symbol 522 GraphicUses:521Used by:523
Symbol 523 MovieClip {Lvl3MediumMC}Uses:522 519Used by:Timeline
Symbol 524 BitmapUsed by:525
Symbol 525 GraphicUses:524Used by:526
Symbol 526 MovieClip {Lvl3SmallConiferousMC}Uses:525 519Used by:Timeline
Symbol 527 BitmapUsed by:528
Symbol 528 GraphicUses:527Used by:529
Symbol 529 MovieClip {Lvl3SmallRaptorialMC}Uses:528 519Used by:Timeline
Symbol 530 BitmapUsed by:531
Symbol 531 GraphicUses:530Used by:532
Symbol 532 MovieClip {Lvl3SmallScavengingMC}Uses:531 519Used by:Timeline
Symbol 533 BitmapUsed by:534
Symbol 534 GraphicUses:533Used by:535
Symbol 535 MovieClip {Lvl4BigMC}Uses:534Used by:Timeline
Symbol 536 BitmapUsed by:537
Symbol 537 GraphicUses:536Used by:562
Symbol 538 MovieClipUses:293Used by:562
Symbol 539 BitmapUsed by:540
Symbol 540 GraphicUses:539Used by:561
Symbol 541 BitmapUsed by:542
Symbol 542 GraphicUses:541Used by:561
Symbol 543 BitmapUsed by:544
Symbol 544 GraphicUses:543Used by:561
Symbol 545 BitmapUsed by:546
Symbol 546 GraphicUses:545Used by:561
Symbol 547 BitmapUsed by:548
Symbol 548 GraphicUses:547Used by:561
Symbol 549 BitmapUsed by:550
Symbol 550 GraphicUses:549Used by:561
Symbol 551 BitmapUsed by:552
Symbol 552 GraphicUses:551Used by:561
Symbol 553 BitmapUsed by:554
Symbol 554 GraphicUses:553Used by:561
Symbol 555 BitmapUsed by:556
Symbol 556 GraphicUses:555Used by:561
Symbol 557 BitmapUsed by:558
Symbol 558 GraphicUses:557Used by:561
Symbol 559 BitmapUsed by:560
Symbol 560 GraphicUses:559Used by:561
Symbol 561 MovieClip {game2_fla.Lvl4BossMC_hatch_117}Uses:540 542 544 546 548 550 552 554 556 558 560Used by:562
Symbol 562 MovieClip {Lvl4BossMC}Uses:537 538 561Used by:Timeline
Symbol 563 BitmapUsed by:564
Symbol 564 GraphicUses:563Used by:565
Symbol 565 MovieClip {Lvl4MediumMC}Uses:564Used by:Timeline
Symbol 566 BitmapUsed by:567
Symbol 567 GraphicUses:566Used by:568
Symbol 568 MovieClip {Lvl4SmallBomberMC}Uses:567Used by:Timeline
Symbol 569 BitmapUsed by:570
Symbol 570 GraphicUses:569Used by:571
Symbol 571 MovieClip {Lvl4SmallFighterMC}Uses:570Used by:Timeline
Symbol 572 MovieClip {Lvl4SmallRammerMC}Uses:9Used by:Timeline
Symbol 573 GraphicUsed by:598
Symbol 574 Sound {sndAbsorbing}Used by:598
Symbol 575 Sound {sndBigExplosion}Used by:598
Symbol 576 Sound {sndFriendShot}Used by:598
Symbol 577 Sound {sndConfirmAbsorb}Used by:598
Symbol 578 Sound {sndFriendlyExplosion}Used by:598
Symbol 579 Sound {sndEnemyFire}Used by:598
Symbol 580 Sound {sndHurricane}Used by:598
Symbol 581 Sound {sndMediumExplosion}Used by:598
Symbol 582 Sound {sndReflect}Used by:598
Symbol 583 Sound {sndSmallExplosion}Used by:598
Symbol 584 Sound {sndBossFast}Used by:598
Symbol 585 Sound {sndBossSlow}Used by:598
Symbol 586 Sound {sndBossVeryFast}Used by:598
Symbol 587 Sound {sndBossVerySlow}Used by:598
Symbol 588 Sound {sndLvl1Fast}Used by:598
Symbol 589 Sound {sndLvl1Slow}Used by:598
Symbol 590 Sound {sndLvl2Fast}Used by:598
Symbol 591 Sound {sndLvl2Slow}Used by:598
Symbol 592 Sound {sndLvl3Fast}Used by:598
Symbol 593 Sound {sndLvl3Slow}Used by:598
Symbol 594 Sound {sndLvl4Fast}Used by:598
Symbol 595 Sound {sndLvl4Slow}Used by:598
Symbol 596 Sound {sndScanAlarm}Used by:598
Symbol 597 Sound {sndTutorial}Used by:598
Symbol 598 MovieClip {game2_fla.musicLoad_122}Uses:573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597Used by:Timeline
Symbol 599 SoundUsed by:607
Symbol 600 GraphicUsed by:607
Symbol 601 GraphicUsed by:607
Symbol 602 GraphicUsed by:604 607
Symbol 603 GraphicUsed by:607
Symbol 604 MovieClipUses:602Used by:607
Symbol 605 GraphicUsed by:606
Symbol 606 MovieClipUses:605Used by:607
Symbol 607 MovieClip {game2_fla.mc_logo_animation_123}Uses:599 600 601 602 603 604 606Used by:Timeline
Symbol 608 BitmapUsed by:609
Symbol 609 GraphicUses:608Used by:610
Symbol 610 MovieClipUses:609Used by:617
Symbol 611 BitmapUsed by:612
Symbol 612 GraphicUses:611Used by:613
Symbol 613 MovieClipUses:612Used by:617
Symbol 614 BitmapUsed by:615
Symbol 615 GraphicUses:614Used by:616
Symbol 616 MovieClipUses:615Used by:617
Symbol 617 MovieClip {game2_fla.menuAnim_127}Uses:610 613 616Used by:634
Symbol 618 BitmapUsed by:619
Symbol 619 GraphicUses:618Used by:620
Symbol 620 MovieClipUses:619Used by:621
Symbol 621 MovieClip {game2_fla.button2_mc_131}Uses:620Used by:634
Symbol 622 BitmapUsed by:623
Symbol 623 GraphicUses:622Used by:624
Symbol 624 MovieClipUses:623Used by:625
Symbol 625 MovieClipUses:624Used by:634 705
Symbol 626 TextUses:103Used by:629
Symbol 627 TextUses:103Used by:629
Symbol 628 TextUses:103Used by:629
Symbol 629 MovieClipUses:626 627 628Used by:634
Symbol 630 GraphicUsed by:632 730
Symbol 631 TextUses:103Used by:632
Symbol 632 MovieClipUses:630 631Used by:633
Symbol 633 MovieClipUses:632Used by:634
Symbol 634 MovieClip {game2_fla.menuMC_126}Uses:617 621 625 629 633Used by:Timeline
Symbol 635 GraphicUsed by:638
Symbol 636 TextUses:103Used by:638
Symbol 637 GraphicUsed by:638
Symbol 638 MovieClip {game2_fla.soundButton_138}Uses:635 636 637Used by:Timeline
Symbol 639 BitmapUsed by:640
Symbol 640 GraphicUses:639Used by:641
Symbol 641 MovieClipUses:640Used by:667
Symbol 642 BitmapUsed by:643
Symbol 643 GraphicUses:642Used by:644
Symbol 644 MovieClipUses:643Used by:667
Symbol 645 BitmapUsed by:646
Symbol 646 GraphicUses:645Used by:647
Symbol 647 MovieClipUses:646Used by:667
Symbol 648 GraphicUsed by:649
Symbol 649 MovieClipUses:648Used by:666
Symbol 650 GraphicUsed by:654
Symbol 651 TextUses:103Used by:654
Symbol 652 TextUses:103Used by:654
Symbol 653 TextUses:103Used by:654
Symbol 654 MovieClipUses:650 651 652 653Used by:666
Symbol 655 TextUses:103Used by:666
Symbol 656 TextUses:103Used by:666
Symbol 657 TextUses:103Used by:666
Symbol 658 TextUses:103Used by:666
Symbol 659 TextUses:103Used by:666
Symbol 660 TextUses:103Used by:666
Symbol 661 TextUses:103Used by:666
Symbol 662 TextUses:103Used by:666
Symbol 663 TextUses:103Used by:666
Symbol 664 GraphicUsed by:665
Symbol 665 MovieClipUses:664Used by:666
Symbol 666 MovieClip {game2_fla.difficultychoicemenu_144}Uses:649 654 655 656 657 658 659 660 661 662 663 665Used by:667
Symbol 667 MovieClip {game2_fla.introSequence_139}Uses:641 644 647 292 666Used by:Timeline
Symbol 668 GraphicUsed by:671
Symbol 669 FontUsed by:670
Symbol 670 EditableTextUses:669Used by:671
Symbol 671 MovieClip {game2_fla.gameField_148}Uses:668 670Used by:Timeline
Symbol 672 GraphicUsed by:705
Symbol 673 TextUses:103Used by:705
Symbol 674 TextUses:103Used by:705
Symbol 675 TextUses:103Used by:705
Symbol 676 TextUses:103Used by:705
Symbol 677 TextUses:103Used by:705
Symbol 678 TextUses:103Used by:705
Symbol 679 TextUses:103Used by:705
Symbol 680 TextUses:103Used by:705
Symbol 681 TextUses:103Used by:705
Symbol 682 TextUses:103Used by:705
Symbol 683 GraphicUsed by:687
Symbol 684 GraphicUsed by:685
Symbol 685 MovieClipUses:684Used by:687
Symbol 686 GraphicUsed by:687
Symbol 687 MovieClip {game2_fla.AbsorbInterface_150}Uses:683 685 686Used by:705
Symbol 688 TextUses:103Used by:705
Symbol 689 EditableTextUses:103Used by:705
Symbol 690 EditableTextUses:103Used by:705
Symbol 691 EditableTextUses:103Used by:705
Symbol 692 EditableTextUses:103Used by:705
Symbol 693 EditableTextUses:103Used by:705
Symbol 694 EditableTextUses:103Used by:705
Symbol 695 TextUses:103Used by:705
Symbol 696 GraphicUses:213Used by:705
Symbol 697 TextUses:103Used by:705
Symbol 698 EditableTextUses:103Used by:705
Symbol 699 TextUses:103Used by:705
Symbol 700 EditableTextUses:103Used by:705
Symbol 701 TextUses:103Used by:705
Symbol 702 EditableTextUses:103Used by:705
Symbol 703 TextUses:103Used by:705
Symbol 704 TextUses:103Used by:705
Symbol 705 MovieClip {game2_fla.treebarkcopy_149}Uses:672 625 673 674 675 676 677 678 679 680 681 682 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704Used by:Timeline
Symbol 706 TextUses:103Used by:716
Symbol 707 EditableTextUses:103Used by:716
Symbol 708 TextUses:103Used by:716
Symbol 709 GraphicUsed by:712 714
Symbol 710 TextUses:103Used by:712
Symbol 711 GraphicUsed by:712 714
Symbol 712 MovieClip {game2_fla.btnBackToMainMenu_154}Uses:709 710 711Used by:715
Symbol 713 TextUses:103Used by:714
Symbol 714 MovieClip {game2_fla.btnSubmitScore_155}Uses:709 713 711Used by:715
Symbol 715 MovieClip {game2_fla.lovelybuttons_153}Uses:712 714Used by:716 732
Symbol 716 MovieClip {game2_fla.GameOverScreen_152}Uses:706 707 708 715Used by:Timeline
Symbol 717 BitmapUsed by:718
Symbol 718 GraphicUses:717Used by:719
Symbol 719 MovieClipUses:718Used by:733
Symbol 720 BitmapUsed by:721
Symbol 721 GraphicUses:720Used by:722
Symbol 722 MovieClipUses:721Used by:733
Symbol 723 BitmapUsed by:724
Symbol 724 GraphicUses:723Used by:725
Symbol 725 MovieClipUses:724Used by:733
Symbol 726 TextUses:103Used by:732
Symbol 727 EditableTextUses:103Used by:732
Symbol 728 TextUses:103Used by:732
Symbol 729 TextUses:103Used by:730
Symbol 730 MovieClipUses:630 729Used by:731
Symbol 731 MovieClipUses:730Used by:732
Symbol 732 MovieClip {game2_fla.YouWinScreen_160}Uses:726 727 728 731 715Used by:733
Symbol 733 MovieClip {game2_fla.endingSequence_156}Uses:719 722 725 732Used by:Timeline

Instance Names

"soundMC"Frame 3Symbol 638 MovieClip {game2_fla.soundButton_138}
"gameFieldMC"Frame 5Symbol 671 MovieClip {game2_fla.gameField_148}
"treeMC"Frame 5Symbol 705 MovieClip {game2_fla.treebarkcopy_149}
"button_mc"Symbol 4 MovieClip {button1_mc} Frame 1Symbol 3 MovieClip
"tutorialMC"Symbol 116 MovieClip {classes.Lvl2Scanner} Frame 1Symbol 106 MovieClip
"scannerMC2"Symbol 116 MovieClip {classes.Lvl2Scanner} Frame 1Symbol 112 MovieClip
"scannerMC"Symbol 116 MovieClip {classes.Lvl2Scanner} Frame 1Symbol 112 MovieClip
"scanThingMC"Symbol 116 MovieClip {classes.Lvl2Scanner} Frame 1Symbol 115 MovieClip
"scanThingMC2"Symbol 116 MovieClip {classes.Lvl2Scanner} Frame 1Symbol 115 MovieClip
"arrowInsideMC"Symbol 236 MovieClip {game2_fla.tutorialarrow_170} Frame 1Symbol 235 MovieClip
"spacebarMC"Symbol 272 MovieClip {game2_fla.tutorial_inside_172} Frame 1Symbol 242 MovieClip
"arrowMC"Symbol 276 MovieClip {HowToPlayPanel} Frame 1Symbol 236 MovieClip {game2_fla.tutorialarrow_170}
"tutorialMC"Symbol 276 MovieClip {HowToPlayPanel} Frame 1Symbol 272 MovieClip {game2_fla.tutorial_inside_172}
"bossLifeBgMC"Symbol 289 MovieClip {BossLifeMC} Frame 1Symbol 279 MovieClip
"life1MC"Symbol 289 MovieClip {BossLifeMC} Frame 1Symbol 282 MovieClip
"life2MC"Symbol 289 MovieClip {BossLifeMC} Frame 1Symbol 284 MovieClip
"life3MC"Symbol 289 MovieClip {BossLifeMC} Frame 1Symbol 286 MovieClip
"life4MC"Symbol 289 MovieClip {BossLifeMC} Frame 1Symbol 288 MovieClip
"blade2MC"Symbol 483 MovieClip {Lvl1BigEnemy} Frame 1Symbol 480 MovieClip
"blade1MC"Symbol 483 MovieClip {Lvl1BigEnemy} Frame 1Symbol 480 MovieClip
"scannerMC"Symbol 503 MovieClip {Lvl2BossEnemy} Frame 1Symbol 112 MovieClip
"scannerMC2"Symbol 503 MovieClip {Lvl2BossEnemy} Frame 1Symbol 112 MovieClip
"scanThingMC"Symbol 503 MovieClip {Lvl2BossEnemy} Frame 1Symbol 502 MovieClip
"scanThingMC2"Symbol 503 MovieClip {Lvl2BossEnemy} Frame 1Symbol 502 MovieClip
"fairyMC"Symbol 562 MovieClip {Lvl4BossMC} Frame 1Symbol 538 MovieClip
"hatchMC"Symbol 562 MovieClip {Lvl4BossMC} Frame 1Symbol 561 MovieClip {game2_fla.Lvl4BossMC_hatch_117}
"menu3MC"Symbol 617 MovieClip {game2_fla.menuAnim_127} Frame 1Symbol 610 MovieClip
"menu2MC"Symbol 617 MovieClip {game2_fla.menuAnim_127} Frame 1Symbol 613 MovieClip
"menu1MC"Symbol 617 MovieClip {game2_fla.menuAnim_127} Frame 1Symbol 616 MovieClip
"button_mc"Symbol 621 MovieClip {game2_fla.button2_mc_131} Frame 1Symbol 620 MovieClip
"menuAnimMC"Symbol 634 MovieClip {game2_fla.menuMC_126} Frame 1Symbol 617 MovieClip {game2_fla.menuAnim_127}
"btnClickHere"Symbol 634 MovieClip {game2_fla.menuMC_126} Frame 1Symbol 633 MovieClip
"diffBarMC"Symbol 666 MovieClip {game2_fla.difficultychoicemenu_144} Frame 1Symbol 649 MovieClip
"detect1MC"Symbol 666 MovieClip {game2_fla.difficultychoicemenu_144} Frame 1Symbol 665 MovieClip
"detect2MC"Symbol 666 MovieClip {game2_fla.difficultychoicemenu_144} Frame 1Symbol 665 MovieClip
"detect3MC"Symbol 666 MovieClip {game2_fla.difficultychoicemenu_144} Frame 1Symbol 665 MovieClip
"detect0MC"Symbol 666 MovieClip {game2_fla.difficultychoicemenu_144} Frame 1Symbol 665 MovieClip
"intro1MC"Symbol 667 MovieClip {game2_fla.introSequence_139} Frame 1Symbol 641 MovieClip
"intro2MC"Symbol 667 MovieClip {game2_fla.introSequence_139} Frame 1Symbol 644 MovieClip
"intro3MC"Symbol 667 MovieClip {game2_fla.introSequence_139} Frame 1Symbol 647 MovieClip
"difficultyMC"Symbol 667 MovieClip {game2_fla.introSequence_139} Frame 1Symbol 666 MovieClip {game2_fla.difficultychoicemenu_144}
"txtStatus"Symbol 671 MovieClip {game2_fla.gameField_148} Frame 1Symbol 670 EditableText
"absorbFillMC"Symbol 687 MovieClip {game2_fla.AbsorbInterface_150} Frame 1Symbol 685 MovieClip
"absorbMC"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 687 MovieClip {game2_fla.AbsorbInterface_150}
"txtScore"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 689 EditableText
"txtBonus1"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 690 EditableText
"txtBonus2"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 691 EditableText
"txtBonus3"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 692 EditableText
"txtBonus4"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 693 EditableText
"txtBonus5"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 694 EditableText
"txtLife"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 698 EditableText
"txtQuality"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 700 EditableText
"txtParticles"Symbol 705 MovieClip {game2_fla.treebarkcopy_149} Frame 1Symbol 702 EditableText
"mainMenuMC"Symbol 715 MovieClip {game2_fla.lovelybuttons_153} Frame 1Symbol 712 MovieClip {game2_fla.btnBackToMainMenu_154}
"submitScoreMC"Symbol 715 MovieClip {game2_fla.lovelybuttons_153} Frame 1Symbol 714 MovieClip {game2_fla.btnSubmitScore_155}
"txtScore"Symbol 716 MovieClip {game2_fla.GameOverScreen_152} Frame 1Symbol 707 EditableText
"pressAnyKeyMC"Symbol 716 MovieClip {game2_fla.GameOverScreen_152} Frame 1Symbol 715 MovieClip {game2_fla.lovelybuttons_153}
"txtScore"Symbol 732 MovieClip {game2_fla.YouWinScreen_160} Frame 1Symbol 727 EditableText
"pressAnyKeyMC"Symbol 732 MovieClip {game2_fla.YouWinScreen_160} Frame 1Symbol 731 MovieClip
"pressAnyKeyMC"Symbol 732 MovieClip {game2_fla.YouWinScreen_160} Frame 1Symbol 715 MovieClip {game2_fla.lovelybuttons_153}
"intro1MC"Symbol 733 MovieClip {game2_fla.endingSequence_156} Frame 1Symbol 719 MovieClip
"intro2MC"Symbol 733 MovieClip {game2_fla.endingSequence_156} Frame 1Symbol 722 MovieClip
"intro3MC"Symbol 733 MovieClip {game2_fla.endingSequence_156} Frame 1Symbol 725 MovieClip
"difficultyMC"Symbol 733 MovieClip {game2_fla.endingSequence_156} Frame 1Symbol 732 MovieClip {game2_fla.YouWinScreen_160}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata not present, AS3.




http://swfchan.com/10/47599/info.shtml
Created: 1/5 -2019 13:06:31 Last modified: 1/5 -2019 13:06:31 Server time: 08/05 -2024 15:40:33