Frame 1
stop();
MochiAd.showPreGameAd({id:"eafead907d083235", res:"640x480"});
mochi.MochiServices.connect("eafead907d083235");
Frame 252
var score = 0;
var muted = false;
var gamemode = 0;
var selectedmap = 0;
var homepage = "http://www.flashninjaclan.com/qqq2_strategy_games.php";
var sound = new Sound(_root);
var hcm = new ContextMenu();
hcm.hideBuiltInItems();
_root.menu = hcm;
stop();
Instance of Symbol 157 MovieClip in Frame 252
on (release) {
getURL ("http://www.flashninjaclan.com", "_blank");
}
Instance of Symbol 162 MovieClip in Frame 252
on (release) {
getURL ("http://www.java-gaming.com", "_blank");
}
Frame 253
stop();
Frame 254
function playMode(n) {
_root.gamemode = n;
nextFrame();
}
stop();
map1.onRollOver = (map2.onRollOver = (map3.onRollOver = function () {
eval ("mc" + this._name).gotoAndStop(2);
}));
map1.onRollOut = (map2.onRollOut = (map3.onRollOut = function () {
eval ("mc" + this._name).gotoAndStop(1);
}));
map1.onPress = (map2.onPress = (map3.onPress = function () {
switch (this._name) {
case "map1" :
_root.selectedmap = 0;
break;
case "map2" :
_root.selectedmap = 1;
break;
case "map3" :
_root.selectedmap = 2;
}
nextFrame();
}));
Frame 256
function closeDialogs() {
if (imarker != null) {
itemMarkerCleanup();
}
overlay.dialogcancel.hide();
overlay.dialogremove.hide();
overlay.dialogenemy.hide();
overlay.dialoginfo.hide();
overlay.dialogitem.hide();
overlay.dialogreturn.hide();
}
function init() {
var _local3 = 5;
var _local8;
var _local7;
var _local4;
score = 0;
closeDialogs();
if (muted) {
overlay.btnMute.gotoAndStop(2);
}
map = attachMovie("mapcontainer", "mapcontainer", this.getNextHighestDepth());
map._x = (stageW - map._width) / 2;
map._y = -100;
map.swapDepths(overlay);
map.gotoAndStop(selectedmap + 1);
mapW = map._width;
mapH = map._height;
tilesW = tiles[0].length;
tilesH = tiles.length;
megamap = _root.createEmptyMovieClip("mmap", _root.getNextHighestDepth());
cursor = map.attachMovie("cursor", "cursor", _local3++);
mcstatics = map.createEmptyMovieClip("statics", _local3++);
mcenemies = map.createEmptyMovieClip("enemies", _local3++);
mcfriends = map.createEmptyMovieClip("friends", _local3++);
mcweapons = map.createEmptyMovieClip("weapons", _local3++);
_local8 = 0;
while (_local8 < tilesW) {
if (tiles[0][_local8] == 2) {
entryX = (_local8 * 50) + 25;
entryY = 1;
break;
}
_local8++;
}
_local3 = 0;
while (_local3 < 6) {
_local4 = overlay["item" + _local3];
_local4.id = _local3;
_local4.onRollOver = itemMarkerOver;
_local4.onRollOut = itemMarkerOut;
_local4.onPress = itemMarkerMove;
_local4.cacheAsBitmap = true;
overlay["price" + _local3].text = itemPrice[_local3];
_local3++;
}
_local7 = 0;
while (_local7 < tilesH) {
_local8 = 0;
while (_local8 < tilesW) {
_local4 = ((tiles[_local7][_local8] == 2) ? (megamap) : (minimap)).attachMovie("block", "b" + _local3, _local3++, {_x:_local8 * 50, _y:_local7 * 50});
if ((_local7 == (tilesH - 1)) && (tiles[_local7][_local8] == 2)) {
_local4 = map.attachMovie("mapgate", "mapgate", _local3++, {_x:(_local8 * 50) + 25, _y:(_local7 + 1) * 50});
_local4.gotoAndStop(((selectedmap == 2) ? 2 : 1));
}
if (tiles[_local7][_local8] == 3) {
_local4 = mcstatics.attachMovie("itemstatic", "is" + mcstatics.getNextHighestDepth(), mcstatics.getNextHighestDepth(), {_x:(_local8 * 50) + 25, _y:(_local7 * 50) + 25, x:_local8, y:_local7});
_local4.cacheAsBitmap = true;
if (selectedmap == 2) {
_local4.gotoAndStop(2);
}
_local4.onPress = function () {
if (overlay.dialogremove._visible || (paused)) {
return(undefined);
}
closeDialogs();
selectedStatic = this;
overlay.dialogremove.cost.text = "Cost: $" + staticRemovalCost.toString();
overlay.dialogremove.show();
};
_local4.onRollOver = function () {
cursor.hide();
this._alpha = 75;
};
_local4.onRollOut = function () {
cursor.show();
this._alpha = 100;
};
}
_local8++;
}
_local7++;
}
megamap.cacheAsBitmap = true;
megamap._alpha = 0;
overlay.map._width = 65;
overlay.map._height = 62;
minipos._x = -map._x;
minipos._y = -map._y;
minipos.onPress = function () {
minimoving = true;
this.startDrag(false, 0, 0, mapW - this._width, mapH - this._height);
};
minipos.onRelease = (minipos.onReleaseOutside = function () {
minimoving = false;
this.stopDrag();
});
if (gamemode == 1) {
(waveMax = 40);
_local3 = 0;
while (_local3 < waveMax) {
enemyHealth[_local3] = Math.floor(enemyHealth[_local3] * 0.6);
_local3++;
}
} else if (gamemode == 2) {
(waveMax = 50);
_local3 = 0;
while (_local3 < waveMax) {
enemyHealth[_local3] = Math.floor(enemyHealth[_local3] * 0.72);
_local3++;
}
} else if (gamemode == 3) {
waveMax = 1000;
_local3 = 0;
while (_local3 < 59) {
enemyHealth[_local3++] = enemyHealth[_local3++] * 0.9;
}
_local3 = 60;
while (_local3 < waveMax) {
enemyDisplay.push(enemyDisplay[_local3 - 60]);
enemyDelay.push(enemyDelay[_local3 - 60]);
enemySpeed.push(enemySpeed[_local3 - 1] + 0.02);
Math.floor(enemyHealth.push(enemyHealth[_local3 - 1] * 1.06));
Math.floor((enemyHealth[_local3 - 1] = enemyHealth[_local3 - 1] * 0.9));
Math.floor(enemyMoney.push(enemyMoney[_local3 - 1] * 1.03));
enemyDamage.push(enemyDamage[_local3 - 60] + 6);
_local3++;
}
}
changeBalance(0);
onEnterFrame = main;
overlay.btnNextWave.gotoAndStop(2);
}
function main() {
var _local3;
var _local2;
var _local5;
var _local4;
var _local1;
if (!minimoving) {
if (Key.isDown(65) || (_xmouse < 10)) {
map._x = (((map._x + mms) < 50) ? (map._x + mms) : 50);
minipos._x = -map._x;
} else if (Key.isDown(68) || (_xmouse > (stageW - 10))) {
map._x = (((map._x - mms) > ((stageW - mapW) + 50)) ? (map._x - mms) : ((stageW - mapW) + 50));
minipos._x = -map._x;
}
if (Key.isDown(87) || (_ymouse < 10)) {
map._y = (((map._y + mms) < 0) ? (map._y + mms) : 0);
minipos._y = -map._y;
} else if (Key.isDown(83) || (_ymouse > (stageH - 10))) {
map._y = (((map._y - mms) > ((stageH - mapH) - 75)) ? (map._y - mms) : ((stageH - mapH) - 75));
minipos._y = -map._y;
}
if (Key.isDown(32) && (imarker != null)) {
itemMarkerCleanup();
}
} else {
map._x = (-minipos._x) + 50;
map._y = -minipos._y;
}
tileX = Math.floor(map._xmouse / 50);
tileY = Math.floor(map._ymouse / 50);
cursor._x = tileX * 50;
cursor._y = tileY * 50;
cursor.gotoAndStop(((tiles[tileY][tileX] == 1) ? 1 : 2));
if (paused) {
return(undefined);
}
if (((waveLeft--) == 0) && (wave != waveMax)) {
nextWave();
}
waveSeconds = Math.floor(waveLeft / 30);
if (enemyMake > 0) {
if ((waveSkip--) < 0) {
spawnEnemy();
waveSkip = enemyDelay[wave];
}
}
if (waveTimeout > 0) {
if ((--waveTimeout) == 0) {
overlay.btnNextWave.gotoAndStop(2);
}
}
_local2 = 0;
while (_local2 < friends.length) {
if (friends[_local2].valueOf() == undefined) {
friends[_local2] = friends[friends.length - 1];
friends.pop();
}
_local1 = friends[_local2];
if (friends[_local2].waiting > 0) {
friends[_local2].waiting--;
}
if (_local1.working > 0) {
_local1.progress.bar._xscale = 100 - (100 * ((_local1.working--) / upgradeBuildDelay[_local1.id][_local1.level - 1]));
if (_local1.working == 0) {
_local1.progress.hide();
_local1.leveltxt._visible = true;
playSound(4);
}
}
_local2++;
}
_local2 = 0;
while (_local2 < enemies.length) {
if (enemies[_local2].health < 1) {
if ((!(--enemyLeft)) && (!enemyMake)) {
overlay.btnNextWave.gotoAndStop(2);
}
if (enemies[_local2] == selectedEnemy) {
overlay.dialogenemy.hide();
}
changeBalance(enemies[_local2].money);
score = score + enemies[_local2].healthInit;
enemies[_local2].mark.removeMovieClip();
enemies[_local2].gotoAndPlay(6);
enemies.splice(_local2, 1);
playSound(3);
if (((wave == waveMax) && (enemyLeft == 0)) && (enemyMake == 0)) {
gameOverAndGoto(8);
}
}
_local1 = enemies[_local2];
_local3 = _local1.speed;
if (_local1 == selectedEnemy) {
overlay.dialogenemy.health.text = (Math.floor(_local1.health) + "/") + Math.floor(_local1.healthInit);
}
if (_local1.poisoned > 0) {
_local1.poisoned--;
_local1.health = _local1.health - _local1.poisonedBy;
}
if (_local1.slowed > 0) {
_local1.slowed--;
_local3 = _local3 - (_local3 * _local1.slowedBy);
}
_local1.healthbar.bar._xscale = 100 * (_local1.health / _local1.healthInit);
_local5 = _local1._x + (_local1.dx * _local3);
_local4 = _local1._y + (_local1.dy * _local3);
if (!megamap.hitTest((25 * _local1.dx) + _local5, (25 * _local1.dy) + _local4, true)) {
if ((_local4 + (25 * _local1.dy)) > mapH) {
health = health - _local1.damage;
playSound(6);
_local5 = entryX;
_local4 = entryY;
_local1.dx = 0;
_local1.dy = 1;
} else {
_local5 = (Math.floor(_local5 / 50) * 50) + 25;
_local4 = (Math.floor(_local4 / 50) * 50) + 25;
_local1.dx = ((_local1.dx == 0) ? ((megamap.hitTest(_local5 - 55, _local4, true) ? -1 : 1)) : 0);
_local1.dy = ((_local1.dy == 0) ? ((megamap.hitTest(_local5, _local4 - 55, true) ? -1 : 1)) : 0);
_local1.mc._xscale = Math.abs(_local1.mc._xscale) * (-(_local1.dx + _local1.dy));
}
}
enemies[_local2]._x = (enemies[_local2].mark._x = _local5);
enemies[_local2]._y = (enemies[_local2].mark._y = _local4);
_local3 = 0;
while (_local3 < friends.length) {
_local1 = friends[_local3];
if ((_local1.working > 0) || (_local1.waiting > 0)) {
} else if (Math.sqrt(Math.pow(enemies[_local2]._x - _local1._x, 2) + Math.pow(enemies[_local2]._y - _local1._y, 2)) <= _local1.range) {
_local1.waiting = _local1.delay;
itemAttacks(_local1, enemies[_local2]);
playSound(5);
}
_local3++;
}
_local2++;
}
if (health <= 0) {
gameOverAndGoto(6);
}
}
function nextWave() {
playSound(7);
waveLeft = waveInit;
waveTimeout = 0;
enemyMake = enemyCount[wave++];
}
function spawnEnemy() {
var _local3 = mcenemies.attachMovie("enemy", "e" + mcenemies.getNextHighestDepth(), mcenemies.getNextHighestDepth(), {_x:entryX, _y:entryY});
_local3.mark = markers.attachMovie("enemymarker", "em" + _local3.getDepth(), markersi++, {_x:_local3._x, _y:_local3._y});
_local3.dx = 0;
_local3.dy = 1;
_local3.speed = enemySpeed[wave - 1];
_local3.money = enemyMoney[wave - 1];
_local3.damage = enemyDamage[wave - 1];
_local3.health = (_local3.healthInit = enemyHealth[wave - 1]);
_local3.gotoAndStop(enemyDesign[wave - 1]);
_local3.onPress = function () {
if (paused) {
return(undefined);
}
closeDialogs();
overlay.dialogenemy.show();
selectedEnemy = this;
this.filters = new Array(new flash.filters.GlowFilter(3394815, 0.8, 10, 10, 3, 3, false, false));
overlay.dialogenemy.money.text = this.money;
overlay.dialogenemy.speed.text = this.speed;
overlay.dialogenemy.damage.text = this.damage;
_root.onMouseDown = function () {
delete this.onMouseDown;
selectedEnemy.filters = new Array();
overlay.dialogenemy.hide();
};
};
enemyLeft++;
if ((--enemyMake) == 0) {
overlay.btnNextWave.gotoAndStop(2);
}
enemies.push(_local3);
}
function itemMarkerOver() {
if (paused) {
return(undefined);
}
var _local2 = overlay.dialoginfo;
_local2.name.text = itemNames[this.id];
_local2.description.text = itemDescriptions[this.id];
_local2.attack.text = itemAttack[this.id];
_local2.delay.text = itemDelay[this.id];
_local2.range.text = itemRange[this.id];
_local2.show();
}
function itemMarkerOut() {
overlay.dialoginfo.hide();
}
function itemMarkerMove() {
if ((this._alpha != 100) || (paused)) {
playSound(6);
return(undefined);
}
closeDialogs();
imarker.removeMovieClip();
imarker = _root.attachMovie("item", "im", _root.getNextHighestDepth(), {_x:-1000, _y:-1000});
imarker.startDrag(true);
imarker.id = this.id;
imarker.gotoAndStop(this.id + 1);
imarker.progress.hide();
imarker.leveltxt._visible = false;
imarker.rangemc._width = (imarker.rangemc._height = itemRange[this.id] * 2);
imarker.onMouseDown = itemInit;
overlay.dialogcancel.show();
}
function itemMarkerCleanup() {
imarker.removeMovieClip();
imarker = null;
overlay.dialogcancel.hide();
delete imarker.onMouseDown;
}
function itemInit() {
if ((tiles[tileY][tileX] != 1) || (_ymouse > 400)) {
return(undefined);
}
tiles[tileY][tileX] = 0;
var _local2 = mcfriends.attachMovie("item", "i" + mcfriends.getNextHighestDepth(), mcfriends.getNextHighestDepth(), {_x:(tileX * 50) + 25, _y:(tileY * 50) + 25});
_local2.mark = markers.attachMovie("itemmarker", "im" + _local2.getDepth(), markersi++, {_x:_local2._x, _y:_local2._y});
_local2.gotoAndStop(this.id + 1);
_local2.level = 0;
_local2.id = this.id;
_local2.attack = itemAttack[_local2.id];
_local2.delay = itemDelay[_local2.id];
_local2.range = itemRange[_local2.id];
_local2.working = (_local2.waiting = 0);
_local2.rangemc.hide();
_local2.leveltxt._visible = false;
_local2.hitarea.onRollOut = itemOut;
_local2.hitarea.onRollOver = itemOver;
_local2.hitarea.onPress = itemPressed;
friends.push(_local2);
itemNextLevel(_local2);
itemMarkerCleanup();
changeBalance(-itemPrice[_local2.id]);
}
function itemPressed() {
if (this._parent.working || (paused)) {
return(undefined);
}
closeDialogs();
var _local2 = overlay.dialogitem;
var _local4 = this._parent.id;
var _local3 = this._parent.level;
_local2.info = (itemNames[_local4] + " lv. ") + _local3;
_local2.attack = this._parent.attack;
_local2.delay = this._parent.delay;
_local2.range = this._parent.range;
_local2.pricelevel = ((_local3 != itemMaxLevels[_local4]) ? (upgradePrice[_local4][_local3]) : 0);
_local2.priceresale = upgradeResale[_local4][_local3 - 1];
if (_local3 < itemMaxLevels[_local4]) {
_local2.attacknext = upgradeAttack[_local4][_local3];
_local2.rangenext = upgradeRange[_local4][_local3];
_local2.delaynext = upgradeDelay[_local4][_local3];
} else {
_local2.attacknext = (_local2.rangenext = (_local2.delaynext = "max"));
}
selectedFriend = this._parent;
_local2.gotoAndStop(1);
_local2.show();
}
function itemOver() {
if (this._parent.working) {
return(undefined);
}
this._parent.rangemc.show();
cursor.hide();
}
function itemOut() {
if (this._parent.working) {
return(undefined);
}
this._parent.rangemc.hide();
cursor.show();
}
function itemAttacks(from, to) {
var _local4 = mcweapons.attachMovie("weapon", "mc" + mcweapons.getNextHighestDepth(), mcweapons.getNextHighestDepth(), {_x:from._x, _y:from._y, from:from, to:to, it:0.1});
_local4.onEnterFrame = function () {
if (paused) {
return(undefined);
}
if ((this.to.valueOf() == undefined) || (this.from.valueOf() == undefined)) {
delete this.onEnterFrame;
this.removeMovieClip();
return(undefined);
}
this._x = this.from._x + ((this.to._x - this.from._x) * this.it);
this._y = this.from._y + ((this.to._y - this.from._y) * this.it);
this.it = this.it + 0.2;
if (Math.floor(this.it) == 1) {
delete this.onEnterFrame;
this.to.health = this.to.health - this.from.attack;
this.to.collision.gotoAndPlay(2);
switch (this.from.id) {
case 1 :
var _local4 = mcweapons.attachMovie("multiple", "mc" + mcweapons.getNextHighestDepth(), mcweapons.getNextHighestDepth(), {_x:this.to._x, _y:this.to._y});
_local4.onEnterFrame = function () {
this._xscale = (this._yscale = this._yscale + 5);
this._alpha = this._alpha - 2;
if (this._xscale > 200) {
delete this.onEnterFrame;
this.removeMovieClip();
}
};
var _local2 = 0;
var _local3;
while (_local2 < enemies.length) {
_local3 = Math.sqrt(Math.pow(this._y - enemies[_local2]._y, 2) + Math.pow(this._x - enemies[_local2]._x, 2));
if ((_local3 < this.from.range) && (enemies[_local2] != this.to)) {
enemies[_local2].health = enemies[_local2].health - ((((this.from.range - _local3) / this.from.range) * this.from.attack) * 0.5);
}
_local2++;
}
break;
case 2 :
this.to.slowed = 90;
this.to.slowedBy = 0.5;
textEffect("slowed", this.to._x, this.to._y);
break;
case 3 :
this.to.poisoned = 150;
this.to.poisonedBy = this.from.attack / 600;
textEffect("poisoned", this.to._x, this.to._y);
break;
case 4 :
if (!((this.to.health < (this.to.healthInit / 2)) && ((Math.random() * 100) < (2 * (this.from.level + 1))))) {
break;
}
this.to.health = 0;
textEffect("instantdeath", this.to._x, this.to._y);
}
this.removeMovieClip();
}
};
}
function itemSell() {
selectedFriend.mark.removeMovieClip();
changeBalance(upgradeResale[selectedFriend.id][selectedFriend.level - 1]);
tiles[(selectedFriend._y - 25) / 50][(selectedFriend._x - 25) / 50] = 1;
selectedFriend.removeMovieClip();
closeDialogs();
playSound(1);
}
function itemNextLevel(o) {
if (o == undefined) {
o = selectedFriend;
}
if ((upgradePrice[o.id][o.level] > money) || (o.level > (itemMaxLevels[o.id] - 1))) {
playSound(6);
return(undefined);
}
changeBalance(-upgradePrice[o.id][o.level]);
o.attack = o.attack + upgradeAttack[o.id][o.level];
o.delay = o.delay - upgradeDelay[o.id][o.level];
o.range = o.range + upgradeRange[o.id][o.level];
o.rangemc._width = (o.rangemc._height = o.range * 2);
o.leveltxt.text = "lv. " + (o.level + 1);
o.progress.show();
o.itemOut();
o.leveltxt._visible = false;
o.working = upgradeBuildDelay[o.id][o.level++];
overlay.dialogitem.hide();
}
function changeBalance(n) {
money = money + n;
var _local1 = 0;
while (_local1 < 6) {
overlay["item" + _local1]._alpha = ((itemPrice[_local1] > money) ? 25 : 100);
_local1++;
}
}
function playSound(n) {
if (muted) {
return(undefined);
}
var _local1 = new Sound();
_local1.attachSound("sfx" + n);
_local1.start(0, 0);
}
function textEffect(s, x, y) {
var _local2 = mcweapons.attachMovie("texteffect", "t" + mcweapons.getNextHighestDepth(), mcweapons.getNextHighestDepth(), {_x:x, _y:y});
_local2.gotoAndStop(s);
_local2.onEnterFrame = function () {
this._alpha = this._alpha - 5;
this._xscale = (this._yscale = this._yscale + 2);
if (this._alpha < 1) {
delete this.onEnterFrame;
this.removeMovieClip();
}
};
}
function removeStatic() {
if (money < staticRemovalCost) {
playSound(6);
return(undefined);
}
tiles[selectedStatic.y][selectedStatic.x] = 1;
changeBalance(-staticRemovalCost);
overlay.dialogremove.hide();
playSound(1);
selectedStatic.onEnterFrame = function () {
this._xscale = (this._yscale = this._yscale - 10);
if (this._xscale < 10) {
delete this.onEnterFrame;
this.removeMovieClip();
}
};
}
function gameOverAndGoto(n) {
delete this.onEnterFrame;
overlay.removeMovieClip();
if (gamemode == 2) {
score = score * 2;
}
if (gamemode == 3) {
score = score * 5;
}
_quality = "HIGH";
gotoAndStop(n +251);
}
_root._quality = "MEDIUM";
stop();
MovieClip.prototype.show = function () {
this._visible = true;
};
MovieClip.prototype.hide = function () {
this._visible = false;
};
var enemyCount = [11, 11, 12, 12, 16, 12, 10, 12, 10, 8, 14, 15, 12, 12, 2, 14, 8, 12, 12, 12, 8, 12, 18, 10, 3, 8, 12, 18, 14, 8, 12, 14, 12, 12, 3, 12, 10, 12, 14, 12, 8, 12, 14, 16, 3, 10, 12, 14, 16, 6, 12, 12, 14, 16, 2, 12, 8, 12, 14, 16];
var enemyDelay = [35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35];
var enemyMoney = [6, 7, 8, 9, 9, 12, 15, 18, 20, 22, 25, 28, 30, 34, 200, 35, 40, 44, 50, 55, 58, 63, 68, 73, 400, 80, 90, 97, 107, 120, 130, 140, 150, 160, 650, 175, 185, 198, 212, 228, 243, 260, 278, 290, 1000, 310, 330, 350, 371, 391, 411, 431, 455, 477, 1200, 507, 557, 617, 670, 720];
var enemySpeed = [1.5, 1.5, 2, 2, 1.5, 2, 2.25, 2, 2, 4, 2.25, 2, 2.75, 2.25, 2, 2.75, 4.25, 2.25, 2.25, 2.5, 4.25, 2.25, 2, 2.75, 2, 4, 2.5, 2, 2.5, 3.75, 2.5, 2, 2.75, 2.5, 2, 2.5, 2.75, 3.25, 2, 2, 3.75, 2.5, 2.5, 2, 2, 2.75, 3, 3, 2.75, 4, 3, 3.2, 3.25, 2.5, 2.5, 3.5, 3, 2.75, 3, 3.25];
var enemyDamage = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 5, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7];
var enemyDesign = [1, 2, 3, 4, 1, 2, 3, 4, 5, 4, 3, 2, 1, 1, 2, 5, 3, 4, 1, 2, 3, 4, 5, 4, 3, 2, 1, 5, 1, 2, 3, 4, 4, 3, 2, 1, 5, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3, 2, 1, 4, 1, 2, 3, 4, 5, 4, 3, 3, 1, 5];
var enemyHealth = [32, 43, 57, 72, 88, 107, 128, 157, 188, 217, 261, 297, 350, 413, 1500, 575, 700, 815, 970, 1200, 1325, 1470, 1650, 1800, 3200, 1970, 2400, 2730, 3276, 3931, 3793, 4599, 5428, 6513, 20000, 7620, 8000, 8800, 9700, 10700, 11700, 12900, 13900, 14900, 40000, 15000, 17500, 19000, 22000, 24000, 26300, 29000, 32000, 35500, 120000, 40000, 46000, 52000, 58000, 64000];
var itemDescriptions = new Array("Basic damage ninja who just can give the pirate basic damage.", "This splash damage ninja who has the area effect can hit more than one at a time.", "Ninjas of this type shoot ice darts, freezing the pirates. When this happens, the effected enemy's speed will be decreased.", "This ninja shoots poison arrows at the pirates, which slowly decreases their health for a certain time.", "This ninja has the ability to kill a pirate instantly if the enemy's life is less than 50%.", "You can call this ninja \"Boss Ninja\" which is the terminator and has superior execution if upgraded to the max.");
var itemNames = new Array("Basic ninja", "Shuriken ninja", "Ice ninja", "Poision ninja", "Instant death ninja", "Ultimate ninja");
var itemAttack = new Array(10, 30, 35, 44, 10, 200);
var itemDelay = new Array(25, 41, 42, 40, 44, 60);
var itemRange = new Array(100, 95, 100, 100, 100, 160);
var itemPrice = new Array(100, 400, 600, 700, 900, 1100);
var itemMaxLevels = new Array(6, 6, 6, 6, 6, 6);
var tiles;
if (selectedmap == 0) {
tiles = [[0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 2, 2, 2, 2, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 3, 2, 1, 1, 0, 0, 0, 0, 1, 3, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 2, 2, 2, 1, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 2, 3, 1, 0, 0, 2, 1, 1, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 3, 2, 2, 2, 1, 1, 2, 1, 1, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0], [1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 2, 1, 0, 0, 0, 0], [1, 2, 3, 1, 1, 1, 3, 1, 1, 1, 1, 2, 0, 0, 2, 1, 0, 0, 0, 0], [1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 2, 1, 1, 0, 0, 0], [0, 1, 3, 1, 0, 0, 1, 1, 3, 1, 1, 1, 1, 1, 2, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0]];
} else if (selectedmap == 1) {
tiles = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 0, 0, 0], [0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 1, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 1, 1, 1], [0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 1, 1, 1], [0, 1, 1, 2, 3, 1, 3, 1, 1, 1, 1, 1, 1, 2, 0, 0, 2, 3, 1, 0], [0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 1, 1, 2, 0, 0, 0], [0, 0, 1, 1, 1, 1, 3, 1, 1, 3, 2, 0, 0, 2, 3, 1, 2, 0, 0, 0], [0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 3, 1, 2, 1, 1, 0], [0, 1, 1, 2, 1, 3, 1, 1, 1, 0, 0, 1, 3, 2, 1, 1, 2, 1, 1, 1], [0, 0, 0, 2, 1, 1, 1, 3, 1, 0, 0, 1, 1, 2, 2, 2, 2, 3, 1, 1], [0, 0, 0, 2, 2, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
} else if (selectedmap == 2) {
tiles = [[0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 2, 2, 2, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 0, 0, 0, 0], [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0], [0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 2, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 2, 0, 0, 0, 0], [0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0], [0, 1, 2, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 1, 2, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 1], [0, 1, 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0]];
}
var upgradeAttack = [[0, 5, 10, 10, 10, 10], [0, 25, 25, 30, 40, 50], [0, 30, 35, 35, 50, 60], [0, 30, 35, 35, 50, 70], [0, 10, 10, 15, 15, 15], [0, 100, 100, 100, 100, 125]];
var upgradePrice = [[0, 100, 150, 200, 300, 500], [0, 300, 500, 700, 900, 1100], [0, 700, 900, 1000, 1200, 1400], [0, 700, 800, 1200, 1300, 1500], [0, 800, 1000, 1100, 1300, 1500], [0, 1300, 1500, 1700, 1900, 2100]];
var upgradeRange = [[0, 5, 5, 10, 10, 10], [0, 5, 5, 10, 10, 15], [0, 2, 3, 5, 10, 10], [0, 5, 5, 10, 10, 20], [0, 5, 5, 5, 10, 15], [0, 5, 5, 10, 10, 20]];
var upgradeDelay = [[0, 2, 2, 2, 2, 5], [0, 4, 4, 4, 6, 8], [0, 4, 4, 4, 7, 7], [0, 4, 4, 4, 5, 8], [0, 6, 6, 6, 8, 10], [0, 5, 10, 10, 10, 10]];
var upgradeBuildDelay = [[40, 60, 80, 90, 100, 100], [40, 60, 80, 90, 100, 100], [40, 60, 80, 90, 100, 100], [40, 60, 80, 90, 100, 100], [40, 60, 80, 90, 100, 100], [40, 60, 80, 90, 100, 100]];
var upgradeResale = new Array(6);
var g;
var h;
var i = 0;
while (i < 6) {
upgradeResale[i] = new Array(itemMaxLevels[i]);
h = 0;
while (h < itemMaxLevels[i]) {
upgradeResale[i][h] = itemPrice[i];
g = 0;
while (g < h) {
upgradeResale[i][h] = upgradeResale[i][h] + upgradePrice[i][g];
g++;
}
upgradeResale[i][h] = Math.ceil(upgradeResale[i][h] / 1.2);
h++;
}
i++;
}
var paused = false;
var fps = 30;
var mms = 20;
var staticRemovalCost = 200;
var health = 50;
var money = 800;
var stageW = 640;
var stageH = 480;
var wave = 0;
var waveMax = 0;
var waveInit = 1800;
var waveLeft = waveInit;
var waveSkip = 0;
var waveTimeout = 0;
var waveSeconds = 0;
var selectedEnemy;
var selectedFriend;
var selectedStatic;
var enemyLeft = 0;
var enemyMake = 0;
var enemies = new Array();
var friends = new Array();
var mapW = 0;
var mapH = 0;
var tileX = 0;
var tileY = 0;
var tilesW = 0;
var tilesH = 0;
var entryX = 0;
var entryY = 5;
var cursor;
var megamap;
var imarker = null;
var toDelete;
var minimap = overlay.map.createEmptyMovieClip("minimap", 1);
var markers = overlay.map.createEmptyMovieClip("markers", 2);
var minipos = overlay.map.attachMovie("minioverlay", "mo", 3, {_width:stageW, _height:stageH - 75, _alpha:50});
var markersi = 1;
var minimoving = false;
var map;
var mcenemies;
var mcfriends;
var mcstatics;
var mcweapons;
overlay.btnNextWave.onPress = function () {
if (this._currentframe == 2) {
nextWave();
this.gotoAndStop(1);
changeBalance(waveSeconds * 2);
score = score + waveSeconds;
}
};
overlay.btnMainMenu.onPress = function () {
closeDialogs();
paused = true;
overlay.dialogreturn.show();
};
overlay.btnMute.onPress = function () {
if (this._currentframe == 1) {
this.nextFrame();
muted = true;
sound.setVolume(0);
} else {
this.prevFrame();
muted = false;
sound.setVolume(100);
}
};
init();
Frame 257
stop();
mochi.MochiScores.showLeaderboard({boardID:"867935bcd182bad3", score:_root.score});
stop();
Frame 258
stop();
stop();
Frame 259
stop();
mochi.MochiScores.showLeaderboard({boardID:"867935bcd182bad3", score:_root.score});
Frame 260
stop();
stop();
Frame 261
stop();
mochi.MochiScores.showLeaderboard({boardID:"867935bcd182bad3"});
Frame 262
_root.gotoAndStop("maingame");
Symbol 12 MovieClip [texteffect] Frame 1
stop();
Symbol 12 MovieClip [texteffect] Frame 2
stop();
Symbol 12 MovieClip [texteffect] Frame 3
stop();
Symbol 19 MovieClip [mapcontainer] Frame 1
stop();
Symbol 19 MovieClip [mapcontainer] Frame 2
stop();
Symbol 19 MovieClip [mapcontainer] Frame 3
stop();
Symbol 22 MovieClip [cursor] Frame 1
stop();
Symbol 22 MovieClip [cursor] Frame 2
stop();
Symbol 98 MovieClip [item] Frame 1
stop();
Symbol 98 MovieClip [item] Frame 2
stop();
Symbol 98 MovieClip [item] Frame 3
stop();
Symbol 98 MovieClip [item] Frame 4
stop();
Symbol 98 MovieClip [item] Frame 5
stop();
Symbol 98 MovieClip [item] Frame 6
stop();
Symbol 101 MovieClip [itemstatic] Frame 1
stop();
Symbol 101 MovieClip [itemstatic] Frame 2
stop();
Symbol 121 MovieClip [percikan] Frame 1
stop();
Symbol 136 MovieClip [enemy] Frame 1
stop();
Symbol 136 MovieClip [enemy] Frame 2
stop();
Symbol 136 MovieClip [enemy] Frame 3
stop();
Symbol 136 MovieClip [enemy] Frame 4
stop();
Symbol 136 MovieClip [enemy] Frame 5
stop();
Symbol 136 MovieClip [enemy] Frame 15
this.removeMovieClip();
Symbol 145 MovieClip [mapgate] Frame 1
stop();
Symbol 145 MovieClip [mapgate] Frame 2
stop();
Symbol 359 MovieClip [__Packages.mochi.MochiServices] Frame 0
class mochi.MochiServices
{
static var _id, _container, _clip, _sendChannelName, _rcvChannelName, __get__comChannelName, onError, _listenChannel, _rcvChannel, _loader, _loaderListener, _sendChannel;
function MochiServices () {
}
static function get id() {
return(_id);
}
static function get clip() {
return(_container);
}
static function get childClip() {
return(_clip);
}
static function getVersion() {
return("1.32");
}
static function allowDomains(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);
}
static function get isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function set comChannelName(val) {
if (val != undefined) {
if (val.length > 3) {
_sendChannelName = val + "_fromgame";
_rcvChannelName = val;
initComChannels();
}
}
//return(__get__comChannelName());
}
static function get connected() {
return(_connected);
}
static function connect(id, clip, onError) {
if ((!_connected) && (_clip == undefined)) {
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
}
if (onError != undefined) {
mochi.MochiServices.onError = onError;
} else if (mochi.MochiServices.onError == undefined) {
mochi.MochiServices.onError = function (errorCode) {
trace(errorCode);
};
}
}
static function disconnect() {
if (_connected || (_connecting)) {
_connecting = (_connected = false);
flush(true);
if (_clip != undefined) {
_clip.removeMovieClip();
delete _clip;
}
_listenChannel.close();
_rcvChannel.close();
}
}
static function init(id, clip) {
_id = id;
if (clip != undefined) {
_container = clip;
} else {
_container = _root;
}
loadCommunicator(id, _container);
}
static function loadCommunicator(id, clip) {
var _local2 = "_mochiservices_com_" + id;
if (_clip != null) {
return(_clip);
}
if (!isNetworkAvailable) {
return(null);
}
allowDomains(_gatewayURL);
_clip = clip.createEmptyMovieClip(_local2, 10336, false);
_loader = new MovieClipLoader();
if (_loaderListener.waitInterval != null) {
clearInterval(_loaderListener.waitInterval);
}
_loaderListener = {};
_loaderListener.onLoadError = function (target_mc, errorCode, httpStatus) {
trace("MochiServices could not load.");
mochi.MochiServices.disconnect();
mochi.MochiServices.onError.apply(null, [errorCode]);
};
_loaderListener.onLoadStart = function (target_mc) {
this.isLoading = true;
};
_loaderListener.startTime = getTimer();
_loaderListener.wait = function () {
if ((getTimer() - this.startTime) > 10000) {
if (!this.isLoading) {
mochi.MochiServices.disconnect();
mochi.MochiServices.onError.apply(null, ["IOError"]);
}
clearInterval(this.waitInterval);
}
};
_loaderListener.waitInterval = setInterval(_loaderListener, "wait", 1000);
_loader.addListener(_loaderListener);
_loader.loadClip(_gatewayURL, _clip);
_sendChannel = new LocalConnection();
_sendChannel._queue = [];
_rcvChannel = new LocalConnection();
_rcvChannel.allowDomain = function (d) {
return(true);
};
_rcvChannel.allowInsecureDomain = _rcvChannel.allowDomain;
_rcvChannel._nextcallbackID = 0;
_rcvChannel._callbacks = {};
listen();
return(_clip);
}
static function onStatus(infoObject) {
if (!(infoObject.level === "error")) {
} else {
_connected = false;
_listenChannel.connect(_listenChannelName);
}
}
static function listen() {
_listenChannel = new LocalConnection();
_listenChannel.handshake = function (args) {
mochi.MochiServices.__set__comChannelName(args.newChannel);
};
_listenChannel.allowDomain = function (d) {
return(true);
};
_listenChannel.allowInsecureDomain = _listenChannel.allowDomain;
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
static function initComChannels() {
if (!_connected) {
_sendChannel.onStatus = function (infoObject) {
mochi.MochiServices.onStatus(infoObject);
};
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_clip, version:getVersion()});
_rcvChannel.onStatus = function (infoObject) {
mochi.MochiServices.onStatus(infoObject);
};
_rcvChannel.onReceive = function (pkg) {
var _local5 = pkg.callbackID;
var _local4 = this._callbacks[_local5];
if (!_local4) {
return(undefined);
}
var _local2 = _local4.callbackMethod;
var _local3 = _local4.callbackObject;
if (_local3 && (typeof(_local2) == "string")) {
_local2 = _local3[_local2];
}
if (_local2 != undefined) {
_local2.apply(_local3, pkg.args);
}
delete this._callbacks[_local5];
};
_rcvChannel.onError = function () {
mochi.MochiServices.onError.apply(null, ["IOError"]);
};
_rcvChannel.connect(_rcvChannelName);
trace("connected!");
_connecting = false;
_connected = true;
_listenChannel.close();
while (_sendChannel._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _sendChannel._queue.shift());
}
}
}
static function flush(error) {
var _local1;
var _local2;
while (_sendChannel._queue.length > 0) {
_local1 = _sendChannel._queue.shift();
if (_local1.callbackID != null) {
_local2 = _rcvChannel._callbacks[_local1.callbackID];
}
delete _rcvChannel._callbacks[_local1.callbackID];
if (error) {
handleError(_local1.args, _local2.callbackObject, _local2.callbackMethod);
}
}
}
static function handleError(args, callbackObject, callbackMethod) {
if (args != null) {
if (args.onError != null) {
args.onError.apply(null, ["NotConnected"]);
}
if ((args.options != null) && (args.options.onError != null)) {
args.options.onError.apply(null, ["NotConnected"]);
}
}
if (callbackMethod != null) {
args = {};
args.error = true;
args.errorCode = "NotConnected";
if ((callbackObject != null) && (typeof(callbackMethod) == "string")) {
callbackObject[callbackMethod](args);
} else if (callbackMethod != null) {
callbackMethod.apply(args);
}
}
}
static function send(methodName, args, callbackObject, callbackMethod) {
if (_connected) {
_sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_rcvChannel._nextcallbackID});
} else {
if ((_clip == undefined) || (!_connecting)) {
onError.apply(null, ["NotConnected"]);
handleError(args, callbackObject, callbackMethod);
flush(true);
return(undefined);
}
_sendChannel._queue.push({methodName:methodName, args:args, callbackID:_rcvChannel._nextcallbackID});
}
_rcvChannel._callbacks[_rcvChannel._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_rcvChannel._nextcallbackID++;
}
static var _gatewayURL = "http://www.mochiads.com/static/lib/services/services.swf";
static var _listenChannelName = "__mochiservices";
static var _connecting = false;
static var _connected = false;
}
Symbol 360 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("2.6");
}
static function showPreGameAd(options) {
var _local26 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}, ad_progress:function (percent) {
}};
options = _parseOptions(options, _local26);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def") {
options.ad_started();
options.ad_finished();
return(undefined);
}
var clip = options.clip;
var _local22 = 11000;
var _local25 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _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 _local6 = chk.createEmptyMovieClip("_mochiad_bar", 4);
if (options.no_progress_bar) {
_local6._visible = false;
delete options.no_progress_bar;
} else {
_local6._x = 10;
_local6._y = _local13 - 20;
}
var _local21 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local23 = options.outline;
delete options.outline;
var _local5 = _local6.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 = _local6.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local21);
_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 _local7 = _local6.createEmptyMovieClip("_outline", 3);
_local7.lineStyle(0, _local23, 100);
_local7.moveTo(0, 0);
_local7.lineTo(_local4 - 20, 0);
_local7.lineTo(_local4 - 20, 10);
_local7.lineTo(0, 10);
_local7.lineTo(0, 0);
chk.ad_msec = _local22;
chk.ad_timeout = _local25;
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.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
var sendHostProgress = false;
mc.lc.sendHostLoadProgress = function (lc_name) {
sendHostProgress = true;
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
mc.lc.rpc = function (callbackID, arg) {
MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local11 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local2 = (100 * _local8) / _local4;
var _local10 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local13 = Math.min(100, Math.min(_local2 || 0, _local10));
_local13 = Math.max(this.last_pcnt, _local13);
this.last_pcnt = _local13;
_local9._xscale = _local13;
options.ad_progress(_local13);
if (sendHostProgress) {
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local2});
if (_local2 == 100) {
sendHostProgress = false;
}
}
if (!chk.showing) {
var _local7 = _local11.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if ((_local5 > chk.ad_timeout) && (_local2 == 100)) {
options.ad_failed();
_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;
}
}
};
}
static function showClickAwayAd(options) {
var _local9 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function () {
}, ad_finished:function () {
}, ad_loaded:function (width, height) {
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function () {
}};
options = _parseOptions(options, _local9);
var clip = options.clip;
var _local8 = options.ad_timeout;
delete options.ad_timeout;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local4 = _getRes(options);
var _local10 = _local4[0];
var _local7 = _local4[1];
mc._x = _local10 * 0.5;
mc._y = _local7 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_timeout = _local8;
chk.started = getTimer();
chk.showing = false;
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.rpc = function (callbackID, arg) {
MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
var _local20 = false;
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
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")) {
_local2 = true;
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
options.ad_failed();
_local2 = true;
}
}
if (_local2) {
delete this.onEnterFrame;
}
};
}
static function showInterLevelAd(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();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}};
options = _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 (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _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.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
mc.lc.rpc = function (callbackID, arg) {
MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
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) {
options.ad_failed();
_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;
}
}
};
}
static function showPreloaderAd(options) {
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
showPreGameAd(options);
}
static function showTimedAd(options) {
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
showInterLevelAd(options);
}
static function _allowDomains(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);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local9 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local9._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local9.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local9._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local7 in options) {
_local4[_local7] = options[_local7];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _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 _local8 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local8;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local8);
_local6.lc = _local5;
_local4.lc = _local8;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
if (clip._mochiad._containerLCName != undefined) {
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"unload"});
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(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]);
}
static function _parseOptions(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++;
}
}
if (_local4.id == "test") {
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
}
return(_local4);
}
static function rpc(clip, callbackID, arg) {
switch (arg.id) {
case "setValue" :
setValue(clip, arg.objectName, arg.value);
break;
case "getValue" :
var _local4 = getValue(clip, arg.objectName);
clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local4);
break;
case "runMethod" :
var _local3 = runMethod(clip, arg.method, arg.args);
clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local3);
break;
default :
trace("[mochiads rpc] unknown rpc id: " + arg.id);
}
}
static function setValue(base, objectName, value) {
var _local2 = objectName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
base[_local2[_local1]] = value;
}
static function getValue(base, objectName) {
var _local2 = objectName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
return(base[_local2[_local1]]);
}
static function runMethod(base, methodName, argsArray) {
var _local2 = methodName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
if (typeof(base[_local2[_local1]]) == "function") {
return(base[_local2[_local1]].apply(base, argsArray));
}
return(undefined);
}
}
Symbol 361 MovieClip [__Packages.mochi.MochiScores] Frame 0
class mochi.MochiScores
{
static var boardID, onClose, onError;
function MochiScores () {
}
static function setBoardID(boardID) {
mochi.MochiScores.boardID = boardID;
mochi.MochiServices.send("scores_setBoardID", {boardID:boardID});
}
static function showLeaderboard(options) {
if (options.clip != null) {
if ((options.clip != mochi.MochiServices.__get__clip()) || (mochi.MochiServices.__get__childClip()._target == undefined)) {
mochi.MochiServices.disconnect();
mochi.MochiServices.connect(mochi.MochiServices.__get__id(), options.clip);
}
delete options.clip;
}
if (options.name != null) {
if (typeof(options.name) == "object") {
if (options.name.text != undefined) {
options.name = options.name.text;
}
}
}
if (options.score != null) {
if (typeof(options.score) == "object") {
if (options.score.text != undefined) {
options.score = options.score.text;
}
}
}
if (options.onDisplay != null) {
options.onDisplay();
} else {
mochi.MochiServices.__get__clip().stop();
}
if (options.onClose != null) {
onClose = options.onClose;
} else {
onClose = function () {
mochi.MochiServices.__get__clip().play();
};
}
if (options.onError != null) {
onError = options.onError;
} else {
onError = onClose;
}
if (options.boardID == null) {
if (boardID != null) {
options.boardID = boardID;
}
}
mochi.MochiServices.send("scores_showLeaderboard", {options:options}, null, doClose);
}
static function closeLeaderboard() {
mochi.MochiServices.send("scores_closeLeaderboard");
}
static function getPlayerInfo(callbackObj, callbackMethod) {
mochi.MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod);
}
static function submit(score, name, callbackObj, callbackMethod) {
mochi.MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod);
}
static function requestList(callbackObj, callbackMethod) {
mochi.MochiServices.send("scores_requestList", null, callbackObj, callbackMethod);
}
static function scoresArrayToObjects(scores) {
var _local5 = {};
var _local1;
var _local4;
var _local2;
var _local6;
for (var _local8 in scores) {
if (typeof(scores[_local8]) == "object") {
if ((scores[_local8].cols != null) && (scores[_local8].rows != null)) {
_local5[_local8] = [];
_local2 = scores[_local8];
_local4 = 0;
while (_local4 < _local2.rows.length) {
_local6 = {};
_local1 = 0;
while (_local1 < _local2.cols.length) {
_local6[_local2.cols[_local1]] = _local2.rows[_local4][_local1];
_local1++;
}
_local5[_local8].push(_local6);
_local4++;
}
} else {
_local5[_local8] = {};
for (var _local7 in scores[_local8]) {
_local5[_local8][_local7] = scores[_local8][_local7];
}
}
} else {
_local5[_local8] = scores[_local8];
}
}
return(_local5);
}
static function doClose(args) {
if (args.error == true) {
if (args.errorCode == undefined) {
args.errorCode = "IOError";
}
onError.apply(null, [args.errorCode]);
} else {
onClose.apply();
}
}
}
Symbol 166 Button
on (press) {
getURL (_root.homepage, "_blank");
}
Symbol 168 Button
on (release) {
_root.gotoAndStop("scoreframe");
}
Symbol 170 Button
on (press) {
nextFrame();
}
Symbol 184 Button
on (press) {
nextFrame();
}
Symbol 186 Button
on (press) {
prevFrame();
}
Symbol 198 MovieClip Frame 1
stop();
Symbol 198 MovieClip Frame 2
stop();
Symbol 201 MovieClip Frame 1
stop();
Symbol 201 MovieClip Frame 2
stop();
Symbol 204 MovieClip Frame 1
stop();
Symbol 204 MovieClip Frame 2
stop();
Symbol 206 Button
on (press) {
playMode(3);
}
Symbol 208 Button
on (press) {
playMode(2);
}
Symbol 210 Button
on (press) {
playMode(1);
}
Symbol 222 MovieClip Frame 31
stop();
Symbol 236 Button
on (press) {
nextFrame();
}
Symbol 239 Button
on (press) {
_parent._parent.paused = false;
this.hide();
this.prevFrame();
}
Symbol 244 Button
on (press) {
prevFrame();
}
Symbol 247 Button
on (press) {
_parent._parent.gameOverAndGoto(1);
}
Symbol 248 MovieClip Frame 1
stop();
Symbol 248 MovieClip Frame 2
stop();
Symbol 251 MovieClip Frame 1
stop();
Symbol 251 MovieClip Frame 2
stop();
Symbol 254 Button
on (press) {
_root._quality = "LOW";
}
Symbol 256 Button
on (press) {
_root._quality = "MEDIUM";
}
Symbol 258 Button
on (press) {
_root._quality = "HIGH";
}
Symbol 261 Button
on (press) {
hide();
}
Symbol 264 Button
on (press) {
gotoAndStop (2);
}
Symbol 267 Button
on (press) {
_parent._parent.itemNextLevel();
}
Symbol 286 Button
on (press) {
gotoAndStop (1);
}
Symbol 289 Button
on (press) {
_parent._parent.itemSell();
gotoAndStop (1);
}
Symbol 290 MovieClip Frame 1
stop();
Symbol 290 MovieClip Frame 2
stop();
Symbol 294 Button
on (press) {
_visible = false;
}
Symbol 295 Button
on (press) {
_parent._parent.removeStatic();
}
Symbol 314 MovieClip Frame 1
stop();
Symbol 314 MovieClip Frame 2
stop();
Symbol 349 Button
on (press) {
getURL (_parent.homepage, "_blank");
}
Symbol 350 Button
on (press) {
gotoAndStop (252);
}
Symbol 355 Button
on (press) {
_root.gotoAndStop("maingame");
}