Frame 1
var MochiAd = {getVersion:function () {
return("2.2");
}, showPreGameAd:function (options) {
var _local1 = this;
var DEFAULTS = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = MochiAd._parseOptions(options, DEFAULTS);
var clip = options.clip;
var ad_msec = 11000;
var ad_timeout = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)) {
options.ad_finished();
} else {
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var wh = MochiAd._getRes(options);
var _local3 = wh[0];
var h = wh[1];
mc._x = _local3 * 0.5;
mc._y = h * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local3 * -0.5;
chk._y = h * -0.5;
var bar = chk.createEmptyMovieClip("_mochiad_bar", 4);
bar._x = 10;
bar._y = h - 20;
var bar_color = options.color;
delete options.color;
var bar_background = options.background;
delete options.background;
var bar_outline = options.outline;
delete options.outline;
var backing = bar.createEmptyMovieClip("_outline", 1);
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo(_local3 - 20, 0);
backing.lineTo(_local3 - 20, 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
var _local2 = bar.createEmptyMovieClip("_inside", 2);
_local2.beginFill(bar_color);
_local2.moveTo(0, 0);
_local2.lineTo(_local3 - 20, 0);
_local2.lineTo(_local3 - 20, 10);
_local2.lineTo(0, 10);
_local2.lineTo(0, 0);
_local2.endFill();
_local2._xscale = 0;
var outline = bar.createEmptyMovieClip("_outline", 3);
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo(_local3 - 20, 0);
outline.lineTo(_local3 - 20, 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local1 = this;
var _local2 = 100 * (1 - ((getTimer() - _local1.fadeout_start) / _local1.fadeout_time));
if (_local2 > 0) {
_local1._parent._alpha = _local2;
} else {
var _local3 = _local1._parent._parent;
MochiAd.unload(_local3);
delete _local1.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local1 = this.mc._mochiad_wait;
_local1.server_control = true;
_local1.started = getTimer();
_local1.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local1 = this;
var _clip = _local1._parent._parent;
var ad_clip = _local1._parent._mochiad_ctr;
var elapsed = (getTimer() - _local1.started);
var _local3 = false;
var clip_total = _clip.getBytesTotal();
var clip_loaded = _clip.getBytesLoaded();
var clip_pcnt = ((100 * clip_loaded) / clip_total);
var ad_pcnt = ((100 * elapsed) / chk.ad_msec);
var _inside = _local1._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(clip_pcnt || 0, ad_pcnt));
_local2 = Math.max(_local1.last_pcnt, _local2);
_local1.last_pcnt = _local2;
_inside._xscale = _local2;
if (!chk.showing) {
var total = ad_clip.getBytesTotal();
if ((total > 0) || (typeof(total) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (elapsed > chk.ad_timeout) {
_local3 = true;
}
}
if (elapsed > chk.ad_msec) {
_local3 = true;
}
if (((clip_total > 0) && (clip_loaded >= clip_total)) && (_local3)) {
if (_local1.server_control) {
delete _local1.onEnterFrame;
} else {
_local1.fadeout_start = getTimer();
_local1.onEnterFrame = chk.fadeFunction;
}
}
};
}
}, showInterLevelAd:function (options) {
var _local1 = this;
var DEFAULTS = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = MochiAd._parseOptions(options, DEFAULTS);
var clip = options.clip;
var ad_msec = 11000;
var ad_timeout = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)) {
options.ad_finished();
} else {
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var wh = MochiAd._getRes(options);
var w = wh[0];
var h = wh[1];
mc._x = w * 0.5;
mc._y = h * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local1 = this;
var _local2 = 100 * (1 - ((getTimer() - _local1.fadeout_start) / _local1.fadeout_time));
if (_local2 > 0) {
_local1._parent._alpha = _local2;
} else {
var _local3 = _local1._parent._parent;
MochiAd.unload(_local3);
delete _local1.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local1 = this.mc._mochiad_wait;
_local1.server_control = true;
_local1.started = getTimer();
_local1.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local1 = this;
var ad_clip = _local1._parent._mochiad_ctr;
var elapsed = (getTimer() - _local1.started);
var _local2 = false;
if (!chk.showing) {
var _local3 = ad_clip.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (elapsed > chk.ad_timeout) {
_local2 = true;
}
}
if (elapsed > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (_local1.server_control) {
delete _local1.onEnterFrame;
} else {
_local1.fadeout_start = getTimer();
_local1.onEnterFrame = _local1.fadeFunction;
}
}
};
}
}, showTimedAd:function (options) {
MochiAd.showInterLevelAd(options);
}, showPreloaderAd:function (options) {
MochiAd.showPreGameAd(options);
}, _allowDomains:function (server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}, _loadCommunicator:function (options) {
var _local2 = options;
var _local3 = arguments;
var DEFAULTS = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
_local2 = MochiAd._parseOptions(_local2, DEFAULTS);
_local2.swfv = _local2.clip.getSWFVersion() || 6;
_local2.mav = MochiAd.getVersion();
var clip = _local2.clip;
var clipname = ("_mochiad_com_" + _local2.id);
if (!MochiAd._isNetworkAvailable()) {
return(null);
}
if (clip[clipname]) {
return(clip[clipname].lc);
}
var server = (_local2.com_server + _local2.id);
MochiAd._allowDomains(server);
delete _local2.id;
delete _local2.com_server;
var depth = _local2.depth;
delete _local2.depth;
var mc = clip.createEmptyMovieClip(clipname, depth);
var lv = mc.createEmptyMovieClip("_mochiad_com", 1);
for (var k in _local2) {
lv[k] = _local2[k];
}
var lc = new LocalConnection();
var name = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
lc.mc = mc;
lc.name = name;
lc.allowDomain = function (d) {
return(true);
};
lc.allowInsecureDomain = lc.allowDomain;
lc.connect(name);
mc.lc = lc;
lv.lc = name;
lc._id = 0;
lc._queue = [];
lc.rpcResult = function (cb_arg) {
var cb = parseInt(cb_arg);
var _local2 = this._callbacks[cb];
if (!_local2) {
} else {
delete this._callbacks[cb];
var _local3 = [];
var _local1 = 2;
while (_local1 < _local2.length) {
_local3.push(_local2[_local1]);
_local1++;
}
_local1 = 1;
while (_local1 < arguments.length) {
_local3.push(arguments[_local1]);
_local1++;
}
var method = _local2[1];
var obj = _local2[0];
if (obj && (typeof(method) == "string")) {
method = obj[method];
}
if (method) {
method.apply(obj, _local3);
}
}
};
lc._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local3 = this._queue;
delete this._queue;
var ds = this.doSend;
var _local1 = 0;
while (_local1 < _local3.length) {
var _local2 = _local3[_local1];
ds.apply(this, _local2);
_local1++;
}
};
lc.doSend = function (args, cbobj, cbfn) {
var _local2 = arguments;
if (this._endpoint == null) {
var _local3 = [];
var _local1 = 0;
while (_local1 < _local2.length) {
_local3.push(_local2[_local1]);
_local1++;
}
this._queue.push(_local3);
} else {
this._id = this._id + 1;
var id = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[id] = [cbobj, cbfn];
var slc = new LocalConnection();
var ss = slc.send(this._endpoint, "rpc", id, args);
}
};
lc._callbacks = {};
lc._callbacks[0] = [lc, "_didConnect"];
lv.st = getTimer();
lv.loadMovie(server + ".swf", "POST");
return(lc);
}, fetchHighScores:function (options, callbackObj, callbackMethod) {
var _local2 = options;
var _local1 = MochiAd._loadCommunicator({id:_local2.id});
if (!_local1) {
return(false);
}
var fncall = ["fetchHighScores", _local2];
_local1.doSend(["fetchHighScores", _local2], callbackObj, callbackMethod);
return(true);
}, sendHighScore:function (options, callbackObj, callbackMethod) {
var _local2 = options;
var _local1 = MochiAd._loadCommunicator({id:_local2.id});
if (!_local1) {
return(false);
}
var fncall = ["sendHighScore", _local2];
_local1.doSend(["sendHighScore", _local2], callbackObj, callbackMethod);
return(true);
}, load:function (options) {
var _local1 = options;
var DEFAULTS = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
_local1 = MochiAd._parseOptions(_local1, DEFAULTS);
_local1.swfv = _local1.clip.getSWFVersion() || 6;
_local1.mav = MochiAd.getVersion();
var clip = _local1.clip;
if (!MochiAd._isNetworkAvailable()) {
return(null);
}
if (clip._mochiad_loaded) {
return(null);
}
var depth = _local1.depth;
delete _local1.depth;
var mc = clip.createEmptyMovieClip("_mochiad", depth);
var wh = MochiAd._getRes(_local1);
_local1.res = (wh[0] + "x") + wh[1];
_local1.server = _local1.server + _local1.id;
delete _local1.id;
clip._mochiad_loaded = true;
var _local2 = mc.createEmptyMovieClip("_mochiad_ctr", 1);
for (var k in _local1) {
_local2[k] = _local1[k];
}
var server = _local2.server;
delete _local2.server;
var hostname = MochiAd._allowDomains(server);
mc.onEnterFrame = function () {
var _local1 = this;
if (_local1._mochiad_ctr._url != _local1._url) {
_local1.onEnterFrame = function () {
var _local1 = this;
if (!_local1._mochiad_ctr) {
delete _local1.onEnterFrame;
MochiAd.unload(_local1._parent);
}
};
}
};
var _local3 = new LocalConnection();
var name = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local3.mc = mc;
_local3.name = name;
_local3.hostname = hostname;
_local3.allowDomain = function (d) {
return(true);
};
_local3.allowInsecureDomain = _local3.allowDomain;
_local3.connect(name);
mc.lc = _local3;
_local2.lc = name;
_local2.st = getTimer();
_local2.loadMovie(server + ".swf", "POST");
return(mc);
}, unload:function (clip) {
var _local1 = clip;
if (typeof(_local1) == "undefined") {
_local1 = _root;
}
if (_local1.clip && (_local1.clip._mochiad)) {
_local1 = _local1.clip;
}
if (!_local1._mochiad) {
return(false);
}
_local1._mochiad.removeMovieClip();
delete _local1._mochiad_loaded;
delete _local1._mochiad;
return(true);
}, _isNetworkAvailable:function () {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}, _getRes:function (options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var xy = options.res.split("x");
_local2 = parseFloat(xy[0]);
_local1 = parseFloat(xy[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}, _parseOptions:function (options, defaults) {
var _local3 = {};
for (var k in defaults) {
_local3[k] = defaults[k];
}
if (options) {
for (var k in options) {
_local3[k] = options[k];
}
}
if (_root.mochiad_options) {
var pairs = _root.mochiad_options.split("&");
var _local1 = 0;
while (_local1 < pairs.length) {
var _local2 = pairs[_local1].split("=");
_local3[unescape(_local2[0])] = unescape(_local2[1]);
_local1++;
}
}
if (_local3.id == "test") {
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
}
return(_local3);
}, _:null};
MochiAd.showPreGameAd({id:"0dafc2d771489809", res:"640x520", background:6723840, color:3098112, outline:0, no_bg:true});
Frame 2
stop();
Frame 3
game.game_type = _root.game_type;
game.automatic_hint = false;
stop();
_root._quality = "medium";
Instance of Symbol 384 MovieClip [DiamondMineComponent] "game" in Frame 3
//component parameters
onClipEvent (initialize) {
use_quiz = "False";
quiz_data_file = "";
quiz_piece_probability = 0.2;
correct_points = 100;
incorrect_points = -20;
max_quiz_per_level = 3;
game_type = "Timer";
time_percent_change = 0.025;
level_percent_change_increase = 0.01;
collapse_percent_increase = 3;
level_collapse_percent_change = 0.5;
minimum_collapse_percent = 0.55;
num_rows = 9;
num_columns = 9;
piece_acceleration = 2;
stage_width = 640;
stage_height = 480;
points_per_piece = 1;
level_point_increase = 5;
}
Frame 4
stop();
_root._quality = "HIGH";
Symbol 10 MovieClip [MathExtensions] Frame 1
#initclip 5
Math.randf = function (a, b) {
return((Math.random() * (b - a)) + a);
};
Math.randi = function (a, b) {
return(Math.floor(Math.random() * (b - a)) + Math.floor(a));
};
#endinitclip
Symbol 11 MovieClip [ArrayExtensions] Frame 1
#initclip 6
Array.prototype.swap = function (a, b) {
var _local1 = this;
var _local2 = _local1[a];
_local1[a] = _local1[b];
_local1[b] = _local2;
};
Array.prototype.swap2D = function (a, b, c, d) {
var _local1 = this;
var _local2 = _local1[a][b];
_local1[a][b] = _local1[c][d];
_local1[c][d] = _local2;
};
Array.prototype.shuffle = function () {
var _local3 = this;
var _local2 = _local3.length;
var _local1 = 0;
while (_local1 < _local2) {
_local3.swap(_local1, Math.randi(0, _local2));
_local1++;
}
};
Array.prototype.rande = function () {
return(this[Math.randi(0, this.length)]);
};
Array.prototype._push = function (e) {
if (e != undefined) {
this[this.length] = e;
}
};
Array.negated_intersection = function (A, B) {
var _local3 = B;
var _array = new Array();
var a_length = A.length;
var b_length = _local3.length;
var _local1 = 0;
while (_local1 < a_length) {
var found = false;
var _local2 = 0;
while (_local2 < b_length) {
if (A[_local1] == _local3[_local2]) {
found = true;
}
_local2++;
}
if (!found) {
_array._push(A[_local1]);
}
_local1++;
}
var _local2 = 0;
while (_local2 < b_length) {
var found = false;
_local1 = 0;
while (_local1 < a_length) {
if (_local3[_local2] == A[_local1]) {
found = true;
}
_local1++;
}
if (!found) {
_array._push(_local3[_local2]);
}
_local2++;
}
return(_array);
};
Array.prototype.remove_repeats = function () {
var _local3 = this;
var _array = new Array();
var _local1 = 0;
while (_local1 < _local3.length) {
found = false;
var _local2 = 0;
while (_local2 < _array.length) {
if (typeof(_local3[_local1]) == "object") {
var equal = true;
for (var n in _local3[_local1]) {
if (_local3[_local1][n] != _array[_local2][n]) {
equal = false;
}
}
if (equal) {
found = true;
}
} else if (_local3[_local1] == _array[_local2]) {
found = true;
}
_local2++;
}
if (!found) {
_array._push(_local3[_local1]);
}
_local1++;
}
return(_array);
};
Array.getIndices = function (a, b) {
var _local3 = b;
var _local2 = new Array();
var _local1 = a;
while (_local1 <= _local3) {
_local2._push(_local1);
_local1++;
}
return(_local2);
};
Array.prototype.return_copy = function () {
var _local2 = this;
var _local3 = new Array();
var _local1 = 0;
while (_local1 < _local2.length) {
_local3[_local1] = _local2[_local1];
_local1++;
}
return(_local3);
};
#endinitclip
Symbol 12 MovieClip [MovieClipExtensions] Frame 1
#initclip 2
MovieClip.prototype.playing = false;
MovieClip.prototype.mouseOver = false;
MovieClip.prototype._currentlabel = "";
MovieClip.prototype._play = function () {
this.playing = true;
this.play();
};
MovieClip.prototype._stop = function () {
this.playing = false;
this.stop();
};
MovieClip.prototype._gotoAndPlay = function (frame) {
var _local1 = frame;
var _local2 = this;
_local2.playing = true;
if (typeof(_local1) == "string") {
_local2._currentlabel = _local1;
}
_local2.gotoAndPlay(_local1);
};
MovieClip.prototype._gotoAndStop = function (frame) {
var _local1 = frame;
var _local2 = this;
_local2.playing = false;
if (typeof(_local1) == "string") {
_local2._currentlabel = _local1;
}
_local2.gotoAndStop(_local1);
};
MovieClip.prototype.hasLabel = function (label) {
var _local1 = this;
_local1.duplicateMovieClip("__TEMP__", 97324, {_x:-1, _y:-1, _visible:false, _width:1, _height:1});
new Sound(_local1._parent.__TEMP__).setVolume(0);
_local1._parent.__TEMP__.gotoAndStop(label);
var _local3 = _local1._parent.__TEMP__._currentframe;
_local1._parent.__TEMP__.nextFrame();
_local1._parent.__TEMP__.gotoAndStop(label);
var frame_f = _local1._parent.__TEMP__._currentframe;
var _local2 = _local3 == frame_f;
_local1._parent.__TEMP__.removeMovieClip();
return(_local2);
};
MovieClip.prototype.gotoAndPlayRandom = function () {
this._gotoAndPlay(Math.randi(1, this._totalframes + 1));
};
MovieClip.prototype.gotoAndStopRandom = function () {
this._gotoAndStop(Math.randi(1, this._totalframes + 1));
};
#endinitclip
Symbol 23 MovieClip Frame 1
this._stop();
Symbol 23 MovieClip Frame 22
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 23 MovieClip Frame 37
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 23 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 33 MovieClip Frame 1
this._stop();
Symbol 33 MovieClip Frame 23
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 33 MovieClip Frame 36
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 33 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 44 MovieClip Frame 1
this._stop();
Symbol 44 MovieClip Frame 23
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 44 MovieClip Frame 36
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 44 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 56 MovieClip Frame 1
this._stop();
Symbol 56 MovieClip Frame 23
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 56 MovieClip Frame 36
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 56 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 66 MovieClip Frame 1
this._stop();
Symbol 66 MovieClip Frame 25
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 66 MovieClip Frame 44
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 66 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 78 MovieClip Frame 1
this._stop();
Symbol 78 MovieClip Frame 28
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 78 MovieClip Frame 44
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 78 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 90 MovieClip Frame 1
this._stop();
Symbol 90 MovieClip Frame 30
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 90 MovieClip Frame 44
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 90 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 104 MovieClip Frame 1
this._stop();
Symbol 104 MovieClip Frame 23
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 104 MovieClip Frame 37
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 104 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 123 MovieClip Frame 1
this._stop();
Symbol 123 MovieClip Frame 23
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 123 MovieClip Frame 36
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 123 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 142 MovieClip Frame 1
this._stop();
Symbol 142 MovieClip Frame 23
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 142 MovieClip Frame 36
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 142 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 162 MovieClip Frame 1
this._stop();
Symbol 162 MovieClip Frame 25
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 162 MovieClip Frame 44
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 162 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 182 MovieClip Frame 1
this._stop();
Symbol 182 MovieClip Frame 28
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 182 MovieClip Frame 44
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 182 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 200 MovieClip Frame 1
this._stop();
Symbol 200 MovieClip Frame 30
if (this.mouseOver) {
this._gotoAndPlay("Rollover Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 200 MovieClip Frame 44
if (this.mouseOver) {
this._gotoAndPlay("Clicked Animation");
} else {
this._gotoAndStop("Default");
}
Symbol 200 MovieClip Frame 62
this._gotoAndStop("Default");
Symbol 201 MovieClip [game_piece] Frame 1
this._stop();
Symbol 203 MovieClip Frame 1
stop();
Symbol 203 MovieClip Frame 62
this._gotoAndPlay(2);
Symbol 204 MovieClip [PieceComponent] Frame 1
#initclip 3
PieceClass = function () {
if (this._name != undefined) {
this.initialize();
}
};
PieceClass.prototype = new MovieClip();
Object.registerClass("PieceComponent", PieceClass);
PieceClass.prototype.initialize = function () {
this.initialize_variables();
this.initialize_graphics();
};
PieceClass.prototype.initialize_variables = function () {
var _local1 = this;
_local1.velocity_x = 0;
_local1.velocity_y = 0;
_local1.acceleration_x = 0;
_local1.acceleration_y = 0;
_local1.onEnterFrame = _local1.fall_to_position;
_local1.useHandCursor = false;
};
PieceClass.prototype.initialize_graphics = function () {
var _local1 = this;
_local1.pieces._gotoAndStop(_local1.type);
if (_local1.quiz) {
_local1.pieces._gotoAndStop(_local1.pieces._currentframe + (_local1.pieces._totalframes / 2));
}
};
PieceClass.prototype.rattle = function () {
var _local1 = this;
_local1._x = _local1.final_position_x + Math.randf(-5, 5);
_local1._y = _local1.final_position_y + Math.randf(-5, 5);
};
PieceClass.prototype.fall_to_position = function () {
var _local1 = this;
_local1.velocity_x = _local1.velocity_x + _local1.acceleration_x;
_local1.velocity_y = _local1.velocity_y + _local1.acceleration_y;
_local1._x = _local1._x + _local1.velocity_x;
_local1._y = _local1._y + _local1.velocity_y;
if (_local1._y > _local1.final_position_y) {
if (_local1.remove_piece) {
_local1.onEnterFrame = undefined;
var _local2 = true;
for (var _local3 in _local1._parent) {
if (_local1._parent[_local3].onEnterFrame != undefined) {
_local2 = false;
}
}
if (_local2 && (_local1.regenerate)) {
_local1._parent._parent.initialize_initial_pieces();
} else if (_local2 && (_local1.game_over)) {
_root.gotoAndStop("Game Over");
} else if (_local2) {
trace("NEXT LEVEL");
_local1._parent._parent.initialize_level();
}
_local1.unloadMovie();
} else {
_local1.velocity_y = 0;
_local1._y = _local1.final_position_y;
delete _local1.onEnterFrame;
_local1._parent._parent.check_all_stopped();
}
}
};
PieceClass.prototype.wait_to_fall = function () {
var _local1 = this;
if ((_local1.current_frame++) >= _local1.num_wait_frames) {
_local1.onEnterFrame = _local1.fall_to_position;
}
};
PieceClass.prototype.onMouseDown = function () {
var _local1 = this;
if (_local1.hitTest(_root._xmouse, _root._ymouse, true)) {
_local1._parent._parent.clicked_piece(_local1);
}
};
PieceClass.prototype.slide_new_position = function () {
var _local1 = this;
_local1._x = _local1._x + ((_local1.final_position_x - _local1._x) / 4);
_local1._y = _local1._y + ((_local1.final_position_y - _local1._y) / 4);
if ((Math.abs(_local1._x - _local1.final_position_x) <= 1) && (Math.abs(_local1._y - _local1.final_position_y) <= 1)) {
_local1.callback();
}
};
PieceClass.prototype.onRollOver = function () {
var _local1 = this;
if (_local1.pieces.sub._currentframe != 1) {
} else if (_local1.pieces.sub._currentlabel != "Clicked Animation") {
_local1._parent._parent.last_clicked_time = getTimer();
_local1.pieces.sub.mouseOver = true;
_local1.pieces.sub._gotoAndPlay("Rollover Animation");
}
};
PieceClass.prototype.onRollOut = function () {
if (this.pieces.sub._currentlabel != "Clicked Animation") {
this.pieces.sub.mouseOver = false;
}
};
#endinitclip
Symbol 205 MovieClip [TextfieldExtensions] Frame 1
#initclip 1
TextField.prototype.scrollToNumber = function (goToNumber, speed) {
var _local1 = this;
_local1.current_num = Number(_local1.text);
_local1.goToNumber = goToNumber;
if (_local1.scroller_interval != undefined) {
clearInterval(_local1.scroller_interval);
}
_local1.scroller_interval = setInterval(_local1.incrementNumber, speed, _local1);
};
Textfield.prototype.incrementNumber = function (_txt) {
var _local1 = _txt;
if (Number(_local1.text) < Number(_local1.goToNumber)) {
_local1.text = Math.floor(Number(_local1.text) + 1);
} else {
_local1.text = Math.floor(Number(_local1.text) - 1);
}
if (Number(_local1.text) == Number(_local1.goToNumber)) {
clearInterval(_local1.scroller_interval);
_local1.scroller_interval = undefined;
}
};
#endinitclip
Symbol 206 MovieClip [ObjectExtensions] Frame 1
#initclip 4
Object.prototype.swap = function (a, b) {
var _local1 = this;
var _local2 = _local1[a];
_local1[a] = _local1[b];
_local1[b] = _local2;
};
#endinitclip
Symbol 209 MovieClip [points_animation] Frame 16
this.unloadMovie();
Symbol 251 Button
on (press) {
this.gotoAndStop(1);
}
Symbol 255 Button
on (press) {
this.gotoAndStop(2);
}
Symbol 256 MovieClip Frame 1
stop();
_root.game_type = "Normal";
Symbol 256 MovieClip Frame 2
_root.game_type = "Timer";
Symbol 260 Button
on (release) {
this.play();
}
Symbol 263 Button
on (release) {
getURL ("http://www.jewelsofthedark.com/", "_blank");
}
Symbol 268 MovieClip Frame 1
stop();
Symbol 269 MovieClip Frame 1
stop();
Symbol 270 MovieClip Frame 1
this._stop();
Symbol 270 MovieClip Frame 2
this._stop();
Symbol 270 MovieClip Frame 3
this._stop();
Symbol 270 MovieClip Frame 4
this._stop();
Symbol 270 MovieClip Frame 5
this._stop();
Symbol 270 MovieClip Frame 6
this._stop();
Symbol 274 MovieClip Frame 1
this._visible = false;
Symbol 290 Button
on (press) {
_parent._parent.evaluate_answer(this);
}
Symbol 310 MovieClip Frame 1
stop();
Symbol 310 MovieClip Frame 22
stop();
_parent.fill_quiz_form();
Symbol 310 MovieClip Frame 59
this._gotoAndStop(1);
Symbol 310 MovieClip Frame 96
this._gotoAndStop(1);
Symbol 325 MovieClip Frame 60
this._gotoAndStop(1);
Symbol 339 MovieClip Frame 1
stop();
Symbol 339 MovieClip Frame 75
this._gotoAndStop(1);
Symbol 352 MovieClip Frame 1
stop();
Symbol 352 MovieClip Frame 22
stop();
Symbol 365 MovieClip Frame 1
stop();
Symbol 365 MovieClip Frame 120
this._gotoAndStop(1);
Symbol 367 Button
on (press) {
_root.gotoAndStop("Starting Screen");
}
Symbol 371 Button
on (press) {
if (_parent.paused_prompt._currentframe != 1) {
return(undefined);
}
_parent.pause_game();
this.nextFrame();
}
Symbol 373 Button
on (press) {
if (_parent.paused_prompt._currentframe != 22) {
return(undefined);
}
_parent.unpause_game();
this.prevFrame();
}
Symbol 374 MovieClip Frame 1
stop();
Symbol 377 Button
on (press) {
nextFrame();
}
Symbol 379 Button
on (press) {
prevFrame();
}
Symbol 380 MovieClip Frame 1
stop();
Symbol 380 MovieClip Frame 2
Symbol 383 Button
on (press) {
var grid = this.get_current_grid();
var j = 0;
while (j < this.num_rows) {
var k = 0;
while (k < this.num_columns) {
var neighbors = this.get_neighbors(j, k);
if (this.check_possible_swaps(grid, j, k, neighbors)) {
var _mc = this.piece_holder[(("piece_" + j) + "_") + k];
_mc.onRollOver();
_mc.onRollOut();
this.score = this.score - 25;
return(undefined);
}
k++;
}
j++;
}
}
Symbol 384 MovieClip [DiamondMineComponent] Frame 1
#initclip 7
DiamondMine = function () {
if (this._name != undefined) {
this.initialize();
}
};
DiamondMine.prototype = new MovieClip();
Object.registerClass("DiamondMineComponent", DiamondMine);
DiamondMine.prototype.initialize = function () {
var _local1 = this;
_local1.load_quiz_data();
_local1.initialize_variables();
_local1.initialize_graphics();
_local1.initialize_level();
};
DiamondMine.prototype.load_quiz_data = function () {
var _local2 = this;
_local2.quiz_loader = new LoadVars();
_local2.quiz_loader.onLoad = function () {
var _local2 = this;
_local2.loaded_successfully = arguments[0];
_local2.num_choices_per_question = Number(_local2.num_choices_per_question);
_local2.questions = new Array();
var _local1 = 0;
while (_local1 >= 0) {
if (_local2[("question" + _local1) + "_text"] == undefined) {
break;
}
_local2.questions[_local1] = new Object();
_local2.questions[_local1].text = _local2[("question" + _local1) + "_text"];
_local2.questions[_local1].answer = Number(_local2[("question" + _local1) + "_answer"]);
_local2.questions[_local1].choices = new Array();
var _local3 = 0;
while (_local3 < _local2.num_choices_per_question) {
_local2.questions[_local1].choices[_local3] = _local2[(("question" + _local1) + "_choice") + _local3];
_local3++;
}
_local1++;
}
_local2.current_question_list = _local2.questions.return_copy();
_local2.questions.shuffle();
_local2.current_question_list.shuffle();
};
};
DiamondMine.prototype.initialize_variables = function () {
var _local1 = this;
_local1.depth = 0;
_local1.score = 0;
_local1.piece_width = _local1.piece_holder.play_area._width / _local1.num_columns;
_local1.piece_height = _local1.piece_holder.play_area._height / _local1.num_rows;
_local1.piece = new Array();
_local1.current_level = -1;
_local1.selected_piece0_mc = undefined;
_local1.selected_piece1_mc = undefined;
var _local2 = _local1.attachMovie("PieceComponent", "__TEMP__", 123);
_local1.num_pieces = _local2.pieces._totalframes / 2;
_local2.removeMovieClip();
_local1.paused = false;
_local1.shaking_mc = undefined;
_local1.sounds_on = true;
_local1.level_questions_maxed = false;
_local1.num_asked_questions = 0;
};
DiamondMine.prototype.initialize_graphics = function () {
};
DiamondMine.prototype.initialize_level = function () {
var _local1 = this;
_local1.current_level++;
_local1.time_percentage = 50;
_local1.level_prompt._play();
_local1.level_prompt.field = ("Level " + (_local1.current_level + 1)) + "!";
_local1.initialize_initial_pieces();
_local1.piece_holder.backgrounds._play();
_local1.level_questions_maxed = false;
_local1.num_asked_questions = 0;
_local1.paused = false;
};
DiamondMine.prototype.initialize_initial_pieces = function () {
var _local1 = this;
var grid = _local1.calculate_solutionless_grid();
_local1.pieces = new Array();
var _local3 = _local1.num_rows - 1;
while (_local3 >= 0) {
var _local2 = 0;
while (_local2 < _local1.num_columns) {
if (_local3 == (_local1.num_rows - 1)) {
var prev_y = (((_local1.piece_holder.play_area._y - _local1.piece_holder.play_area._height) + (_local1.num_rows * _local1.piece_height)) - Math.randf(0, 50));
} else {
var prev_y = _local1.piece_holder[(("piece_" + (_local3 + 1)) + "_") + _local2]._y;
}
var initial_position_x = (_local1.piece_holder.play_area._x + (_local2 * _local1.piece_width));
var initial_position_y = ((prev_y - (_local1.piece_height * 2)) - Math.randf(50, 100));
var final_position_x = _local1.calculate_final_position(_local3, _local2).x;
var final_position_y = _local1.calculate_final_position(_local3, _local2).y;
_local1.create_piece(_local3, _local2, initial_position_x, initial_position_y, final_position_x, final_position_y, grid[_local3][_local2]);
_local2++;
}
_local3--;
}
};
DiamondMine.prototype.create_piece = function (index_j, index_k, initial_position_x, initial_position_y, final_position_x, final_position_y, type) {
var _local2 = this;
if (((_local2.use_quiz == "True") && (_local2.quiz_loader.loaded_successfully)) && (!_local2.level_questions_maxed)) {
if (Math.random() <= _local2.quiz_piece_probability) {
var quiz = true;
} else {
var quiz = false;
}
}
var _local1 = _local2.piece_holder.attachMovie("PieceComponent", (("piece_" + index_j) + "_") + index_k, _local2.depth++, {type:type, quiz:quiz});
_local1.index_j = index_j;
_local1.index_k = index_k;
_local1._width = _local2.piece_width;
_local1._height = _local2.piece_height;
_local1._x = initial_position_x;
_local1._y = initial_position_y;
_local1.final_position_x = final_position_x;
_local1.final_position_y = final_position_y;
_local1.acceleration_y = _local2.piece_acceleration;
};
DiamondMine.prototype.clicked_piece = function (piece_mc) {
var _local1 = this;
var _local2 = piece_mc;
if (_local1.paused) {
} else if (_local1.check_for_movement()) {
} else {
_local1.last_clicked_time = getTimer();
if (_local2.selector_mc._currentframe != 1) {
_local1.unselect_piece(_local2);
} else if (_local1.selected_piece0_mc != undefined) {
_local1.select_piece(_local2);
_local1.evaluate_player_selection();
_local1.play_sound("egg_move_sound");
} else {
_local1.select_piece(_local2);
}
}
};
DiamondMine.prototype.unselect_piece = function (piece_mc, custom_animation) {
var _local1 = piece_mc;
var _local2 = this;
_local1.selector_mc._gotoAndStop(1);
if (!custom_animation) {
_local1.pieces.sub._gotoAndStop("Default");
}
if (_local1 == _local2.selected_piece0_mc) {
_local2.selected_piece0_mc = undefined;
}
if (_local1 == _local2.selected_piece1_mc) {
_local2.selected_piece1_mc = undefined;
}
};
DiamondMine.prototype.select_piece = function (piece_mc) {
var _local1 = piece_mc;
var _local2 = this;
_local1.selector_mc._gotoAndPlay(2);
_local1.pieces.sub._gotoAndPlay("Clicked Animation");
if (_local2.selected_piece0_mc == undefined) {
_local2.selected_piece0_mc = _local1;
} else {
_local2.selected_piece1_mc = _local1;
_local1.selector_mc._gotoAndPlay(_local2.selected_piece0_mc.selector_mc._currentframe);
}
};
DiamondMine.prototype.evaluate_player_selection = function () {
var _local1 = this;
if (_local1.adjacent_selections()) {
_local1.selected_adjacent_pieces();
} else {
_local1.selected_nonadjacent_pieces();
}
};
DiamondMine.prototype.adjacent_selections = function () {
var _local1 = this;
return(((_local1.selected_piece0_mc.index_j == _local1.selected_piece1_mc.index_j) && (Math.abs(_local1.selected_piece0_mc.index_k - _local1.selected_piece1_mc.index_k) == 1)) || ((_local1.selected_piece0_mc.index_k == _local1.selected_piece1_mc.index_k) && (Math.abs(_local1.selected_piece0_mc.index_j - _local1.selected_piece1_mc.index_j) == 1)));
};
DiamondMine.prototype.selected_adjacent_pieces = function () {
var _local1 = this;
_local1.swap_selected_pieces();
_local1.selected_piece0_mc.selector_mc._gotoAndStop(1);
_local1.selected_piece1_mc.selector_mc._gotoAndStop(1);
_local1.selected_piece0_mc.pieces.sub._gotoAndStop("Default");
_local1.selected_piece1_mc.pieces.sub._gotoAndStop("Default");
};
DiamondMine.prototype.swap_selected_pieces = function () {
var _local1 = this;
_local1.swap_selected_indices();
_local1.swap_selected_instance_names();
_local1.selected_piece0_mc.onEnterFrame = _local1.selected_piece0_mc.slide_new_position;
_local1.selected_piece1_mc.onEnterFrame = _local1.selected_piece1_mc.slide_new_position;
_local1.selected_piece0_mc.callback = _local1.piece_sliding_done_before;
_local1.selected_piece1_mc.callback = undefined;
_local1.update_final_position(_local1.selected_piece0_mc);
_local1.update_final_position(_local1.selected_piece1_mc);
};
DiamondMine.prototype.swap_selected_pieces_back = function () {
var _local1 = this;
_local1.swap_selected_pieces();
_local1.selected_piece0_mc.callback = _local1.piece_sliding_done_after;
_local1.selected_piece1_mc.callback = undefined;
var _local3 = _local1.selected_piece0_mc;
var _local2 = _local1.selected_piece1_mc;
if (_local1.selected_piece0_mc.pieces.sub.hasLabel("Wrong Move")) {
_local3.pieces.sub._gotoAndPlay("Wrong Move");
}
if (_local1.selected_piece1_mc.pieces.sub.hasLabel("Wrong Move")) {
_local2.pieces.sub._gotoAndPlay("Wrong Move");
}
_local1.unselect_piece(_local1.selected_piece0_mc, true);
_local1.unselect_piece(_local1.selected_piece1_mc, true);
};
DiamondMine.prototype.swap_selected_indices = function () {
var _local1 = this;
var _local3 = {a:_local1.selected_piece0_mc.index_j, b:_local1.selected_piece1_mc.index_j};
var _local2 = {a:_local1.selected_piece0_mc.index_k, b:_local1.selected_piece1_mc.index_k};
_local3.swap("a", "b");
_local2.swap("a", "b");
_local1.selected_piece0_mc.index_j = _local3.a;
_local1.selected_piece0_mc.index_k = _local2.a;
_local1.selected_piece1_mc.index_j = _local3.b;
_local1.selected_piece1_mc.index_k = _local2.b;
};
DiamondMine.prototype.swap_selected_instance_names = function () {
var _local1 = this;
var _local3 = _local1.selected_piece0_mc._name;
var _local2 = _local1.selected_piece1_mc._name;
_local1.selected_piece0_mc._name = "name0";
_local1.selected_piece1_mc._name = "name1";
_local1.selected_piece0_mc._name = _local2;
_local1.selected_piece1_mc._name = _local3;
};
DiamondMine.prototype.piece_sliding_done_before = function () {
this._parent._parent.evaluate_grid();
};
DiamondMine.prototype.piece_sliding_done_after = function () {
this._parent._parent.stop_all_movement();
};
DiamondMine.prototype.stop_all_movement = function () {
var _local3 = this;
var _local2 = 0;
while (_local2 < _local3.num_rows) {
var _local1 = 0;
while (_local1 < _local3.num_columns) {
_local3.piece_holder[(("piece_" + _local2) + "_") + _local1].onEnterFrame = undefined;
_local1++;
}
_local2++;
}
};
DiamondMine.prototype.evaluate_grid = function () {
var _local1 = this;
_local1.selected_piece0_mc.onEnterFrame = undefined;
_local1.selected_piece1_mc.onEnterFrame = undefined;
if (_local1.alreadyHasSolution()) {
_local1.handle_solutions();
} else {
if (arguments.length == 0) {
_local1.play_sound("egg_move_sound");
}
_local1.swap_selected_pieces_back();
}
_local1.selected_piece0_mc = undefined;
_local1.selected_piece1_mc = undefined;
};
DiamondMine.prototype.handle_solutions = function () {
var _local2 = this;
var _local1 = _local2.calculate_remove_list();
_local2.update_score(_local1);
_local2.play_remove_animations(_local1);
_local2.shift_pieces_down(_local1);
_local2.add_new_pieces(_local1);
_local2.increase_time_percentage(_local1.length);
_local2.play_sound(["clear_sound0", "clear_sound1", "clear_sound2"].rande());
};
DiamondMine.prototype.increase_time_percentage = function (num_collapsed_pieces) {
var _local1 = this;
if (_local1.game_type == "Timer") {
_local1.time_percentage = _local1.time_percentage + (_local1.collapse_percent_increase + (_local1.level_collapse_percent_change * num_collapsed_pieces));
} else {
_local1.time_percentage = _local1.time_percentage + (_local1.collapse_percent_increase + Math.max((-_local1.level_collapse_percent_change) * num_collapsed_pieces, _local1.minimum_collapse_percent));
}
};
DiamondMine.prototype.calculate_remove_list = function () {
var _local3 = this;
var _local2 = new Array();
var j = 0;
while (j < _local3.num_rows) {
var k = 0;
while (k < _local3.num_columns) {
var _local1 = _local3.get_neighborhood(j, k);
if (((_local1.left.type == _local1.middle.type) && (_local1.middle.type == _local1.right.type)) && (_local1.left.type == _local1.right.type)) {
_local2._push({j:_local1.left.index_j, k:_local1.left.index_k});
_local2._push({j:_local1.middle.index_j, k:_local1.middle.index_k});
_local2._push({j:_local1.right.index_j, k:_local1.right.index_k});
} else if (((_local1.top.type == _local1.middle.type) && (_local1.middle.type == _local1.bottom.type)) && (_local1.top.type == _local1.bottom.type)) {
_local2._push({j:_local1.top.index_j, k:_local1.top.index_k});
_local2._push({j:_local1.middle.index_j, k:_local1.middle.index_k});
_local2._push({j:_local1.bottom.index_j, k:_local1.bottom.index_k});
}
k++;
}
j++;
}
return(_local2.remove_repeats());
};
DiamondMine.prototype.play_remove_animations = function (remove_list) {
var quiz_piece = false;
var _local2 = 0;
while (_local2 < remove_list.length) {
var index_j = remove_list[_local2].j;
var _local3 = remove_list[_local2].k;
var _local1 = this.piece_holder[(("piece_" + index_j) + "_") + _local3];
_local1.IAMDEAD = true;
_local1._name = "__TEMP__" + Math.randi(0, 10000);
_local1.pieces.sub._gotoAndPlay("Remove Animation");
if (_local1.quiz) {
quiz_piece = true;
}
_local1._x = -1000;
_local1._y = -1000;
_local1._visible = false;
_local1.removeMovieClip();
_local2++;
}
if (quiz_piece && (!this.level_questions_maxed)) {
this.create_quiz();
}
};
DiamondMine.prototype.create_quiz = function () {
var _local1 = this;
if (_local1.new_board_prompt.playing) {
} else if (_local1.quiz_prompt._currentframe != 1) {
} else {
_local1.paused = true;
_local1.quiz_prompt._play();
_local1.quiz_prompt.swapDepths(_local1.depth + 5000);
_local1.num_asked_questions++;
if (_local1.num_asked_questions >= _local1.max_quiz_per_level) {
_local1.level_questions_maxed = true;
var j = 0;
while (j < _local1.num_rows) {
var _local3 = 0;
while (_local3 < _local1.num_columns) {
var _local2 = _local1.piece_holder[(("piece_" + j) + "_") + _local3];
if (_local2.pieces._currentframe > _local1.num_pieces) {
_local2.pieces.gotoAndStop(_local2.pieces._currentframe - _local1.num_pieces);
}
_local3++;
}
j++;
}
}
}
};
DiamondMine.prototype.fill_quiz_form = function () {
var _local3 = this;
if (_local3.quiz_loader.current_question_list.length == 0) {
_local3.quiz_loader.current_question_list = _local3.quiz_loader.questions.return_copy();
_local3.quiz_loader.current_question_list.shuffle();
}
var question = _local3.quiz_loader.current_question_list.pop();
_local3.quiz_prompt.question = question.text;
var _local1 = 0;
while (_local1 < _local3.quiz_loader.num_choices_per_question) {
var _local2 = _local3.quiz_prompt["choice" + _local1];
_local2.choice = String.fromCharCode("A".charCodeAt(0) + _local1);
_local2.field = question.choices[_local1];
if (_local1 == question.answer) {
_local2.correct = true;
}
_local1++;
}
};
DiamondMine.prototype.evaluate_answer = function (choice_mc) {
var _local1 = this;
_local1.paused = false;
if (choice_mc.correct) {
_local1.correct_answer();
} else {
_local1.incorrect_answer();
}
};
DiamondMine.prototype.correct_answer = function () {
var _local1 = this;
_local1.score = _local1.score + _local1.correct_points;
_local1.score_txt.scrollToNumber(Math.round(_local1.score), 10);
_local1.quiz_prompt._gotoAndPlay("Correct Answer");
};
DiamondMine.prototype.incorrect_answer = function () {
var _local1 = this;
_local1.score = _local1.score + _local1.incorrect_points;
_local1.score_txt.scrollToNumber(Math.round(_local1.score), 10);
_local1.quiz_prompt._gotoAndPlay("Incorrect Answer");
};
DiamondMine.prototype.shift_pieces_down = function (remove_list) {
var _local2 = this;
var shift_columns = _local2.get_shifted_columns(remove_list);
var k = 0;
while (k < shift_columns.length) {
var j = (_local2.num_rows - 2);
while (j >= 0) {
var _local1 = _local2.piece_holder[(("piece_" + j) + "_") + shift_columns[k]];
if (_local1 != undefined) {
var _local3 = false;
while (!_local3) {
if ((_local2.piece_holder[(("piece_" + (_local1.index_j + 1)) + "_") + _local1.index_k] == undefined) && ((_local1.index_j + 1) < _local2.num_rows)) {
_local1.index_j++;
_local1._name = (("piece_" + _local1.index_j) + "_") + _local1.index_k;
_local1.final_position_x = _local2.calculate_final_position(_local1.index_j, _local1.index_k).x;
_local1.final_position_y = _local2.calculate_final_position(_local1.index_j, _local1.index_k).y;
_local1.onEnterFrame = _local1.fall_to_position;
} else {
_local3 = true;
}
}
}
j--;
}
k++;
}
};
DiamondMine.prototype.get_shifted_columns = function (remove_list) {
var _local2 = remove_list;
var _local3 = new Array();
var _local1 = 0;
while (_local1 < _local2.length) {
_local3._push(_local2[_local1].k);
_local1++;
}
return(_local3.remove_repeats());
};
DiamondMine.prototype.get_minimum_rows = function (columns, remove_list) {
var _local2 = remove_list;
var min_rows = new Array();
var j = 0;
while (j < columns.length) {
var c = columns[j];
var _local3 = Number.MAX_VALUE;
var _local1 = 0;
while (_local1 < _local2.length) {
if (_local2[_local1].k == c) {
if (_local2[_local1].j <= _local3) {
_local3 = _local2[_local1].j;
}
}
_local1++;
}
min_rows[j] = _local3;
j++;
}
return(min_rows);
};
DiamondMine.prototype.get_num_column_pieces = function (shift_columns, remove_list) {
var _local3 = remove_list;
var num_pieces = new Array();
var _local2 = 0;
while (_local2 < shift_columns.length) {
num_pieces[_local2] = 0;
var _local1 = 0;
while (_local1 < _local3.length) {
if (_local3[_local1].k == shift_columns[_local2]) {
num_pieces[_local2]++;
}
_local1++;
}
_local2++;
}
return(num_pieces);
};
DiamondMine.prototype.shift_above_pieces = function (minimum_rows, shift_columns, num_columns_pieces) {
var _local2 = 0;
while (_local2 < shift_columns.length) {
var _local3 = minimum_rows[_local2] - 1;
while (_local3 >= 0) {
var _local1 = this.piece_holder[(("piece_" + _local3) + "_") + shift_columns[_local2]];
_local1.index_j = _local1.index_j + num_columns_pieces[_local2];
_local1._name = (("piece_" + _local1.index_j) + "_") + _local1.index_k;
_local1.final_position_x = this.calculate_final_position(_local1.index_j, _local1.index_k).x;
_local1.final_position_y = this.calculate_final_position(_local1.index_j, _local1.index_k).y;
_local1.onEnterFrame = _local1.fall_to_position;
_local3--;
}
_local2++;
}
};
DiamondMine.prototype.add_new_pieces = function (remove_list) {
var _local1 = this;
var j = 0;
while (j < _local1.num_rows) {
var _local2 = 0;
while (_local2 < _local1.num_columns) {
var _mc = _local1.piece_holder[(("piece_" + j) + "_") + _local2];
if (_mc == undefined) {
var _local3 = j;
while (_local3 < _local1.num_rows) {
var piece_mc = _local1.piece_holder[(("piece_" + _local3) + "_") + _local2];
if (piece_mc != undefined) {
var bottom = _local3;
break;
}
_local3++;
}
var initial_position_x = (_local1.piece_holder.play_area._x + (_local2 * _local1.piece_width));
var initial_position_y = (((-_local1.piece_height) * 0) - ((bottom - j) * _local1.piece_height));
var final_position_x = _local1.calculate_final_position(j, _local2).x;
var final_position_y = _local1.calculate_final_position(j, _local2).y;
_local1.create_piece(j, _local2, initial_position_x, initial_position_y, final_position_x, final_position_y, Math.randi(1, _local1.num_pieces + 1));
}
_local2++;
}
j++;
}
};
DiamondMine.prototype.selected_nonadjacent_pieces = function () {
var _local1 = this;
_local1.unselect_piece(_local1.selected_piece0_mc);
_local1.unselect_piece(_local1.selected_piece1_mc);
};
DiamondMine.prototype.hasSolution = function () {
return(this.alreadyHasSolution());
};
DiamondMine.prototype.alreadyHasSolution = function () {
var _local3 = 0;
while (_local3 < this.num_rows) {
var _local2 = 0;
while (_local2 < this.num_columns) {
var _local1 = this.get_neighborhood(_local3, _local2);
if ((((_local1.left.type == _local1.middle.type) && (_local1.middle.type == _local1.right.type)) && (_local1.left.type == _local1.right.type)) || (((_local1.top.type == _local1.middle.type) && (_local1.middle.type == _local1.bottom.type)) && (_local1.top.type == _local1.bottom.type))) {
return(true);
}
_local2++;
}
_local3++;
}
return(false);
};
DiamondMine.prototype.hasPossibleSolution = function () {
var _local3 = this;
var grid = _local3.get_current_grid();
var _local2 = 0;
while (_local2 < _local3.num_rows) {
var _local1 = 0;
while (_local1 < _local3.num_columns) {
var neighbors = _local3.get_neighbors(_local2, _local1);
if (_local3.check_possible_swaps(grid, _local2, _local1, neighbors)) {
return(true);
}
_local1++;
}
_local2++;
}
return(false);
};
DiamondMine.prototype.get_neighbors = function (j, k) {
var _local1 = k;
var _local2 = j;
var _local3 = this;
if ((_local2 == 0) && (_local1 == 0)) {
return([[_local2 + 1, _local1], [_local2, _local1 + 1]]);
}
if ((_local2 == 0) && (_local1 == (_local3.num_columns - 1))) {
return([[_local2 + 1, _local1], [_local2, _local1 - 1]]);
}
if ((_local2 == (_local3.num_rows - 1)) && (_local1 == 0)) {
return([[_local2 - 1, _local1], [_local2, _local1 + 1]]);
}
if ((_local2 == (_local3.num_rows - 1)) && (_local1 == (_local3.num_columns - 1))) {
return([[_local2 - 1, _local1], [_local2, _local1 - 1]]);
}
if (_local2 == 0) {
return([[_local2, _local1 - 1], [_local2, _local1 + 1], [_local2 + 1, _local1]]);
}
if (_local1 == 0) {
return([[_local2 - 1, _local1], [_local2 + 1, _local1], [_local2, _local1 + 1]]);
}
if (_local2 == (_local3.num_rows - 1)) {
return([[_local2, _local1 - 1], [_local2, _local1 + 1], [_local2 - 1, _local1]]);
}
if (_local1 == (_local3.num_columns - 1)) {
return([[_local2 - 1, _local1], [_local2 + 1, _local1], [_local2, _local1 - 1]]);
}
return([[_local2 - 1, _local1], [_local2 + 1, _local1], [_local2, _local1 - 1], [_local2, _local1 + 1]]);
};
DiamondMine.prototype.check_possible_swaps = function (grid, j, k, neighbors) {
var _local2 = grid;
var _local3 = k;
var _local1 = 0;
while (_local1 < neighbors.length) {
_local2.swap2D(j, _local3, neighbors[_local1][0], neighbors[_local1][1]);
if (this.gridHasNeighborhoodSolution(_local2, j, _local3)) {
return(true);
}
if (this.gridHasNeighborhoodSolution(_local2, j + 1, _local3)) {
return(true);
}
if (this.gridHasNeighborhoodSolution(_local2, j - 1, _local3)) {
return(true);
}
if (this.gridHasNeighborhoodSolution(_local2, j, _local3 + 1)) {
return(true);
}
if (this.gridHasNeighborhoodSolution(_local2, j, _local3 - 1)) {
return(true);
}
_local2.swap2D(j, _local3, neighbors[_local1][0], neighbors[_local1][1]);
_local1++;
}
return(false);
};
DiamondMine.prototype.get_current_grid = function () {
var _local3 = this;
var grid = new Array();
var _local2 = 0;
while (_local2 < _local3.num_rows) {
grid[_local2] = new Array();
var _local1 = 0;
while (_local1 < _local3.num_columns) {
grid[_local2][_local1] = _local3.piece_holder[(("piece_" + _local2) + "_") + _local1].type;
_local1++;
}
_local2++;
}
return(grid);
};
DiamondMine.prototype.gridHasSolution = function (grid) {
var _local3 = 0;
while (_local3 < this.num_rows) {
var _local2 = 0;
while (_local2 < this.num_columns) {
var _local1 = new Object();
_local1.left = grid[_local3][_local2 - 1];
_local1.right = grid[_local3][_local2 + 1];
_local1.top = grid[_local3 - 1][_local2];
_local1.bottom = grid[_local3 + 1][_local2];
_local1.middle = grid[_local3][_local2];
if ((((_local1.left == _local1.middle) && (_local1.middle == _local1.right)) && (_local1.left == _local1.right)) || (((_local1.top == _local1.middle) && (_local1.middle == _local1.bottom)) && (_local1.top == _local1.bottom))) {
return(true);
}
_local2++;
}
_local3++;
}
return(false);
};
DiamondMine.prototype.gridHasNeighborhoodSolution = function (grid, j, k) {
var _local2 = grid;
var _local3 = k;
if (_local2[j][_local3] == undefined) {
return(false);
}
var _local1 = new Object();
_local1.left = _local2[j][_local3 - 1];
_local1.right = _local2[j][_local3 + 1];
_local1.top = _local2[j - 1][_local3];
_local1.bottom = _local2[j + 1][_local3];
_local1.middle = _local2[j][_local3];
if ((((_local1.left == _local1.middle) && (_local1.middle == _local1.right)) && (_local1.left == _local1.right)) || (((_local1.top == _local1.middle) && (_local1.middle == _local1.bottom)) && (_local1.top == _local1.bottom))) {
return(true);
}
return(false);
};
DiamondMine.prototype.update_final_position = function (piece_mc) {
var _local1 = piece_mc;
var _local2 = this.calculate_final_position(_local1.index_j, _local1.index_k);
_local1.final_position_x = _local2.x;
_local1.final_position_y = _local2.y;
};
DiamondMine.prototype.calculate_final_position = function (j, k) {
var _local2 = this;
var _local1 = {};
_local1.x = _local2.piece_holder.play_area._x + (k * _local2.piece_width);
_local1.y = _local2.piece_holder.play_area._y + (j * _local2.piece_height);
return(_local1);
};
DiamondMine.prototype.calculate_solutionless_grid = function () {
var _local3 = new Array();
var _local2 = 0;
while (_local2 < this.num_rows) {
_local3[_local2] = new Array();
var _local1 = 0;
while (_local1 < this.num_columns) {
var left = _local3[_local2][_local1 - 1];
var right = _local3[_local2][_local1 + 1];
var top = _local3[_local2 - 1][_local1];
var bottom = _local3[_local2 + 1][_local1];
var possibilities = Array.getIndices(1, this.num_pieces);
var non_possibilities = [left, right, top, bottom];
var different_pieces = Array.negated_intersection(possibilities, non_possibilities);
_local3[_local2][_local1] = different_pieces.rande();
_local1++;
}
_local2++;
}
return(_local3);
};
DiamondMine.prototype.get_neighborhood = function (j, k) {
var _local2 = this;
var _local3 = k;
var _local1 = new Array();
_local1.middle = _local2.piece_holder[(("piece_" + j) + "_") + _local3];
_local1.left = _local2.piece_holder[(("piece_" + j) + "_") + (_local3 - 1)];
_local1.right = _local2.piece_holder[(("piece_" + j) + "_") + (_local3 + 1)];
_local1.top = _local2.piece_holder[(("piece_" + (j - 1)) + "_") + _local3];
_local1.bottom = _local2.piece_holder[(("piece_" + (j + 1)) + "_") + _local3];
return(_local1);
};
DiamondMine.prototype.check_for_movement = function () {
var _local3 = 0;
while (_local3 < this.num_rows) {
var _local1 = 0;
while (_local1 < this.num_columns) {
var _local2 = this.piece_holder[(("piece_" + _local3) + "_") + _local1];
if (_local2.onEnterFrame != undefined) {
return(true);
}
_local1++;
}
_local3++;
}
return(false);
};
DiamondMine.prototype.check_all_stopped = function () {
var _local1 = this;
if (!_local1.check_for_movement()) {
_local1.evaluate_grid(0);
var _local2 = _local1.hasPossibleSolution();
if (!_local2) {
if (_local1.game_type == "Timer") {
_local1.new_board();
} else {
_local1.game_over();
}
}
}
};
DiamondMine.prototype.game_over = function () {
var _local3 = this;
var _local2 = 0;
while (_local2 < _local3.num_rows) {
var _local1 = 0;
while (_local1 < _local3.num_columns) {
_local3.piece_holder[(("piece_" + _local2) + "_") + _local1].game_over = true;
_local1++;
}
_local2++;
}
_local3.explode_pieces();
_local3.game_over_prompt._play();
};
DiamondMine.prototype.onEnterFrame = function () {
var _local2 = this;
if (((getTimer() - _local2.last_clicked_time) > 100000000000) && (!_local2.check_for_movement())) {
_local2.last_clicked_time = getTimer();
var grid = _local2.get_current_grid();
var _local3 = 0;
while (_local3 < _local2.num_rows) {
var _local1 = 0;
while (_local1 < _local2.num_columns) {
var neighbors = _local2.get_neighbors(_local3, _local1);
if (_local2.check_possible_swaps(grid, _local3, _local1, neighbors)) {
var _mc = _local2.piece_holder[(("piece_" + _local3) + "_") + _local1];
_mc.onRollOver(123456789);
_mc.onRollOut(123456789);
return;
}
_local1++;
}
_local3++;
}
}
_local2.update_game_timer();
_local2.update_game_properties();
};
DiamondMine.prototype.update_game_timer = function () {
var _local1 = this;
_local1.old_time_percentage = _local1.time_percentage;
if (((_local1.game_type == "Timer") && (!_local1.paused)) && (_global.__NEW_BOARD_PROMPT__ != true)) {
_local1.time_percentage = _local1.time_percentage - (_local1.time_percent_change + (_local1.level_percent_change_increase * _local1.current_level));
}
if (_local1.time_percentage < 10) {
if (_local1.warn_sound == undefined) {
_local1.warn_sound = new Sound();
_local1.warn_sound.attachSound("warning");
_local1.warn_sound.start();
_local1.warning_sound_start = getTimer();
}
if (getTimer() > (_local1.warning_sound_start + 1000)) {
_local1.warn_sound.stop();
_local1.warn_sound.start();
_local1.warning_sound_start = getTimer();
}
_local1.timer_mc.frame_mc.play();
} else {
_local1.timer_mc.frame_mc.gotoAndStop(1);
}
_local1.render_game_timer();
};
DiamondMine.prototype.render_game_timer = function () {
var _local1 = this;
var _local2 = (_local1.time_percentage / 100) * _local1.timer_mc.frame_mc._width;
_local1.timer_mc.bar_mc._x = _local1.timer_mc.bar_mc._x + ((_local2 - _local1.timer_mc.bar_mc._x) / 10);
_local1.timer_mc.bar_mc._gotoAndStop(Math.round((_local1.time_percentage / 100) * _local1.timer_mc.bar_mc._totalframes) + 1);
if (_local1.time_percentage >= 100) {
_local1.next_level();
} else if (_local1.time_percentage <= 0) {
_root.sounds_on = _local1.sounds_on;
_root._gotoAndStop("Game Over");
}
};
DiamondMine.prototype.next_level = function () {
var _local2 = this;
for (var _local3 in _local2.piece_holder) {
var _local1 = _local2.piece_holder[_local3];
if (typeof(_local1) == "movieclip") {
if ((_local1._name != "backgrounds") && (_local1._name != "play_area")) {
_local1.removeMovieClip();
}
}
}
_local2.paused = true;
_local2.time_percentage = 50;
_local2.initialize_level();
};
DiamondMine.prototype.explode_pieces = function () {
var _local2 = this;
var j = 0;
while (j < _local2.num_rows) {
var _local3 = 0;
while (_local3 < _local2.num_columns) {
var _local1 = _local2.piece_holder[(("piece_" + j) + "_") + _local3];
_local1.velocity_x = Math.randf(-10, 10);
_local1.velocity_y = Math.randf(-30, -20);
_local1.final_position_y = (_local2.piece_holder.play_area._y + _local2.piece_holder.play_area._height) + _local1._height;
_local1._y = _local1.final_position_y + 100;
_local1.remove_piece = true;
_local1.num_wait_frames = Math.randi(0, 50);
_local1.current_frame = 0;
_local1.swapDepths(_local2.depth++);
_local1._name = "__TEMP__" + Math.randi(0, 10000);
_local1.onEnterFrame = _local1.wait_to_fall;
_local3++;
}
j++;
}
};
DiamondMine.prototype.update_score = function (remove_list) {
var _local1 = this;
var score_increase = (remove_list.length * (_local1.points_per_piece + (_local1.level_point_increase * _local1.current_level)));
_local1.score = _local1.score + score_increase;
_local1.score_txt.scrollToNumber(Math.round(_local1.score), 10);
_local1.depth++;
var _local3 = _local1.attachMovie("points_animation", "points" + _local1.depth, _local1.depth);
var _local2 = remove_list.rande();
_local3._x = _local1.piece_holder[(("piece_" + _local2.j) + "_") + _local2.k]._x;
_local3._y = _local1.piece_holder[(("piece_" + _local2.j) + "_") + _local2.k]._y;
_local3.points = "+" + score_increase;
};
DiamondMine.prototype.update_game_properties = function () {
_root.score = this.score;
};
DiamondMine.prototype.new_board = function () {
var _local2 = this;
var j = 0;
while (j < _local2.num_rows) {
var _local1 = 0;
while (_local1 < _local2.num_columns) {
_local2.piece_holder[(("piece_" + j) + "_") + _local1].regenerate = true;
_local1++;
}
j++;
}
_local2.explode_pieces();
for (var j in _local2.piece_holder) {
var _local3 = _local2.piece_holder[j];
if (typeof(_local3) == "movieclip") {
if (((!_local3.regenerate) && (_local3._name != "backgrounds")) && (_local3._name != "play_area")) {
_local3.removeMovieClip();
}
}
}
_local2.new_board_prompt._play();
};
DiamondMine.prototype.pause_game = function () {
this.paused = true;
this.paused_prompt.play();
};
DiamondMine.prototype.unpause_game = function () {
this.paused = false;
this.paused_prompt.play();
};
DiamondMine.prototype.play_sound = function (linkage) {
var _local2 = this;
if (_local2.sounds_mc._currentframe == 2) {
} else if (_local2.sounds_on == true) {
var _local1 = new Sound(_local2);
_local1.attachSound(linkage);
_local1.start(0, 1);
}
};
DiamondMine.prototype.onMouseDown = function () {
var _local2 = this;
var _local3 = _root;
_local2.shaking_mc.onRollOut(123456789);
_local2.shaking_mc = undefined;
for (var j in _local2.piece_holder) {
var _local1 = _local2.piece_holder[j];
if ((_local1.hitTest(_local3._xmouse, _local3._ymouse, true) && (_local1._name != "backgrounds")) && (_local1._name != "play_area")) {
}
}
};
#endinitclip
this._x = 0;
this._y = 0;
Instance of Symbol 275 MovieClip "piece_holder" in Symbol 384 MovieClip [DiamondMineComponent] Frame 1
onClipEvent (keyDown) {
if (Key.isDown(16)) {
trace(_parent.hasPossibleSolution());
} else if (Key.isDown(32)) {
for (var j in this) {
if (typeof(this[j]) == "movieclip") {
trace(this[j]);
}
}
}
}
Symbol 388 Button
on (press) {
this.gotoAndPlay("Starting Screen");
}