Frame 1
iStatus = 0;
setProperty("pbar", _xscale , 0);
Frame 2
iBytesTotal = _root.getBytesTotal();
iBytesLoaded = _root.getBytesLoaded();
iBytes = (iBytesLoaded / iBytesTotal) * 100;
Kbytes = iBytesLoaded / 1024;
Tkbytes = iBytesTotal / 1024;
setProperty("pbar", _xscale , iBytes);
ploaded = Math.round(iBytes) add "%";
sStatus = ((Math.round(Kbytes) add " KB Of ") add Math.round(Tkbytes)) add " KB Loaded";
Instance of Symbol 90 MovieClip in Frame 2
on (press) {
getURL ("http://www.GamePlayOnline.com", "_self");
}
Frame 3
if (iBytes < 100) {
gotoAndPlay (2);
} else {
sStatus = "COMPLETE";
gotoAndPlay (4);
}
Frame 4
stop();
if (bgMusic._currentframe == 1) {
bgMusic.gotoAndStop(2);
}
Frame 5
stop();
Frame 6
stop();
Instance of Symbol 129 MovieClip in Frame 6
on (release) {
getURL ("http://www.gotoandplay.it/", "_blank");
}
Instance of Symbol 134 MovieClip in Frame 6
on (release) {
getURL ("http://www.gameplayonline.com/", "_blank");
}
Frame 7
stop();
hitRate.text = int((totalHitBullets / totalFiredBullets) * 100) + "%";
Instance of Symbol 90 MovieClip in Frame 7
on (press) {
getURL ("http://www.GamePlayOnline.com", "_self");
}
Frame 8
stop();
Frame 9
stop();
Instance of Symbol 90 MovieClip in Frame 9
on (press) {
getURL ("http://www.GamePlayOnline.com", "_self");
}
Frame 10
function initGame() {
currentLevel = 0;
totalFiredBullets = 0;
totalHitBullets = 0;
totalKilledEnemies = 0;
mouseController.onMouseDown = mouseDown;
mouseController.onMouseUp = mouseUp;
Mouse.addListener(mouseController);
if (!gameDemoMode) {
bulletSpeed = 15;
var _local1 = 5;
levels = new Array();
level = new Object();
level.name = "Beach";
level.bgId = 1;
level.weaponId = 1;
level.fireRate = 2;
level.maxBullets = 10;
level.maxKills = 20;
level.enemySpeed = 2;
level.enemyHits = 1;
levels[0] = level;
level = new Object();
level.name = "Desert";
level.bgId = 2;
level.weaponId = 2;
level.fireRate = 5;
level.maxBullets = 20;
level.maxKills = 25;
level.enemySpeed = 2.5;
level.enemyHits = 2;
levels[1] = level;
level = new Object();
level.name = "Grass";
level.bgId = 3;
level.weaponId = 3;
level.fireRate = 8;
level.maxBullets = 25;
level.maxKills = 30;
level.enemySpeed = 2.5;
level.enemyHits = 3;
levels[2] = level;
level = new Object();
level.name = "Snow";
level.bgId = 4;
level.weaponId = 4;
level.fireRate = 10;
level.maxBullets = 30;
level.maxKills = 50;
level.enemySpeed = 3;
level.enemyHits = 4;
levels[3] = level;
level = new Object();
level.name = "City";
level.bgId = 5;
level.weaponId = 5;
level.fireRate = 15;
level.maxBullets = 50;
level.maxKills = 50;
level.enemySpeed = 4;
level.enemyHits = 5;
levels[4] = level;
initLevel();
} else {
levels = new Array();
level = new Object();
level.name = demoName;
level.bgId = demoBgId;
level.weaponId = demoWeaponId;
level.fireRate = demoFireRate;
level.maxBullets = demoMaxBullets;
level.maxKills = demoMaxKills;
level.enemySpeed = demoEnemySpeed;
level.enemyHits = demoEnemyHits;
levels[0] = level;
bulletSpeed = demoBulletSpeed;
initLevel();
}
}
function parseXmlData(ok) {
if (ok) {
var _local4 = this.childNodes[0];
if (_local4.nodeName == "game") {
bulletSpeed = Number(_local4.attributes.bulletSpeed);
}
var _local3 = this.lastChild.childNodes;
levels = new Array();
if (_local3.length > 0) {
var _local2 = 0;
while (_local2 < _local3.length) {
if (_local3[_local2].nodeName == "level") {
level = new Object();
level.name = _local3[_local2].attributes.name;
level.bgId = _local3[_local2].attributes.bgId;
level.weaponId = _local3[_local2].attributes.weaponId;
level.fireRate = _local3[_local2].attributes.fireRate;
level.maxBullets = _local3[_local2].attributes.maxBullets;
level.maxKills = _local3[_local2].attributes.maxKills;
level.enemySpeed = _local3[_local2].attributes.enemySpeed;
level.enemyHits = _local3[_local2].attributes.enemyHits;
levels[_local2] = level;
}
_local2++;
}
initLevel();
} else {
trace("ERROR: no 'level' tags in XML");
}
} else {
trace("ERROR: could not load XML");
}
}
function initLevel() {
if (gameMC.bg == undefined) {
gameMC.attachMovie("background", "bg", 0);
}
gameMC.bg.gotoAndStop(levels[currentLevel].bgId);
gameMC.attachMovie("getReady", "getReady", 10);
gameMC.getReady._x = stageW / 2;
gameMC.getReady._y = stageH / 2;
gameMC.attachMovie("weapon_" + levels[currentLevel].weaponId, "hero", 9);
gameMC.hero._x = stageW / 2;
gameMC.hero._y = stageH - 30;
firing = false;
gameMC.attachMovie("bulletCounter", "bulletsCnt", 1);
gameMC.bulletsCnt._x = 15;
gameMC.bulletsCnt._y = stageH - 15;
remainingBullets = Number(levels[currentLevel].maxBullets);
updateBullets();
outOfAmmo = false;
levelFiredBullets = 0;
levelHitBullets = 0;
levelKilledEnemies = 0;
waveEnemies = 0;
gameMC.createEmptyMovieClip("bullets", 8);
gameMC.createEmptyMovieClip("enemies", 7);
gameMC.createEmptyMovieClip("blood", 6);
Mouse.hide();
getReadyDelay = setInterval(getReadyThread, 1000);
}
function getReadyThread() {
clearInterval(getReadyDelay);
gameRunning = true;
gameMC.getReady.removeMovieClip();
gameMC.hero.onEnterFrame = heroThread;
nextEnemyWave();
}
function updateBullets() {
if (remainingBullets < 0) {
remainingBullets = 0;
}
var _local1 = (String(remainingBullets) + " / ") + String(levels[currentLevel].maxBullets);
gameMC.bulletsCnt.bulletCounter.text = _local1;
}
function heroThread() {
if (gameRunning) {
var _local7;
if (_xmouse > stageW) {
_local7 = stageW;
} else if (_xmouse < 0) {
_local7 = 0;
} else {
_local7 = _xmouse;
}
var _local8 = getAngle(this._x, this._y, _local7, stageH / 2);
this._rotation = _local8;
if ((firing && (getTimer() > fireRateTimer)) && (!outOfAmmo)) {
fireRateTimer = getTimer() + (1000 / Number(levels[currentLevel].fireRate));
if (remainingBullets > 0) {
this.play();
var _local6 = 0;
if (this.bulletExitPoint_1 != undefined) {
_local6 = 1;
}
var _local4 = 0;
while (_local4 <= _local6) {
var _local5 = gameMC.bullets.getNextHighestDepth();
gameMC.bullets.attachMovie("bullet", "bullet" + _local5, _local5);
var _local3 = this["bulletExitPoint_" + _local4];
_local3.x = _local3._x;
_local3.y = _local3._y;
this.localToGlobal(_local3);
var _local2;
_local2 = gameMC.bullets["bullet" + _local5];
_local2._x = _local3.x;
_local2._y = _local3.y;
_local2._rotation = this._rotation;
_local2.speedX = bulletSpeed * Math.cos(((90 - _local2._rotation) * Math.PI) / 180);
_local2.speedY = bulletSpeed * Math.sin(((90 - _local2._rotation) * Math.PI) / 180);
remainingBullets--;
updateBullets();
totalFiredBullets++;
levelFiredBullets++;
_local2.onEnterFrame = bulletThread;
_local4++;
}
} else {
snd_ammoOut.gotoAndPlay(2);
outOfAmmo = true;
gameMC.attachMovie("reload", "reload", 10);
gameMC.reload._x = stageW / 2;
gameMC.reload._y = stageH / 2;
}
}
if (Key.isDown(82) && (remainingBullets <= 0)) {
snd_reload.gotoAndPlay(2);
outOfAmmo = false;
gameMC.reload.removeMovieClip();
remainingBullets = Number(levels[currentLevel].maxBullets);
updateBullets();
}
}
}
function getAngle(sx, sy, fx, fy) {
var _local3 = ((Math.atan((fy - sy) / (fx - sx)) / Math.PI) * 180) + (((fx - sx) / Math.abs(fx - sx)) * 90);
return(_local3);
}
function mouseDown() {
if (gameRunning) {
firing = true;
}
}
function mouseUp() {
if (gameRunning) {
firing = false;
outOfAmmo = false;
}
}
function bulletThread() {
this._x = this._x + this.speedX;
this._y = this._y - this.speedY;
var _local4 = 0;
while (_local4 < enemiesCoords.length) {
var _local2 = gameMC.enemies["enemy" + _local4];
if (_local2 != undefined) {
if (_local2.hitArea_mc.hitTest(this._x, this._y) && (((_local2._x > 0) && (_local2._x < stageW)) && (_local2._y > 0))) {
this.onEnterFrame = undefined;
this.removeMovieClip();
_local2.hits--;
totalHitBullets++;
levelHitBullets++;
var _local3 = gameMC.blood.getNextHighestDepth();
gameMC.blood.attachMovie("blood", "blood" + _local3, _local3);
gameMC.blood["blood" + _local3]._x = _local2._x;
gameMC.blood["blood" + _local3]._y = _local2._y;
gameMC.blood["blood" + _local3].gotoAndPlay(int(Math.random() * 4) + 1);
if (_local2.hits == 0) {
_local2.onEnterFrame = undefined;
_local2.removeMovieClip();
snd_death.gotoAndPlay(2);
levelKilledEnemies++;
totalKilledEnemies++;
waveKilledEnemies++;
if (levelKilledEnemies == Number(levels[currentLevel].maxKills)) {
levelFinished();
} else if (waveKilledEnemies == enemiesCoords.length) {
nextEnemyWave();
}
} else {
snd_hit.gotoAndPlay(2);
}
}
}
_local4++;
}
if (((this._x < -20) || (this._x > (stageW + 20))) || (this._y < -20)) {
this.onEnterFrame = undefined;
this.removeMovieClip();
}
}
function nextEnemyWave() {
waveKilledEnemies = 0;
enemiesCoords = new Array();
enemyInsPoint = new Array();
var _local3 = 0;
while (_local3 < masterEnemyInsPoint.length) {
enemyInsPoint[_local3] = masterEnemyInsPoint[_local3];
_local3++;
}
if (waveEnemies < masterEnemyInsPoint.length) {
waveEnemies++;
}
if (waveEnemies > (Number(levels[currentLevel].maxKills) - levelKilledEnemies)) {
waveEnemies = Number(levels[currentLevel].maxKills) - levelKilledEnemies;
}
var _local2 = 0;
while (_local2 < waveEnemies) {
var _local4 = int(Math.random() * enemyInsPoint.length);
enemiesCoords[_local2] = enemyInsPoint[_local4];
enemyInsPoint.splice(_local4, 1);
gameMC.enemies.attachMovie("enemy", "enemy" + _local2, _local2);
var _local1 = gameMC.enemies["enemy" + _local2];
_local1._x = (_local1.sx = Number(enemiesCoords[_local2].sx));
_local1._y = (_local1.sy = Number(enemiesCoords[_local2].sy));
_local1._rotation = getAngle(_local1._x, _local1._y, gameMC.hero._x, gameMC.hero._y) - 180;
var _local5 = Number(levels[currentLevel].enemySpeed);
_local1.speedX = _local5 * Math.cos(((90 - _local1._rotation) * Math.PI) / 180);
_local1.speedY = _local5 * Math.sin(((90 - _local1._rotation) * Math.PI) / 180);
_local1.step = 1;
_local1.dist = 0;
_local1.hits = Number(levels[currentLevel].enemyHits);
if (_local2 == 0) {
_local1.startTime = 0;
} else {
_local1.startTime = getTimer() + (_local2 * enemyDelay);
}
_local1.onEnterFrame = enemyThread;
_local2++;
}
}
function enemyThread() {
if (getTimer() >= this.startTime) {
this._x = this._x - this.speedX;
this._y = this._y + this.speedY;
this.dist = Math.sqrt(Math.pow(this._x - this.sx, 2) + Math.pow(this._y - this.sy, 2));
if (this.dist >= (this.step * enemyStepSize)) {
this.play();
this.step++;
}
if (this._y > (stageH + 20)) {
this.onEnterFrame = undefined;
this.removeMovieClip();
}
if (this._y >= (gameMC.hero._y - 40)) {
this.onEnterFrame = undefined;
gameMC.hero.onEnterFrame = undefined;
snd_death.gotoAndPlay(2);
gameRunning = false;
Mouse.removeListener(mouseController);
Mouse.show();
gotoAndPlay ("gameover");
}
}
}
function levelFinished() {
gameMC.hero.onEnterFrame = undefined;
gameMC.bulletsCnt.removeMovieClip();
gameMC.blood.removeMovieClip();
gameMC.bullets.removeMovieClip();
gameMC.enemies.removeMovieClip();
gameMC.attachMovie("levelCompleted", "levelCompleted", 10);
gameMC.levelCompleted._x = stageW / 2;
gameMC.levelCompleted._y = stageH / 2;
gameMC.levelCompleted.shotBullets.text = levelFiredBullets;
gameMC.levelCompleted.killedEnemies.text = levelKilledEnemies;
gameMC.levelCompleted.hitRate.text = int((levelHitBullets / levelFiredBullets) * 100) + "%";
gameMC.levelCompleted.onEnterFrame = function () {
if (Key.isDown(32)) {
nextLevel();
}
};
}
function nextLevel() {
trace("NEXT LEVEL");
gameMC.levelCompleted.removeMovieClip();
if (gameDemoMode) {
gameRunning = false;
Mouse.removeListener(mouseController);
Mouse.show();
gotoAndPlay ("demo");
} else if (currentLevel != (levels.length - 1)) {
currentLevel++;
initLevel();
} else {
gameRunning = false;
Mouse.removeListener(mouseController);
Mouse.show();
gotoAndPlay ("completed");
}
}
var gameDemoMode = false;
var demoBulletSpeed = 15;
var demoName = "demo";
var demoBgId = 1;
var demoWeaponId = 1;
var demoFireRate = 2;
var demoMaxBullets = 10;
var demoMaxKills = 20;
var demoEnemySpeed = 1;
var demoEnemyHits = 1;
var gameRunning = false;
var stageW = 600;
var stageH = 400;
var getReadyDelay;
var mouseController = new Object();
var levels;
var level;
var currentLevel;
var xmlData;
var remainingBullets;
var firing;
var fireRateTimer = 0;
var outOfAmmo;
var bulletSpeed;
var totalFiredBullets;
var levelFiredBullets;
var totalHitBullets;
var levelHitBullets;
var offset = 40;
var masterEnemyInsPoint = [{sx:-offset, sy:(stageH / 8) * 3}, {sx:-offset, sy:stageH / 8}, {sx:stageW / 10, sy:-offset}, {sx:(stageW / 10) * 3, sy:-offset}, {sx:(stageW / 10) * 5, sy:-offset}, {sx:(stageW / 10) * 7, sy:-offset}, {sx:(stageW / 10) * 9, sy:-offset}, {sx:stageW + offset, sy:stageH / 8}, {sx:stageW + 30, sy:(stageH / 8) * 3}];
var enemyInsPoint;
var enemiesCoords;
var enemyStepSize = 20;
var levelKilledEnemies;
var totalKilledEnemies;
var waveKilledEnemies;
var waveEnemies;
var enemyDelay = 300;
stop();
initGame();
Symbol 11 MovieClip [background] Frame 1
stop();
Symbol 19 MovieClip [weapon_4] Frame 1
stop();
Symbol 26 MovieClip [weapon_5] Frame 1
stop();
Symbol 32 MovieClip [weapon_3] Frame 1
stop();
Symbol 37 MovieClip [weapon_2] Frame 1
stop();
Symbol 46 MovieClip [weapon_1] Frame 1
stop();
Symbol 51 MovieClip [reload] Frame 10
stop();
Symbol 63 MovieClip [enemy] Frame 1
stop();
Symbol 63 MovieClip [enemy] Frame 2
stop();
Symbol 72 MovieClip [blood] Frame 1
stop();
Symbol 72 MovieClip [blood] Frame 2
stop();
Symbol 72 MovieClip [blood] Frame 3
stop();
Symbol 72 MovieClip [blood] Frame 4
stop();
Instance of Symbol 89 MovieClip in Symbol 90 MovieClip Frame 1
on (press) {
getURL ("http://www.GamePlayOnline.com", "_self");
}
Symbol 102 MovieClip Frame 1
stop();
Symbol 108 Button
on (release) {
gotoAndPlay ("game");
}
Symbol 109 Button
on (press) {
getURL ("http://www.GamePlayOnline.com", "_self");
}
Symbol 110 Button
on (press) {
getURL ("http://www.GamePlayOnline.com", "_self");
}
Symbol 114 Button
on (release) {
gotoAndPlay ("help");
}
Symbol 118 Button
on (release) {
gotoAndPlay ("title");
}
Symbol 140 Button
on (release) {
gotoAndPlay ("title");
}
Symbol 171 MovieClip Frame 1
stop();
Symbol 174 MovieClip Frame 1
stop();
Symbol 177 MovieClip Frame 1
stop();
Symbol 180 MovieClip Frame 1
stop();