Frame 1
stop();
Frame 2
stop();
stopAllSounds();
Frame 3
stop();
Frame 4
stop();
Symbol 3 MovieClip Frame 1
stop();
Symbol 3 MovieClip Frame 42
stop();
Symbol 12 MovieClip [theworm] Frame 1
stop();
Symbol 21 Button
on (release) {
getURL ("http://www.newgrounds.com", "blank");
}
Symbol 26 Button
on (release) {
_root.play();
}
Symbol 27 MovieClip Frame 1
_root.stop();
PercentLoaded = (_root.getBytesLoaded() / _root.getBytesTotal()) * 100;
if (PercentLoaded != 100) {
bar._xscale = PercentLoaded;
} else {
gotoAndStop ("loaded");
}
Symbol 27 MovieClip Frame 2
gotoAndPlay (1);
Symbol 28 Button
on (release) {
getURL ("mailto:aqlahmad@hotmail.com");
}
Symbol 31 Button
on (release) {
play();
}
Symbol 38 Button
on (release) {
gotoAndStop (4);
}
Symbol 44 Button
on (release) {
getURL ("www.offthewall.tk", "blank");
}
Symbol 47 MovieClip Frame 5
_parent.moveIt();
gotoAndPlay ("_parent.level");
Symbol 51 Button
on (keyPress "<Up>") {
pressed(38);
}
on (keyPress "<Down>") {
pressed(40);
}
on (keyPress "<Left>") {
pressed(37);
}
on (keyPress "<Right>") {
pressed(39);
}
Symbol 63 MovieClip Frame 1
function pressed(cd) {
var _local1 = cd;
c = getCdir();
if ((getChanged() == false) && (getGameOn() == true)) {
if (_local1 == 38) {
if ((c != 1) && (c != 3)) {
setCdir(3);
setChanged(true);
}
} else if (_local1 == 40) {
if ((c != 3) && (c != 1)) {
setCdir(1);
setChanged(true);
}
} else if (_local1 == 37) {
if ((c != 2) && (c != 4)) {
setCdir(4);
setChanged(true);
}
} else if (_local1 == 39) {
if ((c != 4) && (c != 2)) {
setCdir(2);
setChanged(true);
}
}
}
}
function setCdir(c) {
this.cdir = c;
}
function getCdir() {
return(this.cdir);
}
function getChanged() {
return(this.changed);
}
function setChanged(c) {
this.changed = c;
}
function getGameOn() {
return(this.gameOn);
}
function getPR(z) {
d = 800;
return(d / (z + d));
}
function drawLine(x, y, z, x2, y2, z2) {
var _local1 = y2;
var _local2 = y;
x = x * getPR(z);
_local2 = _local2 * getPR(z);
x2 = x2 * getPR(z2);
_local1 = _local1 * getPR(z2);
_local2 = _local2 - 500;
_local1 = _local1 - 500;
moveTo(x, _local2);
lineTo(x2, _local1);
}
function getPointX(p, z) {
return(p * getPR(z));
}
function getPointY(p, z) {
return((p * getPR(z)) - 500);
}
function drawSquare(x, y, z, x2, y2, z2) {
var _local1 = y2;
var _local2 = x2;
var _local3 = z;
drawLine(x, y, _local3, _local2, y, _local3);
drawLine(x, _local1, z2, _local2, _local1, z2);
drawLine(x, y, _local3, x, _local1, z2);
drawLine(_local2, y, _local3, _local2, _local1, z2);
}
function drawCube(x, y, z, s) {
var _local1 = s;
var _local2 = z;
var _local3 = y;
drawSquare(x, _local3, _local2, x + _local1, _local3 + _local1, _local2);
drawSquare(x, _local3, _local2 + _local1, x + _local1, _local3 + _local1, _local2 + _local1);
drawLine(x, _local3, _local2, x, _local3, _local2 + _local1);
drawLine(x + _local1, _local3, _local2, x + _local1, _local3, _local2 + _local1);
drawLine(x, _local3 + _local1, _local2, x, _local3 + _local1, _local2 + _local1);
drawLine(x + _local1, _local3 + _local1, _local2, x + _local1, _local3 + _local1, _local2 + _local1);
}
function moveIt() {
var _local1 = this;
if (gameOn == false) {
return(undefined);
}
if (_local1.cdir == 3) {
newchead = _local1.chead - 20;
}
if (_local1.cdir == 1) {
newchead = _local1.chead + 20;
}
if (_local1.cdir == 2) {
newchead = _local1.chead + 1;
}
if (_local1.cdir == 4) {
newchead = _local1.chead - 1;
}
if (newchead < 0) {
destroyIt();
return(undefined);
}
if (newchead > 399) {
destroyIt();
return(undefined);
}
if (_local1["worm" + newchead]._currentframe == 2) {
destroyIt();
return(undefined);
}
if ((((newchead % 20) == 0) && (_local1.cdir == 2)) && (newchead != 0)) {
destroyIt();
return(undefined);
}
if ((((newchead + 1) % 20) == 0) && (_local1.cdir == 4)) {
destroyIt();
return(undefined);
}
_local1["worm" + _local1.chead].gotoAndStop(1);
next = _local1.chead;
_local1.chead = newchead;
_local1["worm" + _local1.chead].gotoAndStop(3);
_local1["worm" + _local1.chead].wormhead.gotoAndStop(_local1.cdir);
_local1["worm" + _local1.chead].wormhead2.gotoAndStop(_local1.cdir);
_local1["worm" + _local1.chead].tail = next;
if (_local1.chead == appleAt) {
placeApple();
toadd = toadd + 3;
_local1.apples = int(_local1.apples) + 1;
lvl = Math.floor(_local1.apples / 10) + 1;
if (lvl >= 5) {
lvl = 4;
}
if (int(lvl) != int(_local1.level)) {
_parent.levelAlert.levelText.level = "Level: " + lvl;
_parent.levelAlert.play();
}
_local1.level = lvl;
}
if (_local1.chead == _local1.apple2At) {
_local1.toadd = 0;
_local1.apple2At = -1;
gnext = _local1["worm" + _local1.chead].tail;
arr = new Array();
while (gnext != null) {
arr[arr.length] = gnext;
gnext = _local1["worm" + gnext].tail;
}
if (arr.length >= 5) {
arr.reverse();
_local1["worm" + arr[0]].gotoAndStop(1);
_local1["worm" + arr[0]].tail = null;
_local1["worm" + arr[1]].gotoAndStop(1);
_local1["worm" + arr[1]].tail = null;
_local1["worm" + arr[2]].gotoAndStop(1);
_local1["worm" + arr[2]].tail = null;
_local1["worm" + arr[3]].tail = null;
}
}
while (next != null) {
obj = _local1["worm" + next];
next = obj.tail;
next2 = _local1["worm" + next].tail;
if (next2 == null) {
if (_local1.toadd == 0) {
_local1["worm" + obj.tail].gotoAndStop(1);
obj.tail = null;
} else {
_local1.toadd--;
}
}
if (next == null) {
} else {
obj.gotoAndStop(2);
}
}
_local1.changed = false;
return(undefined);
}
function destroyIt() {
var _local1 = this;
if (_local1.chance == false) {
_local1.chance = true;
return(undefined);
}
_local1.chance = false;
_local1.gameOn = false;
nxt = _local1["worm" + _local1.chead].tail;
while (nxt != null) {
r = int(Math.random() * 40) + 2;
_local1["worm" + nxt].b1.gotoAndPlay(r);
_local1["worm" + nxt].b2.gotoAndPlay(r);
nxt = _local1["worm" + nxt].tail;
}
_local1["worm" + _local1.chead].wormhead.play();
_local1["worm" + _local1.chead].wormhead2.play();
_parent.btnRestart._visible = true;
return(undefined);
}
function placeApple() {
var _local1 = this;
do {
pos = int(Math.random() * 400);
if (_local1["worm" + pos]._currentframe > 1) {
nopos = true;
} else {
nopos = false;
}
} while (nopos == true);
_local1["worm" + pos].gotoAndStop(4);
_local1.appleAt = pos;
newp = int(Math.random() * 10) + 1;
if (newp == 5) {
placeApple2();
}
}
function placeApple2() {
var _local1 = this;
if (_local1.apple2At != -1) {
return(undefined);
}
do {
pos = int(Math.random() * 400);
if (_local1["worm" + pos]._currentframe > 1) {
nopos = true;
} else {
nopos = false;
}
} while (nopos == true);
_local1["worm" + pos].gotoAndStop(5);
_local1.apple2At = pos;
return(undefined);
}
_parent.btnRestart._visible = false;
this.gameOn = false;
lineStyle(1, 13421772, 50);
drawSquare(-400, 1000, 100, 400, 1000, 900);
var u = 0;
var v = 0;
var n = 0;
u = -400;
while (u < 400) {
v = 100;
while (v < 900) {
drawSquare(u, 1000, v, u + 40, 1000, v + 40);
v = v + 40;
}
u = u + 40;
}
lineStyle(1, 16764108, 100);
v = 100;
while (v < 900) {
drawCube(-440, 960, v, 40);
drawCube(400, 960, v, 40);
v = v + 40;
}
u = -440;
while (u < 440) {
drawCube(u, 960, 900, 40);
u = u + 40;
}
n = 0;
zpoint = 920;
v = 0;
while (v < 20) {
zpoint = zpoint - 40;
u = 0;
while (u < 20) {
w = this.attachMovie("theworm", "worm" + n, n);
w._x = getPointX(-380 + (u * 40), zpoint + 15);
w._y = getPointY(1000, zpoint + 15);
w._visible = true;
w._width = w._width * getPR(zpoint);
w._height = w._height * getPR(zpoint);
w.gotoAndStop(1);
n++;
u++;
}
v++;
}
this.chead = 270;
this.cdir = 3;
this["worm" + this.chead]._visible = true;
this["worm" + this.chead].gotoAndStop(3);
this["worm" + this.chead].wormhead.gotoAndStop(this.cdir);
this["worm" + this.chead].wormhead2.gotoAndStop(this.cdir);
this["worm" + this.chead].tail = this.chead + 20;
this["worm" + (this.chead + 20)].gotoAndStop(2);
this["worm" + (this.chead + 20)].tail = this.chead + 40;
this["worm" + (this.chead + 40)].gotoAndStop(2);
this["worm" + (this.chead + 40)].tail = null;
placeApple();
this.apple2At = -1;
this.changed = false;
this.toadd = 0;
this.apples = 0;
this.level = 1;
this.chance = false;
Symbol 73 Button
on (release, keyPress "<Enter>") {
gotoAndPlay (2);
}
Symbol 74 Button
on (release, keyPress "<Enter>") {
btnPlay._visible = false;
thegame.gameOn = true;
}
Symbol 86 Button
on (release) {
gotoAndStop (2);
}