home *** CD-ROM | disk | FTP | other *** search
Text File | 2008-09-15 | 37.0 KB | 1,138 lines |
- package game
- {
- import flash.display.MovieClip;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.KeyboardEvent;
- import flash.events.TimerEvent;
- import flash.text.TextField;
- import flash.text.TextFormat;
- import flash.utils.Timer;
- import flash.utils.clearTimeout;
- import flash.utils.getDefinitionByName;
- import flash.utils.getTimer;
- import flash.utils.setTimeout;
- import game.Guns.Gun;
- import game.panel.ComboPanel;
- import game.panel.Dock;
- import game.panel.Energy;
- import game.panel.NoAmmo;
- import game.powerUps.Ammo;
- import game.powerUps.Bomb;
- import game.powerUps.FirstAid;
- import game.powerUps.Money;
- import game.powerUps.PowerUp;
- import game.powerUps.SlowDown;
- import game.upgrades.ElectricFence;
- import game.upgrades.Grenade;
-
- public class Level extends Sprite
- {
-
-
- internal var inputText:TextField;
-
- public var addBombTimer:Timer;
-
- internal var speedUpInterval:uint;
-
- internal var front:MovieClip;
-
- public var addCashTimer:Timer;
-
- internal var dock:Dock;
-
- public var hintFreezer:Boolean = false;
-
- internal var levelZombieSpred:Number;
-
- public var levelZombiesQuestions:Array;
-
- internal var levelTime:int = 110000;
-
- internal var nextTarget:GameZombie;
-
- public var zombieFromHolePropability:Number;
-
- internal var levelOver:Boolean;
-
- internal var levelAddZombieTimeSpred:Number;
-
- public var energy:Energy;
-
- public var zombieDoubleFoodPropability:Number;
-
- public var hintBody:Boolean = false;
-
- internal var synchroniser:int = 0;
-
- public var elcticFence:ElectricFence;
-
- internal var player:Player;
-
- public var levelZombies:Array;
-
- public var zombieCounter:int;
-
- internal var highLitedRed:TextFormat;
-
- public var lives:*;
-
- internal var toZombieShot:Boolean;
-
- internal var isOver:Boolean;
-
- internal var levelAddZombieTimeOffset:Number;
-
- public var addFirstAidTimer:Timer;
-
- internal var levelStartTime:int;
-
- internal var background:GameBackground;
-
- internal var comboPanel:ComboPanel;
-
- public var isHiding:Boolean = false;
-
- internal var questions:QuestionsList;
-
- internal var curretTarget:GameZombie;
-
- internal var ammoContainer:MovieClip;
-
- internal var addZombieTimer:Timer;
-
- public var zombieIsFemalePropability:Number;
-
- internal var ixMinmumOffset:int;
-
- public var addAmmoTimer:Timer;
-
- internal var currentLevel:int;
-
- internal var levelPowerUps:Array;
-
- public var hintZombie:Boolean = false;
-
- internal var combo:int;
-
- public var addSlowDownTimer:Timer;
-
- private var itrvalID:*;
-
- internal var sManager:SoundManager;
-
- public var zombieID:int;
-
- internal var nextZ:Number = 0;
-
- public var zombieSpeed:int;
-
- internal var lastTarget:GameZombie;
-
- internal var zetMinmumOffset:int;
-
- internal var zombieTypes:Array;
-
- internal var levelZombieOffset:Number;
-
- public function Level()
- {
- levelZombies = new Array();
- levelPowerUps = new Array();
- levelZombiesQuestions = new Array();
- zombieTypes = new Array();
- isHiding = false;
- hintZombie = false;
- hintBody = false;
- hintFreezer = false;
- nextZ = 0;
- levelTime = 110000;
- synchroniser = 0;
- super();
- comboPanel = new ComboPanel();
- questions = new QuestionsList();
- player = ThisGameManager.getInstance().player;
- front = MovieClip(ThisGameManager.getInstance().getChildByName("frontGround"));
- front.addChild(comboPanel);
- ammoContainer = MovieClip(ThisGameManager.getInstance().getChildByName("ammo"));
- inputText = TextField(ThisGameManager.getInstance().getChildByName("inputTextt"));
- inputText.text = "";
- inputText.embedFonts = true;
- inputText.defaultTextFormat.font = ThisGameManager.getInstance().Bold.fontName;
- highLitedRed = inputText.defaultTextFormat;
- highLitedRed.color = 16711680;
- ThisGameManager.getInstance().gameOver = false;
- nextZ = Math.random();
- zombieID = 0;
- ThisGameManager.getInstance().currentLevel = 1;
- energy = new Energy();
- dock = Dock(ThisGameManager.getInstance().getChildByName("dockk"));
- ThisGameManager.getInstance().guns[1].addEventListener(Gun.SHOT,dock.updateHand);
- ThisGameManager.getInstance().guns[2].addEventListener(Gun.SHOT,dock.updateMachine);
- ThisGameManager.getInstance().guns[3].addEventListener(Gun.SHOT,dock.updateMachine);
- ThisGameManager.getInstance().guns[4].addEventListener(Gun.SHOT,dock.updateBazooka);
- ThisGameManager.getInstance().guns[5].addEventListener(Gun.SHOT,dock.updateBazooka);
- swapGuns(0);
- background = ThisGameManager.getInstance().background;
- zombieTypes.push("Zombie_standard");
- zombieTypes.push("Zombie_chick");
- zombieTypes.push("Zombie_fat");
- zombieTypes.push("Zombie_groovie");
- zombieTypes.push("Zombie_nerd");
- zombieTypes.push("Zombie_beheaded");
- sManager = ThisGameManager.getInstance().soundManager;
- levelZombieSpred = 600;
- levelZombieOffset = 100;
- levelAddZombieTimeSpred = 2000;
- levelAddZombieTimeOffset = 2000;
- ixMinmumOffset = 300;
- zetMinmumOffset = 250000;
- MovieClip(ThisGameManager.getInstance().getChildByName("gameContainer")).addChild(this);
- addZombieTimer = new Timer(1,1);
- addZombieTimer.addEventListener(TimerEvent.TIMER,addZombie);
- addAmmoTimer = new Timer(5000,1);
- addAmmoTimer.addEventListener(TimerEvent.TIMER,addAmmo);
- addBombTimer = new Timer(15000 + Math.random() * 10000,1);
- addBombTimer.addEventListener(TimerEvent.TIMER,addSomePowerUp);
- addFirstAidTimer = new Timer(15000 + Math.random() * 20000,1);
- addFirstAidTimer.addEventListener(TimerEvent.TIMER,addSomePowerUp);
- addSlowDownTimer = new Timer(25000 + Math.random() * 10000,1);
- addSlowDownTimer.addEventListener(TimerEvent.TIMER,addSomePowerUp);
- addCashTimer = new Timer(15000 + Math.random() * 25000,1);
- addCashTimer.addEventListener(TimerEvent.TIMER,addSomePowerUp);
- }
-
- private function zombieSpeedDown() : void
- {
- var _loc1_:int = 0;
- sManager.givePowerUpSound(5);
- _loc1_ = 0;
- while(_loc1_ < levelZombies.length)
- {
- GameZombie(levelZombies[_loc1_]).speed = 15 - 2.5 * player.flypaperCanonLevel;
- _loc1_++;
- }
- ThisGameManager.getInstance().level.zombieSpeed = 15 - 2.5 * player.flypaperCanonLevel;
- speedUpInterval = setTimeout(zombieSpeedUp,5000 + 10000 * (player.flypaperCanonLevel / 2));
- }
-
- private function powerUpsOnBottom() : void
- {
- var _loc1_:int = 0;
- _loc1_ = 0;
- while(_loc1_ < levelPowerUps.length)
- {
- ammoContainer.addChildAt(levelPowerUps[_loc1_],0);
- _loc1_++;
- }
- }
-
- private function clearALL() : void
- {
- var _loc1_:int = 0;
- var _loc2_:int = 0;
- _loc1_ = 0;
- while(_loc1_ < levelZombies.length)
- {
- GameZombie(levelZombies[_loc1_]).cloud.clearHighLight();
- _loc1_++;
- }
- _loc2_ = 0;
- while(_loc2_ < levelPowerUps.length)
- {
- PowerUp(levelPowerUps[_loc2_]).cloud.clearHighLight();
- _loc2_++;
- }
- }
-
- private function addZombie(param1:TimerEvent) : void
- {
- var _loc2_:Boolean = false;
- var _loc3_:* = undefined;
- var _loc4_:Class = null;
- var _loc5_:int = 0;
- var _loc6_:GameZombie = null;
- var _loc7_:* = undefined;
- var _loc8_:* = undefined;
- var _loc9_:int = 0;
- var _loc10_:int = 0;
- var _loc11_:Array = null;
- var _loc12_:int = 0;
- var _loc13_:Number = NaN;
- var _loc14_:int = 0;
- var _loc15_:int = 0;
- if(zombieCounter - levelZombies.length <= 0)
- {
- return;
- }
- addZombieTimer.delay = Math.random() * levelAddZombieTimeSpred + levelAddZombieTimeOffset;
- addZombieTimer.reset();
- addZombieTimer.start();
- _loc2_ = true;
- _loc3_ = 0;
- while(true)
- {
- _loc7_ = Math.random() * levelZombieSpred + levelZombieOffset - background.getVanishingPoint().x;
- _loc2_ = true;
- _loc8_ = 0;
- while(_loc8_ < levelZombies.length)
- {
- if(Math.abs(GameZombie(levelZombies[_loc8_]).posinton.X - _loc7_) < ixMinmumOffset && Math.abs(GameZombie(levelZombies[_loc8_]).posinton.Z - GameZombie(levelZombies[_loc8_]).startZ) < zetMinmumOffset)
- {
- _loc2_ = false;
- }
- _loc8_++;
- }
- if(++_loc3_ > 30)
- {
- break;
- }
- if(_loc2_)
- {
- _loc5_ = Math.floor(Math.random() * zombieTypes.length);
- (_loc6_ = new (_loc4_ = getDefinitionByName(zombieTypes[_loc5_]) as Class)()).setIsFemale(_loc5_ == 0 || _loc5_ == 1);
- if(nextZ > zombieFromHolePropability)
- {
- nextZ = Math.random();
- if(!_loc6_.setZombie(currentLevel - player.dumbifierLevel,false,_loc7_))
- {
- _loc6_.deleteMe();
- return;
- }
- this.addChildAt(_loc6_,0);
- }
- else
- {
- if(nextZ < 0)
- {
- _loc9_ = 1;
- }
- else
- {
- _loc9_ = Math.floor(Math.random() * 3);
- }
- nextZ = Math.random();
- _loc10_ = this.numChildren;
- _loc11_ = background.getFloorHole()[background.getCurrntBackground() - 1];
- _loc2_ = true;
- _loc12_ = _loc9_;
- while(_loc12_ < _loc9_ + 3)
- {
- _loc2_ = true;
- _loc15_ = 0;
- while(_loc15_ < levelZombies.length)
- {
- if(Math.abs(GameZombie(levelZombies[_loc15_]).posinton.X - _loc11_[_loc12_ % 3].X) < ixMinmumOffset && Math.abs(GameZombie(levelZombies[_loc15_]).posinton.Z - _loc11_[_loc12_ % 3].Z) < zetMinmumOffset)
- {
- _loc2_ = false;
- }
- _loc15_++;
- }
- if(_loc2_)
- {
- _loc9_ = _loc12_ % 3;
- break;
- }
- _loc12_++;
- }
- if(!_loc2_)
- {
- _loc6_.deleteMe();
- return;
- }
- _loc13_ = Number(background.getFloorHole()[background.getCurrntBackground() - 1][_loc9_].Z);
- _loc7_ = background.getFloorHole()[background.getCurrntBackground() - 1][_loc9_].X;
- if(!_loc6_.setZombie(currentLevel - player.dumbifierLevel,true,_loc7_,_loc13_))
- {
- _loc6_.deleteMe();
- return;
- }
- _loc14_ = 0;
- while(_loc14_ < this.numChildren)
- {
- if(this.getChildAt(_loc14_) == elcticFence)
- {
- if(ElectricFence(this.getChildAt(_loc14_)).posinton.Z < _loc13_)
- {
- _loc10_ = _loc14_;
- break;
- }
- }
- else if(GameZombie(this.getChildAt(_loc14_)).posinton.Z < _loc13_)
- {
- _loc10_ = _loc14_;
- break;
- }
- _loc14_++;
- }
- this.addChildAt(_loc6_,_loc10_);
- }
- _loc6_.addEventListener(GameZombie.DELETE,deleteZombie);
- levelZombies.push(_loc6_);
- return;
- }
- }
- }
-
- public function zombieSpeedUp() : void
- {
- var _loc1_:int = 0;
- sManager.givePowerUpSound(6);
- _loc1_ = 0;
- while(_loc1_ < levelZombies.length)
- {
- GameZombie(levelZombies[_loc1_]).speed = 15;
- _loc1_++;
- }
- ThisGameManager.getInstance().level.zombieSpeed = 15;
- }
-
- public function setLevel(param1:int) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:int = 0;
- comboPanel.visible = false;
- questions = new QuestionsList();
- levelOver = false;
- combo = 1;
- elcticFence = null;
- zombieSpeed = 15;
- swapGuns(0);
- addZombieTimer.delay = 1000;
- isOver = false;
- currentLevel = param1;
- levelAddZombieTimeOffset -= 100;
- zombieFromHolePropability = (7 - param1) * 0.15;
- zombieIsFemalePropability = (param1 - 1) * 0.06;
- zombieDoubleFoodPropability = (param1 - 2) * 0.052;
- _loc2_ = 100;
- _loc3_ = 200;
- _loc4_ = 10;
- energy.gotoAndStop(1);
- this.parent.addChild(energy);
- ThisGameManager.getInstance().guns[0].bullets = _loc2_;
- ThisGameManager.getInstance().guns[1].bullets = _loc2_;
- ThisGameManager.getInstance().guns[2].bullets = _loc3_;
- ThisGameManager.getInstance().guns[3].bullets = _loc3_;
- ThisGameManager.getInstance().guns[4].bullets = _loc4_;
- ThisGameManager.getInstance().guns[5].bullets = _loc4_;
- lives = 4;
- background.setBackground(int((param1 - 1) / 2) + 1);
- levelZombies = new Array();
- levelZombiesQuestions = new Array();
- levelPowerUps = new Array();
- zombieCounter = 15 + int(1.4 * param1);
- ThisGameManager.getInstance().stage.removeEventListener(KeyboardEvent.KEY_DOWN,nextLeter);
- }
-
- private function getPowerUp(param1:PowerUp) : void
- {
- param1.giveMeWhatYouHave();
- clearALL();
- param1.cloud.setHighLight(param1.myText);
- setTimeout(param1.deleteMe,500);
- clearText();
- }
-
- public function stopAll() : void
- {
- var _loc1_:int = 0;
- addZombieTimer.stop();
- _loc1_ = 0;
- while(_loc1_ < levelZombies.length)
- {
- GameZombie(levelZombies[_loc1_]).stopMoving();
- _loc1_++;
- }
- }
-
- private function nextLevel() : void
- {
- var _loc1_:int = 0;
- finishLevel();
- _loc1_ = levelTime + 10000 * currentLevel - (getTimer() - levelStartTime) / 500;
- ThisGameManager.getInstance().gun1.removeEventListener(Gun.FIRE_CPLT,synchroGuns);
- ThisGameManager.getInstance().gun2.removeEventListener(Gun.FIRE_CPLT,synchroGuns);
- ThisGameManager.getInstance().stage.removeEventListener(KeyboardEvent.KEY_DOWN,nextLeter);
- ++ThisGameManager.getInstance().currentLevel;
- if(ThisGameManager.getInstance().currentLevel > 10)
- {
- ThisGameManager.getInstance().gameOver = true;
- ThisGameManager.getInstance().currentLevel = 1;
- }
- ThisGameManager.getInstance().play();
- }
-
- public function waitToSpeedUp(param1:int) : void
- {
- itrvalID = setTimeout(zombieSpeedUp,param1);
- }
-
- public function start() : void
- {
- var _loc1_:Array = null;
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- _loc1_ = ThisGameManager.getInstance().guns;
- _loc2_ = 0;
- _loc3_ = 0;
- while(_loc3_ < _loc1_.length)
- {
- Gun(_loc1_[_loc3_]).visible = false;
- _loc3_++;
- }
- ThisGameManager.getInstance().gun1 = Gun(_loc1_[_loc2_ * 2]);
- ThisGameManager.getInstance().gun2 = Gun(_loc1_[_loc2_ * 2 + 1]);
- ThisGameManager.getInstance().gun1.visible = true;
- ThisGameManager.getInstance().gun2.visible = true;
- player.currentGunID = _loc2_;
- player.currentBulletsIDs[0] = 0;
- dock.setAll();
- levelStartTime = getTimer();
- addZombieTimer.start();
- addAmmoTimer.start();
- addBombTimer.start();
- addFirstAidTimer.start();
- addSlowDownTimer.start();
- addCashTimer.start();
- unLockGuns(null);
- clearText();
- this.addEventListener(Event.ENTER_FRAME,sortZombieByZ);
- }
-
- private function deletePowerUp(param1:Event) : void
- {
- var _loc2_:Number = NaN;
- var _loc3_:int = 0;
- _loc2_ = levelPowerUps.length;
- while(_loc2_ >= 0)
- {
- if(levelPowerUps[_loc2_] == param1.target)
- {
- levelPowerUps.splice(_loc2_,1);
- break;
- }
- _loc3_ = 0;
- while(_loc3_ < PowerUp.getPlaces().length)
- {
- if(PowerUp(param1.target).posinton.Z == PowerUp.getPlaces()[_loc3_][1])
- {
- PowerUp.getPlaces()[_loc3_][2] = false;
- break;
- }
- _loc3_++;
- }
- _loc2_--;
- }
- }
-
- private function shotSomeWhere() : void
- {
- lockGuns();
- ThisGameManager.getInstance().gun1.fireInAir(inputText.text.length);
- ThisGameManager.getInstance().gun2.fireInAir(inputText.text.length);
- clearALL();
- }
-
- private function synchroGuns(param1:Event) : void
- {
- ++synchroniser;
- if(synchroniser == 2)
- {
- unLockGuns(null);
- }
- }
-
- public function getQuestions() : QuestionsList
- {
- return questions;
- }
-
- private function addPowerUp(param1:PowerUp) : void
- {
- ammoContainer.addChild(param1);
- levelPowerUps.push(param1);
- levelPowerUps.sort(compareAmmo);
- powerUpsOnBottom();
- param1.addEventListener(PowerUp.DELETE,deletePowerUp);
- }
-
- private function finishLevel() : void
- {
- var _loc1_:int = 0;
- var _loc2_:int = 0;
- this.removeEventListener(Event.ENTER_FRAME,sortZombieByZ);
- levelOver = true;
- isOver = true;
- addZombieTimer.stop();
- if(addAmmoTimer.running)
- {
- addAmmoTimer.stop();
- }
- if(addBombTimer.running)
- {
- addBombTimer.stop();
- }
- if(addFirstAidTimer.running)
- {
- addFirstAidTimer.stop();
- }
- if(addSlowDownTimer.running)
- {
- addSlowDownTimer.stop();
- }
- if(addCashTimer.running)
- {
- addCashTimer.stop();
- }
- if(elcticFence != null)
- {
- elcticFence.kill();
- }
- clearTimeout(itrvalID);
- clearTimeout(speedUpInterval);
- ThisGameManager.getInstance().level.zombieSpeed = 15;
- _loc1_ = int(levelZombies.length - 1);
- while(_loc1_ >= 0)
- {
- GameZombie(levelZombies[_loc1_]).deleteMe();
- _loc1_--;
- }
- _loc2_ = int(levelPowerUps.length - 1);
- while(_loc2_ >= 0)
- {
- PowerUp(levelPowerUps[_loc2_]).killMySlef();
- _loc2_--;
- }
- ThisGameManager.getInstance().stage.removeEventListener(KeyboardEvent.KEY_DOWN,nextLeter);
- inputText.text = "";
- ThisGameManager.getInstance().gun1.removeEventListener(Gun.FIRE_CPLT,synchroGuns);
- ThisGameManager.getInstance().gun2.removeEventListener(Gun.FIRE_CPLT,synchroGuns);
- }
-
- public function unLockGuns(param1:Event) : void
- {
- synchroniser = 0;
- curretTarget = null;
- if(nextTarget != null)
- {
- if(player.bullets[player.currentGunID][player.currentBulletsIDs[player.currentGunID]] > 0)
- {
- killZombie(nextTarget);
- }
- else
- {
- sManager.giveCyngielSound();
- inputText.text = "";
- clearALL();
- front.addChild(new NoAmmo());
- }
- }
- ThisGameManager.getInstance().stage.addEventListener(KeyboardEvent.KEY_DOWN,nextLeter);
- }
-
- private function bulletsChange(param1:int) : void
- {
- var _loc2_:* = undefined;
- var _loc3_:int = 0;
- var _loc4_:int = 0;
- _loc2_ = player.currentBulletsIDs[player.currentGunID];
- _loc3_ = 4;
- if(player.currentGunID == 2)
- {
- _loc3_ = 2;
- }
- _loc4_ = param1;
- while(_loc4_ != 2 * _loc3_ && _loc4_ != -2 * _loc3_)
- {
- if(player.bullets[player.currentGunID][(_loc2_ + Math.abs(_loc4_)) % _loc3_] > 0)
- {
- player.currentBulletsIDs[player.currentGunID] = (_loc2_ + Math.abs(_loc4_)) % _loc3_;
- dock.setAll();
- return;
- }
- _loc4_ += param1;
- }
- }
-
- private function nextLeter(param1:KeyboardEvent) : void
- {
- var _loc2_:String = null;
- var _loc3_:Boolean = false;
- var _loc4_:int = 0;
- var _loc5_:int = 0;
- if(param1.charCode > 48 && param1.charCode < 55)
- {
- swapGuns(param1.charCode - 49);
- return;
- }
- _loc2_ = String.fromCharCode(param1.charCode);
- if(_loc2_ == "]" || _loc2_ == "}")
- {
- bulletsChange(1);
- return;
- }
- if(_loc2_ == "[" || _loc2_ == "{")
- {
- bulletsChange(-1);
- return;
- }
- if(!(param1.charCode > 64 && param1.charCode < 91 || param1.charCode > 96 && param1.charCode < 124) && _loc2_ != "\'" && _loc2_ != " " && _loc2_ != "!" && _loc2_ != "?" && _loc2_ != ":" && _loc2_ != ",")
- {
- return;
- }
- toZombieShot = false;
- inputText.text = inputText.text.concat(String.fromCharCode(param1.charCode)).toLowerCase();
- if(player.bullets[player.currentGunID][player.currentBulletsIDs[player.currentGunID]] > 0)
- {
- _loc4_ = 0;
- while(true)
- {
- if(_loc4_ < levelZombies.length)
- {
- _loc3_ = true;
- _loc5_ = 0;
- while(_loc5_ < inputText.text.length)
- {
- if(GameZombie(levelZombies[_loc4_]).myText.length < inputText.text.length || GameZombie(levelZombies[_loc4_]).myText.charAt(_loc5_) != inputText.text.charAt(_loc5_))
- {
- _loc3_ = false;
- break;
- }
- _loc5_++;
- }
- continue;
- }
- }
- GameZombie(levelZombies[_loc4_]).cloud.setHighLight(inputText.text);
- lastTarget = GameZombie(levelZombies[_loc4_]);
- if(GameZombie(levelZombies[_loc4_]).myText.length == inputText.text.length)
- {
- tryToKillZombie(GameZombie(levelZombies[_loc4_]));
- }
- return;
- }
- _loc4_ = 0;
- while(true)
- {
- if(_loc4_ >= levelPowerUps.length)
- {
- if(!_loc3_ && player.bullets[player.currentGunID][player.currentBulletsIDs[player.currentGunID]] <= 0)
- {
- sManager.giveCyngielSound();
- inputText.text = "";
- front.addChild(new NoAmmo());
- return;
- }
- if(!_loc3_)
- {
- dontKillZombie(lastTarget);
- inputText.setTextFormat(highLitedRed,inputText.text.length - 1,inputText.text.length);
- if(!ThisGameManager.getInstance().mute)
- {
- sManager.wrongLeter.play();
- }
- }
- return;
- }
- _loc3_ = true;
- _loc5_ = 0;
- while(_loc5_ < inputText.text.length)
- {
- if(PowerUp(levelPowerUps[_loc4_]).myText.length < inputText.text.length || PowerUp(levelPowerUps[_loc4_]).myText.charAt(_loc5_) != inputText.text.charAt(_loc5_))
- {
- _loc3_ = false;
- break;
- }
- _loc5_++;
- }
- if(_loc3_)
- {
- break;
- }
- _loc4_++;
- }
- PowerUp(levelPowerUps[_loc4_]).cloud.setHighLight(inputText.text);
- if(PowerUp(levelPowerUps[_loc4_]).myText.length == inputText.text.length)
- {
- getPowerUp(PowerUp(levelPowerUps[_loc4_]));
- }
- }
-
- public function moveZombieBack(param1:Event) : void
- {
- var _loc2_:int = 0;
- if(toZombieShot)
- {
- _loc2_ = 0;
- while(_loc2_ < levelZombies.length)
- {
- GameZombie(levelZombies[_loc2_]).posinton.Z = GameZombie(levelZombies[_loc2_]).posinton.Z + 50000;
- if(GameZombie(levelZombies[_loc2_]).posinton.Z > 450000)
- {
- GameZombie(levelZombies[_loc2_]).posinton.Z = 450000;
- }
- _loc2_++;
- }
- }
- }
-
- private function sortZombieByZ(param1:Event) : void
- {
- var _loc2_:Boolean = false;
- var _loc3_:int = 0;
- levelZombies.sort(compareZombie,Array.DESCENDING);
- _loc2_ = false;
- if(elcticFence == null)
- {
- _loc2_ = true;
- }
- _loc3_ = 0;
- while(_loc3_ < levelZombies.length)
- {
- if(!_loc2_ && GameZombie(levelZombies[_loc3_]).posinton.Z < elcticFence.posinton.Z)
- {
- this.addChild(elcticFence);
- _loc2_ = true;
- }
- this.addChild(levelZombies[_loc3_]);
- _loc3_++;
- }
- }
-
- private function lockGuns() : void
- {
- ThisGameManager.getInstance().gun1.addEventListener(Gun.FIRE_CPLT,synchroGuns);
- ThisGameManager.getInstance().gun2.addEventListener(Gun.FIRE_CPLT,synchroGuns);
- }
-
- private function killNearest(param1:GameZombie) : void
- {
- var _loc2_:int = 0;
- var _loc3_:GameZombie = null;
- var _loc4_:int = 0;
- if(levelZombies[0] != param1)
- {
- _loc3_ = levelZombies[0];
- _loc2_ = Math.abs(param1.posinton.Z - levelZombies[0].posinton.Z);
- }
- else
- {
- if(levelZombies.length <= 1)
- {
- return;
- }
- _loc3_ = levelZombies[1];
- _loc2_ = Math.abs(param1.posinton.Z - levelZombies[1].posinton.Z);
- }
- _loc4_ = 1;
- while(_loc4_ < levelZombies.length)
- {
- if(levelZombies[_loc4_] != param1 && Math.abs(param1.posinton.Z - levelZombies[_loc4_].posinton.Z) < _loc2_)
- {
- _loc2_ = Math.abs(param1.posinton.Z - levelZombies[_loc4_].posinton.Z);
- _loc3_ = levelZombies[_loc4_];
- }
- _loc4_++;
- }
- _loc3_.blowMeUp();
- }
-
- private function clearText() : void
- {
- inputText.text = "";
- }
-
- public function addAmmo(param1:TimerEvent) : void
- {
- var _loc2_:Ammo = null;
- addAmmoTimer.delay = Math.random() * 10000 + 15000;
- addAmmoTimer.reset();
- _loc2_ = new Ammo();
- if(!_loc2_.setMe(currentLevel - 1))
- {
- addAmmoTimer.start();
- return;
- }
- if(Ammo.getCounter() < 3)
- {
- addAmmoTimer.start();
- }
- addPowerUp(_loc2_);
- }
-
- private function killZombie(param1:GameZombie) : void
- {
- var _loc2_:* = undefined;
- if(param1.isKillingMe)
- {
- lockGuns();
- clearALL();
- combo = 1;
- comboPanel.visible = false;
- setTimeout(unLockGuns,500,null);
- setTimeout(clearText,500);
- curretTarget = null;
- nextTarget = null;
- return;
- }
- curretTarget = param1;
- nextTarget = null;
- _loc2_ = 1;
- if(combo > 3 && combo < 7)
- {
- _loc2_ = 2;
- }
- if(combo > 6)
- {
- _loc2_ = 3;
- }
- player.cash += 50 * _loc2_;
- inputText.text = "";
- if(combo == 3)
- {
- comboPanel.visible = true;
- }
- comboPanel.setNum(combo);
- ++combo;
- toZombieShot = true;
- lockGuns();
- ThisGameManager.getInstance().gun1.fireTo(param1.x,param1.y - param1.height / 2,inputText.text.length);
- ThisGameManager.getInstance().gun2.fireTo(param1.x,param1.y - param1.height / 2,inputText.text.length);
- if(ThisGameManager.getInstance().gun1 == ThisGameManager.getInstance().guns[4])
- {
- if(player.currentBulletsIDs[2] == 1)
- {
- killNearest(param1);
- }
- moveZombieBack(null);
- }
- clearALL();
- param1.cloud.setHighLight(param1.myText);
- param1.shotMe(null);
- }
-
- private function getAmmo(param1:AmmoCase) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- lockGuns();
- if(ThisGameManager.getInstance().gun1 == ThisGameManager.getInstance().guns[0])
- {
- _loc2_ = 0;
- _loc3_ = 100;
- }
- if(ThisGameManager.getInstance().gun1 == ThisGameManager.getInstance().guns[2])
- {
- _loc2_ = 1;
- _loc3_ = 200;
- }
- if(ThisGameManager.getInstance().gun1 == ThisGameManager.getInstance().guns[4])
- {
- _loc2_ = 2;
- _loc3_ = 20;
- }
- ThisGameManager.getInstance().gun1.bullets = ThisGameManager.getInstance().gun1.bullets + _loc3_;
- ThisGameManager.getInstance().gun2.bullets = ThisGameManager.getInstance().gun2.bullets + _loc3_;
- ThisGameManager.getInstance().gun1.fireTo(param1.x,param1.y - param1.height / 2,1);
- ThisGameManager.getInstance().gun2.fireTo(param1.x,param1.y - param1.height / 2,1);
- if(levelPowerUps.length < 3)
- {
- addAmmoTimer.start();
- }
- }
-
- private function tryToKillZombie(param1:GameZombie) : void
- {
- if(curretTarget == null)
- {
- killZombie(param1);
- }
- else if(nextTarget == null && param1 != curretTarget)
- {
- nextTarget = param1;
- }
- }
-
- private function compareAmmo(param1:PowerUp, param2:PowerUp) : int
- {
- if(param1.posinton.Z > param2.posinton.Z)
- {
- return 1;
- }
- if(param1.posinton.Z < param2.posinton.Z)
- {
- return -1;
- }
- return 0;
- }
-
- private function swapGuns(param1:int) : void
- {
- var _loc2_:Array = null;
- var _loc3_:int = 0;
- if(param1 == 5)
- {
- if(player.flypaper[0] > 0)
- {
- --player.flypaper[0];
- dock.updateFlypaper();
- zombieSpeedDown();
- }
- return;
- }
- if(param1 == 3)
- {
- if(player.granades[0] > 0)
- {
- --player.granades[0];
- dock.updateGrenades();
- front.addChild(new Grenade());
- lockGuns();
- }
- return;
- }
- if(param1 == 4)
- {
- if(elcticFence == null && player.fence[0] > 0)
- {
- --player.fence[0];
- dock.updateFence();
- new ElectricFence();
- }
- return;
- }
- if(curretTarget != null)
- {
- return;
- }
- if(player.currentGunID == param1)
- {
- bulletsChange(1);
- return;
- }
- if(param1 == 1 && !player.machineGunEnable)
- {
- return;
- }
- if(param1 == 2 && !player.rocketLauncherEnable)
- {
- return;
- }
- _loc2_ = ThisGameManager.getInstance().guns;
- _loc3_ = 0;
- while(_loc3_ < _loc2_.length)
- {
- Gun(_loc2_[_loc3_]).visible = false;
- _loc3_++;
- }
- ThisGameManager.getInstance().gun1 = Gun(_loc2_[param1 * 2]);
- ThisGameManager.getInstance().gun2 = Gun(_loc2_[param1 * 2 + 1]);
- ThisGameManager.getInstance().gun1.visible = true;
- ThisGameManager.getInstance().gun2.visible = true;
- player.currentGunID = param1;
- }
-
- private function compareZombie(param1:GameZombie, param2:GameZombie) : int
- {
- if(param1.posinton.Z > param2.posinton.Z)
- {
- return 1;
- }
- if(param1.posinton.Z < param2.posinton.Z)
- {
- return -1;
- }
- return 0;
- }
-
- public function killMe() : void
- {
- combo = 1;
- comboPanel.visible = false;
- --lives;
- energy.nextFrame();
- if(lives == 0)
- {
- finishLevel();
- player.saveLevel = ThisGameManager.getInstance().currentLevel;
- ThisGameManager.getInstance().currentLevel = 1;
- ThisGameManager.getInstance().gotoAndPlay("2Menu");
- return;
- }
- }
-
- private function addSomePowerUp(param1:TimerEvent) : void
- {
- var _loc2_:PowerUp = null;
- Timer(param1.target).delay = int(10000 + 30000 * Math.random());
- Timer(param1.target).reset();
- Timer(param1.target).start();
- if(param1.target == addBombTimer)
- {
- _loc2_ = new Bomb();
- }
- if(param1.target == addFirstAidTimer)
- {
- _loc2_ = new FirstAid();
- }
- if(param1.target == addSlowDownTimer)
- {
- _loc2_ = new SlowDown();
- }
- if(param1.target == addCashTimer)
- {
- _loc2_ = new Money();
- }
- if(!_loc2_.setMe(currentLevel - 1))
- {
- return;
- }
- addPowerUp(_loc2_);
- }
-
- private function dontKillZombie(param1:GameZombie) : void
- {
- combo = 1;
- comboPanel.visible = false;
- lockGuns();
- clearALL();
- setTimeout(clearText,500);
- }
-
- private function deleteZombie(param1:Event) : void
- {
- var _loc2_:Number = NaN;
- _loc2_ = 0;
- while(_loc2_ < levelZombies.length)
- {
- if(levelZombies[_loc2_] == param1.target)
- {
- GameZombie(levelZombies[_loc2_]).removeEventListener(GameZombie.DELETE,deleteZombie);
- levelZombies.splice(_loc2_,1);
- --zombieCounter;
- if(zombieCounter <= 0 && levelZombies.length == 0 && !isOver)
- {
- nextLevel();
- }
- }
- _loc2_++;
- }
- }
-
- public function startAll() : void
- {
- var _loc1_:int = 0;
- addZombieTimer.start();
- _loc1_ = 0;
- while(_loc1_ < levelZombies.length)
- {
- GameZombie(levelZombies[_loc1_]).startMovig();
- _loc1_++;
- }
- }
- }
- }
-