Frame 2
stop();
Frame 3
_root.bgMusic = new classes.BGM("gameMusic");
_root.sndEffect = new classes.SoundFX(["", "Turn", "Good", "Bad", "Bankrupt", "GameOver", "Solved", "Bonus", "_Click", "_Match"]);
_root.soundFxStats = true;
_root.keyboard = new classes.Keyboard();
_level0.IDS_play_game = "<p align='center'><font size='18'>Play Game</font></p>";
_level0.IDS_end_game = "<p align='center'><font size='18'>End Game</font></p>";
_level0.IDS_restart_game = "<p align='center'><font size='18'>Restart Game</font></p>";
_level0.IDS_send_score = "<p align='center'><font size='18'>Send Score</font></p>";
Frame 4
this.stop();
if (_root.soundFxStats) {
_root.sound_btn.gotoAndStop(1);
} else {
_root.sound_btn.gotoAndStop(2);
}
_root.bgMusic.playMusic();
Instance of Symbol 166 MovieClip in Frame 4
on (rollOver) {
this.gotoAndStop(2);
}
on (rollOut) {
this.gotoAndStop(1);
}
on (release) {
_level0.gLoader.trackPlay();
_root.gotoAndPlay("gameframe");
}
Instance of Symbol 169 MovieClip in Frame 4
on (rollOver) {
this.gotoAndStop(2);
}
on (rollOut) {
this.gotoAndStop(1);
}
on (release) {
_root.bgMusic.stopMusic();
_root.gotoAndPlay("instructframe");
}
Frame 5
stop();
Instance of Symbol 193 MovieClip in Frame 5
on (rollOver) {
this.gotoAndStop(2);
}
on (rollOut) {
this.gotoAndStop(1);
}
on (release) {
_root.gotoAndPlay("resetAllFrame");
}
Frame 6
stop();
_global.gGame = new classes.Game(_root.gameWorld, _root.promptWorld, _root.keyboard);
Instance of Symbol 197 MovieClip in Frame 6
onClipEvent (enterFrame) {
_global.gGame.Main();
}
onClipEvent (mouseUp) {
_global.gGame.Click(_root.gameWorld._xmouse, _root.gameWorld._ymouse);
}
onClipEvent (mouseMove) {
_global.gGame.Move(_root.gameWorld._xmouse, _root.gameWorld._ymouse);
}
onClipEvent (keyUp) {
_global.gGame.Keypress();
}
Frame 7
_root.bgMusic.stopMusic();
_root.final_score_txt.text = "Your Score is " + _global.gGame.GetGameScore();
if (_root.zenMode) {
_root.gotoAndPlay("nosendscoreframe");
}
stop();
Instance of Symbol 218 MovieClip in Frame 7
on (rollOver) {
this.gotoAndStop(2);
}
on (rollOut) {
this.gotoAndStop(1);
}
on (release) {
_root.gotoAndPlay("resetAllFrame");
}
Instance of Symbol 222 MovieClip in Frame 7
on (rollOver) {
this.gotoAndStop(2);
}
on (rollOut) {
this.gotoAndStop(1);
}
on (release) {
_level0.gLoader.sendScore(_global.gGame.GetGameScore());
}
Frame 8
stop();
Instance of Symbol 218 MovieClip in Frame 8
on (rollOver) {
this.gotoAndStop(2);
}
on (rollOut) {
this.gotoAndStop(1);
}
on (release) {
_root.initGame();
}
Instance of Symbol 15 MovieClip "background_mc" in Symbol 21 MovieClip [Prompt] Frame 1
on (rollOver) {
this.useHandCursor = false;
}
on (release) {
_global.gGame.ClosePrompt();
}
Symbol 50 MovieClip [Target] Frame 1
stop();
Symbol 50 MovieClip [Target] Frame 2
stop();
Symbol 55 MovieClip Frame 1
_root.stop();
PercentLoaded = (_root.getBytesLoaded() / _root.getBytesTotal()) * 100;
if (PercentLoaded != 100) {
bar._xscale = PercentLoaded;
} else {
gotoAndStop ("loaded");
}
Symbol 55 MovieClip Frame 2
gotoAndPlay (1);
Symbol 55 MovieClip Frame 3
_root.play();
Symbol 226 MovieClip [__Packages.classes.SoundFX] Frame 0
class classes.SoundFX
{
var soundOn;
function SoundFX (soundPassIn) {
soundOn = true;
soundTakeIn = soundPassIn;
var _local3 = 0;
while (_local3 < soundTakeIn.length) {
sounds[_local3] = new Sound(_root);
sounds[_local3].attachSound(soundTakeIn[_local3]);
_local3++;
}
}
function toggleOnOff() {
soundOn = !soundOn;
}
function playSound(soundName) {
if (soundOn) {
var _local2 = 0;
while (_local2 < sounds.length) {
if (soundTakeIn[_local2] == soundName) {
sounds[_local2].start();
}
_local2++;
}
}
}
var soundTakeIn = new Array();
var sounds = new Array();
}
Symbol 227 MovieClip [__Packages.classes.BGM] Frame 0
class classes.BGM
{
var musicOn, music;
function BGM (musicPassIn) {
musicOn = true;
music = new Sound(_root);
music.attachSound(musicPassIn);
}
function toggleOnOff() {
musicOn = !musicOn;
}
function playMusic() {
if (musicOn) {
music.start();
music.onSoundComplete = function () {
this.start();
};
} else {
music.stop();
}
}
function stopMusic() {
music.stop();
}
}
Symbol 228 MovieClip [__Packages.classes.Keyboard] Frame 0
class classes.Keyboard
{
var cookies, P1Keys, P2Keys;
function Keyboard () {
Setup();
}
function Setup() {
cookies = SharedObject.getLocal("/neopets/gamename/key_config");
if ((cookies.data.P1Keys == undefined) || (cookies.data.P1Keys.down == undefined)) {
Reset();
trace("Keyboard Added");
} else {
P1Keys = cookies.data.P1Keys;
P2Keys = cookies.data.P2Keys;
trace("Keyboard Retrieved");
}
Reset();
}
function Reset() {
P1Keys = new Object();
P1Keys.Up = 87;
P1Keys.Down = 83;
P1Keys.Left = 65;
P1Keys.Right = 68;
P1Keys.Action = 70;
P2Keys = new Object();
P2Keys.Up = 38;
P2Keys.Down = 40;
P2Keys.Left = 37;
P2Keys.Right = 39;
P2Keys.Action = 97;
cookies.data.P1Keys = P1Keys;
cookies.data.P2Keys = P2Keys;
}
}
Symbol 229 MovieClip [__Packages.classes.Game] Frame 0
class classes.Game
{
var gameStatus, gameKeyboard, mcGameWorld, mcPromptWorld, gameTime, gameScoreboard, startTime, gameLevel, gameWorld, mcPrompt;
function Game (mcworld, mcpworld, keyboard) {
InitVars(mcworld, mcpworld, keyboard);
LoadScoreboard();
}
function InitVars(mcworld, mcpworld, keyboard) {
gameStatus = stageLOADLEVEL;
gameKeyboard = keyboard;
mcGameWorld = mcworld;
mcPromptWorld = mcpworld;
gameInfo[infoLevel] = 1;
gameInfo[infoTotal] = 0;
gameInfo[infoScore] = 0;
}
function Main() {
gameTime = getTimer();
switch (gameStatus) {
case stageLOADLEVEL :
gLoadLevel();
break;
case stageLOADWORLD :
sLoadWorld();
break;
case stageRUNNING :
sRunning();
break;
case stageCOMPLETE :
sComplete();
break;
case gameOVER :
gOver();
break;
case stagePAUSE :
sPause();
}
}
function LoadScoreboard() {
gameScoreboard = new classes.Scoreboard();
}
function gLoadLevel() {
startTime = gameTime;
gameLevel = new classes.Level();
levelArray = gameLevel.GetLevel();
gameInfo[infoTotal] = 0;
gameScoreboard.DisplayScore();
gameStatus = stageLOADWORLD;
}
function sLoadWorld() {
gameWorld = new classes.World(mcGameWorld, gameKeyboard, levelArray);
gameStatus = stageRUNNING;
}
function sRunning() {
gameWorld.Main(gameTime);
var _local2 = gameTime - startTime;
_local2 = int(_local2 / 1000);
if (_local2 >= roundTime) {
gameStatus = gameOVER;
}
var _local3 = roundTime - _local2;
gameScoreboard.UpdateTime(_local3);
}
function sComplete() {
IncreaseGameLevel();
if (gameInfo[infoLevel] <= 7) {
gameStatus = stageLOADLEVEL;
} else {
_global.gameCompleted = true;
gameStatus = gameOVER;
}
}
function gOver() {
_root.gotoAndPlay("gameoverframe");
}
function sPause() {
}
function GetGameLevel() {
return(gameInfo[infoLevel]);
}
function GetTotalCleared() {
return(gameInfo[infoTotal]);
}
function IncreaseTotalCleared(tileCleared) {
gameInfo[infoTotal] = gameInfo[infoTotal] + tileCleared;
IncreaseGameScore(tileCleared);
}
function GetGameScore() {
return(gameInfo[infoScore]);
}
function IncreaseGameScore(multiply) {
var _local2 = multiply;
while (_local2 > 0) {
gameInfo[infoScore] = gameInfo[infoScore] + (5 * _local2);
_local2--;
}
gameScoreboard.DisplayScore();
}
function IncreaseGameLevel() {
gameInfo[infoLevel]++;
gameScoreboard.DisplayLevel();
}
function OpenPrompt() {
mcPrompt = mcPromptWorld.attachMovie("Prompt", "Prompt", 0);
gameStatus = stagePAUSE;
}
function ClosePrompt() {
mcPrompt.removeMovieClip();
gameStatus = stageCOMPLETE;
}
function Click(xPos, yPos) {
gameWorld.Click(xPos, yPos);
}
var roundTime = 180;
var gameInfo = new Array();
var levelArray = new Array();
var popDepth = 10000;
var stageLOADLEVEL = 0;
var stageLOADWORLD = 1;
var stageRUNNING = 2;
var stageCOMPLETE = 3;
var gameOVER = 4;
var stagePAUSE = 5;
var infoLevel = 0;
var infoTotal = 1;
var infoScore = 2;
}
Symbol 230 MovieClip [__Packages.classes.Level] Frame 0
class classes.Level
{
var gameTime;
function Level () {
trace("Level Constructor Loaded");
InitVars();
InitLevel();
}
function InitVars() {
}
function Main(gtime) {
UpdateTime(gtime);
}
function UpdateTime(gtime) {
gameTime = gtime;
}
function InitLevel() {
var _local2 = random(3) + 1;
switch (_local2) {
case 1 :
Stage1();
break;
case 2 :
Stage2();
break;
case 3 :
Stage3();
break;
case 4 :
Stage4();
}
}
function Stage1() {
levelArray = new Array();
levelArray[0] = new Array(1, 3, 7, 2, 3, 2, 2, 0, 0, 2);
levelArray[1] = new Array(0, 2, 5, 1, 1, 4, 3, 1, 5, 1);
levelArray[2] = new Array(1, 0, 0, 2, 1, 3, 3, 2, 1, 2);
levelArray[3] = new Array(0, 1, 6, 0, 6, 2, 5, 1, 3, 2);
levelArray[4] = new Array(7, 0, 1, 1, 0, 2, 3, 2, 3, 6);
levelArray[5] = new Array(1, 1, 2, 4, 6, 0, 2, 3, 7, 1);
levelArray[6] = new Array(0, 1, 0, 0, 1, 1, 2, 1, 2, 2);
levelArray[7] = new Array(1, 0, 5, 1, 3, 2, 3, 0, 6, 1);
levelArray[8] = new Array(0, 0, 7, 1, 0, 4, 5, 3, 2, 3);
levelArray[9] = new Array(1, 3, 3, 0, 1, 1, 2, 3, 1, 3);
}
function Stage2() {
levelArray = new Array();
levelArray[0] = new Array(3, 3, 1, 2, 3, 2, 2, 0, 0, 2);
levelArray[1] = new Array(1, 2, 2, 1, 1, 0, 3, 1, 2, 1);
levelArray[2] = new Array(2, 0, 0, 2, 1, 2, 3, 2, 1, 2);
levelArray[3] = new Array(0, 1, 5, 0, 0, 5, 1, 1, 5, 0);
levelArray[4] = new Array(0, 0, 2, 2, 3, 1, 1, 2, 3, 0);
levelArray[5] = new Array(1, 1, 3, 3, 0, 0, 2, 4, 0, 7);
levelArray[6] = new Array(0, 6, 0, 4, 1, 1, 2, 1, 2, 7);
levelArray[7] = new Array(1, 0, 3, 1, 3, 2, 3, 0, 0, 1);
levelArray[8] = new Array(6, 0, 2, 1, 0, 2, 1, 1, 2, 3);
levelArray[9] = new Array(1, 3, 3, 0, 4, 1, 2, 3, 1, 7);
}
function Stage3() {
levelArray = new Array();
levelArray[0] = new Array(3, 3, 1, 2, 3, 2, 2, 0, 1, 1);
levelArray[1] = new Array(1, 2, 2, 0, 1, 0, 3, 1, 0, 1);
levelArray[2] = new Array(2, 3, 3, 2, 0, 2, 3, 2, 0, 2);
levelArray[3] = new Array(0, 5, 3, 0, 0, 3, 1, 4, 3, 0);
levelArray[4] = new Array(0, 0, 2, 6, 6, 3, 4, 2, 3, 0);
levelArray[5] = new Array(1, 2, 3, 3, 0, 0, 2, 1, 0, 1);
levelArray[6] = new Array(0, 5, 0, 0, 1, 1, 3, 7, 1, 7);
levelArray[7] = new Array(1, 0, 3, 1, 4, 2, 3, 0, 6, 1);
levelArray[8] = new Array(0, 5, 2, 3, 2, 2, 1, 1, 2, 3);
levelArray[9] = new Array(1, 3, 2, 3, 1, 1, 2, 1, 2, 3);
}
function Stage4() {
levelArray = new Array();
levelArray[0] = new Array(0, 1, 1, 6, 0, 1, 1, 6, 5, 0);
levelArray[1] = new Array(3, 0, 6, 7, 0, 0, 1, 6, 5, 1);
levelArray[2] = new Array(3, 7, 5, 2, 2, 3, 5, 2, 3, 3);
levelArray[3] = new Array(2, 2, 5, 2, 3, 3, 5, 2, 2, 3);
levelArray[4] = new Array(0, 1, 1, 6, 0, 1, 1, 6, 5, 0);
levelArray[5] = new Array(0, 0, 5, 6, 0, 0, 1, 6, 5, 1);
levelArray[6] = new Array(3, 7, 3, 2, 2, 3, 5, 2, 3, 3);
levelArray[7] = new Array(2, 7, 5, 2, 3, 3, 5, 2, 2, 3);
levelArray[8] = new Array(0, 1, 1, 6, 0, 1, 1, 6, 5, 0);
levelArray[9] = new Array(0, 0, 1, 6, 0, 0, 1, 6, 5, 1);
}
function GetLevel() {
return(levelArray);
}
function GetNeededNumber() {
return(tileNeeded);
}
var levelArray = new Array();
var tileType = new Array();
var gridTableSize = 9;
var tileNeeded = 70;
}
Symbol 231 MovieClip [__Packages.classes.World] Frame 0
class classes.World
{
var gameKB, mcGameWorld, gameTiles, gameTarget, gameTime;
function World (mcworld, keyboard, lvlArray) {
InitVars(mcworld, keyboard, lvlArray);
LoadTiles();
LoadTarget();
}
function InitVars(mcworld, keyboard, lvlArray) {
gameKB = keyboard;
mcGameWorld = mcworld;
levelArray = lvlArray;
}
function Main(gtime) {
UpdateTime(gtime);
KeyControl();
gameTiles.Main();
gameTarget.Main();
}
function KeyControl() {
if (Key.isDown(gameKB.P1Keys.Up)) {
}
if (Key.isDown(gameKB.P1Keys.Down)) {
}
if (Key.isDown(gameKB.P1Keys.Left)) {
}
if (Key.isDown(gameKB.P1Keys.Right)) {
}
if (Key.isDown(gameKB.P1Keys.Action)) {
}
}
function Click(xPos, yPos) {
gameTarget.Click(xPos, yPos);
}
function UpdateTime(gtime) {
gameTime = gtime;
}
function LoadTiles() {
gameTiles = new classes.Tiles(mcGameWorld, levelArray);
}
function LoadTarget() {
gameTarget = new classes.Target(mcGameWorld, gameTiles);
}
function CheckNoMoves() {
return(gameTiles.CheckNoMoves());
}
var levelArray = new Array();
var vMoveLeft = 0;
var vMoveRight = 1;
var vMoveUp = 2;
var vMoveDown = 3;
}
Symbol 232 MovieClip [__Packages.classes.Tiles] Frame 0
class classes.Tiles
{
var mcGameWorld, tileStatus, gameTime, tile1, tile1MoveX, tile1MoveY, tile2, tile2MoveX, tile2MoveY, mainTileX, mainTileY, subTileX, subTileY, swapCounter, gameCheckMoves;
function Tiles (mworld, lvlArray) {
InitVars(mworld, lvlArray);
LoadCheckMoves();
BasicGenerate();
}
function InitVars(mworld, lvlArray) {
mcGameWorld = mworld;
levelArray = lvlArray;
tileStatus = statusNothing;
}
function Main(gtime) {
UpdateTime(gtime);
switch (tileStatus) {
case statusNothing :
Nothing();
break;
case statusSwapping :
Swapping();
break;
case statusClear :
Clear();
break;
case statusClearing :
Clearing();
break;
case statusSwappingBack :
SwappingBack();
break;
case statusCompress :
Compress();
break;
case statusCompressing :
Compressing();
break;
case statusCheckForMoves :
CheckForMoves();
}
}
function UpdateTime(gtime) {
gameTime = gtime;
}
function BasicGenerate() {
yPos = 0;
var _local3 = 0;
while (_local3 < tilesRow) {
tilesArray[_local3] = new Array();
var _local2 = 0;
while (_local2 < tilesColumn) {
var _local5 = levelArray[_local3][_local2];
var _local4 = (_local3 * tilesColumn) + _local2;
tilesArray[_local3][_local2] = mcGameWorld.attachMovie("Tile" + _local5, (("Tile" + _local3) + "_") + _local2, tilesDepth + _local4);
tilesArray[_local3][_local2]._x = xPos;
tilesArray[_local3][_local2]._y = yPos;
xPos = xPos + gridSize;
_local2++;
}
xPos = 0;
yPos = yPos + gridSize;
_local3++;
}
}
function Swap(sTileX, sTileY, cTileX, cTileY) {
var _local6 = tilesArray[sTileY][sTileX];
var _local9 = tilesArray[sTileY][sTileX]._x;
var _local8 = tilesArray[sTileY][sTileX]._y;
var _local7 = levelArray[sTileY][sTileX];
tile1 = tilesArray[sTileY][sTileX];
tile1MoveX = tilesArray[cTileY][cTileX]._x - tilesArray[sTileY][sTileX]._x;
tile1MoveY = tilesArray[cTileY][cTileX]._y - tilesArray[sTileY][sTileX]._y;
tile2 = tilesArray[cTileY][cTileX];
tile2MoveX = tile1MoveX * -1;
tile2MoveY = tile1MoveY * -1;
tilesArray[sTileY][sTileX] = tilesArray[cTileY][cTileX];
levelArray[sTileY][sTileX] = levelArray[cTileY][cTileX];
tilesArray[cTileY][cTileX] = _local6;
levelArray[cTileY][cTileX] = _local7;
tilesArray[cTileY][cTileX].swapDepths(tilesArray[sTileY][sTileX]);
mainTileX = sTileX;
mainTileY = sTileY;
subTileX = cTileX;
subTileY = cTileY;
tileBusy = true;
swapCounter = 1;
bClearAll = false;
tileStatus = statusSwapping;
}
function GetTileID(sTileX, sTileY) {
return(levelArray[sTileY][sTileX]);
}
function CheckBusy() {
return(tileBusy);
}
function Nothing() {
}
function Swapping() {
tile1._x = tile1._x + (tile1MoveX / swapSpeed);
tile1._y = tile1._y + (tile1MoveY / swapSpeed);
tile2._x = tile2._x + (tile2MoveX / swapSpeed);
tile2._y = tile2._y + (tile2MoveY / swapSpeed);
swapCounter++;
if (swapCounter > swapSpeed) {
tileStatus = statusClear;
}
}
function SwappingBack() {
tile1._x = tile1._x + (tile1MoveX / swapSpeed);
tile1._y = tile1._y + (tile1MoveY / swapSpeed);
tile2._x = tile2._x + (tile2MoveX / swapSpeed);
tile2._y = tile2._y + (tile2MoveY / swapSpeed);
swapCounter++;
if (swapCounter > swapSpeed) {
tileStatus = statusNothing;
}
}
function Clear() {
var _local3 = levelArray[mainTileY][mainTileX];
var _local2 = levelArray[subTileY][subTileX];
if (_local3 != 100) {
CheckRow(mainTileY, mainTileX, _local3);
CheckCol(mainTileY, mainTileX, _local3);
}
if (_local2 != 100) {
CheckRow(subTileY, subTileX, _local2);
CheckCol(subTileY, subTileX, _local2);
}
clearCounter = 0;
tileStatus = statusClearing;
}
function CheckRow(tileY, tileX, ttype) {
var _local9 = 0;
var _local10 = 0;
var _local4 = false;
var _local5 = false;
var _local11 = 0;
var _local3 = tileX;
while (_local3 <= 9) {
if (_local4 == false) {
if (levelArray[tileY][_local3 + 1] == ttype) {
_local10++;
} else {
_local4 = true;
}
}
_local3++;
}
_local3 = tileX;
while (_local3 >= 0) {
if (_local5 == false) {
if (levelArray[tileY][_local3 - 1] == ttype) {
_local9++;
} else {
_local5 = true;
}
}
_local3--;
}
_local11 = (_local10 + _local9) + 1;
if (_local11 >= 3) {
SetRow(tileX, tileY, _local9, _local10);
_root.sndEffect.playSound("_Match");
}
}
function CheckCol(tileY, tileX, ttype) {
var _local9 = 0;
var _local10 = 0;
var _local4 = false;
var _local5 = false;
var _local11 = 0;
var _local3 = tileY;
while (_local3 <= 9) {
if (_local5 == false) {
if (levelArray[_local3 + 1][tileX] == ttype) {
_local10++;
} else {
_local5 = true;
}
}
_local3++;
}
_local3 = tileY;
while (_local3 >= 3) {
if (_local4 == false) {
if (levelArray[_local3 - 1][tileX] == ttype) {
_local9++;
} else {
_local4 = true;
}
}
_local3--;
}
_local11 = (_local10 + _local9) + 1;
if (_local11 >= 3) {
SetCol(tileX, tileY, _local10, _local9);
_root.sndEffect.playSound("_Match");
}
}
function SetRow(tileX, tileY, leftrowNo, rightrowNo) {
var _local3 = tileX;
while (_local3 <= (tileX + rightrowNo)) {
levelArray[tileY][_local3] = 99;
_local3++;
}
var _local2 = tileX;
while (_local2 > (tileX - leftrowNo)) {
levelArray[tileY][_local2 - 1] = 99;
_local2--;
}
}
function SetCol(tileX, tileY, downcolNo, upcolNo) {
var _local3 = tileY;
while (_local3 <= (tileY + downcolNo)) {
levelArray[_local3][tileX] = 99;
_local3++;
}
var _local2 = tileY;
while (_local2 > (tileY - upcolNo)) {
levelArray[_local2 - 1][tileX] = 99;
_local2--;
}
}
function Clearing() {
var _local5 = 0;
while (_local5 <= 9) {
var _local4 = 0;
while (_local4 <= 9) {
if (levelArray[_local5][_local4] == 99) {
if (!clearSounded) {
_root.sndEffect.playSound("Correct");
_root.Portrait.Character.gotoAndPlay(2);
clearSounded = true;
}
tilesArray[_local5][_local4]._alpha = tilesArray[_local5][_local4]._alpha - 20;
}
_local4++;
}
_local5++;
}
clearCounter++;
if (clearCounter >= 5) {
var _local6 = 0;
_local5 = 0;
while (_local5 <= 9) {
var _local4 = 0;
while (_local4 <= 9) {
if (levelArray[_local5][_local4] == 99) {
_local6++;
tilesArray[_local5][_local4]._visible = false;
levelArray[_local5][_local4] = 100;
}
_local4++;
}
_local5++;
}
_global.gGame.IncreaseTotalCleared(_local6);
if (_local6 > 0) {
tileStatus = statusCompress;
} else if (_local6 == 0) {
if (!bClearAll) {
SwapBack();
} else {
tileStatus = statusCheckForMoves;
}
}
clearSounded = false;
tileBusy = false;
}
}
function GetClearedNumber() {
return(tilesTotalClear);
}
function CheckReady() {
if (tileStatus == statusNothing) {
return(true);
}
return(false);
}
function SwapBack() {
Swap(mainTileX, mainTileY, subTileX, subTileY);
tileStatus = statusSwappingBack;
}
function Compress() {
var _local4 = 0;
var _local5;
var _local2 = tilesRow - 1;
while (_local2 > -1) {
var _local3 = 0;
while (_local3 < tilesColumn) {
if (levelArray[_local2][_local3] == 100) {
if (lowestEmptyRow == 999) {
lowestEmptyRow = _local2;
}
_local4++;
if (_local2 == lowestEmptyRow) {
tilesArray[_local2][_local3].removeMovieClip();
}
levelArray[_local2][_local3] = levelArray[_local2 - 1][_local3];
tilesArray[_local2][_local3] = tilesArray[_local2 - 1][_local3];
levelArray[_local2 - 1][_local3] = 100;
tilesArray[_local2 - 1][_local3] = undefined;
if (_local2 == 1) {
levelArray[_local2 - 1][_local3] = 101;
tilesArray[_local2 - 1][_local3] = undefined;
}
}
_local3++;
}
_local2--;
}
if (_local4 == 0) {
SetShift();
}
}
function SetShift() {
shiftArray = new Array();
shiftAmount = 0;
var _local3 = 0;
while (_local3 < tilesColumn) {
shiftArray[_local3] = new Array();
columnLowest[_local3] = undefined;
var _local2 = lowestEmptyRow;
while (_local2 > -1) {
if (tilesArray[_local2][_local3] != undefined) {
if (tilesArray[_local2][_local3]._y != (_local2 * gridSize)) {
var _local6 = ((_local2 * tilesColumn) + _local3) + tilesDepth;
var _local5 = tilesArray[_local2][_local3]._x;
var _local4 = tilesArray[_local2][_local3]._y;
tilesArray[_local2][_local3].removeMovieClip();
tilesArray[_local2][_local3] = mcGameWorld.attachMovie("Tile" + levelArray[_local2][_local3], (("Tile" + _local2) + "_") + _local3, _local6);
tilesArray[_local2][_local3]._x = _local5;
tilesArray[_local2][_local3]._y = _local4;
if (columnLowest[_local3] == undefined) {
columnLowest[_local3] = _local2;
}
shiftArray[_local3].push(tilesArray[_local2][_local3]);
shiftAmount++;
}
}
_local2--;
}
_local3++;
}
Generate();
_local3 = 0;
while (_local3 < tilesColumn) {
_local3++;
}
_local3 = 0;
while (_local3 < tilesColumn) {
dropYDist[_local3] = 0;
if (columnLowest[_local3] != undefined) {
dropYDist[_local3] = (columnLowest[_local3] * gridSize) - shiftArray[_local3][0]._y;
}
_local3++;
}
tileStatus = statusCompressing;
}
function Generate() {
var _local5 = 0;
var _local2 = 0;
while (_local2 < tilesColumn) {
var _local3 = lowestEmptyRow;
while (_local3 > -1) {
if (levelArray[_local3][_local2] == 101) {
_local5++;
var _local4 = ((_local3 * tilesColumn) + _local2) + tilesDepth;
levelArray[_local3][_local2] = random(8);
tilesArray[_local3][_local2] = mcGameWorld.attachMovie("Tile" + levelArray[_local3][_local2], (("Tile" + _local3) + "_") + _local2, _local4);
tilesArray[_local3][_local2]._x = shiftArray[_local2][shiftArray[_local2].length - 1]._x;
tilesArray[_local3][_local2]._y = shiftArray[_local2][shiftArray[_local2].length - 1]._y - gridSize;
shiftArray[_local2].push(tilesArray[_local3][_local2]);
}
_local3--;
}
_local2++;
}
}
function Compressing() {
var _local3 = 0;
while (_local3 < tilesColumn) {
if (dropYDist[_local3] > 0) {
var _local2 = 0;
while (_local2 < shiftArray[_local3].length) {
shiftArray[_local3][_local2]._y = shiftArray[_local3][_local2]._y + dropSpeed;
_local2++;
}
dropYDist[_local3] = dropYDist[_local3] - dropSpeed;
}
_local3++;
}
var _local4 = 0;
_local3 = 0;
while (_local3 < tilesColumn) {
_local4 = _local4 + dropYDist[_local3];
_local3++;
}
if (_local4 <= 0) {
lowestEmptyRow = 999;
BasicGenerate();
ClearAll();
}
}
function ClearAll() {
var _local4 = 2;
while (_local4 < tilesRow) {
var _local2 = 0;
while (_local2 < tilesColumn) {
var _local3 = levelArray[_local4][_local2];
if ((_local3 != 100) || (_local3 != 99)) {
CheckRow(_local4, _local2, _local3);
CheckCol(_local4, _local2, _local3);
}
_local2++;
}
_local4++;
}
bClearAll = true;
clearCounter = 0;
tileStatus = statusClearing;
}
function LoadCheckMoves() {
gameCheckMoves = new classes.CheckMoves();
}
function CheckForMoves() {
var _local5 = new Array();
var _local4 = 0;
while (_local4 < tilesRow) {
_local5[_local4] = new Array();
var _local3 = 0;
while (_local3 < tilesColumn) {
_local5[_local4][_local3] = levelArray[_local4][_local3];
_local3++;
}
_local4++;
}
var _local6 = gameCheckMoves.CheckAvailable(_local5);
_global.trace("bGotMoves=" + _local6);
_local6 = true;
if (_local6) {
tileStatus = statusNothing;
} else {
tileStatus = statusGameOver;
}
}
function CheckNoMoves() {
if (tileStatus == statusGameOver) {
return(true);
}
return(false);
}
var gridSize = 50;
var tilesArray = new Array();
var levelArray = new Array();
var shiftArray = new Array();
var shiftAmount = 0;
var tilesDepth = 100;
var tilesRow = 10;
var tilesColumn = 10;
var xPos = 0;
var yPos = 0;
var clearCounter = 0;
var tileBusy = false;
var clearSounded = false;
var tilesTotalClear = 0;
var bClearAll = false;
var dropYDist = new Array();
var lowestEmptyRow = 999;
var columnLowest = new Array();
var swapSpeed = 3;
var dropSpeed = 15;
var vMoveLeft = 0;
var vMoveRight = 1;
var vMoveUp = 2;
var vMoveDown = 3;
var statusNothing = 0;
var statusSwapping = 1;
var statusClear = 2;
var statusClearing = 3;
var statusSwappingBack = 4;
var statusCompress = 5;
var statusCompressing = 6;
var statusCheckForMoves = 7;
var statusGameOver = 8;
}
Symbol 233 MovieClip [__Packages.classes.CheckMoves] Frame 0
class classes.CheckMoves
{
var gameTime, mainTileX, mainTileY, subTileX, subTileY;
function CheckMoves () {
InitVars();
}
function InitVars() {
checkArray[0] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
checkArray[1] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
checkArray[2] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
checkArray[3] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
checkArray[4] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
checkArray[5] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
checkArray[6] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
checkArray[7] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
checkArray[8] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
checkArray[9] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[0] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[1] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[2] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[3] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[4] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[5] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[6] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[7] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[8] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
tempCheckArray[9] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
function Main(gtime) {
UpdateTime(gtime);
}
function UpdateTime(gtime) {
gameTime = gtime;
}
function Swap(sTileX, sTileY, cTileX, cTileY) {
var _local6 = tempCheckArray[sTileY][sTileX];
tempCheckArray[sTileY][sTileX] = tempCheckArray[cTileY][cTileX];
tempCheckArray[cTileY][cTileX] = _local6;
mainTileX = sTileX;
mainTileY = sTileY;
subTileX = cTileX;
subTileY = cTileY;
}
function CheckGotMoves() {
var _local3 = tempCheckArray[mainTileY][mainTileX];
var _local2 = tempCheckArray[subTileY][subTileX];
var _local7 = CheckRow(mainTileY, mainTileX, _local3);
var _local5 = CheckCol(mainTileY, mainTileX, _local3);
var _local6 = CheckRow(subTileY, subTileX, _local2);
var _local4 = CheckCol(subTileY, subTileX, _local2);
if (((_local7 || (_local5)) || (_local6)) || (_local4)) {
return(true);
}
return(false);
}
function CheckRow(tileY, tileX, ttype) {
var _local8 = 0;
var _local9 = 0;
var _local3 = false;
var _local4 = false;
var _local10 = 0;
var _local2 = tileX;
while (_local2 <= 9) {
if (_local3 == false) {
if (tempCheckArray[tileY][_local2 + 1] == ttype) {
_local9++;
} else {
_local3 = true;
}
}
_local2++;
}
_local2 = tileX;
while (_local2 >= 0) {
if (_local4 == false) {
if (tempCheckArray[tileY][_local2 - 1] == ttype) {
_local8++;
} else {
_local4 = true;
}
}
_local2--;
}
_local10 = (_local9 + _local8) + 1;
if (_local10 >= 3) {
return(true);
}
return(false);
}
function CheckCol(tileY, tileX, ttype) {
var _local8 = 0;
var _local9 = 0;
var _local3 = false;
var _local4 = false;
var _local10 = 0;
var _local2 = tileY;
while (_local2 <= 9) {
if (_local4 == false) {
if (tempCheckArray[_local2 + 1][tileX] == ttype) {
_local9++;
} else {
_local4 = true;
}
}
_local2++;
}
_local2 = tileY;
while (_local2 >= 3) {
if (_local3 == false) {
if (tempCheckArray[_local2 - 1][tileX] == ttype) {
_local8++;
} else {
_local3 = true;
}
}
_local2--;
}
_local10 = (_local9 + _local8) + 1;
if (_local10 >= 3) {
return(true);
}
return(false);
}
function CheckAvailable(tarray) {
_global.trace("checkMoves::CheckAvailable(tarray)");
var _local4 = 0;
while (_local4 < tilesRow) {
var _local3 = 0;
while (_local3 < tilesColumn) {
checkArray[_local4][_local3] = tarray[_local4][_local3];
tempCheckArray[_local4][_local3] = tarray[_local4][_local3];
_local3++;
}
_local4++;
}
var _local6 = CheckAll();
return(_local6);
}
function Reset() {
var _local3 = 0;
while (_local3 < tilesRow) {
var _local2 = 0;
while (_local2 < tilesColumn) {
tempCheckArray[_local3][_local2] = checkArray[_local3][_local2];
_local2++;
}
_local3++;
}
}
function CheckAll() {
var _local5 = false;
var _local4 = false;
var _local3 = 3;
while (_local3 < (tilesRow - 1)) {
var _local2 = 0;
while (_local2 < (tilesColumn - 1)) {
Swap(_local2, _local3, _local2 + 1, _local3);
_local5 = CheckGotMoves();
Reset();
Swap(_local2, _local3, _local2, _local3 + 1);
_local4 = CheckGotMoves();
Reset();
if (_local5 || (_local4)) {
return(true);
}
_local2++;
}
_local3++;
}
return(false);
}
var checkArray = new Array();
var tempCheckArray = new Array();
var tilesRow = 10;
var tilesColumn = 10;
}
Symbol 234 MovieClip [__Packages.classes.Target] Frame 0
class classes.Target
{
var mcGameWorld, gameTiles, targetStatus, gameTime, mcTarget;
function Target (mworld, gtiles) {
InitVars(mworld, gtiles);
LoadTargetSprite();
}
function InitVars(mworld, gtiles) {
mcGameWorld = mworld;
gameTiles = gtiles;
targetStatus = statusSelectFirst;
}
function Main(gtime) {
UpdateTime(gtime);
if (targetStatus == statusWait) {
Wait();
}
}
function UpdateTime(gtime) {
gameTime = gtime;
}
function LoadTargetSprite() {
mcTarget = mcGameWorld.attachMovie("Target", "Target", 1000);
}
function Click(xPos, yPos) {
_global.trace("click");
_root.sndEffect.playSound("_Click");
var _local5 = Math.floor(xPos / gridSize);
var _local4 = Math.floor(yPos / gridSize);
switch (targetStatus) {
case statusSelectFirst :
SelectFirst(_local5, _local4);
break;
case statusSelectSecond :
SelectSecond(_local5, _local4);
break;
case statusWait :
_global.trace("Target::targetStatus = statusWait");
}
}
function SelectFirst(iCol, iRow) {
if ((iRow >= 2) && (iRow < tilesRow)) {
if ((iCol >= 0) && (iCol < tilesColumn)) {
mcTarget._visible = true;
firstGridX = iCol;
firstGridY = iRow;
mcTarget._x = iCol * gridSize;
mcTarget._y = iRow * gridSize;
targetStatus = statusSelectSecond;
}
}
}
function SelectSecond(iCol, iRow) {
if ((iRow >= 2) && (iRow < tilesRow)) {
if ((iCol >= 0) && (iCol < tilesColumn)) {
if ((iCol == (firstGridX + 1)) || (iCol == (firstGridX - 1))) {
if (iRow == firstGridY) {
secondGridX = iCol;
secondGridY = iRow;
ShiftTile();
targetStatus = statusWait;
} else {
mcTarget._visible = false;
targetStatus = statusWait;
}
} else if ((iRow == (firstGridY + 1)) || (iRow == (firstGridY - 1))) {
if (iCol == firstGridX) {
secondGridX = iCol;
secondGridY = iRow;
ShiftTile();
targetStatus = statusWait;
}
} else {
mcTarget._visible = false;
targetStatus = statusWait;
}
}
}
}
function ShiftTile() {
mcTarget._visible = false;
gameTiles.Swap(firstGridX, firstGridY, secondGridX, secondGridY);
}
function Wait() {
var _local2 = gameTiles.CheckReady();
if (_local2) {
targetStatus = statusSelectFirst;
}
}
var firstGridX = 0;
var firstGridY = 0;
var secondGridX = 0;
var secondGridY = 0;
var gridSize = 50;
var targetLocked = false;
var tilesRow = 10;
var tilesColumn = 10;
var startSelectTime = 0;
var startMoveTime = 0;
var vMoveLeft = 0;
var vMoveRight = 1;
var vMoveUp = 2;
var vMoveDown = 3;
var statusSelectFirst = 0;
var statusSelectSecond = 1;
var statusWait = 2;
}
Symbol 235 MovieClip [__Packages.classes.Scoreboard] Frame 0
class classes.Scoreboard
{
function Scoreboard () {
InitVars();
}
function InitVars() {
}
function Main() {
}
function LivesGraphic() {
if (_global.gGame.GetGameLives() > 4) {
_root.Lives1._alpha = 100;
_root.Lives2._visible = false;
_root.Lives3._visible = false;
_root.Lives4._visible = false;
_root.livesMax_txt.htmlText = " X " + _global.gGame.GetGameLives();
} else if (_global.gGame.GetGameLives() == 4) {
_root.Lives1._alpha = 100;
_root.Lives2._alpha = 100;
_root.Lives3._alpha = 100;
_root.Lives1._visible = true;
_root.Lives2._visible = true;
_root.Lives3._visible = true;
_root.Lives4._visible = true;
_root.livesMax_txt.htmlText = "";
} else if (_global.gGame.GetGameLives() == 3) {
_root.Lives1._alpha = 100;
_root.Lives2._alpha = 100;
_root.Lives3._alpha = 100;
_root.Lives1._visible = true;
_root.Lives2._visible = true;
_root.Lives3._visible = true;
_root.Lives4._visible = false;
_root.livesMax_txt.htmlText = "";
} else if (_global.gGame.GetGameLives() == 2) {
_root.Lives1._alpha = 100;
_root.Lives2._alpha = 100;
_root.Lives3._alpha = 25;
_root.Lives1._visible = true;
_root.Lives2._visible = true;
_root.Lives3._visible = true;
_root.Lives4._visible = false;
_root.livesMax_txt.htmlText = "";
} else if (_global.gGame.GetGameLives() == 1) {
_root.Lives1._alpha = 100;
_root.Lives2._alpha = 25;
_root.Lives3._alpha = 25;
_root.Lives1._visible = true;
_root.Lives2._visible = true;
_root.Lives3._visible = true;
_root.Lives4._visible = false;
_root.livesMax_txt.htmlText = "";
}
}
function DisplayTileCleared(tilesClear, tilesNeed) {
_root.clear_txt.htmlText = ((("<p align='center'><font size='18'>Tiles Cleared<br>" + tilesClear) + "/") + tilesNeed) + "</font></p>";
}
function DisplayScore() {
_root.Panel.score_txt.text = _global.gGame.GetGameScore();
}
function DisplayLevel() {
_root.level_txt.htmlText = "Level: " + _global.gGame.GetGameLevel();
}
function UpdateTime(iTime) {
if (savedTime != iTime) {
savedTime = iTime;
var _local5 = int(iTime / 60);
var _local3 = iTime - (_local5 * 60);
if (_local3 < 10) {
var _local6 = "0";
} else {
var _local6 = "";
}
_root.Panel.time_txt.text = ((_local5 + ":") + _local6) + _local3;
}
}
var savedTime = 0;
}
Symbol 123 MovieClip Frame 186
stop();
this._parent.play();
Symbol 166 MovieClip Frame 1
stop();
Symbol 166 MovieClip Frame 2
stop();
Symbol 169 MovieClip Frame 1
stop();
Symbol 169 MovieClip Frame 2
stop();
Symbol 170 MovieClip Frame 1
stop();
Symbol 170 MovieClip Frame 2
stop();
Symbol 173 MovieClip Frame 1
stop();
Symbol 173 MovieClip Frame 2
stop();
Symbol 175 MovieClip Frame 1
stop();
Instance of Symbol 170 MovieClip in Symbol 175 MovieClip Frame 1
on (rollOver) {
this.gotoAndStop(2);
}
on (rollOut) {
this.gotoAndStop(1);
}
on (release) {
_root.bgMusic.toggleOnOff();
_root.sndEffect.toggleOnOff();
_root.bgMusic.playMusic();
_root.soundFxStats = true;
this._parent.gotoAndStop(2);
}
Symbol 175 MovieClip Frame 2
stop();
Instance of Symbol 173 MovieClip in Symbol 175 MovieClip Frame 2
on (rollOver) {
this.gotoAndStop(2);
}
on (rollOut) {
this.gotoAndStop(1);
}
on (release) {
_root.bgMusic.toggleOnOff();
_root.sndEffect.toggleOnOff();
_root.bgMusic.playMusic();
_root.soundFxStats = false;
this._parent.gotoAndStop(1);
}
Symbol 183 Button
on (release) {
getURL ("http://www.mrtiki.com/?ref=Wee", "_blank");
}
Symbol 190 MovieClip Frame 1
play();
Symbol 190 MovieClip Frame 10
stop();
Symbol 193 MovieClip Frame 1
stop();
Symbol 193 MovieClip Frame 2
stop();
Symbol 200 Button
on (rollOver) {
this.exit.gotoAndStop(2);
}
on (rollOut) {
this.exit.gotoAndStop(1);
}
on (release) {
_root.gotoAndPlay("gameoverframe");
}
Symbol 208 MovieClip Frame 1
stop();
Symbol 208 MovieClip Frame 2
stop();
Symbol 218 MovieClip Frame 1
stop();
Symbol 218 MovieClip Frame 2
stop();
Symbol 222 MovieClip Frame 1
stop();
Symbol 222 MovieClip Frame 2
stop();