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

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

The Last Canopy.swf

This is the info page for
Flash #64646

(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
(or Y button for QWERTZ
keyboards). Try to shoot
this guy.

Y

OR

TO SHOOT

Z

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

HOLD

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 or Y
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

Voting is now open! Please click this text, and
click the VOTE FOR THIS GAME button to
support The Last Canopy!
To assure genuine votes, the voter has to
contribute a min. of $1. The proceeds will go
to me, to make better games for you, of coz! :)

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

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>

Z

/

Y

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 = 8; 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].removeAllBulletGenerator(); 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.14 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;// = 150 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 = 150; ORIG_INCBALLANGLE = -0.14; 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, 25, 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_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_CIRCULAR, 1, 70, 3, false, false, 0.7, this.PARTICLE_SMOKE, this.centerX, this.centerY, 1, BulletDrill, BULLETMOVE_CONSISTENT, 0, 12, 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, 25, 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, 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, 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_ROTATE, 1, 3, 3, false, false, 5, 0, this.centerX, this.centerY, 1, BulletStick, BULLETMOVE_CONSISTENT, 0, 25, 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, 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); 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, 6, false, false, 0.5, PARTICLE_LINE, -15, 70, 1, BulletEnergyMissile, BULLETMOVE_CONSISTENT, 1.05, 1, 1, 90); this.addBulletGenerator(this.BULLETGENERATOR_ANGLE, 1, 100, 6, 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; this.isAbsorbable = 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, 80, 4, false, false, 5, 0, 4, 5, 1, BulletStickRed, BULLETMOVE_CONSISTENT, 0, 1, 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, 100, 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_BOSS; 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 shootKey2:int; 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; shootKey2 = 89; absorbKey = 68; } else { shootKey = 90; shootKey2 = 89; 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): case shootKey2: case (shootKey2 + 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): case shootKey2: case (shootKey2 + 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
//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 57
//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 58
//AbsorbInterface_151 (thelastcanopyng_fla.AbsorbInterface_151) package thelastcanopyng_fla { import flash.display.*; import flash.events.*; public dynamic class AbsorbInterface_151 extends MovieClip { public var absorbFillMC:MovieClip; public function AbsorbInterface_151(){ 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 thelastcanopyng_fla
Section 59
//btnBackToMainMenu_155 (thelastcanopyng_fla.btnBackToMainMenu_155) package thelastcanopyng_fla { import flash.display.*; public dynamic class btnBackToMainMenu_155 extends MovieClip { public function btnBackToMainMenu_155(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package thelastcanopyng_fla
Section 60
//btnSubmitScore_156 (thelastcanopyng_fla.btnSubmitScore_156) package thelastcanopyng_fla { import flash.display.*; public dynamic class btnSubmitScore_156 extends MovieClip { public function btnSubmitScore_156(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package thelastcanopyng_fla
Section 61
//button2_mc_131 (thelastcanopyng_fla.button2_mc_131) package thelastcanopyng_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class button2_mc_131 extends MovieClip { public var button_mc:MovieClip; public function button2_mc_131(){ addFrameScript(0, frame1); } public function cgdc5Event(_arg1:Event):void{ navigateToURL(new URLRequest("http://jayisgames.com/cgdc5/?ref=e875ab05"), "_blank"); } function frame1(){ button_mc.buttonMode = true; button_mc.addEventListener(MouseEvent.CLICK, cgdc5Event); MochiBot.track(this, "e875ab05"); } } }//package thelastcanopyng_fla
Section 62
//difficultychoicemenu_145 (thelastcanopyng_fla.difficultychoicemenu_145) package thelastcanopyng_fla { import flash.display.*; public dynamic class difficultychoicemenu_145 extends MovieClip { public var detect1MC:MovieClip; public var diffBarMC:MovieClip; public var detect0MC:MovieClip; public var detect3MC:MovieClip; public var detect2MC:MovieClip; } }//package thelastcanopyng_fla
Section 63
//endingSequence_157 (thelastcanopyng_fla.endingSequence_157) package thelastcanopyng_fla { import flash.display.*; import flash.events.*; public dynamic class endingSequence_157 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_157(){ 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 thelastcanopyng_fla
Section 64
//gameField_149 (thelastcanopyng_fla.gameField_149) package thelastcanopyng_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_149 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_149(){ 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 thelastcanopyng_fla
Section 65
//GameOverScreen_153 (thelastcanopyng_fla.GameOverScreen_153) package thelastcanopyng_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_153 extends MovieClip { public var txtScore:TextField; public var pressAnyKeyMC:MovieClip; public var timerAnyKey:int; public function GameOverScreen_153(){ 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 thelastcanopyng_fla
Section 66
//introSequence_140 (thelastcanopyng_fla.introSequence_140) package thelastcanopyng_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_140 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_140(){ 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 thelastcanopyng_fla
Section 67
//lovelybuttons_154 (thelastcanopyng_fla.lovelybuttons_154) package thelastcanopyng_fla { import flash.display.*; public dynamic class lovelybuttons_154 extends MovieClip { public var mainMenuMC:MovieClip; public var submitScoreMC:MovieClip; } }//package thelastcanopyng_fla
Section 68
//Lvl4BossMC_hatch_117 (thelastcanopyng_fla.Lvl4BossMC_hatch_117) package thelastcanopyng_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 thelastcanopyng_fla
Section 69
//MainTimeline (thelastcanopyng_fla.MainTimeline) package thelastcanopyng_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 thelastcanopyng_fla
Section 70
//mc_logo_animation_123 (thelastcanopyng_fla.mc_logo_animation_123) package thelastcanopyng_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 thelastcanopyng_fla
Section 71
//menuAnim_127 (thelastcanopyng_fla.menuAnim_127) package thelastcanopyng_fla { import flash.display.*; public dynamic class menuAnim_127 extends MovieClip { public var menu3MC:MovieClip; public var menu2MC:MovieClip; public var menu1MC:MovieClip; } }//package thelastcanopyng_fla
Section 72
//menuMC_126 (thelastcanopyng_fla.menuMC_126) package thelastcanopyng_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 voteMC: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); } public function gotoURL(_arg1:MouseEvent){ var url:String; var request:URLRequest; var e = _arg1; url = "http://jayisgames.com/cgdc5/?gameID=5"; request = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { }; } 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; voteMC.addEventListener(MouseEvent.CLICK, gotoURL); voteMC.buttonMode = true; 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 thelastcanopyng_fla
Section 73
//musicLoad_122 (thelastcanopyng_fla.musicLoad_122) package thelastcanopyng_fla { import flash.display.*; public dynamic class musicLoad_122 extends MovieClip { public function musicLoad_122(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package thelastcanopyng_fla
Section 74
//soundButton_139 (thelastcanopyng_fla.soundButton_139) package thelastcanopyng_fla { import flash.display.*; public dynamic class soundButton_139 extends MovieClip { public function soundButton_139(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package thelastcanopyng_fla
Section 75
//treebarkcopy_150 (thelastcanopyng_fla.treebarkcopy_150) package thelastcanopyng_fla { import flash.display.*; import flash.text.*; public dynamic class treebarkcopy_150 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 thelastcanopyng_fla
Section 76
//tutorial_inside_173 (thelastcanopyng_fla.tutorial_inside_173) package thelastcanopyng_fla { import flash.display.*; public dynamic class tutorial_inside_173 extends MovieClip { public var spacebarMC:MovieClip; public function tutorial_inside_173(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package thelastcanopyng_fla
Section 77
//tutorialarrow_171 (thelastcanopyng_fla.tutorialarrow_171) package thelastcanopyng_fla { import flash.display.*; public dynamic class tutorialarrow_171 extends MovieClip { public var arrowInsideMC:MovieClip; } }//package thelastcanopyng_fla
Section 78
//YouWinScreen_161 (thelastcanopyng_fla.YouWinScreen_161) package thelastcanopyng_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_161 extends MovieClip { public var txtScore:TextField; public var pressAnyKeyMC:MovieClip; public var timerAnyKey:int; public function YouWinScreen_161(){ 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 thelastcanopyng_fla
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 575
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 510
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 296
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 275
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 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 276 277 283 297 304 467 625 630 631 632 635 642 657 658 659 661 662 663 664 665 666 667 668 669 678 679 680 681 682 683 684 685 686 692 693 694 695 696 697 698 699 701 702 703 704 705 706 707 708 709 710 711 713 714 715 717 720 733 734 735 736
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 506
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 700
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 {thelastcanopyng_fla.tutorialarrow_171}Uses:235Used by:279
Symbol 237 GraphicUsed by:279
Symbol 238 TextUses:103Used by:279
Symbol 239 GraphicUsed by:242 278
Symbol 240 TextUses:103Used by:242
Symbol 241 TextUses:103Used by:242
Symbol 242 MovieClipUses:239 240 241Used by:275
Symbol 243 TextUses:103Used by:275
Symbol 244 GraphicUsed by:275
Symbol 245 TextUses:103Used by:275
Symbol 246 TextUses:103Used by:275
Symbol 247 TextUses:103Used by:275
Symbol 248 TextUses:103Used by:275
Symbol 249 TextUses:103Used by:275
Symbol 250 GraphicUsed by:275
Symbol 251 TextUses:103Used by:275
Symbol 252 TextUses:103Used by:275
Symbol 253 TextUses:103Used by:275
Symbol 254 TextUses:103Used by:275
Symbol 255 TextUses:103Used by:275
Symbol 256 TextUses:103Used by:275
Symbol 257 TextUses:103Used by:275
Symbol 258 GraphicUsed by:275
Symbol 259 TextUses:103Used by:275
Symbol 260 TextUses:103Used by:275
Symbol 261 TextUses:103Used by:275
Symbol 262 TextUses:103Used by:275
Symbol 263 TextUses:103Used by:275
Symbol 264 TextUses:103Used by:275
Symbol 265 TextUses:103Used by:275
Symbol 266 TextUses:103Used by:275
Symbol 267 TextUses:103Used by:275
Symbol 268 TextUses:103Used by:275
Symbol 269 TextUses:103Used by:275
Symbol 270 TextUses:103Used by:275
Symbol 271 TextUses:103Used by:275
Symbol 272 TextUses:103Used by:275
Symbol 273 TextUses:103Used by:275
Symbol 274 TextUses:103Used by:275
Symbol 275 MovieClip {thelastcanopyng_fla.tutorial_inside_173}Uses:242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 88 264 265 266 267 268 269 270 271 272 273 274Used by:279
Symbol 276 TextUses:103Used by:278
Symbol 277 TextUses:103Used by:278
Symbol 278 MovieClipUses:239 276 277Used by:279
Symbol 279 MovieClip {HowToPlayPanel}Uses:236 237 238 275 278
Symbol 280 GraphicUsed by:292
Symbol 281 GraphicUsed by:282
Symbol 282 MovieClipUses:281Used by:292
Symbol 283 TextUses:103Used by:292
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:292
Symbol 286 GraphicUsed by:287
Symbol 287 MovieClipUses:286Used by:292
Symbol 288 GraphicUsed by:289
Symbol 289 MovieClipUses:288Used by:292
Symbol 290 GraphicUsed by:291
Symbol 291 MovieClipUses:290Used by:292
Symbol 292 MovieClip {BossLifeMC}Uses:280 282 283 285 287 289 291
Symbol 293 BitmapUsed by:294
Symbol 294 GraphicUses:293Used by:295
Symbol 295 MovieClip {sandTexture}Uses:294Used by:672
Symbol 296 MovieClip {FrozenFairy_inside}Uses:81Used by:541
Symbol 297 EditableTextUses:103Used by:Timeline
Symbol 298 GraphicUsed by:299
Symbol 299 MovieClip {bg0l_1}Uses:298Used by:Timeline
Symbol 300 GraphicUsed by:301
Symbol 301 MovieClip {bg0m_1}Uses:300Used by:Timeline
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClip {bg0s_1}Uses:302Used by:Timeline
Symbol 304 TextUses:103Used by:305
Symbol 305 MovieClip {bg0s_2}Uses:304Used by:Timeline
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClip {bg1l_1}Uses:306Used by:Timeline
Symbol 308 GraphicUsed by:309
Symbol 309 MovieClip {bg1l_2}Uses:308Used by:Timeline
Symbol 310 GraphicUsed by:311
Symbol 311 MovieClip {bg1l_3}Uses:310Used by:Timeline
Symbol 312 GraphicUsed by:313
Symbol 313 MovieClip {bg1l_4}Uses:312Used by:Timeline
Symbol 314 GraphicUsed by:315
Symbol 315 MovieClip {bg1m_1}Uses:314Used by:Timeline
Symbol 316 GraphicUsed by:317
Symbol 317 MovieClip {bg1m_2}Uses:316Used by:Timeline
Symbol 318 GraphicUsed by:319
Symbol 319 MovieClip {bg1m_3}Uses:318Used by:Timeline
Symbol 320 GraphicUsed by:321
Symbol 321 MovieClip {bg1m_4}Uses:320Used by:Timeline
Symbol 322 GraphicUsed by:323
Symbol 323 MovieClip {bg1m_5}Uses:322Used by:Timeline
Symbol 324 GraphicUsed by:325
Symbol 325 MovieClip {bg1m_6}Uses:324Used by:Timeline
Symbol 326 GraphicUsed by:327
Symbol 327 MovieClip {bg1s_1}Uses:326Used by:Timeline
Symbol 328 GraphicUsed by:329
Symbol 329 MovieClip {bg1s_2}Uses:328Used by:Timeline
Symbol 330 GraphicUsed by:331
Symbol 331 MovieClip {bg1s_3}Uses:330Used by:Timeline
Symbol 332 GraphicUsed by:333
Symbol 333 MovieClip {bg1s_4}Uses:332Used by:Timeline
Symbol 334 GraphicUsed by:335
Symbol 335 MovieClip {bg1s_5}Uses:334Used by:Timeline
Symbol 336 GraphicUsed by:337
Symbol 337 MovieClip {bg1s_6}Uses:336Used by:Timeline
Symbol 338 GraphicUsed by:339
Symbol 339 MovieClip {bg1s_7}Uses:338Used by:Timeline
Symbol 340 GraphicUsed by:341
Symbol 341 MovieClip {bg1s_8}Uses:340Used by:Timeline
Symbol 342 GraphicUsed by:343
Symbol 343 MovieClip {bg1s_9}Uses:342Used by:Timeline
Symbol 344 GraphicUsed by:345
Symbol 345 MovieClip {bg1s_10}Uses:344Used by:Timeline
Symbol 346 GraphicUsed by:347
Symbol 347 MovieClip {bg2l_1}Uses:346Used by:Timeline
Symbol 348 GraphicUsed by:349
Symbol 349 MovieClip {bg2l_2}Uses:348Used by:Timeline
Symbol 350 GraphicUsed by:351
Symbol 351 MovieClip {bg2l_3}Uses:350Used by:Timeline
Symbol 352 GraphicUsed by:353
Symbol 353 MovieClip {bg2l_4}Uses:352Used by:Timeline
Symbol 354 GraphicUsed by:355
Symbol 355 MovieClip {bg2m_1}Uses:354Used by:Timeline
Symbol 356 GraphicUsed by:357
Symbol 357 MovieClip {bg2m_2}Uses:356Used by:Timeline
Symbol 358 GraphicUsed by:359
Symbol 359 MovieClip {bg2m_3}Uses:358Used by:Timeline
Symbol 360 GraphicUsed by:361
Symbol 361 MovieClip {bg2m_4}Uses:360Used by:Timeline
Symbol 362 GraphicUsed by:363
Symbol 363 MovieClip {bg2m_5}Uses:362Used by:Timeline
Symbol 364 GraphicUsed by:365
Symbol 365 MovieClip {bg2m_6}Uses:364Used by:Timeline
Symbol 366 GraphicUsed by:367
Symbol 367 MovieClip {bg2s_1}Uses:366Used by:Timeline
Symbol 368 GraphicUsed by:369
Symbol 369 MovieClip {bg2s_2}Uses:368Used by:Timeline
Symbol 370 GraphicUsed by:371
Symbol 371 MovieClip {bg2s_3}Uses:370Used by:Timeline
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClip {bg2s_4}Uses:372Used by:Timeline
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClip {bg2s_5}Uses:374Used by:Timeline
Symbol 376 GraphicUsed by:377
Symbol 377 MovieClip {bg2s_6}Uses:376Used by:Timeline
Symbol 378 GraphicUsed by:379
Symbol 379 MovieClip {bg2s_7}Uses:378Used by:Timeline
Symbol 380 GraphicUsed by:381
Symbol 381 MovieClip {bg2s_8}Uses:380Used by:Timeline
Symbol 382 GraphicUsed by:383
Symbol 383 MovieClip {bg2s_9}Uses:382Used by:Timeline
Symbol 384 GraphicUsed by:385
Symbol 385 MovieClip {bg2s_10}Uses:384Used by:Timeline
Symbol 386 GraphicUsed by:387
Symbol 387 MovieClip {bg3l_1}Uses:386Used by:Timeline
Symbol 388 GraphicUsed by:389
Symbol 389 MovieClip {bg3l_2}Uses:388Used by:Timeline
Symbol 390 GraphicUsed by:391
Symbol 391 MovieClip {bg3l_3}Uses:390Used by:Timeline
Symbol 392 GraphicUsed by:393
Symbol 393 MovieClip {bg3l_4}Uses:392Used by:Timeline
Symbol 394 GraphicUsed by:395
Symbol 395 MovieClip {bg3m_1}Uses:394Used by:Timeline
Symbol 396 GraphicUsed by:397
Symbol 397 MovieClip {bg3m_2}Uses:396Used by:Timeline
Symbol 398 GraphicUsed by:399
Symbol 399 MovieClip {bg3m_3}Uses:398Used by:Timeline
Symbol 400 GraphicUsed by:401
Symbol 401 MovieClip {bg3m_4}Uses:400Used by:Timeline
Symbol 402 GraphicUsed by:403
Symbol 403 MovieClip {bg3m_5}Uses:402Used by:Timeline
Symbol 404 GraphicUsed by:405
Symbol 405 MovieClip {bg3m_6}Uses:404Used by:Timeline
Symbol 406 GraphicUsed by:407
Symbol 407 MovieClip {bg3s_1}Uses:406Used by:Timeline
Symbol 408 GraphicUsed by:409
Symbol 409 MovieClip {bg3s_2}Uses:408Used by:Timeline
Symbol 410 GraphicUsed by:411
Symbol 411 MovieClip {bg3s_3}Uses:410Used by:Timeline
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClip {bg3s_4}Uses:412Used by:Timeline
Symbol 414 GraphicUsed by:415
Symbol 415 MovieClip {bg3s_5}Uses:414Used by:Timeline
Symbol 416 GraphicUsed by:417
Symbol 417 MovieClip {bg3s_6}Uses:416Used by:Timeline
Symbol 418 GraphicUsed by:419
Symbol 419 MovieClip {bg3s_7}Uses:418Used by:Timeline
Symbol 420 GraphicUsed by:421
Symbol 421 MovieClip {bg3s_8}Uses:420Used by:Timeline
Symbol 422 GraphicUsed by:423
Symbol 423 MovieClip {bg3s_9}Uses:422Used by:Timeline
Symbol 424 GraphicUsed by:425
Symbol 425 MovieClip {bg3s_10}Uses:424Used by:Timeline
Symbol 426 GraphicUsed by:427
Symbol 427 MovieClip {bg4l_1}Uses:426Used by:Timeline
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClip {bg4l_2}Uses:428Used by:Timeline
Symbol 430 GraphicUsed by:431
Symbol 431 MovieClip {bg4l_3}Uses:430Used by:Timeline
Symbol 432 GraphicUsed by:433
Symbol 433 MovieClip {bg4l_4}Uses:432Used by:Timeline
Symbol 434 GraphicUsed by:435
Symbol 435 MovieClip {bg4m_1}Uses:434Used by:Timeline
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClip {bg4m_2}Uses:436Used by:Timeline
Symbol 438 GraphicUsed by:439
Symbol 439 MovieClip {bg4m_3}Uses:438Used by:Timeline
Symbol 440 GraphicUsed by:441
Symbol 441 MovieClip {bg4m_4}Uses:440Used by:Timeline
Symbol 442 GraphicUsed by:443
Symbol 443 MovieClip {bg4m_5}Uses:442Used by:Timeline
Symbol 444 GraphicUsed by:445
Symbol 445 MovieClip {bg4m_6}Uses:444Used by:Timeline
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClip {bg4s_1}Uses:446Used by:Timeline
Symbol 448 GraphicUsed by:449
Symbol 449 MovieClip {bg4s_2}Uses:448Used by:Timeline
Symbol 450 GraphicUsed by:451
Symbol 451 MovieClip {bg4s_3}Uses:450Used by:Timeline
Symbol 452 GraphicUsed by:453
Symbol 453 MovieClip {bg4s_4}Uses:452Used by:Timeline
Symbol 454 GraphicUsed by:455
Symbol 455 MovieClip {bg4s_5}Uses:454Used by:Timeline
Symbol 456 GraphicUsed by:457
Symbol 457 MovieClip {bg4s_6}Uses:456Used by:Timeline
Symbol 458 GraphicUsed by:459
Symbol 459 MovieClip {bg4s_7}Uses:458Used by:Timeline
Symbol 460 GraphicUsed by:461
Symbol 461 MovieClip {bg4s_8}Uses:460Used by:Timeline
Symbol 462 GraphicUsed by:463
Symbol 463 MovieClip {bg4s_9}Uses:462Used by:Timeline
Symbol 464 GraphicUsed by:465
Symbol 465 MovieClip {bg4s_10}Uses:464Used by:Timeline
Symbol 466 GraphicUsed by:468
Symbol 467 TextUses:103Used by:468
Symbol 468 MovieClip {Level0Pic}Uses:466 467Used by:Timeline
Symbol 469 BitmapUsed by:470
Symbol 470 GraphicUses:469Used by:471
Symbol 471 MovieClip {Level1Pic}Uses:470Used by:Timeline
Symbol 472 BitmapUsed by:473
Symbol 473 GraphicUses:472Used by:474
Symbol 474 MovieClip {Level2Pic}Uses:473Used by:Timeline
Symbol 475 BitmapUsed by:476
Symbol 476 GraphicUses:475Used by:477
Symbol 477 MovieClip {Level3Pic}Uses:476Used by:Timeline
Symbol 478 BitmapUsed by:479
Symbol 479 GraphicUses:478Used by:480
Symbol 480 MovieClip {Level4Pic}Uses:479Used by:Timeline
Symbol 481 BitmapUsed by:482
Symbol 482 GraphicUses:481Used by:483
Symbol 483 MovieClipUses:482Used by:486
Symbol 484 BitmapUsed by:485
Symbol 485 GraphicUses:484Used by:486
Symbol 486 MovieClip {Lvl1BigEnemy}Uses:483 485Used by:Timeline
Symbol 487 BitmapUsed by:488
Symbol 488 GraphicUses:487Used by:489
Symbol 489 MovieClip {Lvl1BossEnemy}Uses:488Used by:Timeline
Symbol 490 BitmapUsed by:491
Symbol 491 GraphicUses:490Used by:492
Symbol 492 MovieClip {Lvl1SmallEnemy1}Uses:491Used by:Timeline
Symbol 493 BitmapUsed by:494
Symbol 494 GraphicUses:493Used by:495
Symbol 495 MovieClip {Lvl1SmallEnemy2}Uses:494Used by:Timeline
Symbol 496 BitmapUsed by:497
Symbol 497 GraphicUses:496Used by:498
Symbol 498 MovieClip {Lvl1SmallEnemy3}Uses:497Used by:Timeline
Symbol 499 BitmapUsed by:500
Symbol 500 GraphicUses:499Used by:501
Symbol 501 MovieClip {Lvl2BigMC}Uses:500Used by:Timeline
Symbol 502 BitmapUsed by:503
Symbol 503 GraphicUses:502Used by:506
Symbol 504 GraphicUsed by:505
Symbol 505 MovieClipUses:504Used by:506
Symbol 506 MovieClip {Lvl2BossEnemy}Uses:112 503 505Used by:Timeline
Symbol 507 BitmapUsed by:508
Symbol 508 GraphicUses:507Used by:509
Symbol 509 MovieClip {Lvl2MediumMC}Uses:508Used by:Timeline
Symbol 510 MovieClip {Lvl2SmallInterceptorMC}Uses:19Used by:Timeline
Symbol 511 BitmapUsed by:512
Symbol 512 GraphicUses:511Used by:513
Symbol 513 MovieClip {Lvl2SmallPursuitMC}Uses:512Used by:Timeline
Symbol 514 BitmapUsed by:515
Symbol 515 GraphicUses:514Used by:516
Symbol 516 MovieClip {Lvl2SmallScoutMC}Uses:515Used by:Timeline
Symbol 517 BitmapUsed by:518
Symbol 518 GraphicUses:517Used by:523
Symbol 519 BitmapUsed by:520
Symbol 520 GraphicUses:519Used by:521
Symbol 521 MovieClipUses:520Used by:522
Symbol 522 MovieClipUses:521Used by:523 526 529 532 535
Symbol 523 MovieClip {Lvl3BigMC}Uses:518 522Used by:Timeline
Symbol 524 BitmapUsed by:525
Symbol 525 GraphicUses:524Used by:526
Symbol 526 MovieClip {Lvl3MediumMC}Uses:525 522Used by:Timeline
Symbol 527 BitmapUsed by:528
Symbol 528 GraphicUses:527Used by:529
Symbol 529 MovieClip {Lvl3SmallConiferousMC}Uses:528 522Used by:Timeline
Symbol 530 BitmapUsed by:531
Symbol 531 GraphicUses:530Used by:532
Symbol 532 MovieClip {Lvl3SmallRaptorialMC}Uses:531 522Used by:Timeline
Symbol 533 BitmapUsed by:534
Symbol 534 GraphicUses:533Used by:535
Symbol 535 MovieClip {Lvl3SmallScavengingMC}Uses:534 522Used by:Timeline
Symbol 536 BitmapUsed by:537
Symbol 537 GraphicUses:536Used by:538
Symbol 538 MovieClip {Lvl4BigMC}Uses:537Used by:Timeline
Symbol 539 BitmapUsed by:540
Symbol 540 GraphicUses:539Used by:565
Symbol 541 MovieClipUses:296Used by:565
Symbol 542 BitmapUsed by:543
Symbol 543 GraphicUses:542Used by:564
Symbol 544 BitmapUsed by:545
Symbol 545 GraphicUses:544Used by:564
Symbol 546 BitmapUsed by:547
Symbol 547 GraphicUses:546Used by:564
Symbol 548 BitmapUsed by:549
Symbol 549 GraphicUses:548Used by:564
Symbol 550 BitmapUsed by:551
Symbol 551 GraphicUses:550Used by:564
Symbol 552 BitmapUsed by:553
Symbol 553 GraphicUses:552Used by:564
Symbol 554 BitmapUsed by:555
Symbol 555 GraphicUses:554Used by:564
Symbol 556 BitmapUsed by:557
Symbol 557 GraphicUses:556Used by:564
Symbol 558 BitmapUsed by:559
Symbol 559 GraphicUses:558Used by:564
Symbol 560 BitmapUsed by:561
Symbol 561 GraphicUses:560Used by:564
Symbol 562 BitmapUsed by:563
Symbol 563 GraphicUses:562Used by:564
Symbol 564 MovieClip {thelastcanopyng_fla.Lvl4BossMC_hatch_117}Uses:543 545 547 549 551 553 555 557 559 561 563Used by:565
Symbol 565 MovieClip {Lvl4BossMC}Uses:540 541 564Used by:Timeline
Symbol 566 BitmapUsed by:567
Symbol 567 GraphicUses:566Used by:568
Symbol 568 MovieClip {Lvl4MediumMC}Uses:567Used by:Timeline
Symbol 569 BitmapUsed by:570
Symbol 570 GraphicUses:569Used by:571
Symbol 571 MovieClip {Lvl4SmallBomberMC}Uses:570Used by:Timeline
Symbol 572 BitmapUsed by:573
Symbol 573 GraphicUses:572Used by:574
Symbol 574 MovieClip {Lvl4SmallFighterMC}Uses:573Used by:Timeline
Symbol 575 MovieClip {Lvl4SmallRammerMC}Uses:9Used by:Timeline
Symbol 576 GraphicUsed by:601
Symbol 577 Sound {sndAbsorbing}Used by:601
Symbol 578 Sound {sndBigExplosion}Used by:601
Symbol 579 Sound {sndFriendShot}Used by:601
Symbol 580 Sound {sndConfirmAbsorb}Used by:601
Symbol 581 Sound {sndFriendlyExplosion}Used by:601
Symbol 582 Sound {sndEnemyFire}Used by:601
Symbol 583 Sound {sndHurricane}Used by:601
Symbol 584 Sound {sndMediumExplosion}Used by:601
Symbol 585 Sound {sndReflect}Used by:601
Symbol 586 Sound {sndSmallExplosion}Used by:601
Symbol 587 Sound {sndBossFast}Used by:601
Symbol 588 Sound {sndBossSlow}Used by:601
Symbol 589 Sound {sndBossVeryFast}Used by:601
Symbol 590 Sound {sndBossVerySlow}Used by:601
Symbol 591 Sound {sndLvl1Fast}Used by:601
Symbol 592 Sound {sndLvl1Slow}Used by:601
Symbol 593 Sound {sndLvl2Fast}Used by:601
Symbol 594 Sound {sndLvl2Slow}Used by:601
Symbol 595 Sound {sndLvl3Fast}Used by:601
Symbol 596 Sound {sndLvl3Slow}Used by:601
Symbol 597 Sound {sndLvl4Fast}Used by:601
Symbol 598 Sound {sndLvl4Slow}Used by:601
Symbol 599 Sound {sndScanAlarm}Used by:601
Symbol 600 Sound {sndTutorial}Used by:601
Symbol 601 MovieClip {thelastcanopyng_fla.musicLoad_122}Uses:576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600Used by:Timeline
Symbol 602 SoundUsed by:610
Symbol 603 GraphicUsed by:610
Symbol 604 GraphicUsed by:610
Symbol 605 GraphicUsed by:607 610
Symbol 606 GraphicUsed by:610
Symbol 607 MovieClipUses:605Used by:610
Symbol 608 GraphicUsed by:609
Symbol 609 MovieClipUses:608Used by:610
Symbol 610 MovieClip {thelastcanopyng_fla.mc_logo_animation_123}Uses:602 603 604 605 606 607 609Used by:Timeline
Symbol 611 BitmapUsed by:612
Symbol 612 GraphicUses:611Used by:613
Symbol 613 MovieClipUses:612Used by:620
Symbol 614 BitmapUsed by:615
Symbol 615 GraphicUses:614Used by:616
Symbol 616 MovieClipUses:615Used by:620
Symbol 617 BitmapUsed by:618
Symbol 618 GraphicUses:617Used by:619
Symbol 619 MovieClipUses:618Used by:620
Symbol 620 MovieClip {thelastcanopyng_fla.menuAnim_127}Uses:613 616 619Used by:640
Symbol 621 BitmapUsed by:622
Symbol 622 GraphicUses:621Used by:623
Symbol 623 MovieClipUses:622Used by:624
Symbol 624 MovieClip {thelastcanopyng_fla.button2_mc_131}Uses:623Used by:640
Symbol 625 TextUses:103Used by:640
Symbol 626 BitmapUsed by:627
Symbol 627 GraphicUses:626Used by:628
Symbol 628 MovieClipUses:627Used by:629
Symbol 629 MovieClipUses:628Used by:640 712
Symbol 630 TextUses:103Used by:633
Symbol 631 TextUses:103Used by:633
Symbol 632 TextUses:103Used by:633
Symbol 633 MovieClipUses:630 631 632Used by:640
Symbol 634 GraphicUsed by:636 737
Symbol 635 TextUses:103Used by:636
Symbol 636 MovieClipUses:634 635Used by:637
Symbol 637 MovieClipUses:636Used by:640
Symbol 638 GraphicUsed by:639 670
Symbol 639 MovieClipUses:638Used by:640
Symbol 640 MovieClip {thelastcanopyng_fla.menuMC_126}Uses:620 624 625 629 633 637 639Used by:Timeline
Symbol 641 GraphicUsed by:644
Symbol 642 TextUses:103Used by:644
Symbol 643 GraphicUsed by:644
Symbol 644 MovieClip {thelastcanopyng_fla.soundButton_139}Uses:641 642 643Used by:Timeline
Symbol 645 BitmapUsed by:646
Symbol 646 GraphicUses:645Used by:647
Symbol 647 MovieClipUses:646Used by:672
Symbol 648 BitmapUsed by:649
Symbol 649 GraphicUses:648Used by:650
Symbol 650 MovieClipUses:649Used by:672
Symbol 651 BitmapUsed by:652
Symbol 652 GraphicUses:651Used by:653
Symbol 653 MovieClipUses:652Used by:672
Symbol 654 GraphicUsed by:655
Symbol 655 MovieClipUses:654Used by:671
Symbol 656 GraphicUsed by:660
Symbol 657 TextUses:103Used by:660
Symbol 658 TextUses:103Used by:660
Symbol 659 TextUses:103Used by:660
Symbol 660 MovieClipUses:656 657 658 659Used by:671
Symbol 661 TextUses:103Used by:671
Symbol 662 TextUses:103Used by:671
Symbol 663 TextUses:103Used by:671
Symbol 664 TextUses:103Used by:671
Symbol 665 TextUses:103Used by:671
Symbol 666 TextUses:103Used by:671
Symbol 667 TextUses:103Used by:671
Symbol 668 TextUses:103Used by:671
Symbol 669 TextUses:103Used by:671
Symbol 670 MovieClipUses:638Used by:671
Symbol 671 MovieClip {thelastcanopyng_fla.difficultychoicemenu_145}Uses:655 660 661 662 663 664 665 666 667 668 669 670Used by:672
Symbol 672 MovieClip {thelastcanopyng_fla.introSequence_140}Uses:647 650 653 295 671Used by:Timeline
Symbol 673 GraphicUsed by:676
Symbol 674 FontUsed by:675
Symbol 675 EditableTextUses:674Used by:676
Symbol 676 MovieClip {thelastcanopyng_fla.gameField_149}Uses:673 675Used by:Timeline
Symbol 677 GraphicUsed by:712
Symbol 678 TextUses:103Used by:712
Symbol 679 TextUses:103Used by:712
Symbol 680 TextUses:103Used by:712
Symbol 681 TextUses:103Used by:712
Symbol 682 TextUses:103Used by:712
Symbol 683 TextUses:103Used by:712
Symbol 684 TextUses:103Used by:712
Symbol 685 TextUses:103Used by:712
Symbol 686 TextUses:103Used by:712
Symbol 687 GraphicUsed by:691
Symbol 688 GraphicUsed by:689
Symbol 689 MovieClipUses:688Used by:691
Symbol 690 GraphicUsed by:691
Symbol 691 MovieClip {thelastcanopyng_fla.AbsorbInterface_151}Uses:687 689 690Used by:712
Symbol 692 TextUses:103Used by:712
Symbol 693 EditableTextUses:103Used by:712
Symbol 694 EditableTextUses:103Used by:712
Symbol 695 EditableTextUses:103Used by:712
Symbol 696 EditableTextUses:103Used by:712
Symbol 697 EditableTextUses:103Used by:712
Symbol 698 EditableTextUses:103Used by:712
Symbol 699 TextUses:103Used by:712
Symbol 700 GraphicUses:213Used by:712
Symbol 701 TextUses:103Used by:712
Symbol 702 EditableTextUses:103Used by:712
Symbol 703 TextUses:103Used by:712
Symbol 704 EditableTextUses:103Used by:712
Symbol 705 TextUses:103Used by:712
Symbol 706 EditableTextUses:103Used by:712
Symbol 707 TextUses:103Used by:712
Symbol 708 TextUses:103Used by:712
Symbol 709 TextUses:103Used by:712
Symbol 710 TextUses:103Used by:712
Symbol 711 TextUses:103Used by:712
Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150}Uses:677 629 678 679 680 681 682 683 684 685 686 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711Used by:Timeline
Symbol 713 TextUses:103Used by:723
Symbol 714 EditableTextUses:103Used by:723
Symbol 715 TextUses:103Used by:723
Symbol 716 GraphicUsed by:719 721
Symbol 717 TextUses:103Used by:719
Symbol 718 GraphicUsed by:719 721
Symbol 719 MovieClip {thelastcanopyng_fla.btnBackToMainMenu_155}Uses:716 717 718Used by:722
Symbol 720 TextUses:103Used by:721
Symbol 721 MovieClip {thelastcanopyng_fla.btnSubmitScore_156}Uses:716 720 718Used by:722
Symbol 722 MovieClip {thelastcanopyng_fla.lovelybuttons_154}Uses:719 721Used by:723 739
Symbol 723 MovieClip {thelastcanopyng_fla.GameOverScreen_153}Uses:713 714 715 722Used by:Timeline
Symbol 724 BitmapUsed by:725
Symbol 725 GraphicUses:724Used by:726
Symbol 726 MovieClipUses:725Used by:740
Symbol 727 BitmapUsed by:728
Symbol 728 GraphicUses:727Used by:729
Symbol 729 MovieClipUses:728Used by:740
Symbol 730 BitmapUsed by:731
Symbol 731 GraphicUses:730Used by:732
Symbol 732 MovieClipUses:731Used by:740
Symbol 733 TextUses:103Used by:739
Symbol 734 EditableTextUses:103Used by:739
Symbol 735 TextUses:103Used by:739
Symbol 736 TextUses:103Used by:737
Symbol 737 MovieClipUses:634 736Used by:738
Symbol 738 MovieClipUses:737Used by:739
Symbol 739 MovieClip {thelastcanopyng_fla.YouWinScreen_161}Uses:733 734 735 738 722Used by:740
Symbol 740 MovieClip {thelastcanopyng_fla.endingSequence_157}Uses:726 729 732 739Used by:Timeline

Instance Names

"soundMC"Frame 3Symbol 644 MovieClip {thelastcanopyng_fla.soundButton_139}
"gameFieldMC"Frame 5Symbol 676 MovieClip {thelastcanopyng_fla.gameField_149}
"treeMC"Frame 5Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150}
"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 {thelastcanopyng_fla.tutorialarrow_171} Frame 1Symbol 235 MovieClip
"spacebarMC"Symbol 275 MovieClip {thelastcanopyng_fla.tutorial_inside_173} Frame 1Symbol 242 MovieClip
"arrowMC"Symbol 279 MovieClip {HowToPlayPanel} Frame 1Symbol 236 MovieClip {thelastcanopyng_fla.tutorialarrow_171}
"tutorialMC"Symbol 279 MovieClip {HowToPlayPanel} Frame 1Symbol 275 MovieClip {thelastcanopyng_fla.tutorial_inside_173}
"bossLifeBgMC"Symbol 292 MovieClip {BossLifeMC} Frame 1Symbol 282 MovieClip
"life1MC"Symbol 292 MovieClip {BossLifeMC} Frame 1Symbol 285 MovieClip
"life2MC"Symbol 292 MovieClip {BossLifeMC} Frame 1Symbol 287 MovieClip
"life3MC"Symbol 292 MovieClip {BossLifeMC} Frame 1Symbol 289 MovieClip
"life4MC"Symbol 292 MovieClip {BossLifeMC} Frame 1Symbol 291 MovieClip
"blade2MC"Symbol 486 MovieClip {Lvl1BigEnemy} Frame 1Symbol 483 MovieClip
"blade1MC"Symbol 486 MovieClip {Lvl1BigEnemy} Frame 1Symbol 483 MovieClip
"scannerMC"Symbol 506 MovieClip {Lvl2BossEnemy} Frame 1Symbol 112 MovieClip
"scannerMC2"Symbol 506 MovieClip {Lvl2BossEnemy} Frame 1Symbol 112 MovieClip
"scanThingMC"Symbol 506 MovieClip {Lvl2BossEnemy} Frame 1Symbol 505 MovieClip
"scanThingMC2"Symbol 506 MovieClip {Lvl2BossEnemy} Frame 1Symbol 505 MovieClip
"fairyMC"Symbol 565 MovieClip {Lvl4BossMC} Frame 1Symbol 541 MovieClip
"hatchMC"Symbol 565 MovieClip {Lvl4BossMC} Frame 1Symbol 564 MovieClip {thelastcanopyng_fla.Lvl4BossMC_hatch_117}
"menu3MC"Symbol 620 MovieClip {thelastcanopyng_fla.menuAnim_127} Frame 1Symbol 613 MovieClip
"menu2MC"Symbol 620 MovieClip {thelastcanopyng_fla.menuAnim_127} Frame 1Symbol 616 MovieClip
"menu1MC"Symbol 620 MovieClip {thelastcanopyng_fla.menuAnim_127} Frame 1Symbol 619 MovieClip
"button_mc"Symbol 624 MovieClip {thelastcanopyng_fla.button2_mc_131} Frame 1Symbol 623 MovieClip
"menuAnimMC"Symbol 640 MovieClip {thelastcanopyng_fla.menuMC_126} Frame 1Symbol 620 MovieClip {thelastcanopyng_fla.menuAnim_127}
"btnClickHere"Symbol 640 MovieClip {thelastcanopyng_fla.menuMC_126} Frame 1Symbol 637 MovieClip
"voteMC"Symbol 640 MovieClip {thelastcanopyng_fla.menuMC_126} Frame 1Symbol 639 MovieClip
"diffBarMC"Symbol 671 MovieClip {thelastcanopyng_fla.difficultychoicemenu_145} Frame 1Symbol 655 MovieClip
"detect1MC"Symbol 671 MovieClip {thelastcanopyng_fla.difficultychoicemenu_145} Frame 1Symbol 670 MovieClip
"detect2MC"Symbol 671 MovieClip {thelastcanopyng_fla.difficultychoicemenu_145} Frame 1Symbol 670 MovieClip
"detect3MC"Symbol 671 MovieClip {thelastcanopyng_fla.difficultychoicemenu_145} Frame 1Symbol 670 MovieClip
"detect0MC"Symbol 671 MovieClip {thelastcanopyng_fla.difficultychoicemenu_145} Frame 1Symbol 670 MovieClip
"intro1MC"Symbol 672 MovieClip {thelastcanopyng_fla.introSequence_140} Frame 1Symbol 647 MovieClip
"intro2MC"Symbol 672 MovieClip {thelastcanopyng_fla.introSequence_140} Frame 1Symbol 650 MovieClip
"intro3MC"Symbol 672 MovieClip {thelastcanopyng_fla.introSequence_140} Frame 1Symbol 653 MovieClip
"difficultyMC"Symbol 672 MovieClip {thelastcanopyng_fla.introSequence_140} Frame 1Symbol 671 MovieClip {thelastcanopyng_fla.difficultychoicemenu_145}
"txtStatus"Symbol 676 MovieClip {thelastcanopyng_fla.gameField_149} Frame 1Symbol 675 EditableText
"absorbFillMC"Symbol 691 MovieClip {thelastcanopyng_fla.AbsorbInterface_151} Frame 1Symbol 689 MovieClip
"absorbMC"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 691 MovieClip {thelastcanopyng_fla.AbsorbInterface_151}
"txtScore"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 693 EditableText
"txtBonus1"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 694 EditableText
"txtBonus2"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 695 EditableText
"txtBonus3"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 696 EditableText
"txtBonus4"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 697 EditableText
"txtBonus5"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 698 EditableText
"txtLife"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 702 EditableText
"txtQuality"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 704 EditableText
"txtParticles"Symbol 712 MovieClip {thelastcanopyng_fla.treebarkcopy_150} Frame 1Symbol 706 EditableText
"mainMenuMC"Symbol 722 MovieClip {thelastcanopyng_fla.lovelybuttons_154} Frame 1Symbol 719 MovieClip {thelastcanopyng_fla.btnBackToMainMenu_155}
"submitScoreMC"Symbol 722 MovieClip {thelastcanopyng_fla.lovelybuttons_154} Frame 1Symbol 721 MovieClip {thelastcanopyng_fla.btnSubmitScore_156}
"txtScore"Symbol 723 MovieClip {thelastcanopyng_fla.GameOverScreen_153} Frame 1Symbol 714 EditableText
"pressAnyKeyMC"Symbol 723 MovieClip {thelastcanopyng_fla.GameOverScreen_153} Frame 1Symbol 722 MovieClip {thelastcanopyng_fla.lovelybuttons_154}
"txtScore"Symbol 739 MovieClip {thelastcanopyng_fla.YouWinScreen_161} Frame 1Symbol 734 EditableText
"pressAnyKeyMC"Symbol 739 MovieClip {thelastcanopyng_fla.YouWinScreen_161} Frame 1Symbol 738 MovieClip
"pressAnyKeyMC"Symbol 739 MovieClip {thelastcanopyng_fla.YouWinScreen_161} Frame 1Symbol 722 MovieClip {thelastcanopyng_fla.lovelybuttons_154}
"intro1MC"Symbol 740 MovieClip {thelastcanopyng_fla.endingSequence_157} Frame 1Symbol 726 MovieClip
"intro2MC"Symbol 740 MovieClip {thelastcanopyng_fla.endingSequence_157} Frame 1Symbol 729 MovieClip
"intro3MC"Symbol 740 MovieClip {thelastcanopyng_fla.endingSequence_157} Frame 1Symbol 732 MovieClip
"difficultyMC"Symbol 740 MovieClip {thelastcanopyng_fla.endingSequence_157} Frame 1Symbol 739 MovieClip {thelastcanopyng_fla.YouWinScreen_161}

Special Tags

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




http://swfchan.com/13/64646/info.shtml
Created: 13/4 -2019 01:01:51 Last modified: 13/4 -2019 01:01:51 Server time: 13/05 -2024 16:45:22