Section 1
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class AdLoader extends Sprite {
private var cpmstarLoader:Loader;
private var contentspotid:String;
public function AdLoader(_arg1:String){
this.contentspotid = _arg1;
addEventListener(Event.ADDED, addedHandler);
}
private function addedHandler(_arg1:Event):void{
removeEventListener(Event.ADDED, addedHandler);
Security.allowDomain("server.cpmstar.com");
var _local2 = "http://server.cpmstar.com/adviewas3.swf";
var _local3:DisplayObjectContainer = parent;
cpmstarLoader = new Loader();
cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler);
cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler);
cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid)));
addChild(cpmstarLoader);
}
private function dispatchHandler(_arg1:Event):void{
dispatchEvent(_arg1);
}
}
}//package CPMStar
Section 2
//arthurAnim_1 (oba_fla.arthurAnim_1)
package oba_fla {
import flash.display.*;
public dynamic class arthurAnim_1 extends MovieClip {
public var fighting:MovieClip;
public function arthurAnim_1(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 25, frame26);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
play();
}
function frame26(){
stop();
}
}
}//package oba_fla
Section 3
//arthurAnimBoss_168 (oba_fla.arthurAnimBoss_168)
package oba_fla {
import flash.display.*;
public dynamic class arthurAnimBoss_168 extends MovieClip {
public var fighting:MovieClip;
public function arthurAnimBoss_168(){
addFrameScript(0, frame1, 1, frame2, 21, frame22);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame22(){
stop();
}
}
}//package oba_fla
Section 4
//arthurFighting_5 (oba_fla.arthurFighting_5)
package oba_fla {
import flash.display.*;
public dynamic class arthurFighting_5 extends MovieClip {
public function arthurFighting_5(){
addFrameScript(22, frame23);
}
function frame23(){
(parent as MovieClip).gotoAndStop("right");
}
}
}//package oba_fla
Section 5
//arthurGameWonAnim_173 (oba_fla.arthurGameWonAnim_173)
package oba_fla {
import flash.display.*;
public dynamic class arthurGameWonAnim_173 extends MovieClip {
public function arthurGameWonAnim_173(){
addFrameScript(0, frame1, 279, frame280);
}
function frame1(){
play();
}
function frame280(){
gotoAndPlay(91);
}
}
}//package oba_fla
Section 6
//batAnim_152 (oba_fla.batAnim_152)
package oba_fla {
import flash.display.*;
public dynamic class batAnim_152 extends MovieClip {
public function batAnim_152(){
addFrameScript(0, frame1, 1, frame2, 19, frame20);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame20(){
stop();
}
}
}//package oba_fla
Section 7
//bombHolder_89 (oba_fla.bombHolder_89)
package oba_fla {
import flash.display.*;
public dynamic class bombHolder_89 extends MovieClip {
public function bombHolder_89(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package oba_fla
Section 8
//brokenFloorAnim_81 (oba_fla.brokenFloorAnim_81)
package oba_fla {
import flash.display.*;
public dynamic class brokenFloorAnim_81 extends MovieClip {
public function brokenFloorAnim_81(){
addFrameScript(0, frame1, 1, frame2, 29, frame30);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame30(){
stop();
}
}
}//package oba_fla
Section 9
//button_163 (oba_fla.button_163)
package oba_fla {
import flash.display.*;
public dynamic class button_163 extends MovieClip {
public function button_163(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package oba_fla
Section 10
//caveRocksAnim_61 (oba_fla.caveRocksAnim_61)
package oba_fla {
import flash.display.*;
public dynamic class caveRocksAnim_61 extends MovieClip {
public function caveRocksAnim_61(){
addFrameScript(0, frame1, 1, frame2, 59, frame60);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame60(){
stop();
}
}
}//package oba_fla
Section 11
//doorAnim_68 (oba_fla.doorAnim_68)
package oba_fla {
import flash.display.*;
public dynamic class doorAnim_68 extends MovieClip {
public function doorAnim_68(){
addFrameScript(0, frame1, 1, frame2, 29, frame30);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame30(){
stop();
}
}
}//package oba_fla
Section 12
//fgGameA_48 (oba_fla.fgGameA_48)
package oba_fla {
import flash.display.*;
import flash.text.*;
public dynamic class fgGameA_48 extends MovieClip {
public var speaker:MovieClip;
public var clicksText:TextField;
public var pauseGame:MovieClip;
public var overlay:MovieClip;
public var pauseFade:MovieClip;
public function fgGameA_48(){
addFrameScript(0, frame1, 10, frame11, 11, frame12);
}
function frame1(){
play();
}
function frame11(){
stop();
}
function frame12(){
play();
}
}
}//package oba_fla
Section 13
//fgMenu_35 (oba_fla.fgMenu_35)
package oba_fla {
import flash.display.*;
public dynamic class fgMenu_35 extends MovieClip {
public var speaker:MovieClip;
public function fgMenu_35(){
addFrameScript(0, frame1, 10, frame11, 11, frame12);
}
function frame1(){
play();
}
function frame11(){
stop();
}
function frame12(){
play();
}
}
}//package oba_fla
Section 14
//flamethrower_160 (oba_fla.flamethrower_160)
package oba_fla {
import flash.display.*;
public dynamic class flamethrower_160 extends MovieClip {
public function flamethrower_160(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
play();
}
}
}//package oba_fla
Section 15
//ghostFadeIn_76 (oba_fla.ghostFadeIn_76)
package oba_fla {
import flash.display.*;
public dynamic class ghostFadeIn_76 extends MovieClip {
public var bomb:MovieClip;
public function ghostFadeIn_76(){
addFrameScript(0, frame1, 1, frame2, 29, frame30);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame30(){
stop();
}
}
}//package oba_fla
Section 16
//levelDirAbridgeAnim_104 (oba_fla.levelDirAbridgeAnim_104)
package oba_fla {
import flash.display.*;
public dynamic class levelDirAbridgeAnim_104 extends MovieClip {
public function levelDirAbridgeAnim_104(){
addFrameScript(0, frame1, 1, frame2, 59, frame60);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame60(){
stop();
}
}
}//package oba_fla
Section 17
//leverAnim_71 (oba_fla.leverAnim_71)
package oba_fla {
import flash.display.*;
public dynamic class leverAnim_71 extends MovieClip {
public function leverAnim_71(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package oba_fla
Section 18
//light_135 (oba_fla.light_135)
package oba_fla {
import flash.display.*;
public dynamic class light_135 extends MovieClip {
public function light_135(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package oba_fla
Section 19
//MainTimeline (oba_fla.MainTimeline)
package oba_fla {
import flash.geom.*;
import flash.utils.*;
import flash.events.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.common.events.*;
import org.flintparticles.twoD.zones.*;
import flash.filters.*;
import flash.display.*;
import org.flintparticles.common.energyEasing.*;
import flash.media.*;
import org.flintparticles.twoD.emitters.*;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.twoD.actions.*;
import CPMStar.*;
import flash.text.*;
import flash.ui.*;
import flash.net.*;
import org.flintparticles.twoD.renderers.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var button6:MovieClip;
public var flamethrower11:MovieClip;
public var flamethrower3:MovieClip;
public var bomb1:MovieClip;
public var ghostA0:MovieClip;
public var lever1:MovieClip;
public var button7:MovieClip;
public var flamethrower2:MovieClip;
public var bomb2:MovieClip;
public var light0:MovieClip;
public var ghostB0:MovieClip;
public var lever2:MovieClip;
public var tile0:MovieClip;
public var ghostA1:MovieClip;
public var button8:MovieClip;
public var bomb3:MovieClip;
public var light1:MovieClip;
public var spikedBlocks:MovieClip;
public var ghostB1:MovieClip;
public var lever3:MovieClip;
public var tile1:MovieClip;
public var powerbar:MovieClip;
public var bomb:MovieClip;
public var buttonCredits:SimpleButton;
public var bomb4:MovieClip;
public var light2:MovieClip;
public var lever4:MovieClip;
public var tile2:MovieClip;
public var lava:MovieClip;
public var player:MovieClip;
public var buttonSubmit:SimpleButton;
public var spikedCeiling:MovieClip;
public var lever5:MovieClip;
public var tile3:MovieClip;
public var zombie:MovieClip;
public var loader_info:TextField;
public var spikedFloor:MovieClip;
public var lever6:MovieClip;
public var arrow0:MovieClip;
public var hitmapA:MovieClip;
public var adBox:MovieClip;
public var fm_bar:MovieClip;
public var buttonMenu:SimpleButton;
public var lever7:MovieClip;
public var arrow1:MovieClip;
public var hitmapB:MovieClip;
public var birdA:MovieClip;
public var flamethrower9:MovieClip;
public var batSleeping:MovieClip;
public var arrow2:MovieClip;
public var caveRocks:MovieClip;
public var birdB:MovieClip;
public var cloudA:MovieClip;
public var flamethrower8:MovieClip;
public var spikes:MovieClip;
public var arrow3:MovieClip;
public var spikedWall:MovieClip;
public var cloudB:MovieClip;
public var scoreText:TextField;
public var boss:MovieClip;
public var scorpion1:MovieClip;
public var arrow4:MovieClip;
public var bg:MovieClip;
public var hitmap:MovieClip;
public var cloudC:MovieClip;
public var mist:MovieClip;
public var groundSpikes:MovieClip;
public var arrow10:MovieClip;
public var arrow5:MovieClip;
public var doors0:MovieClip;
public var scorpion0:MovieClip;
public var buttonScores:SimpleButton;
public var fm_bar_bg:MovieClip;
public var buttonContinue:SimpleButton;
public var dagger:MovieClip;
public var button0:MovieClip;
public var flamethrower5:MovieClip;
public var arrow11:MovieClip;
public var arrow6:MovieClip;
public var spikedFloor0:MovieClip;
public var doors1:MovieClip;
public var button1:MovieClip;
public var flamethrower4:MovieClip;
public var doors2:MovieClip;
public var zombie0:MovieClip;
public var arrow7:MovieClip;
public var spikedFloor1:MovieClip;
public var buttonLink:SimpleButton;
public var button2:MovieClip;
public var flamethrower7:MovieClip;
public var bat:MovieClip;
public var zombie1:MovieClip;
public var doors3:MovieClip;
public var bridge:MovieClip;
public var arrow8:MovieClip;
public var fg:MovieClip;
public var buttonHelp:SimpleButton;
public var button3:MovieClip;
public var flamethrower6:MovieClip;
public var zombie2:MovieClip;
public var arrow9:MovieClip;
public var platform:MovieClip;
public var buttonLogo:SimpleButton;
public var button4:MovieClip;
public var flamethrower1:MovieClip;
public var buttonPlay:SimpleButton;
public var fireball:MovieClip;
public var blocks:MovieClip;
public var button5:MovieClip;
public var flamethrower10:MovieClip;
public var flamethrower0:MovieClip;
public var bomb0:MovieClip;
public var lever0:MovieClip;
public var CPMStarContentSpotID:String;
public var ad:DisplayObject;
public var allowed_site:String;
public var domain:String;
public var domain_idx:int;
public var loaded:Number;
public var percent:Number;
public var sound:Boolean;
public var myMenu:ContextMenu;
public var agi_url:String;
public var devKey:String;
public var gameKey:String;
public var agi;
public var urlRequest:URLRequest;
public var loader:Loader;
public var obj:Object;
public var i;
public var j;
public var k;
public var quit;
public var gamePaused;
public var levelPassed:Boolean;
public var shaking;
public var shakeCount;
public var menu:Boolean;
public var rock:Boolean;
public var help:Boolean;
public var scores:Boolean;
public var credits:Boolean;
public var submit:Boolean;
public var renderer:BitmapRenderer;
public var emitter:Emitter2D;
public var blood:Emitter2D;
public var fire:Emitter2D;
public var clicks;
public var dir;
public var speedX;
public var speedY;
public var dying;
public var gravity;
public var jump;
public var acc;
public var lastSoundTime;
public var theme:Sound;
public var themeChannel:SoundChannel;
public var themeTransform:SoundTransform;
public var themeSongPaused;
public var rockSlide:Sound;
public var wind:Sound;
public var swordWhip:Sound;
public var screamA:Sound;
public var screamB:Sound;
public var ground:Sound;
public var lever:Sound;
public var doorOpen:Sound;
public var doorShut:Sound;
public var explosion:Sound;
public var footsteps:Sound;
public var land:Sound;
public var hit:Sound;
public var die:Sound;
public var ghostMoan:Sound;
public var arrowRelease:Sound;
public var flamethrower:Sound;
public var monsterPurr:Sound;
public var monsterDeath:Sound;
public var stinger:Sound;
public var scorpions;
public var ghostPickedA;
public var doors;
public var floorBroken;
public var power;
public var charging;
public var platformSpeed;
public var touchingTile;
public var zombies;
public var ghostPickedB;
public var touchingLight;
public var spikedFloors;
public var touchingButton;
public var throwing;
public var bossDead;
public var endY;
public var lastX;
public var lastY;
public function MainTimeline(){
addFrameScript(0, frame1, 31, frame32, 248, frame249, 249, frame250, 339, frame340, 340, frame341, 341, frame342, 342, frame343, 343, frame344, 344, frame345, 345, frame346, 346, frame347, 347, frame348, 348, frame349, 349, frame350, 350, frame351, 351, frame352, 352, frame353, 353, frame354, 354, frame355, 355, frame356, 356, frame357, 357, frame358, 358, frame359, 359, frame360, 360, frame361, 361, frame362, 362, frame363, 363, frame364, 364, frame365, 454, frame455, 455, frame456, 456, frame457, 457, frame458, 458, frame459, 459, frame460);
}
public function onContinueClick(_arg1:MouseEvent):void{
buttonContinue.removeEventListener(MouseEvent.MOUSE_DOWN, onContinueClick);
adBox.removeChild(ad);
gotoAndPlay(1, "splashA");
}
public function load_progress(_arg1:Event):void{
loaded = (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal);
percent = Math.round((loaded * 100));
fm_bar.scaleX = loaded;
loader_info.text = (("Loading: " + percent) + "%");
if (percent == 100){
fm_bar.removeEventListener(Event.ENTER_FRAME, load_progress);
fm_bar.visible = false;
fm_bar_bg.visible = false;
loader_info.visible = false;
buttonContinue.visible = true;
};
}
public function loadComplete(_arg1:Event):void{
agi = _arg1.currentTarget.content;
addChild(agi);
agi.init(devKey, gameKey);
play();
}
public function handleOnAGUIClose():void{
gotoAndStop(1, "menu");
}
public function onLogoClick(_arg1:MouseEvent):void{
var event = _arg1;
var url = "http://www.ninjadoodle.com/";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, "_blank");
} catch(e:Error) {
trace("Error occurred!");
};
}
public function onMenuClick(_arg1:MouseEvent):void{
menu = true;
submit = false;
fg.play();
}
public function onSubmitClick(_arg1:MouseEvent):void{
menu = false;
submit = true;
fg.play();
}
public function onPlayClick(_arg1:MouseEvent):void{
rock = true;
help = false;
scores = false;
credits = false;
fg.play();
}
public function onHelpClick(_arg1:MouseEvent):void{
rock = false;
help = true;
scores = false;
credits = false;
fg.play();
}
public function onScoresClick(_arg1:MouseEvent):void{
rock = false;
help = false;
scores = true;
credits = false;
fg.play();
}
public function onCreditsClick(_arg1:MouseEvent):void{
rock = false;
help = false;
scores = false;
credits = true;
fg.play();
}
public function onLinkClick(_arg1:MouseEvent):void{
var event = _arg1;
var url = "http://www.armorgames.com/";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, "_blank");
} catch(e:Error) {
trace("Error occurred!");
};
}
public function menuScreen(_arg1:Event):void{
fg.speaker.buttonMode = true;
fg.speaker.addEventListener(MouseEvent.MOUSE_DOWN, onSpeakerClick);
if (sound){
fg.speaker.gotoAndStop("on");
} else {
fg.speaker.gotoAndStop("off");
};
if (fg.currentFrame == fg.totalFrames){
stage.removeEventListener(Event.ENTER_FRAME, menuScreen);
if (rock){
nextScene();
stage.addEventListener(Event.ENTER_FRAME, myEnterFrame);
};
if (help){
gotoAndStop(1, "help");
};
if (scores){
gotoAndStop(1, "scores");
};
if (credits){
gotoAndStop(1, "credits");
};
};
}
public function myEnterFrame(_arg1:Event):void{
if (((((!(gamePaused)) && (!(levelPassed)))) && (!(quit)))){
fg.speaker.buttonMode = true;
fg.pauseGame.buttonMode = true;
fg.speaker.addEventListener(MouseEvent.MOUSE_DOWN, onSpeakerClick);
fg.pauseGame.addEventListener(MouseEvent.MOUSE_DOWN, onPauseClick);
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onOverlayClick);
fg.clicksText.text = ("CLICKS: " + clicks);
if (sound){
fg.speaker.gotoAndStop("on");
} else {
fg.speaker.gotoAndStop("off");
};
if (shaking){
this.x = (Math.floor((Math.random() * ((1 + 6) - 1))) + 1);
this.y = (Math.floor((Math.random() * ((1 + 6) - 1))) + 1);
shakeCount--;
if (shakeCount == 0){
shaking = false;
this.x = 0;
this.y = 0;
};
};
} else {
fg.speaker.buttonMode = false;
fg.pauseGame.buttonMode = false;
fg.speaker.removeEventListener(MouseEvent.MOUSE_DOWN, onSpeakerClick);
fg.pauseGame.removeEventListener(MouseEvent.MOUSE_DOWN, onPauseClick);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onOverlayClick);
if (levelPassed){
fg.pauseGame.gotoAndStop(2);
fg.play();
if (fg.currentFrame == fg.totalFrames){
nextScene();
quit = false;
gamePaused = false;
levelPassed = false;
this.x = 0;
this.y = 0;
};
};
if (gamePaused){
if (fg.pauseFade.currentFrame == 1){
fg.pauseFade.play();
fg.pauseFade.pauseMenu.buttonResume.addEventListener(MouseEvent.MOUSE_DOWN, onResumeClick);
fg.pauseFade.pauseMenu.buttonQuit.addEventListener(MouseEvent.MOUSE_DOWN, onQuitClick);
fg.pauseFade.pauseMenu.buttonMoreGames.addEventListener(MouseEvent.MOUSE_DOWN, onMoreGamesClick);
};
if (quit){
if (fg.currentFrame != fg.totalFrames){
fg.play();
};
if (fg.currentFrame == fg.totalFrames){
gotoAndStop(1, "menu");
stage.removeEventListener(Event.ENTER_FRAME, myEnterFrame);
this.x = 0;
this.y = 0;
};
};
};
};
}
public function onSpeakerClick(_arg1:MouseEvent):void{
if (sound){
sound = false;
SoundMixer.soundTransform = new SoundTransform(0);
} else {
sound = true;
SoundMixer.soundTransform = new SoundTransform(1);
};
}
public function onPauseClick(_arg1:MouseEvent):void{
if (gamePaused){
gamePaused = false;
} else {
gamePaused = true;
};
}
public function onResumeClick(_arg1:MouseEvent):void{
gamePaused = false;
fg.pauseFade.pauseMenu.buttonResume.removeEventListener(MouseEvent.MOUSE_DOWN, onResumeClick);
fg.pauseFade.pauseMenu.buttonQuit.removeEventListener(MouseEvent.MOUSE_DOWN, onQuitClick);
fg.pauseFade.pauseMenu.buttonMoreGames.removeEventListener(MouseEvent.MOUSE_DOWN, onMoreGamesClick);
if (fg.pauseFade.currentFrame == 10){
fg.pauseFade.play();
};
}
public function onQuitClick(_arg1:MouseEvent):void{
quit = true;
fg.pauseFade.pauseMenu.buttonResume.removeEventListener(MouseEvent.MOUSE_DOWN, onResumeClick);
fg.pauseFade.pauseMenu.buttonQuit.removeEventListener(MouseEvent.MOUSE_DOWN, onQuitClick);
fg.pauseFade.pauseMenu.buttonMoreGames.removeEventListener(MouseEvent.MOUSE_DOWN, onMoreGamesClick);
}
public function onMoreGamesClick(_arg1:MouseEvent):void{
var event = _arg1;
var url = "http://www.armorgames.com/";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, "_blank");
} catch(e:Error) {
trace("Error occurred!");
};
}
public function onOverlayClick(_arg1:MouseEvent):void{
clicks++;
}
public function removeEmitter(_arg1:EmitterEvent):void{
emitter.stop();
}
public function removeBlood(_arg1:EmitterEvent):void{
blood.stop();
}
public function onLevelFightA(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelFightMouseDown);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (birdA.x > -20){
birdA.x = (birdA.x - 2);
} else {
birdA.x = 680;
};
if (birdB.x > -20){
birdB.x = (birdB.x - 1.5);
} else {
birdB.x = 680;
};
if ((cloudA.x - (cloudA.width / 2)) < 680){
cloudA.x = (cloudA.x + 1.2);
} else {
cloudA.x = (-20 - (cloudA.width / 2));
};
if ((cloudB.x - (cloudA.width / 2)) < 680){
cloudB.x = (cloudB.x + 1);
} else {
cloudB.x = (-20 - (cloudB.width / 2));
};
if ((cloudC.x - (cloudA.width / 2)) < 680){
cloudC.x = (cloudC.x + 0.8);
} else {
cloudC.x = (-20 - (cloudC.width / 2));
};
if (speedY > 0){
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
};
i = 0;
while (i < scorpions) {
if ((this[("scorpion" + i)].x - player.x) < 250){
if (this[("scorpion" + i)].currentFrame == 1){
this[("scorpion" + i)].gotoAndStop(2);
};
if (this[("scorpion" + i)].currentFrame < 3){
this[("scorpion" + i)].x--;
};
};
if (((player.hitTestObject(this[("scorpion" + i)])) && ((this[("scorpion" + i)].currentFrame < 3)))){
if (player.currentFrame == 5){
if (player.fighting.currentFrame > 10){
if (this[("scorpion" + i)].currentFrame < 3){
hit.play();
screamB.play();
this[("scorpion" + i)].gotoAndPlay(3);
};
} else {
if (!dying){
die.play();
dying = true;
};
};
} else {
if (!dying){
die.play();
dying = true;
};
};
};
i++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < scorpions) {
this[("scorpion" + i)].gotoAndStop(1);
i++;
};
scorpion0.x = 560;
speedX = 2;
speedY = 0;
player.x = 40;
player.y = 184;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelFightA);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelFightMouseDown);
};
};
}
public function onLevelFightMouseDown(_arg1:MouseEvent):void{
if (player.currentFrame == 1){
swordWhip.play();
player.gotoAndStop("fighting");
};
}
public function onLevelStopA(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelStopMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onLevelStopMouseUp);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (speedY > 0){
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
};
if (birdA.x > -20){
birdA.x = (birdA.x - 2);
} else {
birdA.x = 680;
};
if (birdB.x > -20){
birdB.x = (birdB.x - 1.5);
} else {
birdB.x = 680;
};
if ((cloudA.x - (cloudA.width / 2)) < 680){
cloudA.x = (cloudA.x + 1.2);
} else {
cloudA.x = (-20 - (cloudA.width / 2));
};
if ((cloudB.x - (cloudA.width / 2)) < 680){
cloudB.x = (cloudB.x + 1);
} else {
cloudB.x = (-20 - (cloudB.width / 2));
};
if ((cloudC.x - (cloudA.width / 2)) < 680){
cloudC.x = (cloudC.x + 0.8);
} else {
cloudC.x = (-20 - (cloudC.width / 2));
};
if ((caveRocks.x - player.x) < 100){
if (caveRocks.currentFrame == 1){
rockSlide.play();
caveRocks.play();
shaking = true;
shakeCount = 50;
};
};
if (player.hitTestObject(caveRocks)){
if (!dying){
die.play();
dying = true;
};
};
if (dying){
if (player.alpha > 0){
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
caveRocks.gotoAndStop(1);
player.x = 40;
player.y = 384;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelStopA);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelStopMouseDown);
stage.removeEventListener(MouseEvent.MOUSE_UP, onLevelStopMouseUp);
};
};
}
public function onLevelStopMouseDown(_arg1:MouseEvent):void{
speedX = 0;
}
public function onLevelStopMouseUp(_arg1:MouseEvent):void{
speedX = 2;
}
public function onLevelJumpA(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelJumpMouseDown);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
while (((hitmapA.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmapA.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
if (jump){
speedY = -7;
jump = false;
};
};
if (speedY > 0){
while (((hitmapB.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmapB.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
if (jump){
speedY = -7;
jump = false;
};
};
};
while (hitmapA.hitTestPoint(player.x, (player.y - (player.height / 2)), true)) {
player.y++;
speedY = 0;
};
while (hitmapA.hitTestPoint(((player.x + (player.width / 2)) + 1), player.y, true)) {
player.x--;
speedX = (speedX * -1);
player.gotoAndStop("left");
};
while (hitmapA.hitTestPoint(((player.x - (player.width / 2)) + 1), player.y, true)) {
player.x++;
speedX = (speedX * -1);
player.gotoAndStop("right");
};
i = 0;
while (i < 2) {
if (((this[("lever" + i)].hitTestObject(player)) && (!(dying)))){
if (this[("lever" + i)].currentFrame == 1){
lever.play();
doorOpen.play();
this[("lever" + i)].play();
this.hitmapA[("door" + i)].play();
};
};
i++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
player.x = 0;
player.y = 144;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelJumpA);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelJumpMouseDown);
};
};
}
public function onLevelJumpMouseDown(_arg1:MouseEvent):void{
jump = true;
}
public function onLevelZigZagA(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelZigZagMouseDown);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
hitmap.x--;
bg.x--;
if (!hitmap.hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
die.play();
dying = true;
};
};
if (((((ghostA0.x - player.x) < 140)) && (!(dying)))){
if (this[("ghostA" + ghostPickedA)].currentFrame == 1){
ghostMoan.play();
this[("ghostA" + ghostPickedA)].play();
};
};
i = 0;
while (i < 2) {
this[("ghostA" + i)].x--;
if (((this[("ghostA" + i)].hitTestObject(player)) && (!(dying)))){
die.play();
shaking = true;
shakeCount = 10;
dying = true;
};
i++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
ghostA0.x = 700;
ghostA1.x = 800;
ghostPickedA = Math.floor((Math.random() * 2));
i = 0;
while (i < 2) {
this[("ghostA" + i)].gotoAndStop(1);
i++;
};
bg.x = -20;
hitmap.x = -20;
player.x = 20;
player.y = 140;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
speedX = 1;
speedY = 2;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelZigZagA);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelZigZagMouseDown);
};
};
}
public function onLevelZigZagMouseDown(_arg1:MouseEvent):void{
footsteps.play();
speedY = (speedY * -1);
}
public function onLevelDoorsA(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelDoorsMouseDown);
if (hitmap.trapdoor.currentFrame == (hitmap.trapdoor.totalFrames - 1)){
doorShut.play();
shaking = true;
shakeCount = 20;
};
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (bomb.hitTestObject(player)){
if (bomb.currentFrame == 1){
explosion.play();
die.play();
bomb.play();
shaking = true;
shakeCount = 20;
emitter.x = bomb.x;
emitter.y = bomb.y;
emitter.start();
dying = true;
};
};
i = 0;
while (i < 1) {
if (((this[("lever" + i)].hitTestObject(player)) && (!(dying)))){
if (this[("lever" + i)].currentFrame == 1){
lever.play();
doorOpen.play();
this[("lever" + i)].play();
this.hitmap[("trapdoor" + i)].play();
};
};
i++;
};
if (hitmap.brokenFloor0.hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!floorBroken){
rockSlide.play();
floorBroken = true;
};
};
j = 0;
while (j < 2) {
if (this.hitmap[("brokenFloor" + j)].hitTestPoint((player.x - 40), (player.y + (player.height / 2)), true)){
if (this.hitmap[("brokenFloor" + j)].currentFrame == 1){
this.hitmap[("brokenFloor" + j)].play();
};
};
if (this.hitmap[("brokenFloor" + j)].hitTestObject(bomb)){
if (bomb.currentFrame == 1){
explosion.play();
bomb.play();
shaking = true;
shakeCount = 20;
emitter.x = bomb.x;
emitter.y = bomb.y;
emitter.start();
};
};
j++;
};
if (spikedWall.hitTestObject(player)){
if (!dying){
die.play();
dying = true;
};
};
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
while (hitmap.hitTestPoint(player.x, (player.y - (player.height / 2)), true)) {
player.y++;
speedY = 0;
};
while (hitmap.hitTestPoint(((player.x + (player.width / 2)) + 1), player.y, true)) {
player.x--;
speedX = -2;
player.gotoAndStop("left");
};
while (hitmap.hitTestPoint(((player.x - (player.width / 2)) + 1), player.y, true)) {
player.x++;
speedX = 2;
player.gotoAndStop("right");
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < 1) {
this[("lever" + i)].gotoAndStop(1);
this.hitmap[("trapdoor" + i)].gotoAndStop(1);
i++;
};
j = 0;
while (j < 2) {
this.hitmap[("brokenFloor" + j)].gotoAndStop(1);
j++;
};
bomb.gotoAndStop(1);
speedY = 0;
speedX = 2;
player.x = 40;
player.y = 384;
player.gotoAndStop("right");
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelDoorsA);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelDoorsMouseDown);
removeChild(renderer);
};
};
}
public function onLevelDoorsMouseDown(_arg1:MouseEvent):void{
k = 0;
while (k < doors) {
if (player.hitTestObject(this[("doors" + k)])){
footsteps.play();
if (player.y > this[("doors" + k)].y){
player.y = (player.y - 140);
} else {
if (player.y < this[("doors" + k)].y){
player.y = (player.y + 140);
};
};
};
k++;
};
}
public function onLevelLeapA(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelLeapMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onLevelLeapMouseUp);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (charging){
if (power < 6){
power = (power + 0.5);
} else {
power = 6;
};
};
powerbar.powerbarFill.width = (power * 16.66);
if (hitmap.hitTestPoint((platform.x + (platform.width / 2)), platform.y, true)){
platformSpeed = -1;
};
if (hitmap.hitTestPoint((platform.x - (platform.width / 2)), platform.y, true)){
platformSpeed = 1;
};
if (speedY > 0){
while (platform.hitTestPoint(player.x, ((player.y + (player.height / 2)) - 1), true)) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
speedX = platformSpeed;
player.y--;
if (jump){
speedY = (power * -1);
speedX = (power / 2);
jump = false;
power = 0;
};
};
};
platform.x = (platform.x + platformSpeed);
while (hitmap.hitTestPoint(player.x, ((player.y + (player.height / 2)) - 1), true)) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
speedX = 0;
player.y--;
if (jump){
speedY = (power * -1);
speedX = (power / 2);
jump = false;
power = 0;
};
};
while (hitmap.hitTestPoint(player.x, (player.y - (player.height / 2)), true)) {
player.y++;
speedY = 0;
};
while (hitmap.hitTestPoint(((player.x + (player.width / 2)) + 1), player.y, true)) {
player.x--;
speedX = (speedX * -1);
};
while (hitmap.hitTestPoint(((player.x - (player.width / 2)) + 1), player.y, true)) {
player.x++;
speedX = (speedX * -1);
};
i = 0;
while (i < spikedFloors) {
if (this[("spikedFloor" + i)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
die.play();
dying = true;
};
};
i++;
};
if (lava.hitTestPoint(player.x, player.y, true)){
if (!dying){
die.play();
dying = true;
};
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
platform.x = 320;
platformSpeed = -1;
power = 0;
speedY = 0;
speedX = 0;
jump = false;
player.x = 40;
player.y = 184;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
dir = 2;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelLeapA);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelLeapMouseDown);
stage.removeEventListener(MouseEvent.MOUSE_UP, onLevelLeapMouseUp);
};
};
}
public function onLevelLeapMouseDown(_arg1:MouseEvent):void{
if (!jump){
charging = true;
};
}
public function onLevelLeapMouseUp(_arg1:MouseEvent):void{
if (!jump){
jump = true;
charging = false;
};
}
public function onLevelRunA(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelRunMouseDown);
speedX = (speedX * 0.95);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (speedY > 0){
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
};
i = 0;
while (i < 12) {
if ((this[("arrow" + i)].x - player.x) < 20){
if (this[("arrow" + i)].y == 60){
arrowRelease.play();
};
this[("arrow" + i)].y = (this[("arrow" + i)].y + 2);
};
if (player.hitTestPoint(this[("arrow" + i)].x, this[("arrow" + i)].y, true)){
if (!dying){
die.play();
dying = true;
};
};
i++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < 12) {
this[("arrow" + i)].y = 30;
i++;
};
speedY = 0;
speedX = 0;
player.x = 60;
player.y = 384;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelRunA);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelRunMouseDown);
};
};
}
public function onLevelRunMouseDown(_arg1:MouseEvent):void{
speedX = (speedX + acc);
}
public function onLevelDirA(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onlevelDirMouseClick);
if (dir == 1){
player.x = (player.x + speedX);
};
if (dir == 2){
player.y = (player.y + speedX);
};
if (dir == 3){
player.x = (player.x - speedX);
};
if (dir == 4){
player.y = (player.y - speedX);
};
i = 0;
while (i < 4) {
if (this[("tile" + i)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (((!(touchingTile[i])) && ((bridge.currentFrame == 1)))){
lever.play();
touchingTile[i] = true;
this[("tile" + i)].rotation = (this[("tile" + i)].rotation + 90);
};
} else {
touchingTile[i] = false;
};
i++;
};
if (!hitmap.hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
die.play();
dying = true;
};
};
if (((((player.x + 5) > 440)) && ((bridge.currentFrame < bridge.totalFrames)))){
if (!dying){
die.play();
dying = true;
};
};
if ((((((((tile0.rotation == 0)) && ((tile1.rotation == 0)))) && ((tile2.rotation == 0)))) && ((tile3.rotation == 0)))){
if (bridge.currentFrame == 1){
doorOpen.play();
bridge.play();
};
};
if (dying){
dir = 0;
if (player.alpha > 0){
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < 4) {
this[("tile" + i)].rotation = 180;
i++;
};
bridge.gotoAndStop(1);
player.gotoAndStop(1);
player.x = 40;
player.y = 120;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
speedX = 2;
dir = 1;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelDirA);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onlevelDirMouseClick);
};
};
}
public function onlevelDirMouseClick(_arg1:MouseEvent):void{
if (!dying){
if (dir < 4){
dir++;
player.nextFrame();
} else {
dir = 1;
player.gotoAndStop(1);
};
};
}
public function onLevelFightB(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelFightMouseDown);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (birdA.x > -20){
birdA.x = (birdA.x - 2);
} else {
birdA.x = 680;
};
if (birdB.x > -20){
birdB.x = (birdB.x - 1.5);
} else {
birdB.x = 680;
};
if ((cloudA.x - (cloudA.width / 2)) < 680){
cloudA.x = (cloudA.x + 1.2);
} else {
cloudA.x = (-20 - (cloudA.width / 2));
};
if ((cloudB.x - (cloudA.width / 2)) < 680){
cloudB.x = (cloudB.x + 1);
} else {
cloudB.x = (-20 - (cloudB.width / 2));
};
if ((cloudC.x - (cloudA.width / 2)) < 680){
cloudC.x = (cloudC.x + 0.8);
} else {
cloudC.x = (-20 - (cloudC.width / 2));
};
if (speedY > 0){
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
};
i = 0;
while (i < scorpions) {
if ((this[("scorpion" + i)].x - player.x) < 250){
if (this[("scorpion" + i)].currentFrame == 1){
this[("scorpion" + i)].gotoAndStop(2);
};
if (this[("scorpion" + i)].currentFrame < 3){
this[("scorpion" + i)].x--;
};
};
if (((player.hitTestObject(this[("scorpion" + i)])) && ((this[("scorpion" + i)].currentFrame < 3)))){
if (player.currentFrame == 5){
if (player.fighting.currentFrame > 10){
if (this[("scorpion" + i)].currentFrame < 3){
hit.play();
screamB.play();
this[("scorpion" + i)].gotoAndPlay(3);
};
} else {
if (!dying){
die.play();
dying = true;
};
};
} else {
if (!dying){
die.play();
dying = true;
};
};
};
i++;
};
j = 0;
while (j < zombies) {
if ((this[("zombie" + j)].x - player.x) < 120){
if (this[("zombie" + j)].currentFrame == 1){
ground.play();
screamA.play();
this[("zombie" + j)].play();
shaking = true;
shakeCount = 20;
};
};
if (((player.hitTestObject(this[("zombie" + j)])) && ((this[("zombie" + j)].currentFrame < 45)))){
if (player.currentFrame == 5){
if (player.fighting.currentFrame > 10){
if (this[("zombie" + j)].currentFrame < 45){
hit.play();
screamB.play();
this[("zombie" + j)].gotoAndPlay(45);
};
} else {
if (!dying){
die.play();
dying = true;
};
};
} else {
if (!dying){
die.play();
dying = true;
};
};
};
j++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < scorpions) {
this[("scorpion" + i)].gotoAndStop(1);
i++;
};
scorpion0.x = 500;
j = 0;
while (j < zombies) {
this[("zombie" + j)].gotoAndStop(1);
j++;
};
speedX = 2;
speedY = 0;
player.x = 40;
player.y = 384;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelFightB);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelFightMouseDown);
};
};
}
public function onLevelStopB(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelStopMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onLevelStopMouseUp);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
hitmap.platform.play();
if (speedY > 0){
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
};
if (birdA.x > -20){
birdA.x = (birdA.x - 2);
} else {
birdA.x = 680;
};
if (birdB.x > -20){
birdB.x = (birdB.x - 1.5);
} else {
birdB.x = 680;
};
if ((cloudA.x - (cloudA.width / 2)) < 680){
cloudA.x = (cloudA.x + 1.2);
} else {
cloudA.x = (-20 - (cloudA.width / 2));
};
if ((cloudB.x - (cloudA.width / 2)) < 680){
cloudB.x = (cloudB.x + 1);
} else {
cloudB.x = (-20 - (cloudB.width / 2));
};
if ((cloudC.x - (cloudA.width / 2)) < 680){
cloudC.x = (cloudC.x + 0.8);
} else {
cloudC.x = (-20 - (cloudC.width / 2));
};
if (player.hitTestObject(spikes)){
if (!dying){
die.play();
dying = true;
};
};
if (dying){
if (player.alpha > 0){
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
hitmap.platform.gotoAndPlay(1);
player.x = 40;
player.y = 384;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (gamePaused){
hitmap.platform.stop();
};
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelStopB);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelStopMouseDown);
stage.removeEventListener(MouseEvent.MOUSE_UP, onLevelStopMouseUp);
};
};
}
public function onLevelJumpB(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelJumpMouseDown);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
while (((hitmapA.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmapA.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
if (jump){
speedY = -7;
jump = false;
};
};
if (speedY > 0){
while (((hitmapB.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmapB.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
if (jump){
speedY = -7;
jump = false;
};
};
};
while (hitmapA.hitTestPoint(player.x, (player.y - (player.height / 2)), true)) {
player.y++;
speedY = 0;
};
while (hitmapA.hitTestPoint(((player.x + (player.width / 2)) + 1), player.y, true)) {
player.x--;
speedX = (speedX * -1);
player.gotoAndStop("left");
};
while (hitmapA.hitTestPoint(((player.x - (player.width / 2)) + 1), player.y, true)) {
player.x++;
speedX = (speedX * -1);
player.gotoAndStop("right");
};
i = 0;
while (i < 8) {
if (((this[("lever" + i)].hitTestObject(player)) && (!(dying)))){
if (this[("lever" + i)].currentFrame == 1){
lever.play();
this[("lever" + i)].play();
};
};
i++;
};
if ((((((((((((((((lever0.currentFrame == lever0.totalFrames)) && ((lever1.currentFrame == lever1.totalFrames)))) && ((lever2.currentFrame == lever2.totalFrames)))) && ((lever3.currentFrame == lever3.totalFrames)))) && ((lever4.currentFrame == lever4.totalFrames)))) && ((lever5.currentFrame == lever5.totalFrames)))) && ((lever6.currentFrame == lever6.totalFrames)))) && ((lever7.currentFrame == lever7.totalFrames)))){
if (hitmapA.door.currentFrame == 1){
doorOpen.play();
hitmapA.door.play();
};
};
if (lava.hitTestPoint(player.x, player.y, true)){
if (!dying){
die.play();
dying = true;
};
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
hitmapA.door.gotoAndStop(1);
i = 0;
while (i < 8) {
this[("lever" + i)].gotoAndStop(1);
i++;
};
player.gotoAndStop("right");
jump = false;
speedX = 2;
speedY = 0;
player.x = 40;
player.y = 160;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelJumpB);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelJumpMouseDown);
};
};
}
public function onLevelZigZagB(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelZigZagMouseDown);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
hitmap.x--;
bg.x--;
if (!hitmap.hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
die.play();
dying = true;
};
};
if (((((ghostA0.x - player.x) < 130)) && (!(dying)))){
if (this[("ghostA" + ghostPickedA)].currentFrame == 1){
ghostMoan.play();
this[("ghostA" + ghostPickedA)].play();
};
};
if (((((ghostB0.x - player.x) < 130)) && (!(dying)))){
if (this[("ghostB" + ghostPickedB)].currentFrame == 1){
ghostMoan.play();
this[("ghostB" + ghostPickedB)].play();
};
};
i = 0;
while (i < 2) {
this[("ghostA" + i)].x--;
if (((this[("ghostA" + i)].hitTestObject(player)) && (!(dying)))){
die.play();
shaking = true;
shakeCount = 10;
dying = true;
};
this[("ghostB" + i)].x--;
if (((this[("ghostB" + i)].hitTestObject(player)) && (!(dying)))){
die.play();
shaking = true;
shakeCount = 10;
dying = true;
};
i++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
ghostA0.x = 320;
ghostA1.x = 440;
ghostB0.x = 800;
ghostB1.x = 920;
ghostPickedA = Math.floor((Math.random() * 2));
ghostPickedB = Math.floor((Math.random() * 2));
i = 0;
while (i < 2) {
this[("ghostA" + i)].gotoAndStop(1);
this[("ghostB" + i)].gotoAndStop(1);
i++;
};
bg.x = -20;
hitmap.x = -20;
player.x = 20;
player.y = 180;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
speedX = 1;
speedY = 2;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelZigZagB);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelZigZagMouseDown);
};
};
}
public function onLevelDoorsB(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelDoorsMouseDown);
if (hitmap.trapdoor.currentFrame == (hitmap.trapdoor.totalFrames - 1)){
doorShut.play();
shaking = true;
shakeCount = 20;
};
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (spikedFloor.hitTestObject(player)){
if (!dying){
die.play();
dying = true;
};
};
i = 0;
while (i < 3) {
if (((this[("lever" + i)].hitTestObject(player)) && (!(dying)))){
if (this[("lever" + i)].currentFrame == 1){
lever.play();
doorOpen.play();
this[("lever" + i)].play();
this.hitmap[("trapdoor" + i)].play();
};
};
i++;
};
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
while (hitmap.hitTestPoint(player.x, (player.y - (player.height / 2)), true)) {
player.y++;
speedY = 0;
};
while (hitmap.hitTestPoint(((player.x + (player.width / 2)) + 1), player.y, true)) {
player.x--;
speedX = -2;
player.gotoAndStop("left");
};
while (hitmap.hitTestPoint(((player.x - (player.width / 2)) + 1), player.y, true)) {
player.x++;
speedX = 2;
player.gotoAndStop("right");
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < 3) {
this[("lever" + i)].gotoAndStop(1);
this.hitmap[("trapdoor" + i)].gotoAndStop(1);
i++;
};
speedY = 0;
speedX = 2;
player.x = 40;
player.y = 384;
player.gotoAndStop("right");
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelDoorsB);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelDoorsMouseDown);
};
};
}
public function onLevelLeapC(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelLeapMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onLevelLeapMouseUp);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (charging){
if (power < 6){
power = (power + 0.5);
} else {
power = 6;
};
};
powerbar.powerbarFill.width = (power * 16.66);
if (hitmap.hitTestPoint((platform.x + (platform.width / 2)), platform.y, true)){
platformSpeed = -1;
};
if (hitmap.hitTestPoint((platform.x - (platform.width / 2)), platform.y, true)){
platformSpeed = 1;
};
if (speedY > 0){
while (platform.hitTestPoint(player.x, ((player.y + (player.height / 2)) - 1), true)) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
speedX = platformSpeed;
player.y--;
if (jump){
speedY = (power * -1);
speedX = (power / 2);
jump = false;
power = 0;
};
};
};
platform.x = (platform.x + platformSpeed);
while (hitmap.hitTestPoint(player.x, ((player.y + (player.height / 2)) - 1), true)) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
speedX = 0;
player.y--;
if (jump){
speedY = (power * -1);
speedX = (power / 2);
jump = false;
power = 0;
};
};
while (hitmap.hitTestPoint(player.x, (player.y - (player.height / 2)), true)) {
player.y++;
speedY = 0;
};
while (hitmap.hitTestPoint(((player.x + (player.width / 2)) + 1), player.y, true)) {
player.x--;
speedX = (speedX * -1);
};
while (hitmap.hitTestPoint(((player.x - (player.width / 2)) + 1), player.y, true)) {
player.x++;
speedX = (speedX * -1);
};
if (spikedBlocks.hitTestPoint(player.x, player.y, true)){
if (!dying){
die.play();
dying = true;
};
};
if (lava.hitTestPoint(player.x, player.y, true)){
if (!dying){
die.play();
dying = true;
};
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
platformSpeed = -1;
platform.x = 320;
power = 0;
speedY = 0;
speedX = 0;
jump = false;
player.x = 40;
player.y = 184;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
dir = 2;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelLeapC);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelLeapMouseDown);
stage.removeEventListener(MouseEvent.MOUSE_UP, onLevelLeapMouseUp);
};
};
}
public function onLevelRunB(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelRunMouseDown);
speedX = (speedX * 0.95);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (speedY > 0){
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
};
i = 0;
while (i < 6) {
if ((((this.hitmap[("pillar" + i)].currentFrame > 1)) && ((this.hitmap[("pillar" + i)].currentFrame < this.hitmap[("pillar" + i)].totalFrames)))){
this.hitmap[("pillar" + i)].play();
};
if (this.hitmap[("pillar" + i)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (this.hitmap[("pillar" + i)].currentFrame == 1){
doorOpen.play();
this.hitmap[("pillar" + i)].play();
};
};
if (this.hitmap[("pillar" + i)].currentFrame == 119){
doorShut.play();
shaking = true;
shakeCount = 10;
};
i++;
};
if (player.hitTestObject(spikedCeiling)){
if (!dying){
die.play();
dying = true;
};
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < 6) {
this.hitmap[("pillar" + i)].gotoAndStop(1);
i++;
};
speedY = 0;
speedX = 0;
player.x = 60;
player.y = 384;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
i = 0;
while (i < 6) {
this.hitmap[("pillar" + i)].stop();
i++;
};
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelRunB);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelRunMouseDown);
};
};
}
public function onLevelDirB(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onlevelDirMouseClick);
if (dir == 1){
player.x = (player.x + speedX);
};
if (dir == 2){
player.y = (player.y + speedX);
};
if (dir == 3){
player.x = (player.x - speedX);
};
if (dir == 4){
player.y = (player.y - speedX);
};
i = 0;
while (i < 3) {
if (this[("light" + i)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (((((!(touchingLight[i])) && ((bridge.currentFrame == 1)))) && (!(dying)))){
touchingLight[i] = true;
if (i == 0){
lever.play();
light1.play();
};
if (i == 1){
lever.play();
light0.play();
light1.play();
};
if (i == 2){
lever.play();
light2.play();
};
};
} else {
touchingLight[i] = false;
};
i++;
};
j = 0;
while (j < 3) {
if (this[("bomb" + j)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
explosion.play();
this[("bomb" + j)].play();
shaking = true;
shakeCount = 10;
emitter.x = this[("bomb" + j)].x;
emitter.y = this[("bomb" + j)].y;
emitter.start();
dying = true;
};
};
j++;
};
if (!hitmap.hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
die.play();
dying = true;
};
};
if (((((player.x + 5) > 440)) && ((bridge.currentFrame < bridge.totalFrames)))){
if (!dying){
die.play();
dying = true;
};
};
if ((((((light0.currentFrame == 2)) && ((light1.currentFrame == 2)))) && ((light2.currentFrame == 2)))){
if (bridge.currentFrame == 1){
doorOpen.play();
bridge.play();
};
};
if (dying){
dir = 0;
if (player.alpha > 0){
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
bridge.gotoAndStop(1);
j = 0;
while (j < 3) {
this[("light" + j)].gotoAndStop(1);
this[("bomb" + j)].gotoAndStop(1);
j++;
};
player.gotoAndStop(1);
player.x = 40;
player.y = 120;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dir = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelDirB);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onlevelDirMouseClick);
removeChild(renderer);
};
};
}
public function onLevelFightC(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelFightMouseDown);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (birdA.x > -20){
birdA.x = (birdA.x - 2);
} else {
birdA.x = 680;
};
if (birdB.x > -20){
birdB.x = (birdB.x - 1.5);
} else {
birdB.x = 680;
};
if ((cloudA.x - (cloudA.width / 2)) < 680){
cloudA.x = (cloudA.x + 1.2);
} else {
cloudA.x = (-20 - (cloudA.width / 2));
};
if ((cloudB.x - (cloudA.width / 2)) < 680){
cloudB.x = (cloudB.x + 1);
} else {
cloudB.x = (-20 - (cloudB.width / 2));
};
if ((cloudC.x - (cloudA.width / 2)) < 680){
cloudC.x = (cloudC.x + 0.8);
} else {
cloudC.x = (-20 - (cloudC.width / 2));
};
if (speedY > 0){
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
};
i = 0;
while (i < scorpions) {
if ((this[("scorpion" + i)].x - player.x) < 250){
if (this[("scorpion" + i)].currentFrame == 1){
this[("scorpion" + i)].gotoAndStop(2);
};
if (this[("scorpion" + i)].currentFrame < 3){
this[("scorpion" + i)].x--;
};
};
if (((player.hitTestObject(this[("scorpion" + i)])) && ((this[("scorpion" + i)].currentFrame < 3)))){
if (player.currentFrame == 5){
if (player.fighting.currentFrame > 10){
if (this[("scorpion" + i)].currentFrame < 3){
hit.play();
screamB.play();
this[("scorpion" + i)].gotoAndPlay(3);
};
} else {
if (!dying){
die.play();
dying = true;
};
};
} else {
if (!dying){
die.play();
dying = true;
};
};
};
i++;
};
j = 0;
while (j < zombies) {
if ((this[("zombie" + j)].x - player.x) < 120){
if (this[("zombie" + j)].currentFrame == 1){
ground.play();
screamA.play();
this[("zombie" + j)].play();
shaking = true;
shakeCount = 20;
};
};
if (((player.hitTestObject(this[("zombie" + j)])) && ((this[("zombie" + j)].currentFrame < 45)))){
if (player.currentFrame == 5){
if (player.fighting.currentFrame > 10){
if (this[("zombie" + j)].currentFrame < 45){
hit.play();
screamB.play();
this[("zombie" + j)].gotoAndPlay(45);
};
} else {
if (!dying){
die.play();
dying = true;
};
};
} else {
if (!dying){
die.play();
dying = true;
};
};
};
j++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < scorpions) {
this[("scorpion" + i)].gotoAndStop(1);
i++;
};
scorpion0.x = 300;
scorpion1.x = 500;
j = 0;
while (j < zombies) {
this[("zombie" + j)].gotoAndStop(1);
j++;
};
speedX = 2;
speedY = 0;
player.x = 40;
player.y = 384;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelFightC);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelFightMouseDown);
};
};
}
public function onLevelStopC(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelStopMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onLevelStopMouseUp);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (speedY > 0){
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
};
if (groundSpikes.hitTestPoint(player.x, ((player.y + (player.height / 2)) - 1), true)){
if (!dying){
die.play();
dying = true;
};
};
if (dying){
if (player.alpha > 0){
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
player.x = 40;
player.y = 176;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelStopC);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelStopMouseDown);
stage.removeEventListener(MouseEvent.MOUSE_UP, onLevelStopMouseUp);
};
};
}
public function onLevelJumpC(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelJumpMouseDown);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
while (((hitmapA.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmapA.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
if (jump){
speedY = -7;
jump = false;
};
};
if (speedY > 0){
while (((hitmapB.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmapB.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
if (jump){
speedY = -7;
jump = false;
};
};
};
while (hitmapA.hitTestPoint(player.x, (player.y - (player.height / 2)), true)) {
player.y++;
speedY = 0;
};
while (hitmapA.hitTestPoint(((player.x + (player.width / 2)) + 1), player.y, true)) {
player.x--;
speedX = (speedX * -1);
player.gotoAndStop("left");
};
while (hitmapA.hitTestPoint(((player.x - (player.width / 2)) + 1), player.y, true)) {
player.x++;
speedX = (speedX * -1);
player.gotoAndStop("right");
};
i = 0;
while (i < 3) {
if (((this[("lever" + i)].hitTestObject(player)) && (!(dying)))){
if (this[("lever" + i)].currentFrame == 1){
lever.play();
doorOpen.play();
this[("lever" + i)].play();
this.hitmapA[("door" + i)].play();
};
};
i++;
};
i = 0;
while (i < spikedFloors) {
if (this[("spikedFloor" + i)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
die.play();
dying = true;
};
};
i++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < 3) {
this[("lever" + i)].gotoAndStop(1);
this.hitmapA[("door" + i)].gotoAndStop(1);
i++;
};
player.gotoAndStop("right");
jump = false;
speedX = 2;
speedY = 0;
player.x = 40;
player.y = 160;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelJumpC);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelJumpMouseDown);
};
};
}
public function onLevelZigZagC(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelZigZagMouseDown);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
hitmap.x--;
bg.x--;
if (!hitmap.hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
die.play();
dying = true;
};
};
i = 0;
while (i < 5) {
this[("bomb" + i)].x--;
if (this[("bomb" + i)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
explosion.play();
this[("bomb" + i)].play();
shaking = true;
shakeCount = 10;
emitter.x = this[("bomb" + i)].x;
emitter.y = this[("bomb" + i)].y;
emitter.start();
dying = true;
};
i++;
};
if (((((ghostA0.x - player.x) < 120)) && (!(dying)))){
if (this[("ghostA" + ghostPickedA)].currentFrame == 1){
ghostMoan.play();
this[("ghostA" + ghostPickedA)].play();
};
};
if (((((ghostB0.x - player.x) < 120)) && (!(dying)))){
if (this[("ghostB" + ghostPickedB)].currentFrame == 1){
ghostMoan.play();
this[("ghostB" + ghostPickedB)].play();
};
};
i = 0;
while (i < 2) {
this[("ghostA" + i)].x--;
if (((this[("ghostA" + i)].hitTestObject(player)) && (!(dying)))){
die.play();
shaking = true;
shakeCount = 10;
dying = true;
};
this[("ghostB" + i)].x--;
if (((this[("ghostB" + i)].hitTestObject(player)) && (!(dying)))){
die.play();
shaking = true;
shakeCount = 10;
dying = true;
};
i++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
ghostA0.x = 260;
ghostA1.x = 340;
ghostB0.x = 980;
ghostB1.x = 1060;
ghostPickedA = Math.floor((Math.random() * 2));
ghostPickedB = Math.floor((Math.random() * 2));
i = 0;
while (i < 2) {
this[("ghostA" + i)].gotoAndStop(1);
this[("ghostB" + i)].gotoAndStop(1);
i++;
};
bomb0.x = 460;
bomb1.x = 620;
bomb2.x = 780;
bomb3.x = 540;
bomb4.x = 700;
i = 0;
while (i < 5) {
this[("bomb" + i)].gotoAndStop(1);
i++;
};
bg.x = -20;
hitmap.x = -20;
player.x = 20;
player.y = 140;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
speedX = 1;
speedY = 2;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelZigZagC);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelZigZagMouseDown);
removeChild(renderer);
};
};
}
public function onLevelDoorsC(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelDoorsMouseDown);
if (hitmap.trapdoor.currentFrame == (hitmap.trapdoor.totalFrames - 1)){
doorShut.play();
shaking = true;
shakeCount = 20;
};
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
i = 0;
while (i < 2) {
if (((this[("lever" + i)].hitTestObject(player)) && (!(dying)))){
if (this[("lever" + i)].currentFrame == 1){
lever.play();
doorOpen.play();
this[("lever" + i)].play();
this.hitmap[("trapdoor" + i)].play();
};
};
i++;
};
if (spikedWall.hitTestObject(player)){
if (!dying){
die.play();
dying = true;
};
};
if (spikedFloor.hitTestObject(player)){
if (!dying){
die.play();
dying = true;
};
};
if (player.hitTestObject(batSleeping)){
batSleeping.visible = false;
bat.visible = true;
};
if (bat.visible == true){
if (bat.y < 240){
bat.y++;
} else {
bat.y = 240;
};
bat.x = (bat.x + 0.7);
};
if (bat.hitTestObject(bomb0)){
if (bomb0.currentFrame == 1){
explosion.play();
bat.play();
bomb0.play();
shaking = true;
shakeCount = 20;
emitter.x = bomb0.x;
emitter.y = bomb0.y;
emitter.start();
};
};
j = 0;
while (j < 2) {
if (this[("bomb" + j)].hitTestObject(player)){
if (this[("bomb" + j)].currentFrame == 1){
explosion.play();
die.play();
this[("bomb" + j)].play();
shaking = true;
shakeCount = 20;
emitter.x = this[("bomb" + j)].x;
emitter.y = this[("bomb" + j)].y;
emitter.start();
dying = true;
};
};
j++;
};
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
while (hitmap.hitTestPoint(player.x, (player.y - (player.height / 2)), true)) {
player.y++;
speedY = 0;
};
while (hitmap.hitTestPoint(((player.x + (player.width / 2)) + 1), player.y, true)) {
player.x--;
speedX = -2;
player.gotoAndStop("left");
};
while (hitmap.hitTestPoint(((player.x - (player.width / 2)) + 1), player.y, true)) {
player.x++;
speedX = 2;
player.gotoAndStop("right");
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
bat.visible = false;
batSleeping.visible = true;
bat.x = batSleeping.x;
bat.y = batSleeping.y;
bat.gotoAndStop(1);
i = 0;
while (i < 2) {
this[("lever" + i)].gotoAndStop(1);
this.hitmap[("trapdoor" + i)].gotoAndStop(1);
i++;
};
j = 0;
while (j < 2) {
this[("bomb" + j)].gotoAndStop(1);
j++;
};
speedY = 0;
speedX = 2;
player.x = 40;
player.y = 384;
player.gotoAndStop("right");
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelDoorsC);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelDoorsMouseDown);
removeChild(renderer);
};
};
}
public function onLevelLeapB(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelLeapMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onLevelLeapMouseUp);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (charging){
if (power < 6){
power = (power + 0.5);
} else {
power = 6;
};
};
powerbar.powerbarFill.width = (power * 16.66);
if (hitmap.hitTestPoint((platform.x + (platform.width / 2)), platform.y, true)){
platformSpeed = -1;
};
if (hitmap.hitTestPoint((platform.x - (platform.width / 2)), platform.y, true)){
platformSpeed = 1;
};
if (speedY > 0){
while (platform.hitTestPoint(player.x, ((player.y + (player.height / 2)) - 1), true)) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
speedX = platformSpeed;
player.y--;
if (jump){
speedY = (power * -1);
speedX = (power / 2);
jump = false;
power = 0;
};
};
};
platform.x = (platform.x + platformSpeed);
while (hitmap.hitTestPoint(player.x, ((player.y + (player.height / 2)) - 1), true)) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
speedX = 0;
player.y--;
if (jump){
speedY = (power * -1);
speedX = (power / 2);
jump = false;
power = 0;
};
};
while (hitmap.hitTestPoint(player.x, (player.y - (player.height / 2)), true)) {
player.y++;
speedY = 0;
};
while (hitmap.hitTestPoint(((player.x + (player.width / 2)) + 1), player.y, true)) {
player.x--;
speedX = (speedX * -1);
};
while (hitmap.hitTestPoint(((player.x - (player.width / 2)) + 1), player.y, true)) {
player.x++;
speedX = (speedX * -1);
};
if (spikedBlocks.hitTestPoint(player.x, player.y, true)){
if (!dying){
die.play();
dying = true;
};
};
i = 0;
while (i < spikedFloors) {
if (this[("spikedFloor" + i)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
die.play();
dying = true;
};
};
i++;
};
if (lava.hitTestPoint(player.x, player.y, true)){
if (!dying){
die.play();
dying = true;
};
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
platformSpeed = -1;
platform.x = 320;
power = 0;
speedY = 0;
speedX = 0;
jump = false;
player.x = 40;
player.y = 184;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
dir = 2;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelLeapB);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelLeapMouseDown);
stage.removeEventListener(MouseEvent.MOUSE_UP, onLevelLeapMouseUp);
};
};
}
public function onLevelRunC(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onLevelRunMouseDown);
speedX = (speedX * 0.95);
speedY = (speedY + gravity);
player.x = (player.x + speedX);
player.y = (player.y + speedY);
if (speedY > 0){
while (((hitmap.hitTestPoint((player.x - 5), ((player.y + (player.height / 2)) - 1), true)) || (hitmap.hitTestPoint((player.x + 5), ((player.y + (player.height / 2)) - 1), true)))) {
if ((((((speedY > 2)) || ((speedY < -2)))) && (!(shaking)))){
land.play();
};
speedY = 0;
player.y--;
};
};
i = 0;
while (i < 12) {
if (((this[("flamethrower" + i)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)) && (!(dying)))){
if (this[("flamethrower" + i)].currentFrame == 1){
flamethrower.play();
this[("flamethrower" + i)].play();
};
if (this[("flamethrower" + i)].currentFrame > 60){
dying = true;
};
};
i++;
};
if (dying){
if (player.alpha > 0){
speedY = 0;
speedX = 0;
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
i = 0;
while (i < 12) {
this[("arrow" + i)].y = 30;
i++;
};
speedY = 0;
speedX = 0;
player.x = 60;
player.y = 384;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelRunC);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onLevelRunMouseDown);
};
};
}
public function onLevelDirC(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onlevelDirMouseClick);
if (dir == 1){
player.x = (player.x + speedX);
};
if (dir == 2){
player.y = (player.y + speedX);
};
if (dir == 3){
player.x = (player.x - speedX);
};
if (dir == 4){
player.y = (player.y - speedX);
};
i = 0;
while (i < 9) {
if (this[("button" + i)].hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (((!(touchingButton[i])) && ((bridge.currentFrame == 1)))){
lever.play();
touchingButton[i] = true;
this[("button" + i)].play();
};
} else {
touchingButton[i] = false;
};
i++;
};
j = 0;
while (j < 3) {
if (this[("arrow" + j)].x > -20){
this[("arrow" + j)].x = (this[("arrow" + j)].x - 2);
} else {
this[("arrow" + j)].x = 680;
};
if (player.hitTestPoint(this[("arrow" + j)].x, this[("arrow" + j)].y, true)){
if (!dying){
die.play();
dying = true;
};
};
j++;
};
if (!hitmap.hitTestPoint(player.x, (player.y + (player.height / 2)), true)){
if (!dying){
die.play();
dying = true;
};
};
if (((((player.x + 5) > 440)) && ((bridge.currentFrame < bridge.totalFrames)))){
if (!dying){
die.play();
dying = true;
};
};
if ((((((((((((((((((button0.currentFrame == 2)) && ((button1.currentFrame == 2)))) && ((button2.currentFrame == 2)))) && ((button3.currentFrame == 2)))) && ((button4.currentFrame == 2)))) && ((button5.currentFrame == 2)))) && ((button6.currentFrame == 2)))) && ((button7.currentFrame == 2)))) && ((button8.currentFrame == 2)))){
if (bridge.currentFrame == 1){
doorOpen.play();
bridge.play();
};
};
if (dying){
dir = 0;
if (player.alpha > 0){
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
} else {
bridge.gotoAndStop(1);
i = 0;
while (i < 9) {
this[("button" + i)].gotoAndStop(1);
touchingButton[i] = false;
i++;
};
player.gotoAndStop(1);
player.x = 40;
player.y = 120;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dir = 1;
dying = false;
};
} else {
if (player.x > 640){
levelPassed = true;
};
};
} else {
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onLevelDirC);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onlevelDirMouseClick);
};
};
}
public function onBossFight(_arg1:Event):void{
if (((((!(levelPassed)) && (!(gamePaused)))) && (!(quit)))){
fg.overlay.addEventListener(MouseEvent.MOUSE_DOWN, onBossFightMouseDown);
if (!bossDead){
player.y = (player.y + speedY);
platform.y = (player.y + 24);
powerbar.y = (boss.y - 60);
endY = (boss.y - player.y);
boss.y = (boss.y - (endY / 25));
if (fireball.x > -20){
fireball.x = (fireball.x - 5);
fire.x = (fireball.x + 40);
fire.y = fireball.y;
fire.start();
} else {
fireball.x = boss.x;
fireball.y = boss.y;
fire.stop();
};
if (fireball.hitTestObject(player)){
fireball.x = (boss.x - 24);
fireball.y = (boss.y - 10);
if (!dying){
die.play();
dying = true;
};
};
if (player.fighting.currentFrame == 10){
swordWhip.play();
throwing = true;
};
if (player.fighting.currentFrame == player.fighting.totalFrames){
player.fighting.gotoAndStop(1);
};
if (throwing){
if (dagger.x < 680){
dagger.x = (dagger.x + 10);
} else {
dagger.x = player.x;
dagger.y = player.y;
player.fighting.play();
throwing = false;
};
} else {
dagger.x = player.x;
dagger.y = player.y;
player.fighting.play();
};
if (((dagger.hitTestObject(boss)) && (!(dying)))){
hit.play();
lastX = dagger.x;
lastY = dagger.y;
dagger.x = player.x;
dagger.y = player.y;
player.fighting.play();
throwing = false;
if (powerbar.powerbarFill.width > 1){
powerbar.powerbarFill.width = (powerbar.powerbarFill.width - 5);
shaking = true;
shakeCount = 20;
blood.x = lastX;
blood.y = lastY;
blood.start();
} else {
monsterDeath.play();
powerbar.powerbarFill.width = 1;
bossDead = true;
};
};
if (blocks.hitTestPoint(fireball.x, fireball.y, true)){
lastX = fireball.x;
lastY = fireball.y;
fireball.x = boss.x;
fireball.y = boss.y;
shaking = true;
shakeCount = 20;
emitter.x = lastX;
emitter.y = lastY;
emitter.start();
};
if (blocks.hitTestPoint(dagger.x, dagger.y, true)){
dagger.x = player.x;
dagger.y = player.y;
player.fighting.play();
throwing = false;
};
if (lava.hitTestPoint(player.x, player.y, true)){
if (!dying){
die.play();
dying = true;
};
};
if (player.hitTestObject(spikedCeiling)){
if (!dying){
die.play();
dying = true;
};
};
if (dying){
if (player.alpha > 0){
player.rotation = (player.rotation + 20);
player.scaleX = (player.scaleX + 0.1);
player.scaleY = (player.scaleY + 0.1);
player.alpha = (player.alpha - 0.05);
dagger.alpha = (dagger.alpha - 0.05);
} else {
powerbar.powerbarFill.width = 100;
dagger.alpha = 1;
player.x = 80;
player.y = 240;
player.rotation = 0;
player.scaleX = 1;
player.scaleY = 1;
player.alpha = 1;
dying = false;
};
};
} else {
player.fighting.stop();
if (player.y < 230){
player.y++;
};
if (player.y > 230){
player.y--;
};
platform.y = (player.y + 24);
if (boss.alpha > 0){
boss.rotation = (boss.rotation + 20);
boss.scaleX = (boss.scaleX + 0.025);
boss.scaleY = (boss.scaleY + 0.025);
boss.alpha = (boss.alpha - 0.005);
shaking = true;
} else {
levelPassed = true;
shaking = false;
};
if (dagger.alpha > 0){
dagger.alpha = (dagger.alpha - 0.05);
} else {
dagger.alpha = 0;
};
fire.stop();
if (fireball.alpha > 0){
fireball.alpha = (fireball.alpha - 0.05);
} else {
fireball.alpha = 0;
};
if (powerbar.alpha > 0){
powerbar.alpha = (powerbar.alpha - 0.05);
} else {
powerbar.alpha = 0;
};
};
} else {
fire.stop();
if (((levelPassed) || (quit))){
stage.removeEventListener(Event.ENTER_FRAME, onBossFight);
fg.overlay.removeEventListener(MouseEvent.MOUSE_DOWN, onBossFightMouseDown);
removeChild(renderer);
};
};
}
public function onBossFightMouseDown(_arg1:MouseEvent):void{
if (!bossDead){
speedY = (speedY * -1);
};
}
public function gameOverScreen(_arg1:Event):void{
fg.speaker.buttonMode = true;
fg.speaker.addEventListener(MouseEvent.MOUSE_DOWN, onSpeakerClick);
if (sound){
fg.speaker.gotoAndStop("on");
} else {
fg.speaker.gotoAndStop("off");
};
if (fg.currentFrame == fg.totalFrames){
buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick);
buttonSubmit.removeEventListener(MouseEvent.CLICK, onSubmitClick);
stage.removeEventListener(Event.ENTER_FRAME, gameOverScreen);
if (menu){
gotoAndStop(1, "menu");
};
if (submit){
gotoAndStop(1, "submit");
};
};
}
public function helpScreen(_arg1:Event):void{
fg.speaker.buttonMode = true;
fg.speaker.addEventListener(MouseEvent.MOUSE_DOWN, onSpeakerClick);
if (sound){
fg.speaker.gotoAndStop("on");
} else {
fg.speaker.gotoAndStop("off");
};
if (fg.currentFrame == fg.totalFrames){
buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick);
stage.removeEventListener(Event.ENTER_FRAME, helpScreen);
if (menu){
gotoAndStop(1, "menu");
};
};
}
public function creditsScreen(_arg1:Event):void{
fg.speaker.buttonMode = true;
fg.speaker.addEventListener(MouseEvent.MOUSE_DOWN, onSpeakerClick);
if (sound){
fg.speaker.gotoAndStop("on");
} else {
fg.speaker.gotoAndStop("off");
};
if (fg.currentFrame == fg.totalFrames){
buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick);
stage.removeEventListener(Event.ENTER_FRAME, creditsScreen);
if (menu){
gotoAndStop(1, "menu");
};
};
}
function frame1(){
stop();
buttonContinue.visible = false;
buttonContinue.addEventListener(MouseEvent.MOUSE_DOWN, onContinueClick);
CPMStarContentSpotID = "2878QE8AC548D";
ad = new AdLoader(CPMStarContentSpotID);
adBox.addChild(ad);
stage.quality = "high";
stage.scaleMode = StageScaleMode.NO_SCALE;
allowed_site = "armorgames.com";
domain = this.root.loaderInfo.url.split("/")[2];
domain_idx = domain.indexOf(allowed_site);
if (((!((domain_idx == -1))) && ((domain_idx == (domain.length - allowed_site.length))))){
adBox.removeChild(ad);
};
fm_bar.addEventListener(Event.ENTER_FRAME, load_progress);
sound = true;
SoundMixer.soundTransform = new SoundTransform(1);
myMenu = new ContextMenu();
myMenu.builtInItems.forwardAndBack = false;
myMenu.builtInItems.loop = false;
myMenu.builtInItems.play = false;
myMenu.builtInItems.print = false;
myMenu.builtInItems.quality = false;
myMenu.builtInItems.rewind = false;
myMenu.builtInItems.save = false;
myMenu.builtInItems.zoom = false;
contextMenu = myMenu;
}
function frame32(){
stop();
agi_url = "http://agi.armorgames.com/assets/agi/AGI.swf";
Security.allowDomain(agi_url);
devKey = "2e1a0ea07ba410b66df1e2aa99500abe";
gameKey = "one-button-arthur";
urlRequest = new URLRequest(agi_url);
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.load(urlRequest);
obj = new Object();
obj.onClose = handleOnAGUIClose;
agi.initAGUI(obj);
}
function frame249(){
play();
}
function frame250(){
buttonLogo.addEventListener(MouseEvent.MOUSE_DOWN, onLogoClick);
}
function frame340(){
stop();
SoundMixer.stopAll();
if (sound){
fg.speaker.gotoAndStop("on");
} else {
fg.speaker.gotoAndStop("off");
};
i = 0;
j = 0;
k = 0;
quit = false;
gamePaused = false;
levelPassed = false;
shaking = false;
shakeCount = 0;
menu = false;
rock = false;
help = false;
scores = false;
credits = false;
submit = false;
buttonPlay.addEventListener(MouseEvent.MOUSE_DOWN, onPlayClick);
buttonHelp.addEventListener(MouseEvent.MOUSE_DOWN, onHelpClick);
buttonScores.addEventListener(MouseEvent.MOUSE_DOWN, onScoresClick);
buttonCredits.addEventListener(MouseEvent.MOUSE_DOWN, onCreditsClick);
buttonLogo.addEventListener(MouseEvent.MOUSE_DOWN, onLogoClick);
buttonLink.addEventListener(MouseEvent.MOUSE_DOWN, onLinkClick);
stage.addEventListener(Event.ENTER_FRAME, menuScreen);
renderer = new BitmapRenderer(new Rectangle(0, 0, 640, 480));
emitter = new Emitter2D();
emitter.counter = new Blast(10);
emitter.addInitializer(new ImageClass(square));
emitter.addInitializer(new ScaleImageInit(0.5, 1));
emitter.addInitializer(new ColorInit(4294967295, 4294927872));
emitter.addInitializer(new Velocity(new DiscZone(new Point(0, 0), 200, 120)));
emitter.addInitializer(new Lifetime(1));
emitter.addAction(new Age(Quadratic.easeIn));
emitter.addAction(new Move());
emitter.addAction(new Fade());
emitter.addAction(new Accelerate(0, 500));
emitter.addAction(new LinearDrag(0.5));
emitter.addEventListener(EmitterEvent.EMITTER_EMPTY, removeEmitter, false, 0, true);
renderer.addEmitter(emitter);
blood = new Emitter2D();
blood.counter = new Blast(10);
blood.addInitializer(new ImageClass(square));
blood.addInitializer(new ScaleImageInit(0.5, 1));
blood.addInitializer(new ColorInit(0x550000, 0x720000));
blood.addInitializer(new Velocity(new DiscZone(new Point(0, 0), 200, 120)));
blood.addInitializer(new Lifetime(1));
blood.addAction(new Age(Quadratic.easeIn));
blood.addAction(new Move());
blood.addAction(new Fade());
blood.addAction(new Accelerate(0, 500));
blood.addAction(new LinearDrag(0.5));
blood.addEventListener(EmitterEvent.EMITTER_EMPTY, removeBlood, false, 0, true);
renderer.addEmitter(blood);
fire = new Emitter2D();
fire.counter = new Steady(60);
fire.addInitializer(new Lifetime(0.5, 1));
fire.addInitializer(new Velocity(new DiscSectorZone(new Point(0, 0), 20, 10, -(Math.PI), 0)));
fire.addInitializer(new Position(new DiscZone(new Point(0, 0), 3)));
fire.addInitializer(new ImageClass(square));
fire.addAction(new Age(Quadratic.easeIn));
fire.addAction(new Move());
fire.addAction(new LinearDrag(1));
fire.addAction(new Accelerate(0, -40));
fire.addAction(new ColorChange(4294953984, 0xCC0000));
fire.addAction(new ScaleImage(0.5, 1));
fire.addAction(new RotateToDirection());
renderer.addEmitter(fire);
stage.quality = "high";
mist.mouseEnabled = false;
mist.mouseChildren = false;
clicks = 0;
dir = 2;
speedX = 2;
speedY = 0;
dying = false;
gravity = 0.5;
jump = false;
acc = 1;
lastSoundTime = 0;
theme = new themeWav();
themeTransform = new SoundTransform(0.5, 0);
themeSongPaused = false;
rockSlide = new rockSlideWav();
wind = new windWav();
swordWhip = new swordWhipWav();
screamA = new screamAWav();
screamB = new screamBWav();
ground = new groundWav();
lever = new leverWav();
doorOpen = new doorOpenWav();
doorShut = new doorShutWav();
explosion = new explosionWav();
footsteps = new footstepsWav();
land = new landWav();
hit = new hitWav();
die = new dieWav();
ghostMoan = new ghostMoanWav();
arrowRelease = new arrowReleaseWav();
flamethrower = new flamethrowerWav();
monsterPurr = new monsterPurrWav();
monsterDeath = new monsterDeathWav();
stinger = new stingerWav();
}
function frame341(){
stop();
stage.quality = "low";
wind.play();
themeChannel = theme.play(lastSoundTime, 100, themeTransform);
speedX = 2;
scorpions = 1;
stage.addEventListener(Event.ENTER_FRAME, onLevelFightA);
}
function frame342(){
stop();
speedX = 2;
wind.play();
stage.addEventListener(Event.ENTER_FRAME, onLevelStopA);
}
function frame343(){
stop();
speedX = 2;
speedY = 0;
stage.addEventListener(Event.ENTER_FRAME, onLevelJumpA);
}
function frame344(){
stop();
speedX = 1;
speedY = 2;
ghostPickedA = Math.floor((Math.random() * 2));
stage.addEventListener(Event.ENTER_FRAME, onLevelZigZagA);
}
function frame345(){
stop();
doorOpen.play();
speedX = 2;
doors = 2;
floorBroken = false;
addChild(renderer);
stage.addEventListener(Event.ENTER_FRAME, onLevelDoorsA);
}
function frame346(){
stop();
speedX = 0;
speedY = 0;
jump = false;
power = 0;
charging = false;
platformSpeed = -1;
spikedFloors = 2;
stage.addEventListener(Event.ENTER_FRAME, onLevelLeapA);
}
function frame347(){
stop();
speedX = 0;
acc = 1;
stage.addEventListener(Event.ENTER_FRAME, onLevelRunA);
}
function frame348(){
stop();
dir = 1;
speedX = 2;
dying = false;
touchingTile = new Array();
i = 0;
while (i < 4) {
touchingTile[i] = false;
i++;
};
stage.addEventListener(Event.ENTER_FRAME, onLevelDirA);
}
function frame349(){
stop();
wind.play();
speedX = 2;
scorpions = 1;
zombies = 1;
stage.addEventListener(Event.ENTER_FRAME, onLevelFightB);
}
function frame350(){
stop();
speedX = 2;
stage.addEventListener(Event.ENTER_FRAME, onLevelStopB);
}
function frame351(){
stop();
speedX = 2;
speedY = 0;
stage.addEventListener(Event.ENTER_FRAME, onLevelJumpB);
}
function frame352(){
stop();
speedX = 1;
speedY = 2;
ghostPickedA = Math.floor((Math.random() * 2));
ghostPickedB = Math.floor((Math.random() * 2));
stage.addEventListener(Event.ENTER_FRAME, onLevelZigZagB);
}
function frame353(){
stop();
speedX = 2;
doors = 4;
doorOpen.play();
stage.addEventListener(Event.ENTER_FRAME, onLevelDoorsB);
}
function frame354(){
stop();
speedX = 0;
speedY = 0;
jump = false;
power = 0;
charging = false;
platformSpeed = -1;
stage.addEventListener(Event.ENTER_FRAME, onLevelLeapC);
}
function frame355(){
stop();
speedX = 0;
acc = 0.85;
stage.addEventListener(Event.ENTER_FRAME, onLevelRunB);
}
function frame356(){
stop();
dir = 1;
speedX = 2;
dying = false;
addChild(renderer);
touchingLight = new Array();
i = 0;
while (i < 3) {
touchingLight[i] = false;
i++;
};
stage.addEventListener(Event.ENTER_FRAME, onLevelDirB);
}
function frame357(){
stop();
wind.play();
speedX = 2;
scorpions = 2;
zombies = 3;
stage.addEventListener(Event.ENTER_FRAME, onLevelFightC);
}
function frame358(){
stop();
speedX = 2;
stage.addEventListener(Event.ENTER_FRAME, onLevelStopC);
}
function frame359(){
stop();
speedX = 2;
speedY = 0;
spikedFloors = 2;
stage.addEventListener(Event.ENTER_FRAME, onLevelJumpC);
}
function frame360(){
stop();
speedX = 1;
speedY = 2;
addChild(renderer);
ghostPickedA = Math.floor((Math.random() * 2));
ghostPickedB = Math.floor((Math.random() * 2));
stage.addEventListener(Event.ENTER_FRAME, onLevelZigZagC);
}
function frame361(){
stop();
speedX = 2;
doors = 4;
doorOpen.play();
bat.visible = false;
addChild(renderer);
stage.addEventListener(Event.ENTER_FRAME, onLevelDoorsC);
}
function frame362(){
stop();
speedX = 0;
speedY = 0;
jump = false;
power = 0;
charging = false;
platformSpeed = -1;
spikedFloors = 1;
stage.addEventListener(Event.ENTER_FRAME, onLevelLeapB);
}
function frame363(){
stop();
speedX = 0;
acc = 0.7;
stage.addEventListener(Event.ENTER_FRAME, onLevelRunC);
}
function frame364(){
stop();
dir = 1;
speedX = 2;
dying = false;
touchingButton = new Array();
i = 0;
while (i < 9) {
touchingButton[i] = false;
i++;
};
stage.addEventListener(Event.ENTER_FRAME, onLevelDirC);
}
function frame365(){
stage.removeEventListener(Event.ENTER_FRAME, myEnterFrame);
}
function frame455(){
stop();
monsterPurr.play();
stage.addEventListener(Event.ENTER_FRAME, myEnterFrame);
speedY = 2;
throwing = false;
bossDead = false;
dagger.x = player.x;
dagger.y = player.y;
endY = player.y;
lastX = 0;
lastY = 0;
addChild(renderer);
stage.addEventListener(Event.ENTER_FRAME, onBossFight);
}
function frame456(){
stop();
SoundMixer.stopAll();
stage.quality = "high";
stinger.play();
if (sound){
fg.speaker.gotoAndStop("on");
} else {
fg.speaker.gotoAndStop("off");
};
scoreText.text = ("TOTAL CLICKS: " + clicks);
stage.removeEventListener(Event.ENTER_FRAME, myEnterFrame);
buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick);
buttonSubmit.addEventListener(MouseEvent.CLICK, onSubmitClick);
buttonLogo.addEventListener(MouseEvent.MOUSE_DOWN, onLogoClick);
buttonLink.addEventListener(MouseEvent.MOUSE_DOWN, onLinkClick);
stage.addEventListener(Event.ENTER_FRAME, gameOverScreen);
}
function frame457(){
stop();
if (sound){
fg.speaker.gotoAndStop("on");
} else {
fg.speaker.gotoAndStop("off");
};
stage.removeEventListener(Event.ENTER_FRAME, myEnterFrame);
buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick);
stage.addEventListener(Event.ENTER_FRAME, helpScreen);
}
function frame458(){
stop();
if (sound){
fg.speaker.gotoAndStop("on");
} else {
fg.speaker.gotoAndStop("off");
};
stage.removeEventListener(Event.ENTER_FRAME, myEnterFrame);
buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick);
buttonLogo.addEventListener(MouseEvent.CLICK, onLogoClick);
stage.addEventListener(Event.ENTER_FRAME, creditsScreen);
}
function frame459(){
stop();
stage.quality = "high";
addChild(agi);
agi.showScoreboardList([{descending:false}]);
agi.initAGUI(obj);
}
function frame460(){
stop();
stage.quality = "high";
addChild(agi);
agi.showScoreboardSubmit(clicks, null, null, [{descending:false}]);
agi.initAGUI(obj);
}
}
}//package oba_fla
Section 20
//pauseAnim_51 (oba_fla.pauseAnim_51)
package oba_fla {
import flash.display.*;
public dynamic class pauseAnim_51 extends MovieClip {
public var pauseMenu:MovieClip;
public function pauseAnim_51(){
addFrameScript(0, frame1, 9, frame10, 10, frame11);
}
function frame1(){
stop();
}
function frame10(){
stop();
}
function frame11(){
play();
}
}
}//package oba_fla
Section 21
//pauseGame_56 (oba_fla.pauseGame_56)
package oba_fla {
import flash.display.*;
public dynamic class pauseGame_56 extends MovieClip {
public function pauseGame_56(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package oba_fla
Section 22
//pillarAnim_130 (oba_fla.pillarAnim_130)
package oba_fla {
import flash.display.*;
public dynamic class pillarAnim_130 extends MovieClip {
public function pillarAnim_130(){
addFrameScript(0, frame1, 1, frame2, 119, frame120);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame120(){
stop();
}
}
}//package oba_fla
Section 23
//scorpion_46 (oba_fla.scorpion_46)
package oba_fla {
import flash.display.*;
public dynamic class scorpion_46 extends MovieClip {
public function scorpion_46(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 29, frame30);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
play();
}
function frame30(){
stop();
}
}
}//package oba_fla
Section 24
//speaker_36 (oba_fla.speaker_36)
package oba_fla {
import flash.display.*;
public dynamic class speaker_36 extends MovieClip {
public function speaker_36(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package oba_fla
Section 25
//trapDoorAanim_83 (oba_fla.trapDoorAanim_83)
package oba_fla {
import flash.display.*;
public dynamic class trapDoorAanim_83 extends MovieClip {
public function trapDoorAanim_83(){
addFrameScript(0, frame1, 29, frame30);
}
function frame1(){
play();
}
function frame30(){
stop();
}
}
}//package oba_fla
Section 26
//trapDoorBanim_85 (oba_fla.trapDoorBanim_85)
package oba_fla {
import flash.display.*;
public dynamic class trapDoorBanim_85 extends MovieClip {
public function trapDoorBanim_85(){
addFrameScript(0, frame1, 1, frame2, 29, frame30);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame30(){
stop();
}
}
}//package oba_fla
Section 27
//trapDoorCanim_123 (oba_fla.trapDoorCanim_123)
package oba_fla {
import flash.display.*;
public dynamic class trapDoorCanim_123 extends MovieClip {
public function trapDoorCanim_123(){
addFrameScript(0, frame1, 1, frame2, 29, frame30);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame30(){
stop();
}
}
}//package oba_fla
Section 28
//zombieAnim_99 (oba_fla.zombieAnim_99)
package oba_fla {
import flash.display.*;
public dynamic class zombieAnim_99 extends MovieClip {
public function zombieAnim_99(){
addFrameScript(0, frame1, 1, frame2, 43, frame44, 44, frame45, 73, frame74);
}
function frame1(){
stop();
}
function frame2(){
play();
}
function frame44(){
stop();
}
function frame45(){
play();
}
function frame74(){
stop();
}
}
}//package oba_fla
Section 29
//Action (org.flintparticles.common.actions.Action)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.behaviours.*;
public interface Action extends Behaviour {
function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void;
}
}//package org.flintparticles.common.actions
Section 30
//ActionBase (org.flintparticles.common.actions.ActionBase)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class ActionBase implements Action {
protected var _priority:int;// = 0
public function set priority(_arg1:int):void{
_priority = _arg1;
}
public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
}
public function removedFromEmitter(_arg1:Emitter):void{
}
public function addedToEmitter(_arg1:Emitter):void{
}
public function get priority():int{
return (_priority);
}
}
}//package org.flintparticles.common.actions
Section 31
//Age (org.flintparticles.common.actions.Age)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.energyEasing.*;
public class Age extends ActionBase {
private var _easing:Function;
public function Age(_arg1:Function=null){
if (_arg1 == null){
_easing = Linear.easeNone;
} else {
_easing = _arg1;
};
}
public function set easing(_arg1:Function):void{
_easing = _arg1;
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
_arg2.age = (_arg2.age + _arg3);
if (_arg2.age >= _arg2.lifetime){
_arg2.energy = 0;
_arg2.isDead = true;
} else {
_arg2.energy = _easing(_arg2.age, _arg2.lifetime);
};
}
public function get easing():Function{
return (_easing);
}
}
}//package org.flintparticles.common.actions
Section 32
//ColorChange (org.flintparticles.common.actions.ColorChange)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.utils.*;
public class ColorChange extends ActionBase {
private var _startColor:uint;
private var _endColor:uint;
public function ColorChange(_arg1:uint=0xFFFFFF, _arg2:uint=0xFFFFFF){
_startColor = _arg1;
_endColor = _arg2;
}
public function get startColor():uint{
return (_startColor);
}
public function set startColor(_arg1:uint):void{
_startColor = _arg1;
}
public function get endColor():uint{
return (_endColor);
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
_arg2.color = interpolateColors(_startColor, _endColor, _arg2.energy);
}
public function set endColor(_arg1:uint):void{
_endColor = _arg1;
}
}
}//package org.flintparticles.common.actions
Section 33
//Fade (org.flintparticles.common.actions.Fade)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class Fade extends ActionBase {
private var _endAlpha:Number;
private var _diffAlpha:Number;
public function Fade(_arg1:Number=1, _arg2:Number=0){
priority = -5;
_diffAlpha = (_arg1 - _arg2);
_endAlpha = _arg2;
}
public function get endAlpha():Number{
return (_endAlpha);
}
public function set endAlpha(_arg1:Number):void{
_diffAlpha = ((_endAlpha + _diffAlpha) - _arg1);
_endAlpha = _arg1;
}
public function set startAlpha(_arg1:Number):void{
_diffAlpha = (_arg1 - _endAlpha);
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
var _local4:Number = (_endAlpha + (_diffAlpha * _arg2.energy));
_arg2.color = ((_arg2.color & 0xFFFFFF) | (Math.round((_local4 * 0xFF)) << 24));
}
public function get startAlpha():Number{
return ((_endAlpha + _diffAlpha));
}
}
}//package org.flintparticles.common.actions
Section 34
//ScaleImage (org.flintparticles.common.actions.ScaleImage)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class ScaleImage extends ActionBase {
private var _diffScale:Number;
private var _endScale:Number;
public function ScaleImage(_arg1:Number=1, _arg2:Number=1){
_diffScale = (_arg1 - _arg2);
_endScale = _arg2;
}
public function set startScale(_arg1:Number):void{
_diffScale = (_arg1 - _endScale);
}
public function set endScale(_arg1:Number):void{
_diffScale = ((_endScale + _diffScale) - _arg1);
_endScale = _arg1;
}
public function get startScale():Number{
return ((_endScale + _diffScale));
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
_arg2.scale = (_endScale + (_diffScale * _arg2.energy));
}
public function get endScale():Number{
return (_endScale);
}
}
}//package org.flintparticles.common.actions
Section 35
//Activity (org.flintparticles.common.activities.Activity)
package org.flintparticles.common.activities {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.behaviours.*;
public interface Activity extends Behaviour {
function initialize(_arg1:Emitter):void;
function update(_arg1:Emitter, _arg2:Number):void;
}
}//package org.flintparticles.common.activities
Section 36
//Behaviour (org.flintparticles.common.behaviours.Behaviour)
package org.flintparticles.common.behaviours {
import org.flintparticles.common.emitters.*;
public interface Behaviour {
function set priority(_arg1:int):void;
function addedToEmitter(_arg1:Emitter):void;
function get priority():int;
function removedFromEmitter(_arg1:Emitter):void;
}
}//package org.flintparticles.common.behaviours
Section 37
//BehaviourArrayUtils (org.flintparticles.common.behaviours.BehaviourArrayUtils)
package org.flintparticles.common.behaviours {
public class BehaviourArrayUtils {
public static function add(_arg1:Array, _arg2:Behaviour):uint{
var _local3:uint = _arg1.length;
var _local4:uint;
while (_local4 < _local3) {
if (Behaviour(_arg1[_local4]).priority < _arg2.priority){
break;
};
_local4++;
};
_arg1.splice(_local4, 0, _arg2);
return ((_local3 + 1));
}
public static function remove(_arg1:Array, _arg2:Behaviour):Boolean{
var _local3:int = _arg1.indexOf(_arg2);
if (_local3 != -1){
_arg1.splice(_local3, 1);
return (true);
};
return (false);
}
public static function removeAt(_arg1:Array, _arg2:uint):Behaviour{
var _local3:Behaviour = (_arg1[_arg2] as Behaviour);
_arg1.splice(_arg2, 1);
return (_local3);
}
public static function containsType(_arg1:Array, _arg2:Class):Boolean{
var _local3:uint = _arg1.length;
var _local4:uint;
while (_local4 < _local3) {
if ((_arg1[_local4] is _arg2)){
return (true);
};
_local4++;
};
return (false);
}
public static function sortArray(_arg1:Array):void{
_arg1.sortOn("priority", Array.NUMERIC);
}
public static function clear(_arg1:Array):void{
_arg1.length = 0;
}
public static function contains(_arg1:Array, _arg2:Behaviour):Boolean{
return (!((_arg1.indexOf(_arg2) == -1)));
}
}
}//package org.flintparticles.common.behaviours
Section 38
//Blast (org.flintparticles.common.counters.Blast)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public class Blast implements Counter {
private var _done:Boolean;// = false
private var _startCount:uint;
public function Blast(_arg1:uint=0){
_startCount = _arg1;
}
public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{
return (0);
}
public function startEmitter(_arg1:Emitter):uint{
_done = true;
_arg1.dispatchCounterComplete();
return (_startCount);
}
public function resume():void{
}
public function stop():void{
}
public function get startCount():Number{
return (_startCount);
}
public function get complete():Boolean{
return (_done);
}
public function set startCount(_arg1:Number):void{
_startCount = _arg1;
}
}
}//package org.flintparticles.common.counters
Section 39
//Counter (org.flintparticles.common.counters.Counter)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public interface Counter {
function stop():void;
function updateEmitter(_arg1:Emitter, _arg2:Number):uint;
function get complete():Boolean;
function startEmitter(_arg1:Emitter):uint;
function resume():void;
}
}//package org.flintparticles.common.counters
Section 40
//Steady (org.flintparticles.common.counters.Steady)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public class Steady implements Counter {
private var _stop:Boolean;
private var _rateInv:Number;
private var _timeToNext:Number;
private var _rate:Number;
public function Steady(_arg1:Number=0){
_stop = false;
_rate = _arg1;
_rateInv = (1 / _rate);
}
public function get rate():Number{
return (_rate);
}
public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{
if (_stop){
return (0);
};
var _local3:uint;
_timeToNext = (_timeToNext - _arg2);
while (_timeToNext <= 0) {
_local3++;
_timeToNext = (_timeToNext + _rateInv);
};
return (_local3);
}
public function set rate(_arg1:Number):void{
_rate = _arg1;
_rateInv = (1 / _arg1);
}
public function stop():void{
_stop = true;
}
public function startEmitter(_arg1:Emitter):uint{
_timeToNext = _rateInv;
return (0);
}
public function resume():void{
_stop = false;
}
public function get complete():Boolean{
return (false);
}
}
}//package org.flintparticles.common.counters
Section 41
//ZeroCounter (org.flintparticles.common.counters.ZeroCounter)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public class ZeroCounter implements Counter {
public function get complete():Boolean{
return (true);
}
public function stop():void{
}
public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{
return (0);
}
public function startEmitter(_arg1:Emitter):uint{
return (0);
}
public function resume():void{
}
}
}//package org.flintparticles.common.counters
Section 42
//Emitter (org.flintparticles.common.emitters.Emitter)
package org.flintparticles.common.emitters {
import org.flintparticles.common.particles.*;
import org.flintparticles.common.behaviours.*;
import flash.events.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.activities.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.common.events.*;
import org.flintparticles.common.utils.*;
public class Emitter extends EventDispatcher {
protected var _running:Boolean;// = false
protected var _activities:Array;
protected var _particles:Array;
protected var _initializers:Array;
protected var _dispatchCounterComplete:Boolean;// = false
protected var _counter:Counter;
protected var _started:Boolean;// = false
protected var _actions:Array;
protected var _useInternalTick:Boolean;// = true
protected var _particleFactory:ParticleFactory;
protected var _fixedFrameTime:Number;// = 0
protected var _maximumFrameTime:Number;// = 0.1
public function Emitter(){
_particles = new Array();
_actions = new Array();
_initializers = new Array();
_activities = new Array();
_counter = new ZeroCounter();
}
public function addInitializer(_arg1:Initializer):void{
BehaviourArrayUtils.add(_initializers, _arg1);
_arg1.addedToEmitter(this);
}
public function stop():void{
if (_useInternalTick){
FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener);
};
_started = false;
killAllParticles();
}
public function pause():void{
_running = false;
}
public function killAllParticles():void{
var _local1:int = _particles.length;
var _local2:int;
while (_local2 < _local1) {
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, _particles[_local2]));
_particleFactory.disposeParticle(_particles[_local2]);
_local2++;
};
_particles.length = 0;
}
public function runAhead(_arg1:Number, _arg2:Number=10):void{
var _local3:Number = _maximumFrameTime;
var _local4:Number = (1 / _arg2);
_maximumFrameTime = _local4;
while (_arg1 > 0) {
_arg1 = (_arg1 - _local4);
update(_local4);
};
_maximumFrameTime = _local3;
}
public function set fixedFrameTime(_arg1:Number):void{
_fixedFrameTime = _arg1;
}
public function get maximumFrameTime():Number{
return (_maximumFrameTime);
}
public function set particles(_arg1:Array):void{
killAllParticles();
addExistingParticles(_arg1, false);
}
public function get useInternalTick():Boolean{
return (_useInternalTick);
}
public function set initializers(_arg1:Array):void{
var _local2:Initializer;
for each (_local2 in _initializers) {
_local2.removedFromEmitter(this);
};
_initializers = _arg1.slice();
BehaviourArrayUtils.sortArray(_initializers);
for each (_local2 in _arg1) {
_local2.addedToEmitter(this);
};
}
public function get particleFactory():ParticleFactory{
return (_particleFactory);
}
private function updateEventListener(_arg1:UpdateEvent):void{
if (_fixedFrameTime){
update(_fixedFrameTime);
} else {
update(_arg1.time);
};
}
protected function createParticle():Particle{
var _local1:Particle = _particleFactory.createParticle();
var _local2:int = _initializers.length;
initParticle(_local1);
var _local3:int;
while (_local3 < _local2) {
Initializer(_initializers[_local3]).initialize(this, _local1);
_local3++;
};
_particles.push(_local1);
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_CREATED, _local1));
return (_local1);
}
public function get particles():Array{
return (_particles);
}
protected function sortParticles():void{
}
public function removeActivity(_arg1:Activity):void{
if (BehaviourArrayUtils.remove(_activities, _arg1)){
_arg1.removedFromEmitter(this);
};
}
public function set maximumFrameTime(_arg1:Number):void{
_maximumFrameTime = _arg1;
}
protected function initParticle(_arg1:Particle):void{
}
public function addAction(_arg1:Action):void{
BehaviourArrayUtils.add(_actions, _arg1);
_arg1.addedToEmitter(this);
}
public function hasInitializerOfType(_arg1:Class):Boolean{
return (BehaviourArrayUtils.containsType(_initializers, _arg1));
}
public function removeInitializer(_arg1:Initializer):void{
if (BehaviourArrayUtils.remove(_initializers, _arg1)){
_arg1.removedFromEmitter(this);
};
}
public function get running():Boolean{
return (_running);
}
public function hasActionOfType(_arg1:Class):Boolean{
return (BehaviourArrayUtils.containsType(_actions, _arg1));
}
public function get fixedFrameTime():Number{
return (_fixedFrameTime);
}
public function set particleFactory(_arg1:ParticleFactory):void{
_particleFactory = _arg1;
}
public function set useInternalTick(_arg1:Boolean):void{
if (_useInternalTick != _arg1){
_useInternalTick = _arg1;
if (_started){
if (_useInternalTick){
FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener, false, 0, true);
} else {
FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener);
};
};
};
}
public function resume():void{
_running = true;
}
public function addActivity(_arg1:Activity):void{
BehaviourArrayUtils.add(_activities, _arg1);
_arg1.addedToEmitter(this);
}
public function get initializers():Array{
return (_initializers);
}
public function addExistingParticles(_arg1:Array, _arg2:Boolean=false):void{
var _local4:int;
var _local5:int;
var _local6:int;
var _local3:int = _arg1.length;
if (_arg2){
_local5 = _initializers.length;
_local6 = 0;
while (_local6 < _local5) {
_local4 = 0;
while (_local4 < _local3) {
Initializer(_initializers[_local6]).initialize(this, _arg1[_local4]);
_local4++;
};
_local6++;
};
};
_local4 = 0;
while (_local4 < _local3) {
_particles.push(_arg1[_local4]);
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_ADDED, _arg1[_local4]));
_local4++;
};
}
public function hasActivityOfType(_arg1:Class):Boolean{
return (BehaviourArrayUtils.containsType(_activities, _arg1));
}
public function set activities(_arg1:Array):void{
var _local2:Activity;
for each (_local2 in _activities) {
_local2.removedFromEmitter(this);
};
_activities = _arg1.slice();
BehaviourArrayUtils.sortArray(_activities);
for each (_local2 in _activities) {
_local2.addedToEmitter(this);
};
}
public function hasInitializer(_arg1:Initializer):Boolean{
return (BehaviourArrayUtils.contains(_initializers, _arg1));
}
public function removeAction(_arg1:Action):void{
if (BehaviourArrayUtils.remove(_actions, _arg1)){
_arg1.removedFromEmitter(this);
};
}
public function hasActivity(_arg1:Activity):Boolean{
return (BehaviourArrayUtils.contains(_activities, _arg1));
}
public function get activities():Array{
return (_activities);
}
public function hasAction(_arg1:Action):Boolean{
return (BehaviourArrayUtils.contains(_actions, _arg1));
}
public function start():void{
if (_useInternalTick){
FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener, false, 0, true);
};
_started = true;
_running = true;
var _local1:int = _activities.length;
var _local2:int;
while (_local2 < _local1) {
Activity(_activities[_local2]).initialize(this);
_local2++;
};
_local1 = _counter.startEmitter(this);
_local2 = 0;
while (_local2 < _local1) {
createParticle();
_local2++;
};
}
public function update(_arg1:Number):void{
var _local2:int;
var _local3:Particle;
var _local5:Action;
var _local6:int;
var _local7:int;
if (!_running){
return;
};
if (_arg1 > _maximumFrameTime){
_arg1 = _maximumFrameTime;
};
var _local4:int = _counter.updateEmitter(this, _arg1);
_local2 = 0;
while (_local2 < _local4) {
createParticle();
_local2++;
};
sortParticles();
_local4 = _activities.length;
_local2 = 0;
while (_local2 < _local4) {
Activity(_activities[_local2]).update(this, _arg1);
_local2++;
};
if (_particles.length > 0){
_local4 = _actions.length;
_local6 = _particles.length;
_local7 = 0;
while (_local7 < _local4) {
_local5 = _actions[_local7];
_local2 = 0;
while (_local2 < _local6) {
_local3 = _particles[_local2];
_local5.update(this, _local3, _arg1);
_local2++;
};
_local7++;
};
_local2 = _local6;
while (_local2--) {
_local3 = _particles[_local2];
if (_local3.isDead){
_particles.splice(_local2, 1);
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, _local3));
if (_local3.isDead){
_particleFactory.disposeParticle(_local3);
};
};
};
} else {
dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_EMPTY));
};
dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_UPDATED));
if (_dispatchCounterComplete){
_dispatchCounterComplete = false;
dispatchEvent(new EmitterEvent(EmitterEvent.COUNTER_COMPLETE));
};
}
public function set counter(_arg1:Counter):void{
_counter = _arg1;
if (running){
_counter.startEmitter(this);
};
}
public function set actions(_arg1:Array):void{
var _local2:Action;
for each (_local2 in _actions) {
_local2.removedFromEmitter(this);
};
_actions = _arg1.slice();
BehaviourArrayUtils.sortArray(_actions);
for each (_local2 in _arg1) {
_local2.addedToEmitter(this);
};
}
public function dispatchCounterComplete():void{
_dispatchCounterComplete = true;
}
public function get counter():Counter{
return (_counter);
}
public function get actions():Array{
return (_actions);
}
}
}//package org.flintparticles.common.emitters
Section 43
//Linear (org.flintparticles.common.energyEasing.Linear)
package org.flintparticles.common.energyEasing {
public class Linear {
public static function easeOut(_arg1:Number, _arg2:Number):Number{
return ((1 - (_arg1 / _arg2)));
}
public static function easeIn(_arg1:Number, _arg2:Number):Number{
return ((1 - (_arg1 / _arg2)));
}
public static function easeInOut(_arg1:Number, _arg2:Number):Number{
return ((1 - (_arg1 / _arg2)));
}
public static function easeNone(_arg1:Number, _arg2:Number):Number{
return ((1 - (_arg1 / _arg2)));
}
}
}//package org.flintparticles.common.energyEasing
Section 44
//Quadratic (org.flintparticles.common.energyEasing.Quadratic)
package org.flintparticles.common.energyEasing {
public class Quadratic {
public static function easeOut(_arg1:Number, _arg2:Number):Number{
_arg1 = (1 - (_arg1 / _arg2));
return ((_arg1 * _arg1));
}
public static function easeIn(_arg1:Number, _arg2:Number):Number{
_arg1 = (_arg1 / _arg2);
return ((1 - (_arg1 * _arg1)));
}
public static function easeInOut(_arg1:Number, _arg2:Number):Number{
_arg1 = (_arg1 / (_arg2 * 0.5));
if (_arg1 < 1){
return ((1 - ((_arg1 * _arg1) * 0.5)));
};
_arg1 = (_arg1 - 2);
return (((_arg1 * _arg1) * 0.5));
}
}
}//package org.flintparticles.common.energyEasing
Section 45
//EmitterEvent (org.flintparticles.common.events.EmitterEvent)
package org.flintparticles.common.events {
import flash.events.*;
public class EmitterEvent extends Event {
public static var COUNTER_COMPLETE:String = "counterComplete";
public static var EMITTER_UPDATED:String = "emitterUpdated";
public static var EMITTER_EMPTY:String = "emitterEmpty";
public function EmitterEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
}
}//package org.flintparticles.common.events
Section 46
//ParticleEvent (org.flintparticles.common.events.ParticleEvent)
package org.flintparticles.common.events {
import org.flintparticles.common.particles.*;
import flash.events.*;
public class ParticleEvent extends Event {
public var particle:Particle;
public var otherObject;
public static var PARTICLES_COLLISION:String = "particlesCollision";
public static var BOUNDING_BOX_COLLISION:String = "boundingBoxCollision";
public static var PARTICLE_ADDED:String = "particleAdded";
public static var PARTICLE_DEAD:String = "particleDead";
public static var PARTICLE_CREATED:String = "particleCreated";
public function ParticleEvent(_arg1:String, _arg2:Particle=null, _arg3:Boolean=false, _arg4:Boolean=false){
super(_arg1, _arg3, _arg4);
this.particle = _arg2;
}
override public function clone():Event{
var _local1:ParticleEvent = new ParticleEvent(type, particle, bubbles, cancelable);
_local1.otherObject = otherObject;
return (_local1);
}
}
}//package org.flintparticles.common.events
Section 47
//UpdateEvent (org.flintparticles.common.events.UpdateEvent)
package org.flintparticles.common.events {
import flash.events.*;
public class UpdateEvent extends Event {
public var time:Number;
public static var UPDATE:String = "update";
public function UpdateEvent(_arg1:String, _arg2:Number=NaN, _arg3:Boolean=false, _arg4:Boolean=false){
super(_arg1, _arg3, _arg4);
this.time = _arg2;
}
override public function clone():Event{
return (new UpdateEvent(type, time, bubbles, cancelable));
}
}
}//package org.flintparticles.common.events
Section 48
//ColorInit (org.flintparticles.common.initializers.ColorInit)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.utils.*;
public class ColorInit extends InitializerBase {
private var _max:uint;
private var _min:uint;
public function ColorInit(_arg1:uint=0xFFFFFF, _arg2:uint=0xFFFFFF){
_min = _arg1;
_max = _arg2;
}
public function set minColor(_arg1:uint):void{
_min = _arg1;
}
public function get color():uint{
return (((_min == _max)) ? _min : interpolateColors(_max, _min, 0.5));
}
public function set color(_arg1:uint):void{
_max = (_min = _arg1);
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
if (_max == _min){
_arg2.color = _min;
} else {
_arg2.color = interpolateColors(_min, _max, Math.random());
};
}
public function get minColor():uint{
return (_min);
}
public function set maxColor(_arg1:uint):void{
_max = _arg1;
}
public function get maxColor():uint{
return (_max);
}
}
}//package org.flintparticles.common.initializers
Section 49
//ImageClass (org.flintparticles.common.initializers.ImageClass)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.utils.*;
public class ImageClass extends InitializerBase {
private var _parameters:Array;
private var _imageClass:Class;
public function ImageClass(_arg1:Class=null, ... _args){
_imageClass = _arg1;
_parameters = _args;
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
_arg2.image = construct(_imageClass, _parameters);
}
public function get parameters():Array{
return (_parameters);
}
public function set parameters(_arg1:Array):void{
_parameters = _arg1;
}
public function set imageClass(_arg1:Class):void{
_imageClass = _arg1;
}
public function get imageClass():Class{
return (_imageClass);
}
}
}//package org.flintparticles.common.initializers
Section 50
//Initializer (org.flintparticles.common.initializers.Initializer)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.behaviours.*;
public interface Initializer extends Behaviour {
function initialize(_arg1:Emitter, _arg2:Particle):void;
}
}//package org.flintparticles.common.initializers
Section 51
//InitializerBase (org.flintparticles.common.initializers.InitializerBase)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class InitializerBase implements Initializer {
protected var _priority:int;// = 0
public function set priority(_arg1:int):void{
_priority = _arg1;
}
public function initialize(_arg1:Emitter, _arg2:Particle):void{
}
public function removedFromEmitter(_arg1:Emitter):void{
}
public function addedToEmitter(_arg1:Emitter):void{
}
public function get priority():int{
return (_priority);
}
}
}//package org.flintparticles.common.initializers
Section 52
//Lifetime (org.flintparticles.common.initializers.Lifetime)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class Lifetime extends InitializerBase {
private var _max:Number;
private var _min:Number;
public function Lifetime(_arg1:Number=1.79769313486232E308, _arg2:Number=NaN){
_max = _arg2;
_min = _arg1;
}
public function get lifetime():Number{
return (((_min == _max)) ? _min : ((_max + _min) * 0.5));
}
public function get maxLifetime():Number{
return (_max);
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
if (isNaN(_max)){
_arg2.lifetime = _min;
} else {
_arg2.lifetime = (_min + (Math.random() * (_max - _min)));
};
}
public function set lifetime(_arg1:Number):void{
_max = (_min = _arg1);
}
public function set minLifetime(_arg1:Number):void{
_min = _arg1;
}
public function set maxLifetime(_arg1:Number):void{
_max = _arg1;
}
public function get minLifetime():Number{
return (_min);
}
}
}//package org.flintparticles.common.initializers
Section 53
//ScaleImageInit (org.flintparticles.common.initializers.ScaleImageInit)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class ScaleImageInit extends InitializerBase {
private var _max:Number;
private var _min:Number;
public function ScaleImageInit(_arg1:Number=1, _arg2:Number=NaN){
_min = _arg1;
if (isNaN(_arg2)){
_max = _min;
} else {
_max = _arg2;
};
}
public function get scale():Number{
return (((_min == _max)) ? _min : ((_max + _min) / 2));
}
public function set maxScale(_arg1:Number):void{
_max = _arg1;
}
public function get maxScale():Number{
return (_max);
}
public function set minScale(_arg1:Number):void{
_min = _arg1;
}
public function set scale(_arg1:Number):void{
_max = (_min = _arg1);
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
if (_max == _min){
_arg2.scale = _min;
} else {
_arg2.scale = (_min + (Math.random() * (_max - _min)));
};
}
public function get minScale():Number{
return (_min);
}
}
}//package org.flintparticles.common.initializers
Section 54
//Particle (org.flintparticles.common.particles.Particle)
package org.flintparticles.common.particles {
import flash.geom.*;
import flash.utils.*;
public class Particle {
public var energy:Number;// = 1
public var lifetime:Number;// = 0
public var scale:Number;// = 1
public var image;// = null
public var color:uint;// = 4294967295
public var collisionRadius:Number;// = 1
private var _colorTransform:ColorTransform;// = null
private var _previousColor:uint;
public var isDead:Boolean;// = false
public var mass:Number;// = 1
private var _dictionary:Dictionary;// = null
public var age:Number;// = 0
public function revive():void{
lifetime = 0;
age = 0;
energy = 1;
isDead = false;
}
public function get dictionary():Dictionary{
if (_dictionary == null){
_dictionary = new Dictionary(true);
};
return (_dictionary);
}
public function get colorTransform():ColorTransform{
if (((!(_colorTransform)) || (!((_previousColor == color))))){
_colorTransform = new ColorTransform((((color >>> 16) & 0xFF) / 0xFF), (((color >>> 8) & 0xFF) / 0xFF), ((color & 0xFF) / 0xFF), (((color >>> 24) & 0xFF) / 0xFF), 0, 0, 0, 0);
_previousColor = color;
};
return (_colorTransform);
}
protected function cloneInto(_arg1:Particle):Particle{
var _local2:Object;
_arg1.color = color;
_arg1.scale = scale;
_arg1.mass = mass;
_arg1.collisionRadius = collisionRadius;
_arg1.lifetime = lifetime;
_arg1.age = age;
_arg1.energy = energy;
_arg1.isDead = isDead;
_arg1.image = image;
if (_dictionary){
_arg1._dictionary = new Dictionary(true);
for (_local2 in _dictionary) {
_arg1._dictionary[_local2] = _dictionary[_local2];
};
};
return (_arg1);
}
public function get alpha():Number{
return ((((color & 4278190080) >>> 24) / 0xFF));
}
public function initialize():void{
color = 4294967295;
scale = 1;
mass = 1;
collisionRadius = 1;
lifetime = 0;
age = 0;
energy = 1;
isDead = false;
image = null;
_dictionary = null;
_colorTransform = null;
}
public function clone(_arg1:ParticleFactory=null):Particle{
var _local2:Particle;
if (_arg1){
_local2 = _arg1.createParticle();
} else {
_local2 = new Particle();
};
return (cloneInto(_local2));
}
}
}//package org.flintparticles.common.particles
Section 55
//ParticleFactory (org.flintparticles.common.particles.ParticleFactory)
package org.flintparticles.common.particles {
public interface ParticleFactory {
function clearAllParticles():void;
function createParticle():Particle;
function disposeParticle(_arg1:Particle):void;
}
}//package org.flintparticles.common.particles
Section 56
//Renderer (org.flintparticles.common.renderers.Renderer)
package org.flintparticles.common.renderers {
import org.flintparticles.common.emitters.*;
public interface Renderer {
function removeEmitter(_arg1:Emitter):void;
function addEmitter(_arg1:Emitter):void;
}
}//package org.flintparticles.common.renderers
Section 57
//SpriteRendererBase (org.flintparticles.common.renderers.SpriteRendererBase)
package org.flintparticles.common.renderers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import flash.events.*;
import org.flintparticles.common.events.*;
import flash.display.*;
public class SpriteRendererBase extends Sprite implements Renderer {
protected var _emitters:Array;
public function SpriteRendererBase(){
_emitters = new Array();
mouseEnabled = false;
mouseChildren = false;
addEventListener(Event.ADDED_TO_STAGE, addedToStage, false, 0, true);
}
private function particleAdded(_arg1:ParticleEvent):void{
addParticle(_arg1.particle);
if (stage){
stage.invalidate();
};
}
public function set emitters(_arg1:Array):void{
var _local2:Emitter;
for each (_local2 in _emitters) {
removeEmitter(_local2);
};
for each (_local2 in _arg1) {
addEmitter(_local2);
};
}
private function addedToStage(_arg1:Event):void{
if (stage){
stage.invalidate();
};
}
public function get emitters():Array{
return (_emitters);
}
protected function addParticle(_arg1:Particle):void{
}
protected function updateParticles(_arg1:Event):void{
var _local2:Array = new Array();
var _local3:int;
while (_local3 < _emitters.length) {
_local2 = _local2.concat(Emitter(_emitters[_local3]).particles);
_local3++;
};
renderParticles(_local2);
}
protected function emitterUpdated(_arg1:EmitterEvent):void{
if (stage){
stage.invalidate();
};
}
public function removeEmitter(_arg1:Emitter):void{
var _local3:Particle;
var _local2:int;
while (_local2 < _emitters.length) {
if (_emitters[_local2] == _arg1){
_emitters.splice(_local2, 1);
_arg1.removeEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated);
_arg1.removeEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded);
_arg1.removeEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded);
_arg1.removeEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved);
for each (_local3 in _arg1.particles) {
removeParticle(_local3);
};
if (_emitters.length == 0){
removeEventListener(Event.RENDER, updateParticles);
renderParticles([]);
} else {
if (stage){
stage.invalidate();
};
};
return;
};
_local2++;
};
}
protected function renderParticles(_arg1:Array):void{
}
protected function removeParticle(_arg1:Particle):void{
}
private function particleRemoved(_arg1:ParticleEvent):void{
removeParticle(_arg1.particle);
if (stage){
stage.invalidate();
};
}
public function addEmitter(_arg1:Emitter):void{
var _local2:Particle;
_emitters.push(_arg1);
if (stage){
stage.invalidate();
};
_arg1.addEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated, false, 0, true);
_arg1.addEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded, false, 0, true);
_arg1.addEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded, false, 0, true);
_arg1.addEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved, false, 0, true);
for each (_local2 in _arg1.particles) {
addParticle(_local2);
};
if (_emitters.length == 1){
addEventListener(Event.RENDER, updateParticles, false, 0, true);
};
}
}
}//package org.flintparticles.common.renderers
Section 58
//construct (org.flintparticles.common.utils.construct)
package org.flintparticles.common.utils {
public function construct(_arg1:Class, _arg2:Array){
switch (_arg2.length){
case 0:
return (new (_arg1));
case 1:
return (new _arg1(_arg2[0]));
case 2:
return (new _arg1(_arg2[0], _arg2[1]));
case 3:
return (new _arg1(_arg2[0], _arg2[1], _arg2[2]));
case 4:
return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3]));
case 5:
return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4]));
case 6:
return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5]));
case 7:
return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6]));
case 8:
return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7]));
case 9:
return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8]));
case 10:
return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8], _arg2[9]));
default:
return (null);
};
}
}//package org.flintparticles.common.utils
Section 59
//FrameUpdater (org.flintparticles.common.utils.FrameUpdater)
package org.flintparticles.common.utils {
import flash.utils.*;
import flash.events.*;
import org.flintparticles.common.events.*;
import flash.display.*;
public class FrameUpdater extends EventDispatcher {
private var _shape:Shape;
private var _running:Boolean;// = false
private var _time:Number;
private static var _instance:FrameUpdater;
public function FrameUpdater(){
_shape = new Shape();
}
private function startTimer():void{
_shape.addEventListener(Event.ENTER_FRAME, frameUpdate, false, 0, true);
_time = getTimer();
_running = true;
}
private function stopTimer():void{
_shape.removeEventListener(Event.ENTER_FRAME, frameUpdate);
_running = false;
}
override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
super.removeEventListener(_arg1, _arg2, _arg3);
if (((_running) && (!(hasEventListener(UpdateEvent.UPDATE))))){
stopTimer();
};
}
override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
if (((!(_running)) && (hasEventListener(UpdateEvent.UPDATE)))){
startTimer();
};
}
private function frameUpdate(_arg1:Event):void{
var _local2:int = _time;
_time = getTimer();
var _local3:Number = ((_time - _local2) * 0.001);
dispatchEvent(new UpdateEvent(UpdateEvent.UPDATE, _local3));
}
public static function get instance():FrameUpdater{
if (_instance == null){
_instance = new (FrameUpdater);
};
return (_instance);
}
}
}//package org.flintparticles.common.utils
Section 60
//interpolateColors (org.flintparticles.common.utils.interpolateColors)
package org.flintparticles.common.utils {
public function interpolateColors(_arg1:uint, _arg2:uint, _arg3:Number):uint{
var _local4:Number = (1 - _arg3);
var _local5:uint = Math.round(((((_arg1 >>> 16) & 0xFF) * _arg3) + (((_arg2 >>> 16) & 0xFF) * _local4)));
var _local6:uint = Math.round(((((_arg1 >>> 8) & 0xFF) * _arg3) + (((_arg2 >>> 8) & 0xFF) * _local4)));
var _local7:uint = Math.round((((_arg1 & 0xFF) * _arg3) + ((_arg2 & 0xFF) * _local4)));
var _local8:uint = Math.round(((((_arg1 >>> 24) & 0xFF) * _arg3) + (((_arg2 >>> 24) & 0xFF) * _local4)));
return (((((_local8 << 24) | (_local5 << 16)) | (_local6 << 8)) | _local7));
}
}//package org.flintparticles.common.utils
Section 61
//Maths (org.flintparticles.common.utils.Maths)
package org.flintparticles.common.utils {
public class Maths {
private static const DEGTORAD:Number = (Math.PI / 180);
private static const RADTODEG:Number = (180 / Math.PI);
public static function asRadians(_arg1:Number):Number{
return ((_arg1 * DEGTORAD));
}
public static function asDegrees(_arg1:Number):Number{
return ((_arg1 * RADTODEG));
}
}
}//package org.flintparticles.common.utils
Section 62
//Accelerate (org.flintparticles.twoD.actions.Accelerate)
package org.flintparticles.twoD.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.twoD.particles.*;
public class Accelerate extends ActionBase {
private var _x:Number;
private var _y:Number;
public function Accelerate(_arg1:Number=0, _arg2:Number=0){
this.x = _arg1;
this.y = _arg2;
}
public function set x(_arg1:Number):void{
_x = _arg1;
}
public function get y():Number{
return (_y);
}
public function get x():Number{
return (_x);
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
var _local4:Particle2D;
_local4 = Particle2D(_arg2);
Particle2D(_arg2).velX = (_local4.velX + (_x * _arg3));
_local4.velY = (_local4.velY + (_y * _arg3));
}
public function set y(_arg1:Number):void{
_y = _arg1;
}
}
}//package org.flintparticles.twoD.actions
Section 63
//LinearDrag (org.flintparticles.twoD.actions.LinearDrag)
package org.flintparticles.twoD.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.twoD.particles.*;
public class LinearDrag extends ActionBase {
private var _drag:Number;
public function LinearDrag(_arg1:Number=0){
this.drag = _arg1;
}
public function get drag():Number{
return (_drag);
}
public function set drag(_arg1:Number):void{
_drag = _arg1;
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
var _local4:Particle2D = Particle2D(_arg2);
var _local5:Number = (1 - ((_drag * _arg3) / _local4.mass));
if (_local5 < 0){
_local4.velX = 0;
_local4.velY = 0;
} else {
_local4.velX = (_local4.velX * _local5);
_local4.velY = (_local4.velY * _local5);
};
}
}
}//package org.flintparticles.twoD.actions
Section 64
//Move (org.flintparticles.twoD.actions.Move)
package org.flintparticles.twoD.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.twoD.particles.*;
public class Move extends ActionBase {
public function Move(){
priority = -10;
}
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
var _local4:Particle2D = Particle2D(_arg2);
Particle2D(_arg2).previousX = _local4.x;
_local4.previousY = _local4.y;
_local4.x = (_local4.x + (_local4.velX * _arg3));
_local4.y = (_local4.y + (_local4.velY * _arg3));
}
}
}//package org.flintparticles.twoD.actions
Section 65
//RotateToDirection (org.flintparticles.twoD.actions.RotateToDirection)
package org.flintparticles.twoD.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.twoD.particles.*;
public class RotateToDirection extends ActionBase {
override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{
var _local4:Particle2D = Particle2D(_arg2);
_local4.rotation = Math.atan2(_local4.velY, _local4.velX);
}
}
}//package org.flintparticles.twoD.actions
Section 66
//Emitter2D (org.flintparticles.twoD.emitters.Emitter2D)
package org.flintparticles.twoD.emitters {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.utils.*;
import org.flintparticles.twoD.particles.*;
public class Emitter2D extends Emitter {
protected var _y:Number;// = 0
public var spaceSort:Boolean;// = false
public var spaceSortedX:Array;
protected var _x:Number;// = 0
protected var _rotation:Number;// = 0
protected static var _creator:ParticleCreator2D = new ParticleCreator2D();
public function Emitter2D(){
_particleFactory = _creator;
}
public function get y():Number{
return (_y);
}
override protected function initParticle(_arg1:Particle):void{
var _local2:Particle2D = Particle2D(_arg1);
_local2.x = _x;
_local2.y = _y;
_local2.previousX = _x;
_local2.previousY = _y;
_local2.rotation = _rotation;
}
override protected function sortParticles():void{
var _local1:int;
var _local2:int;
if (spaceSort){
spaceSortedX = _particles.sortOn("x", (Array.NUMERIC | Array.RETURNINDEXEDARRAY));
_local1 = _particles.length;
_local2 = 0;
while (_local2 < _local1) {
Particle2D(_particles[spaceSortedX[_local2]]).sortID = _local2;
_local2++;
};
};
}
public function set x(_arg1:Number):void{
_x = _arg1;
}
public function set rotRadians(_arg1:Number):void{
_rotation = _arg1;
}
public function get x():Number{
return (_x);
}
public function get rotRadians():Number{
return (_rotation);
}
public function set rotation(_arg1:Number):void{
_rotation = Maths.asRadians(_arg1);
}
public function get rotation():Number{
return (Maths.asDegrees(_rotation));
}
public function set y(_arg1:Number):void{
_y = _arg1;
}
public static function get defaultParticleFactory():ParticleFactory{
return (_creator);
}
}
}//package org.flintparticles.twoD.emitters
Section 67
//Position (org.flintparticles.twoD.initializers.Position)
package org.flintparticles.twoD.initializers {
import flash.geom.*;
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.twoD.particles.*;
public class Position extends InitializerBase {
private var _zone:Zone2D;
public function Position(_arg1:Zone2D=null){
this.zone = _arg1;
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
var _local3:Particle2D;
var _local5:Number;
var _local6:Number;
_local3 = Particle2D(_arg2);
var _local4:Point = _zone.getLocation();
if (_local3.rotation == 0){
_local3.x = (_local3.x + _local4.x);
_local3.y = (_local3.y + _local4.y);
} else {
_local5 = Math.sin(_local3.rotation);
_local6 = Math.cos(_local3.rotation);
_local3.x = (_local3.x + ((_local6 * _local4.x) - (_local5 * _local4.y)));
_local3.y = (_local3.y + ((_local6 * _local4.y) + (_local5 * _local4.x)));
};
_local3.previousX = _local3.x;
_local3.previousY = _local3.y;
}
public function set zone(_arg1:Zone2D):void{
_zone = _arg1;
}
public function get zone():Zone2D{
return (_zone);
}
}
}//package org.flintparticles.twoD.initializers
Section 68
//Velocity (org.flintparticles.twoD.initializers.Velocity)
package org.flintparticles.twoD.initializers {
import flash.geom.*;
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.twoD.particles.*;
public class Velocity extends InitializerBase {
private var _zone:Zone2D;
public function Velocity(_arg1:Zone2D=null){
this.zone = _arg1;
}
override public function initialize(_arg1:Emitter, _arg2:Particle):void{
var _local5:Number;
var _local6:Number;
var _local3:Particle2D = Particle2D(_arg2);
var _local4:Point = _zone.getLocation();
if (_local3.rotation == 0){
_local3.velX = _local4.x;
_local3.velY = _local4.y;
} else {
_local5 = Math.sin(_local3.rotation);
_local6 = Math.cos(_local3.rotation);
_local3.velX = ((_local6 * _local4.x) - (_local5 * _local4.y));
_local3.velY = ((_local6 * _local4.y) + (_local5 * _local4.x));
};
}
public function set zone(_arg1:Zone2D):void{
_zone = _arg1;
}
public function get zone():Zone2D{
return (_zone);
}
}
}//package org.flintparticles.twoD.initializers
Section 69
//Particle2D (org.flintparticles.twoD.particles.Particle2D)
package org.flintparticles.twoD.particles {
import flash.geom.*;
import org.flintparticles.common.particles.*;
public class Particle2D extends Particle {
public var y:Number;// = 0
public var previousX:Number;// = 0
public var previousY:Number;// = 0
private var _previousRadius:Number;
public var angVelocity:Number;// = 0
public var velX:Number;// = 0
public var velY:Number;// = 0
private var _previousMass:Number;
public var x:Number;// = 0
public var sortID:int;// = -1
private var _inertia:Number;
public var rotation:Number;// = 0
override public function clone(_arg1:ParticleFactory=null):Particle{
var _local2:Particle2D;
if (_arg1){
_local2 = (_arg1.createParticle() as Particle2D);
} else {
_local2 = new Particle2D();
};
cloneInto(_local2);
_local2.x = x;
_local2.y = y;
_local2.velX = velX;
_local2.velY = velY;
_local2.rotation = rotation;
_local2.angVelocity = angVelocity;
return (_local2);
}
override public function initialize():void{
super.initialize();
x = 0;
y = 0;
previousX = 0;
previousY = 0;
velX = 0;
velY = 0;
rotation = 0;
angVelocity = 0;
sortID = -1;
}
public function get matrixTransform():Matrix{
var _local1:Number = (scale * Math.cos(rotation));
var _local2:Number = (scale * Math.sin(rotation));
return (new Matrix(_local1, _local2, -(_local2), _local1, x, y));
}
public function get inertia():Number{
if (((!((mass == _previousMass))) || (!((collisionRadius == _previousRadius))))){
_inertia = (((mass * collisionRadius) * collisionRadius) * 0.5);
_previousMass = mass;
_previousRadius = collisionRadius;
};
return (_inertia);
}
}
}//package org.flintparticles.twoD.particles
Section 70
//ParticleCreator2D (org.flintparticles.twoD.particles.ParticleCreator2D)
package org.flintparticles.twoD.particles {
import org.flintparticles.common.particles.*;
public class ParticleCreator2D implements ParticleFactory {
private var _particles:Array;
public function ParticleCreator2D(){
_particles = new Array();
}
public function clearAllParticles():void{
_particles = new Array();
}
public function disposeParticle(_arg1:Particle):void{
if ((_arg1 is Particle2D)){
_arg1.initialize();
_particles.push(_arg1);
};
}
public function createParticle():Particle{
if (_particles.length){
return (_particles.pop());
};
return (new Particle2D());
}
}
}//package org.flintparticles.twoD.particles
Section 71
//BitmapRenderer (org.flintparticles.twoD.renderers.BitmapRenderer)
package org.flintparticles.twoD.renderers {
import flash.geom.*;
import flash.filters.*;
import org.flintparticles.twoD.particles.*;
import flash.display.*;
import org.flintparticles.common.renderers.*;
public class BitmapRenderer extends SpriteRendererBase {
protected var _bitmap:Bitmap;
protected var _bitmapData:BitmapData;
protected var _clearBetweenFrames:Boolean;
protected var _colorMap:Array;
protected var _smoothing:Boolean;
protected var _canvas:Rectangle;
protected var _postFilters:Array;
protected var _preFilters:Array;
protected static var ZERO_POINT:Point = new Point(0, 0);
public function BitmapRenderer(_arg1:Rectangle, _arg2:Boolean=false){
mouseEnabled = false;
mouseChildren = false;
_smoothing = _arg2;
_preFilters = new Array();
_postFilters = new Array();
_canvas = _arg1;
createBitmap();
_clearBetweenFrames = true;
}
public function get clearBetweenFrames():Boolean{
return (_clearBetweenFrames);
}
public function set clearBetweenFrames(_arg1:Boolean):void{
_clearBetweenFrames = _arg1;
}
override protected function renderParticles(_arg1:Array):void{
var _local2:int;
var _local3:int;
if (!_bitmap){
return;
};
_bitmapData.lock();
_local3 = _preFilters.length;
_local2 = 0;
while (_local2 < _local3) {
_bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _preFilters[_local2]);
_local2++;
};
if (((_clearBetweenFrames) && ((_local3 == 0)))){
_bitmapData.fillRect(_bitmap.bitmapData.rect, 0);
};
_local3 = _arg1.length;
if (_local3){
_local2 = _local3;
while (_local2--) {
drawParticle(_arg1[_local2]);
};
};
_local3 = _postFilters.length;
_local2 = 0;
while (_local2 < _local3) {
_bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _postFilters[_local2]);
_local2++;
};
if (_colorMap){
_bitmapData.paletteMap(_bitmapData, _bitmapData.rect, ZERO_POINT, _colorMap[1], _colorMap[2], _colorMap[3], _colorMap[0]);
};
_bitmapData.unlock();
}
protected function createBitmap():void{
if (!_canvas){
return;
};
if (((_bitmap) && (_bitmapData))){
_bitmapData.dispose();
_bitmapData = null;
};
if (_bitmap){
removeChild(_bitmap);
_bitmap = null;
};
_bitmap = new Bitmap(null, "auto", _smoothing);
_bitmapData = new BitmapData(Math.ceil(_canvas.width), Math.ceil(_canvas.height), true, 0);
_bitmap.bitmapData = _bitmapData;
addChild(_bitmap);
_bitmap.x = _canvas.x;
_bitmap.y = _canvas.y;
}
public function get bitmapData():BitmapData{
return (_bitmapData);
}
public function set canvas(_arg1:Rectangle):void{
_canvas = _arg1;
createBitmap();
}
public function clearPaletteMap():void{
_colorMap = null;
}
public function get preFilters():Array{
return (_preFilters.slice());
}
public function removeFilter(_arg1:BitmapFilter):void{
var _local2:int;
while (_local2 < _preFilters.length) {
if (_preFilters[_local2] == _arg1){
_preFilters.splice(_local2, 1);
return;
};
_local2++;
};
_local2 = 0;
while (_local2 < _postFilters.length) {
if (_postFilters[_local2] == _arg1){
_postFilters.splice(_local2, 1);
return;
};
_local2++;
};
}
public function set smoothing(_arg1:Boolean):void{
_smoothing = _arg1;
if (_bitmap){
_bitmap.smoothing = _arg1;
};
}
public function set preFilters(_arg1:Array):void{
var _local2:BitmapFilter;
for each (_local2 in _preFilters) {
removeFilter(_local2);
};
for each (_local2 in _arg1) {
addFilter(_local2, false);
};
}
protected function drawParticle(_arg1:Particle2D):void{
var _local2:Matrix;
_local2 = _arg1.matrixTransform;
_local2.translate(-(_canvas.x), -(_canvas.y));
_bitmapData.draw(_arg1.image, _local2, _arg1.colorTransform, DisplayObject(_arg1.image).blendMode, null, _smoothing);
}
public function setPaletteMap(_arg1:Array=null, _arg2:Array=null, _arg3:Array=null, _arg4:Array=null):void{
_colorMap = new Array(4);
_colorMap[0] = _arg4;
_colorMap[1] = _arg1;
_colorMap[2] = _arg2;
_colorMap[3] = _arg3;
}
public function get smoothing():Boolean{
return (_smoothing);
}
public function set postFilters(_arg1:Array):void{
var _local2:BitmapFilter;
for each (_local2 in _postFilters) {
removeFilter(_local2);
};
for each (_local2 in _arg1) {
addFilter(_local2, true);
};
}
public function addFilter(_arg1:BitmapFilter, _arg2:Boolean=false):void{
if (_arg2){
_postFilters.push(_arg1);
} else {
_preFilters.push(_arg1);
};
}
public function get canvas():Rectangle{
return (_canvas);
}
public function get postFilters():Array{
return (_postFilters.slice());
}
}
}//package org.flintparticles.twoD.renderers
Section 72
//DiscSectorZone (org.flintparticles.twoD.zones.DiscSectorZone)
package org.flintparticles.twoD.zones {
import flash.geom.*;
public class DiscSectorZone implements Zone2D {
private var _minAngle:Number;
private var _innerRadius:Number;
private var _minAllowed:Number;
private var _outerRadius:Number;
private var _center:Point;
private var _maxAngle:Number;
private var _innerSq:Number;
private var _outerSq:Number;
private static var TWOPI:Number = 6.28318530717959;
public function DiscSectorZone(_arg1:Point=null, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0){
if (_arg2 < _arg3){
throw (new Error((((("The outerRadius (" + _arg2) + ") can't be smaller than the innerRadius (") + _arg3) + ") in your DiscSectorZone. N.B. the outerRadius is the second argument in the constructor and the innerRadius is the third argument.")));
};
_center = (_arg1) ? _arg1.clone() : new Point(0, 0);
_innerRadius = _arg3;
_outerRadius = _arg2;
_innerSq = (_innerRadius * _innerRadius);
_outerSq = (_outerRadius * _outerRadius);
_minAngle = _arg4;
_maxAngle = _arg5;
if (_maxAngle){
while (_maxAngle > TWOPI) {
_maxAngle = (_maxAngle - TWOPI);
};
while (_maxAngle < 0) {
_maxAngle = (_maxAngle + TWOPI);
};
_minAllowed = (_maxAngle - TWOPI);
if (_minAngle){
if (_arg4 == _arg5){
_minAngle = _maxAngle;
} else {
_minAngle = clamp(_minAngle);
};
};
};
}
public function set minAngle(_arg1:Number):void{
_minAngle = clamp(_arg1);
}
public function set centerX(_arg1:Number):void{
_center.x = _arg1;
}
public function set centerY(_arg1:Number):void{
_center.y = _arg1;
}
public function getArea():Number{
return (((Math.PI * _outerSq) - (Math.PI * _innerSq)));
}
public function get innerRadius():Number{
return (_innerRadius);
}
public function set innerRadius(_arg1:Number):void{
_innerRadius = _arg1;
_innerSq = (_innerRadius * _innerRadius);
}
public function get maxAngle():Number{
return (_maxAngle);
}
public function set outerRadius(_arg1:Number):void{
_outerRadius = _arg1;
_outerSq = (_outerRadius * _outerRadius);
}
public function set maxAngle(_arg1:Number):void{
_maxAngle = _arg1;
while (_maxAngle > TWOPI) {
_maxAngle = (_maxAngle - TWOPI);
};
while (_maxAngle < 0) {
_maxAngle = (_maxAngle + TWOPI);
};
_minAllowed = (_maxAngle - TWOPI);
_minAngle = clamp(_minAngle);
}
public function contains(_arg1:Number, _arg2:Number):Boolean{
_arg1 = (_arg1 - _center.x);
_arg2 = (_arg2 - _center.y);
var _local3:Number = ((_arg1 * _arg1) + (_arg2 * _arg2));
if ((((_local3 > _outerSq)) || ((_local3 < _innerSq)))){
return (false);
};
var _local4:Number = Math.atan2(_arg2, _arg1);
_local4 = clamp(_local4);
return ((_local4 >= _minAngle));
}
public function get minAngle():Number{
return (_minAngle);
}
public function get centerX():Number{
return (_center.x);
}
public function get centerY():Number{
return (_center.y);
}
public function get center():Point{
return (_center);
}
public function getLocation():Point{
var _local1:Number = Math.random();
var _local2:Point = Point.polar((_innerRadius + ((1 - (_local1 * _local1)) * (_outerRadius - _innerRadius))), (_minAngle + (Math.random() * (_maxAngle - _minAngle))));
_local2.x = (_local2.x + _center.x);
_local2.y = (_local2.y + _center.y);
return (_local2);
}
public function set center(_arg1:Point):void{
_center = _arg1;
}
private function clamp(_arg1:Number):Number{
if (_maxAngle){
while (_arg1 > _maxAngle) {
_arg1 = (_arg1 - TWOPI);
};
while (_arg1 < _minAllowed) {
_arg1 = (_arg1 + TWOPI);
};
};
return (_arg1);
}
public function get outerRadius():Number{
return (_outerRadius);
}
}
}//package org.flintparticles.twoD.zones
Section 73
//DiscZone (org.flintparticles.twoD.zones.DiscZone)
package org.flintparticles.twoD.zones {
import flash.geom.*;
public class DiscZone implements Zone2D {
private var _innerRadius:Number;
private var _innerSq:Number;
private var _outerRadius:Number;
private var _center:Point;
private var _outerSq:Number;
private static const TWOPI:Number = 6.28318530717959;
public function DiscZone(_arg1:Point=null, _arg2:Number=0, _arg3:Number=0){
if (_arg2 < _arg3){
throw (new Error((((("The outerRadius (" + _arg2) + ") can't be smaller than the innerRadius (") + _arg3) + ") in your DiscZone. N.B. the outerRadius is the second argument in the constructor and the innerRadius is the third argument.")));
};
if (_arg1 == null){
_center = new Point(0, 0);
} else {
_center = _arg1;
};
_innerRadius = _arg3;
_outerRadius = _arg2;
_innerSq = (_innerRadius * _innerRadius);
_outerSq = (_outerRadius * _outerRadius);
}
public function getArea():Number{
return ((Math.PI * (_outerSq - _innerSq)));
}
public function set centerX(_arg1:Number):void{
_center.x = _arg1;
}
public function set centerY(_arg1:Number):void{
_center.y = _arg1;
}
public function get innerRadius():Number{
return (_innerRadius);
}
public function set innerRadius(_arg1:Number):void{
_innerRadius = _arg1;
_innerSq = (_innerRadius * _innerRadius);
}
public function get center():Point{
return (_center);
}
public function set outerRadius(_arg1:Number):void{
_outerRadius = _arg1;
_outerSq = (_outerRadius * _outerRadius);
}
public function get centerX():Number{
return (_center.x);
}
public function get centerY():Number{
return (_center.y);
}
public function contains(_arg1:Number, _arg2:Number):Boolean{
_arg1 = (_arg1 - _center.x);
_arg2 = (_arg2 - _center.y);
var _local3:Number = ((_arg1 * _arg1) + (_arg2 * _arg2));
return ((((_local3 <= _outerSq)) && ((_local3 >= _innerSq))));
}
public function getLocation():Point{
var _local1:Number = Math.random();
var _local2:Point = Point.polar((_innerRadius + ((1 - (_local1 * _local1)) * (_outerRadius - _innerRadius))), (Math.random() * TWOPI));
_local2.x = (_local2.x + _center.x);
_local2.y = (_local2.y + _center.y);
return (_local2);
}
public function get outerRadius():Number{
return (_outerRadius);
}
public function set center(_arg1:Point):void{
_center = _arg1;
}
}
}//package org.flintparticles.twoD.zones
Section 74
//Zone2D (org.flintparticles.twoD.zones.Zone2D)
package org.flintparticles.twoD.zones {
import flash.geom.*;
public interface Zone2D {
function getArea():Number;
function getLocation():Point;
function contains(_arg1:Number, _arg2:Number):Boolean;
}
}//package org.flintparticles.twoD.zones
Section 75
//arrowReleaseWav (arrowReleaseWav)
package {
import flash.media.*;
public dynamic class arrowReleaseWav extends Sound {
}
}//package
Section 76
//dieWav (dieWav)
package {
import flash.media.*;
public dynamic class dieWav extends Sound {
}
}//package
Section 77
//doorOpenWav (doorOpenWav)
package {
import flash.media.*;
public dynamic class doorOpenWav extends Sound {
}
}//package
Section 78
//doorShutWav (doorShutWav)
package {
import flash.media.*;
public dynamic class doorShutWav extends Sound {
}
}//package
Section 79
//explosionWav (explosionWav)
package {
import flash.media.*;
public dynamic class explosionWav extends Sound {
}
}//package
Section 80
//flamethrowerWav (flamethrowerWav)
package {
import flash.media.*;
public dynamic class flamethrowerWav extends Sound {
}
}//package
Section 81
//footstepsWav (footstepsWav)
package {
import flash.media.*;
public dynamic class footstepsWav extends Sound {
}
}//package
Section 82
//ghostChirpWav (ghostChirpWav)
package {
import flash.media.*;
public dynamic class ghostChirpWav extends Sound {
}
}//package
Section 83
//ghostMoanWav (ghostMoanWav)
package {
import flash.media.*;
public dynamic class ghostMoanWav extends Sound {
}
}//package
Section 84
//groundWav (groundWav)
package {
import flash.media.*;
public dynamic class groundWav extends Sound {
}
}//package
Section 85
//hitWav (hitWav)
package {
import flash.media.*;
public dynamic class hitWav extends Sound {
}
}//package
Section 86
//landWav (landWav)
package {
import flash.media.*;
public dynamic class landWav extends Sound {
}
}//package
Section 87
//leverWav (leverWav)
package {
import flash.media.*;
public dynamic class leverWav extends Sound {
}
}//package
Section 88
//monsterDeathWav (monsterDeathWav)
package {
import flash.media.*;
public dynamic class monsterDeathWav extends Sound {
}
}//package
Section 89
//monsterPurrWav (monsterPurrWav)
package {
import flash.media.*;
public dynamic class monsterPurrWav extends Sound {
}
}//package
Section 90
//rockSlideWav (rockSlideWav)
package {
import flash.media.*;
public dynamic class rockSlideWav extends Sound {
}
}//package
Section 91
//screamAWav (screamAWav)
package {
import flash.media.*;
public dynamic class screamAWav extends Sound {
}
}//package
Section 92
//screamBWav (screamBWav)
package {
import flash.media.*;
public dynamic class screamBWav extends Sound {
}
}//package
Section 93
//square (square)
package {
import flash.display.*;
public dynamic class square extends MovieClip {
}
}//package
Section 94
//stingerWav (stingerWav)
package {
import flash.media.*;
public dynamic class stingerWav extends Sound {
}
}//package
Section 95
//swordWhipWav (swordWhipWav)
package {
import flash.media.*;
public dynamic class swordWhipWav extends Sound {
}
}//package
Section 96
//themeWav (themeWav)
package {
import flash.media.*;
public dynamic class themeWav extends Sound {
}
}//package
Section 97
//windWav (windWav)
package {
import flash.media.*;
public dynamic class windWav extends Sound {
}
}//package