Frame 2
gotoAndPlay (9);
Frame 5
stop();
stopAllSounds();
Frame 6
stop();
Frame 7
stopAllSounds();
gotoAndPlay (9);
Frame 9
play();
Frame 75
stop();
Frame 76
score = 0;
Frame 77
function initVars() {
pacDir = 3;
pacPos = 0;
pacX = 14;
pacY = 23;
nextX = pacX - 1;
nextY = pacY;
nextPacDir = 3;
ghKill = 100;
ghBlue = 0;
numEyes = 0;
Pacman.gotoAndStop(1);
pacStep = 4;
pacPosMax = 2;
pauseCount = 0;
with (Pacman) {
_x = OFFX + (12 * pacX);
_y = OFFY + (12 * pacY);
_rotation = 0;
}
tellTarget (Ghost[1]) {
ghPos = 1;
ghDir = 3;
ghX = 13;
ghY = 11;
ghNX = ghX - 1;
_y = (_root.OFFY + 132);
cOrig = 14483456 /* 0xDD0000 */;
};
tellTarget (Ghost[2]) {
ghDir = 0;
ghX = 13;
cOrig = 16751001 /* 0xFF9999 */;
};
tellTarget (Ghost[3]) {
ghDir = 2;
ghX = 11;
cOrig = 6750207 /* 0x66FFFF */;
};
tellTarget (Ghost[4]) {
ghDir = 2;
ghX = 15;
cOrig = 16750848 /* 0xFF9900 */;
};
g = 1;
while (g < 5) {
tellTarget (Ghost[g]) {
if (this.g > 1) {
ghPos = 0;
ghY = 14;
ghNX = ghX;
_y = (_root.OFFY + 174);
}
_x = ((_root.OFFX + (12 * ghX)) + 6);
gotoAndStop (1);
Eyes.gotoAndStop(1);
gNum = 0;
ghNY = ghY;
ghStep = 4;
ghPosMax = 2;
ghFast = true;
Shape._visible = true;
Shape.Hit._visible = true;
c = new Color(Shape);
c.setRGB(cOrig);
};
g++;
}
}
function setPacMove(d) {
with (_root) {
if (d == 0) {
nextX = pacX;
nextY = pacY - 1;
Pacman._rotation = 90;
} else if (d == 1) {
nextX = pacX + 1;
nextY = pacY;
Pacman._rotation = 180;
} else if (d == 2) {
nextX = pacX;
nextY = pacY + 1;
Pacman._rotation = -90;
} else if (d == 3) {
nextX = pacX - 1;
nextY = pacY;
Pacman._rotation = 0;
}
}
}
function setGhMove(d, g) {
with (_root.Ghost[g]) {
if (d == 0) {
ghNX = ghX;
ghNY = ghY - 1;
} else if (d == 1) {
ghNX = ghX + 1;
ghNY = ghY;
} else if (d == 2) {
ghNX = ghX;
ghNY = ghY + 1;
} else if (d == 3) {
ghNX = ghX - 1;
ghNY = ghY;
}
}
}
function startBGSnd() {
tellTarget (BGSnd) {
if (_root.ghBlue > 2) {
if (_root.numEyes) {
EyesGh.start(0, 100);
BlueGh.stop();
} else {
EyesGh.stop();
BlueGh.start(0, 100);
}
} else {
BlueGh.stop();
EyesGh.stop();
eval ("Back" + _root.bgNum).start(0, 1000);
}
};
}
OFFX = 18;
OFFY = 18;
score = 0;
lastScore = 0;
lives = 3;
level = 0;
fruitNum = 1;
notMute = true;
newLev = true;
newLife = false;
newGame = true;
quttting = false;
quit = false;
Snd.ChSnd = true;
Pacman.Hit._visible = false;
ghPause = 40;
ghBVal = 162;
ghMove = new Array(4);
ghChoice = new Array(4);
ghBest = new Array(4);
g = 1;
while (g < 5) {
Ghost.attachMovie("Ghost", g, g);
Ghost.attachMovie("GhKill", "K" + g, g + 4);
Ghost["K" + g].Scr.kval = "";
g++;
}
i = 1;
while (i < 5) {
_root["Life" + i].gotoAndStop(1);
if (i >= lives) {
_root["Life" + i]._visible = false;
}
i++;
}
m = "#############################............##............##.####.#####.##.#####.####.##O####.#####.##.#####.####O##.####.#####.##.#####.####.##..........................##.####.##.########.##.####.##.####.##.########.##.####.##......##....##....##......#######.##### ## #####.############.##### ## #####.############.## ##.############.## ######## ##.############.## # # # ## ##.######L . # # # ## . R######.## ### #### ##.############.## ######## ##.############.## ##.############.## ######## ##.############.## ######## ##.#######............##............##.####.#####.##.#####.####.##.####.#####.##.#####.####.##O..##....... .......##..O####.##.##.########.##.##.######.##.##.########.##.##.####......##....##....##......##.##########.##.##########.##.##########.##.##########.##..........................#############################";
i = -1;
while (i < 29) {
Maze.attachMovie("Empty", i, i + 1);
i++;
}
pos = 0;
j = 0;
while (j < 31) {
i = 0;
while (i < 28) {
Maze[i][j] = m.charAt(pos++);
pill = false;
if (Maze[i][j] == ".") {
pill = true;
Maze[i].attachMovie("Pill", "P" + j, pos);
}
if (Maze[i][j] == "O") {
pill = true;
Maze[i].attachMovie("Power", "P" + j, pos);
}
if (pill) {
with (Maze[i]["P" + j]) {
_x = OFFX + (12 * i);
_y = OFFY + (12 * j);
}
}
i++;
}
j++;
}
Instance of Symbol 40 MovieClip [Empty] "Maze" in Frame 77
onClipEvent (keyDown) {
with (_root) {
if (Key.getCode() == 38) {
nextPacDir = 0;
} else if (Key.getCode() == 39) {
nextPacDir = 1;
} else if (Key.getCode() == 40) {
nextPacDir = 2;
} else if (Key.getCode() == 37) {
nextPacDir = 3;
} else if (playing && ((Key.getCode() == 80) || (Key.getCode() == 112))) {
if (Ready._visible) {
Ready._visible = false;
Ready.gotoAndStop(1);
if (notMute) {
startBGSnd();
}
if (!stopped) {
Pacman.play();
}
play();
} else {
stop();
Ready.gotoAndStop("Paused");
Ready._visible = true;
stopAllSounds();
Pacman.stop();
}
} else if (playing && (((Key.getCode() == 81) || (Key.getCode() == 113)) || (Key.getCode() == 27))) {
quitting = true;
stop();
Ready.gotoAndStop("Quit");
Ready._visible = true;
stopAllSounds();
Pacman.stop();
} else if (quitting && ((Key.getCode() == 78) || (Key.getCode() == 110))) {
quitting = false;
Ready._visible = false;
Ready.gotoAndStop(1);
if (notMute) {
startBGSnd();
}
if (!stopped) {
Pacman.play();
}
play();
} else if (quitting && ((Key.getCode() == 89) || (Key.getCode() == 121))) {
quit = true;
play();
} else if ((playing && (!Ready._visible)) && ((Key.getCode() == 77) || (Key.getCode() == 109))) {
notMute = !notMute;
if (notMute) {
startBGSnd();
} else {
stopAllSounds();
}
} else if ((Key.getCode() == 76) || (Key.getCode() == 108)) {
toggleHighQuality();
}
}
}
Frame 78
stop();
stopAllSounds();
playing = false;
stopped = true;
Fruit.gotoAndStop(1);
if (newLev) {
newLev = false;
bgNum = 1;
pillEat = 0;
level++;
if (ghPause > 4) {
ghPause = ghPause - 4;
}
if (ghBVal > 2) {
ghBVal = ghBVal - 10;
}
if (fruitNum < 14) {
fruitNum++;
FrLev.gotoAndStop(fruitNum);
}
initVars();
if (!newGame) {
g = 1;
while (g < 5) {
Ghost[g]._visible = false;
g++;
}
Pacman._visible = false;
BGSnd.gotoAndPlay("NewLev");
}
}
if (newLife) {
newLife = false;
Ready._visible = true;
lives--;
if (lives == 0) {
Pacman._visible = false;
Ready.gotoAndStop("GameOver");
} else {
eval ("Life" + lives)._visible = false;
initVars();
BGSnd.gotoAndPlay("NewLife");
}
}
if (newGame) {
BGSnd.gotoAndPlay("NewGame");
}
Frame 79
ang = Math.abs(pacDir - nextPacDir) / 2;
if (ang == 1) {
pacDir = nextPacDir;
} else if (pacPos == 0) {
tempDir = pacDir;
pacDir = nextPacDir;
}
setPacMove(pacDir);
if (pacPos == 0) {
P = Maze[pacX]["P" + pacY];
if (P._visible) {
pacStep = 4;
pacPosMax = 2;
if (notMute) {
tellTarget (Snd) {
if (ChSnd) {
gotoAndPlay ("Chomp1");
} else {
gotoAndPlay ("Chomp2");
}
ChSnd = !ChSnd;
};
}
P._visible = false;
pillEat++;
if (pillEat == 244) {
newLev = true;
gotoAndStop ("Restart");
}
score = score + 10;
if (Maze[pacX][pacY] == "O") {
score = score + 40;
if (notMute) {
BGSnd.BlueGh.start(0, 100);
}
ghBlue = 200;
ghKill = 100;
g = 1;
while (g < 5) {
tellTarget (Ghost[g]) {
if (Shape._visible) {
c.setRGB(13311);
gotoAndStop (2);
ghFast = false;
e = new Color(PPEyes);
e.setRGB(16777215);
}
};
g++;
}
}
} else if ((++pauseCount) % 2) {
pacStep = 4;
pacPosMax = 2;
} else {
pacStep = 6;
pacPosMax = 1;
}
if (Maze[pacX + 1][pacY] == "L") {
pacX = 28;
nextX = 27;
Pacman._x = OFFX + 336;
} else if (Maze[pacX - 1][pacY] == "R") {
pacX = -1;
nextX = 0;
Pacman._x = OFFX - 12;
}
if ((Maze[nextX][nextY] == "#") && (ang != 1)) {
pacDir = tempDir;
setPacMove(pacDir);
}
}
if (!((pacPos == 0) && (Maze[nextX][nextY] == "#"))) {
with (Pacman) {
if (nextX < pacX) {
_x = _x - pacStep;
pacPos--;
} else if (nextX > pacX) {
_x = _x + pacStep;
pacPos++;
} else if (nextY < pacY) {
_y = _y - pacStep;
pacPos--;
} else if (nextY > pacY) {
_y = _y + pacStep;
pacPos++;
}
}
if ((pacPos < 0) || (pacPos > pacPosMax)) {
if (pacPos > pacPosMax) {
pacPos = 0;
} else if (pacPos < 0) {
pacPos = pacPosMax;
}
pacX = nextX;
pacY = nextY;
}
if (stopped) {
stopped = false;
Pacman.play();
}
} else if (!stopped) {
stopped = true;
Pacman.gotoAndStop(1);
}
tellTarget ("Fruit") {
if (_currentframe == 1) {
if (!random(600)) {
gotoAndStop(_root.fruitNum);
}
} else if (fCount) {
if (hitTest(_root.Pacman.Hit)) {
gotoAndStop ("Show");
} else {
fCount--;
}
} else {
gotoAndStop (1);
}
};
if (ghBlue) {
ghBlue--;
}
unBlue = false;
g = 1;
while (g < 5) {
with (Ghost[g]) {
if (ghBlue && (_currentframe == 2)) {
if (((((ghBlue == 50) || (ghBlue == 40)) || (ghBlue == 30)) || (ghBlue == 20)) || (ghBlue == 10)) {
c.setRGB(16777215);
e.setRGB(16711680);
} else if (((((ghBlue == 45) || (ghBlue == 35)) || (ghBlue == 25)) || (ghBlue == 15)) || (ghBlue == 5)) {
c.setRGB(13311);
e.setRGB(16777215);
} else if (ghBlue == 1) {
gotoAndStop(1);
c.setRGB(cOrig);
ghFast = true;
}
}
gTest = false;
if (ghPos == 0) {
if ((Maze[ghX + 1][ghY] == "L") && (ghDir == 3)) {
ghX = 29;
ghNX = 28;
_x = OFFX + 348;
} else if ((Maze[ghX - 1][ghY] == "R") && (ghDir == 1)) {
ghX = -2;
ghNX = -1;
_x = OFFX - 24;
} else if ((ghX > 0) && (ghX < 27)) {
i = 0;
while (i < 4) {
ghMove[i] = 1;
i++;
}
oppDir = ((ghDir < 2) ? (ghDir + 2) : (ghDir - 2));
ghMove[oppDir] = 0;
if (Maze[ghX][ghY - 1] == "#") {
ghMove[0] = 0;
}
if (Maze[ghX + 1][ghY] == "#") {
ghMove[1] = 0;
}
if (Maze[ghX][ghY + 1] == "#") {
ghMove[2] = 0;
}
if (Maze[ghX - 1][ghY] == "#") {
ghMove[3] = 0;
}
pos = 0;
i = 0;
while (i < 4) {
ghChoice[i] = -1;
if (ghMove[i]) {
ghChoice[pos++] = i;
}
i++;
}
bestXDir = -1;
bestYDir = -1;
if (Shape._visible && (_currentframe == 1)) {
testX = pacX;
testY = pacY;
} else {
testX = 13;
testY = 11;
}
if (testX < ghX) {
bestXDir = 3;
} else if (testX > ghX) {
bestXDir = 1;
}
if (testY < ghY) {
bestYDir = 0;
} else if (testY > ghY) {
bestYDir = 2;
}
best = 0;
i = 0;
while (i < pos) {
if ((ghChoice[i] == bestXDir) || (ghChoice[i] == bestYDir)) {
ghBest[best++] = ghChoice[i];
}
i++;
}
if ((best == 0) || (Shape._visible && (!random(3)))) {
ghDir = ghChoice[random(pos)];
} else {
ghDir = ghBest[random(best)];
}
if (ghFast) {
ghStep = 4;
ghPosMax = 2;
} else {
ghStep = 2;
ghPosMax = 5;
}
gNum++;
if (ghX == 13) {
if ((ghY > 11) && (ghY < 15)) {
if (Shape._visible) {
gTest = true;
ghDir = 0;
if (gNum < 4) {
_y = _y - 2;
}
} else if (ghY == 13) {
unBlue = true;
numEyes--;
Shape._visible = true;
Shape.Hit._visible = true;
}
} else if (ghY == 11) {
if ((gNum == 1) && (g == 1)) {
_x = _x - 2;
}
if (gNum == 4) {
ghPos = 2;
if (ghFast) {
_x = _x + 2;
} else {
_x = _x - 2;
}
}
if (!Shape._visible) {
gTest = true;
ghDir = 2;
}
}
}
if ((ghY > 11) && (ghY < 15)) {
if ((ghX == 11) && (gNum == (ghPause + 2))) {
gTest = true;
ghDir = 1;
gNum = -1;
}
if ((ghX == 15) && (gNum == ((2 * ghPause) + 2))) {
gTest = true;
ghDir = 3;
gNum = -1;
}
}
}
}
setGhMove(ghDir, g);
if ((!((ghPos == 0) && (Maze[ghNX][ghNY] == "#"))) || (gTest)) {
if (ghNX < ghX) {
_x = _x - ghStep;
ghPos--;
} else if (ghNX > ghX) {
_x = _x + ghStep;
ghPos++;
} else if (ghNY < ghY) {
_y = _y - ghStep;
ghPos--;
} else if (ghNY > ghY) {
_y = _y + ghStep;
ghPos++;
}
Eyes.gotoAndStop(ghDir + 1);
if ((ghPos < 0) || (ghPos > ghPosMax)) {
if (ghPos > ghPosMax) {
ghPos = 0;
} else if (ghPos < 0) {
ghPos = ghPosMax;
}
ghX = ghNX;
ghY = ghNY;
}
}
if ((Shape.Hit._visible && (Pacman.Hit.hitTest(Shape.Hit))) && (!newLev)) {
if (_currentframe == 1) {
_root.stop();
playing = false;
Pacman.gotoAndPlay("Die");
} else {
ghKill = ghKill * 2;
score = score + ghKill;
ghFast = true;
if (ghPos > ghPosMax) {
ghPos = 0;
} else if (ghPos < 0) {
ghPos = ghPosMax;
}
if (notMute) {
Snd.gotoAndPlay("EatGhost");
}
gotoAndStop(1);
numEyes++;
Shape._visible = false;
Shape.Hit._visible = false;
c.setRGB(cOrig);
with (Ghost02["K" + g]) {
_x = Ghost[g]._x;
_y = Ghost[g]._y;
Scr.kval = ghKill;
play();
}
}
}
}
g++;
}
if (ghBlue && (notMute)) {
with (BGSnd) {
if (ghBlue == 1) {
BlueGh.stop();
EyesGh.stop();
eval ("Back" + bgNum).start(0, 1000);
} else if (unBlue && (!numEyes)) {
EyesGh.stop();
BlueGh.start(0, 100);
}
}
}
if (lastScore != score) {
s = Math.floor(score / 10000);
sTest = (s + 1) / 2;
if (((lives < 5) && (sTest == int(sTest))) && (Math.floor(lastScore / 10000) < s)) {
eval ("Life" + lives)._visible = true;
lives++;
if (notMute) {
BGSnd.ExLife.start(0, 6);
}
}
}
lastScore = score;
if (!playing) {
stop();
}
if (quit) {
gotoAndStop ("Menu");
}
Frame 80
gotoAndPlay ("Loop");
Frame 82
gotoAndPlay (9);
Symbol 26 MovieClip Frame 1
stop();
Symbol 29 MovieClip [Ghost] Frame 1
stop();
Symbol 35 MovieClip [Ghost02] Frame 1
stop();
Symbol 39 MovieClip [GhKill] Frame 1
stop();
Symbol 39 MovieClip [GhKill] Frame 2
tellTarget (_root) {
playing = false;
Pacman._visible = false;
};
play();
Symbol 39 MovieClip [GhKill] Frame 12
tellTarget (_root) {
playing = true;
Pacman._visible = true;
gotoAndPlay ("Loop");
};
Symbol 39 MovieClip [GhKill] Frame 41
Scr.kval = "";
tellTarget (_parent) {
if (fval) {
gotoAndStop (1);
}
};
Symbol 47 Button
on (release) {
getURL ("http://sgtpepper17.deviantart.com", "_blank");
}
Symbol 53 Button
on (release) {
_root.play();
}
Symbol 54 MovieClip Frame 1
_root.stop();
PercentLoaded = (_root.getBytesLoaded() / _root.getBytesTotal()) * 100;
if (PercentLoaded != 100) {
bar._xscale = PercentLoaded;
} else {
gotoAndStop ("loaded");
}
Symbol 54 MovieClip Frame 2
gotoAndPlay (1);
Symbol 65 Button
on (release) {
gotoAndPlay (9);
}
Symbol 104 Button
on (release) {
gotoAndStop (8);
}
Symbol 123 Button
on (release) {
gotoAndStop (6);
}
Symbol 128 Button
on (release) {
gotoAndPlay (7);
}
Symbol 168 MovieClip Frame 135
gotoAndPlay (2);
Symbol 175 Button
on (release) {
play();
}
Symbol 177 Button
on (release) {
gotoAndStop (5);
}
Symbol 181 Button
on (release) {
gotoAndStop (3);
}
Symbol 186 Button
on (release) {
gotoAndStop (4);
}
Symbol 189 Button
on (release) {
getURL ("http://www.neave.com/webgames", "_blank");
}
Symbol 193 Button
on (release) {
getURL ("http://renaru-san.deviantart.com/", "_self");
}
Symbol 217 MovieClip Frame 1
fCount = 200;
stop();
Symbol 217 MovieClip Frame 2
fval = 100;
Symbol 217 MovieClip Frame 3
fval = 300;
Symbol 217 MovieClip Frame 4
fval = 500;
Symbol 217 MovieClip Frame 5
fval = 500;
Symbol 217 MovieClip Frame 6
fval = 700;
Symbol 217 MovieClip Frame 7
fval = 700;
Symbol 217 MovieClip Frame 8
fval = 1000;
Symbol 217 MovieClip Frame 9
fval = 1000;
Symbol 217 MovieClip Frame 10
fval = 2000;
Symbol 217 MovieClip Frame 11
fval = 2000;
Symbol 217 MovieClip Frame 12
fval = 3000;
Symbol 217 MovieClip Frame 13
fval = 3000;
Symbol 217 MovieClip Frame 14
fval = 5000;
Symbol 217 MovieClip Frame 15
stop();
tellTarget (_root) {
if (notMute) {
Snd.gotoAndPlay("EatFruit");
}
};
_root.score = _root.score + fval;
F.Scr.kval = fval;
F.gotoAndPlay(2);
Symbol 222 MovieClip Frame 5
gotoAndPlay (1);
Symbol 222 MovieClip Frame 6
_root.BGSnd.stop();
stopAllSounds();
Symbol 222 MovieClip Frame 25
_root.BGSnd.gotoAndPlay("Killed");
tellTarget (_root) {
g = 1;
while (g < 5) {
Ghost[g]._visible = false;
g++;
}
};
Symbol 222 MovieClip Frame 27
_rotation = 0;
Symbol 222 MovieClip Frame 77
stop();
tellTarget (_root) {
newLife = true;
gotoAndPlay ("Restart");
};
Symbol 233 MovieClip Frame 5
tellTarget (_root) {
if (notMute) {
BGSnd.NewLev.start();
}
};
Symbol 233 MovieClip Frame 33
stop();
Symbol 235 MovieClip Frame 26
stop();
_root.gotoAndPlay("Over");
Symbol 236 MovieClip Frame 1
stop();
Instance of Symbol 233 MovieClip "LevMov" in Symbol 236 MovieClip Frame 4
onClipEvent (load) {
with (_root) {
Num.lval = ((level < 10) ? ("0" + level) : (level));
}
}
Symbol 240 MovieClip Frame 1
stop();
Back1 = new Sound();
Back1.attachSound("BG1");
BlueGh = new Sound();
EyesGh.attachSound("BGEyes");
ExLife = new Sound();
ExLife.attachSound("ExLife");
NewLev = new Sound();
NewLev.attachSound("NewLev");
Symbol 240 MovieClip Frame 2
if (!_root.notMute) {
gotoAndPlay ("NewLev");
}
Symbol 240 MovieClip Frame 31
tellTarget (_root) {
if (!newGame) {
Ready.gotoAndStop("Level");
Ready._visible = true;
j = 0;
while (j < 31) {
i = 0;
while (i < 28) {
Maze[i]["P" + j]._visible = true;
i++;
}
j++;
}
}
newGame = false;
};
Symbol 240 MovieClip Frame 65
tellTarget (_root) {
g = 1;
while (g < 5) {
Ghost[g]._visible = true;
g++;
}
Pacman._visible = true;
Ready.gotoAndStop(1);
};
Symbol 240 MovieClip Frame 87
tellTarget (_root) {
Ready._visible = false;
playing = true;
play();
if (notMute) {
BGSnd["Back" + bgNum].start(0, 1000);
}
};
stop();
Symbol 240 MovieClip Frame 88
if (!_root.notMute) {
stop();
}
Symbol 240 MovieClip Frame 90
stop();
Symbol 245 MovieClip Frame 1
stop();
Symbol 245 MovieClip Frame 3
stop();
Symbol 245 MovieClip Frame 5
stop();
Symbol 245 MovieClip Frame 18
stop();
_root.BGSnd.EyesGh.start(0, 100);
Symbol 245 MovieClip Frame 20
stop();