Frame 1
function __com_mochibot__(swfid, mc, lv, trk) {
var x;
var g;
var s;
var fv;
var sb;
var u;
var res;
var mb;
var mbc;
mb = "__mochibot__";
mbc = "mochibot.com";
g = (_global ? (_global) : (_level0._root));
if (g[mb + swfid]) {
return(g[mb + swfid]);
}
s = System.security;
x = mc._root.getSWFVersion;
fv = (x ? (mc.getSWFVersion()) : ((_global ? 6 : 5)));
if (!s) {
s = {};
}
sb = s.sandboxType;
if (sb == "localWithFile") {
return(null);
}
x = s.allowDomain;
if (x) {
s.allowDomain(mbc);
}
x = s.allowInsecureDomain;
if (x) {
s.allowInsecureDomain(mbc);
}
u = (((((((((((("http://" + mbc) + "/my/core.swf?mv=7&fv=") + fv) + "&v=") + escape(getVersion())) + "&swfid=") + escape(swfid)) + "&l=") + lv) + "&f=") + mc) + (sb ? ("&sb=" + sb) : "")) + (trk ? "&t=1" : "");
lv = ((fv > 6) ? (mc.getNextHighestDepth()) : ((g[mb + "level"] ? (g[mb + "level"] + 1) : (lv))));
g[mb + "level"] = lv;
if (fv == 5) {
res = "_level" + lv;
if (!eval (res)) {
loadMovieNum (u, lv);
}
} else {
res = mc.createEmptyMovieClip(mb + swfid, lv);
res.loadMovie(u);
}
return(res);
}
__com_mochibot__("464f1a02", this, 10301, true);
var MochiAd = {getVersion:function () {
return("1.5");
}, showPreloaderAd:function (options) {
var _local27 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = MochiAd._parseOptions(options, _local27);
var clip = options.clip;
var _local23 = 11000;
var _local26 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = MochiAd._getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local7._x = 10;
_local7._y = _local13 - 20;
var _local22 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local7.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local7.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local6 = _local7.createEmptyMovieClip("_outline", 3);
_local6.lineStyle(0, _local24, 100);
_local6.moveTo(0, 0);
_local6.lineTo(_local4 - 20, 0);
_local6.lineTo(_local4 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local26;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}, showTimedAd:function (options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = MochiAd._parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = MochiAd._getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}, _allowDomains:function (server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}, _loadCommunicator:function (options) {
var _local25 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, _local25);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = MochiAd.getVersion();
var _local18 = options.clip;
var _local20 = "_mochiad_com_" + options.id;
if (!MochiAd._isNetworkAvailable()) {
return(null);
}
if (_local18[_local20]) {
return(_local18[_local20].lc);
}
var _local21 = options.com_server + options.id;
MochiAd._allowDomains(_local21);
delete options.id;
delete options.com_server;
var _local24 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local24);
var _local11 = _local17.createEmptyMovieClip("_mochiad_com", 1);
for (var _local15 in options) {
_local11[_local15] = options[_local15];
}
var _local6 = new LocalConnection();
var _local16 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local6.mc = _local17;
_local6.name = _local16;
_local6.allowDomain = function (d) {
return(true);
};
_local6.allowInsecureDomain = _local6.allowDomain;
_local6.connect(_local16);
_local17.lc = _local6;
_local11.lc = _local16;
_local6._id = 0;
_local6._queue = [];
_local6.rpcResult = function (cb) {
cb = parseInt(cb);
var _local4 = this._callbacks[cb];
if (!_local4) {
return(undefined);
}
delete this._callbacks[cb];
var _local5 = [];
var _local3 = 2;
while (_local3 < _local4.length) {
_local5.push(_local4[_local3]);
_local3++;
}
_local3 = 1;
while (_local3 < arguments.length) {
_local5.push(arguments[_local3]);
_local3++;
}
var _local6 = _local4[1];
var _local7 = _local4[0];
if (_local7 && (typeof(_local6) == "string")) {
_local6 = _local7[_local6];
}
if (_local6) {
_local6.apply(_local7, _local5);
}
};
_local6._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local4 = this._queue;
delete this._queue;
var _local5 = this.doSend;
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2];
_local5.apply(this, _local3);
_local2++;
}
};
_local6.doSend = function (args, cbobj, cbfn) {
if (this._endpoint == null) {
var _local4 = [];
var _local3 = 0;
while (_local3 < arguments.length) {
_local4.push(arguments[_local3]);
_local3++;
}
this._queue.push(_local4);
return(undefined);
}
this._id = this._id + 1;
var _local5 = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[_local5] = [cbobj, cbfn];
var _local7 = new LocalConnection();
var _local9 = _local7.send(this._endpoint, "rpc", _local5, args);
};
_local6._callbacks = {};
_local6._callbacks[0] = [_local6, "_didConnect"];
_local11.st = getTimer();
_local11.loadMovie(_local21 + ".swf", "POST");
return(_local6);
}, fetchHighScores:function (options, callbackObj, callbackMethod) {
var _local1 = MochiAd._loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["fetchHighScores", options];
_local1.doSend(["fetchHighScores", options], callbackObj, callbackMethod);
return(true);
}, sendHighScore:function (options, callbackObj, callbackMethod) {
var _local1 = MochiAd._loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["sendHighScore", options];
_local1.doSend(["sendHighScore", options], callbackObj, callbackMethod);
return(true);
}, load:function (options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = MochiAd.getVersion();
var _local7 = options.clip;
if (!MochiAd._isNetworkAvailable()) {
return(null);
}
if (_local7._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local7.createEmptyMovieClip("_mochiad", _local12);
var _local11 = MochiAd._getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local7._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
if (_local7._url.indexOf("http") != 0) {
options.no_page = true;
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = MochiAd._allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local9 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local9;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local9);
_local6.lc = _local5;
_local4.lc = _local9;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}, unload:function (clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}, _isNetworkAvailable:function () {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}, _getRes:function (options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}, _parseOptions:function (options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local4);
}, _:null};
MochiAd.showPreloaderAd({id:"8f69ca004dfd068f", res:"650x550"});
SCREEN_CENTER_X = int(Stage.width / 2);
SCREEN_CENTER_Y = int(Stage.height / 2);
Frame 2
function newClip(sIdent, iPosX, iPosY, iLevel) {
lvl = ((iLevel > 0) ? (iLevel) : (level++));
mc = _root.attachMovie(sIdent, sIdent + lvl, lvl, "initObj");
mc._x = iPosX;
mc._y = iPosY;
mc._xscale = GAME_SCALE;
mc._yscale = GAME_SCALE;
mc.mcName = sIdent + lvl;
return(mc);
}
level = 10;
GAME_SCALE = 100;
SCALE_PER = GAME_SCALE / 100;
SCALE_SPEED = 1;
stop();
Frame 3
function gameLoop() {
var _local2 = getTimer();
if (shaking) {
_root._x = (Math.random() * shakeIntensity) - (shakeIntensity / 2);
_root._y = (Math.random() * shakeIntensity) - (shakeIntensity / 2);
if ((_local2 > timeStopShaking) && (timeStopShaking > 0)) {
_root._x = 0;
_root._y = 0;
shaking = false;
timeStopShaking = 0;
}
}
switch (gameState) {
case STATE_STOP :
if ((timeRemoveGameOver > 0) && (_local2 > timeRemoveGameOver)) {
timeRemoveGameOver = 0;
mcGameOver.removeMovieClip();
if (gameScore > 0) {
getPlayerName();
} else {
showInstructions();
}
}
break;
case STATE_BONUSES :
if ((timeBonuses > 0) && (_local2 > timeBonuses)) {
stopAllSounds();
levelComplete.removeMovieClip();
playMusic("BonusMusic");
showBonuses();
timeBonuses = 0;
}
break;
case STATE_NEWLEVEL :
if (_local2 > timeStartLevel) {
startLevel();
}
break;
case STATE_PLAY :
if ((_xmouse != oldXMouse) || (_ymouse != oldYMouse)) {
shield._rotation = getAngle(_xmouse, _ymouse) + 180;
oldXMouse = _xmouse;
oldYMouse = _ymouse;
shield.rads = reverseRadians(_xmouse, _ymouse);
}
moveTanks();
moveHealth();
moveBullets();
if ((((_local2 > timeNextTank) && (timeNextTank > 0)) && (tankCount < maxTanks)) && (tankCount < tanksLeft)) {
newTank();
timeNextTank = _local2 + tankInterval;
}
if (((_local2 > timeNextBullet) && (timeNextBullet > 0)) && (bulletCount < maxBullets)) {
tankBullet();
timeNextBullet = ((_local2 + tankFireInterval) + (Math.random() * 1000)) - (tankCount * 100);
}
if (_local2 > timeNextSecond) {
seconds--;
if ((seconds % 6) == 0) {
regenEnergy();
}
if (seconds < 0) {
seconds = 59;
minutes--;
}
if ((minutes == 0) && (seconds < 11)) {
if (seconds > 0) {
playSound(SOUND_WARNING);
} else if (seconds == 0) {
minutes = 0;
seconds = 0;
endLevel();
}
}
showTime();
}
showScore();
checkGameOver();
break;
case STATE_PAUSE :
}
}
function getClick() {
if ((gameState == STATE_PLAY) && (hasSticky)) {
stuckBullet.stuck = false;
stuckBullet.dir = shield._rotation * (Math.PI/180);
hasSticky = false;
}
}
function startGame(bLoad) {
tankFireInterval = TANK_FIRE_INTERVAL;
lastSpawnpoint = -1;
timeRemoveGameOver = 0;
hideInstructions();
makeInterface();
if (bLoad) {
gameLevel = saveData.gameLevel;
gameScore = saveData.gameScore;
gameMoney = saveData.gameMoney;
tankFireInterval = saveData.tankFireInterval;
} else {
gameLevel = 0;
gameScore = 0;
gameMoney = 0;
}
showScore();
showMoney();
setupBase(bLoad);
if (bLoad) {
iface.txtLevel = (gameLevel + "/") + MAX_LEVELS;
showBonuses();
} else {
play();
}
}
function nextLevel() {
gameLevel++;
iface.txtLevel = (gameLevel + "/") + MAX_LEVELS;
addMoney(int(gameMoney * (baseInterest / 100)));
addScore(gameMoney / (10 * Math.pow(1.15, gameLevel)));
showScore();
setLevel();
clearTanks();
stopAllSounds();
playMusic("StartMusic");
hideBonuses();
showNewLevel();
setTime(timeLimit);
timeStartLevel = getTimer() + 3000;
gameState = STATE_NEWLEVEL;
}
function startLevel() {
hideNewLevel();
gameState = STATE_PLAY;
playMusic(MUSIC_LEVEL);
timeNextTank = getTimer() + 50;
timeNextBullet = getTimer() + 2000;
}
function endLevel() {
clearBullets();
playSound(SOUND_LEVEL_COMPLETE);
if (gameLevel == 50) {
gameState = STATE_STOP;
mcGameOver = newClip("Congratulations", CENTER_X, CENTER_Y);
timeRemoveGameOver = getTimer() + 10000;
} else {
if ((gameLevel % 5) == 0) {
bonusPoints++;
}
levelComplete = newClip("LevelComplete", CENTER_X, CENTER_Y);
gameState = STATE_BONUSES;
timeBonuses = getTimer() + 3000;
}
}
function endGame() {
gameState = STATE_STOP;
mcGameOver = newClip("GameOver", CENTER_X, CENTER_Y);
timeRemoveGameOver = getTimer() + 5000;
}
function makeInterface() {
iface = newClip(BUILD_INTERFACE, 0, 0, INTERFACE_LEVEL);
iface.score = 0;
setTime(0);
if (!soundOn) {
iface.soundButtonClip.gotoAndStop(2);
}
}
function removeInterface() {
iface.removeMovieClip();
}
function setTime(iSeconds) {
minutes = int(iSeconds / 60);
seconds = iSeconds % 60;
showTime();
}
function showTime() {
timeText = ((minutes > 9) ? (minutes) : ("0" + minutes));
timeText = timeText + ":";
timeText = timeText + ((seconds > 9) ? (seconds) : ("0" + seconds));
iface.gameTime = timeText;
timeNextSecond = getTimer() + 1000;
if ((minutes == 0) && (seconds < 31)) {
iface.txtTime.setTextFormat(warningText);
}
}
function togglePauseState() {
if (gamePaused) {
unpauseGame();
} else if (gameState == STATE_PLAY) {
pauseGame();
}
}
function pauseGame() {
gameState = STATE_PAUSE;
gamePaused = true;
iface.pauseClip.gotoAndStop(2);
}
function unpauseGame() {
gameState = STATE_PLAY;
gamePaused = false;
buttonPaused = false;
iface.pauseClip.gotoAndStop(1);
}
function confirmNewGame() {
pauseGame();
mcConfirm = newClip("NewGameConfirm", CENTER_X, CENTER_Y);
}
function showNewLevel() {
var _local1 = "Level " + gameLevel;
mcLevelText = newClip("LevelText", CENTER_X, CENTER_Y - OFFSET_NEW_LEVEL);
mcLevelText.txtLevel.text = _local1;
mcMessage = newClip("LevelMessage", CENTER_X, CENTER_Y);
mcMessage.gotoAndStop(levelMsg);
}
function hideNewLevel() {
mcLevelText.removeMovieClip();
mcMessage.removeMovieClip();
}
function showScore() {
iface.txtScore.text = gameScore;
}
function showInstructions() {
clearTanks();
clearBullets();
removeBase();
removeInterface();
loadData();
instructions = newClip("Instructions", SCREEN_CENTER_X, SCREEN_CENTER_Y, INSTRUCTIONS_LEVEL);
if (saveData.gameLevel > 0) {
} else {
instructions.continueClip.gotoAndStop(2);
}
}
function hideInstructions() {
instructions.removeMovieClip();
}
function hideBonuses() {
bonuses.removeMovieClip();
}
function showBonuses() {
bonuses = newClip("Bonuses", CENTER_X, CENTER_Y, INSTRUCTIONS_LEVEL);
showScore();
updateUpgrades();
}
function addScore(iScoreBonus) {
levelScore = levelScore + int(iScoreBonus);
gameScore = gameScore + int(iScoreBonus);
}
function getDifficulty() {
instructions = newClip("Instructions", SCREEN_CENTER_X, SCREEN_CENTER_Y, INSTRUCTIONS_LEVEL);
instructions.gotoAndStop("difficulty");
}
function scaleScore(iScore) {
var _local1;
switch (gameDifficulty) {
case DIFFICULTY_EASY :
_local1 = int(iScore * 0.75);
break;
case DIFFICULTY_NORMAL :
_local1 = iScore;
break;
case DIFFICULTY_HARD :
_local1 = int(iScore * 1.25);
}
return(_local1);
}
function toggleSound() {
if (soundOn) {
iface.soundButtonClip.gotoAndStop(2);
soundOn = false;
stopAllSounds();
} else {
iface.soundButtonClip.gotoAndStop(1);
soundOn = true;
switch (gameState) {
case STATE_PLAY :
playMusic("LevelMusic");
return;
case STATE_BONUSES :
playMusic("BonusMusic");
return;
case STATE_STOP :
playMusic("MenuMusic");
}
}
}
function toggleQuality() {
if (highQuality) {
highQuality = false;
_root._quality = "LOW";
} else {
highQuality = true;
_root._quality = "HIGH";
}
}
function playSound(iSound) {
if (soundOn) {
sounds[iSound].start();
}
}
function playMusic(sMusic) {
if (soundOn) {
musicObj.gotoAndPlay(sMusic);
}
}
function getAngle(xPos, yPos) {
return((360 * Math.atan2(CENTER_Y - yPos, CENTER_X - xPos)) / (Math.PI*2));
}
function getRadians(xPos, yPos) {
return(Math.atan2(CENTER_Y - yPos, CENTER_X - xPos));
}
function reverseRadians(xPos, yPos) {
return(Math.atan2(yPos - CENTER_Y, xPos - CENTER_X));
}
function addMoney(iMoney) {
gameMoney = gameMoney + int(iMoney);
showMoney();
}
function showMoney() {
iface.sMoney = "$" + gameMoney;
}
function shake(iIntensity, iTime) {
shaking = true;
shakeIntensity = ((iIntensity > 20) ? 20 : (iIntensity));
timeStopShaking = getTimer() + iTime;
}
function getDistance(oObj1, oObj2) {
var _local2 = oObj1._x - oObj2._x;
var _local1 = oObj1._y - oObj2._y;
var _local3 = Math.sqrt((_local2 * _local2) + (_local1 * _local1));
return(_local3);
}
function setLevel() {
timeLimit = DEFAULT_LEVEL_TIME;
tankFireInterval = TANK_FIRE_INTERVAL * (1 - (0.0125 * gameLevel));
tankInterval = TANK_INTERVAL - (50 * gameLevel);
tanksLeft = 12;
var _local2 = true;
updateTanks();
switch (gameLevel) {
case 1 :
case 2 :
tankDistribution = [TANK_DISRUPTOR];
break;
case 3 :
case 4 :
tankDistribution = [TANK_DISRUPTOR, TANK_DISRUPTOR, TANK_DISRUPTOR, TANK_DISRUPTOR, TANK_MISSILE];
break;
case 5 :
case 6 :
tankDistribution = [TANK_DISRUPTOR, TANK_DISRUPTOR, TANK_DISRUPTOR, TANK_MISSILE, TANK_MISSILE, TANK_FIRE];
break;
case 7 :
case 8 :
case 9 :
case 10 :
tankDistribution = [TANK_DISRUPTOR, TANK_DISRUPTOR, TANK_DISRUPTOR, TANK_MISSILE, TANK_MISSILE, TANK_FIRE, TANK_FIRE, TANK_MEGA];
break;
case 11 :
case 12 :
case 13 :
case 14 :
case 15 :
case 16 :
case 17 :
case 18 :
case 19 :
case 20 :
tankDistribution = [TANK_DISRUPTOR, TANK_DISRUPTOR, TANK_MISSILE, TANK_FIRE, TANK_FIRE, TANK_MEGA];
break;
case 21 :
case 22 :
case 23 :
case 24 :
case 25 :
case 26 :
case 27 :
case 28 :
case 29 :
case 30 :
tankDistribution = [TANK_DISRUPTOR, TANK_DISRUPTOR, TANK_MISSILE, TANK_FIRE, TANK_FIRE, TANK_MEGA, TANK_MEGA];
break;
case 31 :
case 32 :
case 33 :
case 34 :
case 35 :
case 36 :
case 37 :
case 38 :
case 39 :
case 40 :
tankDistribution = [TANK_DISRUPTOR, TANK_MISSILE, TANK_MISSILE, TANK_FIRE, TANK_FIRE, TANK_MEGA, TANK_MEGA];
break;
case 41 :
case 42 :
case 43 :
case 44 :
case 45 :
case 46 :
case 47 :
case 48 :
case 49 :
case 50 :
tankDistribution = [TANK_DISRUPTOR, TANK_MISSILE, TANK_MISSILE, TANK_FIRE, TANK_FIRE, TANK_FIRE, TANK_MEGA, TANK_MEGA];
}
if (_local2) {
var _local1;
tankPattern = [];
_local1 = 0;
while (_local1 < tanksLeft) {
tankPattern.push(tankDistribution[int(Math.random() * tankDistribution.length)]);
_local1++;
}
}
currentTank = 0;
patLen = tankPattern.length;
}
function getNextTank() {
var _local1 = tankPattern[currentTank];
currentTank++;
if (currentTank == patLen) {
currentTank = 0;
}
return(_local1);
}
function addPowerup(iX, iY, iType, iValue) {
var _local1 = newClip("Powerup", iX, iY);
if (iType > 0) {
_local1.powerupType = iType;
_local1.powerupValue = iValue;
} else {
_local1.powerupType = int(Math.random() * maxPowerups);
}
powerups.push(_local1);
}
function checkPowerups() {
var _local3 = powerups.length - 1;
var _local1;
var _local2;
_local1 = _local3;
while (_local1 >= 0) {
_local2 = powerups[_local1];
if (_local2.hitTest(playerObj)) {
processPowerup(_local2);
removePowerup(_local1);
}
_local1--;
}
}
function removePowerup(iIndex) {
powerups[iIndex].removeMovieClip();
powerups.splice(iIndex, 1);
}
function destroyPowerups() {
var _local2 = powerups.length - 1;
var _local1;
_local1 = _local2;
while (_local1 >= 0) {
removePowerup(_local1);
_local1--;
}
}
function processPowerup(iObj) {
var _local1 = iObj.powerupType;
switch (_local1) {
case POWERUP_GENERIC :
break;
default :
}
}
function getPlayerName() {
highScoreEntry = newClip("HighScoreEntry", CENTER_X, CENTER_Y, INSTRUCTIONS_LEVEL);
}
function setHighScore(sName) {
var _local1 = new LoadVars();
_local1.phpScore = gameScore;
_local1.phpMoney = gameMoney;
_local1.phpName = sName;
_local1.phpLevel = gameLevel;
_local1.stoppem = "frumfroppen";
_local1.send("http://www.pitchmobile.com/shieldsubmit.php", "_blank", "POST");
var _local2 = SharedObject.getLocal("ShieldDefense");
_local2.clear();
}
function getDomain() {
var _local2;
var _local5;
var _local4;
var _local3;
var _local1;
_local2 = _url.indexOf("://") + 3;
_local5 = _url.indexOf("/", _local2);
_local1 = _url.substring(_local2, _local5);
_local4 = _local1.lastIndexOf(".") - 1;
_local3 = _local1.lastIndexOf(".", _local4) + 1;
_local1 = _local1.substring(_local3, _local1.length);
return(_local1);
}
function checkSecure() {
var _local1 = SKIP_SECURITY;
var _local2 = getDomain();
if (_local2 == SECURE_DOMAIN) {
_local1 = true;
}
return(_local1);
}
function tankBullet() {
var _local8 = tanks.length;
var _local4;
var _local7 = false;
_local4 = 0;
while (_local4 < _local8) {
if (tanks[_local4].firing && (tanks[_local4].alive)) {
_local7 = true;
}
_local4++;
}
if (_local7) {
var _local3 = -1;
while (_local3 == -1) {
_local3 = int(Math.random() * tanks.length);
if (tanks[_local3].alive && (tanks[_local3].firing)) {
var _local2 = tanks[_local3].tank.turret.shotpoint.getBounds(_root);
var _local5 = newBullet(_local2.xMin, _local2.yMin, tanks[_local3].bulletType);
if (tanks[_local3].tankType == TANK_FIRE) {
tanks[_local3].tank.turret.blast.play();
} else {
var _local6 = newClip("blast", _local2.xMin, _local2.yMin);
_local6._rotation = getAngle(_local2.xMin, _local2.yMin);
}
_local5.reflected = false;
_local5._rotation = getAngle(_local2.xMin, _local2.yMin);
} else {
_local3 = -1;
}
}
}
}
function newBullet(xPos, yPos, iType) {
var _local1 = newClip("Bullet", xPos, yPos);
_local1.dir = getRadians(xPos, yPos);
_local1.speed = bulletTypes[iType].speed;
_local1.damage = bulletTypes[iType].strength * (1 + (0.1 * (gameLevel - 1)));
_local1.alive = true;
_local1.bulletType = iType;
bullets.push(_local1);
bulletCount++;
_local1.bullet.gotoAndStop(iType + 1);
var _local3 = int(Math.random() * bulletTypes[iType].sounds.length);
playSound(bulletTypes[iType].sounds[_local3]);
return(_local1);
}
function removeBullet(ident) {
var _local2 = bullets.length;
var _local1;
_local1 = 0;
while (_local1 < _local2) {
if (bullets[_local1].mcName == ident) {
bullets[_local1].removeMovieClip();
bullets.splice(_local1, 1);
bulletCount--;
}
_local1++;
}
}
function destroyBullet(oBullet) {
oBullet.play();
oBullet.alive = false;
}
function clearBullets() {
var _local2 = bullets.length - 1;
var _local1;
_local1 = _local2;
while (_local1 >= 0) {
removeBullet(bullets[_local1].mcName);
_local1--;
}
hasSticky = false;
}
function moveBullets() {
var _local7 = bullets.length - 1;
var _local6;
var _local3;
var _local2;
var _local4;
var _local1;
_local6 = _local7;
while (_local6 >= 0) {
_local1 = bullets[_local6];
if (_local1.alive) {
if (_local1.stuck) {
stuckPoint.x = shield.stuckPoint._x;
stuckPoint.y = shield.stuckPoint._y;
shield.localToGlobal(stuckPoint);
_local1._x = stuckPoint.x;
_local1._y = stuckPoint.y;
_local1._rotation = shield._rotation;
} else {
_local1._x = _local1._x + (Math.cos(_local1.dir) * _local1.speed);
_local1._y = _local1._y + (Math.sin(_local1.dir) * _local1.speed);
if ((((_local1._x < (START_X - _local1._width)) || (_local1._x > (END_X + _local1._width))) || (_local1._y < (START_Y - _local1._width))) || (_local1._y > (END_Y + _local1._width))) {
removeBullet(_local1.mcName);
}
}
}
if (((!_local1.bounce) && (_local1.alive)) && (shield.hitTest(_local1._x, _local1._y, true))) {
_local1.speed = _local1.speed * (1 + (0.25 * bounceLevel));
_local1.damage = _local1.damage * Math.pow(2, infuserLevel);
if (hasStickyUpgrade && (!hasSticky)) {
_local1.stuck = true;
hasSticky = true;
stuckBullet = _local1;
_local1.bounce = true;
stuckPoint.x = shield.stuckPoint._x;
stuckPoint.y = shield.stuckPoint._y;
shield.localToGlobal(stuckPoint);
_local1._x = stuckPoint.x;
_local1._y = stuckPoint.y;
_local1._rotation = shield._rotation;
} else {
bulletAng = shield._rotation + (shield._rotation - (_local1._rotation + 180));
_local1.dir = bulletAng * (Math.PI/180);
_local1._rotation = bulletAng;
_local1.bounce = true;
}
}
if (_local1.alive && (base.hitTest(_local1._x, _local1._y, true))) {
damageBase(_local1.damage, _local1.bulletType);
destroyBullet(_local1);
}
if (_local1.bounce && (_local1.alive)) {
var _local5 = false;
_local4 = tanks.length - 1;
_local3 = _local4;
while (_local3 >= 0) {
if (tanks[_local3].alive && (inDeadzone(tanks[_local3], _local1))) {
if (hasExploder) {
_local5 = true;
} else {
damageTank(tanks[_local3], _local1.damage);
destroyBullet(_local1);
}
}
_local3--;
}
if (_local5) {
_local2 = _local4;
while (_local2 >= 0) {
if ((getDistance(_local1, tanks[_local2]) <= 75) && (tanks[_local2].alive)) {
damageTank(tanks[_local2], _local1.damage);
}
_local2--;
}
destroyBullet(_local1);
}
}
_local6--;
}
}
function newTank() {
var _local1 = -1;
while (_local1 == -1) {
_local1 = int(Math.random() * 8);
if (_local1 == lastSpawnpoint) {
_local1 = -1;
}
}
lastSpawnpoint = _local1;
var _local2 = newClip("Tank", startPos[_local1][0], startPos[_local1][1]);
var _local3 = getNextTank();
_local2.tankType = _local3;
_local2.speed = tankTypes[_local3].speed * (1 + (0.05 * (gameLevel - 1)));
_local2.dx = startSpeed[_local1][0] * _local2.speed;
_local2.dy = startSpeed[_local1][1] * _local2.speed;
_local2.dir = _local2._rotation;
_local2.newDir = _local2._rotation;
_local2.alive = true;
_local2.activated = false;
_local2.firing = false;
_local2.money = int(tankTypes[_local3].money * (1 + (0.1 * (gameLevel - 1))));
_local2.maxHP = int(tankTypes[_local3].hp * Math.pow(1.21 + (0.0025 * (50 - gameLevel)), gameLevel - 1));
_local2.score = int(tankTypes[_local3].score * Math.pow(1.1, gameLevel - 1));
_local2.HP = _local2.maxHP;
_local2.bulletType = tankTypes[_local3].bullet;
_local2.pushback = tankTypes[_local3].pushback;
_local2.tank.gotoAndStop(_local3 + 1);
_local2.deadzone = _local2._width / 1.7;
addHealth(_local2, TANK_HEALTHBAR_OFFSET_X, tankTypes[_local3].offset);
orientTank(_local2, true);
tanks.push(_local2);
tankCount++;
}
function moveTanks() {
var _local4 = 0;
var _local3 = 0;
var _local5 = tanks.length;
_local4 = 0;
while (_local4 < _local5) {
var _local2 = tanks[_local4];
if (_local2.alive) {
if (_local2.turning) {
if (_local2.clockwise) {
_local2._rotation = _local2._rotation + 5;
_local2.dir = _local2.dir + 5;
if (_local2.dir >= 360) {
_local2.dir = 0;
}
} else {
_local2._rotation = _local2._rotation - 5;
_local2.dir = _local2.dir - 5;
if (_local2.dir < 0) {
_local2.dir = 355;
}
}
if (_local2.dir == _local2.newDir) {
_local2.turning = false;
}
} else {
_local2._x = _local2._x + _local2.dx;
_local2._y = _local2._y + _local2.dy;
if (_local2.activated) {
if (((_local2._x < (START_X + TANK_BUFFER)) && (_local2.dx < 0)) || ((_local2._x > (END_X - TANK_BUFFER)) && (_local2.dx > 0))) {
_local2._x = _local2._x - _local2.dx;
_local2.dx = 0;
_local2.dy = _local2.speed * ((_local2._y < SCREEN_CENTER_Y) ? 1 : -1);
orientTank(_local2);
} else if (((_local2._y < (START_Y + TANK_BUFFER)) && (_local2.dy < 0)) || ((_local2._y > (END_Y - TANK_BUFFER)) && (_local2.dy > 0))) {
_local2._y = _local2._y - _local2.dy;
_local2.dy = 0;
_local2.dx = _local2.speed * ((_local2._x < SCREEN_CENTER_X) ? 1 : -1);
orientTank(_local2);
}
}
_local3 = 0;
while (_local3 < _local5) {
if (((_local3 != _local4) && (_local2.hitTest(tanks[_local3]))) && (tanks[_local3].alive)) {
if (_local2.activated && (tanks[_local3].activated)) {
_local2._x = _local2._x - (_local2.dx * _local2.pushback);
_local2._y = _local2._y - (_local2.dy * _local2.pushback);
_local2.dx = _local2.dx * -1;
_local2.dy = _local2.dy * -1;
orientTank(_local2);
} else if ((!_local2.activated) && (tanks[_local3].activated)) {
_local2._x = _local2._x - (_local2.dx * _local2.pushback);
_local2._y = _local2._y - (_local2.dy * _local2.pushback);
} else if ((!_local2.activated) && (!tanks[_local3].activated)) {
_local2._x = _local2._x - _local2.dx;
_local2._y = _local2._y - _local2.dy;
}
}
_local3++;
}
if (((((!_local2.firing) && (_local2._x >= START_X)) && (_local2._x <= END_X)) && (_local2._y >= START_Y)) && (_local2._y <= END_Y)) {
_local2.firing = true;
}
if (((((!_local2.activated) && (_local2._x >= (START_X + TANK_BUFFER))) && (_local2._x <= (END_X - TANK_BUFFER))) && (_local2._y >= (START_Y + TANK_BUFFER))) && (_local2._y <= (END_Y - TANK_BUFFER))) {
_local2.activated = true;
}
}
_local2.tank.turret._rotation = _root.getAngle(_local2._x, _local2._y) - _local2.dir;
}
_local4++;
}
}
function removeTank(ident) {
var _local2 = tanks.length;
var _local1;
_local1 = 0;
while (_local1 < _local2) {
if (tanks[_local1].mcName == ident) {
removeHealth(tanks[_local1]);
tanks[_local1].removeMovieClip();
tanks.splice(_local1, 1);
tankCount--;
}
_local1++;
}
}
function destroyTank(oTank) {
shake(2, 250);
removeHealth(oTank);
oTank.play();
oTank.alive = false;
addScore(oTank.score);
addMoney(oTank.money);
tanksLeft--;
updateTanks();
}
function clearTanks() {
var _local1 = 0;
var _local2 = tanks.length - 1;
_local1 = _local2;
while (_local1 >= 0) {
removeTank(tanks[_local1].mcName);
_local1--;
}
}
function orientTank(oTank, bInstant) {
var _local3 = oTank.dx;
var _local4 = oTank.dy;
var _local2 = 0;
if (_local3 == 0) {
if (_local4 > 0) {
_local2 = 90;
} else {
_local2 = 270;
}
} else if (_local3 > 0) {
_local2 = 0;
} else {
_local2 = 180;
}
if (oTank.dir != _local2) {
oTank.newDir = _local2;
if (((oTank.dir + 180) % 360) > _local2) {
oTank.clockwise = true;
} else {
oTank.clockwise = false;
}
if (bInstant) {
oTank.turning = false;
oTank.dir = oTank.newDir;
oTank._rotation = oTank.dir;
} else {
oTank.turning = true;
}
}
}
function damageTank(oTank, iDamage) {
oTank.HP = oTank.HP - iDamage;
if (oTank.HP <= 0) {
var _local2 = int(Math.random() * tankTypes[oTank.tankType].explosionSounds.length);
playSound(tankTypes[oTank.tankType].explosionSounds[_local2]);
destroyTank(oTank);
} else {
var _local2 = int(Math.random() * tankTypes[oTank.tankType].impactSounds.length);
playSound(tankTypes[oTank.tankType].impactSounds[_local2]);
updateHealth(oTank);
}
}
function inDeadzone(oTank, oObj) {
var _local2 = oTank._x - oObj._x;
var _local1 = oTank._y - oObj._y;
var _local4 = Math.sqrt((_local2 * _local2) + (_local1 * _local1));
return(((_local4 <= oTank.deadzone) ? true : false));
}
function updateTanks() {
iface.tanksLeft = (tanksLeft + "/") + TANKS_PER_LEVEL;
if (tanksLeft <= 0) {
endLevel();
}
}
function addHealth(oObj, xOffset, yOffset, iColor) {
var _local1 = newClip("HealthBar", oObj._x, oObj._y);
_local1.bar._x = _local1.bar._x + xOffset;
_local1.bar._y = _local1.bar._y + yOffset;
_local1.bar.bar.gotoAndStop(iColor + 1);
_local1.attachedObj = oObj;
_local1.attachedName = oObj.mcName;
healthbars.push(_local1);
}
function moveHealth() {
var _local2 = healthbars.length;
var _local1;
_local1 = 0;
while (_local1 < _local2) {
healthbars[_local1]._x = healthbars[_local1].attachedObj._x;
healthbars[_local1]._y = healthbars[_local1].attachedObj._y;
_local1++;
}
}
function removeHealth(oObj) {
var _local2 = healthbars.length;
var _local1;
_local1 = 0;
while (_local1 < _local2) {
if (healthbars[_local1].attachedName == oObj.mcName) {
healthbars[_local1].removeMovieClip();
healthbars.splice(_local1, 1);
}
_local1++;
}
}
function clearHealth() {
var _local2 = healthbars.length - 1;
var _local1;
_local1 = _local2;
while (_local1 >= 0) {
healthbars[_local1].removeMovieClip();
healthbars.splice(_local1, 1);
_local1--;
}
}
function updateHealth(oObj) {
var _local4 = healthbars.length;
var _local1;
_local1 = 0;
while (_local1 < _local4) {
if (healthbars[_local1].attachedName == oObj.mcName) {
var _local3 = healthbars[_local1].bar;
_local3.bar._xscale = ((oObj.HP < 0) ? 0 : ((oObj.HP / oObj.maxHP) * 100));
}
_local1++;
}
}
function setupBase(bLoad) {
shieldZone = newClip("ShieldZone", CENTER_X, CENTER_Y);
shield = newClip("Shield", CENTER_X, CENTER_Y);
base = newClip("Base", CENTER_X, CENTER_Y);
baseEnergy = new Object();
baseEnergy._x = base._x;
baseEnergy._y = base._y;
addHealth(base, 0, BASE_HEALTH_OFFSET_Y);
if (bLoad) {
baseInterest = saveData.baseInterest;
bounceLevel = saveData.bounceLevel;
infuserLevel = saveData.infuserLevel;
structureLevel = saveData.structureLevel;
staticLevel = saveData.staticLevel;
kitsAvailable = saveData.kitsAvailable;
hasStickyUpgrade = saveData.hasStickyUpgrade;
hasStaticUpgrade = saveData.hasStaticUpgrade;
if (hasStaticUpgrade) {
addHealth(baseEnergy, 0, BASE_ENERGY_OFFSET_Y, HEALTHBAR_RED);
}
base.maxHP = saveData.baseMaxHP;
base.HP = saveData.baseHP;
baseEnergy.maxHP = saveData.baseEnergyMaxHP;
baseEnergy.HP = saveData.baseEnergyHP;
bonusPoints = saveData.bonusPoints;
hasDisruptorDamp = saveData.hasDisruptorDamp;
hasMissileDamp = saveData.hasMissileDamp;
hasFireballDamp = saveData.hasFireballDamp;
hasShellDamp = saveData.hasShellDamp;
hasExploder = saveData.hasExploder;
} else {
baseInterest = BASE_INTEREST;
bounceLevel = 0;
infuserLevel = 0;
structureLevel = 0;
staticLevel = 0;
kitsAvailable = 0;
hasStickyUpgrade = false;
hasStaticUpgrade = false;
base.maxHP = BASE_MAX_HP;
base.HP = base.maxHP;
baseEnergy.maxHP = BASE_MAX_ENERGY;
baseEnergy.HP = baseEnergy.maxHP;
bonusPoints = 0;
hasDisruptorDamp = false;
hasMissileDamp = false;
hasFireballDamp = false;
hasShellDamp = false;
hasExploder = false;
}
updateBase();
}
function removeBase() {
shield.removeMovieClip();
removeHealth(base);
removeHealth(baseEnergy);
base.removeMovieClip();
shieldZone.removeMovieClip();
}
function damageBase(iDamage, iType) {
var _local1 = int(iDamage);
if (hasStaticUpgrade) {
if (_local1 > baseEnergy.HP) {
_local1 = _local1 - baseEnergy.HP;
baseEnergy.HP = 0;
} else {
baseEnergy.HP = baseEnergy.HP - _local1;
var _local2 = int(Math.random() * baseImpactSounds.length);
playSound(baseImpactSounds[_local2]);
_local1 = 0;
}
}
switch (iType) {
case BULLET_DISRUPTOR :
_local1 = _local1 * (hasDisruptorDamp ? 0.8 : 1);
break;
case BULLET_MISSILE :
_local1 = _local1 * (hasMissileDamp ? 0.8 : 1);
break;
case BULLET_FIREBALL :
_local1 = _local1 * (hasFireballDamp ? 0.8 : 1);
break;
case BULLET_SHELL :
_local1 = _local1 * (hasShellDamp ? 0.8 : 1);
}
_local1 = int(_local1);
if (_local1 > 0) {
playSound(SOUND_EXPLOSION);
shake(_local1 / 2, 500);
base.HP = base.HP - _local1;
if (base.HP <= 0) {
base.HP = 0;
endGame();
}
}
updateBase();
}
function updateBase() {
if (base.HP > base.maxHP) {
base.HP = base.maxHP;
}
iface.base = (base.HP + "/") + base.maxHP;
iface.interestRate = baseInterest + "%";
iface.kits = "x" + kitsAvailable;
iface.energy = (baseEnergy.HP + "/") + baseEnergy.maxHP;
base.gotoAndStop(5 - int((base.HP / base.maxHP) * 5));
updateHealth(base);
updateHealth(baseEnergy);
}
function updateUpgrades() {
if ((gameMoney < BASE_REPAIR_COST) || (base.HP >= base.maxHP)) {
bonuses.repairClip.gotoAndStop(2);
} else {
bonuses.repairClip.gotoAndStop(1);
}
var _local1 = upgradeCost(BASE_UPGRADE_COST, structureLevel, BASE_STRUCTURE_SCALE);
bonuses.upgradeClip.gotoAndStop(((gameMoney < _local1) ? 2 : 1));
bonuses.upgradeClip.clip.cost = "Cost: $" + _local1;
if (hasStickyUpgrade) {
bonuses.stickyClip.gotoAndStop(3);
} else if (gameMoney < BASE_STICKY_COST) {
bonuses.stickyClip.gotoAndStop(2);
} else {
bonuses.stickyClip.gotoAndStop(1);
}
var _local3 = upgradeCost(BASE_ENERGY_COST, staticLevel, BASE_STATIC_SCALE);
if (hasStaticUpgrade) {
bonuses.staticClip.gotoAndStop(3);
bonuses.energyClip.gotoAndStop(((gameMoney < _local3) ? 2 : 1));
} else if (gameMoney < BASE_STATIC_COST) {
bonuses.staticClip.gotoAndStop(2);
bonuses.energyClip.gotoAndStop(2);
} else {
bonuses.staticClip.gotoAndStop(1);
bonuses.energyClip.gotoAndStop(2);
}
bonuses.energyClip.clip.cost = "Cost: $" + _local3;
var _local4 = upgradeCost(BASE_BOUNCE_COST, bounceLevel, BASE_BOUNCE_SCALE);
if (bounceLevel >= BASE_BOUNCE_MAXIMUM) {
bonuses.bounceClip.gotoAndStop(3);
bonuses.bounceClip.bounceText.gotoAndStop(2);
} else if (gameMoney < _local4) {
bonuses.bounceClip.gotoAndStop(2);
} else {
bonuses.bounceClip.gotoAndStop(1);
}
bonuses.bounceClip.bounceText.cost = "Cost: $" + _local4;
bonuses.bounceClip.bounceText.bounceLevel = "Level: " + bounceLevel;
var _local2 = upgradeCost(BASE_INFUSER_COST, infuserLevel, BASE_INFUSER_SCALE);
if (infuserLevel >= BASE_INFUSER_MAXIMUM) {
bonuses.infuserClip.gotoAndStop(3);
bonuses.infuserClip.infuserText.gotoAndStop(2);
} else if (gameMoney < _local2) {
bonuses.infuserClip.gotoAndStop(2);
} else {
bonuses.infuserClip.gotoAndStop(1);
}
bonuses.infuserClip.infuserText.cost = "Cost: $" + _local2;
bonuses.infuserClip.infuserText.infuserLevel = "Level: " + infuserLevel;
if ((kitsAvailable >= BASE_KITS_MAXIMUM) || (gameMoney < BASE_KITS_COST)) {
bonuses.kitClip.gotoAndStop(2);
} else {
bonuses.kitClip.gotoAndStop(1);
}
if (hasDisruptorDamp) {
bonuses.disruptorClip.gotoAndStop(3);
} else if (bonusPoints < 1) {
bonuses.disruptorClip.gotoAndStop(2);
} else {
bonuses.disruptorClip.gotoAndStop(1);
}
if (hasMissileDamp) {
bonuses.missileClip.gotoAndStop(3);
} else if (bonusPoints < 1) {
bonuses.missileClip.gotoAndStop(2);
} else {
bonuses.missileClip.gotoAndStop(1);
}
if (hasFireballDamp) {
bonuses.fireballClip.gotoAndStop(3);
} else if (bonusPoints < 1) {
bonuses.fireballClip.gotoAndStop(2);
} else {
bonuses.fireballClip.gotoAndStop(1);
}
if (hasShellDamp) {
bonuses.shellClip.gotoAndStop(3);
} else if (bonusPoints < 1) {
bonuses.shellClip.gotoAndStop(2);
} else {
bonuses.shellClip.gotoAndStop(1);
}
if (hasExploder) {
bonuses.exploderClip.gotoAndStop(3);
} else if (bonusPoints < 3) {
bonuses.exploderClip.gotoAndStop(2);
} else {
bonuses.exploderClip.gotoAndStop(1);
}
if (bonusPoints < 1) {
bonuses.interestClip.gotoAndStop(2);
} else {
bonuses.interestClip.gotoAndStop(1);
}
bonuses.pointsClip.gotoAndStop(bonusPoints + 1);
if (bonusPoints > 0) {
bonuses.bonusButtonClip.gotoAndStop(1);
} else {
bonuses.bonusButtonClip.gotoAndStop(2);
}
}
function buyUpgrade(iUpgrade) {
switch (iUpgrade) {
case UPGRADE_REPAIR :
addMoney(-BASE_REPAIR_COST);
base.HP = base.HP + 25;
updateBase();
break;
case UPGRADE_UPGRADE :
addMoney(-upgradeCost(BASE_UPGRADE_COST, structureLevel, BASE_STRUCTURE_SCALE));
structureLevel++;
base.maxHP = base.maxHP + 25;
base.HP = base.HP + 25;
updateBase();
break;
case UPGRADE_ENERGY :
addMoney(-upgradeCost(BASE_ENERGY_COST, staticLevel, BASE_STATIC_SCALE));
staticLevel++;
baseEnergy.maxHP = baseEnergy.maxHP + 15;
baseEnergy.HP = baseEnergy.HP + 15;
updateBase();
break;
case UPGRADE_STICKY :
addMoney(-BASE_STICKY_COST);
hasStickyUpgrade = true;
updateBase();
break;
case UPGRADE_BOUNCE :
addMoney(-upgradeCost(BASE_BOUNCE_COST, bounceLevel, BASE_BOUNCE_SCALE));
bounceLevel++;
updateBase();
break;
case UPGRADE_KIT :
addMoney(-BASE_KITS_COST);
kitsAvailable++;
updateBase();
break;
case UPGRADE_STATIC :
addMoney(-BASE_STATIC_COST);
hasStaticUpgrade = true;
addHealth(baseEnergy, 0, BASE_ENERGY_OFFSET_Y, HEALTHBAR_RED);
updateBase();
break;
case UPGRADE_INFUSER :
addMoney(-upgradeCost(BASE_INFUSER_COST, infuserLevel, BASE_INFUSER_SCALE));
infuserLevel++;
updateBase();
break;
case UPGRADE_DISRUPTOR_DAMP :
bonusPoints--;
hasDisruptorDamp = true;
break;
case UPGRADE_MISSILE_DAMP :
bonusPoints--;
hasMissileDamp = true;
break;
case UPGRADE_FIREBALL_DAMP :
bonusPoints--;
hasFireballDamp = true;
break;
case UPGRADE_SHELL_DAMP :
bonusPoints--;
hasShellDamp = true;
break;
case UPGRADE_EXPLODER :
bonusPoints = bonusPoints - 3;
hasExploder = true;
break;
case UPGRADE_INTEREST :
bonusPoints--;
baseInterest = baseInterest + 3;
updateBase();
}
var _local1 = int(Math.random() * upgradeSounds.length);
playSound(upgradeSounds[_local1]);
showMoney();
updateUpgrades();
}
function regenEnergy() {
var _local1 = int(baseEnergy.maxHP / 15);
baseEnergy.HP = baseEnergy.HP + _local1;
if (baseEnergy.HP > baseEnergy.maxHP) {
baseEnergy.HP = baseEnergy.maxHP;
}
updateBase();
}
function useRepairKit() {
if (((kitsAvailable > 0) && (base.HP < base.maxHP)) && (gameState == STATE_PLAY)) {
kitsAvailable--;
base.HP = base.HP + 25;
updateBase();
}
}
function upgradeCost(iBase, iLevel, iScale) {
var _local1 = iBase * Math.pow(iScale, iLevel);
return(int(_local1));
}
function saveGame() {
var _local1 = SharedObject.getLocal("ShieldDefense");
_local1.data.baseInterest = baseInterest;
_local1.data.bounceLevel = bounceLevel;
_local1.data.infuserLevel = infuserLevel;
_local1.data.structureLevel = structureLevel;
_local1.data.staticLevel = staticLevel;
_local1.data.kitsAvailable = kitsAvailable;
_local1.data.hasStickyUpgrade = hasStickyUpgrade;
_local1.data.hasStaticUpgrade = hasStaticUpgrade;
_local1.data.baseMaxHP = base.maxHP;
_local1.data.baseHP = base.HP;
_local1.data.baseEnergyMaxHP = baseEnergy.maxHP;
_local1.data.baseEnergyHP = baseEnergy.HP;
_local1.data.gameLevel = gameLevel;
_local1.data.gameMoney = gameMoney;
_local1.data.gameScore = gameScore;
_local1.data.tankFireInterval = tankFireInterval;
_local1.data.hasDisruptorDamp = hasDisruptorDamp;
_local1.data.hasMissileDamp = hasMissileDamp;
_local1.data.hasFireballDamp = hasFireballDamp;
_local1.data.hasShellDamp = hasShellDamp;
_local1.data.bonusPoints = bonusPoints;
_local1.data.hasExploder = hasExploder;
_local1.flush();
}
function loadData() {
var _local1 = SharedObject.getLocal("ShieldDefense");
saveData.baseInterest = _local1.data.baseInterest;
saveData.bounceLevel = _local1.data.bounceLevel;
saveData.infuserLevel = _local1.data.infuserLevel;
saveData.structureLevel = _local1.data.structureLevel;
saveData.staticLevel = _local1.data.staticLevel;
saveData.kitsAvailable = _local1.data.kitsAvailable;
saveData.hasStickyUpgrade = _local1.data.hasStickyUpgrade;
saveData.hasStaticUpgrade = _local1.data.hasStaticUpgrade;
saveData.baseMaxHP = _local1.data.baseMaxHP;
saveData.baseHP = _local1.data.baseHP;
saveData.baseEnergyMaxHP = _local1.data.baseEnergyMaxHP;
saveData.baseEnergyHP = _local1.data.baseEnergyHP;
saveData.gameLevel = _local1.data.gameLevel;
saveData.gameMoney = _local1.data.gameMoney;
saveData.gameScore = _local1.data.gameScore;
saveData.tankFireInterval = _local1.data.tankFireInterval;
saveData.hasDisruptorDamp = _local1.data.hasDisruptorDamp;
saveData.hasMissileDamp = _local1.data.hasMissileDamp;
saveData.hasFireballDamp = _local1.data.hasFireballDamp;
saveData.hasShellDamp = _local1.data.hasShellDamp;
saveData.bonusPoints = _local1.data.bonusPoints;
saveData.hasExploder = _local1.data.hasExploder;
}
BUILD_INTERFACE = "Interface";
START_X = 0;
END_X = 550;
START_Y = 0;
END_Y = 550;
CENTER_X = START_X + int((END_X - START_X) / 2);
CENTER_Y = START_Y + int((END_Y - START_Y) / 2);
STATE_STOP = 0;
STATE_NEWLEVEL = 1;
STATE_PLAY = 2;
STATE_PAUSE = 3;
STATE_BONUSES = 4;
gameState = STATE_STOP;
soundOn = true;
highQuality = true;
gameLevel = 0;
powerups = [];
SOUND_GAME_OVER = 0;
SOUND_EXPLOSION = 1;
SOUND_LEVEL_COMPLETE = 2;
SOUND_START_LEVEL = 3;
SOUND_POWERUP = 4;
SOUND_CASH = 5;
SOUND_WARNING = 6;
SOUND_SHOT = 7;
SOUND_TANK_EXPLOSION_1 = 8;
SOUND_TANK_EXPLOSION_2 = 9;
SOUND_TANK_EXPLOSION_3 = 10;
SOUND_TANK_EXPLOSION_BOSS = 11;
SOUND_DISRUPTOR_1 = 12;
SOUND_DISRUPTOR_2 = 13;
SOUND_MISSILE_1 = 14;
SOUND_FIREBALL_1 = 15;
SOUND_FIREBALL_2 = 16;
SOUND_IMPACT_1 = 17;
SOUND_IMPACT_2 = 18;
SOUND_IMPACT_3 = 19;
SOUND_SHELL_1 = 20;
SOUND_SHELL_2 = 21;
SOUND_SHELL_3 = 22;
SOUND_BUY_UPGRADE_1 = 23;
SOUND_BUY_UPGRADE_2 = 24;
soundNames = ["gameOverSound", "explosionSound", "levelCompleteSound", "startLevelSound", "powerupSound", "soundCoin", "warning", "shotSound", "tankExplosionSound", "tankExplosion1", "tankExplosion2", "bossTankExplosion", "Disruptor1", "Disruptor2", "Missile1", "Fireball1", "Fireball2", "impact1", "impact2", "impact3", "Shell1", "Shell2", "Shell3", "buyUpgrade1", "buyUpgrade2"];
sounds = [];
soundLen = soundNames.length;
sT = 0;
while (sT < soundLen) {
newSound = new Sound(_root);
newSound.attachSound(soundNames[sT]);
sounds.push(newSound);
sT++;
}
MUSIC_LEVEL = "LevelMusic";
MUSIC_BONUS = "BonusMusic";
musicObj = newClip("SoundLoader");
listener = new Object();
listener.onKeyDown = function () {
keyCode = Key.getCode();
switch (keyCode) {
case 32 :
getClick();
return;
case 38 :
return;
case 40 :
return;
case 37 :
return;
case 39 :
return;
case 13 :
return;
case ExtendedKey.SOFT1 :
return;
case ExtendedKey.SOFT2 :
return;
}
};
listener.onKeyUp = function () {
keyCode = Key.getCode();
keyAscii = Key.getAscii();
switch (keyCode) {
case 38 :
break;
case 40 :
break;
case 37 :
break;
case 39 :
break;
case 13 :
getClick();
break;
case ExtendedKey.SOFT1 :
break;
case ExtendedKey.SOFT2 :
break;
}
switch (keyAscii) {
case 82 :
case 114 :
useRepairKit();
return;
case 80 :
case 112 :
togglePauseState();
}
};
Key.addListener(listener);
onEnterFrame = gameLoop;
onMouseDown = getClick;
INTERFACE_LEVEL = 100000 /* 0x0186A0 */;
RESOURCE_LEVEL = 100001 /* 0x0186A1 */;
INSTRUCTIONS_LEVEL = 100008 /* 0x0186A8 */;
OFFSET_NEW_LEVEL = 50 * SCALE_PER;
DEFAULT_LEVEL_TIME = 90;
MAX_LEVELS = 50;
tankPattern = [];
tankDistribution = [];
powerupTypes = ["generic"];
POWERUP_GENERIC = 0;
SKIP_SECURITY = true;
SECURE_DOMAIN = "pitchmobile.com";
MAX_BULLETS = 10;
maxBullets = MAX_BULLETS;
bulletCount = 0;
bullets = [];
BULLET_DISRUPTOR = 0;
BULLET_MISSILE = 1;
BULLET_FIREBALL = 2;
BULLET_SHELL = 3;
bulletTypes = [{name:"Disruptor", strength:5, speed:5, sounds:[SOUND_DISRUPTOR_1, SOUND_DISRUPTOR_2]}, {name:"Missile", strength:12, speed:3, sounds:[SOUND_MISSILE_1]}, {name:"Fireball", strength:8, speed:4, sounds:[SOUND_FIREBALL_1, SOUND_FIREBALL_2]}, {name:"Shell", strength:3, speed:6, sounds:[SOUND_SHELL_1, SOUND_SHELL_2, SOUND_SHELL_3]}];
stuckPoint = new Object();
TANK_HEALTHBAR_OFFSET_X = 0;
TANK_HEALTHBAR_OFFSET_Y = -20;
TANK_BUFFER = 45;
MAX_TANKS = 5;
maxTanks = MAX_TANKS;
TANKS_PER_LEVEL = 12;
TANK_INTERVAL = 5000;
tankInterval = TANK_INTERVAL;
TANK_FIRE_INTERVAL = 2000;
tankFireInterval = TANK_FIRE_INTERVAL;
tanks = [];
tankCount = 0;
startPos = [[START_X + TANK_BUFFER, START_Y - TANK_BUFFER], [END_X - TANK_BUFFER, START_Y - TANK_BUFFER], [END_X + TANK_BUFFER, START_Y + TANK_BUFFER], [END_X + TANK_BUFFER, END_Y - TANK_BUFFER], [END_X - TANK_BUFFER, END_Y + TANK_BUFFER], [START_X + TANK_BUFFER, END_Y + TANK_BUFFER], [START_X - TANK_BUFFER, END_Y - TANK_BUFFER], [START_X - TANK_BUFFER, START_Y + TANK_BUFFER]];
startSpeed = [[0, 1], [0, 1], [-1, 0], [-1, 0], [0, -1], [0, -1], [1, 0], [1, 0]];
TANK_DISRUPTOR = 0;
TANK_MISSILE = 1;
TANK_FIRE = 2;
TANK_MEGA = 3;
tankTypes = [{name:"Disruptor", bullet:BULLET_DISRUPTOR, speed:1.25, hp:5, money:20, score:100, offset:-20, pushback:2, impactSounds:[SOUND_IMPACT_1, SOUND_IMPACT_2, SOUND_IMPACT_3], explosionSounds:[SOUND_TANK_EXPLOSION_1, SOUND_TANK_EXPLOSION_2, SOUND_TANK_EXPLOSION_3]}, {name:"Missile", bullet:BULLET_MISSILE, speed:0.75, hp:5, money:30, score:150, offset:-20, pushback:2, impactSounds:[SOUND_IMPACT_1, SOUND_IMPACT_2, SOUND_IMPACT_3], explosionSounds:[SOUND_TANK_EXPLOSION_1, SOUND_TANK_EXPLOSION_2, SOUND_TANK_EXPLOSION_3]}, {name:"Firetank", bullet:BULLET_FIREBALL, speed:1, hp:10, money:40, score:200, offset:-25, pushback:3, impactSounds:[SOUND_IMPACT_1, SOUND_IMPACT_2, SOUND_IMPACT_3], explosionSounds:[SOUND_TANK_EXPLOSION_1, SOUND_TANK_EXPLOSION_2, SOUND_TANK_EXPLOSION_3]}, {name:"MegaTank", bullet:BULLET_SHELL, speed:0.5, hp:15, money:50, score:250, offset:-25, pushback:4, impactSounds:[SOUND_IMPACT_1, SOUND_IMPACT_2, SOUND_IMPACT_3], explosionSounds:[SOUND_TANK_EXPLOSION_1, SOUND_TANK_EXPLOSION_2, SOUND_TANK_EXPLOSION_3]}];
HEALTHBAR_GREEN = 0;
HEALTHBAR_RED = 1;
healthbars = [];
BASE_REPAIR_COST = 50;
BASE_UPGRADE_COST = 300;
BASE_STICKY_COST = 1000;
BASE_BOUNCE_COST = 200;
BASE_ENERGY_COST = 1000;
BASE_KITS_COST = 125;
BASE_STATIC_COST = 2000;
BASE_INFUSER_COST = 250;
BASE_STRUCTURE_SCALE = 2;
BASE_STATIC_SCALE = 2;
BASE_BOUNCE_SCALE = 2;
BASE_INFUSER_SCALE = 2;
UPGRADE_REPAIR = 0;
UPGRADE_UPGRADE = 1;
UPGRADE_STICKY = 2;
UPGRADE_BOUNCE = 3;
UPGRADE_ENERGY = 4;
UPGRADE_INFUSER = 5;
UPGRADE_KIT = 6;
UPGRADE_STATIC = 7;
UPGRADE_DISRUPTOR_DAMP = 8;
UPGRADE_MISSILE_DAMP = 9;
UPGRADE_FIREBALL_DAMP = 10;
UPGRADE_SHELL_DAMP = 11;
UPGRADE_EXPLODER = 12;
UPGRADE_INTEREST = 13;
BASE_MAX_HP = 50;
BASE_MAX_ENERGY = 15;
BASE_HEALTH_OFFSET_Y = -25;
BASE_ENERGY_OFFSET_Y = -20;
BASE_BOUNCE_MAXIMUM = 10;
BASE_INFUSER_MAXIMUM = 10;
BASE_KITS_MAXIMUM = 9;
BASE_INTEREST = 5;
baseImpactSounds = [SOUND_IMPACT_1, SOUND_IMPACT_2, SOUND_IMPACT_3];
upgradeSounds = [SOUND_BUY_UPGRADE_1, SOUND_BUY_UPGRADE_2];
saveData = new Object();
Frame 4
gameState = STATE_STOP;
playMusic("MenuMusic");
if (checkSecure()) {
showInstructions();
securityChecked = true;
} else {
gotoAndStop (5);
}
stop();
Frame 5
nextLevel();
stop();
Frame 6
Frame 7
gotoAndStop ("nextLevelFrame");
stop();
Symbol 4 MovieClip [BigPoints] Frame 2
_root.playSound(_root.SOUND_COIN);
Symbol 4 MovieClip [BigPoints] Frame 30
this.removeMovieClip();
Symbol 16 MovieClip [Blast] Frame 6
this.removeMovieClip();
Symbol 23 MovieClip Frame 1
stop();
_global.totalBytes = _root.getBytesTotal();
this.onEnterFrame = function () {
var _local3 = 0;
var _local2 = 0;
_local3 = _root.getBytesLoaded();
_local2 = int((_local3 / totalBytes) * 100);
if (_local2 > 99) {
gotoAndPlay (2);
}
};
Symbol 23 MovieClip Frame 2
this.onEnterFrame = null;
Symbol 23 MovieClip Frame 144
_root.play();
stop();
Symbol 53 MovieClip Frame 1
stop();
Symbol 60 MovieClip Frame 1
stop();
Symbol 77 MovieClip [Tank] Frame 1
stop();
Symbol 77 MovieClip [Tank] Frame 17
_root.removeTank(this.mcName);
stop();
Symbol 82 MovieClip [Base] Frame 1
stop();
Symbol 101 MovieClip Frame 1
stop();
Symbol 112 MovieClip [Bullet] Frame 1
stop();
Symbol 112 MovieClip [Bullet] Frame 12
_root.removeBullet(this.mcName);
Symbol 119 MovieClip Frame 1
stop();
Symbol 121 Button
on (release) {
_root.toggleSound();
}
Symbol 125 MovieClip Frame 1
stop();
Symbol 128 MovieClip Frame 1
stop();
Symbol 129 Button
on (release) {
_root.toggleQuality();
}
Symbol 132 Button
on (release) {
_root.togglePauseState();
}
Symbol 136 Button
on (release) {
_root.useRepairKit();
}
Symbol 176 MovieClip [SoundLoader] Frame 1
stop();
Symbol 176 MovieClip [SoundLoader] Frame 10
stop();
Symbol 182 Button
on (release) {
_root.startGame(false);
}
Symbol 184 Button
on (release) {
this.gotoAndStop(2);
}
Symbol 186 Button
on (release) {
getURL ("http://www.pitchmobile.com/shieldscores.php", "_blank");
}
Symbol 195 Button
on (release) {
this.gotoAndStop(1);
}
Symbol 196 MovieClip [Instructions] Frame 1
stop();
Symbol 200 MovieClip Frame 1
stop();
Symbol 209 Button
on (release) {
_root.setHighScore(sName);
_root.showInstructions();
this.removeMovieClip();
}
Symbol 211 Button
on (release) {
_root.showInstructions();
this.removeMovieClip();
}
Symbol 215 MovieClip [LevelComplete] Frame 20
stop();
Symbol 218 Button
on (release) {
_root.play();
}
Symbol 220 Button
on (release) {
_parent.gotoAndStop(2);
}
Symbol 222 MovieClip Frame 1
stop();
Symbol 228 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_REPAIR);
}
Symbol 229 MovieClip Frame 1
stop();
Symbol 235 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_UPGRADE);
}
Symbol 236 MovieClip Frame 1
stop();
Symbol 244 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_STICKY);
}
Symbol 246 MovieClip Frame 1
stop();
Symbol 254 MovieClip Frame 1
stop();
Symbol 255 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_BOUNCE);
}
Symbol 261 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_KIT);
}
Symbol 262 MovieClip Frame 1
stop();
Symbol 268 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_ENERGY);
}
Symbol 269 MovieClip Frame 1
stop();
Symbol 276 MovieClip Frame 1
stop();
Symbol 277 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_INFUSER);
}
Symbol 287 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_STATIC);
}
Symbol 288 MovieClip Frame 1
stop();
Symbol 290 Button
on (release) {
gotoAndStop (1);
}
Symbol 301 MovieClip Frame 1
stop();
Symbol 305 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_DISRUPTOR_DAMP);
}
Symbol 306 MovieClip Frame 1
stop();
Symbol 310 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_MISSILE_DAMP);
}
Symbol 311 MovieClip Frame 1
stop();
Symbol 315 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_SHELL_DAMP);
}
Symbol 316 MovieClip Frame 1
stop();
Symbol 320 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_FIREBALL_DAMP);
}
Symbol 321 MovieClip Frame 1
stop();
Symbol 328 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_EXPLODER);
}
Symbol 329 MovieClip Frame 1
stop();
Symbol 335 Button
on (release) {
_root.buyUpgrade(_root.UPGRADE_INTEREST);
}
Symbol 336 MovieClip Frame 1
stop();
Symbol 337 MovieClip [Bonuses] Frame 1
_root.updateUpgrades();
stop();
Symbol 337 MovieClip [Bonuses] Frame 2
_root.updateUpgrades();