Frame 1
stop();
_global.bonusPoints = 0;
_global.shipUsed = 1;
_global.arrPurchased = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
_global.myMusicPlayer = new Music();
_global.SoundManager = new SoundPlayer();
_global.musicOn = true;
_global.soundOn = true;
Instance of Symbol 304 MovieClip in Frame 1
onClipEvent (load) {
myFlag = 0;
Counter = -1;
totalFileSize = _root.getBytesTotal();
startBytes = _root.getBytesLoaded();
_root.continueButton._visible = false;
}
onClipEvent (enterFrame) {
if (Counter == -1) {
bytesLoaded = _root.getBytesLoaded();
amountLoaded = bytesLoaded / totalFileSize;
percentLoaded = int(100 * amountLoaded);
_root.preloader.inside._xscale = percentLoaded;
myMessageOne = ((int(bytesLoaded / 1024) + "kb / ") + int(totalFileSize / 1024)) + "kb";
myMessageOne = ((myMessageOne + newline) + percentLoaded) + "%";
_root.loadingVars = myMessageOne;
if ((amountLoaded >= 1) && (myFlag == 0)) {
myFlag = 1;
_root.continueButton._visible = true;
_root.loadingText = "Loading Completed";
Counter = 20;
}
} else if (Counter == 0) {
okToPlay = true;
siteURL = "http://www.herointeractive.com";
siteURL2 = "http://herointeractive.com";
if ((_url.substr(0, siteURL.length) == siteURL) || (_url.substr(0, siteURL2.length) == siteURL2)) {
okToPlay = true;
}
if (okToPlay) {
_root.gotoAndPlay("endBufferAudio");
}
} else {
Counter--;
}
}
Frame 2
stop();
Instance of Symbol 304 MovieClip in Frame 2
onClipEvent (load) {
}
onClipEvent (enterFrame) {
}
Frame 3
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
_global.tempLives = -1;
_global.tempPeople = -1;
_global.lives = 3;
_global.totalPeople = 0;
_global.tempFrame = 5;
_global.nextTime = 0;
_global.stolenTime = 0;
_global.volume = true;
_global.mySound = new Sound();
_global.gamePaused = false;
_global.cheated = false;
stop();
Instance of Symbol 304 MovieClip in Frame 3
onClipEvent (load) {
if (_global.musicOn == true) {
_global.myMusicPlayer.SetTrack("titleMusic");
_global.myMusicPlayer.SetMaxVolume(100);
_global.myMusicPlayer.PlayWithCrossFade(3);
}
}
onClipEvent (enterFrame) {
_global.myMusicPlayer.RunPlayer();
}
Frame 4
function endGame() {
var _local1 = _global;
trace(_local1.tempFrame);
if ((_local1.tempFrame == 17) || (_local1.cheated == true)) {
_root.submitButton._visible = false;
} else {
_root.submitButton._visible = true;
}
finalScore = _local1.totalPeople;
if (_local1.totalPeople == 0) {
youLose = "Take a bow, worst game ever...";
} else if ((_local1.totalPeople >= 1) && (_local1.totalPeople < 5)) {
youLose = "Looks like a probee was flying the ship...";
} else if ((_local1.totalPeople >= 6) && (_local1.totalPeople < 15)) {
youLose = "Maybe probing isn't for you...";
} else if ((_local1.totalPeople >= 16) && (_local1.totalPeople < 25)) {
youLose = "Try a little harder...";
} else if ((_local1.totalPeople >= 26) && (_local1.totalPeople < 35)) {
youLose = "You must have slacked off at probing school...";
} else if ((_local1.totalPeople >= 36) && (_local1.totalPeople < 45)) {
youLose = "Not too shabby!";
} else if ((_local1.totalPeople >= 46) && (_local1.totalPeople < 75)) {
youLose = "Sweet Job!";
} else if ((_local1.totalPeople >= 76) && (_local1.totalPeople < 95)) {
youLose = "Whoa, a little over quota perhaps?";
} else if ((_local1.totalPeople >= 96) && (_local1.totalPeople < 105)) {
youLose = "You're a little too good at this...";
} else {
youLose = "Wait, what do you do for a living?";
}
}
stop();
Instance of Symbol 364 MovieClip in Frame 4
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
_root.gotoAndPlay("menuScreen");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip "submitButton" in Frame 4
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
_root.gotoAndPlay("submitScore");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 611 MovieClip in Frame 4
onClipEvent (load) {
_root.endGame();
}
Instance of Symbol 364 MovieClip in Frame 4
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
getURL ("http://www.armorgames.com", "_blank");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Frame 5
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 5
onClipEvent (load) {
_root.initializeLevel(5, 10, -400, 400, "igloo", -1, 5);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(20, 2);
_root.addPersonType("eskimo", "person", 25);
_root.addPersonType("ethan", "person", 25);
_root.addUnit("igloo1", 0, "igloo", "object");
_root.addUnit("igloo2", 0, "igloo", "object");
_root.addUnit("igloo3", 0, "igloo", "object");
_root.addUnit("igloo4", 0, "igloo", "object");
levelTrack = "arctic level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 5
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 7
function submitScore() {
if (this.playerName_txt.text == "Your Name Here") {
_global.SoundManager.PlaySound("nocando");
} else {
myScoreSaver.SendScores(this.playerName_txt.text, _global.totalPeople);
_root.gotoAndPlay("menuScreen");
}
}
function loginScore() {
trace("login score");
myScoreSaver.UserLogin(_global.totalPeople);
_root.gotoAndPlay("menuScreen");
}
function endGameScore() {
this.finalScore_txt.text = _global.totalPeople;
}
stop();
var myScoreSaver = new BagunkScores();
myScoreSaver.SetCode("7uKYpxwrYqUbLQ7J");
myScoreSaver.SetGameID(302);
Instance of Symbol 364 MovieClip in Frame 7
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
_root.gotoAndPlay("menuScreen");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Frame 7
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
this._parent.submitScore();
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 611 MovieClip in Frame 7
onClipEvent (load) {
_root.endGameScore();
}
Frame 10
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 10
onClipEvent (load) {
_root.initializeLevel(10, 15, -500, 500, "", 300, 10);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(20, 3);
_root.addPersonType("person4", "person", 25);
_root.addPersonType("person5", "person", 25);
_root.addPersonType("person3", "person", 25);
_root.addPersonType("ethan", "person", 25);
levelTrack = "night level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 10
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 15
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 15
onClipEvent (load) {
_root.initializeLevel(15, 20, -260, 260, "", 300, 15);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(20, 5);
_root.addPersonType("person1", "person", 25);
_root.addPersonType("person2", "person", 25);
_root.addPersonType("Brian", "person", 25);
_root.addPersonType("person6", "person", 25);
_root.addPersonType("ethan", "person", 25);
_root.addUnit("bonus2", 0, "BonusIcon", "object");
_root.addHelicopter("heli 1", 40, 100, 6);
_root.addHelicopter("heli 2", 60, 120, 6);
_root.addHelicopter("heli 3", 60, 120, 6);
levelTrack = "city level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 15
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 17
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 17
onClipEvent (load) {
_root.initializeLevel(17, 5, -200, 20, "", 60, 100);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(30, 15);
_root.addPersonType("person1", "person", 25);
_root.addPersonType("person2", "person", 25);
_root.addPersonType("person3", "person", 25);
_root.addPersonType("ethan", "person", 25);
levelTrack = "bonus";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 17
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 20
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 20
onClipEvent (load) {
_root.initializeLevel(20, 25, -300, 300, "rock", 240, 15);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(20, 4);
_root.addPersonType("person1", "person", 25);
_root.addPersonType("person2", "person", 25);
_root.addPersonType("person3", "person", 25);
_root.addPersonType("ethan", "person", 25);
_root.addUnit("bonus2", 0, "BonusIcon", "object");
_root.addUnit("rock1", 0, "rock", "object");
_root.addUnit("rock3", 0, "rock", "object");
_root.addUnit("rock4", 0, "rock", "object");
_root.addUnit("rock5", 0, "rock", "object");
_root.addUnit("rock7", 0, "rock", "object");
_root.addHelicopter("heli 1", 40, 100, 6);
_root.addHelicopter("heli 2", 60, 120, 6);
_root.addHelicopter("heli 3", 60, 120, 6);
_root.addHelicopter("heli 4", 40, 100, 6);
_root.addHelicopter("heli 5", 80, 120, 6);
_root.addHelicopter("heli 6", 80, 200, 6);
levelTrack = "forest level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 20
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 21
function setText() {
r = random(10);
switch (r) {
case 0 :
text = "Whoops!\nLose Something?";
return;
case 1 :
text = "Better try again!";
return;
case 2 :
text = "Not a good prober...";
return;
case 3 :
text = "There goes another life...";
return;
case 4 :
text = "Running out of chances...";
return;
case 5 :
text = "Had better be more careful...";
return;
case 6 :
text = "Enjoy TABLOIDS?";
return;
case 7 :
text = "Maybe they didn't see that...";
return;
case 8 :
text = "Wanna lose?";
return;
case 9 :
text = "Tip: Don't let agents spot you!";
}
}
stop();
Instance of Symbol 654 MovieClip in Frame 21
onClipEvent (load) {
_global.aTimer = 45;
r = random(10);
_root.setText();
}
onClipEvent (enterFrame) {
if (_global.aTimer < 1) {
_root.goToAndPlay(_global.tempFrame);
} else {
_global.aTimer--;
}
}
Frame 22
function setLevelText() {
myNum = _global.tempFrame / 5;
if (_global.tempFrame != 17) {
_root.levelWords._alpha = 100;
currentLevel = myNum;
} else {
currentLevel = "Ethan Egg";
_root.levelWords._alpha = 0;
}
}
function turnDownSound() {
_global.mySound.setVolume(tempVolume);
tempVolume = tempVolume - 2;
if (tempVolume < 0) {
tempVolume = 0;
}
}
stop();
tempVolume = 80;
Instance of Symbol 814 MovieClip "levelWords" in Frame 22
onClipEvent (load) {
_root.setLevelText();
_global.aTimer = 45;
}
onClipEvent (enterFrame) {
if (_global.aTimer < 1) {
_root.goToAndPlay(_global.tempFrame);
} else {
_global.aTimer--;
}
_root.turnDownSound();
}
Frame 25
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 25
onClipEvent (load) {
_root.initializeLevel(25, 30, -500, 500, "", 300, 15);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(18, 4);
_root.addPersonType("person1", "person", 25);
_root.addPersonType("person2", "person", 25);
_root.addPersonType("person3", "person", 25);
_root.addPersonType("ethan", "person", 25);
_root.addUnit("tank1", 2, "tank", "tank");
_root.addUnit("tank2", 2, "tank", "tank");
_root.addUnit("bonus1", 0, "BonusIcon", "object");
_root.addUnit("bonus2", 0, "BonusIcon", "object");
_root.addHelicopter("heli 1", 40, 100, 6);
_root.addHelicopter("heli 2", 90, 200, 6);
_root.addHelicopter("heli 3", 120, 220, 6);
_root.StartTankGenerator(30, 80, "green");
levelTrack = "mountains level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 25
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 30
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 30
onClipEvent (load) {
_root.initializeLevel(30, 35, -500, 500, "", 180, 15);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(25, 4);
_root.addPersonType("person1", "person", 25);
_root.addPersonType("person2", "person", 25);
_root.addPersonType("person3", "person", 25);
_root.addPersonType("ethan", "person", 25);
_root.addUnit("rock6", 0, "desert_rock", "object");
_root.addUnit("rock7", 0, "desert_rock", "object");
_root.addUnit("rock8", 0, "desert_rock", "object");
_root.addUnit("rock9", 0, "desert_rock", "object");
_root.addUnit("rock10", 0, "desert_rock", "object");
_root.addUnit("rock11", 0, "desert_rock", "object");
_root.addUnit("tank1", 0, "antiAir", "tank");
_root.addUnit("tank2", 0, "antiAir", "tank");
var gunName = _root.addUnit("tank3", 0, "antiAir", "tank");
_root[gunName]._xscale = _root[gunName]._xscale * -1;
_root.addUnit("bonus1", 0, "BonusIcon", "object");
_root.addUnit("bonus2", 0, "BonusIcon", "object");
levelTrack = "desert level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 30
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 35
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 35
onClipEvent (load) {
_root.initializeLevel(35, 40, -700, 700, "", 300, 20);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(25, 5);
_root.addPersonType("ethan", "person", 25);
_root.addPersonType("Astronaut", "person", 25);
_root.addUnit("tank4", 2, "tank", "tank");
_root.addUnit("bonus1", 0, "BonusIcon", "object");
_root.addUnit("bonus2", 0, "BonusIcon", "object");
_root.addUnit("gun1", 0, "antiAir", "tank");
_root.addUnit("gun2", 0, "antiAir", "tank");
_root.addUnit("gun3", 0, "antiAir", "tank");
var gunName = _root.addUnit("gun4", 0, "antiAir", "tank");
_root[gunName]._xscale = _root[gunName]._xscale * -1;
_root.addHelicopter("jet1", 40, 100, 10);
_root.addHelicopter("jet2", 90, 200, 10);
_root.addHelicopter("heli 1", 130, 250, 10);
_root.StartTankGenerator(50, 80, "green");
_root.flash.swapDepths(100000);
levelTrack = "area 51 level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 35
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 40
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 40
onClipEvent (load) {
_root.initializeLevel(40, 45, -780, 780, "", -1, 25);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(20, 5);
_root.addPersonType("ethan", "person", 25);
_root.addPersonType("Astronaut", "person", 25);
_root.addUnit("tank1", 2, "whiteTank", "tank");
_root.addUnit("tank2", 2, "whiteTank", "tank");
_root.addUnit("tank3", 2, "whiteTank", "tank");
_root.addUnit("tank4", 2, "whiteTank", "tank");
_root.addUnit("tank5", 2, "whiteTank", "tank");
_root.addUnit("tank6", 2, "whiteTank", "tank");
_root.addUnit("bonus4", 0, "BonusIcon", "object");
_root.addUnit("bonus5", 0, "BonusIcon", "object");
_root.addUnit("bonus3", 0, "BonusIcon", "object");
_root.addHelicopter("space1", 40, 100, 9);
_root.addHelicopter("space2", 90, 200, 9);
_root.addHelicopter("space3", 20, 200, 9);
_root.addHelicopter("space4", 60, 220, 9);
_root.StartTankGenerator(50, 80, "white");
levelTrack = "moon level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 40
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 45
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 45
onClipEvent (load) {
_root.initializeLevel(45, 50, -700, 700, "", 180, 15);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(30, 6);
_root.addPersonType("ethan", "person", 25);
_root.addPersonType("person1", "person", 25);
_root.addPersonType("person2", "person", 25);
_root.addPersonType("person3", "person", 25);
_root.addPersonType("person4", "person", 25);
_root.addPersonType("person5", "person", 25);
_root.addPersonType("person6", "person", 25);
_root.addPersonType("eskimo", "person", 25);
_root.addPersonType("Astronaut", "person", 25);
_root.addUnit("bonus1", 0, "BonusIcon", "object");
_root.addUnit("bonus2", 0, "BonusIcon", "object");
_root.addUnit("bonus3", 0, "BonusIcon", "object");
_root.addHelicopter("angel1", 20, 40, 6);
_root.addHelicopter("angel2", 20, 40, 6);
_root.addHelicopter("angel3", 40, 80, 6);
_root.addHelicopter("angel4", 40, 80, 6);
_root.addHelicopter("angel5", 80, 160, 6);
_root.addHelicopter("angel6", 160, 320, 6);
_root.addHelicopter("angel7", 160, 320, 6);
_root.addHelicopter("angel8", 80, 160, 6);
_root.addHelicopter("angel9", 80, 160, 6);
_root.flash.swapDepths(100000);
levelTrack = "heaven level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 45
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 50
function initializeLevel(currentLevel, nextLevel, leftMax, rightMax, nonDestructable, timeToWin, peopleToGet) {
var _local1 = _global;
var _local2 = _root;
identifierNumber = currentLevel;
myNextLevel = nextLevel;
panLimitLeft = leftMax;
panLimitRight = rightMax;
nonDestructableType = nonDestructable;
timeToBeat = timeToWin;
_local1.totalPeopleToGet = peopleToGet;
if (_local1.tempLives < 0) {
_local1.livesLeft = 3;
} else {
_local1.livesLeft = _local1.tempLives;
}
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _local2.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
if (_local1.tempPeople < 0) {
_local1.currentPeople = 0;
} else {
_local1.currentPeople = _local1.tempPeople;
}
_local1.tempPeople = 0;
_local1.tempLives = 0;
_local1.tempFrame = identifierNumber;
if (timeToBeat == -1) {
_local1.nextTime = -1;
_local2.updateTimer();
} else {
if ((_local1.nextTime == -1) && (timeToBeat != -1)) {
_local1.nextTime = 0;
}
if (_local1.nextTime != -1) {
if (_local1.stolenTime == 0) {
_local1.nextTime = getTimer() + (timeToBeat * 1000);
} else {
_local1.nextTime = _local1.nextTime + (getTimer() - _local1.stolenTime);
_local1.stolenTime = 0;
}
}
}
_local1.stolenTime = 0;
if (_local1.shipUsed == 1) {
_local2.ship.gotoAndStop("ship1");
} else {
_local2.ship.gotoAndStop("ship2");
}
}
function addPersonType(myLinkage, myType, myWeight) {
availPeople.push({linkage:myLinkage, type:myType, weight:myWeight});
}
function playSound(soundName) {
if (_global.volume == true) {
mySoundPlayer.PlaySound(soundName);
}
}
function startMusicDownload(music) {
var _local1 = _global;
if (_local1.musicOn == true) {
_local1.mySound.stop();
_local1.mySound.attachSound(music);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
} else {
_root.volumeClip.gotoAndStop(2);
_local1.mySound.stop();
}
mySong = music;
}
function toggleMusic() {
var _local1 = _global;
if (_local1.volume == true) {
_local1.mySound.attachSound(mySong);
_local1.mySound.start(0, 99);
_local1.mySound.setVolume(myVolume);
_local1.musicOn = true;
} else {
_local1.mySound.stop();
_local1.mySound.setVolume(myVolume);
_local1.musicOn = false;
}
}
function updateTimer() {
var _local1 = _global;
if (_local1.nextTime == -1) {
timeText = "NO LIMIT";
} else {
myTime = _local1.nextTime - getTimer();
mySecs = math.floor(myTime / 1000);
if (mySecs == 0) {
_local1.livesLeft = 0;
prepareForFrameChange(false, 0);
}
if (mySecs > 60) {
someSeconds = myTime / 1000;
someMinutes = someSeconds / 60;
if (someSeconds > 59) {
someSeconds = someSeconds - (Math.floor(someMinutes) * 60);
}
if (someSeconds < 10) {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":0") + Math.floor(someSeconds);
} else if (someSeconds == 0) {
textMinutes = someMinutes;
timeText = Math.floor(textMinutes) + ":00";
} else {
textMinutes = someMinutes;
timeText = (Math.floor(textMinutes) + ":") + Math.floor(someSeconds);
}
} else {
timeText = Math.floor(mySecs);
}
}
}
function updateLives(lifeNum) {
var _local1 = lifeNum;
if (_local1 < 0) {
_local1 = 0;
}
lives = _local1;
}
function prepareForFrameChange(newLevel, levelNum) {
var _local1 = _global;
var _local2 = _root;
_local1.tempLives = _local1.livesLeft;
_local1.tempPeople = _local1.currentPeople;
cleanScreen();
if ((_local1.livesLeft > 0) && (newLevel == false)) {
_local1.stolenTime = getTimer();
_local2.goToAndPlay("loseLife");
} else if ((_local1.livesLeft > 0) && (newLevel == true)) {
_local1.tempPeople = -1;
_local1.tempFrame = levelNum;
_local2.goToAndPlay("levelText");
} else if (_local1.livesLeft == 0) {
_local2.goToAndPlay("endGame");
}
}
function cleanScreen() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
_local1[objectArray[i].Name].removeMovieClip();
i++;
}
i = 0;
while (i < deadArray.length) {
_local1[deadArray[i]].removeMovieClip();
i++;
}
i = 0;
while (i < targetArray_Name.length) {
_local1[targetArray_Name[i]].removeMovieClip();
i++;
}
i = 0;
while (i < bulletArray.length) {
_local1[bulletArray[i]].removeMovieClip();
i++;
}
}
function setPeopleTimer(mPeople, pFrequency) {
var _local1 = _root;
myZ2 = Math.round(_local1.z2._y);
myZ1 = Math.round(_local1.z1._y);
_local1.z1._y = -50;
_local1.z2._y = -50;
i = myZ1;
while (i < myZ2) {
zArray.push(i);
zStack.push(1);
i++;
}
percentFrequency = pFrequency;
maxPeople = mPeople;
}
function runTimer() {
if (numPeople != maxPeople) {
if (random(255) < percentFrequency) {
numPeople++;
addPersonDynamic(false);
}
}
}
function rangeInUse(minZ, maxZ) {
var _local2 = maxZ;
var _local3 = minZ;
var _local1 = false;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].ZStack >= _local3) && (objectArray[i].ZStack <= _local2)) {
_local1 = true;
}
i++;
}
return(_local1);
}
function startBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == true) {
if (objectArray[i].Beamed == 0) {
_local1[objectArray[i].Name].goToAndPlay("beamed");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].HoldFire();
}
}
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndStop("endbeam");
objectArray[i].Beamed = 1;
objectArray[i].Dy = 0;
}
}
i++;
}
}
function debugStatus() {
trace("Name type beamed timer");
trace("----------------------------------------");
i = 0;
while (i < objectArray.length) {
trace((((((((((objectArray[i].Name + " ") + objectArray[i].Type) + " ") + objectArray[i].Beamed) + " ") + objectArray[i].Timer) + " ") + objectArray[i].Spotted) + " ") + objectArray[i].Direction);
i++;
}
trace("----------------------------------------");
}
function removeBeamTags() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Beamed = 2;
objectArray[i].FallHeight = _local1[objectArray[i].Name]._y;
} else if ((objectArray[i].Beamed == 1) && (objectArray[i].Type == "agent")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
i++;
}
}
function addUnit(name, newSpeed, myLinkage, givenType) {
var _local1 = _root;
var _local2 = name;
var _local3 = newSpeed;
tempX = _local1[_local2]._x;
tempY = _local1[_local2]._y;
wantY = Math.round(tempY);
flag = -1;
myZStack = -1;
i = 0;
while (i < zArray.length) {
if (zArray[i] == wantY) {
flag = i;
myZstack = zStack[i];
}
i++;
}
if (flag != -1) {
zArray.splice(flag, 1);
zStack.splice(flag, 1);
}
_local1[_local2]._visible = false;
_local2 = givenType + identifierNumber;
identifierNumber++;
_local1.attachMovie(myLinkage, _local2, wantY * 100);
if (givenType == "tank") {
_local1[_local2].SetFireRate(40);
tankArray.push({track:wantY, occupied:true, tank:_local2});
}
_local1[_local2]._x = tempX;
_local1[_local2]._y = tempY;
x = 275;
if ((_local1[_local2]._x <= x) && (_local3 != 0)) {
dir = _local3;
_local1[_local2]._xscale = -Math.abs(_local1[_local2]._xscale);
if (myLinkage == "antiAir") {
_local1[_local2]._xscale = _local1[_local2]._xscale * -1;
}
} else {
dir = -1 * _local3;
}
var groundLevel = Math.round(_local1[_local2]._y + (_local1[_local2]._height / 2));
objectArray.push({Name:_local2, Beamed:0, Type:givenType, Ground:groundLevel, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myLinkage, ZStack:myZStack, Direction:dir, FallHeight:0});
return(_local2);
}
function generateEthan() {
addPersonDynamic(true);
}
function addPersonDynamic(isEthan) {
if (zArray.length == 0) {
return(null);
}
if (isEthan == false) {
r = random(2);
switch (r) {
case 0 :
var _local3 = 0;
var _local2 = -1;
var _local1 = 0;
while (_local1 < availPeople.length) {
_local3 = _local3 + availPeople[_local1].weight;
_local1++;
}
var chosenWeight = Math.round(Math.random() * _local3);
_local1 = 0;
while (_local1 < availPeople.length) {
if ((chosenWeight > _local2) && (chosenWeight <= (_local2 + availPeople[_local1].weight))) {
myGuy = availPeople[_local1].linkage;
myType = availPeople[_local1].type;
break;
}
_local2 = _local2 + availPeople[_local1].weight;
_local1++;
}
break;
case 1 :
myGuy = "MIB";
myType = "agent";
}
} else {
myGuy = "ethan";
myType = "person";
}
r = random(zArray.length);
z = zArray[r];
zs = zStack[r];
zArray.splice(r, 1);
zStack.splice(r, 1);
name = "unique" + identifierNumber;
identifierNumber++;
_root.attachMovie(myGuy, name, z * 100);
r = random(2);
if (r == 0) {
x = _root.boundingbox._x + (_root.boundingbox._width / 2);
} else {
x = _root.boundingbox._x - (_root.boundingbox._width / 2);
}
_root[name]._x = x;
_root[name]._y = z;
x = _root.hills._x;
if (_root[name]._x <= x) {
dir = 1;
if (myType == "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
} else {
dir = -1;
if (myType != "agent") {
_root[name]._xscale = -Math.abs(_root[name]._xscale);
}
}
_root[name].goToAndPlay("walk");
objectArray.push({Name:name, Beamed:0, Type:myType, Ground:z, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:myGuy, ZStack:zs, Direction:dir, FallHeight:0});
return(undefined);
}
function addTank(name, newSpeed, myLinkage, myTrack) {
var _local1 = _root;
var _local3 = myTrack;
var _local2 = "tank";
if (tanksToUse == "red") {
_local2 = "redTank";
}
if (tanksToUse == "white") {
_local2 = "whiteTank";
}
_local1.attachMovie(_local2, name, _local3 * 100);
r = random(2);
if (r == 0) {
x = _local1.boundingbox._x + (_local1.boundingbox._width / 2);
} else {
x = _local1.boundingbox._x - (_local1.boundingbox._width / 2);
}
_local1[name]._x = x;
if (tanksToUse == "red") {
_local1[name].SetFireRate(15);
} else if (tanksToUse == "white") {
_local1[name].SetFireRate(25);
} else {
_local1[name].SetFireRate(40);
}
_local1[name]._y = _local3;
x = _local1.hills._x;
if (_local1[name]._x <= x) {
dir = 1;
_local1[name]._xscale = _local1[name]._xscale * -1;
} else {
dir = -1;
}
_local1[name].goToAndPlay("idle");
objectArray.push({Name:name, Beamed:0, Type:"tank", Ground:_local3, Dx:0, Dy:0, Timer:0, Spotted:0, Linkage:"tank", ZStack:999999, Direction:dir, FallHeight:0});
}
function makePeopleMove() {
var _local1 = _root;
var _local3 = _global;
var queueRemoval = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Beamed == 0) {
if (objectArray[i].Timer == 1) {
if (_local3.debug == true) {
trace(i);
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
objectArray[i].Direction = -3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
} else {
objectArray[i].Direction = 3;
if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name]._xscale = Math.abs(_local1[objectArray[i].Name]._xscale);
} else if (objectArray[i].Type == "agent") {
_local1[objectArray[i].Name]._xscale = -Math.abs(_local1[objectArray[i].Name]._xscale);
if (objectArray[i].Spotted == 0) {
createTarget(i);
objectArray[i].Spotted = 1;
}
}
}
_local1[objectArray[i].Name].gotoandplay("run");
}
if (objectArray[i].Timer > 0) {
objectArray[i].Timer--;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Direction;
if ((_local1[objectArray[i].Name]._x < (_local1.boundingbox._x - (_local1.boundingbox._width / 2))) && (objectArray[i].Direction < 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:1});
} else if ((_local1[objectArray[i].Name]._x > (_local1.boundingbox._x + (_local1.boundingbox._width / 2))) && (objectArray[i].Direction > 0)) {
if (objectArray[i].Spotted == 1) {
_local3.livesLeft--;
_local1.updateLives(_local3.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local3.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
}
if (objectArray[i].Type == "tank") {
OpenTrack(objectArray[i].Name);
}
queueRemoval.push({name:objectArray[i].Name, detach:true, debNum:2});
}
}
i++;
}
var _local2 = 0;
while (_local2 < queueRemoval.length) {
removeObject(queueRemoval[_local2].name, queueRemoval[_local2].detach, queueRemoval[_local2].debNum);
_local2++;
}
tanksAim();
}
function removeObject(objectName, removeFromScreen, debugNum) {
var _local2 = removeFromScreen;
var _local3 = _root;
i = -1;
var _local1 = 0;
while (_local1 < objectArray.length) {
if (objectArray[_local1].Name == objectName) {
i = _local1;
if (objectArray[_local1].Type != "tank") {
zArray.push(objectArray[_local1].Ground);
zStack.push(objectArray[_local1].ZStack);
}
if ((objectArray[_local1].Type != "object") && (objectArray[_local1].Type != "tank")) {
numPeople--;
}
if (objectArray[_local1].Spotted == 1) {
removeTarget(i);
}
if (_local2) {
_local3[objectArray[_local1].Name].removeMovieClip();
}
objectArray.splice(_local1, 1);
return;
}
_local1++;
}
}
function updateEnergyBar(current, total, flag) {
var _local1 = _root;
frac = current / total;
_local1.energy._xscale = frac * 100;
if (flag == 1) {
_local1.energy.goToAndStop(2);
} else {
_local1.energy.goToAndStop(1);
}
}
function updatePeopleBar(current, total) {
var _local1 = current;
var _local2 = total;
var _local3 = _root;
frac = _local1 / _local2;
_local3.peopleToGo._xscale = frac * 100;
myFrame = 10;
frac = (_local1 / _local2) * 100;
if (frac < 10) {
myFrame = 1;
} else if ((frac >= 10) && (frac < 20)) {
myFrame = 2;
} else if ((frac >= 20) && (frac < 30)) {
myFrame = 3;
} else if ((frac >= 30) && (frac < 40)) {
myFrame = 4;
} else if ((frac >= 40) && (frac < 50)) {
myFrame = 5;
} else if ((frac >= 50) && (frac < 60)) {
myFrame = 6;
} else if ((frac >= 60) && (frac < 70)) {
myFrame = 7;
} else if ((frac >= 70) && (frac < 80)) {
myFrame = 8;
} else if ((frac >= 80) && (frac < 90)) {
myFrame = 9;
} else if ((frac >= 90) && (frac <= 100)) {
myFrame = 10;
}
if (oldValue != myFrame) {
_local3.peopleToGo.goToAndStop(myFrame);
}
oldValue = myFrame;
if ((_local1 == (_local2 - 2)) && (almostFlag == false)) {
var randSound = (Math.round(Math.random() * 4) + 1);
_local3.playSound("good" + randSound);
almostFlag = true;
}
if (_local1 == _local2) {
prepareForFrameChange(true, myNextLevel);
}
}
function spotship() {
var _local1 = _root;
i = 0;
while (i < objectArray.length) {
if (((objectArray[i].Beamed == 0) && ((objectArray[i].Type == "person") || (objectArray[i].Type == "agent"))) && ((objectArray[i].Direction == 1) || (objectArray[i].Direction == -1))) {
myDist = getDistance(i);
if (myDist <= 175) {
if (((objectArray[i].Direction == 1) && (_local1[objectArray[i].Name]._x < _local1.ship._x)) && (_local1[objectArray[i].Name]._x >= 50)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
} else if (((objectArray[i].Direction == -1) && (_local1[objectArray[i].Name]._x > _local1.ship._x)) && (_local1[objectArray[i].Name]._x <= 500)) {
_local1[objectArray[i].Name].gotoandplay("spot");
objectArray[i].Direction = 0;
objectArray[i].Timer = 30;
}
}
}
i++;
}
}
function tanksAim() {
var _local3 = _root;
var _local2 = 0;
while (_local2 < objectArray.length) {
if ((objectArray[_local2].Beamed == 0) && (objectArray[_local2].Type == "tank")) {
var tankName = objectArray[_local2].Name;
var point = {x:_local3[tankName].cannon._x, y:_local3[tankName].cannon._y};
_local3[tankName].localToGlobal(point);
var op = (_local3.ship._y - point.y);
var adj = (_local3.ship._x - point.x);
if (adj == 0) {
adj = 1;
}
var _local1 = (Math.atan(op / adj) * 180) / Math.PI;
if (_local1 < 0) {
_local1 = _local1 * -1;
}
if (_local1 > 90) {
_local1 = 90;
}
if (_local1 < 20) {
_local1 = 20;
}
_local3[tankName].cannon._rotation = _local1;
}
_local2++;
}
}
function StartTankGenerator(min, max, color) {
tanksToUse = color;
blnUseTanks = true;
tankSpawnTimeMin = min;
tankSpawnTimeMax = max;
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
}
function TankGenerator() {
if (blnUseTanks == true) {
intAvailFlag = -1;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].occupied == false) {
intAvailFlag = _local1;
break;
}
_local1++;
}
if (intAvailFlag != -1) {
if (tankCounter == 0) {
var _local2 = "tank" + identifierNumber;
identifierNumber++;
tankArray[intAvailFlag].occupied = true;
tankArray[intAvailFlag].tank = _local2;
addTank(_local2, 3, "tank", tankArray[intAvailFlag].track);
tankCounter = Math.round(Math.random() * (tankSpawnTimeMax - tankSpawnTimeMin)) + tankSpawnTimeMin;
} else {
tankCounter--;
}
}
}
}
function OpenTrack(tankName) {
var _local2 = tankName;
var _local1 = 0;
while (_local1 < tankArray.length) {
if (tankArray[_local1].tank == _local2) {
tankArray[_local1].tank = "";
tankArray[_local1].occupied = false;
trace(("track " + _local1) + " is open");
}
_local1++;
}
}
function LaunchBullet(bulletName, startX, startY, directionX, directionY) {
var _local1 = bulletName;
var _local3 = _root;
var _local2 = "";
if ((substring(_local1, 0, 18)) == "bullet_helicopter_") {
_local2 = "bullet air";
} else {
_local2 = "bullet ground";
}
_local3.attachMovie(_local2, _local1, bulletDepth);
_local3[_local1]._x = startX;
_local3[_local1]._y = startY;
_local3[_local1].SetMovement(directionX, directionY);
bulletArray.push(_local1);
bulletDepth++;
}
function DetectBulletHits() {
var _local1 = _root;
var _local3 = new Array();
var _local2 = 0;
while (_local2 < bulletArray.length) {
distancex = _local1[bulletArray[_local2]]._x - _local1.ship._x;
distancey = _local1[bulletArray[_local2]]._y - _local1.ship._y;
if (Math.sqrt((distancex * distancex) + (distancey * distancey)) <= 19) {
if ((substring(bulletArray[_local2], 0, 18)) == "bullet_helicopter_") {
shipEnergy = 0;
energyFlag = 1;
_local1.ship.explosion.gotoAndPlay("shock");
_local3.push(bulletArray[_local2]);
} else {
_local1.ship.explosion.gotoAndPlay("explode");
_local1.playSound("explosion");
if (deathCounter == -1) {
deathCounter = 16;
}
_local3.push(bulletArray[_local2]);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < _local3.length) {
RemoveBullet(_local3[_local2]);
_local2++;
}
}
function ObjectCleanup(itemName) {
var _local1 = itemName;
if (_local1.substr(0, 4) == "tank") {
OpenTrack(_local1);
}
_root[_local1].removeMovieClip();
}
function RemoveBullet(itemName) {
var _local3 = itemName;
var _local2 = -1;
var _local1 = 0;
while (_local1 < bulletArray.length) {
if (bulletArray[_local1] == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
if (_local2 != -1) {
bulletArray.splice(_local2, 1);
_root[_local3].removeMovieClip();
}
}
function addHelicopter(itemName, minSpawn, maxSpawn, mySpeed) {
var _local1 = minSpawn;
var _local2 = Math.round(Math.random() * (maxSpawn - _local1)) + _local1;
heliArray.push({name:itemName, min:_local1, max:maxSpawn, counter:_local2, speed:mySpeed, inFlight:false, hasFired:false, isFiring:false});
}
function ManageHelicopters() {
var _local2 = _root;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].inFlight == false) {
if (heliArray[_local1].counter == 0) {
heliArray[_local1].inFlight = true;
_local2[heliArray[_local1].name]._x;
r = random(2);
if (r == 0) {
x = _local2.boundingbox._x + (_local2.boundingbox._width / 2);
_local2[heliArray[_local1].name]._xscale = 100;
heliArray[_local1].speed = -Math.abs(heliArray[_local1].speed);
} else {
x = (_local2.boundingbox._x - (_local2.boundingbox._width / 2)) - _local2[heliArray[_local1].name]._width;
_local2[heliArray[_local1].name]._xscale = -100;
heliArray[_local1].speed = Math.abs(heliArray[_local1].speed);
}
_local2[heliArray[_local1].name]._x = x;
var y = (Math.round(Math.random() * 151) + 53);
_local2[heliArray[_local1].name]._y = y;
} else {
heliArray[_local1].counter--;
}
} else {
if (heliArray[_local1].isFiring == false) {
_local2[heliArray[_local1].name]._x = _local2[heliArray[_local1].name]._x + heliArray[_local1].speed;
}
if ((heliArray[_local1].hasFired == false) && (heliArray[_local1].isFiring == false)) {
if (((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > 0) && ((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < Stage.width)) {
_local2[heliArray[_local1].name].gotoAndPlay("shoot");
heliArray[_local1].isFiring = true;
trace(heliArray[_local1].name + " has fired");
}
}
if (heliArray[_local1].hasFired == true) {
if (((_local2[heliArray[_local1].name]._x + _local2[heliArray[_local1].name]._width) < (_local2.boundingbox._x - (_local2.boundingbox._width / 2))) || ((_local2[heliArray[_local1].name]._x - _local2[heliArray[_local1].name]._width) > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
trace("out of bounds");
heliArray[_local1].inFlight = false;
var _local3 = Math.round(Math.random() * (heliArray[_local1].max - heliArray[_local1].min)) + heliArray[_local1].min;
heliArray[_local1].counter = _local3;
heliArray[_local1].hasFired = false;
heliArray[_local1].isFiring = false;
}
}
}
_local1++;
}
}
function HelicopterFire(name) {
var _local3 = name;
var _local2 = 0;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local3) {
_local2 = _local1;
break;
}
_local1++;
}
var myName = ("bullet_helicopter_" + identifierNumber);
identifierNumber++;
var point = {x:_root[_local3].emitter1._x, y:_root[_local3].emitter1._y};
_root[_local3].localToGlobal(point);
var bulletSpeed = 0;
trace("helicopter speed is: " + heliArray[_local2].speed);
if (heliArray[_local2].speed > 0) {
bulletSpeed = heliArray[_local2].speed + 2;
} else {
bulletSpeed = heliArray[_local2].speed - 2;
}
LaunchBullet(myName, point.x, point.Y, bulletSpeed, 0);
}
function HelicopterDoneFiring(name) {
var _local2 = name;
var _local1 = 0;
while (_local1 < heliArray.length) {
if (heliArray[_local1].name == _local2) {
heliArray[_local1].isFiring = false;
heliArray[_local1].hasFired = true;
return;
}
_local1++;
}
}
function getDistance(i) {
var _local1 = _root;
distancex = _local1[objectArray[i].Name]._x - _local1.ship._x;
distancey = _local1[objectArray[i].Name]._y - _local1.ship._y;
return(Math.sqrt((distancex * distancex) + (distancey * distancey)));
}
function beamHorizontalAndVertical(asscheese, assY) {
var _local1 = _root;
var _local2 = asscheese;
var _local3 = assY;
i = 0;
while (i < objectArray.length) {
if ((objectArray[i].Beamed == 1) && (objectArray[i].Type != "agent")) {
objectArray[i].Dx = _local2;
if ((_local1.ship._x > 100) && (_local1.ship._X < 450)) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + _local2;
}
if ((_local1.ship._y > 50) && (_local1.ship._y < 250)) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + _local3;
if (_local1[objectArray[i].Name]._y > objectArray[i].Ground) {
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
}
}
}
i++;
}
}
function beamMeUp() {
var _local1 = _root;
var _local2 = new Array();
i = 0;
while (i < objectArray.length) {
if (objectArray[i].Type != "agent") {
if (objectArray[i].Beamed == 1) {
if (((objectArray[i].Type == "object") || (objectArray[i].Type == "tank")) && (objectArray[i].Linkage != "BonusIcon")) {
maxheight = (_local1.ship._y + (_local1.ship._height / 2)) + (_local1[objectArray[i].Name]._height / 2);
if (_local1[objectArray[i].Name]._y > maxheight) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
}
} else if (_local1[objectArray[i].Name]._y > _local1.ship._y) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y - 2;
} else if (objectArray[i].Beamed == 1) {
_local1[objectArray[i].Name]._y = -20;
objectArray[i].Beamed = 2;
_local2.push({name:objectArray[i].Name, detach:true, debNum:4});
if (objectArray[i].Linkage != "BonusIcon") {
if ((objectArray[i].Linkage != "person2") && (objectArray[i].Linkage != "person5")) {
var scream = Math.round(Math.random() * 8);
trace(scream);
if (scream == 4) {
playSound("maleEnjoy");
} else {
playSound("maleScream");
}
} else {
playSound("maleScream");
}
var scream = Math.round(Math.random() * 12);
if (scream == 8) {
var randSound = (Math.round(Math.random() * 3) + 1);
_local1.playSound("rand" + randSound);
}
_global.currentPeople++;
_global.totalPeople++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("people");
} else {
playSound("bonusSound");
_global.bonusPoints++;
_local1.display._x = _local1.ship._x;
_local1.display._y = _local1.ship._y;
_local1.display.goToAndPlay("points");
}
}
if (_local1[objectArray[i].Name]._x < _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + 1;
if (_local1[objectArray[i].Name]._x >= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
if (_local1[objectArray[i].Name]._x > _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x - 1;
if (_local1[objectArray[i].Name]._x <= _local1.ship._x) {
_local1[objectArray[i].Name]._x = _local1.ship._x;
}
}
} else {
if (objectArray[i].Beamed == 2) {
_local1[objectArray[i].Name].goToAndPlay("falling");
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) == objectArray[i].Ground) {
} else if (_local1[objectArray[i].Name]._y > 0) {
_local1[objectArray[i].Name]._y = _local1[objectArray[i].Name]._y + objectArray[i].Dy;
objectArray[i].Dy = objectArray[i].Dy + gravity;
if (objectArray[i].Dy > yTerminalVelocity) {
objectArray[i].Dy = yTerminalVelocity;
}
_local1[objectArray[i].Name]._x = _local1[objectArray[i].Name]._x + objectArray[i].Dx;
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
useFriction = xGroundFriction;
} else {
useFriction = xFriction;
}
if ((objectArray[i].Dx >= -0.4) && (objectArray[i].Dx <= 0.4)) {
objectArray[i].Dx = 0;
}
if (objectArray[i].Dx < 0) {
objectArray[i].Dx = objectArray[i].Dx + useFriction;
}
if (objectArray[i].Dx > 0) {
objectArray[i].Dx = objectArray[i].Dx - useFriction;
}
if ((_local1[objectArray[i].Name]._y + (_local1[objectArray[i].Name]._height / 2)) >= objectArray[i].Ground) {
if (objectArray[i].Beamed == 2) {
if ((objectArray[i].Ground - objectArray[i].FallHeight) < 20) {
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].gotoAndPlay("idle");
} else if (objectArray[i].Type == "person") {
_local1[objectArray[i].Name].gotoAndPlay("run");
objectArray[i].Timer = 1;
}
if (objectArray[i].Type == "tank") {
_local1[objectArray[i].Name].OpenFire();
}
root[objectArray[i].Name]._y = objectArray[i].Ground;
objectArray[i].Beamed = 0;
} else {
_local1[objectArray[i].Name].gotoAndPlay("collision");
_local1[objectArray[i].Name]._y = objectArray[i].Ground;
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - (_local1[objectArray[i].Name].height / 100);
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
}
if ((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
}
j++;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
objectArray[i].Dy = 0;
} else if (objectArray[i].Beamed == 2) {
hitFlag = false;
if ((objectArray[i].Ground - objectArray[i].FallHeight) >= 20) {
j = 0;
while (j < objectArray.length) {
if ((objectArray[j].Beamed == 0) && (_local1[objectArray[i].Name].hitTest(_local1[objectArray[j].Name]) == true)) {
if (((objectArray[j].Type == "tank") && (objectArray[i].Type != "tank")) && ((objectArray[j].Type == "tank") && (objectArray[i].Type != "object"))) {
} else {
hitFlag = true;
_local1[objectArray[i].Name].goToAndPlay("collision");
objectArray[j].Direction = 0;
tempY = _local1[objectArray[j].Name]._y - _local1[objectArray[i].Name].height;
howFar = objectArray[j].ZStack;
objectArray[j].ZStack++;
_local1[objectArray[i].Name].swapDepths((objectArray[j].Ground * 100) + howFar);
_local1[objectArray[i].Name]._y = tempY;
objectArray[i].Dy = 0;
}
if ((((((objectArray[j].Type == "agent") || (objectArray[j].Type == "person")) || (objectArray[j].Linkage == "bear")) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "tank"))) || ((objectArray[j].Type == "tank") && (objectArray[i].Type == "object"))) && (objectArray[j].Linkage != nonDestructableType)) {
_local1[objectArray[j].Name].goToAndPlay("collision");
if (objectArray[j].Type == "tank") {
_local1[objectArray[j].Name].HoldFire();
}
deadArray.push(objectArray[j].Name);
_local2.push({name:objectArray[j].Name, detach:false, debNum:5});
}
break;
}
j++;
}
if (hitFlag == true) {
if (objectArray[i].Linkage != nonDestructableType) {
objectArray[i].Beamed = 3;
} else {
objectArray[i].Beamed = 0;
}
if (objectArray[i].Linkage != nonDestructableType) {
deadArray.push(objectArray[i].Name);
_local2.push({name:objectArray[i].Name, detach:false, debNum:6});
}
}
}
}
}
}
} else if (objectArray[i].Beamed == 1) {
if (_local1.beam.hitTest(_local1[objectArray[i].Name]) == eval("False")) {
objectArray[i].Beamed = 0;
objectArray[i].Timer = 1;
}
}
i++;
}
var _local3 = 0;
while (_local3 < _local2.length) {
removeObject(_local2[_local3].name, _local2[_local3].detach, _local2[_local3].debNum);
_local3++;
}
}
function moveTargets() {
var _local1 = _root;
if (targetArray_Name.length != 0) {
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Frames[i] == 0) {
myX = _local1[targetArray_Target[i]]._x;
myY = _local1[targetArray_Target[i]]._y;
} else {
myX = _local1[targetArray_Name[i]]._x + ((_local1[targetArray_Target[i]]._x - _local1[targetArray_Name[i]]._x) / targetArray_Frames[i]);
myY = _local1[targetArray_Name[i]]._y + ((_local1[targetArray_Target[i]]._y - _local1[targetArray_Name[i]]._y) / targetArray_Frames[i]);
targetArray_Frames[i]--;
}
_local1[targetArray_Name[i]]._x = myX;
_local1[targetArray_Name[i]]._y = myY;
i++;
}
}
}
function createTarget(myTarget) {
var _local1 = _root;
name = "unique" + identifierNumber;
identifierNumber++;
_local1.attachMovie("manTarget", name, z3);
z3++;
targetArray_Name.push(name);
targetArray_Target.push(objectArray[myTarget].Name);
targetArray_Frames.push(15);
_local1[name]._x = 275;
_local1[name]._y = -60;
}
function removeTarget(myTarget) {
var _local1 = myTarget;
var _local2 = _root;
i = 0;
while (i < targetArray_Name.length) {
if (targetArray_Target[i] == objectArray[_local1].Name) {
_local2[targetArray_Name[i]].removeMovieClip();
targetArray_Name.splice(i, 1);
targetArray_Target.splice(i, 1);
targetArray_Frames.splice(i, 1);
}
i++;
}
}
function moveScene(d) {
var _local1 = d;
var _local2 = _root;
if (((panAmount + _local1) > panLimitLeft) and ((panAmount + _local1) < panLimitRight)) {
panAmount = panAmount + _local1;
trees._x = trees._x + (_local1 * 1);
bushes._x = bushes._x + (_local1 * 0.8);
hills._x = hills._x + (_local1 * 0.4);
boundingbox._x = boundingbox._x + (_local1 * 1);
i = 0;
while (i < objectArray.length) {
if ((((objectArray[i].Beamed == 0) || (objectArray[i].Beamed == 3)) || (objectArray[i].Beamed == 2)) || (objectArray[i].Type == "agent")) {
_local2[objectArray[i].Name]._x = _local2[objectArray[i].Name]._x + _local1;
}
i++;
}
var i = 0;
while (i < heliArray.length) {
if (heliArray[i].inFlight == true) {
_local2[heliArray[i].name]._x = _local2[heliArray[i].name]._x + _local1;
}
i++;
}
i = 0;
while (i < deadArray.length) {
_local2[deadArray[i]]._x = _local2[deadArray[i]]._x + _local1;
i++;
}
i = 0;
while (i < bulletArray.length) {
_local2[bulletArray[i]]._x = _local2[bulletArray[i]]._x + _local1;
i++;
}
return(0);
}
return(1);
}
function runLevel() {
var _local1 = _root;
var _local2 = _global;
if (buttonCoolDown == 0) {
if (Key.isDown(80) || (Key.isDown(27))) {
buttonCoolDown = 10;
if (_local2.gamePaused == false) {
_local1.paused.gotoAndPlay("show");
_local2.gamePaused = true;
intPauseTime = getTimer();
} else {
_local1.paused.gotoAndPlay("hide");
_local2.gamePaused = false;
if (_local2.nextTime != -1) {
_local2.nextTime = _local2.nextTime + (getTimer() - intPauseTime);
}
intPauseTime = 0;
}
}
} else {
buttonCoolDown--;
}
if (_local2.gamePaused == false) {
if (deathCounter == -1) {
if (Key.isDown(39) && (!Key.isDown(37))) {
dx = dx + sensitivity;
if (dx > terminalVelocity) {
dx = terminalVelocity;
}
}
if (Key.isDown(37) && (!Key.isDown(39))) {
dx = dx - sensitivity;
if (dx < (terminalVelocity * -1)) {
dx = terminalVelocity * -1;
}
}
if (Key.isDown(40) && (!Key.isDown(38))) {
dy = dy + sensitivity;
if (dy > terminalVelocity) {
dy = terminalVelocity;
}
}
if (Key.isDown(38) && (!Key.isDown(40))) {
dy = dy - sensitivity;
if (dy < (terminalVelocity * -1)) {
dy = terminalVelocity * -1;
}
}
}
}
if (Key.isDown(68)) {
_local2.debug = true;
_local1.debugStatus();
} else {
_local2.debug = false;
}
if (Key.isDown(16) && (Key.isDown(49))) {
_local1.prepareForFrameChange(true, 5);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(50))) {
_local1.prepareForFrameChange(true, 10);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(51))) {
_local1.prepareForFrameChange(true, 15);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(52))) {
_local1.prepareForFrameChange(true, 20);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(53))) {
_local1.prepareForFrameChange(true, 25);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(54))) {
_local1.prepareForFrameChange(true, 30);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(55))) {
_local1.prepareForFrameChange(true, 35);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(56))) {
_local1.prepareForFrameChange(true, 40);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(57))) {
_local1.prepareForFrameChange(true, 45);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (Key.isDown(16) && (Key.isDown(48))) {
_local1.prepareForFrameChange(true, 50);
_local2.gamePaused = false;
_local2.cheated = true;
}
if (_local2.gamePaused == false) {
if ((!Key.isDown(37)) && (!Key.isDown(39))) {
if (dx > 0) {
dx = dx - airFriction;
}
if (dx < 0) {
dx = dx + airFriction;
}
if ((dx >= -0.3) && (dx <= 0.3)) {
dx = 0;
}
}
if ((!Key.isDown(38)) && (!Key.isDown(40))) {
if (dy > 0) {
dy = dy - airFriction;
}
if (dy < 0) {
dy = dy + airFriction;
}
if ((dy >= -0.3) && (dy <= 0.3)) {
dy = 0;
}
}
if (Key.isDown(32) && (energyFlag == 0)) {
_local1.beam.gotoandstop(2);
shipEnergy = shipEnergy - beamCost;
if (shipEnergy < 0) {
shipEnergy = 0;
energyFlag = 1;
}
beamFlag = true;
_local1.startBeamTags();
} else {
beamFlag = false;
_local1.beam.gotoandstop(1);
shipEnergy = shipEnergy + rechargeRate;
if (shipEnergy > totalEnergy) {
shipEnergy = totalEnergy;
energyFlag = 0;
}
_local1.removeBeamTags();
}
_local1.beamMeUp();
_local1.updateEnergyBar(shipEnergy, totalEnergy, energyFlag);
_local1.ship._x = _local1.ship._x + dx;
_local1.ship._y = _local1.ship._y + dy;
if (beamFlag == true) {
_local1.beamHorizontalAndVertical(dx, dy);
}
if (_local2.shipUsed == 1) {
_local1.ship.inside._rotation = dx * 2.5;
}
if (_local1.ship._x > 450) {
_local1.ship._x = 450;
}
if (_local1.ship._x < 100) {
_local1.ship._x = 100;
}
if (_local1.ship._y < 50) {
_local1.ship._y = 50;
dy = 0;
}
if (_local1.ship._y > 250) {
_local1.ship._y = 250;
dy = 0;
}
_local1.shadow._x = _local1.ship._x;
_local1.beam._x = _local1.ship._x;
_local1.beam._y = (_local1.ship._y + (_local1.ship._y / 8)) + 35;
_local1.beam._xscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.beam._yscale = 50 + ((_local1.ship._y / 2.5) / 2);
_local1.shadow._alpha = _local1.ship._y / 4;
_local1.shadow._xscale = 300 - _local1.ship._y;
_local1.shadow._yscale = 300 - _local1.ship._y;
varFlag = 0;
if ((_local1.ship._x <= 100) && (dx < 0)) {
varFlag = _local1.moveScene(-1 * dx);
} else if ((_local1.ship._x >= 450) && (dx > 0)) {
varFlag = _local1.moveScene(-1 * dx);
}
if (varFlag == 1) {
dx = 0;
}
_local1.runTimer();
_local1.TankGenerator();
_local1.ManageHelicopters();
_local1.spotship();
_local1.makePeopleMove();
_local1.DetectBulletHits();
_local1.updatePeopleBar(_local2.currentPeople, _local2.totalPeopleToGet);
_local1.moveTargets();
if (deathCounter >= 0) {
if (deathCounter == 0) {
_local2.livesLeft--;
_local1.updateLives(_local2.livesLeft);
_local1.prepareForFrameChange(false, 0);
if (_local2.livesLeft != 0) {
var randSound = (Math.round(Math.random() * 5) + 1);
}
} else {
deathCounter--;
}
}
if (_local2.nextTime != -1) {
_local1.updateTimer();
}
}
}
stop();
myNextLevel = 10;
_global.debug = false;
nonDestructableType = "rock";
panLimitLeft = -300;
panLimitRight = 300;
panAmount = 0;
oldValue = 0;
numPeople = 0;
maxPeople = 0;
percentFrequency = 0;
zArray = new Array();
zStack = new Array();
z3 = 10000;
objectArray = new Array();
bulletArray = new Array();
deadArray = new Array();
targetArray_Name = new Array();
targetArray_Target = new Array();
targetArray_Frames = new Array();
availPeople = new Array();
myVolume = 100;
mySong = "Nothing";
myZ1 = 0;
myZ2 = 0;
terminalVelocity = 8;
sensitivity = 0.4;
totalEnergy = 200;
shipEnergy = 200;
rechargeRate = 2;
beamCost = 2;
timeToBeat = 180;
airFriction = 0.15;
xFriction = 0.15;
xGroundFriction = 0.4;
gravity = 0.4;
yTerminalVelocity = 15;
energyFlag = 0;
pickUpFlag = 0;
dropSpeed = 0;
groundLevel = _root.truck._y;
truckFlag = 0;
dx = 0;
dy = 0;
tankArray = new Array();
tankSpawnTimeMin = 0;
tankSpawnTimeMax = 0;
tankCounter = -1;
blnUseTanks = false;
tanksToUse = "green";
heliArray = new Array();
bulletDepth = 30000;
_global.totalPeopleToGet = 5;
identifierNumber = 5;
var mySoundPlayer = new SoundPlayer();
buttonCoolDown = 0;
intPauseTime = 0;
deathCounter = -1;
almostFlag = false;
Instance of Symbol 304 MovieClip in Frame 50
onClipEvent (load) {
_root.initializeLevel(50, 50, -700, 700, "", 600, 10000);
_root.updateLives(_global.livesLeft);
_root.setPeopleTimer(30, 6);
_root.addPersonType("ethan", "person", 25);
_root.addPersonType("person1", "person", 25);
_root.addPersonType("person2", "person", 25);
_root.addPersonType("person3", "person", 25);
_root.addPersonType("person4", "person", 25);
_root.addPersonType("person5", "person", 25);
_root.addPersonType("person6", "person", 25);
_root.addPersonType("eskimo", "person", 25);
_root.addPersonType("Astronaut", "person", 25);
_root.addUnit("bonus5", 0, "BonusIcon", "object");
_root.addUnit("bonus2", 0, "BonusIcon", "object");
_root.addUnit("bonus3", 0, "BonusIcon", "object");
_root.addUnit("tank1", 2, "redTank", "tank");
_root.addUnit("tank4", 2, "redTank", "tank");
_root.addUnit("tank3", 2, "redTank", "tank");
_root.addUnit("tank5", 2, "redTank", "tank");
_root.addHelicopter("demon1", 20, 40, 6);
_root.addHelicopter("demon2", 50, 100, 6);
_root.addHelicopter("demon3", 60, 120, 6);
_root.addHelicopter("demon4", 70, 130, 6);
_root.addHelicopter("demon5", 80, 200, 6);
_root.addHelicopter("demon6", 50, 100, 6);
_root.addHelicopter("demon7", 50, 100, 6);
_root.addHelicopter("demon8", 50, 100, 6);
_root.StartTankGenerator(10, 80, "red");
_root.flash.swapDepths(100000);
levelTrack = "hell level";
_root.startMusicDownload(levelTrack);
}
onClipEvent (enterFrame) {
_root.runLevel();
}
Instance of Symbol 657 MovieClip "volumeClip" in Frame 50
onClipEvent (load) {
if (_global.volume == true) {
volumeClip.goToAndPlay("volumeOn");
} else {
volumeClip.goToAndPlay("volumeOff");
}
}
on (release) {
if (_global.volume == true) {
_global.volume = false;
_root.volumeClip.nextFrame();
_root.toggleMusic();
} else {
_global.volume = true;
_root.volumeClip.prevFrame();
_root.toggleMusic();
}
}
Frame 51
gotoAndPlay ("endBufferAudio");
Frame 100
gotoAndPlay (2);
Symbol 32 MovieClip [person5] Frame 1
stop();
Symbol 32 MovieClip [person5] Frame 2
stop();
Symbol 32 MovieClip [person5] Frame 3
play();
Symbol 32 MovieClip [person5] Frame 5
gotoAndPlay ("beamed");
Symbol 32 MovieClip [person5] Frame 6
stop();
Symbol 32 MovieClip [person5] Frame 7
play();
Symbol 32 MovieClip [person5] Frame 11
gotoAndPlay ("walk");
Symbol 32 MovieClip [person5] Frame 12
play();
Symbol 32 MovieClip [person5] Frame 16
gotoAndPlay ("run");
Symbol 32 MovieClip [person5] Frame 17
play();
Symbol 32 MovieClip [person5] Frame 54
stop();
Symbol 50 MovieClip [person6] Frame 1
stop();
Symbol 50 MovieClip [person6] Frame 2
stop();
Symbol 50 MovieClip [person6] Frame 3
play();
Symbol 50 MovieClip [person6] Frame 5
gotoAndPlay ("beamed");
Symbol 50 MovieClip [person6] Frame 6
stop();
Symbol 50 MovieClip [person6] Frame 7
play();
Symbol 50 MovieClip [person6] Frame 11
gotoAndPlay ("walk");
Symbol 50 MovieClip [person6] Frame 12
play();
Symbol 50 MovieClip [person6] Frame 16
gotoAndPlay ("run");
Symbol 50 MovieClip [person6] Frame 17
play();
Symbol 50 MovieClip [person6] Frame 54
stop();
Symbol 68 MovieClip [person3] Frame 1
stop();
Symbol 68 MovieClip [person3] Frame 2
stop();
Symbol 68 MovieClip [person3] Frame 3
play();
Symbol 68 MovieClip [person3] Frame 5
gotoAndPlay ("beamed");
Symbol 68 MovieClip [person3] Frame 6
stop();
Symbol 68 MovieClip [person3] Frame 7
play();
Symbol 68 MovieClip [person3] Frame 11
gotoAndPlay ("walk");
Symbol 68 MovieClip [person3] Frame 12
play();
Symbol 68 MovieClip [person3] Frame 14
gotoAndPlay ("run");
Symbol 68 MovieClip [person3] Frame 15
play();
Symbol 68 MovieClip [person3] Frame 52
stop();
Symbol 71 MovieClip [truck] Frame 1
stop();
Symbol 71 MovieClip [truck] Frame 40
stop();
Symbol 71 MovieClip [truck] Frame 41
stop();
Symbol 71 MovieClip [truck] Frame 60
stop();
Symbol 76 MovieClip [bullet] Frame 1
#initclip 13
Object.registerClass("bullet", Bullet);
#endinitclip
Symbol 80 MovieClip Frame 10
gotoAndPlay ("move");
Symbol 88 MovieClip Frame 25
stop();
Symbol 91 MovieClip Frame 8
stop();
Symbol 103 MovieClip Frame 13
stop();
Symbol 104 MovieClip [redTank] Frame 1
#initclip 7
Object.registerClass("redTank", Tank);
#endinitclip
Symbol 104 MovieClip [redTank] Frame 4
gotoAndPlay ("idle");
Symbol 104 MovieClip [redTank] Frame 8
gotoAndPlay ("beamed");
Symbol 104 MovieClip [redTank] Frame 9
_root.playSound("explosion");
Symbol 104 MovieClip [redTank] Frame 40
_root.ObjectCleanup(this._name);
stop();
Symbol 106 MovieClip Frame 10
gotoAndPlay ("move");
Symbol 111 MovieClip Frame 25
stop();
Symbol 112 MovieClip [whiteTank] Frame 1
#initclip 8
Object.registerClass("whiteTank", Tank);
#endinitclip
Symbol 112 MovieClip [whiteTank] Frame 4
gotoAndPlay ("idle");
Symbol 112 MovieClip [whiteTank] Frame 8
gotoAndPlay ("beamed");
Symbol 112 MovieClip [whiteTank] Frame 9
_root.playSound("explosion");
Symbol 112 MovieClip [whiteTank] Frame 40
_root.ObjectCleanup(this._name);
stop();
Symbol 116 MovieClip [antiAir] Frame 1
#initclip 9
Object.registerClass("antiAir", Tank);
#endinitclip
Symbol 116 MovieClip [antiAir] Frame 2
gotoAndPlay ("idle");
Symbol 116 MovieClip [antiAir] Frame 3
_root.playSound("explosion");
Symbol 116 MovieClip [antiAir] Frame 16
stop();
Symbol 122 MovieClip Frame 40
gotoAndPlay (1);
Symbol 123 MovieClip [BonusIcon] Frame 1
stop();
Symbol 123 MovieClip [BonusIcon] Frame 2
stop();
Symbol 123 MovieClip [BonusIcon] Frame 6
stop();
Symbol 132 MovieClip [bullet ground] Frame 1
#initclip 10
Object.registerClass("bullet ground", Bullet);
#endinitclip
Symbol 134 MovieClip Frame 10
gotoAndPlay ("move");
Symbol 139 MovieClip Frame 25
stop();
Symbol 140 MovieClip [tank] Frame 1
#initclip 11
Object.registerClass("tank", Tank);
#endinitclip
Symbol 140 MovieClip [tank] Frame 4
gotoAndPlay ("idle");
Symbol 140 MovieClip [tank] Frame 8
gotoAndPlay ("beamed");
Symbol 140 MovieClip [tank] Frame 9
_root.playSound("explosion");
Symbol 140 MovieClip [tank] Frame 40
_root.ObjectCleanup(this._name);
stop();
Symbol 147 MovieClip [bullet air] Frame 1
#initclip 12
Object.registerClass("bullet air", Bullet);
#endinitclip
Symbol 165 MovieClip [Astronaut] Frame 1
stop();
Symbol 165 MovieClip [Astronaut] Frame 2
stop();
Symbol 165 MovieClip [Astronaut] Frame 3
play();
Symbol 165 MovieClip [Astronaut] Frame 4
gotoAndPlay ("beamed");
Symbol 165 MovieClip [Astronaut] Frame 5
gotoAndPlay ("beamed");
Symbol 165 MovieClip [Astronaut] Frame 6
stop();
Symbol 165 MovieClip [Astronaut] Frame 7
play();
Symbol 165 MovieClip [Astronaut] Frame 10
gotoAndPlay ("walk");
Symbol 165 MovieClip [Astronaut] Frame 11
gotoAndPlay ("walk");
Symbol 165 MovieClip [Astronaut] Frame 12
play();
Symbol 165 MovieClip [Astronaut] Frame 16
gotoAndPlay ("run");
Symbol 165 MovieClip [Astronaut] Frame 17
play();
Symbol 165 MovieClip [Astronaut] Frame 54
stop();
Symbol 182 MovieClip [eskimo] Frame 1
stop();
Symbol 182 MovieClip [eskimo] Frame 2
stop();
Symbol 182 MovieClip [eskimo] Frame 3
play();
Symbol 182 MovieClip [eskimo] Frame 5
gotoAndPlay ("beamed");
Symbol 182 MovieClip [eskimo] Frame 6
stop();
Symbol 182 MovieClip [eskimo] Frame 7
play();
Symbol 182 MovieClip [eskimo] Frame 11
gotoAndPlay ("walk");
Symbol 182 MovieClip [eskimo] Frame 12
play();
Symbol 182 MovieClip [eskimo] Frame 16
gotoAndPlay ("run");
Symbol 182 MovieClip [eskimo] Frame 17
play();
Symbol 182 MovieClip [eskimo] Frame 54
stop();
Symbol 203 MovieClip [person4] Frame 1
stop();
Symbol 203 MovieClip [person4] Frame 2
stop();
Symbol 203 MovieClip [person4] Frame 3
play();
Symbol 203 MovieClip [person4] Frame 5
gotoAndPlay ("beamed");
Symbol 203 MovieClip [person4] Frame 6
stop();
Symbol 203 MovieClip [person4] Frame 7
play();
Symbol 203 MovieClip [person4] Frame 11
gotoAndPlay ("walk");
Symbol 203 MovieClip [person4] Frame 12
play();
Symbol 203 MovieClip [person4] Frame 16
gotoAndPlay ("run");
Symbol 203 MovieClip [person4] Frame 17
play();
Symbol 203 MovieClip [person4] Frame 54
stop();
Symbol 222 MovieClip [person1] Frame 1
stop();
Symbol 222 MovieClip [person1] Frame 2
stop();
Symbol 222 MovieClip [person1] Frame 3
play();
Symbol 222 MovieClip [person1] Frame 5
gotoAndPlay ("beamed");
Symbol 222 MovieClip [person1] Frame 6
stop();
Symbol 222 MovieClip [person1] Frame 7
play();
Symbol 222 MovieClip [person1] Frame 11
gotoAndPlay ("walk");
Symbol 222 MovieClip [person1] Frame 12
play();
Symbol 222 MovieClip [person1] Frame 16
gotoAndPlay ("run");
Symbol 222 MovieClip [person1] Frame 17
play();
Symbol 222 MovieClip [person1] Frame 54
stop();
Symbol 243 MovieClip [person2] Frame 1
stop();
Symbol 243 MovieClip [person2] Frame 2
stop();
Symbol 243 MovieClip [person2] Frame 3
play();
Symbol 243 MovieClip [person2] Frame 5
gotoAndPlay ("beamed");
Symbol 243 MovieClip [person2] Frame 6
stop();
Symbol 243 MovieClip [person2] Frame 7
play();
Symbol 243 MovieClip [person2] Frame 11
gotoAndPlay ("walk");
Symbol 243 MovieClip [person2] Frame 12
play();
Symbol 243 MovieClip [person2] Frame 16
gotoAndPlay ("run");
Symbol 243 MovieClip [person2] Frame 18
play();
Symbol 243 MovieClip [person2] Frame 55
stop();
Symbol 261 MovieClip [ethan] Frame 1
stop();
Symbol 261 MovieClip [ethan] Frame 2
stop();
Instance of Symbol 246 MovieClip in Symbol 261 MovieClip [ethan] Frame 2
on (release) {
_root.prepareForFrameChange(true, 17);
}
Symbol 261 MovieClip [ethan] Frame 3
play();
Symbol 261 MovieClip [ethan] Frame 5
gotoAndPlay ("beamed");
Symbol 261 MovieClip [ethan] Frame 6
stop();
Symbol 261 MovieClip [ethan] Frame 7
play();
Symbol 261 MovieClip [ethan] Frame 11
gotoAndPlay ("walk");
Symbol 261 MovieClip [ethan] Frame 12
play();
Symbol 261 MovieClip [ethan] Frame 16
gotoAndPlay ("run");
Symbol 261 MovieClip [ethan] Frame 17
play();
Symbol 261 MovieClip [ethan] Frame 54
stop();
Symbol 279 MovieClip [Brian] Frame 1
stop();
Symbol 279 MovieClip [Brian] Frame 2
stop();
Symbol 279 MovieClip [Brian] Frame 3
play();
Symbol 279 MovieClip [Brian] Frame 5
gotoAndPlay ("beamed");
Symbol 279 MovieClip [Brian] Frame 6
stop();
Symbol 279 MovieClip [Brian] Frame 7
play();
Symbol 279 MovieClip [Brian] Frame 11
gotoAndPlay ("walk");
Symbol 279 MovieClip [Brian] Frame 12
play();
Symbol 279 MovieClip [Brian] Frame 16
gotoAndPlay ("run");
Symbol 279 MovieClip [Brian] Frame 17
play();
Symbol 279 MovieClip [Brian] Frame 54
stop();
Symbol 299 MovieClip [MIB] Frame 25
stop();
Symbol 299 MovieClip [MIB] Frame 33
stop();
Symbol 299 MovieClip [MIB] Frame 39
gotoAndPlay ("walk");
Symbol 299 MovieClip [MIB] Frame 44
gotoAndPlay ("run");
Symbol 299 MovieClip [MIB] Frame 45
stop();
Symbol 317 Button
on (release) {
getURL ("http://www.armorgames.com", "_blank");
}
Symbol 1050 MovieClip [__Packages.SoundPlayer] Frame 0
class SoundPlayer
{
var channelsAvailable;
function SoundPlayer () {
var _local1 = this;
_local1.channelsAvailable = new Array(true, true, true, true);
_local1.channel1 = new Sound();
_local1.channel2 = new Sound();
_local1.channel3 = new Sound();
_local1.channel4 = new Sound();
_local1.externalSoundVolume = 100;
}
function CleanSounds(intIndex) {
channelsAvailable[intIndex] = true;
}
function PlaySound(linkIdentifier) {
var _local1 = this;
var _local2 = linkIdentifier;
if (_global.soundOn == true) {
var thisRef = _local1;
if (_local1.channelsAvailable[0] == true) {
_local1.channelsAvailable[0] = false;
delete _local1.channel1;
_local1.channel1 = new Sound();
_local1.channel1.attachSound(_local2);
_local1.channel1.setVolume(100);
_local1.channel1.start(0, 0);
_local1.channel1.onSoundComplete = function () {
thisRef.CleanSounds(0);
};
} else if (_local1.channelsAvailable[1] == true) {
_local1.channelsAvailable[1] = false;
delete _local1.channel2;
_local1.channel2 = new Sound();
_local1.channel2.attachSound(_local2);
_local1.channel2.setVolume(100);
_local1.channel2.start(0, 0);
_local1.channel2.onSoundComplete = function () {
thisRef.CleanSounds(1);
};
} else if (_local1.channelsAvailable[2] == true) {
_local1.channelsAvailable[2] = false;
delete _local1.channel3;
_local1.channel3 = new Sound();
_local1.channel3.attachSound(_local2);
_local1.channel3.setVolume(100);
_local1.channel3.start(0, 0);
_local1.channel3.onSoundComplete = function () {
thisRef.CleanSounds(2);
};
} else if (_local1.channelsAvailable[3] == true) {
_local1.channelsAvailable[3] = false;
delete _local1.channel1;
_local1.channel4 = new Sound();
_local1.channel4.attachSound(_local2);
_local1.channel4.setVolume(100);
_local1.channel4.start(0, 0);
_local1.channel4.onSoundComplete = function () {
thisRef.CleanSounds(3);
};
} else {
_local1.channelsAvailable[0] = false;
delete _local1.channel1;
_local1.channel1 = new Sound();
_local1.channel1.attachSound(_local2);
_local1.channel1.setVolume(100);
_local1.channel1.start(0, 0);
_local1.channel1.onSoundComplete = function () {
thisRef.CleanSounds(0);
};
}
}
}
function PlayExternalSound(urlPath) {
var _local1 = this;
var _local2 = urlPath;
var thisRef = _local1;
if (_local1.channelsAvailable[0] == true) {
_local1.channelsAvailable[0] = false;
delete _local1.channel1;
_local1.channel1 = new Sound();
_local1.channel1.loadSound(_local2, false);
_local1.channel1.setVolume(_local1.externalSoundVolume);
_local1.channel1.onLoad = function (loadedOK) {
if (loadedOK) {
this.start();
}
};
_local1.channel1.onSoundComplete = function () {
thisRef.CleanSounds(0);
};
} else if (_local1.channelsAvailable[1] == true) {
_local1.channelsAvailable[1] = false;
delete _local1.channel2;
_local1.channel2 = new Sound();
_local1.channel2.loadSound(_local2, false);
_local1.channel2.setVolume(_local1.externalSoundVolume);
_local1.channel2.onLoad = function (loadedOK) {
if (loadedOK) {
this.start();
}
};
_local1.channel2.onSoundComplete = function () {
thisRef.CleanSounds(1);
};
} else if (_local1.channelsAvailable[2] == true) {
_local1.channelsAvailable[2] = false;
delete _local1.channel3;
_local1.channel3 = new Sound();
_local1.channel3.loadSound(_local2, false);
_local1.channel3.setVolume(_local1.externalSoundVolume);
_local1.channel3.onLoad = function (loadedOK) {
if (loadedOK) {
this.start();
}
};
_local1.channel3.onSoundComplete = function () {
thisRef.CleanSounds(2);
};
} else if (_local1.channelsAvailable[3] == true) {
_local1.channelsAvailable[3] = false;
delete _local1.channel4;
_local1.channel4 = new Sound();
_local1.channel4.loadSound(_local2, false);
_local1.channel4.setVolume(_local1.externalSoundVolume);
_local1.channel4.onLoad = function (loadedOK) {
if (loadedOK) {
this.start();
}
};
_local1.channel4.onSoundComplete = function () {
thisRef.CleanSounds(3);
};
} else {
_local1.channelsAvailable[0] = false;
delete _local1.channel1;
_local1.channel1 = new Sound();
_local1.channel1.loadSound(_local2, false);
_local1.channel1.setVolume(_local1.externalSoundVolume);
_local1.channel1.onLoad = function (loadedOK) {
if (loadedOK) {
this.start();
}
};
_local1.channel1.onSoundComplete = function () {
thisRef.CleanSounds(0);
};
}
}
}
Symbol 1051 MovieClip [__Packages.Music] Frame 0
class Music
{
var maxVolume, mySound, state;
function Music () {
var _local1 = this;
_local1.mySound = new Sound();
_local1.volume = 100;
_local1.currentTrack = "";
_local1.inCrossfade = false;
_local1.state = false;
_local1.changeSongs = true;
_local1.maxVolume = 100;
}
function SetMaxVolume(vol) {
maxVolume = vol;
}
function SetTrack(setMusic) {
var _local1 = this;
if (setMusic == _local1.currentTrack) {
_local1.changeSongs = false;
} else {
_local1.changeSongs = true;
_local1.currentTrack = setMusic;
}
}
function Play() {
var _local1 = this;
_local1.mySound.stop();
_local1.mySound.attachSound(_local1.currentTrack);
_local1.volume = _local1.maxVolume;
_local1.mySound.setVolume(_local1.volume);
_local1.mySound.start(0, 2000);
_local1.state = true;
}
function Stop() {
mySound.stop();
state = false;
}
function PlayWithCrossFade(secondDuration) {
var _local1 = this;
if (_local1.changeSongs == true) {
if (_local1.state == true) {
_local1.inCrossfade = true;
_local1.targetVolume = 0;
var _local2 = secondDuration * 30;
_local1.volumeSpeed = (_local1.targetVolume - _local1.volume) / (_local2 / 2);
} else {
_local1.mySound.stop();
_local1.mySound.attachSound(_local1.currentTrack);
_local1.mySound.start(0, 2000);
_local1.state = true;
_local1.inCrossfade = false;
_local1.targetVolume = _local1.maxVolume;
_local1.volume = 0;
_local1.mySound.setVolume(0);
var _local2 = secondDuration * 30;
_local1.volumeSpeed = (_local1.targetVolume - _local1.volume) / _local2;
}
}
}
function RunPlayer() {
var _local1 = this;
if (_local1.targetVolume != _local1.volume) {
var _local2;
_local2 = _local1.volume + _local1.volumeSpeed;
if ((_local1.volumeSpeed < 0) && (_local2 < 0)) {
_local2 = 0;
} else if ((_local1.volumeSpeed > 0) && (_local2 > _local1.targetVolume)) {
_local2 = _local1.targetVolume;
}
_local1.volume = _local2;
_local1.mySound.setVolume(_local2);
}
if (_local1.inCrossfade == true) {
if (_local1.volume <= 0) {
_local1.volumeSpeed = _local1.volumeSpeed * -1;
_local1.inCrossfade = false;
_local1.targetVolume = _local1.maxVolume;
_local1.mySound.stop();
_local1.mySound.attachSound(_local1.currentTrack);
_local1.mySound.setVolume(0);
_local1.mySound.start(0, 2000);
_local1.state = true;
}
}
}
}
Symbol 1052 MovieClip [__Packages.Tank] Frame 0
class Tank extends MovieClip
{
var blnHoldFire;
function Tank () {
var _local1 = this;
super();
_local1.intFireTimer = 0;
_local1.counter = -1;
_local1.bulletID = 1;
_local1.blnHoldFire = false;
}
function SetFireRate(myInt) {
var _local1 = this;
_local1.intFireTimer = myInt;
_local1.counter = _local1.intFireTimer;
}
function onEnterFrame() {
var _local1 = this;
if (_global.gamePaused == false) {
if (_local1.blnHoldFire == false) {
if (_local1.counter == 0) {
if ((_local1._x > 0) && ((_local1._x + _local1._width) < Stage.width)) {
_local1.FireBullet();
_local1.counter = _local1.intFireTimer;
}
} else {
_local1.counter--;
}
}
}
}
function FireBullet() {
var _local1 = this;
var _local2 = _root;
var bulletName = ((_local1._name + "_bullet_") + _local1.bulletID);
_local1.bulletID++;
var _local3 = {x:_local2[_local1._name].cannon.emmitter._x, y:_local2[_local1._name].cannon.emmitter._y};
_local2[_local1._name].cannon.localToGlobal(_local3);
if (_local2[_local1._name]._xscale > 0) {
var startX = _local3.x;
var startY = _local3.y;
var directionX = ((Math.cos((Math.PI * (_local2[_local1._name].cannon._rotation - 15)) / 180) * 4) * -1);
var directionY = ((Math.sin((Math.PI * (_local2[_local1._name].cannon._rotation - 15)) / 180) * 4) * -1);
} else {
var startX = _local3.x;
var startY = _local3.y;
var directionX = (Math.cos((Math.PI * _local2[_local1._name].cannon._rotation) / 180) * 4);
var directionY = (Math.sin((Math.PI * _local2[_local1._name].cannon._rotation) / 180) * -4);
}
_local2.LaunchBullet(bulletName, startX, startY, directionX, directionY);
}
function OpenFire() {
blnHoldFire = false;
}
function HoldFire() {
blnHoldFire = true;
}
}
Symbol 1053 MovieClip [__Packages.Bullet] Frame 0
class Bullet extends MovieClip
{
var moveX, moveY;
function Bullet () {
super();
moveX = 0;
moveY = 0;
}
function SetMovement(myX, myY) {
moveX = myX;
moveY = myY;
}
function onEnterFrame() {
var _local1 = this;
var _local2 = _root;
if (_global.gamePaused == false) {
_local1._x = _local1._x + _local1.moveX;
_local1._y = _local1._y + _local1.moveY;
if (((_local1._y < 0) || (_local1._x < (_local2.boundingbox._x - (_local2.boundingbox._width / 2)))) || (_local1._x > (_local2.boundingbox._x + (_local2.boundingbox._width / 2)))) {
_local2.RemoveBullet(_local1._name);
}
}
}
}
Symbol 1054 MovieClip [__Packages.BagunkScores] Frame 0
class BagunkScores
{
var intGameID, strConnectionKey, xmlLoader;
function BagunkScores () {
var _local1 = this;
_local1.strFilePath = "http://www.bagunk.com/receiveScores.php";
_local1.loadVarObject = new LoadVars();
_local1.xmlLoader = new XML();
}
function SetGameID(id) {
intGameID = id;
}
function SetCode(passwordString) {
strConnectionKey = passwordString;
}
function SendScores(username, score) {
var _local1 = this;
var _local3 = new ScoreEncrypter(128, 128);
var _local2 = String(score);
var rijndael_hash = _local3.encrypt(_local2, _local1.strConnectionKey, "ECB");
_local1.loadVarObject.name = username;
_local1.loadVarObject.score = rijndael_hash;
_local1.loadVarObject.gameID = _local1.intGameID;
_local1.loadVarObject.pageMode = 1;
_local1.loadVarObject.send(_local1.strFilePath, "_blank", "POST");
}
function UserLogin(score) {
var _local1 = this;
var _local3 = new ScoreEncrypter(128, 128);
var _local2 = String(score);
var rijndael_hash = _local3.encrypt(_local2, _local1.strConnectionKey, "ECB");
_local1.loadVarObject.gameID = _local1.intGameID;
_local1.loadVarObject.score = rijndael_hash;
_local1.loadVarObject.pageMode = 2;
_local1.loadVarObject.send(_local1.strFilePath, "_blank", "POST");
}
function GetScores() {
var thisRef = this;
xmlLoader.ignoreWhite = true;
xmlLoader.onLoad = function (blnSuccess) {
thisRef.scoreArray = new Array();
if (blnSuccess) {
var strProfileLink = this.firstChild.attributes.userProfilePage;
var currentNode = this.firstChild.firstChild;
if (currentNode.attributes.blnSuccess == 0) {
trace("Bagunk Scores Loading Failed!");
}
currentNode = currentNode.nextSibling;
var _local1 = currentNode.firstChild;
while (_local1) {
var strUsername = _local1.attributes.username;
var _local3 = _local1.attributes.verified;
var _local2 = _local1.attributes.score;
var strProfileURL = (strProfileLink + _local1.attributes.userID);
thisRef.scoreArray.push({username:strUsername, verified:_local3, score:_local2, profileURL:strProfileURL});
_local1 = _local1.nextSibling;
}
thisRef.OnGetScoresCompleted(thisRef.scoreArray);
}
};
xmlLoader.load("http://www.bagunk.com/sendScores.php?gameID=" + intGameID);
}
}
Symbol 1055 MovieClip [__Packages.ScoreEncrypter] Frame 0
class ScoreEncrypter
{
var Nb;
function ScoreEncrypter (keySize, blockSize) {
var _local1 = this;
var _local2 = blockSize;
var _local3 = keySize;
if (_local3 != null) {
_local1.keySize = _local3;
}
if (_local2 != null) {
_local1.blockSize = _local2;
}
_local1.roundsArray = [0, 0, 0, 0, [0, 0, 0, 0, 10, 0, 12, 0, 14], 0, [0, 0, 0, 0, 12, 0, 12, 0, 14], 0, [0, 0, 0, 0, 14, 0, 14, 0, 14]];
_local1.shiftOffsets = [0, 0, 0, 0, [0, 1, 2, 3], 0, [0, 1, 2, 3], 0, [0, 1, 3, 4]];
_local1.Nb = _local2 / 32;
_local1.Nk = _local3 / 32;
_local1.Nr = _local1.roundsArray[_local1.Nk][_local1.Nb];
}
function encrypt(src, key, mode) {
var ct = new Array();
var aBlock = new Array();
var _local3 = blockSize / 8;
if (mode == "CBC") {
ct = getRandomBytes(_local3);
}
var chars = formatPlaintext(strToChars(src));
var expandedKey = keyExpansion(strToChars(key));
var _local2 = 0;
while (_local2 < (chars.length / _local3)) {
aBlock = chars.slice(_local2 * _local3, (_local2 + 1) * _local3);
if (mode == "CBC") {
var _local1 = 0;
while (_local1 < _local3) {
aBlock[_local1] = aBlock[_local1] ^ ct[(_local2 * _local3) + _local1];
_local1++;
}
}
ct = ct.concat(encryption(aBlock, expandedKey));
_local2++;
}
return(charsToHex(ct));
}
function decrypt(src, key, mode) {
var pt = new Array();
var aBlock = new Array();
var chars = hexToChars(src);
var _local3 = blockSize / 8;
var expandedKey = keyExpansion(strToChars(key));
var _local2 = (chars.length / _local3) - 1;
while (_local2 > 0) {
aBlock = decryption(chars.slice(_local2 * _local3, (_local2 + 1) * _local3), expandedKey);
if (mode == "CBC") {
var _local1 = 0;
while (_local1 < _local3) {
pt[((_local2 - 1) * _local3) + _local1] = aBlock[_local1] ^ chars[((_local2 - 1) * _local3) + _local1];
_local1++;
}
} else {
pt = aBlock.concat(pt);
}
_local2--;
}
if (mode == "ECB") {
pt = decryption(chars.slice(0, _local3), expandedKey).concat(pt);
}
return(charsToStr(pt));
}
function cyclicShiftLeft(src, pos) {
var _local1 = src;
var _local2 = _local1.slice(0, pos);
_local1 = _local1.slice(pos).concat(_local2);
return(_local1);
}
function xtime(poly) {
var _local1 = poly;
_local1 = _local1 << 1;
if (!(_local1 & 256)) {
return(_local1);
}
return(_local1 ^ 283);
}
function mult_GF256(x, y) {
var _local2 = y;
var _local3 = 0;
var _local1 = 1;
while (_local1 < 256) {
if (x & _local1) {
_local3 = _local3 ^ _local2;
}
_local1 = _local1 * 2;
_local2 = xtime(_local2);
}
return(_local3);
}
function byteSub(state, dir) {
var _local3 = state;
if (dir == "encrypt") {
var S = SBox;
} else {
var S = SBoxInverse;
}
var _local2 = 0;
while (_local2 < 4) {
var _local1 = 0;
while (_local1 < Nb) {
_local3[_local2][_local1] = S[_local3[_local2][_local1]];
_local1++;
}
_local2++;
}
}
function shiftRow(state, dir) {
var _local2 = this;
var _local3 = state;
var _local1 = 1;
while (_local1 < 4) {
if (dir == "encrypt") {
_local3[_local1] = _local2.cyclicShiftLeft(_local3[_local1], _local2.shiftOffsets[_local2.Nb][_local1]);
} else {
_local3[_local1] = _local2.cyclicShiftLeft(_local3[_local1], _local2.Nb - _local2.shiftOffsets[_local2.Nb][_local1]);
}
_local1++;
}
}
function mixColumn(state, dir) {
var _local2 = state;
var _local3 = this;
var b = new Array();
var _local1 = 0;
while (_local1 < _local3.Nb) {
var i = 0;
while (i < 4) {
if (dir == "encrypt") {
b[i] = ((_local3.mult_GF256(_local2[i][_local1], 2) ^ _local3.mult_GF256(_local2[(i + 1) % 4][_local1], 3)) ^ _local2[(i + 2) % 4][_local1]) ^ _local2[(i + 3) % 4][_local1];
} else {
b[i] = ((_local3.mult_GF256(_local2[i][_local1], 14) ^ _local3.mult_GF256(_local2[(i + 1) % 4][_local1], 11)) ^ _local3.mult_GF256(_local2[(i + 2) % 4][_local1], 13)) ^ _local3.mult_GF256(_local2[(i + 3) % 4][_local1], 9);
}
i++;
}
var i = 0;
while (i < 4) {
_local2[i][_local1] = b[i];
i++;
}
_local1++;
}
}
function addRoundKey(state, roundKey) {
var _local2 = roundKey;
var _local3 = state;
var _local1 = 0;
while (_local1 < Nb) {
_local3[0][_local1] = _local3[0][_local1] ^ (_local2[_local1] & 255);
_local3[1][_local1] = _local3[1][_local1] ^ ((_local2[_local1] >> 8) & 255);
_local3[2][_local1] = _local3[2][_local1] ^ ((_local2[_local1] >> 16) & 255);
_local3[3][_local1] = _local3[3][_local1] ^ ((_local2[_local1] >> 24) & 255);
_local1++;
}
}
function keyExpansion(key) {
var _local1 = this;
var _local2 = 0;
_local1.Nk = _local1.keySize / 32;
_local1.Nb = _local1.blockSize / 32;
var expandedKey = new Array();
_local1.Nr = _local1.roundsArray[_local1.Nk][_local1.Nb];
var _local3 = 0;
while (_local3 < _local1.Nk) {
expandedKey[_local3] = ((key[4 * _local3] | (key[(4 * _local3) + 1] << 8)) | (key[(4 * _local3) + 2] << 16)) | (key[(4 * _local3) + 3] << 24);
_local3++;
}
_local3 = _local1.Nk;
while (_local3 < (_local1.Nb * (_local1.Nr + 1))) {
_local2 = expandedKey[_local3 - 1];
if ((_local3 % _local1.Nk) == 0) {
_local2 = (((_local1.SBox[(_local2 >> 8) & 255] | (_local1.SBox[(_local2 >> 16) & 255] << 8)) | (_local1.SBox[(_local2 >> 24) & 255] << 16)) | (_local1.SBox[_local2 & 255] << 24)) ^ _local1.Rcon[Math.floor(_local3 / _local1.Nk) - 1];
} else if ((_local1.Nk > 6) && ((_local3 % _local1.Nk) == 4)) {
_local2 = (((_local1.SBox[(_local2 >> 24) & 255] << 24) | (_local1.SBox[(_local2 >> 16) & 255] << 16)) | (_local1.SBox[(_local2 >> 8) & 255] << 8)) | _local1.SBox[_local2 & 255];
}
expandedKey[_local3] = expandedKey[_local3 - _local1.Nk] ^ _local2;
_local3++;
}
return(expandedKey);
}
function Round(state, roundKey) {
var _local1 = this;
var _local2 = state;
_local1.byteSub(_local2, "encrypt");
_local1.shiftRow(_local2, "encrypt");
_local1.mixColumn(_local2, "encrypt");
_local1.addRoundKey(_local2, roundKey);
}
function InverseRound(state, roundKey) {
var _local1 = this;
var _local2 = state;
_local1.addRoundKey(_local2, roundKey);
_local1.mixColumn(_local2, "decrypt");
_local1.shiftRow(_local2, "decrypt");
_local1.byteSub(_local2, "decrypt");
}
function FinalRound(state, roundKey) {
var _local1 = this;
var _local2 = state;
_local1.byteSub(_local2, "encrypt");
_local1.shiftRow(_local2, "encrypt");
_local1.addRoundKey(_local2, roundKey);
}
function InverseFinalRound(state, roundKey) {
var _local1 = this;
var _local2 = state;
_local1.addRoundKey(_local2, roundKey);
_local1.shiftRow(_local2, "decrypt");
_local1.byteSub(_local2, "decrypt");
}
function encryption(block, expandedKey) {
var _local2 = this;
var _local3 = block;
_local3 = _local2.packBytes(_local3);
_local2.addRoundKey(_local3, expandedKey);
var _local1 = 1;
while (_local1 < _local2.Nr) {
_local2.Round(_local3, expandedKey.slice(_local2.Nb * _local1, _local2.Nb * (_local1 + 1)));
_local1++;
}
_local2.FinalRound(_local3, expandedKey.slice(_local2.Nb * _local2.Nr));
return(_local2.unpackBytes(_local3));
}
function decryption(block, expandedKey) {
var _local2 = this;
var _local3 = block;
_local3 = _local2.packBytes(_local3);
_local2.InverseFinalRound(_local3, expandedKey.slice(_local2.Nb * _local2.Nr));
var _local1 = _local2.Nr - 1;
while (_local1 > 0) {
_local2.InverseRound(_local3, expandedKey.slice(_local2.Nb * _local1, _local2.Nb * (_local1 + 1)));
_local1--;
}
_local2.addRoundKey(_local3, expandedKey);
return(_local2.unpackBytes(_local3));
}
function packBytes(octets) {
var _local3 = octets;
var _local2 = new Array();
_local2[0] = new Array();
_local2[1] = new Array();
_local2[2] = new Array();
_local2[3] = new Array();
var _local1 = 0;
while (_local1 < _local3.length) {
_local2[0][_local1 / 4] = _local3[_local1];
_local2[1][_local1 / 4] = _local3[_local1 + 1];
_local2[2][_local1 / 4] = _local3[_local1 + 2];
_local2[3][_local1 / 4] = _local3[_local1 + 3];
_local1 = _local1 + 4;
}
return(_local2);
}
function unpackBytes(packed) {
var _local3 = packed;
var _local1 = new Array();
var _local2 = 0;
while (_local2 < _local3[0].length) {
_local1[_local1.length] = _local3[0][_local2];
_local1[_local1.length] = _local3[1][_local2];
_local1[_local1.length] = _local3[2][_local2];
_local1[_local1.length] = _local3[3][_local2];
_local2++;
}
return(_local1);
}
function formatPlaintext(plaintext) {
var _local3 = plaintext;
var _local2 = blockSize / 8;
var _local1 = _local2 - (_local3.length % _local2);
while ((_local1 > 0) && (_local1 < _local2)) {
_local3[_local3.length] = 0;
_local1--;
}
return(_local3);
}
function getRandomBytes(howMany) {
var _local3 = howMany;
var _local2 = new Array();
var _local1 = 0;
while (_local1 < _local3) {
_local2[_local1] = Math.round(Math.random() * 255);
_local1++;
}
return(_local2);
}
function hexToChars(hex) {
var _local2 = hex;
var _local3 = new Array();
var _local1 = ((_local2.substr(0, 2) == "0x") ? 2 : 0);
while (_local1 < _local2.length) {
_local3.push(parseInt(_local2.substr(_local1, 2), 16));
_local1 = _local1 + 2;
}
return(_local3);
}
function charsToHex(chars) {
var _local2 = chars;
var result = new String("");
var _local3 = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
var _local1 = 0;
while (_local1 < _local2.length) {
result = result + (_local3[_local2[_local1] >> 4] + _local3[_local2[_local1] & 15]);
_local1++;
}
return(result);
}
function charsToStr(chars) {
var _local2 = chars;
var _local3 = new String("");
var _local1 = 0;
while (_local1 < _local2.length) {
_local3 = _local3 + String.fromCharCode(_local2[_local1]);
_local1++;
}
return(_local3);
}
function strToChars(str) {
var _local2 = str;
var _local3 = new Array();
var _local1 = 0;
while (_local1 < _local2.length) {
_local3.push(_local2.charCodeAt(_local1));
_local1++;
}
return(_local3);
}
var Rcon = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145];
var SBox = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22];
var SBoxInverse = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125];
var blockSize = 128;
var keySize = 128;
}
Instance of Symbol 330 MovieClip in Symbol 337 MovieClip Frame 1
on (release) {
getURL ("http://www.armorgames.com", "_blank");
}
Instance of Symbol 330 MovieClip in Symbol 337 MovieClip Frame 151
on (release) {
getURL ("http://www.herointeractive.com", "_blank");
}
Instance of Symbol 330 MovieClip in Symbol 337 MovieClip Frame 310
on (release) {
getURL ("http://www.herointeractive.com", "_blank");
}
Symbol 337 MovieClip Frame 337
_root.play();
Symbol 364 MovieClip Frame 1
stop();
Symbol 364 MovieClip Frame 12
stop();
Symbol 364 MovieClip Frame 22
gotoAndPlay (1);
Symbol 370 MovieClip Frame 1
stop();
Symbol 370 MovieClip Frame 15
stop();
this.insideMan.gotoAndPlay("spot");
Symbol 422 MovieClip Frame 1
stop();
Symbol 422 MovieClip Frame 30
stop();
Symbol 422 MovieClip Frame 115
gotoAndPlay ("hide");
Symbol 435 MovieClip Frame 1
stop();
Symbol 435 MovieClip Frame 2
stop();
Symbol 460 MovieClip Frame 1
stop();
Symbol 460 MovieClip Frame 2
stop();
Symbol 475 MovieClip Frame 1
stop();
Symbol 475 MovieClip Frame 2
stop();
Symbol 475 MovieClip Frame 3
stop();
Symbol 475 MovieClip Frame 4
stop();
Symbol 475 MovieClip Frame 5
stop();
Symbol 475 MovieClip Frame 6
stop();
Symbol 475 MovieClip Frame 7
stop();
Symbol 475 MovieClip Frame 8
stop();
Symbol 475 MovieClip Frame 9
stop();
Symbol 475 MovieClip Frame 10
stop();
Symbol 504 MovieClip Frame 1
stop();
Symbol 504 MovieClip Frame 9
_root.HelicopterFire(this._name);
Symbol 504 MovieClip Frame 18
_root.HelicopterDoneFiring(this._name);
gotoAndPlay ("flying");
Symbol 520 MovieClip Frame 60
stop();
Symbol 520 MovieClip Frame 105
stop();
Symbol 520 MovieClip Frame 280
stop();
Symbol 520 MovieClip Frame 300
stop();
Symbol 520 MovieClip Frame 301
this.test.gotoAndPlay("beamed");
Symbol 520 MovieClip Frame 320
stop();
Symbol 520 MovieClip Frame 400
this.test.gotoAndPlay("falling");
Symbol 520 MovieClip Frame 414
this.test.gotoAndPlay("collision");
Symbol 520 MovieClip Frame 441
stop();
Symbol 520 MovieClip Frame 461
stop();
Symbol 520 MovieClip Frame 462
this.test2.gotoAndPlay("spot");
Symbol 520 MovieClip Frame 482
stop();
Symbol 520 MovieClip Frame 503
stop();
Symbol 520 MovieClip Frame 524
stop();
Symbol 520 MovieClip Frame 545
stop();
Symbol 545 Button
on (release) {
this._parent.Buy(this._name);
}
on (rollOver) {
this._parent.Details(this._name);
}
on (rollOut) {
this._parent.Reset();
}
Symbol 548 Button
on (rollOver) {
this._parent.Details(this._name);
}
on (rollOut) {
this._parent.Reset();
}
Symbol 555 Button
on (release) {
this._parent.PlayPause(this._name);
}
on (rollOver) {
this._parent.Details(this._name);
}
on (rollOut) {
this._parent.Reset();
}
Symbol 561 Button
on (release) {
this._parent.ToggleShip();
}
on (rollOver) {
this._parent.Details(this._name);
}
on (rollOut) {
this._parent.Reset();
}
Symbol 564 Button
on (release) {
this._parent.ToggleShip();
}
on (rollOver) {
this._parent.Details(this._name);
}
on (rollOut) {
this._parent.Reset();
}
Symbol 570 Button
on (release) {
this._parent.PlayLevel();
}
on (rollOver) {
this._parent.Details(this._name);
}
on (rollOut) {
this._parent.Reset();
}
Symbol 571 MovieClip Frame 1
stop();
Symbol 571 MovieClip Frame 23
stop();
Symbol 571 MovieClip Frame 37
stop();
Symbol 571 MovieClip Frame 38
stop();
Symbol 571 MovieClip Frame 52
stop();
Symbol 591 MovieClip Frame 1
stop();
Symbol 591 MovieClip Frame 2
stop();
Symbol 605 MovieClip Frame 1
stop();
Instance of Symbol 364 MovieClip in Symbol 605 MovieClip Frame 1
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent._parent.play();
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 605 MovieClip Frame 10
stop();
Symbol 605 MovieClip Frame 20
function AdvanceTutorial() {
var _local2 = this;
var _local1 = "tag" + tutorialPage;
_local2.tutorial.gotoAndPlay(_local1);
tutorialPage++;
if (tutorialPage == 11) {
_local2.nextButton._visible = false;
_local2.nextText._visible = false;
}
}
stop();
if (_global.musicOn == true) {
_global.myMusicPlayer.SetTrack("tutorial music");
_global.myMusicPlayer.SetMaxVolume(100);
_global.myMusicPlayer.PlayWithCrossFade(3);
}
this.tutorial.gotoAndPlay(1);
this.nextButton._visible = true;
this.nextText._visible = true;
var tutorialPage = 1;
Instance of Symbol 364 MovieClip in Symbol 605 MovieClip Frame 20
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent._parent.play();
if (_global.musicOn == true) {
_global.myMusicPlayer.SetTrack("titleMusic");
_global.myMusicPlayer.SetMaxVolume(100);
_global.myMusicPlayer.PlayWithCrossFade(3);
}
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip "nextButton" in Symbol 605 MovieClip Frame 20
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter <= 0) {
trace("hit");
this._parent.AdvanceTutorial();
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 605 MovieClip Frame 30
var myScoreSaver = new BagunkScores();
myScoreSaver.SetCode("7uKYpxwrYqUbLQ7J");
myScoreSaver.SetGameID(302);
myScoreSaver.OnGetScoresCompleted = function (myScores) {
var _local2 = myScores;
var names = "";
var scores = "";
var _local3 = new Array();
var myFormat_fmt = new TextFormat();
myFormat_fmt.bold = true;
myFormat_fmt.color = 8572415 /* 0x82CDFF */;
var _local1 = 0;
while (_local1 < _local2.length) {
if (_local2[_local1].verified == 1) {
var startIndex = names.length;
var endIndex = (names.length + _local2[_local1].username.length);
_local3.push({start:startIndex, end:endIndex, url:_local2[_local1].profileURL});
}
names = (names + _local2[_local1].username) + newline;
scores = (scores + _local2[_local1].score) + newline;
_local1++;
}
_root.mainScreen.otherMenu.name_txt.text = names;
_root.mainScreen.otherMenu.score_txt.text = scores;
_local1 = 0;
while (_local1 < _local3.length) {
myFormat_fmt.url = _local3[_local1].url;
trace(myFormat_fmt.url);
_root.mainScreen.otherMenu.name_txt.setTextFormat(_local3[_local1].start, _local3[_local1].end, myFormat_fmt);
_local1++;
}
};
myScoreSaver.GetScores();
stop();
Instance of Symbol 364 MovieClip in Symbol 605 MovieClip Frame 30
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent._parent.play();
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 605 MovieClip Frame 30
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
getURL ("http://www.bagunk.com/scores.php?profile=302", "_blank");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 540 MovieClip in Symbol 605 MovieClip Frame 30
on (release) {
getURL ("http://www.bagunk.com/developers.php");
}
Symbol 605 MovieClip Frame 40
function Reset() {
var _local1 = this;
_local1.description_txt.text = "Ok, so they aren't AmAzInG extras (in fact, some are just plain lame), but there was a lot of extra content that didn't make it in the final game. Here's your chance to check some of the stuff out, and even unlock alternate content. ";
_local1.title_txt.text = "Unlock Extras!";
_local1.cost_txt.text = "Various Points";
}
function ToggleShip() {
var _local1 = _global;
if (_local1.shipUsed == 1) {
_local1.shipUsed = 2;
this.ship.gotoAndPlay("finished3");
} else {
_local1.shipUsed = 1;
this.ship.gotoAndPlay("finished2");
}
}
function PlayLevel() {
_global.tempFrame = 17;
_root.gotoAndPlay("levelText");
}
function Start() {
var _local1 = this;
var _local2 = _global;
_local1.Reset();
_local1.UpdatePoints();
_local2.arrPurchased;
if (_local2.arrPurchased[0] == 1) {
_local1.sound1.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[1] == 1) {
_local1.sound2.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[2] == 1) {
_local1.sound3.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[3] == 1) {
_local1.sound4.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[4] == 1) {
_local1.sound5.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[5] == 1) {
_local1.sound6.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[6] == 1) {
_local1.sound7.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[7] == 1) {
_local1.song1.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[8] == 1) {
_local1.song2.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[9] == 1) {
_local1.song3.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[10] == 1) {
_local1.song4.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[11] == 1) {
_local1.song5.gotoAndPlay("finished1");
}
if (_local2.arrPurchased[12] == 1) {
if (_local2.shipUsed == 1) {
_local1.ship.gotoAndPlay("finished2");
} else {
_local1.ship.gotoAndPlay("finished3");
}
}
if (_local2.arrPurchased[13] == 1) {
_local1.level.gotoAndPlay("finished4");
}
}
function UpdatePoints() {
this.points_txt.text = ("( " + _global.bonusPoints) + " PTS )";
}
function Buy(objectName) {
var _local1 = _global;
var _local2 = this;
var _local3 = objectName;
if (_local3 == "sound1") {
if (_local1.bonusPoints >= 1) {
_local1.bonusPoints = _local1.bonusPoints - 1;
_local2.sound1.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[0] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "sound2") {
if (_local1.bonusPoints >= 1) {
_local1.bonusPoints = _local1.bonusPoints - 1;
_local2.sound2.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[1] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "sound3") {
if (_local1.bonusPoints >= 1) {
_local1.bonusPoints = _local1.bonusPoints - 1;
_local2.sound3.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[2] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "sound4") {
if (_local1.bonusPoints >= 1) {
_local1.bonusPoints = _local1.bonusPoints - 1;
_local2.sound4.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[3] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "sound5") {
if (_local1.bonusPoints >= 1) {
_local1.bonusPoints = _local1.bonusPoints - 1;
_local2.sound5.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[4] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "sound6") {
if (_local1.bonusPoints >= 1) {
_local1.bonusPoints = _local1.bonusPoints - 1;
_local2.sound6.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[5] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "sound7") {
if (_local1.bonusPoints >= 1) {
_local1.bonusPoints = _local1.bonusPoints - 1;
_local2.sound7.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[6] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "song1") {
if (_local1.bonusPoints >= 3) {
_local1.bonusPoints = _local1.bonusPoints - 3;
_local2.song1.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[7] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "song2") {
if (_local1.bonusPoints >= 3) {
_local1.bonusPoints = _local1.bonusPoints - 3;
_local2.song2.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[8] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "song3") {
if (_local1.bonusPoints >= 3) {
_local1.bonusPoints = _local1.bonusPoints - 3;
_local2.song3.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[9] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "song4") {
if (_local1.bonusPoints >= 3) {
_local1.bonusPoints = _local1.bonusPoints - 3;
_local2.song4.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[10] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "song5") {
if (_local1.bonusPoints >= 3) {
_local1.bonusPoints = _local1.bonusPoints - 3;
_local2.song5.gotoAndPlay("purchased");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[11] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "ship") {
if (_local1.bonusPoints >= 10) {
_local1.bonusPoints = _local1.bonusPoints - 10;
_local2.ship.gotoAndPlay("purchasedShip");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[12] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
} else if (_local3 == "level") {
if (_local1.bonusPoints >= 15) {
_local1.bonusPoints = _local1.bonusPoints - 15;
_local2.level.gotoAndPlay("purchasedLevel");
_local1.SoundManager.PlaySound("unlock");
_local1.arrPurchased[13] = 1;
} else {
_local1.SoundManager.PlaySound("nocando");
}
}
_local2.UpdatePoints();
}
function PlayPause(objectName) {
var _local1 = _global;
var _local2 = objectName;
if (_local2 == "sound1") {
_local1.myMusicPlayer.Stop();
_local1.SoundManager.PlaySound("outtake1");
} else if (_local2 == "sound2") {
_local1.myMusicPlayer.Stop();
_local1.SoundManager.PlaySound("outtake2");
} else if (_local2 == "sound3") {
_local1.myMusicPlayer.Stop();
_local1.SoundManager.PlaySound("outtake3");
} else if (_local2 == "sound4") {
_local1.myMusicPlayer.Stop();
_local1.SoundManager.PlaySound("outtake4");
} else if (_local2 == "sound5") {
_local1.myMusicPlayer.Stop();
_local1.SoundManager.PlaySound("outtake5");
} else if (_local2 == "sound6") {
_local1.myMusicPlayer.Stop();
_local1.SoundManager.PlaySound("outtake6");
} else if (_local2 == "sound7") {
_local1.myMusicPlayer.Stop();
_local1.SoundManager.PlaySound("outtake7");
} else if (_local2 == "song1") {
_local1.myMusicPlayer.SetTrack("city");
_local1.myMusicPlayer.SetMaxVolume(100);
_local1.myMusicPlayer.PlayWithCrossFade(3);
} else if (_local2 == "song2") {
_local1.myMusicPlayer.SetTrack("forest");
_local1.myMusicPlayer.SetMaxVolume(100);
_local1.myMusicPlayer.PlayWithCrossFade(3);
} else if (_local2 == "song3") {
_local1.myMusicPlayer.SetTrack("space");
_local1.myMusicPlayer.SetMaxVolume(100);
_local1.myMusicPlayer.PlayWithCrossFade(3);
} else if (_local2 == "song4") {
_local1.myMusicPlayer.SetTrack("farm");
_local1.myMusicPlayer.SetMaxVolume(100);
_local1.myMusicPlayer.PlayWithCrossFade(3);
} else if (_local2 == "song5") {
_local1.SoundManager.PlaySound("outtake1");
}
}
function Details(objectName) {
var _local1 = this;
var _local2 = objectName;
if (_local2 == "sound1") {
_local1.description_txt.text = "Want to hear the developers being stupid and screwing around while recording the alien voices? Here's your chance.";
_local1.title_txt.text = "OUTAKE #1";
_local1.cost_txt.text = "1 PT";
} else if (_local2 == "sound2") {
_local1.description_txt.text = "Want to hear the developers being stupid and screwing around while recording the alien voices? Here's your chance.";
_local1.title_txt.text = "OUTAKE #2";
_local1.cost_txt.text = "1 PT";
} else if (_local2 == "sound3") {
_local1.description_txt.text = "Want to hear the developers being stupid and screwing around while recording the alien voices? Here's your chance.";
_local1.title_txt.text = "OUTAKE #3";
_local1.cost_txt.text = "1 PT";
} else if (_local2 == "sound4") {
_local1.description_txt.text = "Want to hear the developers being stupid and screwing around while recording the alien voices? Here's your chance.";
_local1.title_txt.text = "OUTAKE #4";
_local1.cost_txt.text = "1 PT";
} else if (_local2 == "sound5") {
_local1.description_txt.text = "Want to hear the developers being stupid and screwing around while recording the alien voices? Here's your chance.";
_local1.title_txt.text = "OUTAKE #5";
_local1.cost_txt.text = "1 PT";
} else if (_local2 == "sound6") {
_local1.description_txt.text = "Want to hear the developers being stupid and screwing around while recording the alien voices? Here's your chance.";
_local1.title_txt.text = "OUTAKE #6";
_local1.cost_txt.text = "1 PT";
} else if (_local2 == "sound7") {
_local1.description_txt.text = "Want to hear the developers being stupid and screwing around while recording the alien voices? Here's your chance.";
_local1.title_txt.text = "OUTAKE #7";
_local1.cost_txt.text = "1 PT";
} else if (_local2 == "song1") {
_local1.description_txt.text = "Unlock one of the songs from the original Alien Abduction game.";
_local1.title_txt.text = "ORIGINAL SONG #1";
_local1.cost_txt.text = "3 PTS";
} else if (_local2 == "song2") {
_local1.description_txt.text = "Unlock one of the songs from the original Alien Abduction game.";
_local1.title_txt.text = "ORIGINAL SONG #2";
_local1.cost_txt.text = "3 PTS";
} else if (_local2 == "song3") {
_local1.description_txt.text = "Unlock one of the songs from the original Alien Abduction game.";
_local1.title_txt.text = "ORIGINAL SONG #3";
_local1.cost_txt.text = "3 PTS";
} else if (_local2 == "song4") {
_local1.description_txt.text = "Unlock one of the songs from the original Alien Abduction game.";
_local1.title_txt.text = "ORIGINAL SONG #4";
_local1.cost_txt.text = "3 PTS";
} else if (_local2 == "song5") {
_local1.description_txt.text = "Unlock one of the songs from the original Alien Abduction game.";
_local1.title_txt.text = "ORIGINAL SONG #5";
_local1.cost_txt.text = "3 PTS";
} else if (_local2 == "ship") {
_local1.description_txt.text = "Unlock the original flying saucer from Alien Abduction I. Once purchased, you'll be able to set the original space craft design as your in-game playable avatar.";
_local1.title_txt.text = "UNLOCK AAI SPACESHIP";
_local1.cost_txt.text = "10 PTS";
} else if (_local2 == "level") {
_local1.description_txt.text = "Yup, there's a bonus level. Nothing but a silly waste with it's pink sky, dancing flowers, and smiling sun. But hey, don't you just want to try it out anyways?";
_local1.title_txt.text = "PLAY BONUS LEVEL";
_local1.cost_txt.text = "15 PTS";
}
}
stop();
if (_global.musicOn == true) {
_global.myMusicPlayer.SetTrack("unlock shop music");
_global.myMusicPlayer.SetMaxVolume(100);
_global.myMusicPlayer.PlayWithCrossFade(3);
}
Instance of Symbol 364 MovieClip in Symbol 605 MovieClip Frame 40
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
if (_global.musicOn == true) {
_global.myMusicPlayer.SetTrack("titleMusic");
_global.myMusicPlayer.SetMaxVolume(100);
_global.myMusicPlayer.PlayWithCrossFade(3);
}
this._parent._parent.play();
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 571 MovieClip "sound1" in Symbol 605 MovieClip Frame 40
onClipEvent (load) {
this._parent.Start();
}
Symbol 605 MovieClip Frame 50
stop();
Instance of Symbol 364 MovieClip in Symbol 605 MovieClip Frame 50
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent._parent.play();
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 591 MovieClip "low" in Symbol 605 MovieClip Frame 50
onClipEvent (load) {
if (_quality == "LOW") {
this.gotoAndStop("on");
}
}
on (rollOver) {
this.gotoAndStop("on");
}
on (rollOut) {
if (_quality != "LOW") {
this.gotoAndStop("off");
}
}
on (release) {
_quality = "LOW";
this._parent.high.gotoAndStop("off");
this._parent.med.gotoAndStop("off");
}
Instance of Symbol 591 MovieClip "med" in Symbol 605 MovieClip Frame 50
onClipEvent (load) {
if (_quality == "MEDIUM") {
this.gotoAndStop("on");
}
}
on (rollOver) {
this.gotoAndStop("on");
}
on (rollOut) {
if (_quality != "MEDIUM") {
this.gotoAndStop("off");
}
}
on (release) {
_quality = "MEDIUM";
this._parent.high.gotoAndStop("off");
this._parent.low.gotoAndStop("off");
}
Instance of Symbol 591 MovieClip "high" in Symbol 605 MovieClip Frame 50
onClipEvent (load) {
if (_quality == "HIGH") {
this.gotoAndStop("on");
}
}
on (rollOver) {
this.gotoAndStop("on");
}
on (rollOut) {
if (_quality != "HIGH") {
this.gotoAndStop("off");
}
}
on (release) {
_quality = "HIGH";
this._parent.low.gotoAndStop("off");
this._parent.med.gotoAndStop("off");
}
Instance of Symbol 591 MovieClip "musicOn" in Symbol 605 MovieClip Frame 50
onClipEvent (load) {
if (_global.musicOn == true) {
this.gotoAndStop("on");
}
}
on (rollOver) {
this.gotoAndStop("on");
}
on (rollOut) {
if (_global.musicOn != true) {
this.gotoAndStop("off");
}
}
on (release) {
_global.musicOn = true;
this._parent.musicOff.gotoAndStop("off");
_global.myMusicPlayer.SetTrack("titleMusic");
_global.myMusicPlayer.SetMaxVolume(100);
_global.myMusicPlayer.PlayWithCrossFade(3);
}
Instance of Symbol 591 MovieClip "musicOff" in Symbol 605 MovieClip Frame 50
onClipEvent (load) {
if (_global.musicOn == false) {
this.gotoAndStop("on");
}
}
on (rollOver) {
this.gotoAndStop("on");
}
on (rollOut) {
if (_global.musicOn == true) {
this.gotoAndStop("off");
}
}
on (release) {
_global.musicOn = false;
this._parent.musicOn.gotoAndStop("off");
_global.myMusicPlayer.Stop();
}
Instance of Symbol 591 MovieClip "soundsOn" in Symbol 605 MovieClip Frame 50
onClipEvent (load) {
if (_global.soundOn == true) {
this.gotoAndStop("on");
}
}
on (rollOver) {
this.gotoAndStop("on");
}
on (rollOut) {
if (_global.soundOn != true) {
this.gotoAndStop("off");
}
}
on (release) {
_global.soundOn = true;
this._parent.soundsOff.gotoAndStop("off");
}
Instance of Symbol 591 MovieClip "soundsOff" in Symbol 605 MovieClip Frame 50
onClipEvent (load) {
if (_global.soundOn == false) {
this.gotoAndStop("on");
}
}
on (rollOver) {
this.gotoAndStop("on");
}
on (rollOut) {
if (_global.soundOn == true) {
this.gotoAndStop("off");
}
}
on (release) {
_global.soundOn = false;
this._parent.soundsOn.gotoAndStop("off");
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 1
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 1
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 1
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 1
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 1
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 606 MovieClip Frame 17
_global.SoundManager.PlaySound("swoosh2");
Instance of Symbol 370 MovieClip in Symbol 606 MovieClip Frame 17
on (rollOver) {
this.gotoAndPlay("open");
}
on (rollOut) {
this.gotoAndPlay("closed");
}
on (release) {
getURL ("http://www.armorgames.com", "_blank");
}
Symbol 606 MovieClip Frame 40
_global.SoundManager.PlaySound("swoosh");
_global.SoundManager.PlaySound("swoosh2");
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 40
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 606 MovieClip Frame 43
_global.SoundManager.PlaySound("swoosh");
_global.SoundManager.PlaySound("swoosh2");
Symbol 606 MovieClip Frame 46
_global.SoundManager.PlaySound("swoosh");
Symbol 606 MovieClip Frame 49
_global.SoundManager.PlaySound("swoosh");
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 50
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
_root.gotoAndPlay("levelText");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 606 MovieClip Frame 52
_global.SoundManager.PlaySound("swoosh");
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 53
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent.gotoAndPlay("slideOut");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this._parent.otherMenu.gotoAndStop("how");
this._parent.otherMenu.tutorial.gotoAndPlay(1);
this._parent.otherMenu.nextButton._visible = true;
this._parent.otherMenu.nextText._visible = true;
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 606 MovieClip Frame 55
_global.SoundManager.PlaySound("swoosh");
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 56
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent.gotoAndPlay("slideOut");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this._parent.otherMenu.gotoAndStop("scores");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 59
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent.gotoAndPlay("slideOut");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this._parent.otherMenu.gotoAndStop("bonus");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 62
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent.gotoAndPlay("slideOut");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this._parent.otherMenu.gotoAndStop("settings");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 65
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent.gotoAndPlay("slideOut");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this._parent.otherMenu.gotoAndStop("credits");
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 606 MovieClip Frame 69
stop();
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 69
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
getURL ("http://www.armorgames.com", "_blank");
playForward = 0;
}
}
}
on (release) {
_global.SoundManager.PlaySound("button_hit");
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 70
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent.gotoAndPlay("slideOut");
playForward = 0;
}
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 70
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 70
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 70
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 70
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 70
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
trace(frameCounter);
} else if (playForward == 2) {
this.prevFrame();
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 606 MovieClip Frame 86
stop();
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 86
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
playForward = 0;
}
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 606 MovieClip Frame 102
gotoAndPlay ("stopMain");
Instance of Symbol 364 MovieClip in Symbol 606 MovieClip Frame 102
on (rollOver) {
var playForward = 1;
var frameCounter = 1;
var holdCounter = 9;
}
on (rollOut) {
if (playForward != 3) {
playForward = 2;
}
}
onClipEvent (enterFrame) {
if ((playForward == 1) && (frameCounter < 12)) {
this.nextFrame();
frameCounter++;
} else if (playForward == 2) {
this.prevFrame();
frameCounter--;
} else if (playForward == 3) {
holdCounter--;
if (holdCounter == 0) {
trace("hit");
this._parent.gotoAndPlay("slideOut");
playForward = 0;
}
}
}
on (release) {
this.gotoAndPlay("flash");
playForward = 3;
}
Symbol 625 MovieClip Frame 1
r = random(200);
r = r + 50;
gotoAndPlay(r);
Symbol 639 MovieClip Frame 1
stop();
Symbol 639 MovieClip Frame 2
stop();
Symbol 657 MovieClip Frame 1
stop();
Symbol 657 MovieClip Frame 2
stop();
Symbol 664 MovieClip Frame 1
stop();
Symbol 667 MovieClip Frame 1
stop();
Symbol 667 MovieClip Frame 2
if (_global.bonusPoints == 1) {
this.points.points_txt.text = _global.bonusPoints + " pt!";
} else {
this.points.points_txt.text = _global.bonusPoints + " pts!";
}
Symbol 667 MovieClip Frame 32
stop();
Symbol 667 MovieClip Frame 33
if (_global.totalPeople == 1) {
this.points.points_txt.text = _global.totalPeople + " person!";
} else {
this.points.points_txt.text = _global.totalPeople + " people!";
}
Symbol 667 MovieClip Frame 63
stop();
Symbol 671 Button
on (release) {
_root.cleanScreen();
_root.gotoAndPlay("menuScreen");
}
Symbol 674 MovieClip Frame 1
stop();
Symbol 674 MovieClip Frame 2
stop();
Symbol 683 Button
on (release) {
trace("release button");
_root.loginScore();
}
Symbol 698 MovieClip Frame 1
play();
Symbol 731 MovieClip Frame 1
r = random(30);
gotoAndPlay(r);
Symbol 738 MovieClip Frame 1
r = random(120);
gotoAndPlay(r);
Symbol 755 MovieClip Frame 1
r = random(50);
gotoAndPlay(r);
gotoAndPlay(r);
Symbol 766 MovieClip Frame 80
gotoAndPlay (1);
Symbol 779 MovieClip Frame 13
gotoAndPlay (1);
Symbol 862 MovieClip [desert_rock] Frame 1
stop();
Symbol 862 MovieClip [desert_rock] Frame 30
stop();
Symbol 862 MovieClip [desert_rock] Frame 80
stop();
Symbol 904 MovieClip Frame 2
var randomNum = Math.round(Math.random() * 1000);
gotoAndPlay(randomNum);
Symbol 904 MovieClip Frame 1000
_root.flash.gotoAndPlay("flash");
Symbol 904 MovieClip Frame 1082
gotoAndPlay ("start explode");
Symbol 941 MovieClip Frame 1
stop();
Symbol 941 MovieClip Frame 2
_root.HelicopterFire(this._name);
_root.HelicopterDoneFiring(this._name);
gotoAndPlay ("flying");
Symbol 944 MovieClip Frame 1
stop();
Symbol 944 MovieClip Frame 17
gotoAndStop ("off");
stop();
Symbol 954 MovieClip Frame 1
stop();
Symbol 954 MovieClip Frame 11
_root.HelicopterFire(this._name);
Symbol 954 MovieClip Frame 20
_root.HelicopterDoneFiring(this._name);
gotoAndPlay ("flying");
Symbol 977 MovieClip Frame 1
stop();
Symbol 977 MovieClip Frame 2
trace(this._name + " just reached shooting");
Symbol 977 MovieClip Frame 3
trace(this._name + " just reached second frame of shooting");
Symbol 977 MovieClip Frame 12
_root.HelicopterFire(this._name);
Symbol 977 MovieClip Frame 21
_root.HelicopterDoneFiring(this._name);
this.gotoAndPlay("flying");
Symbol 1012 MovieClip Frame 1
stop();
Symbol 1012 MovieClip Frame 14
_root.HelicopterFire(this._name);
Symbol 1012 MovieClip Frame 23
_root.HelicopterDoneFiring(this._name);
this.gotoAndPlay("flying");
Symbol 1013 MovieClip Frame 1
var jump = Math.round(Math.random() * 300);
this.gotoAndPlay(jump);