Frame 1
function menuHandler(o, item) {
item.customItems[0].caption = (paused ? "Unpause game" : "Pause game");
item.customItems[2].caption = ((mute_sound.getVolume() == 0) ? "Unmute sound" : "Mute sound");
}
function quitGame() {
gameOver = true;
Key.removeListener(keyListener);
delete _root.onEnterFrame;
gotoAndStop (2);
}
function pauseGame() {
paused = !paused;
s_mc._alpha = (paused ? 25 : 100);
}
function muteSound() {
if (mute_sound.getVolume() == 0) {
mute_sound.setVolume(100);
mute_mc._visible = false;
} else {
mute_sound.setVolume(0);
mute_mc._visible = true;
}
}
stop();
mute_sound = new Sound();
this.onEnterFrame = function () {
sofar = this.getBytesLoaded();
total = this.getBytesTotal();
if (sofar == total) {
delete this.onEnterFrame;
gotoAndStop (2);
}
};
Stage.showMenu = true;
fs_cm = new ContextMenu(menuHandler);
fs_cm.hideBuiltInItems();
fs_cm.customItems.push(new ContextMenuItem("Pause game", pauseGame, false, true, false), new ContextMenuItem("Quit game", quitGame, false, true, false), new ContextMenuItem("Mute sound", muteSound, false, true, false));
_root.menu = fs_cm;
Frame 2
String.prototype.stripSpaces = function () {
if (this.length == 0) {
return("");
}
this=this.split(".").join("");//parameter overwritten
this.split(".").join("");
this=this.split("-").join("");//parameter overwritten
this.split("-").join("");
while (this.charAt(0) == " ") {
this=this.substr(1);//parameter overwritten
this.substr(1);
}
this=this.split(" ").join(" ");//parameter overwritten
this.split(" ").join(" ");
this=this.split(" ").join(" ");//parameter overwritten
this.split(" ").join(" ");
return(this);
};
game_so = SharedObject.getLocal("neaveSnake");
score = 0;
level = 2;
f1_mc.onEnterFrame = (f2_mc.onEnterFrame = (f3_mc.onEnterFrame = (f4_mc.onEnterFrame = function () {
this._rotation = this._rotation + 5;
})));
slug_btn.onRollOver = function () {
slug_mc.gotoAndStop(2);
};
slug_btn.onRollOut = (slug_btn.onDragOut = function () {
slug_mc.gotoAndStop(1);
});
slug_btn.onRelease = function () {
level = 2;
play();
};
worm_btn.onRollOver = function () {
worm_mc.gotoAndStop(2);
};
worm_btn.onRollOut = (worm_btn.onDragOut = function () {
worm_mc.gotoAndStop(1);
});
worm_btn.onRelease = function () {
level = 1;
play();
};
python_btn.onRollOver = function () {
python_mc.gotoAndStop(2);
};
python_btn.onRollOut = (python_btn.onDragOut = function () {
python_mc.gotoAndStop(1);
});
python_btn.onRelease = function () {
level = 0;
play();
};
highScores_btn.onRollOver = function () {
highScores_mc._alpha = 100;
};
highScores_btn.onRollOut = (highScores_btn.onDragOut = function () {
highScores_mc._alpha = 40;
});
highScores_btn.onRelease = function () {
gotoAndStop (44);
};
neave_btn.onRelease = function () {
getURL ("https://neave.com/games/", "_top");
};
neave_btn._visible = (_url.indexOf("file:///") == -1) && (_url.indexOf("https://playsnake.org") == -1);
_root.menu.customItems[0].visible = (_root.menu.customItems[1].visible = (_root.menu.customItems[2].visible = false));
Frame 3
function makeFood() {
do {
fx = int(Math.random() * (gx - 1)) + 1;
fy = int(Math.random() * (gy - 1)) + 1;
} while (s_mc[fx][fy]._visible);
with (s_mc[fx][fy]) {
fuse = 75;
gotoAndStop(2);
_visible = true;
}
}
Key.removeListener(keyListener);
keyListener = new Object();
keyListener.onKeyDown = function () {
if (Key.getCode() == 77) {
muteSound();
}
};
Key.addListener(keyListener);
score = 0;
len = 2;
gx = 21;
gy = 15;
max = ((gx - 2) * (gy - 2)) - 3;
vx = 0;
vy = 1;
x = 11;
y = 4;
gameOver = (paused = (moved = false));
levelName = "LEVEL: " + ["PYTHON", "WORM", "SLUG"][level];
mute_btn.onRelease = muteSound;
if (mute_sound.getVolume() > 0) {
mute_mc._visible = false;
}
var i = 0;
while (i <= gx) {
s_mc.createEmptyMovieClip(i, i);
var j = 0;
while (j <= gy) {
s_mc[i].attachMovie("snake", j, j, {_x:i * 12, _y:j * 12, _visible:false, fuse:0});
j++;
}
i++;
}
Frame 42
stop();
_root.menu.customItems[0].visible = (_root.menu.customItems[1].visible = (_root.menu.customItems[2].visible = true));
makeFood();
lc = level;
this.onEnterFrame = function () {
if (paused) {
return(undefined);
}
if (lc) {
lc--;
return(undefined);
}
lc = level;
x = x + vx;
y = y + vy;
if ((x == fx) && (y == fy)) {
score = score + (s_mc[x][y].fuse + 1);
len++;
with (s_mc[x][y]) {
fuse = len;
gotoAndStop(1);
}
for (var i in s_mc) {
for (var j in s_mc[i]) {
if (s_mc[i][j]._visible) {
s_mc[i][j].fuse++;
}
}
}
makeFood();
} else if (((((s_mc[x][y]._visible || (x == 0)) || (x == gx)) || (y == 0)) || (y == gy)) || (len > max)) {
gameOver = true;
s_mc._alpha = 25;
Key.removeListener(keyListener);
nextFrame();
delete this.onEnterFrame;
}
with (s_mc[x][y]) {
fuse = len;
_visible = true;
}
moved = false;
updateAfterEvent();
};
Key.removeListener(keyListener);
keyListener = new Object();
keyListener.onKeyDown = function () {
if (gameOver) {
return(undefined);
}
var _local1 = Key.getCode();
switch (_local1) {
case 32 :
case 80 :
pauseGame();
break;
case 77 :
muteSound();
}
if ((!paused) && (!moved)) {
switch (_local1) {
case 38 :
case 87 :
case 192 :
if (vy == 0) {
vx = 0;
vy = -1;
moved = true;
}
break;
case 40 :
case 83 :
case 191 :
if (vy == 0) {
vx = 0;
vy = 1;
moved = true;
}
break;
case 37 :
case 65 :
case 90 :
if (vx == 0) {
vx = -1;
vy = 0;
moved = true;
}
break;
case 39 :
case 68 :
case 88 :
if (vx != 0) {
break;
}
vx = 1;
vy = 0;
moved = true;
}
}
};
Key.addListener(keyListener);
Frame 43
stop();
_root.menu.customItems[0].visible = (_root.menu.customItems[1].visible = (_root.menu.customItems[2].visible = false));
name_txt.restrict = "A-Z 0-9";
tempName = ((game_so.data.playerName.length > 0) ? (game_so.data.playerName.stripSpaces()) : "");
Selection.setFocus(name_txt);
Selection.setSelection(name_txt.length, name_txt.length);
ok_btn.onRollOver = function () {
ok_mc._alpha = 100;
};
ok_btn.onRollOut = (ok_btn.onDragOut = function () {
ok_mc._alpha = 40;
});
ok_btn.onRelease = function () {
if (name_txt.length > 0) {
game_so.data.playerName = name_txt.text.stripSpaces();
}
delete tempName;
nextFrame();
};
ok_btn.onKeyDown = function () {
name_txt.text = name_txt.text.stripSpaces();
if (Key.getCode() == 13) {
Key.removeListener(this);
this.onRelease();
}
updateAfterEvent();
};
ok_btn.onKeyUp = function () {
name_txt.text = name_txt.text.stripSpaces();
updateAfterEvent();
};
Key.addListener(ok_btn);
Frame 44
function showScores() {
var _local2 = 5;
while (_local2 > 0) {
var _local6 = scoreboard_lv["name" + (page + _local2)];
var _local5 = scoreboard_lv["score" + (page + _local2)];
var _local4 = this[("line" + _local2) + "_mc"];
var _local3 = this[("line" + _local2) + "bg_mc"];
_local4.rank_txt.text = (_local3.rank_txt.text = (page + _local2) + ".");
_local4.name_txt.text = (_local3.name_txt.text = (_local6.length ? (_local6.stripSpaces().toUpperCase()) : "-"));
_local4.score_txt.text = (_local3.score_txt.text = (_local5.length ? (_local5) : "-"));
_local4._visible = (_local3._visible = true);
loading_mc._visible = false;
_local2--;
}
}
function loadScores(num) {
next_btn._visible = (back_btn._visible = (slug_btn.enabled = (worm_btn.enabled = (python_btn.enabled = false))));
slug_mc._alpha = (worm_mc._alpha = (python_mc._alpha = 40));
switch (num) {
case 2 :
slug_mc._alpha = 100;
break;
case 1 :
worm_mc._alpha = 100;
break;
default :
python_mc._alpha = 100;
}
var _local2 = 5;
while (_local2 > 0) {
this[("line" + _local2) + "_mc"]._visible = (this[("line" + _local2) + "bg_mc"]._visible = false);
_local2--;
}
loading_mc.gotoAndStop(1);
loading_mc._visible = true;
page = 0;
maxScore = 100;
scoreboard_lv = new LoadVars();
if ((score > 0) && (game_so.data.playerName.length > 0)) {
scoreboard_lv.score = score;
scoreboard_lv.name = game_so.data.playerName.stripSpaces().toLowerCase();
}
scoreboard_lv.url = _url;
scoreboard_lv.game = "snake" + (3 - num);
scoreboard_lv.sendAndLoad("https://neave.com/games/games_score.php", scoreboard_lv, "POST");
scoreboard_lv.onLoad = function (success) {
if (success) {
if (scoreboard_lv.success == "1") {
next_btn._visible = true;
if (scoreboard_lv.maxScore.length > 0) {
maxScore = Number(scoreboard_lv.maxScore);
}
showScores();
} else {
loading_mc.errorMsg = scoreboard_lv.errorMsg.toUpperCase();
loading_mc.gotoAndStop(2);
}
} else {
loading_mc.errorMsg = "COULD NOT ACCESS SCORES.";
loading_mc.gotoAndStop(2);
}
switch (num) {
case 2 :
worm_btn.enabled = (python_btn.enabled = true);
break;
case 1 :
slug_btn.enabled = (python_btn.enabled = true);
break;
default :
slug_btn.enabled = (worm_btn.enabled = true);
}
};
score = 0;
}
function gotoIntro() {
gotoAndStop (2);
}
stop();
back_btn.onPress = function () {
page = page - 5;
if (page < 0) {
page = 0;
}
if (page < 5) {
back_btn._visible = false;
}
next_btn._visible = true;
showScores();
};
next_btn.onPress = function () {
page = page + 5;
if (page > maxScore) {
page = maxScore;
}
if (page > (maxScore - 10)) {
next_btn._visible = false;
}
back_btn._visible = true;
showScores();
};
newGame_btn.onRelease = function () {
getURL ("javascript:location.href='https://playsnake.org/';void(0);");
setTimeout(gotoIntro, 1000);
};
slug_btn.onRollOver = function () {
slug_mc._alpha = 100;
};
slug_btn.onRollOut = (slug_btn.onDragOut = function () {
slug_mc._alpha = 40;
});
slug_btn.onRelease = function () {
loadScores(2);
};
worm_btn.onRollOver = function () {
worm_mc._alpha = 100;
};
worm_btn.onRollOut = (worm_btn.onDragOut = function () {
worm_mc._alpha = 40;
});
worm_btn.onRelease = function () {
loadScores(1);
};
python_btn.onRollOver = function () {
python_mc._alpha = 100;
};
python_btn.onRollOut = (python_btn.onDragOut = function () {
python_mc._alpha = 40;
});
python_btn.onRelease = function () {
loadScores(0);
};
loadScores(level);
Symbol 3 MovieClip Frame 4
stop();
Symbol 5 MovieClip [snake] Frame 1
stop();
this.onEnterFrame = function () {
if (_root.lc) {
return(undefined);
}
if ((!_root.gameOver) && (!_root.paused)) {
if (fuse) {
fuse--;
} else {
_visible = false;
}
}
};
Symbol 5 MovieClip [snake] Frame 2
this.onEnterFrame = function () {
if (((!_root.gameOver) && (!_root.paused)) && (fuse)) {
fuse--;
FoodBG._rotation = (Food._rotation = Food._rotation + (fuse / 4));
}
};
Symbol 13 MovieClip Frame 1
if (_parent._name == "worm_mc") {
step = 2;
} else if (_parent._name == "python_mc") {
step = 3;
} else {
step = 1;
}
this.onEnterFrame = function () {
gotoAndStop(_currentframe + step);
};
Symbol 13 MovieClip Frame 41
gotoAndPlay (2);
Symbol 13 MovieClip Frame 42
gotoAndPlay (2);
Symbol 14 MovieClip Frame 1
stop();
Symbol 16 MovieClip Frame 1
stop();
Symbol 18 MovieClip Frame 1
stop();
Symbol 60 MovieClip Frame 1
stop();
errorMsg = "";
Symbol 66 Button
on (rollOver) {
NG._alpha = 100;
}
on (rollOut, dragOut) {
NG._alpha = 40;
}