Frame 1
function buildMap(map) {
mapW = map1[0].length;
mapH = map1.length;
numEnemys = enemys.length;
hud.numEnemys = numEnemys;
trace((("map is=" + mapW) + "X") + mapH);
majorX = 0;
majorY = 0;
cMap = map;
i = 0;
while (i < mapH) {
j = 0;
while (j < mapH) {
if ((i < (visAreaY + 1)) && (j < (visAreaX + 1))) {
this.scrClip.attachMovie("tile", (("t_" + i) + "_") + j, ++d);
this.scrClip[(("t_" + i) + "_") + j]._x = j * tileW;
this.scrClip[(("t_" + i) + "_") + j]._y = i * tileH;
this.scrClip[(("t_" + i) + "_") + j].type = cMap[i][j][1];
this.scrClip[(("t_" + i) + "_") + j].gotoAndStop(cMap[i][j][0]);
}
if ((i == startPos[1]) && (j == startPos[0])) {
this.scrClip.attachMovie("char", "char", 10000);
this.scrClip.char._x = (j * tileW) + (tileW / 2);
this.scrClip.char._y = (i * tileH) + (tileH / 2);
this.scrClip.char.time = time;
}
var e = 0;
while (e < numEnemys) {
if ((i == enemys[e][1]) && (j == enemys[e][0])) {
this.scrClip.attachMovie("enemy", "enemy" + e, 10001 + e);
this.scrClip["enemy" + e]._x = (j * tileW) + (tileW / 2);
this.scrClip["enemy" + e]._y = (i * tileH) + (tileH / 2);
}
e++;
}
j++;
}
i++;
}
i = visAreaY + 1;
j = visAreaX + 1;
}
function doScroll(dir) {
if ((dir == "right") && (mapW >= j)) {
scrClip._x = scrClip._x - scrSpeed;
majorX = majorX + scrSpeed;
if (majorX >= tileW) {
var lasti = ((i - visAreaY) - 1);
while (lasti < i) {
var lastj = j;
while (lastj < (j + 1)) {
scrClip.attachMovie("tile", (("t_" + lasti) + "_") + lastj, ++d);
var p = ((("scrClip.t_" + lasti) + "_") + lastj);
eval (p)._x = lastj * tileW;
eval (p)._y = lasti * tileH;
eval (p).type = cMap[lasti][lastj][1];
eval (p).label = cMap[lasti][lastj][0];
tellTarget (eval (p)) {
gotoAndStop(label);
};
removeMovieClip(eval ((("scrClip.t_" + lasti) + "_") + ((lastj - visAreaX) - 1)));
lastj++;
}
lasti++;
}
j++;
majorX = majorX - tileW;
}
}
if ((dir == "left") && (0 < (j - visAreaX))) {
scrClip._x = scrClip._x + scrSpeed;
majorX = majorX - scrSpeed;
if (0 >= majorX) {
j--;
var loopVal2 = (j - visAreaX);
var lasti = ((i - visAreaY) - 1);
while (lasti < i) {
var lastj = ((j - visAreaX) - 1);
while (lastj < loopVal2) {
scrClip.attachMovie("tile", (("t_" + lasti) + "_") + lastj, ++d);
var p = ((("scrClip.t_" + lasti) + "_") + lastj);
eval (p)._x = lastj * tileW;
eval (p)._y = lasti * tileH;
eval (p).type = cMap[lasti][lastj][1];
eval (p).label = cMap[lasti][lastj][0];
tellTarget (eval (p)) {
gotoAndStop(label);
};
removeMovieClip(eval ((("scrClip.t_" + lasti) + "_") + ((lastj + visAreaX) + 1)));
lastj++;
}
lasti++;
}
majorX = majorX + tileW;
}
}
if ((dir == "down") && (mapH >= i)) {
scrClip._y = scrClip._y - scrSpeed;
majorY = majorY + scrSpeed;
if (majorY >= tileH) {
var lasti = i;
while (lasti < (i + 1)) {
var lastj = ((j - visareaX) - 1);
while (lastj < j) {
scrClip.attachMovie("tile", (("t_" + lasti) + "_") + lastj, ++d);
var p = ((("scrClip.t_" + lasti) + "_") + lastj);
eval (p)._x = lastj * tileW;
eval (p)._y = lasti * tileH;
eval (p).type = cMap[lasti][lastj][1];
eval (p).label = cMap[lasti][lastj][0];
tellTarget (eval (p)) {
gotoAndStop(label);
};
removeMovieClip(eval ((("scrClip.t_" + ((lasti - visAreaY) - 1)) + "_") + lastj));
lastj++;
}
lasti++;
}
i++;
majorY = majorY - tileH;
}
}
if ((dir == "up") && (0 < (i - visAreaY))) {
scrClip._y = scrClip._y + scrSpeed;
majorY = majorY - scrSpeed;
if (0 >= majorY) {
i--;
var loopVal1 = (i - visAreaY);
var lasti = ((i - visAreaY) - 1);
while (lasti < loopVal1) {
var lastj = ((j - visareaX) - 1);
while (lastj < j) {
scrClip.attachMovie("tile", (("t_" + lasti) + "_") + lastj, ++d);
var p = ((("scrClip.t_" + lasti) + "_") + lastj);
eval (p)._x = lastj * tileW;
eval (p)._y = lasti * tileH;
eval (p).type = cMap[lasti][lastj][1];
eval (p).label = cMap[lasti][lastj][0];
tellTarget (eval (p)) {
gotoAndStop(label);
};
removeMovieClip(eval ((("scrClip.t_" + ((lasti + visAreaY) + 1)) + "_") + lastj));
lastj++;
}
lasti++;
}
majorY = majorY + tileH;
}
}
}
fscommand ("allowscale", false);
_quality = "LOW";
map1 = [[["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["e6", 1], ["e7", 1], ["e8", 1], ["a1", 1], ["a1", 1]], [["a1", 1], ["a6", 1], ["a6", 1], ["a6", 1], ["a6", 1], ["a6", 1], ["a6", 1], ["a6", 1], ["a6", 1], ["a6", 1], ["e3", 1], ["e4", 1], ["e5", 1], ["a6", 1], ["a1", 1]], [["a1", 1], ["a5", 1], ["a5", 1], ["a5", 1], ["a5", 1], ["a5", 1], ["a5", 1], ["a5", 1], ["a5", 1], ["a5", 1], ["e0", 1], ["e1", 1], ["e2", 1], ["a5", 1], ["a1", 1]], [["a1", 1], ["a0", 0], ["a0", 0], ["a0", 0], ["a3", 1], ["a0", 0], ["a3", 1], ["a3", 1], ["a0", 0], ["a0", 0], ["a3", 1], ["a3", 1], ["a0", 0], ["a0", 0], ["a1", 1]], [["a1", 1], ["a0", 0], ["a2", 1], ["a3", 1], ["a2", 1], ["a3", 1], ["a2", 1], ["a0", 0], ["a2", 1], ["a3", 1], ["a2", 1], ["a0", 0], ["a2", 1], ["a0", 0], ["a1", 1]], [["a1", 1], ["a0", 0], ["a3", 1], ["a3", 1], ["a0", 0], ["a3", 1], ["a3", 1], ["a0", 0], ["a0", 0], ["a0", 0], ["a0", 0], ["a0", 0], ["a3", 1], ["a0", 0], ["a1", 1]], [["a1", 1], ["a3", 1], ["a2", 1], ["a3", 1], ["a2", 1], ["a0", 0], ["a2", 1], ["a3", 1], ["a2", 1], ["a3", 1], ["a2", 1], ["a3", 1], ["a2", 1], ["a3", 1], ["a1", 1]], [["a1", 1], ["a0", 0], ["a3", 1], ["a0", 0], ["a3", 1], ["a3", 1], ["a0", 0], ["a0", 0], ["a3", 1], ["a0", 0], ["a3", 1], ["a3", 1], ["a0", 0], ["a3", 1], ["a1", 1]], [["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a3", 1], ["a2", 1], ["a3", 1], ["a2", 1], ["a3", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1]], [["a1", 1], ["a1", 1], ["a1", 1], ["a6", 1], ["a6", 1], ["a0", 0], ["a3", 1], ["a0", 0], ["a3", 1], ["a3", 1], ["a6", 1], ["a6", 1], ["a1", 1], ["a1", 1], ["a1", 1]], [["a1", 1], ["a1", 1], ["a1", 1], ["a5", 1], ["a5", 1], ["a0", 0], ["a2", 1], ["a0", 0], ["a2", 1], ["a3", 1], ["a5", 1], ["a5", 1], ["a1", 1], ["a1", 1], ["a1", 1]], [["a1", 1], ["a1", 1], ["a1", 1], ["a3", 1], ["a0", 0], ["a0", 0], ["a3", 1], ["a3", 1], ["a0", 0], ["a0", 0], ["a0", 0], ["a0", 0], ["a1", 1], ["a1", 1], ["a1", 1]], [["a1", 1], ["a1", 1], ["a1", 1], ["a0", 0], ["a2", 1], ["a3", 1], ["a2", 1], ["a0", 0], ["a2", 1], ["a0", 0], ["a2", 1], ["a3", 1], ["a1", 1], ["a1", 1], ["a1", 1]], [["a1", 1], ["a1", 1], ["a1", 1], ["a0", 0], ["a3", 1], ["a0", 0], ["a3", 1], ["a3", 1], ["a3", 1], ["a0", 0], ["a0", 0], ["a0", 0], ["a1", 1], ["a1", 1], ["a1", 1]], [["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1], ["a1", 1]]];
startPos = [1, 3];
enemys = [[5, 9], [9, 5], [10, 13]];
time = 90000 /* 0x015F90 */;
visAreaX = 10;
visAreaY = 9;
tileW = 16;
tileH = 16;
startX = 0;
startY = 0;
scrSpeed = 2;
this.attachMovie("empty", "scrClip", 0);
this.scrClip._x = startX;
this.scrClip._y = startY;
this.attachMovie("info", "info", 1);
this.info._x = 80;
this.info._y = 0;
this.attachMovie("hud", "hud", 3);
this.hud._x = startX;
this.hud._y = 144;
if (!firstTime) {
this.attachMovie("fade", "fade", 4);
this.fade._x = startX;
this.fade._y = startY;
firstTime = true;
}
buildMap(map1);
Frame 2
stop();
Symbol 19 MovieClip Frame 1
stop();
Symbol 20 MovieClip [char] Frame 1
function drawTime() {
var nowms = (getTimer() - startTime);
var difms = (time - nowms);
var sec = Math.floor(difms / 1000);
var min = Math.floor(sec / 60);
var realsec = (sec - (min * 60));
if (realsec < 10) {
realsec = "0" + realsec;
}
_parent._parent.hud.time = (min + ":") + realsec;
if ((30 >= sec) && (!hurry)) {
_parent._parent.info.gotoAndPlay("hurry");
hurry = true;
}
if (0 >= sec) {
_parent._parent.hud.time = "0:00";
_parent._parent.fade.gotoAndPlay("fade");
dead = true;
}
}
function explosionDeath(x, y) {
var downY = Math.floor((_y + 5) / tileH);
var upY = Math.floor((_y - 5) / tileH);
var leftX = Math.floor((_x - 5) / tileW);
var rightX = Math.floor((_x + 5) / tileW);
var centerX = Math.floor(_x / tileW);
var centerY = Math.floor(_y / tileW);
if ((((centerX == x) || (leftX == x)) || (rightX == x)) && (((centerY == y) || (upY == y)) || (downY == y))) {
c.gotoAndStop("die");
_parent._parent.fade.gotoAndPlay("fade");
dead = true;
}
}
function control(dir, newBomb) {
drawTime();
if (dir == null) {
c.gotoAndStop(lastdir);
}
if (((dir == null) && (!newBomb)) && (!bombDropped)) {
return(undefined);
}
var walk = true;
lastdir = dir;
if (dir == "down") {
_y = (_y + speed);
}
if (dir == "up") {
_y = (_y - speed);
}
if (dir == "left") {
_x = (_x - speed);
}
if (dir == "right") {
_x = (_x + speed);
}
var downY = Math.floor((_y + 6.5) / tileH);
var upY = Math.floor((_y - 6.5) / tileH);
var leftX = Math.floor((_x - 6.5) / tileW);
var rightX = Math.floor((_x + 6.5) / tileW);
var centerX = Math.floor(_x / tileW);
var centerY = Math.floor(_y / tileW);
if (((newBomb && (numBombs < maxBombs)) && ((lastTime + 100) < getTimer())) && (cMap[centerY][centerX][0] != "a4")) {
bombDropped = true;
numBombs++;
Set("bombX" + numBombs, centerX);
Set("bombY" + numBombs, centerY);
cMap[eval ("bombY" + numBombs)][eval ("bombX" + numBombs)][1] = 0;
cMap[eval ("bombY" + numBombs)][eval ("bombX" + numBombs)][0] = "a4";
Set("bombStartTime" + numBombs, getTimer());
_parent[(("t_" + eval ("bombY" + numBombs)) + "_") + eval ("bombX" + numBombs)].gotoAndStop("a4");
lastTime = getTimer();
}
if (bombDropped) {
var i = 1;
while (numBombs >= i) {
if ((centerX != eval ("bombX" + i)) || (centerY != eval ("bombY" + i))) {
cMap[eval ("bombY" + i)][eval ("bombX" + i)][1] = 1;
}
checkExplosion(i);
i++;
}
}
if (cMap[centerY][centerX][0] == "x0") {
cMap[centerY][centerX][0] = "a0";
_parent[(("t_" + centerY) + "_") + centerX].gotoAndStop("a0");
explodeRadius++;
}
if (cMap[centerY][centerX][0] == "x1") {
cMap[centerY][centerX][0] = "a0";
_parent[(("t_" + centerY) + "_") + centerX].gotoAndStop("a0");
maxBombs++;
}
if ((cMap[upY][leftX][1] == 1) || (cMap[upY][rightX][1] == 1)) {
_y = (_y + speed);
walk = false;
}
if ((cMap[downY][leftX][1] == 1) || (cMap[downY][rightX][1] == 1)) {
_y = (_y - speed);
walk = false;
}
if ((cMap[downY][leftX][1] == 1) || (cMap[upY][leftX][1] == 1)) {
_x = (_x + speed);
walk = false;
}
if ((cMap[downY][rightX][1] == 1) || (cMap[upY][rightX][1] == 1)) {
_x = (_x - speed);
walk = false;
}
var j = _parent._parent.j;
var i = _parent._parent.i;
if (((upY < (i - (visAreaY * 0.75))) && (dir == "up")) && (scrDown)) {
_parent._parent.doScroll("up");
}
if (((i - (visAreaY * 0.5)) < downY) && (dir == "down")) {
scrDown = true;
_parent._parent.doScroll("down");
}
if (((leftX < (j - (visAreaX * 0.75))) && (dir == "left")) && (scrRight)) {
_parent._parent.doScroll("left");
}
if (((j - (visAreaX * 0.5)) < rightX) && (dir == "right")) {
scrRight = true;
_parent._parent.doScroll("right");
}
if (walk) {
c.gotoAndStop(dir + "_walk");
} else {
c.gotoAndStop(dir);
}
if (cMap[downY][centerX][0] == "o1") {
dead = true;
walk = false;
c.gotoAndStop("exit");
}
}
function checkExplosion(n) {
if (getTimer() >= (eval ("bombStartTime" + n) + explodeTime)) {
_parent[(("t_" + eval ("bombY" + n)) + "_") + eval ("bombX" + n)].gotoAndStop("a0");
_parent[(("t_" + eval ("bombY" + n)) + "_") + eval ("bombX" + n)].explode.gotoAndPlay("center");
sendExplosionCoords(eval ("bombX" + n), eval ("bombY" + n));
explosionDeath(eval ("bombX" + n), eval ("bombY" + n));
var i = 1;
while (explodeRadius >= i) {
var randNum = random(50);
var radiusUp = 1;
var dropsUp = 2;
if (randNum == radiusUp) {
goto = "x0";
} else if (randNum == dropsUp) {
goto = "x1";
} else {
goto = "a0";
}
if (((cMap[eval ("bombY" + n) - i][eval ("bombX" + n)][0] == "a3") && (!noexUp)) && (!noUp)) {
_parent[(("t_" + (eval ("bombY" + n) - i)) + "_") + eval ("bombX" + n)].gotoAndStop(goto);
_parent[(("t_" + (eval ("bombY" + n) - i)) + "_") + eval ("bombX" + n)].rock.gotoAndPlay("vanish");
cMap[eval ("bombY" + n) - i][eval ("bombX" + n)][0] = goto;
cMap[eval ("bombY" + n) - i][eval ("bombX" + n)][1] = 0;
var noexUp = true;
}
if (((cMap[eval ("bombY" + n) + i][eval ("bombX" + n)][0] == "a3") && (!noexDown)) && (!noDown)) {
_parent[(("t_" + (eval ("bombY" + n) + i)) + "_") + eval ("bombX" + n)].gotoAndStop(goto);
_parent[(("t_" + (eval ("bombY" + n) + i)) + "_") + eval ("bombX" + n)].rock.gotoAndPlay("vanish");
cMap[eval ("bombY" + n) + i][eval ("bombX" + n)][0] = goto;
cMap[eval ("bombY" + n) + i][eval ("bombX" + n)][1] = 0;
var noexDown = true;
}
if (((cMap[eval ("bombY" + n)][eval ("bombX" + n) - i][0] == "a3") && (!noexLeft)) && (!noLeft)) {
_parent[(("t_" + eval ("bombY" + n)) + "_") + (eval ("bombX" + n) - i)].gotoAndStop(goto);
_parent[(("t_" + eval ("bombY" + n)) + "_") + (eval ("bombX" + n) - i)].rock.gotoAndPlay("vanish");
cMap[eval ("bombY" + n)][eval ("bombX" + n) - i][0] = goto;
cMap[eval ("bombY" + n)][eval ("bombX" + n) - i][1] = 0;
var noexLeft = true;
}
if (((cMap[eval ("bombY" + n)][eval ("bombX" + n) + i][0] == "a3") && (!noexRight)) && (!noRight)) {
_parent[(("t_" + eval ("bombY" + n)) + "_") + (eval ("bombX" + n) + i)].gotoAndStop(goto);
_parent[(("t_" + eval ("bombY" + n)) + "_") + (eval ("bombX" + n) + i)].rock.gotoAndPlay("vanish");
cMap[eval ("bombY" + n)][eval ("bombX" + n) + i][0] = goto;
cMap[eval ("bombY" + n)][eval ("bombX" + n) + i][1] = 0;
var noexRight = true;
}
if (((cMap[eval ("bombY" + n) - i][eval ("bombX" + n)][1] != 1) && (!noUp)) && (!noexUp)) {
sendExplosionCoords(eval ("bombX" + n), eval ("bombY" + n) - i);
explosionDeath(eval ("bombX" + n), eval ("bombY" + n) - i);
if (i == explodeRadius) {
_parent[(("t_" + (eval ("bombY" + n) - i)) + "_") + eval ("bombX" + n)].explode.gotoAndPlay("up_end");
} else {
_parent[(("t_" + (eval ("bombY" + n) - i)) + "_") + eval ("bombX" + n)].explode.gotoAndPlay("up_extend");
}
} else {
var noUp = true;
}
if (((cMap[eval ("bombY" + n) + i][eval ("bombX" + n)][1] != 1) && (!noDown)) && (!noexDown)) {
sendExplosionCoords(eval ("bombX" + n), eval ("bombY" + n) + i);
explosionDeath(eval ("bombX" + n), eval ("bombY" + n) + i);
if (i == explodeRadius) {
_parent[(("t_" + (eval ("bombY" + n) + i)) + "_") + eval ("bombX" + n)].explode.gotoAndPlay("down_end");
} else {
_parent[(("t_" + (eval ("bombY" + n) + i)) + "_") + eval ("bombX" + n)].explode.gotoAndPlay("down_extend");
}
} else {
var noDown = true;
}
if (((cMap[eval ("bombY" + n)][eval ("bombX" + n) - i][1] != 1) && (!noLeft)) && (!noexLeft)) {
sendExplosionCoords(eval ("bombX" + n) - i, eval ("bombY" + n));
explosionDeath(eval ("bombX" + n) - i, eval ("bombY" + n));
if (i == explodeRadius) {
_parent[(("t_" + eval ("bombY" + n)) + "_") + (eval ("bombX" + n) - i)].explode.gotoAndPlay("left_end");
} else {
_parent[(("t_" + eval ("bombY" + n)) + "_") + (eval ("bombX" + n) - i)].explode.gotoAndPlay("left_extend");
}
} else {
var noLeft = true;
}
if (((cMap[eval ("bombY" + n)][eval ("bombX" + n) + i][1] != 1) && (!noRight)) && (!noexRight)) {
sendExplosionCoords(eval ("bombX" + n) + i, eval ("bombY" + n));
explosionDeath(eval ("bombX" + n) + i, eval ("bombY" + n));
if (i == explodeRadius) {
_parent[(("t_" + eval ("bombY" + n)) + "_") + (eval ("bombX" + n) + i)].explode.gotoAndPlay("right_end");
} else {
_parent[(("t_" + eval ("bombY" + n)) + "_") + (eval ("bombX" + n) + i)].explode.gotoAndPlay("right_extend");
}
} else {
var noRight = true;
}
i++;
}
cMap[eval ("bombY" + n)][eval ("bombX" + n)][1] = 0;
cMap[eval ("bombY" + n)][eval ("bombX" + n)][0] = "a0";
if ((0 < numBombs) && ((lastDec + 100) < getTimer())) {
Set("bombY" + n, eval ("bombY" + numBombs));
Set("bombX" + n, eval ("bombX" + numBombs));
Set("bombStartTime" + n, eval ("bombStartTime" + numBombs));
trace("dec_" + n);
numBombs--;
lastDec = getTimer();
}
if (numBombs == 0) {
bombDropped = false;
}
}
}
function sendExplosionCoords(x, y) {
var i = 0;
while (i < numEnemys) {
_parent["enemy" + i].explosion(x, y);
i++;
}
}
speed = 2;
cMap = _parent._parent.cMap;
tileW = _parent._parent.tileW;
tileH = _parent._parent.tileH;
visAreaX = _parent._parent.visAreaX;
visAreaY = _parent._parent.visAreaY;
numEnemys = _parent._parent.numEnemys;
dead = false;
bombDropped = false;
explodeTime = 2000;
explodeRadius = 1;
maxBombs = 1;
numBombs = 0;
startTime = getTimer();
hurry = false;
Instance of Symbol 1 MovieClip [empty] in Symbol 20 MovieClip [char] Frame 1
onClipEvent (enterFrame) {
var dir;
if (Key.isDown(Key.UP)) {
dir = "up";
} else if (Key.isDown(Key.DOWN)) {
dir = "down";
} else if (Key.isDown(Key.LEFT)) {
dir = "left";
} else if (Key.isDown(Key.RIGHT)) {
dir = "right";
} else {
dir = null;
}
if (Key.isDown(Key.SPACE)) {
var bomb = true;
} else {
var bomb = false;
}
if (!_parent.dead) {
_parent.control(dir, bomb);
}
}
Symbol 50 MovieClip Frame 1
stop();
Symbol 50 MovieClip Frame 10
gotoAndStop (1);
Symbol 50 MovieClip Frame 19
gotoAndStop (1);
Symbol 50 MovieClip Frame 28
gotoAndStop (1);
Symbol 50 MovieClip Frame 37
gotoAndStop (1);
Symbol 50 MovieClip Frame 46
gotoAndStop (1);
Symbol 50 MovieClip Frame 55
gotoAndStop (1);
Symbol 50 MovieClip Frame 64
gotoAndStop (1);
Symbol 50 MovieClip Frame 73
gotoAndStop (1);
Symbol 50 MovieClip Frame 82
gotoAndStop (1);
Symbol 55 MovieClip Frame 1
stop();
Symbol 55 MovieClip Frame 13
gotoAndStop (1);
Symbol 104 MovieClip [tile] Frame 1
stop();
Symbol 122 MovieClip Frame 13
_parent._parent.remove();
stop();
Symbol 123 MovieClip Frame 1
stop();
Symbol 124 MovieClip [enemy] Frame 1
function remove() {
_parent._parent.hud.numEnemys--;
if (0 >= _parent._parent.hud.numEnemys) {
openExit();
}
removeMovieClip(this);
}
function explosion(x, y) {
var downY = Math.floor((_y + 7) / tileH);
var upY = Math.floor((_y - 7) / tileH);
var leftX = Math.floor((_x - 7) / tileW);
var rightX = Math.floor((_x + 7) / tileW);
var centerX = Math.floor(_x / tileW);
var centerY = Math.floor(_y / tileW);
if ((((centerX == x) || (leftX == x)) || (rightX == x)) && (((centerY == y) || (upY == y)) || (downY == y))) {
c.gotoAndStop("die");
dead = true;
}
}
function moveMe() {
var downY = Math.floor((_y + 8.5) / tileH);
var upY = Math.floor((_y - 8.5) / tileH);
var leftX = Math.floor((_x - 8.5) / tileW);
var rightX = Math.floor((_x + 8.5) / tileW);
var centerX = Math.floor(_x / tileW);
var centerY = Math.floor(_y / tileW);
_parent.char.explosionDeath(centerX, centerY);
var j = _parent._parent.j;
var i = _parent._parent.i;
if ((((centerX < j) && (((j - visAreaX) - 2) < centerX)) && (centerY < i)) && (((i - visAreaY) - 1) < centerY)) {
_visible = 1;
} else {
_visible = 0;
}
if (((dir == "up") && (cMap[upY][centerX][1] == 1)) || ((dir == "up") && (cMap[upY][centerX][0] == "a4"))) {
newDir = true;
}
if (((dir == "down") && (cMap[downY][centerX][1] == 1)) || ((dir == "down") && (cMap[downY][centerX][0] == "a4"))) {
newDir = true;
}
if (((dir == "left") && (cMap[centerY][leftX][1] == 1)) || ((dir == "left") && (cMap[centerY][leftX][0] == "a4"))) {
newDir = true;
}
if (((dir == "right") && (cMap[centerY][rightX][1] == 1)) || ((dir == "right") && (cMap[centerY][rightX][0] == "a4"))) {
newDir = true;
}
if (newDir) {
var dirArray = [];
if (cMap[upY][centerX][1] == 0) {
dirArray.push("up");
}
if (cMap[downY][centerX][1] == 0) {
dirArray.push("down");
}
if (cMap[centerY][leftX][1] == 0) {
dirArray.push("left");
}
if (cMap[centerY][rightX][1] == 0) {
dirArray.push("right");
}
var num = random(dirArray.length);
dir = dirArray[num];
newDir = false;
}
c.gotoAndStop(dir);
if (dir == "up") {
_y = (_y - speed);
}
if (dir == "down") {
_y = (_y + speed);
}
if (dir == "left") {
_x = (_x - speed);
}
if (dir == "right") {
_x = (_x + speed);
}
}
function openExit() {
_parent._parent.info.gotoAndPlay("exit");
var mapW = cMap[0].length;
var mapH = cMap.length;
var openCount = 0;
i = 0;
while (i < mapH) {
j = 0;
while (j < mapW) {
var t = cMap[i][j][0];
if ((((((t == "e0") || (t == "e1")) || (t == "e2")) || (t == "e3")) || (t == "e4")) || (t == "e5")) {
var n = (substring(t, 2, 1));
_parent.char.cMap[i][j][0] = "o" + n;
_parent._parent.cMap[i][j][0] = "o" + n;
_parent[(("t_" + i) + "_") + j].gotoAndStop("o" + n);
if (t == "e1") {
_parent.char.cMap[i][j][1] = 0;
}
openCount++;
}
if (openCount >= 6) {
return(undefined);
}
j++;
}
i++;
}
}
speed = 1;
cMap = _parent._parent.cMap;
tileW = _parent._parent.tileW;
tileH = _parent._parent.tileH;
visAreaX = _parent._parent.visAreaX;
visAreaY = _parent._parent.visAreaY;
newDir = true;
dead = false;
Instance of Symbol 108 MovieClip [empty] in Symbol 124 MovieClip [enemy] Frame 1
onClipEvent (enterFrame) {
if (!_parent.dead) {
_parent.moveMe();
}
}
Symbol 139 MovieClip [info] Frame 1
stop();
Symbol 139 MovieClip [info] Frame 27
gotoAndStop (1);
Symbol 139 MovieClip [info] Frame 53
gotoAndStop (1);
Symbol 144 MovieClip [fade] Frame 1
stop();
Symbol 144 MovieClip [fade] Frame 18
_parent.gotoAndPlay(1);
Symbol 144 MovieClip [fade] Frame 44
gotoAndStop (1);