Instance of Symbol 94 MovieClip in Frame 1
//component parameters
onClipEvent (initialize) {
xin_motion_val = "Toward";
xin_alphatype_val = "No";
xout_motion_val = "None";
xout_alphatype_val = "No";
perc_req_val = 100;
show_perc_val = "Yes";
slow_factor_val = 0.2;
init_action_val = "_root.stop();";
play_action_val = "_root.play();";
}
Frame 3
this.stop();
Instance of Symbol 78 MovieClip [CollapseGameSymbol] in Frame 4
//component parameters
onClipEvent (initialize) {
num_rows = 9;
num_columns = 11;
points_per_block = 10;
num_blocks_bonus = 3;
bonus_points = 200;
num_levels = 999;
num_pieces = 6;
special_piece_points = 50000;
select_sound = "select_sound";
collapse_sound = "collapse_sound";
next_piece_time = 5000;
next_piece_time_decrease = 250;
next_piece_time_min = 3000;
special_piece_probability = 0.5;
level_time = 120000 /* 0x01D4C0 */;
block_increase_time = 1000;
special_piece_prob_decrease = 0.05;
special_piece_prob_min = 0.15;
}
Symbol 18 MovieClip [explode_cloud] Frame 1
this.gotoAndPlay(Math.randi(1, 6));
Symbol 18 MovieClip [explode_cloud] Frame 15
this.removeMovieClip();
Symbol 21 MovieClip Frame 1
this.stop();
Symbol 21 MovieClip Frame 7
this._parent._visible = false;
this._parent._parent.check_in_collapsee(this._parent.j, this._parent.k);
Symbol 23 MovieClip Frame 1
this.stop();
Symbol 23 MovieClip Frame 7
this._parent._visible = false;
this._parent._parent.check_in_collapsee(this._parent.j, this._parent.k);
Symbol 25 MovieClip Frame 1
this.stop();
Symbol 25 MovieClip Frame 7
this._parent._visible = false;
this._parent._parent.check_in_collapsee(this._parent.j, this._parent.k);
Symbol 27 MovieClip Frame 1
this.stop();
Symbol 27 MovieClip Frame 7
this._parent._visible = false;
this._parent._parent.check_in_collapsee(this._parent.j, this._parent.k);
Symbol 29 MovieClip Frame 1
this.stop();
Symbol 29 MovieClip Frame 7
this._parent._visible = false;
this._parent._parent.check_in_collapsee(this._parent.j, this._parent.k);
Symbol 31 MovieClip Frame 1
this.stop();
Symbol 31 MovieClip Frame 7
this._parent._visible = false;
this._parent._parent.check_in_collapsee(this._parent.j, this._parent.k);
Symbol 35 MovieClip Frame 1
this.stop();
Symbol 35 MovieClip Frame 7
this._parent._visible = false;
this._parent._parent.check_in_collapsee(this._parent.j, this._parent.k);
Symbol 36 MovieClip [selected_piece] Frame 1
this.stop();
Symbol 37 MovieClip [piece] Frame 1
this.stop();
Symbol 42 MovieClip Frame 1
this.gotoAndPlay(Math.randi(1, 300));
Symbol 42 MovieClip Frame 733
this.gotoAndStop(1);
Symbol 51 Button
on (press) {
this._parent.paused = false;
this._parent.initialize_level();
this._visible = false;
}
Symbol 68 MovieClip Frame 1
this.stop();
Symbol 73 Button
on (press) {
_root.gotoAndStop("Starting Screen");
}
Symbol 78 MovieClip [CollapseGameSymbol] Frame 1
#initclip 1
Math.randi = function (a, b) {
return(Math.floor(Math.random() * (b - a)) + Math.floor(a));
};
String.prototype.searchReplace = function (find, replace) {
var _local1 = this.split(find);
return(_local1.join(replace));
};
Array.get_indices = function (n) {
var _local3 = n;
var _local2 = [];
var _local1 = 0;
while (_local1 < _local3) {
_local2[_local1] = _local1;
_local1++;
}
return(_local2);
};
Array.get_randomized_indices = function (n) {
var _local1 = this.get_indices(n);
_local1.shuffle();
return(_local1);
};
Array.prototype.swap = function (a, b) {
var _local1 = this;
var _local2 = _local1[a];
_local1[a] = _local1[b];
_local1[b] = _local2;
};
Array.prototype.shuffle = function () {
var _local2 = this;
var _local1 = 0;
while (_local1 < _local2.length) {
_local2.swap(_local1, Math.randi(0, _local2.length));
_local1++;
}
};
CollapseGame = function () {
var _local1 = this;
_local1._x = (_local1._y = 0);
_local1.initialize();
};
CollapseGame.prototype = new MovieClip();
Object.registerClass("CollapseGameSymbol", CollapseGame);
CollapseGame.prototype.initialize = function () {
var _local1 = this;
_local1.initialize_variables();
_local1.initialize_graphics();
_local1.initialize_level();
};
CollapseGame.prototype.initialize_variables = function () {
var _local1 = this;
_local1.current_level = 0;
_local1.depth = 0;
_local1.game_start_time = getTimer();
};
CollapseGame.prototype.initialize_graphics = function () {
var _local1 = this;
_local1.grid_mcs = [];
var j = 0;
while (j < _local1.num_rows) {
_local1.grid_mcs[j] = [];
var k = 0;
while (k < _local1.num_columns) {
_local1.grid_mcs[j][k] = {p:_local1.attachMovie("piece", "pcell" + _local1.depth, _local1.depth++), s:_local1.attachMovie("selected_piece", "scell" + _local1.depth, _local1.depth++)};
var _local2 = _local1.grid_mcs[j][k].p;
var _local3 = _local1.grid_mcs[j][k].s;
_local2._width = _local1.playing_area._width / _local1.num_columns;
_local2._height = _local1.playing_area._height / _local1.num_rows;
_local2._x = _local1.playing_area._x + (k * _local2._width);
_local2._y = _local1.playing_area._y + (j * _local2._height);
_local3._width = _local1.playing_area._width / _local1.num_columns;
_local3._height = _local1.playing_area._height / _local1.num_rows;
_local3._x = _local1.playing_area._x + (k * _local3._width);
_local3._y = _local1.playing_area._y + (j * _local3._height);
_local2.type = "piece";
_local3.type = "selected";
_local2._visible = false;
_local3._visible = false;
_local2.j = (_local3.j = j);
_local2.k = (_local3.k = k);
_local2.onMouseDown = (_local3.onMouseDown = _local1.press_piece);
_local2.useHandCursor = (_local3.useHandCursor = false);
k++;
}
j++;
}
};
CollapseGame.prototype.press_piece = function () {
var _local1 = this;
if (_local1._parent.paused == true) {
} else if (_local1._currentframe == 1) {
} else if (_local1._parent.prompt._visible) {
} else if ((!_local1.hitTest(_root._xmouse, _root._ymouse, true)) || (!_local1._visible)) {
} else if ((getTimer() - _local1._parent.last_time_called) < 100) {
} else {
_local1._parent.last_time_called = getTimer();
if (_local1.type == "selected") {
if ((((_local1._parent.grid_mcs[_local1.j][_local1.k + 1].s._visible || (_local1._parent.grid_mcs[_local1.j][_local1.k - 1].s._visible)) || (_local1._parent.grid_mcs[_local1.j + 1][_local1.k].s._visible)) || (_local1._parent.grid_mcs[_local1.j - 1][_local1.k].s._visible)) || (_local1._parent.grid_mcs[_local1.j][_local1.k].s._currentframe == _local1._parent.grid_mcs[_local1.j][_local1.k].s._totalframes)) {
if (_local1._parent.selected_special_piece) {
_local1._parent.explode_pieces();
_local1._parent.collapse_overhangs();
_local1._parent.check_shift_columns();
_local1._parent.render_grid();
} else {
_local1._parent.collapse_pieces();
}
}
} else if (_local1._currentframe != (_local1._totalframes - 1)) {
_local1._parent.select_adjacents(_local1.j, _local1.k);
_local1._parent.count_selected();
if (_local1._parent.__currently_selected__ >= 2) {
_local1._parent.play_sound("bonk");
}
}
}
};
CollapseGame.prototype.explode_pieces = function () {
var _local1 = this;
var exploders = _local1.get_exploders();
var count = 0;
var j = 0;
while (j < _local1.num_rows) {
var _local2 = 0;
while (_local2 < _local1.num_columns) {
var p_mc = _local1.grid_mcs[j][_local2].p;
var s_mc = _local1.grid_mcs[j][_local2].s;
var cell = _local1.grid_cells[j][_local2];
var _local3 = 0;
while (_local3 < exploders.length) {
var ej = exploders[_local3].j;
var ek = exploders[_local3].k;
if ((Math.abs(ej - j) <= 1) && (Math.abs(ek - _local2) <= 1)) {
p_mc._visible = false;
s_mc._visible = false;
cell.icon = -1;
count++;
var expl_mc = _local1.attachMovie("explode_cloud", "cloud" + _local1.depth, _local1.depth++);
expl_mc._x = (_local1.playing_area._x + ((_local2 * _local1.playing_area._width) / _local1.num_columns)) + (_local1.playing_area._width / (2 * _local1.num_columns));
expl_mc._y = (_local1.playing_area._y + ((j * _local1.playing_area._height) / _local1.num_rows)) + (_local1.playing_area._height / (2 * _local1.num_rows));
}
_local3++;
}
_local2++;
}
j++;
}
_local1.remove_redundant_indices(_local1.collapsing);
if (count != 0) {
_local1.play_sound("bomb_explode");
}
var sc = _local1.get_possible_score(count);
_local1.last_collapse_score.text = sc;
_local1.score.text = Number(_local1.score.text) + sc;
};
CollapseGame.prototype.remove_redundant_indices = function (indices) {
var j = 0;
while (j < this.length) {
var _local1 = j + 1;
while (_local1 < this.length) {
var _local3 = indices[j];
var _local2 = indices[_local1];
if ((_local3.j == _local2.j) && (_local3.k == _local2.k)) {
indices.splice(_local1, 1);
_local1--;
}
_local1++;
}
j++;
}
};
CollapseGame.prototype.get_exploders = function () {
var _local1 = this;
var exploders = [];
var j = 0;
while (j < _local1.num_rows) {
var k = 0;
while (k < _local1.num_columns) {
var _local2 = _local1.grid_mcs[j][k].p;
var _local3 = _local1.grid_mcs[j][k].s;
var cell = _local1.grid_cells[j][k];
if (_local3._visible && (!_local2._visible)) {
exploders.push({j:j, k:k});
}
k++;
}
j++;
}
return(exploders);
};
CollapseGame.prototype.count_selected = function () {
var count = 0;
var _local2 = 0;
while (_local2 < this.num_rows) {
var _local1 = 0;
while (_local1 < this.num_columns) {
var _local3 = this.grid_mcs[_local2][_local1].s;
if (_local3._visible) {
count++;
}
_local1++;
}
_local2++;
}
this.__currently_selected__ = count;
this.selected_score.text = this.get_possible_score(count);
};
CollapseGame.prototype.check_shift_columns = function () {
var _local2 = this;
var middle = Math.floor(_local2.num_columns / 2);
var left = (middle - 1);
var right = (middle + (((_local2.num_columns % 2) == 0) ? 0 : 1));
var _local3 = _local2.num_rows - 1;
var _local1 = 0;
while (_local1 < _local2.num_columns) {
if ((!_local2.grid_mcs[_local3][_local1].p._visible) && (!_local2.grid_mcs[_local3][_local1].s._visible)) {
_local2.shift_columns_direction(_local1, -1);
}
_local1++;
}
};
CollapseGame.prototype.collapse_pieces = function () {
var _local1 = this;
_local1.collapsing = [];
_local1.num_checked_in = 0;
if (_local1.initial_collapse != undefined) {
_local1.num_checked_in = _local1.initial_collapse.length;
var j = 0;
while (j < _local1.initial_collapse.length) {
_local1.collapsing.push({j:_local1.initial_collapse[j].j, k:_local1.initial_collapse[j].k});
j++;
}
_local1.initial_collapse = undefined;
}
var count = 0;
var sc = 0;
var j = 0;
while (j < _local1.num_rows) {
var k = 0;
while (k < _local1.num_columns) {
var _local3 = _local1.grid_mcs[j][k].p;
var _local2 = _local1.grid_mcs[j][k].s;
var cell = _local1.grid_cells[j][k];
if (_local2._visible && (!_local3._visible)) {
_local2.j = j;
_local2.k = k;
_local3._visible = false;
cell.icon = -1;
_local2._mc.play();
_local1.collapsing.push({j:j, k:k});
sc = sc + _local1.points_per_block;
count++;
}
k++;
}
j++;
}
sc = _local1.get_possible_score(count);
_local1.last_collapse_score.text = sc;
_local1.score.text = Number(_local1.score.text) + sc;
_local1.add_pieces_from_under_collapse(count);
_local1.play_sound("multiple_rocks_fall" + Math.randi(1, 4));
_local1.game_start_time = _local1.game_start_time + (count * _local1.block_increase_time);
if (count > 0) {
_local1.play_sound(_local1.collapse_sound);
}
if (count > 0) {
return(true);
}
return(false);
};
CollapseGame.prototype.add_pieces_from_under_collapse = function (count) {
var _local1 = this;
if (count == 2) {
_local1.play_sound("rock_slides_over");
var _local2 = Array.get_randomized_indices(_local1.num_columns);
_local1.add_piece(_local2[0]);
_local1.add_piece(_local2[1]);
if (_local1.add_sound == undefined) {
_local1.add_sound = "rock_impact1";
}
}
};
CollapseGame.prototype.check_in_collapsee = function (j, k) {
var _local1 = j;
var _local2 = this;
_local2.num_checked_in++;
if (_local2.num_checked_in == _local2.collapsing.length) {
_local1 = 0;
while (_local1 < _local2.collapsing.length) {
_local2.move_above_pieces_down(_local2.collapsing[_local1].j, _local2.collapsing[_local1].k);
_local1++;
}
_local2.check_shift_columns();
}
};
CollapseGame.prototype.move_above_pieces_down = function (j, k) {
var _local2 = this;
var _local3 = k;
var _local1 = j;
while (_local1 >= 0) {
_local2.grid_cells[_local1][_local3].icon = _local2.grid_cells[_local1 - 1][_local3].icon;
_local2.grid_mcs[_local1][_local3].s._visible = _local2.grid_mcs[_local1 - 1][_local3].s._visible;
_local2.grid_mcs[_local1][_local3].p._visible = _local2.grid_mcs[_local1 - 1][_local3].p._visible;
_local2.grid_mcs[_local1][_local3].s.gotoAndStop(_local2.grid_cells[_local1 - 1][_local3].icon + 2);
_local2.grid_mcs[_local1][_local3].p.gotoAndStop(_local2.grid_cells[_local1 - 1][_local3].icon + 2);
if (_local1 == 0) {
_local2.grid_cells[_local1][_local3].icon = -1;
_local2.grid_mcs[_local1][_local3].s._visible = false;
_local2.grid_mcs[_local1][_local3].p._visible = false;
}
_local1--;
}
};
CollapseGame.prototype.select_adjacents = function (pj, pk) {
this.unselect_all();
var cp_mc = this.grid_mcs[pj][pk].p;
var cs_mc = this.grid_mcs[pj][pk].s;
var ccell = this.grid_cells[pj][pk];
if (ccell.icon == (this.num_pieces + 1)) {
this.selected_special_piece = true;
} else {
this.selected_special_piece = false;
}
cp_mc._visible = false;
cs_mc._visible = true;
var _local3 = 3;
var found_adjacents = true;
while (found_adjacents) {
found_adjacents = false;
var j = 0;
while (j < _local3) {
var _local2 = 0;
while (_local2 < _local3) {
var index_j = ((pj - ((_local3 - 1) / 2)) + j);
var index_k = ((pk - ((_local3 - 1) / 2)) + _local2);
var _local1 = this.grid_mcs[index_j][index_k];
var cell = this.grid_cells[index_j][index_k];
if (this.is_adjacent_to_selected(_local1, cell, ccell)) {
_local1.s._visible = true;
_local1.p._visible = false;
found_adjacents = true;
}
_local2++;
}
j++;
}
_local3 = _local3 + 2;
}
};
CollapseGame.prototype.is_adjacent_to_selected = function (_mcs, cell, ccell) {
var _local3 = this;
if (_mcs.s._visible && (!_mcs.p._visible)) {
} else {
if (cell.icon == ccell.icon) {
var _local2 = _mcs.s.j;
var _local1 = _mcs.s.k;
if (_local3.grid_mcs[_local2 + 1][_local1].s._visible == true) {
return(true);
}
if (_local3.grid_mcs[_local2][_local1 + 1].s._visible == true) {
return(true);
}
if (_local3.grid_mcs[_local2][_local1 - 1].s._visible == true) {
return(true);
}
if (_local3.grid_mcs[_local2 - 1][_local1].s._visible == true) {
return(true);
}
}
return(false);
}
return(undefined);
};
CollapseGame.prototype.unselect_all = function () {
var _local2 = 0;
while (_local2 < this.num_rows) {
var _local1 = 0;
while (_local1 < this.num_columns) {
var _local3 = this.grid_mcs[_local2][_local1].p;
var s_mc = this.grid_mcs[_local2][_local1].s;
if (_local3._visible || (s_mc._visible)) {
_local3._visible = true;
s_mc._visible = false;
}
_local1++;
}
_local2++;
}
};
CollapseGame.prototype.onEnterFrame = function () {
var _local1 = this;
if (_local1.paused == true) {
} else {
_local1.update_timer();
_local1.check_level_over();
}
};
CollapseGame.prototype.update_timer = function () {
var _local1 = this;
if (_local1.game_is_over == true) {
} else if (_local1.paused == true) {
} else {
var _local3 = _local1.level_next_piece_delay - (getTimer() - _local1.last_piece_created);
var _local2 = Math.floor(_local3 / 1000) + 1;
var sec_str = new String(_local2).searchReplace(".", ":");
_local1.timer.text = sec_str;
if (_local3 <= 0) {
_local1.last_piece_created = getTimer();
_local1.play_sound("rock_slides_over");
_local1.add_piece(Math.randi(0, _local1.num_columns));
if (_local1.add_sound == undefined) {
_local1.add_sound = "rock_impact2";
}
}
_local3 = _local1.level_time - (getTimer() - _local1.game_start_time);
_local2 = Math.floor(_local3 / 1000) + 1;
_local1.game_time.text = _local2;
var ratio = (_local2 / (_local1.level_time / 1000));
_local1.game_timer_display.gotoAndStop(Math.floor(_local1.game_timer_display._totalframes - (ratio * _local1.game_timer_display._totalframes)));
if (_local2 <= 0) {
_local1.game_over();
}
}
};
CollapseGame.prototype.add_piece = function (col) {
var _local1 = this;
_local1.new_piece = _local1.attachMovie("piece", "piece" + _local1.depth, _local1.depth++);
var _local2 = _local1.special_piece_probability - (_local1.special_piece_prob_decrease * _local1.current_level);
_local2 = Math.max(_local2, _local1.special_piece_prob_min);
if (Math.random() < _local1.special_piece_probability) {
var _local3 = _local1.num_pieces + 1;
} else if (Math.random() < (3 / (_local1.num_rows * _local1.num_columns))) {
var _local3 = _local1.num_pieces;
} else {
var _local3 = Math.randi(0, _local1.num_pieces);
}
if (_local3 == (_local1.num_pieces + 1)) {
_local1.play_sound("bomb_appears");
}
_local1.new_piece.gotoAndStop(_local3 + 2);
_local1.new_piece.icon = _local3;
_local1.new_piece.next_fall_column = col;
_local1.new_piece.final_x = ((col * _local1.playing_area._width) / _local1.num_columns) + _local1.playing_area._x;
_local1.new_piece._width = _local1.playing_area._width / _local1.num_columns;
_local1.new_piece._height = _local1.playing_area._height / _local1.num_rows;
_local1.new_piece._x = -_local1.new_piece._width;
_local1.new_piece._y = _local1.playing_area._y - _local1.new_piece._height;
_local1.new_piece.onEnterFrame = _local1.move_new_piece;
};
CollapseGame.prototype.move_new_piece = function () {
var _local1 = this;
_local1._x = _local1._x + ((_local1.final_x - _local1._x) / 4);
if (Math.abs(_local1._x - _local1.final_x) < 2) {
_local1._x = _local1.final_x;
if (_local1.placed_start_time == undefined) {
_local1.placed_start_time = getTimer();
}
if ((getTimer() - _local1.placed_start_time) >= 500) {
_local1._parent.add_piece_to_grid(_local1.next_fall_column, _local1.icon);
if (_local1._parent.add_sound != undefined) {
_local1._parent.play_sound(_local1._parent.add_sound);
_local1._parent.add_sound = undefined;
}
_local1._parent.collapse_overhangs();
_local1._parent.check_shift_columns();
_local1._parent.render_grid();
_local1.onEnterFrame = undefined;
_local1.removeMovieClip();
}
}
};
CollapseGame.prototype.add_piece_to_grid = function (col, icon) {
var _local2 = this;
var found = false;
var _local1 = _local2.num_rows - 1;
while (_local1 >= 0) {
var cell = _local2.grid_cells[_local1][col];
var _local3 = _local2.grid_mcs[_local1][col].p;
var s_mc = _local2.grid_mcs[_local1][col].s;
if ((!_local3._visible) && (!s_mc._visible)) {
_local3._visible = true;
cell.icon = icon;
found = true;
break;
}
_local1--;
}
if (found) {
_local2.render_grid();
} else {
_local2.game_over();
}
};
CollapseGame.prototype.initialize_level = function () {
var _local1 = this;
if (_local1.current_level < _local1.num_levels) {
_local1.level_next_piece_delay = Math.max(_local1.next_piece_time_min, _local1.next_piece_time - (_local1.level * _local1.next_piece_time_decrease));
_local1.last_piece_created = getTimer();
_local1.game_start_time = getTimer();
_local1.create_random_grid();
} else {
_local1.game_over();
}
};
CollapseGame.prototype.create_random_grid = function () {
var _local1 = this;
_local1.grid_cells = [];
_local1.initial_collapse = [];
var _local3 = 0;
while (_local3 < _local1.num_rows) {
_local1.grid_cells[_local3] = [];
var _local2 = 0;
while (_local2 < _local1.num_columns) {
_local1.grid_cells[_local3][_local2] = {};
_local1.grid_cells[_local3][_local2].icon = Math.randi(0, _local1.num_pieces);
if (Math.random() < (3 / (_local1.num_rows * _local1.num_columns))) {
_local1.grid_cells[_local3][_local2].icon = _local1.num_pieces;
}
if (_local3 == 0) {
_local1.grid_cells[_local3][_local2].icon = -1;
}
_local1.grid_cells[_local3][_local2].selected = false;
_local2++;
}
_local3++;
}
_local1.render_grid();
};
CollapseGame.prototype.render_grid = function () {
var j = 0;
while (j < this.num_rows) {
var k = 0;
while (k < this.num_columns) {
var _local1 = this.grid_cells[j][k];
var _local2 = this.grid_mcs[j][k].p;
var _local3 = this.grid_mcs[j][k].s;
_local2.cell = _local1;
_local3.cell = _local1;
if (_local1.icon >= 0) {
_local3._visible = false;
_local2._visible = false;
if (_local1.selected) {
_local3._visible = true;
} else {
_local2._visible = true;
}
_local2.gotoAndStop(_local1.icon + 2);
_local3.gotoAndStop(_local1.icon + 2);
} else {
_local3._visible = false;
_local2._visible = false;
_local3.gotoAndStop(1);
_local2.gotoAndStop(1);
}
k++;
}
j++;
}
};
CollapseGame.prototype.shift_columns_direction = function (k, dir) {
var _local3 = this;
if ((k == 0) || (k == (_local3.num_columns - 1))) {
} else {
var num_affected_columns = ((dir == -1) ? (k + 1) : (_local3.num_columns - k));
var n = 0;
while (n < num_affected_columns) {
var _local2 = k + (n * dir);
var _local1 = 0;
while (_local1 < _local3.num_rows) {
_local3.grid_cells[_local1][_local2].icon = _local3.grid_cells[_local1][_local2 + dir].icon;
_local3.grid_mcs[_local1][_local2].s._visible = _local3.grid_mcs[_local1][_local2 + dir].s._visible;
_local3.grid_mcs[_local1][_local2].p._visible = _local3.grid_mcs[_local1][_local2 + dir].p._visible;
_local3.grid_mcs[_local1][_local2].s.gotoAndStop(_local3.grid_cells[_local1][_local2].icon + 2);
_local3.grid_mcs[_local1][_local2].p.gotoAndStop(_local3.grid_cells[_local1][_local2].icon + 2);
if ((_local2 == (_local3.num_columns - 1)) || (_local2 == 0)) {
_local3.grid_cells[_local1][_local2].icon = -1;
_local3.grid_mcs[_local1][_local2].s._visible = false;
_local3.grid_mcs[_local1][_local2].p._visible = false;
}
_local1++;
}
n++;
}
}
};
CollapseGame.prototype.check_level_over = function () {
var _local2 = this;
var _local3 = _local2.num_rows - 1;
var _local1 = 0;
while (_local1 < _local2.num_columns) {
if (_local2.grid_cells[_local3][_local1].icon != -1) {
return;
}
_local1++;
}
_local2.level_over();
};
CollapseGame.prototype.check_special_piece = function () {
return(false);
};
CollapseGame.prototype.check_nomore_pieces = function () {
var _local2 = this;
var _local3 = _local2.num_rows - 1;
var _local1 = 0;
while (_local1 < _local2.num_columns) {
if (_local2.grid_mcs[_local3][_local1].s._visible || (_local2.grid_mcs[_local3][_local1].p._visible)) {
return(false);
}
_local1++;
}
_local2.current_level++;
_local2.initialize_level();
return(true);
};
CollapseGame.prototype.check_nomore_moves = function () {
var _local2 = this;
var bottom = (_local2.num_rows - 1);
var _local3 = 0;
while (_local3 < _local2.num_columns) {
if (_local2.grid_mcs[bottom][_local3].s._visible || (_local2.grid_mcs[bottom][_local3].p._visible)) {
var _local1 = 0;
while (_local1 < _local2.num_rows) {
if (((_local2.grid_mcs[_local1][_local3].p._visible || (_local2.grid_mcs[_local1][_local3].s._visible)) && ((((_local2.grid_cells[_local1][_local3].icon == _local2.grid_cells[_local1 + 1][_local3].icon) || (_local2.grid_cells[_local1][_local3].icon == _local2.grid_cells[_local1 - 1][_local3].icon)) || (_local2.grid_cells[_local1][_local3].icon == _local2.grid_cells[_local1][_local3 + 1].icon)) || (_local2.grid_cells[_local1][_local3].icon == _local2.grid_cells[_local1][_local3 - 1].icon))) && (_local2.grid_cells[_local1][_local3].icon != -1)) {
return(false);
}
_local1++;
}
}
_local3++;
}
if (((_local2.grid_cells[_local2.num_rows - 1][_local2.num_columns - 1].icon == 5) && (!_local2.grid_cells[_local2.num_rows - 2][_local2.num_columns - 1].p._visible)) && (!_local2.grid_cells[_local2.num_rows - 1][_local2.num_columns - 2].p._visible)) {
_local2.score.text = Number(_local2.score.text) + _local2.special_piece_points;
_local2.prompt.bonus._visible = true;
} else {
_local2.prompt.bonus._visible = false;
}
_root.score = _local2.score.text;
_local2.prompt._visible = true;
return(true);
};
CollapseGame.prototype.play_sound = function (linkage) {
var _local1 = new Sound();
_local1.attachSound(linkage);
_local1.start(0, 1);
};
CollapseGame.prototype.get_possible_score = function (num_blocks) {
var _local1 = this;
return((num_blocks * _local1.points_per_block) + (Math.floor(num_blocks / _local1.num_blocks_bonus) * _local1.bonus_points));
};
CollapseGame.prototype.level_over = function () {
var _local1 = this;
_local1.current_level++;
_local1.paused = true;
_local1.level_prompt._visible = true;
_local1.play_sound("intro_music");
};
CollapseGame.prototype.collapse_overhangs = function () {
var _local3 = this;
var _local1 = 0;
while (_local1 < _local3.num_columns) {
var _local2 = _local3.num_rows - 1;
while (_local2 >= 0) {
var cell = _local3.grid_cells[_local2][_local1];
var p_mc = _local3.grid_mcs[_local2][_local1].p;
var s_mc = _local3.grid_mcs[_local2][_local1].s;
var keep_going = true;
var index = (_local2 + 1);
while (keep_going) {
var ncell = _local3.grid_cells[index][_local1];
var np_mc = _local3.grid_mcs[_local2][_local1].p;
var ns_mc = _local3.grid_mcs[_local2][_local1].s;
if ((ncell.icon == -1) && (cell.icon != -1)) {
ncell.icon = cell.icon;
cell.icon = -1;
p_mc._visible = (s_mc._visible = false);
np_mc._visible = true;
cell = _local3.grid_cells[index][_local1];
index++;
} else {
keep_going = false;
}
}
_local2--;
}
_local1++;
}
};
CollapseGame.prototype.game_over = function () {
var _local1 = this;
_local1.play_sound("intro_music");
_local1.game_is_over = true;
_root.score = _local1.score.text;
_local1.prompt._visible = true;
_local1.prompt.bonus._visible = true;
};
#endinitclip
String.prototype.to_array = function () {
var _local2 = this;
var _local3 = [];
var _local1 = 0;
while (_local1 < _local2.length) {
_local3.push(_local2.charAt(_local1));
_local1++;
}
return(_local3);
};
Instance of Symbol 52 MovieClip "level_prompt" in Symbol 78 MovieClip [CollapseGameSymbol] Frame 1
onClipEvent (load) {
this._visible = false;
}
Instance of Symbol 77 MovieClip "prompt" in Symbol 78 MovieClip [CollapseGameSymbol] Frame 1
onClipEvent (load) {
this.swapDepths(12345);
this._visible = false;
}
Symbol 94 MovieClip Frame 1
stop();
Instance of Symbol 93 MovieClip "swfloader" in Symbol 94 MovieClip Frame 1
onClipEvent (load) {
function strip_spaces(str) {
var _local2 = str;
var _local3 = new String("");
var _local1 = 0;
while (_local1 < _local2.length) {
if ((_local2.charAt(_local1) != " ") && (_local2.charAt(_local1) != ";")) {
_local3 = _local3 + _local2.charAt(_local1);
}
_local1++;
}
return(_local3);
}
function simple_script(action, timeline) {
action = strip_spaces(action);
if ((action.length > 0) && ((action.indexOf(")") != -1) && (action.indexOf("(") != -1))) {
var _local3 = action.split(".");
var timeline_action = _local3.pop();
var first_paren = timeline_action.indexOf("(");
var second_paren = timeline_action.indexOf(")");
var timeline_function = timeline_action.substr(0, first_paren);
var function_parameter = timeline_action.substr(first_paren + 1, second_paren - (first_paren + 1));
var _local2 = timeline;
var _local1 = 0;
while (_local1 < _local3.length) {
_local2 = _local2[_local3[_local1]];
_local1++;
}
if (function_parameter.indexOf("\"") != -1) {
function_parameter = function_parameter.substr(1, function_parameter.length - 2);
}
_local2[timeline_function](function_parameter);
}
}
function execute_action() {
var _local1 = _parent;
unloaded = true;
_local1._visible = false;
simple_script(_local1.play_action_val, _local1);
}
_parent.anim.gotoAndStop(1);
simple_script(_parent.init_action_val, _parent);
var done = false;
var unloaded = false;
var orig_x = _parent._x;
var orig_y = _parent._y;
var dist_x = (_parent._x + ((_parent._width * 2) / 3));
var dist_y = (_parent._y + ((_parent._height * 2) / 3));
var orig_a = _parent._alpha;
var accel_jump = 0.75;
var slow_factor = _parent.slow_factor_val;
var speed_factor = (1 + (slow_factor / (1 - slow_factor)));
var ready = false;
var perc_fadeout = 0;
_parent.perc._x = _parent.anim._x - (_parent.perc._width / 2);
_parent.perc._y = _parent.anim._y - (_parent.perc._height / 2);
if (slow_factor < 1) {
switch (_parent.xin_motion_val) {
case "Up" :
_parent._y = orig_y + (dist_y * 2);
break;
case "Down" :
_parent._y = orig_y - (dist_y * 2);
break;
case "Left" :
_parent._x = orig_x + (dist_x * 2);
break;
case "Right" :
_parent._x = orig_x - (dist_x * 2);
break;
case "Toward" :
_parent._xscale = (_parent._yscale = 1);
break;
case "None" :
_parent._alpha = 0;
}
} else {
ready = true;
}
}
onClipEvent (enterFrame) {
if (unloaded) {
return(undefined);
}
if (!ready) {
switch (_parent.xin_motion_val) {
case "Toward" :
_parent._xscale = _parent._xscale + ((100 - _parent._xscale) * slow_factor);
_parent._yscale = _parent._xscale;
if (_parent.xin_alphatype_val == "Yes") {
_parent._alpha = Math.round((orig_a / 100) * Math.max(0, Math.min(_parent._xscale, 100)));
}
if (Math.abs(100 - _parent._xscale) < 0.5) {
_parent._xscale = (_parent._yscale = 100);
_parent._alpha = orig_a;
ready = true;
}
break;
default :
_parent._x = _parent._x + ((orig_x - _parent._x) * slow_factor);
_parent._y = _parent._y + ((orig_y - _parent._y) * slow_factor);
if (_parent.xin_alphatype_val == "Yes") {
if (_parent.xin_motion_val == "None") {
_parent._alpha = _parent._alpha + ((orig_a - _parent._alpha) * slow_factor);
} else if (Math.abs(orig_x - _parent._x) > Math.abs(orig_y - _parent._y)) {
_parent._alpha = 100 - Math.round(((orig_a / 100) * (Math.min(dist_x, Math.abs(_parent._x - orig_x)) / dist_x)) * 100);
} else {
_parent._alpha = 100 - Math.round(((orig_a / 100) * (Math.min(dist_y, Math.abs(_parent._y - orig_y)) / dist_y)) * 100);
}
}
if (!(((_parent.xin_motion_val == "None") && (Math.abs(_parent._alpha - orig_a) <= 1)) || (((_parent.xin_motion_val != "None") && (Math.abs(_parent._y - orig_y) < 0.5)) && (Math.abs(_parent._x - orig_x) < 0.5)))) {
break;
}
_parent._x = orig_x;
_parent._y = orig_y;
_parent._alpha = orig_a;
ready = true;
}
} else if (!done) {
var rl = _root.getBytesLoaded();
var rt = (_root.getBytesTotal() * (_parent.perc_req_val / 100));
if ((rl > 10) && (rt > 10)) {
rl = Math.min(rl, rt);
var new_frame = (_parent.anim._currentframe + Math.ceil(((_parent.anim._totalframes * (rl / rt)) - _parent.anim._currentframe) / 4));
new_frame = Math.max(1, new_frame);
if (_parent.show_perc_val == "Yes") {
_parent.perc.text = Math.round(((new_frame - 1) / (_parent.anim._totalframes - 1)) * 100) + " %";
}
if (new_frame != _parent.anim._currentframe) {
_parent.anim.gotoAndStop(new_frame);
}
if ((_parent.anim._totalframes == _parent.anim._currentframe) && (rl >= rt)) {
done = true;
}
}
} else if (slow_factor < 1) {
switch (_parent.xout_motion_val) {
case "Down" :
if (_parent._y <= orig_y) {
_parent._y = orig_y + accel_jump;
}
_parent._y = orig_y + (Math.abs(_parent._y - orig_y) * speed_factor);
perc_fadeout = Math.round((Math.min(dist_y, Math.abs(_parent._y - orig_y)) / dist_y) * 100);
if (_parent._y > (orig_y + (dist_y * 2))) {
execute_action();
}
break;
case "Up" :
if (_parent._y >= orig_y) {
_parent._y = orig_y - accel_jump;
}
_parent._y = orig_y - (Math.abs(_parent._y - orig_y) * speed_factor);
perc_fadeout = Math.round((Math.min(dist_y, Math.abs(_parent._y - orig_y)) / dist_y) * 100);
if (_parent._y < (orig_y - (dist_y * 2))) {
execute_action();
}
break;
case "Right" :
if (_parent._x <= orig_x) {
_parent._x = orig_x + accel_jump;
}
_parent._x = orig_x + (Math.abs(_parent._x - orig_x) * speed_factor);
perc_fadeout = Math.round((Math.min(dist_x, Math.abs(_parent._x - orig_x)) / dist_x) * 100);
if (_parent._x > (orig_x + (dist_x * 2))) {
execute_action();
}
break;
case "Left" :
if (_parent._x >= orig_x) {
_parent._x = orig_x - accel_jump;
}
_parent._x = orig_x - (Math.abs(_parent._x - orig_x) * speed_factor);
perc_fadeout = Math.round((Math.min(dist_x, Math.abs(_parent._x - orig_x)) / dist_x) * 100);
if (_parent._x < (orig_x - (dist_x * 2))) {
execute_action();
}
break;
case "Away" :
if ((_parent._xscale >= 100) || (_parent._yscale >= 100)) {
_parent._xscale = (_parent._yscale = 100 - accel_jump);
}
_parent._xscale = (_parent._yscale = Math.max(0.5, 100 - ((100 - _parent._yscale) * speed_factor)));
perc_fadeout = 100 - Math.round(Math.max(0, Math.min(_parent._xscale, 100)));
if (_parent._xscale < 1) {
execute_action();
}
break;
default :
perc_fadeout = perc_fadeout + ((100 - perc_fadeout) * slow_factor);
if (Math.abs(perc_fadeout - 100) > 1) {
break;
}
execute_action();
}
if (!(_parent.xout_alphatype_val === "Yes")) {
} else {
_parent._alpha = (orig_a / 100) * (100 - perc_fadeout);
}
} else {
execute_action();
}
}
Symbol 104 MovieClip Frame 1
_root.stop();
Symbol 104 MovieClip Frame 65
stop();
_root.play();
Symbol 105 Button
on (release) {
getURL ("http://www.urgames.com", "_blank");
}
Symbol 116 Button
on (press) {
stopAllSounds();
this.gotoAndStop("Game");
}
Symbol 124 Button
on (release) {
play();
}
Symbol 130 Button
on (release) {
getURL ("http://www.gamesforyourwebsite.com", "_blank");
}
Symbol 133 Button
on (release) {
getURL ("http://www.urgames.com", "_blank");
}
Symbol 135 Button
on (release) {
getURL ("http://www.urgames.com/cheats", "_blank");
}
Symbol 136 MovieClip Frame 1
stop();
Symbol 137 MovieClip Frame 1
stop();
Symbol 137 MovieClip Frame 10
stop();
Symbol 140 Button
on (release) {
getURL ("http://www.urgames.com", "_blank");
}