Instance of Symbol 115 MovieClip in Frame 1
on (press) {
getURL ("http://games.cublo.com", "_blank");
}
Frame 2
function playsound(which, loop) {
snd.stop();
snd = new Sound(displayer);
snd.attachSound(which);
snd.start(0, loop);
}
function start() {
this.onEnterFrame = null;
n = 1;
while (n <= totaljewels) {
removeMovieClip(container[n]);
n++;
}
totaljewels = 1;
grid = new Array();
row = new Array();
n = 1;
while (n <= 8) {
grid[n] = new Array("");
row[n] = new Array("");
r = 1;
while (r <= 8) {
grid[n][r] = eval ("slot" + ((64 - (r * 8)) + n));
totaljewels++;
grid[n][r].jewel = container.attachMovie("jewel", totaljewels, totaljewels);
grid[n][r].jewel._x = grid[n][r]._x;
grid[n][r].jewel._y = grid[n][r]._y - 300;
grid[n][r].jewel.num = grid[n][r].num;
grid[n][r].jewel.h = n;
grid[n][r].jewel.v = r;
r++;
}
n++;
}
telon.gotoAndPlay(2);
playsound("intro");
telon.nomoves.gotoAndStop(1);
telon.timeout.gotoAndStop(1);
level++;
if (level < 7) {
foodlevel = 3 + level;
}
n = 1;
while (n <= 9) {
displayer[n].gotoAndStop(1);
if (n <= foodlevel) {
displayer[n].faded._alpha = 40;
} else {
displayer[n].faded._alpha = 10;
}
n++;
}
n = 1;
while (n <= 8) {
r = 1;
while (r <= 8) {
grid[n][r].back.gotoAndStop(level);
grid[n][r].jewel.col = random(foodlevel) + 1;
grid[n][r].jewel.gotoAndStop(grid[n][r].jewel.col);
r++;
}
n++;
}
removematchs();
checkposible();
milliseconds = 0;
minutes = 0;
seconds = 5 + (level * 15);
while (seconds > 59) {
minutes++;
seconds = seconds - 59;
}
showtime = ((("0" + minutes) + ":") + seconds) + ":00";
setcounter = 0;
allocating = true;
a = 1;
while (a <= 8) {
x = 1;
while (x <= 8) {
row[a][x].pong = 0;
x++;
}
a++;
}
this.onEnterFrame = function () {
if ((++setcounter) > 100) {
allocating = false;
timer.start();
this.onEnterFrame = null;
} else {
a = 1;
while (a <= 8) {
x = 1;
while (x <= 8) {
if (setcounter > ((a - 1) * 10)) {
row[a][x].pong = (row[a][x].pong * 0.6) + ((grid[a][x]._y - row[a][x]._y) / (x * 2));
row[a][x]._y = row[a][x]._y + row[a][x].pong;
}
x++;
}
a++;
}
}
};
}
function combofill(which) {
displayer[which].nextFrame();
displayer[which].fill.play();
fullcombo = true;
n = 1;
while (n <= foodlevel) {
if (!displayer[n].completed) {
fullcombo = false;
}
n++;
}
if (fullcombo) {
readytocollect = true;
}
}
function removematchs() {
a = 1;
while (a <= 8) {
z = 1;
while (z <= 8) {
row[a][z] = grid[a][z].jewel;
row[a][z].h = a;
row[a][z].v = z;
z++;
}
a++;
}
matchfound = true;
while (matchfound) {
matchfound = false;
a = 1;
while (a <= 8) {
z = 1;
while (z <= 8) {
if ((row[a][z].col == row[a + 1][z].col) and (row[a + 1][z].col == row[a + 2][z].col)) {
row[a][z].col = random(foodlevel) + 1;
row[a][z].gotoAndStop(row[a][z].col);
matchfound = true;
}
if ((row[a][z].col == row[a][z + 1].col) and (row[a][z + 1].col == row[a][z + 2].col)) {
row[a][z].col = random(foodlevel) + 1;
row[a][z].gotoAndStop(row[a][z].col);
matchfound = true;
}
z++;
}
a++;
}
}
}
function checkposible(showhintremote) {
showhint = showhintremote;
cleanswap();
posible = false;
a = 1;
while (a <= 8) {
z = 1;
while (z <= 8) {
if (row[a][z].col == row[a + 1][z].col) {
col = row[a + 1][z].col;
if (col == row[a + 3][z].col) {
grid[a + 3][z].hint.play();
return(true);
}
if (col == row[a + 2][z + 1].col) {
grid[a + 2][z + 1].hint.play();
return(true);
}
if (col == row[a + 2][z - 1].col) {
grid[a + 2][z - 1].hint.play();
return(true);
}
col = row[a][z].col;
if (col == row[a - 2][z].col) {
grid[a - 2][z].hint.play();
return(true);
}
if (col == row[a - 1][z + 1].col) {
grid[a - 1][z + 1].hint.play();
return(true);
}
if (col == row[a - 1][z - 1].col) {
grid[a - 1][z - 1].hint.play();
return(true);
}
}
if (row[a][z].col == row[a + 2][z].col) {
col = row[a][z].col;
if (col == row[a + 1][z - 1].col) {
grid[a + 1][z - 1].hint.play();
return(true);
}
if (col == row[a + 1][z + 1].col) {
grid[a + 1][z + 1].hint.play();
return(true);
}
}
if (row[a][z].col == row[a][z + 1].col) {
col = row[a][z + 1].col;
if (col == row[a][z + 3].col) {
grid[a][z + 3].hint.play();
return(true);
}
if (col == row[a + 1][z + 2].col) {
grid[a + 1][z + 2].hint.play();
return(true);
}
if (col == row[a - 1][z + 2].col) {
grid[a - 1][z + 2].hint.play();
return(true);
}
col = row[a][z].col;
if (col == row[a][z - 2].col) {
grid[a][z - 2].hint.play();
return(true);
}
if (col == row[a + 1][z - 1].col) {
grid[a + 1][z - 1].hint.play();
return(true);
}
if (col == row[a - 1][z - 1].col) {
grid[a - 1][z - 1].hint.play();
return(true);
}
}
if (row[a][z].col == row[a][z + 2].col) {
col = row[a][z].col;
if (col == row[a - 1][z + 1].col) {
grid[a - 1][z + 1].hint.play();
return(true);
}
if (col == row[a + 1][z + 1].col) {
grid[a + 1][z + 1].hint.play();
return(true);
}
}
z++;
}
a++;
}
telon.nomoves.gotoAndStop(2);
timer.kill();
}
function automatch(mode) {
if (mode != "test") {
this.onEnterFrame = null;
a = 1;
while (a <= 8) {
z = 1;
while (z <= 8) {
row[a][z] = grid[a][z].jewel;
row[a][z].h = a;
row[a][z].v = z;
z++;
}
a++;
}
}
matchfound = false;
bonuscount = 0;
a = 1;
while (a <= 8) {
z = 1;
while (z <= 8) {
if ((row[a][z].col == row[a + 1][z].col) and (row[a + 1][z].col == row[a + 2][z].col)) {
bonuscount++;
row[a][z].xp = (row[a + 1][z].xp = (row[a + 2][z].xp = true));
row[a][z].stone.nextFrame();
row[a + 1][z].stone.nextFrame();
row[a + 2][z].stone.nextFrame();
matchfound = true;
}
if ((row[a][z].col == row[a][z + 1].col) and (row[a][z + 1].col == row[a][z + 2].col)) {
bonuscount++;
row[a][z].xp = (row[a][z + 1].xp = (row[a][z + 2].xp = true));
row[a][z].stone.nextFrame();
row[a][z + 1].stone.nextFrame();
row[a][z + 2].stone.nextFrame();
matchfound = true;
}
z++;
}
a++;
}
if (matchfound) {
if (mode != "test") {
remove();
}
} else {
if (mode == "test") {
playsound("select3");
}
if (readytocollect) {
collect();
} else {
checkposible();
}
}
}
function remove() {
explodecounter = 0;
allocating = true;
this.onEnterFrame = function () {
if ((explodecounter++) > 10) {
a = 1;
while (a <= 8) {
z = 1;
while (z <= 8) {
if (row[a][z].xp) {
combofill(row[a][z].col);
removeMovieClip(row[a][z]);
row[a][z] = null;
}
z++;
}
a++;
}
allocate();
}
};
if (bonuscount > 1) {
telon.excellent.gotoAndPlay(2);
}
timer.addtime(2);
if ((++winrate) > 2) {
timer.addtime(5);
setscore(40);
telon.bonus.gotoAndPlay(2);
} else {
setscore(20);
}
playsound("tim" + winrate);
}
function collect() {
displayer.onEnterFrame = null;
readytocollect = false;
allocating = true;
collector = null;
collector = new Array();
a = 1;
while (a <= 8) {
x = 1;
while (x <= 8) {
collector.push(row[a][x].stone);
x++;
}
a++;
}
ccount = 0;
collectcounter = 0;
playsound("split", 80);
this.onEnterFrame = function () {
if ((++collectcounter) > 150) {
start();
} else {
ccount++;
trace(ccount);
if (ccount == 1) {
setscore(2);
collectchosen = random(collector.length);
collector[collectchosen].gotoAndStop(2);
collector.splice(collectchosen, 1);
} else if (ccount == 2) {
ccount = 0;
}
}
};
}
function setscore(amount) {
displayer.score = displayer.score + amount;
if (amount > 0) {
displayer.scoringbox.scoring = "+" + amount;
} else {
displayer.scoringbox.scoring = amount;
}
displayer.scoringbox.play();
if (displayer.score < 0) {
displayer.score = 0;
}
}
function allocate() {
allocating = true;
a = 1;
while (a <= 8) {
look4nulls = 1;
while (look4nulls < row[a].length) {
if (row[a][look4nulls] == null) {
row[a].splice(look4nulls, 1);
} else {
look4nulls++;
}
}
if (row[a].length < 9) {
row[a].changed = true;
create = 9 - row[a].length;
x = 1;
while (x <= create) {
totaljewels++;
container.attachMovie("jewel", totaljewels, totaljewels);
row[a].push(container[totaljewels]);
row[a][row[a].length - 1]._x = grid[a][row[a].length - 1]._x;
row[a][row[a].length - 1]._y = row[a][9 - create]._y - (x * 37);
row[a][row[a].length - 1].col = random(foodlevel) + 1;
row[a][row[a].length - 1].gotoAndStop(row[a][row[a].length - 1].col);
x++;
}
x = 1;
while (x <= 8) {
row[a][x].h = a;
row[a][x].v = x;
row[a][x].num = grid[a][x].num;
grid[a][x].jewel = row[a][x];
row[a][x].pong = 0;
x++;
}
}
a++;
}
reallocounter = 0;
this.onEnterFrame = function () {
if ((reallocounter++) <= 20) {
a = 1;
while (a <= 8) {
if (row[a].changed) {
x = 1;
while (x <= 8) {
row[a][x].pong = (row[a][x].pong * 0.6) + ((grid[a][x]._y - row[a][x]._y) / (x * 2));
row[a][x]._y = row[a][x]._y + row[a][x].pong;
x++;
}
}
a++;
}
} else {
a = 1;
while (a <= 8) {
row[a].changed = false;
a++;
}
allocating = false;
automatch();
}
};
}
function swap(h, v) {
if (swaper == null) {
swaper = new Array();
}
if ((!allocating) and (swaper.length < 2)) {
winrate = 0;
item = new Object();
item.jewel = row[h][v];
item.slot = grid[h][v];
swaper.push(item);
for (n in swaper) {
swaper[n].slot.selector.gotoAndStop(1);
swaper[n].slot.selector.gotoAndStop(2);
}
if (swaper.length == 1) {
playsound("split2");
} else {
playsound("split3");
valid = false;
h1 = swaper[0].jewel.h;
h2 = swaper[1].jewel.h;
v1 = swaper[0].jewel.v;
v2 = swaper[1].jewel.v;
if (((h1 == h2) and (Math.abs(v1 - v2) == 1)) or ((v1 == v2) and (Math.abs(h1 - h2) == 1))) {
valid = true;
}
if (!valid) {
clearswap();
swaper = new Array();
item = new Object();
item.jewel = row[h][v];
item.slot = grid[h][v];
swaper.push(item);
playsound("split2");
for (n in swaper) {
swaper[n].slot.selector.gotoAndStop(1);
swaper[n].slot.selector.gotoAndStop(2);
}
} else {
allocating = true;
movingcounter = 0;
for (n in swaper) {
swaper[n].ypong = (swaper[n].xpong = 0);
}
this.onEnterFrame = function () {
movingcounter++;
if (movingcounter < 20) {
for (n in swaper) {
swaper[n].xpong = (swaper[n].xpong * 0.6) + ((grid[swaper[1 - n].jewel.h][swaper[1 - n].jewel.v]._x - swaper[n].jewel._x) / 3);
swaper[n].ypong = (swaper[n].ypong * 0.6) + ((grid[swaper[1 - n].jewel.h][swaper[1 - n].jewel.v]._y - swaper[n].jewel._y) / 3);
swaper[n].jewel._x = swaper[n].jewel._x + swaper[n].xpong;
swaper[n].jewel._y = swaper[n].jewel._y + swaper[n].ypong;
}
} else if (movingcounter == 20) {
for (n in swaper) {
row[swaper[n].jewel.h][swaper[n].jewel.v] = swaper[1 - n].jewel;
}
automatch("test");
} else if (matchfound) {
a = 1;
while (a <= 8) {
z = 1;
while (z <= 8) {
grid[a][z].jewel = row[a][z];
row[a][z].h = a;
row[a][z].v = z;
z++;
}
a++;
}
clearswap();
remove();
} else if (movingcounter < 40) {
for (n in swaper) {
swaper[n].jewel._x = swaper[n].jewel._x + ((grid[swaper[n].jewel.h][swaper[n].jewel.v]._x - swaper[n].jewel._x) / 3);
swaper[n].jewel._y = swaper[n].jewel._y + ((grid[swaper[n].jewel.h][swaper[n].jewel.v]._y - swaper[n].jewel._y) / 3);
}
} else {
for (n in swaper) {
row[swaper[n].jewel.h][swaper[n].jewel.v] = swaper[n].jewel;
}
clearswap();
allocating = false;
this.onEnterFrame = false;
}
};
}
}
}
}
function clearswap() {
for (n in swaper) {
swaper[n].slot.selector.gotoAndStop(1);
}
swaper = null;
}
function checkright(num) {
n = 8;
while (n <= 64) {
if (n == num) {
return(false);
}
n = n + 8;
}
return(true);
}
function checkleft(num) {
n = 1;
while (n <= 64) {
if (n == num) {
return(false);
}
n = n + 8;
}
return(true);
}
count = 0;
stop();
timer = new Object();
timer.addtime = function (amount) {
seconds = seconds + (amount * level);
while (seconds > 59) {
minutes++;
seconds = seconds - 59;
}
};
timer.start = function () {
displayer.onEnterFrame = function () {
if (((minutes <= 0) and (seconds <= 0)) and (milliseconds <= 0)) {
telon.timeout.gotoAndStop(2);
timer.kill();
showmsg(milliseconds);
showtime = "00:00:00";
displayer.onEnterFrame = null;
} else {
if (milliseconds < 1) {
milliseconds = 29;
seconds--;
if ((seconds < 0) and (minutes > 0)) {
minutes--;
seconds = 59;
}
if ((seconds == 10) and (minutes == 0)) {
checkposible(true);
}
}
if (minutes < 10) {
showminutes = "0" + minutes;
} else {
showminutes = minutes;
}
if (milliseconds < 10) {
showmilliseconds = "0" + milliseconds;
} else {
showmilliseconds = milliseconds;
}
if (seconds < 10) {
showseconds = "0" + seconds;
} else {
showseconds = seconds;
}
showtime = (((showminutes + ":") + showseconds) + ":") + showmilliseconds;
}
milliseconds--;
};
};
totaljewels = 1;
Symbol 19 Button
on (press) {
_parent._parent.swap(h, v);
}
Symbol 25 MovieClip Frame 13
stop();
Symbol 26 MovieClip Frame 1
stop();
Symbol 31 MovieClip Frame 13
stop();
Symbol 32 MovieClip Frame 1
stop();
Symbol 37 MovieClip Frame 13
stop();
Symbol 38 MovieClip Frame 1
stop();
Symbol 43 MovieClip Frame 14
stop();
Symbol 44 MovieClip Frame 1
stop();
Symbol 49 MovieClip Frame 13
stop();
Symbol 50 MovieClip Frame 1
stop();
Symbol 55 MovieClip Frame 13
stop();
Symbol 56 MovieClip Frame 1
stop();
Symbol 61 MovieClip Frame 13
stop();
Symbol 62 MovieClip Frame 1
stop();
Symbol 67 MovieClip Frame 13
stop();
Symbol 68 MovieClip Frame 1
stop();
Symbol 73 MovieClip Frame 13
stop();
Symbol 74 MovieClip Frame 1
stop();
Symbol 79 MovieClip Frame 13
stop();
Symbol 80 MovieClip Frame 1
stop();
Symbol 81 MovieClip [jewel] Frame 1
b.useHandCursor = false;
stop();
Symbol 110 MovieClip Frame 1
stop();
Symbol 115 MovieClip Frame 1
_root.stop();
Instance of Symbol 113 MovieClip "bar" in Symbol 115 MovieClip Frame 136
onClipEvent (load) {
this.onEnterFrame = function () {
porcentaje = (_root.getBytesLoaded() * 100) / _root.getBytesTotal();
gotoAndStop(Math.ceil(_currentframe + ((porcentaje - _currentframe) / 5)));
c = 0;
if ((_currentframe == 100) and (_root.getBytesLoaded() == _root.getBytesTotal())) {
_parent.play();
}
};
}
Symbol 115 MovieClip Frame 167
stop();
Symbol 115 MovieClip Frame 181
_root.play();
stop();
Symbol 118 MovieClip Frame 1
stop();
Symbol 121 MovieClip Frame 1
stop();
Symbol 124 MovieClip Frame 1
stop();
_visible = true;
Symbol 124 MovieClip Frame 2
if (!_root.showhint) {
_visible = false;
gotoAndStop (1);
}
Symbol 125 MovieClip Frame 1
num = ++_root.count;
if (_parent.backer) {
if (_parent.checkright(num)) {
_parent.backer = false;
}
back._alpha = 95;
} else if (_parent.checkright(num)) {
_parent.backer = true;
}
_name = ("slot" + _root.count);
_y = Math.round(_y);
_x = Math.round(_x);
Symbol 137 Button
on (press) {
_parent.displayer.score = 0;
_parent.level = 0;
_parent.start();
}
Symbol 142 MovieClip Frame 1
stop();
Symbol 145 MovieClip Frame 1
stop();
Symbol 146 Button
on (press) {
_root.displayer.score = 0;
_root.level = 0;
_root.start();
}
Symbol 151 MovieClip Frame 1
stop();
Symbol 151 MovieClip Frame 2
stop();
Symbol 154 MovieClip Frame 1
stop();
Symbol 154 MovieClip Frame 2
stop();
Symbol 156 MovieClip Frame 1
stop();
this.swapDepths(2000);
Symbol 156 MovieClip Frame 23
stop();
Symbol 163 MovieClip Frame 1
gotoAndStop(_parent._name);
Symbol 165 MovieClip Frame 1
gotoAndStop(_parent._parent._name);
Symbol 166 MovieClip Frame 1
stop();
Symbol 166 MovieClip Frame 2
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 3
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 4
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 5
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 6
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 7
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 8
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 9
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 10
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 11
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 12
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 13
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 14
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 15
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 16
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 17
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 18
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 19
food.stone.gotoAndStop(2);
Symbol 166 MovieClip Frame 20
food.stone.gotoAndStop(2);
Symbol 171 MovieClip Frame 6
stop();
Symbol 172 MovieClip Frame 1
stop();
completed = false;
Symbol 172 MovieClip Frame 35
stop();
completed = true;
Symbol 173 MovieClip Frame 1
stop();
this.swapDepths(2001);