Frame 1
function createFun() {
var _local2 = function () {
var _local2 = arguments.callee.obj;
var _local3 = arguments.callee.func;
var _local4 = arguments.callee.arg;
return(_local3.apply(_local2, _local4));
};
_local2.obj = arguments[0];
_local2.func = arguments[1];
_local2.arg = arguments.splice(2, arguments.length - 1);
return(_local2);
}
function LoadGameXML(mcRoot, Loading, levelPath, textPath, artPath, fieldsPath, fontPath, soundsPath, logoPath) {
this.mcRoot = mcRoot;
this.Loading = Loading;
XMLCount++;
logo_xml = new XML();
logo_xml.ignoreWhite = true;
logo_xml.load(logoPath);
logo_xml.onLoad = createFun(this, initLogoXML, logo_xml);
XMLCount++;
LEVELxml = new XML();
LEVELxml.ignoreWhite = true;
LEVELxml.load(levelPath);
LEVELxml.onLoad = createFun(this, initcountXML, LEVELxml);
XMLCount++;
TEXTxml = new XML();
TEXTxml.ignoreWhite = true;
TEXTxml.load(textPath);
TEXTxml.onLoad = createFun(this, initTEXTXML, TEXTxml);
XMLCount++;
ARTxml = new XML();
ARTxml.ignoreWhite = true;
ARTxml.load(artPath);
ARTxml.onLoad = createFun(this, initARTXML, ARTxml);
XMLCount++;
fields_xml = new XML();
fields_xml.ignoreWhite = true;
fields_xml.load(fieldsPath);
fields_xml.onLoad = createFun(this, initFieldsXML, fields_xml);
XMLCount++;
sounds_xml = new XML();
sounds_xml.ignoreWhite = true;
sounds_xml.load(soundsPath);
sounds_xml.onLoad = createFun(this, initSoundsXML, sounds_xml);
}
function initLogoXML(ThisXML) {
var _local7 = ThisXML.firstChild;
var _local1;
if (_local7 != undefined) {
var _local3 = 0;
while (_local3 < _local7.childNodes.length) {
_local1 = _local7.childNodes[_local3];
if (_local1.nodeName == "logo") {
var _local6 = Number(_local1.attributes.x);
var _local5 = Number(_local1.attributes.y);
var _local4 = Path + String(_local1.attributes.src);
var _local2 = mcRoot.createEmptyMovieClip("mc" + _local3, mcRoot.getNextHighestDepth());
_local2.blendMode = "add";
_local2._x = _local6;
_local2._y = _local5;
_local2.loadMovie(_local4);
} else if (_local1.nodeName == "params") {
if ((!_level0.downloadableURL) && (_local1.attributes.downloadableURL)) {
general.GameSDK.downloadableURL = String(_local1.attributes.downloadableURL);
}
if ((!_level0.numAdLevels) && (_local1.attributes.numAdLevels)) {
general.GameSDK.numAdLevels = Number(_local1.attributes.numAdLevels);
}
if ((!_level0.numTrialLevels) && (_local1.attributes.numTrialLevels)) {
general.GameSDK.numTrialLevels = Number(_local1.attributes.numTrialLevels);
}
if ((!_level0.cheatsEnabled) && (_local1.attributes.cheatsEnabled)) {
general.GameSDK.cheatsEnabled = String(_local1.attributes.cheatsEnabled) == "true";
}
} else if (_local1.nodeName == "text") {
trace(_local1.attributes.loading);
if (_local1.attributes.loading) {
general.GameSDK.loading_text = String(_local1.attributes.loading);
}
}
_local3++;
}
if (!(--XMLCount)) {
Loading();
}
} else {
Text();
}
}
function initcountXML(ThisXML) {
var _local27 = ThisXML.firstChild;
var _local7;
var _local13;
var _local4;
var _local3;
var _local24 = "CountryNoActive";
var _local23 = "NoActive";
var _local25 = "NoActiveISpy";
if (_local27 != undefined) {
mcRoot.loadbar._visible = true;
var _local26 = _local27.childNodes;
mcRoot.levels = new Array(_local26.length);
mcRoot.start_level = Number(_local27.attributes.start_level);
GameClasses.Consts.show_debug_info = general.GameSDK.cheatsEnabled;
if (isNaN(mcRoot.start_level)) {
mcRoot.start_level = 0;
}
var _local22 = 0;
while (_local22 < _local26.length) {
var _local6 = new Object();
_local6.name = _local26[_local22].attributes.id;
_local6.id = _local26[_local22].attributes.id;
_local6.number = Number(_local26[_local22].attributes.number);
_local6.is_nug = (_local6.number != 0) && ((_local6.number % general.GameSDK.numAdLevels) == 0);
_local6.pictures = new Array();
_local6.regions = new Array();
var _local2 = _local26[_local22].childNodes;
var _local1 = 0;
while (_local1 < _local2.length) {
if (_local2[_local1].nodeName == "picture") {
var _local8 = new Object();
_local8.opacity = Number(_local2[_local1].attributes.opacity);
if (isNaN(_local8.opacity)) {
_local8.opacity = 100;
}
_local8.name = _local2[_local1].attributes.name;
_local8.id_art = _local2[_local1].attributes.id_art;
_local8.x = Number(_local2[_local1].attributes.x);
_local8.y = Number(_local2[_local1].attributes.y);
_local8.dx = Number(_local2[_local1].attributes.dx);
_local8.dy = Number(_local2[_local1].attributes.dy);
_local8.w = _local2[_local1].attributes.w;
_local8.h = _local2[_local1].attributes.h;
if (_local2[_local1].attributes.on != undefined) {
_local8.onn = _local2[_local1].attributes.on;
}
_local8.angle = _local2[_local1].attributes.angle;
_local8.xZoom = _local2[_local1].attributes.xZoom;
_local8.yZoom = _local2[_local1].attributes.yZoom;
_local8.type = _local2[_local1].attributes.type;
_local8.src = String(_local2[_local1].attributes.src);
_local8.window = String(_local2[_local1].attributes.window);
_local8.typ = _local2[_local1].attributes.typ;
_local8.action = _local2[_local1].attributes.action;
_local8.cell = _local2[_local1].attributes.cell;
_local8.lib_name = _local2[_local1].attributes.lib_name;
_local8.destination = _local2[_local1].attributes.destination;
_local8.id = _local2[_local1].attributes.id;
if (_local2[_local1].attributes.objectId != undefined) {
_local8.id = _local2[_local1].attributes.objectId;
}
_local8.idtex = _local2[_local1].attributes.idtex;
_local8.real_coord = _local2[_local1].attributes.real_coord;
_local8.visible = (_local2[_local1].attributes.visible == undefined) || (_local2[_local1].attributes.visible == "true");
_local8.enabled = (_local2[_local1].attributes.enabled == undefined) || (_local2[_local1].attributes.enabled == "true");
_local8.ldcoord = _local2[_local1].attributes.ldcoord;
_local8.text = new Object();
_local8.texts = new Array();
var _local9 = 0;
while (_local9 < _local2[_local1].childNodes.length) {
_local7 = _local2[_local1].childNodes[_local9];
if (_local7.nodeName == "text") {
_local8.text.id = _local7.attributes.id;
_local8.texts.push(_local8.text.id);
} else if (_local7.nodeName == "attributes") {
_local8.regionId = _local7.attributes.regionId;
_local8.type = _local7.attributes.type;
_local8.idArtefact = _local7.attributes.idArtefact;
_local8.nElement = _local7.attributes.nElement;
if (_local8.idArtefact != undefined) {
_local8.type = "piece_of_compound_artefact";
if (_local8.idArtefact == "und") {
var _local17 = _local7.attributes.prefix;
var _local19 = Number(_local8.id.substr(1, 1));
var _local18 = _local8.id.substring(3, _local8.id.length);
_local8.idArtefact = _local17 + _local19;
_local8.nElement = Number(_local18) - 1;
}
}
}
_local9++;
}
_local6.pictures.push(_local8);
} else if (_local2[_local1].nodeName == "region") {
_local13 = _local2[_local1];
var _local12 = new Array();
_local12.idRegion = _local13.attributes.idRegion;
_local12.idArtefact = _local13.attributes.idArtefact;
var _local11 = 0;
while (_local11 < _local13.childNodes.length) {
_local4 = _local13.childNodes[_local11];
var _local5 = new Object();
_local5.type = _local4.attributes.type;
_local5.objectId = _local4.attributes.objectId;
_local5.effectId = _local4.attributes.effectId;
_local5.insertBefore = _local4.attributes.insertBefore;
_local5.x = _local4.attributes.x;
_local5.y = _local4.attributes.y;
_local5.start = _local4.attributes.start;
_local5.duration = _local4.attributes.duration;
if ((_local4.firstChild != undefined) && (_local4.firstChild.nodeName == "color")) {
var _local20 = _local4.firstChild.attributes.r;
var _local16 = _local4.firstChild.attributes.g;
var _local21 = _local4.firstChild.attributes.b;
}
_local5.color = ((_local21 + _local16) << (8 + _local20)) << 16;
_local12.push(_local5);
_local11++;
}
_local6.regions.push(_local12);
} else if (_local2[_local1].nodeName == "CountryFishka") {
var _local10 = _local2[_local1].attributes.name;
var _local14 = _local2[_local1].attributes.nameSmall;
var _local15 = _local2[_local1].attributes.nameISpy;
var _local9 = 0;
while (_local9 < _local2[_local1].childNodes.length) {
_local3 = _local2[_local1].childNodes[_local9];
if (_local3.nodeName == "position") {
var _local8 = new Object();
_local8.x = _local3.attributes.x;
_local8.y = _local3.attributes.y;
_local8.lib_name = _local24;
_local8.id = _local10 + _local24;
_local8.visible = true;
_local8.ldcoord = "true";
_local6.pictures.push(_local8);
_local8 = new Object();
_local8.x = _local3.attributes.x;
_local8.y = _local3.attributes.y;
_local8.lib_name = _local10;
_local8.id = _local10;
_local8.visible = false;
_local8.ldcoord = "true";
_local6.pictures.push(_local8);
} else if (_local3.nodeName == "positionSmall") {
if (_local3.attributes.pos == "medium") {
var _local8 = new Object();
_local8.x = _local3.attributes.x;
_local8.y = _local3.attributes.y - 6;
_local8.lib_name = _local25;
_local8.id = (_local10 + _local25) + _local9;
_local8.visible = true;
_local8.ldcoord = "true";
_local6.pictures.push(_local8);
_local8 = new Object();
_local8.x = _local3.attributes.x;
_local8.y = _local3.attributes.y - 6;
_local8.lib_name = _local15;
_local8.id = _local15 + _local9;
_local8.visible = false;
_local8.ldcoord = "true";
_local6.pictures.push(_local8);
} else {
var _local8 = new Object();
_local8.x = _local3.attributes.x;
_local8.y = _local3.attributes.y;
_local8.lib_name = _local23;
_local8.id = (_local10 + _local23) + _local9;
_local8.visible = true;
_local8.ldcoord = "true";
_local6.pictures.push(_local8);
_local8 = new Object();
_local8.x = _local3.attributes.x;
_local8.y = _local3.attributes.y;
_local8.lib_name = _local14;
_local8.id = _local14 + _local9;
_local8.visible = false;
_local8.ldcoord = "true";
_local6.pictures.push(_local8);
}
}
_local9++;
}
}
_local1++;
}
mcRoot.levels[_local22] = _local6;
mcRoot.levels[_local6.name] = _local6;
_local22++;
}
if (!(--XMLCount)) {
Loading();
}
} else {
Text();
}
}
function formatXmlText(str) {
var _local3 = "";
var _local1 = 0;
while (_local1 < str.length) {
if (str.charCodeAt(_local1) >= 848) {
_local3 = _local3 + String.fromCharCode(str.charCodeAt(_local1) - 848);
} else {
_local3 = _local3 + str.charAt(_local1);
}
_local1++;
}
return(_local3);
}
function initTEXTXML(ThisXML) {
mcRoot.dialogs = new Object();
var _local7 = new Object();
var _local3;
var _local10 = ThisXML.firstChild;
if (_local10 != undefined) {
var _local8 = 0;
while (_local8 < _local10.childNodes.length) {
var _local2 = new Object();
_local3 = _local10.childNodes[_local8];
if (_local3.nodeName == "text") {
_local2.text = formatXmlText(String(_local3.attributes.text));
_local2.font = String(_local3.attributes.font);
_local2.h = Number(_local3.attributes.h);
_local2.color = Number(_local3.attributes.color);
_local2.blur = Number(_local3.attributes.blur);
if (isNaN(_local2.blur)) {
_local2.blur = 0;
}
_local2.interspace = Number(_local3.attributes.interspace);
if (isNaN(_local2.interspace)) {
_local2.interspace = 0;
}
_local2.leading = ((_local3.attributes.leading != undefined) ? (Number(_local3.attributes.leading)) : 0);
_local2.shadow_color = Number(_local3.attributes.shadow_color);
_local2.shadow_opacity = ((_local3.attributes.shadow_opacity != undefined) ? (Number(_local3.attributes.shadow_opacity)) : 95);
_local2.bold = Boolean(_local3.attributes.bold == "true");
_local2.sx = Number(_local3.attributes.sx);
_local2.sy = Number(_local3.attributes.sy);
_local2.shadow_scale = Number(_local3.attributes.shadow_scale);
if (isNaN(_local2.shadow_scale)) {
_local2.shadow_scale = 1;
}
_local2.shadow_blur = Number(_local3.attributes.shadow_blur);
if (isNaN(_local2.shadow_blur)) {
_local2.shadow_blur = 1;
}
_local2.gradient = String(_local3.attributes.gradient) == "true";
_local2.color2 = Number(_local3.attributes.color2);
if (isNaN(_local2.color2)) {
_local2.color2 = 0;
}
var _local9 = String(_local3.attributes.id);
var _local6 = String(_local3.attributes.format);
if (_local6 != "undefined") {
for (var _local11 in _local7[_local6]) {
_local2[_local11] = _local7[_local6][_local11];
}
}
if (!isNaN(_local3.attributes.x)) {
_local2.x = Number(_local3.attributes.x);
}
if (!isNaN(_local3.attributes.y)) {
_local2.y = Number(_local3.attributes.y);
}
if (!isNaN(_local3.attributes.w)) {
_local2.w = Number(_local3.attributes.w);
}
if (!isNaN(_local3.attributes.size)) {
_local2.size = Number(_local3.attributes.size);
}
if (_local3.attributes.align != undefined) {
_local2.align = String(_local3.attributes.align);
}
mcRoot.dialogs[_local9] = _local2;
} else if (_local3.nodeName == "format") {
_local2.font = String(_local3.attributes.font);
_local2.x = Number(_local3.attributes.x);
_local2.y = Number(_local3.attributes.y);
_local2.h = Number(_local3.attributes.h);
_local2.w = Number(_local3.attributes.w);
_local2.color = Number(_local3.attributes.color);
_local2.blur = Number(_local3.attributes.blur);
if (isNaN(_local2.blur)) {
_local2.blur = 0;
}
_local2.interspace = Number(_local3.attributes.interspace);
if (isNaN(_local2.interspace)) {
_local2.interspace = 0;
}
_local2.leading = ((_local3.attributes.leading != undefined) ? (Number(_local3.attributes.leading)) : 0);
_local2.shadow_color = Number(_local3.attributes.shadow_color);
_local2.shadow_opacity = ((_local3.attributes.shadow_opacity != undefined) ? (Number(_local3.attributes.shadow_opacity)) : 95);
_local2.size = Number(_local3.attributes.size);
_local2.align = String(_local3.attributes.align);
_local2.bold = Boolean(_local3.attributes.bold == "true");
_local2.sx = Number(_local3.attributes.sx);
_local2.sy = Number(_local3.attributes.sy);
_local2.shadow_scale = Number(_local3.attributes.shadow_scale);
if (isNaN(_local2.shadow_scale)) {
_local2.shadow_scale = 1;
}
_local2.shadow_blur = Number(_local3.attributes.shadow_blur);
if (isNaN(_local2.shadow_blur)) {
_local2.shadow_blur = 1;
}
_local2.gradient = String(_local3.attributes.gradient) == "true";
_local2.color2 = Number(_local3.attributes.color2);
if (isNaN(_local2.color2)) {
_local2.color2 = 0;
}
_local2.contour = String(_local3.attributes.contour) == "true";
_local2.filters = new Array();
var _local5 = 0;
while (_local5 < _local3.childNodes.length) {
var _local4 = _local3.childNodes[_local5];
var _local1 = new Object();
_local1.name = String(_local4.attributes.name);
_local1.angle = Number(_local4.attributes.angle);
if (isNaN(_local1.angle)) {
_local1.angle = 45;
}
_local1.alpha = Number(_local4.attributes.alpha);
if (isNaN(_local1.alpha)) {
_local1.alpha = 1;
}
_local1.blurX = Number(_local4.attributes.blurX);
if (isNaN(_local1.blurX)) {
_local1.blurX = 4;
}
_local1.blurY = Number(_local4.attributes.blurY);
if (isNaN(_local1.blurY)) {
_local1.blurY = 4;
}
_local1.color = Number(_local4.attributes.color);
if (isNaN(_local1.color)) {
_local1.color = 0;
}
_local1.distance = Number(_local4.attributes.distance);
if (isNaN(_local1.distance)) {
_local1.distance = 4;
}
_local1.highlightAlpha = Number(_local4.attributes.highlightAlpha);
if (isNaN(_local1.highlightAlpha)) {
_local1.highlightAlpha = 1;
}
_local1.highlightColor = Number(_local4.attributes.highlightColor);
if (isNaN(_local1.highlightColor)) {
_local1.highlightColor = 16777215 /* 0xFFFFFF */;
}
_local1.knockout = String(_local4.attributes.knockout) == "true";
_local1.inner = String(_local4.attributes.inner) == "true";
_local1.hideObject = String(_local4.attributes.hideObject) == "true";
_local1.quality = Number(_local4.attributes.quality);
if (isNaN(_local1.quality)) {
_local1.quality = 1;
}
_local1.shadowAlpha = Number(_local4.attributes.shadowAlpha);
if (isNaN(_local1.shadowAlpha)) {
_local1.shadowAlpha = 1;
}
_local1.shadowColor = Number(_local4.attributes.shadowColor);
if (isNaN(_local1.shadowColor)) {
_local1.shadowColor = 0;
}
_local1.strength = Number(_local4.attributes.strength);
if (isNaN(_local1.strength)) {
_local1.strength = 1;
}
_local1.type = String(_local4.attributes.type);
if (((_local1.type != "inner") && (_local1.type != "outer")) && (_local1.type != "full")) {
_local1.type = "inner";
}
_local2.filters.push(_local1);
_local5++;
}
_local7[_local3.attributes.id] = _local2;
}
_local8++;
}
if (!(--XMLCount)) {
Loading();
}
} else {
Text();
}
}
function initARTXML(ThisXML) {
mcRoot.artefacts = new Object();
var _local4;
var _local2;
var _local8;
var _local7 = ThisXML.firstChild;
if (_local7 != undefined) {
var _local6 = 0;
while (_local6 < _local7.childNodes.length) {
var _local3 = new Array();
_local4 = _local7.childNodes[_local6];
_local3.id = _local4.attributes.path;
_local3.cx = _local4.attributes.cx;
_local3.cy = _local4.attributes.cy;
_local3.bigShiftX = _local4.attributes.bigShiftX;
_local3.bigShiftY = _local4.attributes.bigShiftY;
_local3.smallSubstrX = _local4.attributes.smallSubstrX;
_local3.smallSubstrY = _local4.attributes.smallSubstrY;
var _local5 = 0;
while (_local5 < _local4.childNodes.length) {
var _local1 = new Object();
_local2 = _local4.childNodes[_local5];
_local1.x = _local2.attributes.x;
_local1.y = _local2.attributes.y;
_local1.cx = _local2.attributes.cx;
_local1.cy = _local2.attributes.cy;
_local1.small_cx = _local2.attributes.small_cx;
_local1.small_cy = _local2.attributes.small_cy;
_local1.points = new Array();
_local3.push(_local1);
_local5++;
}
mcRoot.artefacts[_local3.id] = _local3;
_local6++;
}
if (!(--XMLCount)) {
Loading();
}
} else {
Text();
}
}
function initFontXML(font_xml) {
mcRoot.fonts = new Array();
var _local2;
var _local4;
var _local10 = font_xml.firstChild;
if (_local10 != undefined) {
var _local9 = 0;
while (_local9 < _local10.childNodes.length) {
_local4 = _local10.childNodes[_local9];
var _local1 = new Array();
_local1.id = _local4.attributes.id;
_local1.ascent = Number(_local4.attributes.ascent);
_local1.descent = Number(_local4.attributes.descent);
_local1.height = Number(_local4.attributes.height);
_local1.xOffset = Number(_local4.attributes.xOffset);
_local1.yOffset = Number(_local4.attributes.yOffset);
_local1.numChars = Number(_local4.attributes.numChars);
_local1.pairs = new Object();
var _local6 = 0;
while (_local6 < _local4.childNodes.length) {
_local2 = _local4.childNodes[_local6];
if (_local2.nodeName == "Char") {
var _local3 = new Object();
_local3.char = _local2.attributes.char;
_local3.A = Number(_local2.attributes.A);
_local3.B = Number(_local2.attributes.B);
_local3.C = Number(_local2.attributes.C);
_local3.x = Number(_local2.attributes.x);
_local3.y = Number(_local2.attributes.y);
_local1.push(_local3);
_local1["cod" + _local3.char] = _local3;
} else if (_local2.nodeName == "Pair") {
var _local5 = "cod" + String(_local2.attributes.first);
var _local7 = "cod" + String(_local2.attributes.second);
var _local8 = Number(_local2.attributes.amount);
if (!_local1.pairs[_local5]) {
_local1.pairs[_local5] = new Object();
}
if (!_local1.pairs[_local5][_local7]) {
_local1.pairs[_local5][_local7] = _local8;
}
}
_local6++;
}
mcRoot.fonts.push(_local1);
mcRoot.fonts[_local1.id] = _local1;
_local9++;
}
if (!(--XMLCount)) {
Loading();
}
} else {
Text();
}
}
function initFieldsXML(ThisXML) {
mcRoot.fields = new Array();
var _local7 = ThisXML.firstChild;
var _local2;
var _local6;
if (_local7 != undefined) {
var _local5 = 0;
while (_local5 < _local7.childNodes.length) {
_local2 = _local7.childNodes[_local5];
var _local1 = new Array();
_local1.id = _local2.attributes.name;
_local1.time = Number(_local2.attributes.time);
_local1.chips = _local2.attributes.chips;
_local1.sun_inc4 = Number(_local2.attributes.sun_inc4);
_local1.sun_inc5 = Number(_local2.attributes.sun_inc5);
_local1.sun_inc6 = Number(_local2.attributes.sun_inc6);
_local1.tip_time = Number(_local2.attributes.tip_time);
_local1.qMusor = Number(_local2.attributes.qMusor);
_local1.addBonusK = Number(_local2.attributes.addBonusK);
_local1.rainVolume = Number(_local2.attributes.rainVolume);
_local1.BGStartTime = Number(_local2.attributes.BGStartTime);
_local1.BGTime = Number(_local2.attributes.BGTime);
var _local3 = 0;
while (_local3 < _local2.childNodes.length) {
_local6 = _local2.childNodes[_local3];
var _local4 = _local6.firstChild.nodeValue;
_local1.push(_local4);
_local3++;
}
mcRoot.fields.push(_local1);
mcRoot.fields[_local1.id] = _local1;
_local5++;
}
if (!(--XMLCount)) {
Loading();
}
} else {
Text();
}
}
function initSoundsXML(ThisXML) {
mcRoot.sounds = new Object();
var _local4 = ThisXML.firstChild;
if (_local4 != undefined) {
var _local2 = 0;
while (_local2 < _local4.childNodes.length) {
var _local3 = _local4.childNodes[_local2];
var _local1 = new Object();
_local1.id = _local3.attributes.id;
_local1.volume = Number(_local3.attributes.volume);
if (isNaN(_local1.volume)) {
_local1.volume = 100;
}
mcRoot.sounds[_local1.id] = _local1;
_local2++;
}
if (!(--XMLCount)) {
Loading();
}
} else {
Text();
}
}
function Text() {
throw new Error("Could not find game files");
}
function Loading() {
clearTimeout(time_out_interval);
GlobalTime = getTimer();
if (!_root.onEnterFrame) {
_root.onEnterFrame = LoadGame;
}
}
function LoadGame() {
var _local4 = 5000;
Load = _root.getBytesLoaded();
Total = _root.getBytesTotal();
var _local5 = getTimer() - GlobalTime;
if (Load >= ((Total * _local5) / _local4)) {
Load = (Total * _local5) / _local4;
}
var _local3 = Load / Total;
if (curr_progress < Math.floor(_local3 * 100)) {
curr_progress = Math.floor(_local3 * 100);
general.GameSDK.Game_LoadBroadcast(curr_progress);
load_text.text = ((general.GameSDK.loading_text + " ") + curr_progress) + "%";
var _local6 = this["Stone" + String(Math.floor((_local3 * 7) + 1))];
_local6._alpha = int(((_local3 * 7) - Math.floor(_local3 * 7)) * 100);
}
if (Total <= Load) {
compliteDownload();
}
}
function compliteDownload() {
delete _root.onEnterFrame;
general.GameSDK.Game_LoadBroadcast(100);
general.GameSDK.Game_SessionReady();
if (general.GameSDK.autoContinue()) {
_root.gotoAndStop(3);
}
}
stop();
stop();
this._lockroot = true;
general.GameSDK.init();
var time_out_interval;
var curr_progress = 0;
var DIALxml;
var ARTxml;
var LEVELxml;
var optxml;
var TEXTxml;
var fields_xml;
var font_xml;
var sounds_xml;
var logo_xml;
var mcRoot;
var XMLArray;
var RootArray;
var Loading;
var XMLCount = 0;
Stage.scaleMode = "noScale";
Stage.showMenu = false;
this._lockroot = true;
var i = 1;
while (i < 8) {
this["Stone" + i]._alpha = 0;
this["Stone" + i].blendMode = "normal";
i++;
}
var ll_width = sym_load._width;
var VersionPl = String($version).split(" ")[1].split(",")[0];
if (!(((VersionPl > 8) || (VersionPl < 3)) || (VersionPl == undefined))) {
load_text.text = "Version Error";
throw new Error("Version Error");
}
Path = _url.split("/").slice(0, -1).join("/") + "/global/";
levelXML = Path + "levels.xml";
textXML = Path + "text.xml";
artXML = Path + "artefact.xml";
fieldsXML = Path + "fields.xml";
fontsXML = Path + "fonts.xml";
soundsXML = Path + "sounds.xml";
logoXML = Path + "logo.xml";
var VersionPl = String($version).split(" ")[1].split(",")[0];
if ((VersionPl > 6) || (VersionPl < 3)) {
LoadGameXML(this, Loading, levelXML, textXML, artXML, fieldsXML, fontsXML, soundsXML, logoXML);
}
Frame 3
function createAllLevels() {
GameClasses.GFunctions;
GameClasses.FreeMove.clearAll();
level_Arr = new Array();
depth = 0;
menu = GameClasses.MenuClass.getMenu(levels.menu, this, 500);
statistic = GameClasses.StatisticClass.getSingleton(levels.statistic1, this, 501);
statistic.addView(levels.statistic2);
statistic.addView(levels.statistic3);
nug = GameClasses.NugLevel.getSingleton(levels.nug_level, this, 510);
snd = GameClasses.MySounds.getMySounds();
prepare_level = attachMovie("PrepareLevel", "prepare_level", depth++);
level_Arr.push({lev:prepare_level, obj:levels.prepare_level});
map_level = attachMovie("MapLevel", "map_level", depth++);
level_Arr.push({lev:map_level, obj:levels.map_level});
match3_1_1 = attachMovie("Match3Level", "match3_1_1", depth++);
level_Arr.push({lev:match3_1_1, obj:levels["level_1.1"]});
match3_1_1.first_level = true;
match3_1_2 = attachMovie("Match3Level", "match3_1_2", depth++);
level_Arr.push({lev:match3_1_2, obj:levels["level_1.2"]});
ispy_rome_1 = attachMovie("ISpyLevel", "ispy_rome_1", depth++);
level_Arr.push({lev:ispy_rome_1, obj:levels.ispy_rome_1});
match3_1_3 = attachMovie("Match3Level", "match3_1_3", depth++);
level_Arr.push({lev:match3_1_3, obj:levels["level_1.3"]});
match3_1_4 = attachMovie("Match3Level", "match3_1_4", depth++);
level_Arr.push({lev:match3_1_4, obj:levels["level_1.4"]});
rome_quest = attachMovie("QuestLevel", "rome_quest", depth++);
level_Arr.push({lev:rome_quest, obj:levels.rome_quest});
rome_crystal = attachMovie("ISpyLevel", "rome_crystal", depth++);
level_Arr.push({lev:rome_crystal, obj:levels.rome_crystal});
match3_2_1 = attachMovie("Match3Level", "match3_2_1", depth++);
level_Arr.push({lev:match3_2_1, obj:levels["level_2.1"]});
match3_2_2 = attachMovie("Match3Level", "match3_2_2", depth++);
level_Arr.push({lev:match3_2_2, obj:levels["level_2.2"]});
match3_2_3 = attachMovie("Match3Level", "match3_2_3", depth++);
level_Arr.push({lev:match3_2_3, obj:levels["level_2.3"]});
match3_2_4 = attachMovie("Match3Level", "match3_2_4", depth++);
level_Arr.push({lev:match3_2_4, obj:levels["level_2.4"]});
ispy_greece_1 = attachMovie("ISpyLevel", "ispy_greece_1", depth++);
level_Arr.push({lev:ispy_greece_1, obj:levels.ispy_greece_1});
match3_2_5 = attachMovie("Match3Level", "match3_2_5", depth++);
level_Arr.push({lev:match3_2_5, obj:levels["level_2.5"]});
match3_2_6 = attachMovie("Match3Level", "match3_2_6", depth++);
level_Arr.push({lev:match3_2_6, obj:levels["level_2.6"]});
match3_2_7 = attachMovie("Match3Level", "match3_2_7", depth++);
level_Arr.push({lev:match3_2_7, obj:levels["level_2.7"]});
match3_2_8 = attachMovie("Match3Level", "match3_2_8", depth++);
level_Arr.push({lev:match3_2_8, obj:levels["level_2.8"]});
greece_quest = attachMovie("QuestLevel", "greece_quest", depth++);
level_Arr.push({lev:greece_quest, obj:levels.greece_quest});
greece_crystal = attachMovie("ISpyLevel", "greece_crystal", depth++);
level_Arr.push({lev:greece_crystal, obj:levels.greece_crystal});
rome_crystal.doFirstLevelAction = rome_crystal.callCrystalFirstHelpHint;
greece_crystal.doFirstLevelAction = greece_crystal.callCrystalFirstAct;
}
function initWinActs() {
rome_crystal.winAct = GameClasses.GFunctions.create(prepare_level, prepare_level.winRomeCountry);
greece_crystal.winAct = GameClasses.GFunctions.create(prepare_level, prepare_level.winGreeceCountry);
}
function initNextLevels() {
rome_quest.loadNextLevel = GameClasses.GFunctions.create(rome_quest, function () {
var _local2 = this.mcRoot;
_local2.prev_level = _local2.level;
_local2.prev_obj = _local2.obj;
_local2.level = _local2.rome_crystal;
_local2.obj = _local2.levels.rome_crystal;
this.exitAct = this.exitLevel;
_local2.map_level.curr_level = "Level7";
GameClasses.Level.reload_level();
});
rome_crystal.loadNextLevel = GameClasses.GFunctions.create(rome_crystal, function () {
var _local2 = this.mcRoot;
_local2.prev_level = _local2.level;
_local2.prev_obj = _local2.obj;
_local2.level = _local2.prepare_level;
_local2.obj = _local2.levels.prepare_level;
this.exitAct = this.exitLevel;
map_level.curr_point++;
GameClasses.Level.reload_level();
});
greece_quest.loadNextLevel = GameClasses.GFunctions.create(greece_quest, function () {
var _local2 = this.mcRoot;
_local2.prev_level = _local2.level;
_local2.prev_obj = _local2.obj;
_local2.level = _local2.greece_crystal;
_local2.obj = _local2.levels.greece_crystal;
this.exitAct = this.exitLevel;
_local2.map_level.curr_level = "Level11";
GameClasses.Level.reload_level();
});
greece_crystal.loadNextLevel = GameClasses.GFunctions.create(greece_crystal, function () {
var _local2 = this.mcRoot;
_local2.prev_level = _local2.level;
_local2.prev_obj = _local2.obj;
_local2.level = _local2.prepare_level;
_local2.obj = _local2.levels.prepare_level;
this.exitAct = this.exitLevel;
GameClasses.Level.reload_level();
});
}
function initBeginLevel() {
level = level_Arr[start_level].lev;
obj = level_Arr[start_level].obj;
level.load(obj);
}
function initKeyboardListener() {
keyListener.onKeyDown = function () {
general.GameSDK.Chat_HandleKeyPress(Key.getAscii());
};
Key.removeListener(keyListener);
Key.addListener(keyListener);
}
function initDebugInfo() {
tf_r = _root.createTextField("tf_r", tf_depth_r, 530, -20, 300, 430);
tf_r.border = true;
tf_l = _root.createTextField("tf_l", tf_depth_l, -310, -20, 300, 430);
tf_l.border = true;
keyListener.onKeyDown = function () {
general.GameSDK.Chat_HandleKeyPress(Key.getAscii());
_root.p1((((("DOWN -> Code: " + Key.getCode()) + " ASCII: ") + Key.getAscii()) + " Key: ") + chr(Key.getAscii()));
if (Key.getCode() == 40) {
level.count_artefacts = 0;
level.win();
} else if (Key.getCode() == 37) {
level.springViaLevel();
} else if (Key.getCode() == 13) {
} else if (chr(Key.getAscii()) == "d") {
level.sun_bonus.addEnergy(20);
} else if (chr(Key.getAscii()) == "r") {
level.theField.reshuffleTheField();
} else if (chr(Key.getAscii()) == "+") {
GameClasses.FreeMove.global_time_coof = GameClasses.FreeMove.global_time_coof * 1.2;
} else if (chr(Key.getAscii()) == "-") {
GameClasses.FreeMove.global_time_coof = GameClasses.FreeMove.global_time_coof / 1.2;
} else if (chr(Key.getAscii()) == "*") {
GameClasses.FreeMove.global_time_coof = 1;
} else if (chr(Key.getAscii()) == "1") {
loadRomeISpy();
} else if (chr(Key.getAscii()) == "2") {
loadGreeceISpy();
}
};
mouseListener.onMouseDown = function () {
tf_l.text = "";
var _local2;
var _local3;
var _local4 = level;
for (var _local6 in _local4) {
_local3 = _local4[_local6];
if (!(((_local3 instanceof MovieClip) || (_local3 instanceof TextField)) || (_local3 instanceof BitmapData))) {
continue;
}
if (_local3.hitTest(_root._xmouse, _root._ymouse)) {
_root.p1(_local3);
for (var _local5 in _local3) {
_local2 = _local3[_local5];
if (!(((_local2 instanceof MovieClip) || (_local2 instanceof TextField)) || (_local2 instanceof BitmapData))) {
continue;
}
if (_local2.hitTest(_root._xmouse, _root._ymouse)) {
_root.p1(" " + _local2);
}
}
}
}
_root.p1(level);
};
Key.removeListener(keyListener);
Key.addListener(keyListener);
GameClasses.FreeMove.clearInterval(interval2);
interval2 = 0;
interval2 = GameClasses.FreeMove.setInterval(this, "printGameState", 8);
}
function loadRomeISpy() {
var _local2 = _root;
_local2.prev_level = _local2.level;
_local2.prev_obj = _local2.obj;
_local2.level = _local2.ispy_rome_1;
_local2.obj = _local2.levels.ispy_rome_1;
_local2.prev_level.exitAct = _local2.prev_level.exitLevel;
GameClasses.Level.reload_level();
}
function loadGreeceISpy() {
var _local2 = _root;
_local2.prev_level = _local2.level;
_local2.prev_obj = _local2.obj;
_local2.level = _local2.ispy_greece_1;
_local2.obj = _local2.levels.ispy_greece_1;
_local2.prev_level.exitAct = _local2.prev_level.exitLevel;
GameClasses.Level.reload_level();
}
function initGameTimer() {
onEnterFrame = function () {
GameClasses.FreeMove.updateActivePieces();
};
}
function printGameState() {
if ((_xmouse >= 530) || (_xmouse < -10)) {
return(undefined);
}
var _local1 = "";
_local1 = _local1 + (((("x:" + _xmouse) + " y:") + _ymouse) + newline);
_local1 = _local1 + (("level = " + level) + newline);
_local1 = _local1 + (("level.game_time = " + level.game_time) + newline);
_local1 = _local1 + (("level.nArt = " + level.count_artefacts) + newline);
_local1 = _local1 + (("count_move=" + level.TheField.count_move_on_the_field) + newline);
_local1 = _local1 + (("reserv_count=" + level.TheField.reserv_chips.length) + newline);
_local1 = _local1 + (("FreeMove.n = " + GameClasses.FreeMove.curr_length_ap) + newline);
_local1 = _local1 + ("game_time=" + ((GameClasses.Vars.global_game_time * 1000) + GameClasses.FreeMove.getIntervalFullTime(interval_score_broadcast)));
_local1 = _local1 + GameClasses.FreeMove.getActiveIntervals();
tf_r.text = _local1;
}
function initFonts() {
var _local1 = 0;
while (_local1 < fonts.length) {
fonts_util.Fonts.addFont(fonts[_local1]);
_local1++;
}
}
function initMemoryCleaner() {
GameClasses.FreeMove.clearInterval(memory_cleaner_interval);
memory_cleaner_interval = 0;
memory_cleaner_interval = GameClasses.FreeMove.setPeriodicInterval(GameClasses.Consts, "doForcedClean", memory_cleaner_T);
}
function initGame() {
initFonts();
createAllLevels();
GameClasses.Match3Level.initDefaultStaticVars();
GameClasses.ISpyLevel.initDefaultStaticVars();
GameClasses.QuestLevel.initDefaultStaticVars();
initWinActs();
initNextLevels();
initGameTimer();
initKeyboardListener();
if (GameClasses.Consts.show_debug_info) {
initDebugInfo();
}
initBeginLevel();
initScoreBroadcast();
playGame();
}
function startThemeSound() {
snd.setOn(false);
snd.setOn(true);
snd.startCycle("Theme2");
}
function destroyLevels() {
var _local1 = 0;
while (_local1 < level_Arr.length) {
level_Arr[_local1].lev.destroy();
level_Arr[_local1].lev.removeMovieClip();
delete level_Arr[_local1].lev;
delete level_Arr[_local1].obj;
delete level_Arr[_local1];
_local1++;
}
delete level_Arr;
}
function destroyGame() {
destroyLevels();
GameClasses.Level.initDefaultNumbBonuses();
GameClasses.Match3Level.initDefaultNumbBonuses();
GameClasses.HintWindow.clearAll();
GameClasses.GameCounter.setZero();
GameClasses.Vars.setDefault();
statistic.setZero();
menu.setDefault();
}
function restartAll() {
destroyGame();
initGame();
}
function startNewGame() {
if (level.loaded) {
level.exitAct = GameClasses.GFunctions.create(this, restartAll);
level.unload();
} else {
restartAll();
}
}
function unloadGame() {
if (level.loaded) {
level.exitAct = GameClasses.GFunctions.create(this, function () {
destroyGame();
general.GameSDK.Game_GameOver();
if (general.GameSDK.autoContinue()) {
this.initGame();
}
});
level.unload();
} else {
destroyGame();
general.GameSDK.Game_GameOver();
if (general.GameSDK.autoContinue()) {
this.initGame();
}
}
}
function p1(s) {
tf_l.text = tf_l.text + (s + newline);
}
function pauseGame() {
if (level) {
level.lockLevel();
}
GameClasses.MySounds.getMySounds().setMusikOn(false);
GameClasses.MyButton2.setOn(false);
GameClasses.FreeMove.pause();
}
function playGame() {
if (level) {
level.unlockLevel();
}
GameClasses.MySounds.getMySounds().setMusikOn(true);
GameClasses.MyButton2.setOn(true);
GameClasses.FreeMove.play();
}
function send_Game_ScoreBroadcast() {
GameClasses.Vars.global_game_time = GameClasses.Vars.global_game_time + 5;
general.GameSDK.Game_ScoreBroadcast(GameClasses.GameCounter.getTotalScore(), GameClasses.Vars.global_game_time);
}
function initScoreBroadcast() {
GameClasses.Vars.global_game_time = 0;
GameClasses.FreeMove.clearInterval(interval_score_broadcast);
interval_score_broadcast = 0;
t0_score_broadcast = getTimer();
interval_score_broadcast = GameClasses.FreeMove.setPeriodicInterval(this, "send_Game_ScoreBroadcast", 5000);
GameClasses.FreeMove.pauseInterval(interval_score_broadcast);
}
function pauseGlobalGameTime() {
GameClasses.FreeMove.pauseInterval(interval_score_broadcast);
}
function playGlobalGameTime() {
GameClasses.FreeMove.playInterval(interval_score_broadcast);
}
stop();
this._lockroot = true;
GameClasses.GFunctions.ClearAll(_root, true, true, true);
var log;
log = logger.Logger.getLog();
var level;
var obj;
var prev_level;
var prev_obj;
var enabled = true;
useHandCursor = false;
tabEnabled = false;
var level_Arr;
var depth;
var prepare_level;
var map_level;
var match3_1_1;
var match3_1_2;
var ispy_rome_1;
var match3_1_3;
var match3_1_4;
var rome_quest;
var rome_crystal;
var match3_2_1;
var match3_2_2;
var match3_2_3;
var match3_2_4;
var ispy_greece_1;
var match3_2_5;
var match3_2_6;
var match3_2_7;
var match3_2_8;
var greece_quest;
var greece_crystal;
var menu;
var statistic;
var nug;
var snd;
var keyListener = new Object();
var mouseListener = new Object();
var interval2 = 0;
var memory_cleaner_interval = 0;
var memory_cleaner_T = 5000;
GameClasses.GFunctions;
GameClasses.FreeMove;
var tf_l;
var tf_r;
var tf_depth_l = 998;
var tf_depth_r = 999;
var interval_score_broadcast = 0;
var t0_score_broadcast = 0;
var ggt = 0;
general.GameSDK.Game_GameReady("Mix", "Easy", 0);
if (general.GameSDK.autoContinue()) {
initGame();
}
Symbol 1684 MovieClip [__Packages.general.GameSDK] Frame 0
class general.GameSDK
{
function GameSDK () {
}
static function init() {
if (_level0.downloadableURL) {
downloadableURL = String(_level0.downloadableURL);
}
if (_level0.numAdLevels) {
numAdLevels = Number(_level0.numAdLevels);
}
if (_level0.numTrialLevels) {
numTrialLevels = Number(_level0.numTrialLevels);
}
if (_level0.cheatsEnabled) {
cheatsEnabled = _level0.cheatsEnabled == "true";
}
}
static function setAutoContinue(val) {
auto_continue = val;
}
static function autoContinue() {
return(true);
}
static function onEvent(eventName, eventData) {
}
static function Chat_HandleKeyPress(theKey) {
}
static function Game_DeluxeDownload() {
}
static function Game_GameOver() {
}
static function Game_ScoreSubmit(score, theTime, moreXML) {
}
static function Game_EndOfLevel(breakLevel, score, theTime) {
}
static function Game_ScoreBroadcast(score, theTime, moreXML) {
}
static function Game_GameReady(gameMode, gameDifficulty, startLevel, moreXML) {
}
static function Game_SessionReady() {
}
static function Game_LoadBroadcast(val) {
}
static var language = "en";
static var country = "US";
static var numTrialLevels = 19;
static var numAdLevels = 1;
static var downloadableURL = "http://playrix.com/call-of-atlantis.html";
static var cheatsEnabled = false;
static var loading_text = "";
static var auto_continue = true;
}
Symbol 1685 MovieClip [__Packages.GameClasses.Consts] Frame 0
class GameClasses.Consts
{
function Consts () {
}
static function makeShadow(mcSource, mcDest, color1, opacity) {
var _local2 = 8;
var _local5 = new flash.geom.Rectangle(0, 0, mcSource._width + 20, mcSource._height + 20);
var _local6 = new flash.geom.Point(0, 0);
var _local4 = new Color(mcDest);
mcDest.shadow_bmp = new flash.display.BitmapData(mcSource._width + _local2, mcSource._height + _local2, true, 0);
mcDest.shadow_bmp.draw(mcSource, new flash.geom.Matrix(1, 0, 0, 1, _local2 / 2, _local2 / 2));
mcDest.filtr = new flash.filters.BlurFilter(8, 8, 1);
mcDest.shadow_bmp.applyFilter(mcDest.shadow_bmp, _local5, _local6, mcDest.filtr);
mcDest.attachBitmap(mcDest.shadow_bmp, 1);
_local4.setRGB(color1);
mcDest._alpha = opacity;
}
static function drawRectangle(mc, rect) {
mc.beginFill(0, 100);
mc.moveTo(rect.x, rect.y);
mc.lineTo(rect.x + rect.width, rect.y);
mc.lineTo(rect.x + rect.width, rect.y + rect.height);
mc.lineTo(rect.x, rect.y + rect.height);
mc.lineTo(rect.x, rect.y);
mc.endFill();
}
static function doForcedClean() {
var _local2 = 1;
var _local1 = 0;
while (_local1 < _local2) {
try {
new LocalConnection().connect("foo");
new LocalConnection().connect("foo");
} catch(e:Error) {
}
_local1++;
}
}
static var CELL_SIZE = 26;
static var CHIP_TIME_ROTATION = 550;
static var CHIP_TIME_BLIK = 500;
static var GLOBAL_BLIK_COOF = 0.25;
static var TIME_PERIOD_GLOBAL_BLIK = 15000;
static var TIME_OF_DISSAPEAR_CHIP_PS = 350;
static var TIME_OF_EXPLODE_CHIP_PS = 500;
static var TIME_OF_DISSAPEAR_CHIP = 250;
static var TIME_PERIOD_OF_THE_CHIP_MOVE_TO_THE_BONUS_SUN = 900;
static var TIME_PERIOD_BETWEEN_EXPLODES_OF_THE_CHIPS = 300;
static var TIME_OF_THE_MOVE_SMALL_BONUS = 100;
static var TIME_OF_CHANGE_PLACES_CHIPS = 200;
static var ACCEL_OF_CHIP_FALL = 0.0009;
static var COOF_OF_ABSORPTION_CHIP_FALL = -0.3;
static var FIRST_DELAY_OF_CHIP_FALL = 20;
static var NUMB_RESERV_CHIPS = 90;
static var NUMBER_OF_BONUS_PS = 12;
static var TIME_OF_THE_BOMB_BONUS_MOVE = 3000;
static var TIME_OF_THE_ZL_BONUS_MOVE = 1300;
static var TIME_OF_TREMBLE_TOTAL_ART = 2000;
static var TIME_OF_MOVE_TOTAL_ART_TO_PLACE = 800;
static var TIME_OF_MOVE_TOTAL_CRYSTAL_TO_PLACE = 1500;
static var TIME_OF_MOVE_TOTAL_ART_TO_PLACE_IN_MATCH3 = 2500;
static var NUMBER_OF_THE_ART_PARTICLE = 5;
static var TIME_OF_MOVE_PIECE_OF_ART_TO_PLACE = 1500;
static var TIME_OF_MOVE_PIECE_OF_ART_TO_PLACE_IN_MATCH3 = 3000;
static var TIME_OF_HINT_PS_OF_POA = 1800;
static var NUMBER_OF_THE_POA_PARTICLES = 5;
static var OPACITY_OF_THE_POA_BLUR_BODY = 95;
static var BEGIN_MIN_SHINE_INTENSITY_COOF = 1.4;
static var BEGIN_MAX_SHINE_INTENSITY_COOF = 1.7;
static var BEGIN_MAXMAX_SHINE_INTENSITY_COOF = 2.2;
static var TIME_OF_THE_SHINE_PERIOD = 1500;
static var TIME_OF_THE_END_SHINE_PERIOD = 700;
static var TIME_OF_THE_TREMBLE_SHINE_PERIOD = 2000;
static var POSITION_OF_THE_END_SHINE = 15;
static var INTENSITY_OF_THE_SHINE_POA_BLUR = 8;
static var TIME_TO_HIDE = 500;
static var BONUS_ZEUSLIGHTNING_TIME_EFFECT = 1700;
static var TIME_OF_THE_HINT_DELAY = 100;
static var TIME_OF_THE_HINT_MOVE = 50;
static var TIME_OF_THE_HELP_HINT_MOVE = 250;
static var DEPTH_FOR_SOUND_MC = 1000;
static var NO_ACTIVE_TIME_OF_HINT_BUTTON = 20000;
static var TIME_TO_HELP_SHINE = 25000;
static var TIME_OF_THE_CRYSTAL_FALL = 800;
static var numb_b = 0;
static var numb_t = 0;
static var numb_s = 0;
static var numb_zl = 0;
static var show_debug_info = false;
}
Symbol 1686 MovieClip [__Packages.GameClasses.MCfromBMP] Frame 0
class GameClasses.MCfromBMP extends MovieClip
{
var bmp, body, name_bmp, createEmptyMovieClip;
function MCfromBMP () {
super();
}
function removeMovieClip() {
bmp.dispose();
body.removeMovieClip();
super.removeMovieClip();
}
function init(name_bmp, depth) {
this.name_bmp = name_bmp;
bmp = flash.display.BitmapData.loadBitmap(name_bmp);
bmp.transparent = true;
body = createEmptyMovieClip("body", depth);
body.attachBitmap(bmp, depth, "never");
}
function initBMP(bmp, depth) {
this.bmp = bmp;
bmp.transparent = true;
body = createEmptyMovieClip("body", depth);
body.attachBitmap(bmp, 1, "never");
}
}
Symbol 1687 MovieClip [__Packages.GameClasses.MCwithBlik] Frame 0
class GameClasses.MCwithBlik extends GameClasses.MCfromBMP
{
var tabEnabled, mcRoot, cursor_mc, onPressActAddition, onPress1, onRelease, bmp, blik, body, enabled, id, attachMovie, _x, _y, _width, _height, _visible, blik_coof, hitArea, createEmptyMovieClip, t0_blik, aalpha, direct_blik;
function MCwithBlik () {
super();
tabEnabled = false;
}
function destroy() {
mcRoot = null;
cursor_mc = null;
onPressActAddition = null;
onRollOver = null;
onDragOver = null;
onRollOut = null;
onDragOut = null;
onPress = null;
onPress1 = null;
onRelease = null;
bmp.dispose();
delete bmp;
blik.mov.destroy();
delete blik.mov;
body.removeMovieClip();
delete body;
blik.removeMovieClip();
delete blik;
}
function enable() {
enabled = true;
}
function removeMovieClip() {
body.removeMovieClip();
blik.removeMovieClip();
super.removeMovieClip();
}
function init(obj) {
id = obj.id;
body = attachMovie(obj.id, "body", 1);
blik = attachMovie(obj.id, "blik", 2);
blik.mov = new GameClasses.FreeMove();
if (obj.real_coord) {
_x = obj.x;
_y = obj.y;
} else {
_x = (obj.x * 0.65) - (_width / 2);
_y = (390 - (obj.y * 0.65)) - (_height / 2);
}
_visible = obj.visible;
var _local3 = new Color(blik);
_local3.setTransform({rb:blik_intensity, gb:blik_intensity, bb:blik_intensity, aa:0});
blik_coof = (2 * blik_max_opacity) / blik_time;
hitArea = body;
}
function initFromBitmap(obj) {
id = obj.id;
super.init(obj.id + ".png", 1);
blik = createEmptyMovieClip("blik", 2);
blik.mov = new GameClasses.FreeMove();
blik.attachBitmap(bmp, 2, "never");
if (obj.real_coord) {
_x = obj.x;
_y = obj.y;
} else {
_x = (obj.x * 0.65) - (_width / 2);
_y = (390 - (obj.y * 0.65)) - (_height / 2);
}
_visible = obj.visible;
var _local4 = new Color(blik);
_local4.setTransform({rb:blik_intensity, gb:blik_intensity, bb:blik_intensity, aa:0});
blik_coof = (2 * blik_max_opacity) / blik_time;
hitArea = body;
}
function updateBlik() {
var _local3 = new Color(blik);
var _local2 = getTimer();
var _local4 = _local2 - t0_blik;
t0_blik = _local2;
aalpha = aalpha + ((direct_blik * _local4) * blik_coof);
if (aalpha < 0) {
direct_blik = 1;
aalpha = 0;
} else if (aalpha > blik_max_opacity) {
direct_blik = -1;
aalpha = blik_max_opacity;
}
_local3.setTransform({aa:aalpha});
}
function startShine() {
blik.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.blik.mov.newInitMove(this.blik, 500, 0, null, null, null, null, null, new GameClasses.Line(0, 100, 0));
});
blik.mov.endAct();
}
function stopShine() {
blik.mov.stopMove();
blik._alpha = 0;
}
function onPress() {
onPress1();
onPressActAddition();
}
function onDragOver() {
onRollOver();
}
function onDragOut() {
onRollOut();
}
function onRollOver() {
startShine();
}
function onRollOut() {
stopShine();
}
var blik_intensity = 70;
var blik_max_opacity = 70;
var blik_time = 500;
var typ = "locked";
}
Symbol 1688 MovieClip [__Packages.GameClasses.FreeMove] Frame 0
class GameClasses.FreeMove
{
var mc, color_object, x0, x1, y0, y1, rotation0, rotation1, xscale0, xscale1, yscale0, yscale1, alpha0, alpha1, color0, color1, vx, vy, ax, ay;
function FreeMove () {
}
function get endAct() {
return(endActFunction);
}
function set endAct(fun) {
delete endActFunction;
endActFunction = fun;
//return(endAct);
}
static function getIntervalFullTime(i) {
var _local1 = interval_objects[i].mov;
return(_local1.t * _local1.T);
}
static function setPeriodicInterval(obj_src, fun, T, param1, param2, param3, param4, param5) {
var _local2 = new Object();
_local2.mov = new GameClasses.FreeMove();
_local2.mov.info = (((("periodic fun=" + fun) + "\n from obj=") + typeof(obj_src)) + ":") + String(obj_src);
_local2.mov.updateAct = null;
_local2.mov.endActFunction = GameClasses.GFunctions.create(_local2, function (os, f) {
os[f](param1, param2, param3, param4, param5);
this.mov.newInitMove(this, T, 0);
}, obj_src, fun);
_local2.mov.newInitMove(_local2, T, 0);
interval_objects.push(_local2);
return(interval_objects.length - 1);
}
static function setInterval(obj_src, fun, T, param1, param2, param3, param4, param5) {
var _local2 = new Object();
_local2.mov = new GameClasses.FreeMove();
_local2.mov.info = (((("permanent fun=" + fun) + "\n from obj=") + typeof(obj_src)) + ":") + String(obj_src);
_local2.mov.updateAct = GameClasses.GFunctions.create(obj_src, obj_src[fun], param1, param2, param3, param4, param5);
_local2.mov.endActFunction = GameClasses.GFunctions.create(_local2, function () {
this.mov.newInitMove(this, GameClasses.FreeMove.interval_objects_T, 0);
});
_local2.mov.newInitMove(_local2, interval_objects_T, 0);
interval_objects.push(_local2);
return(interval_objects.length - 1);
}
static function clearInterval(i) {
if ((!i) || (i <= 0)) {
return(undefined);
}
if (interval_objects[i]) {
interval_objects[i].mov.destroy();
delete interval_objects[i].mov;
delete interval_objects[i];
}
var _local1 = interval_objects.length - 1;
while ((!interval_objects[_local1]) && (_local1 >= 1)) {
interval_objects.pop();
_local1--;
}
}
static function getActiveIntervals() {
var _local2 = newline;
var _local3 = 0;
var _local1 = 1;
while (_local1 < interval_objects.length) {
if (interval_objects[_local1]) {
_local3++;
if (interval_objects[_local1].mov.info == "delay") {
_local2 = _local2 + ((((("" + _local1) + " ") + "delay t=") + ((1 - interval_objects[_local1].mov.t) * interval_objects[_local1].mov.T)) + newline);
} else {
_local2 = _local2 + (((("" + _local1) + " ") + interval_objects[_local1].mov.info) + newline);
}
}
_local1++;
}
return(("\nLENGTH=" + _local3) + _local2);
}
static function pauseInterval(i) {
interval_objects[i].mov.makePause();
}
static function playInterval(i) {
interval_objects[i].mov.makePlay();
}
static function resetInterval(i) {
interval_objects[i].mov.t = 0;
}
static function makeDelay(T, fun) {
var _local1 = new Object();
_local1.mov = new GameClasses.FreeMove();
_local1.mov.endActFunction = GameClasses.GFunctions.create(GameClasses.FreeMove, function (ob, fn) {
fn();
ob.mov.destroy();
delete ob.mov;
}, _local1, fun);
_local1.mov.newInitMove(_local1, T, 0);
return(_local1.mov);
}
function dispose() {
destroy();
}
function destroy() {
stopMove();
clearInterval(interval);
interval = 0;
delete mc;
sp_x.clear();
sp_y.clear();
acc_x.clear();
acc_y.clear();
sp_xscale.clear();
sp_yscale.clear();
sp_rot.clear();
sp_alpha.clear();
sp_color.clear();
delete color_object;
delete sp_x;
delete sp_y;
delete acc_x;
delete acc_y;
delete sp_xscale;
delete sp_yscale;
delete sp_rot;
delete sp_alpha;
delete sp_color;
delete endActFunction;
}
function clear() {
clearInterval(interval);
interval = 0;
sp_x.clear();
sp_y.clear();
acc_x.clear();
acc_y.clear();
sp_xscale.clear();
sp_yscale.clear();
sp_rot.clear();
sp_alpha.clear();
sp_color.clear();
delete color_object;
delete sp_x;
delete sp_y;
delete acc_x;
delete acc_y;
delete sp_xscale;
delete sp_yscale;
delete sp_rot;
delete sp_alpha;
delete sp_color;
}
function initTr(sp, nsp) {
if (sp == nsp) {
return(sp);
}
sp.clear();
return(nsp);
}
function newInitMove(mc, T, delay, x1, y1, xscale1, yscale1, rotation1, alpha1, color1) {
if (mc) {
addActivePiece(mc, getTimer());
initMove(mc, T, delay, x1, y1, xscale1, yscale1, rotation1, alpha1, color1);
}
}
function initMove(mc, T, delay, x1, y1, xscale1, yscale1, rotation1, alpha1, color1) {
if ((delay == undefined) || (delay == 0)) {
delay_time = 0;
} else {
delay_time = delay;
}
this.mc = mc;
if ((x1 == undefined) || (x1 == null)) {
sp_x.clear();
sp_x = null;
} else if (((x1 instanceof GameClasses.Spline) || (x1 instanceof GameClasses.AccelLinePath)) || (x1 instanceof GameClasses.Line)) {
sp_x = initTr(sp_x, x1);
} else {
sp_x.clear();
x0 = mc._x;
this.x1 = x1;
sp_x = new GameClasses.Spline(x0, x1);
}
if ((y1 == undefined) || (y1 == null)) {
sp_y.clear();
sp_y = null;
} else if (((y1 instanceof GameClasses.Spline) || (y1 instanceof GameClasses.AccelLinePath)) || (y1 instanceof GameClasses.Line)) {
sp_y = initTr(sp_y, y1);
} else {
sp_y.clear();
y0 = mc._y;
this.y1 = y1;
sp_y = new GameClasses.Spline(y0, y1);
}
if ((rotation1 == undefined) || (rotation1 == null)) {
sp_rot.clear();
sp_rot = null;
} else if ((rotation1 instanceof GameClasses.Spline) || (rotation1 instanceof GameClasses.Line)) {
sp_rot = initTr(sp_rot, rotation1);
} else {
sp_rot.clear();
rotation0 = mc._rotation;
this.rotation1 = rotation1;
sp_rot = new GameClasses.Spline(rotation0, rotation1);
}
if ((xscale1 == undefined) || (xscale1 == null)) {
sp_xscale.clear();
sp_xscale = null;
} else if ((xscale1 instanceof GameClasses.Spline) || (xscale1 instanceof GameClasses.Line)) {
sp_xscale = initTr(sp_xscale, xscale1);
} else {
sp_xscale.clear();
xscale0 = mc._xscale;
this.xscale1 = xscale1;
sp_xscale = new GameClasses.Spline(xscale0, xscale1);
}
if ((yscale1 == undefined) || (yscale1 == null)) {
sp_yscale.clear();
sp_yscale = null;
} else if ((yscale1 instanceof GameClasses.Spline) || (yscale1 instanceof GameClasses.Line)) {
sp_yscale = initTr(sp_yscale, yscale1);
} else {
sp_yscale.clear();
yscale0 = mc._yscale;
this.yscale1 = yscale1;
sp_yscale = new GameClasses.Spline(yscale0, yscale1);
}
if ((alpha1 == undefined) || (alpha1 == null)) {
sp_alpha.clear();
sp_alpha = null;
} else if ((alpha1 instanceof GameClasses.Spline) || (alpha1 instanceof GameClasses.Line)) {
sp_alpha = initTr(sp_alpha, alpha1);
} else {
sp_alpha.clear();
alpha0 = mc._alpha;
this.alpha1 = alpha1;
sp_alpha = new GameClasses.Spline(alpha0, alpha1);
}
if ((color1 == undefined) || (color1 == null)) {
sp_color.clear();
sp_color = null;
} else if (color1 instanceof Array) {
sp_color.clear();
sp_color = new GameClasses.Spline(0, 1);
color_object = new Color(mc);
color0 = color1[0];
color0_r = (color0 >> 16) % 256;
color0_g = (color0 >> 8) % 256;
color0_b = color0 % 256;
this.color1 = color1[1];
color1_r = (this.color1 >> 16) % 256;
color1_g = (this.color1 >> 8) % 256;
color1_b = this.color1 % 256;
} else {
sp_color.clear();
sp_color = new GameClasses.Spline(0, 1);
color_object = new Color(mc);
color0 = color_object.getRGB();
color0_r = (color0 >> 16) % 256;
color0_g = (color0 >> 8) % 256;
color0_b = color0 % 256;
this.color1 = color1;
color1_r = (color1 >> 16) % 256;
color1_g = (color1 >> 8) % 256;
color1_b = color1 % 256;
}
this.T = T;
if (start_time == 0) {
last_t = getTimer();
clearInterval(interval);
interval = 0;
interval = setInterval(this, "updateMove", 4);
} else {
last_t = start_time;
}
active = true;
}
function updateActInverse() {
t = 1 - t;
if (sp_x != null) {
mc._x = sp_x.getPoint(t);
}
if (sp_y != null) {
mc._y = sp_y.getPoint(t);
}
if (sp_xscale != null) {
mc._xscale = sp_xscale.getPoint(t);
}
if (sp_yscale != null) {
mc._yscale = sp_yscale.getPoint(t);
}
if (sp_rot != null) {
mc._rotation = sp_rot.getPoint(t);
}
if (sp_color != null) {
color_r = color0_r + ((color1_r - color0_r) * sp_color.getPoint(t));
color_g = color0_g + ((color1_g - color0_g) * sp_color.getPoint(t));
color_b = color0_b + ((color1_b - color0_b) * sp_color.getPoint(t));
color = ((color_r << 16) + (color_g << 8)) + color_b;
color_object.setRGB(color);
}
if (sp_alpha != null) {
mc._alpha = sp_alpha.getPoint(t);
}
}
function updateAct() {
if (sp_x != null) {
mc._x = sp_x.getPoint(t);
}
if (sp_y != null) {
mc._y = sp_y.getPoint(t);
}
if (sp_xscale != null) {
mc._xscale = sp_xscale.getPoint(t);
}
if (sp_yscale != null) {
mc._yscale = sp_yscale.getPoint(t);
}
if (sp_rot != null) {
mc._rotation = sp_rot.getPoint(t);
}
if (sp_color != null) {
color_r = color0_r + ((color1_r - color0_r) * sp_color.getPoint(t));
color_g = color0_g + ((color1_g - color0_g) * sp_color.getPoint(t));
color_b = color0_b + ((color1_b - color0_b) * sp_color.getPoint(t));
color = ((color_r << 16) + (color_g << 8)) + color_b;
color_object.setRGB(color);
}
if (sp_alpha != null) {
mc._alpha = sp_alpha.getPoint(t);
}
}
function updateMove(current_time) {
if (current_time != undefined) {
curr_t = current_time;
} else {
curr_t = getTimer();
}
t = (curr_t - last_t) * global_time_coof;
if (delay_time != 0) {
if (t >= delay_time) {
mc._visible = true;
delay_time = 0;
last_t = curr_t;
t = 0;
} else {
return(true);
}
}
if (t >= T) {
t = 1;
updateAct();
if (start_time == 0) {
active = false;
clearInterval(interval);
interval = 0;
endActFunction();
}
return(false);
}
t = t / T;
updateAct();
return(true);
}
function initLine(mc, x1, y1, T) {
initMove(mc, T, 0, x1, y1);
}
function initLineTo(mc, x1, y1, xscale1, yscale1, rotation1, T) {
initMove(mc, T, 0, x1, y1, xscale1, yscale1, rotation1);
}
function initAccelLineTo(mc, x1, y1, alp1, T, delay, accel_fall, coof_abs) {
var _local5 = new GameClasses.Spline(mc._x, x1);
var _local2 = new GameClasses.AccelLinePath();
_local2.addKey(mc._y, accel_fall, 0);
_local2.addKey(y1, accel_fall, coof_abs);
_local2.addKey(y1, 0, 1);
var _local3 = _local2.calculatePath();
initMove(mc, _local3, delay, _local5, _local2, undefined, undefined, undefined, alp1);
return(_local2.getT(0));
}
function initDisappear(mc, T) {
initMove(mc, T, 0, mc._x + (mc._width / 2), mc._y + (mc._height / 2), 0, 0);
}
function initSplineTo(mc, x1, y1, xscale1, yscale1, rotation1, T, alpha1, delay) {
initMove(mc, T, delay, x1, y1, xscale1, yscale1, rotation1, alpha1);
}
function initParticle(mc, T, fi, v, a, alp1, scale1, rot1, color1, delay) {
vx = v * Math.cos(fi);
vy = v * Math.sin(fi);
ax = a * Math.cos(fi);
ay = a * Math.sin(fi);
var _local8 = mc._x + ((vx + ((T * ax) * 0.5)) * T);
var _local7 = mc._y + ((vy + ((T * ay) * 0.5)) * T);
var _local4 = new GameClasses.AccelLinePath();
_local4.addKey(mc._x, ax, vx);
_local4.addKey(_local8, 0, 1);
_local4.calculatePath();
var _local3 = new GameClasses.AccelLinePath();
_local3.addKey(mc._y, ay, vy);
_local3.addKey(_local7, 0, 1);
_local3.calculatePath();
if ((delay != undefined) && (delay != 0)) {
mc._visible = false;
}
initMove(mc, T, delay, _local4, _local3, scale1, scale1, rot1, alp1, color1);
}
function stopMove() {
if (start_time == 0) {
active = false;
clearInterval(interval);
interval = 0;
} else {
stopMove1();
}
}
function stopMove1() {
if (active) {
if (piece_number == -1) {
}
if ((piece_number != -1) && (curr_length_ap > 0)) {
var _local2 = piece_number;
active = false;
piece_number = -1;
active_pieces[_local2] = active_pieces[curr_length_ap - 1];
active_pieces[_local2].mov.piece_number = _local2;
delete active_pieces[curr_length_ap - 1];
curr_length_ap--;
}
}
}
static function clearAll() {
var _local1 = delay_obj.length - 1;
while (_local1 >= 0) {
delay_obj[_local1].mov.destroy();
delete delay_obj[_local1].mov;
delete delay_obj[_local1];
_local1--;
}
delete delay_obj;
delay_obj = new Array();
_local1 = interval_objects.length - 1;
while (_local1 >= 0) {
interval_objects[_local1].mov.destroy();
delete interval_objects[_local1].mov;
delete interval_objects[_local1];
_local1--;
}
delete interval_objects;
interval_objects = new Array(1);
_local1 = curr_length_ap - 1;
while (_local1 >= 0) {
active_pieces[_local1].mov.stopMove();
delete active_pieces[_local1];
_local1--;
}
delete active_pieces;
active_pieces = new Array(length_ap);
curr_length_ap = 0;
}
static function addActivePiece(mc, st) {
if (mc) {
if (mc.mov.active) {
mc.mov.stopMove1();
}
mc.mov.start_time = st;
mc.mov.piece_number = curr_length_ap;
active_pieces[curr_length_ap] = mc;
curr_length_ap++;
}
}
static function updateActivePieces() {
if (is_pause) {
return(undefined);
}
var _local3 = getTimer();
var _local2 = curr_length_ap - 1;
while (_local2 >= 0) {
var _local1 = active_pieces[_local2];
if (String(_local1) == "") {
if ((curr_length_ap > 1) && (_local2 != (curr_length_ap - 1))) {
active_pieces[_local2] = active_pieces[curr_length_ap - 1];
active_pieces[_local2].mov.piece_number = _local2;
delete active_pieces[curr_length_ap - 1];
} else {
delete active_pieces[_local2];
}
curr_length_ap--;
} else if (_local1.mov.is_mov_pause) {
} else {
if (_local1.mov.active) {
if (!_local1.mov.updateMove(_local3)) {
_local1.mov.stopMove();
_local1.mov.endActFunction();
}
}
}
_local2--;
}
}
function infoGlobal() {
}
static function pause() {
if (is_pause) {
return(undefined);
}
pause_t = getTimer();
is_pause = true;
}
static function play() {
if (!is_pause) {
return(undefined);
}
var _local3 = getTimer();
var _local4 = _local3 - pause_t;
var _local1 = curr_length_ap - 1;
while (_local1 >= 0) {
var _local2 = active_pieces[_local1];
if (_local2.mov.last_t <= pause_t) {
_local2.mov.last_t = _local2.mov.last_t + _local4;
} else {
_local2.mov.last_t = _local3;
}
_local1--;
}
is_pause = false;
}
function makePause() {
if (is_mov_pause) {
return(undefined);
}
mov_pause_t = getTimer();
is_mov_pause = true;
}
function makePlay() {
if (!is_mov_pause) {
return(undefined);
}
var _local2 = getTimer();
last_t = _local2 - (t * T);
is_mov_pause = false;
}
var color0_r = 0;
var color0_g = 0;
var color0_b = 0;
var color1_r = 0;
var color1_g = 0;
var color1_b = 0;
var color = 0;
var color_r = 0;
var color_g = 0;
var color_b = 0;
var sp_x = null;
var sp_y = null;
var acc_x = null;
var acc_y = null;
var sp_xscale = null;
var sp_yscale = null;
var sp_rot = null;
var sp_alpha = null;
var sp_color = null;
var interval = 0;
var T = 0;
var t = 0;
var last_t = 0;
var curr_t = 0;
var delay_time = 0;
var info = "";
var start_time = 0;
var active = false;
var piece_number = -1;
var endActFunction = null;
var mov_pause_t = 0;
var is_mov_pause = false;
static var global_time_coof = 1;
static var length_ap = 1000;
static var curr_length_ap = 0;
static var pause_t = 0;
static var is_pause = false;
static var delay_obj = new Array();
static var interval_objects = new Array(1);
static var interval_objects_T = 600000;
static var active_pieces = new Array(length_ap);
}
Symbol 1689 MovieClip [__Packages.GameClasses.GFunctions] Frame 0
class GameClasses.GFunctions extends Object
{
function GFunctions () {
super();
}
static function create() {
var _local2 = function () {
var _local2 = arguments.callee.obj;
var _local3 = arguments.callee.func;
var _local4 = arguments.callee.arg;
return(_local3.apply(_local2, _local4));
};
_local2.obj = arguments[0];
_local2.func = arguments[1];
_local2.arg = arguments.splice(2, arguments.length - 1);
return(_local2);
}
static function ClearAll(mc, M, I, III) {
for (var _local5 in mc) {
if ((((typeof(mc[_local5]) == "movieclip") && (String(mc).split(".").length < String(mc[_local5]).split(".").length)) && (_local5 != "root_black")) && (_local5 != "SoundsClip")) {
ClearAll(mc[_local5], M, I);
if (M) {
mc[_local5].DELETE();
mc[_local5].removeMovieClip();
}
}
if (I) {
delete mc[_local5].onEnterFrame;
clearInterval(mc[_local5]);
}
}
if ((M && (!III)) && (mc != _root)) {
mc.removeMovieClip();
}
}
}
Symbol 1690 MovieClip [__Packages.GameClasses.Spline] Frame 0
class GameClasses.Spline
{
var keys;
function Spline () {
keys = new Array();
if (arguments.length > 0) {
InitSpline(arguments);
}
}
function destroy() {
clear();
}
function clear() {
var _local2 = 0;
while (_local2 < keys.length) {
delete keys[_local2];
_local2++;
}
delete keys;
}
function GetKeys() {
return(keys);
}
function addKey(key) {
var _local2 = new Array(2);
_local2[0] = key;
_local2[1] = key;
keys.push(_local2);
}
function getFrame(i, t) {
return(SplineInterpolation(keys[i][0], keys[i + 1][0], keys[i][1], keys[i + 1][1], t));
}
function getGradient(i, t) {
return(GetGradient(keys[i][0], keys[i + 1][0], keys[i][1], keys[i + 1][1], t));
}
function getPoint(t) {
var _local3 = 1 / getSectors();
var _local2 = Math.floor(t / _local3);
if (_local2 >= getSectors()) {
return(keys[keys.length - 1][0]);
}
var _local4 = (t - (_local2 * _local3)) / _local3;
return(getFrame(_local2, _local4));
}
function getGlobalGradient(t) {
var _local3 = 1 / getSectors();
var _local2 = Math.floor(t / _local3);
if (_local2 >= getSectors()) {
return(keys[keys.length - 1][0]);
}
var _local4 = (t - (_local2 * _local3)) / _local3;
return(getGradient(_local2, _local4));
}
function getSectors() {
return(keys.length - 1);
}
function reCalculate(shift) {
var _local2 = 0;
while (_local2 < keys.length) {
keys[_local2][0] = keys[_local2][0] + shift;
keys[_local2][1] = keys[_local2][0];
_local2++;
}
Calculate();
}
function Calculate(cycled) {
if (cycled) {
keys.push(keys[0]);
}
var _local3;
var _local5;
var _local4;
if (cycled) {
_local3 = keys[0][0] - keys[keys.length - 2][0];
_local5 = keys[1][0] - keys[0][0];
_local4 = _local5 - _local3;
keys[0][1] = _local3 + (0.5 * _local4);
keys[keys.length - 1][1] = keys[0][1];
} else if (keys.length > 1) {
keys[0][1] = keys[1][0] - keys[0][0];
keys[keys.length - 1][1] = keys[keys.length - 1][0] - keys[keys.length - 2][0];
}
var _local2 = 1;
while (_local2 < (keys.length - 1)) {
_local3 = keys[_local2][0] - keys[_local2 - 1][0];
_local5 = keys[_local2 + 1][0] - keys[_local2][0];
_local4 = _local5 - _local3;
keys[_local2][1] = _local3 + (0.5 * _local4);
_local2++;
}
}
function SplineInterpolation(x1, x2, r1, r2, t) {
var _local1 = t * t;
var _local2 = _local1 * t;
var _local4 = (((x1 * (((2 * _local2) - (3 * _local1)) + 1)) + (r1 * ((_local2 - (2 * _local1)) + t))) + (x2 * ((-2 * _local2) + (3 * _local1)))) + (r2 * (_local2 - _local1));
return(_local4);
}
function GetGradient(x1, x2, r1, r2, t) {
var _local2 = t * t;
var _local3 = ((((6 * x1) * (_local2 - t)) + (r1 * (((3 * _local2) - (4 * t)) + 1))) + ((6 * x2) * (t - _local2))) + (r2 * ((3 * _local2) - (2 * t)));
return(_local3);
}
function InitSpline(A) {
var _local2 = 0;
while (_local2 < A.length) {
addKey(A[_local2]);
_local2++;
}
Calculate();
}
}
Symbol 1691 MovieClip [__Packages.GameClasses.AccelLinePath] Frame 0
class GameClasses.AccelLinePath
{
var p, t_full;
function AccelLinePath () {
p = new Array();
t_full = 0;
}
function getT(i) {
return(p[i].t);
}
function destroy() {
clear();
}
function clear() {
var _local2 = 0;
while (_local2 < p.length) {
delete p[_local2];
_local2++;
}
delete p;
}
function addKey(xp, ap, vp) {
p.push({x:xp, a:ap, v:vp, t:0});
}
function calculatePath() {
var _local2;
_local2 = 0;
while (_local2 < (p.length - 1)) {
if (p[_local2].a != 0) {
p[_local2].t = ((-p[_local2].v) / p[_local2].a) + Math.sqrt(Math.pow(p[_local2].v / p[_local2].a, 2) + ((2 * (p[_local2 + 1].x - p[_local2].x)) / p[_local2].a));
p[_local2 + 1].v = p[_local2 + 1].v * (p[_local2].v + (p[_local2].a * p[_local2].t));
} else if (p[_local2].v == 0) {
p[_local2].t = 1;
p[_local2].v = (p[_local2 + 1].x - p[_local2].x) / p[_local2].t;
p[_local2 + 1].v = 0;
} else {
p[_local2].t = (p[_local2 + 1].x - p[_local2].x) / p[_local2].v;
p[_local2 + 1].v = p[_local2 + 1].v * p[_local2].v;
}
_local2++;
}
_local2 = 1;
while (_local2 < (p.length - 1)) {
p[_local2].t = p[_local2].t + p[_local2 - 1].t;
_local2++;
}
t_full = p[p.length - 2].t;
return(t_full);
}
function getPoint(t) {
var _local2 = 0;
var _local4;
t = t * t_full;
while ((_local2 < p.length) && (p[_local2].t < t)) {
_local2++;
}
if ((_local2 >= (p.length - 1)) || (t > t_full)) {
return(p[p.length - 1].x);
}
if (_local2 > 0) {
_local4 = t - p[_local2 - 1].t;
} else {
_local4 = t;
}
return((p[_local2].x + (p[_local2].v * _local4)) + ((p[_local2].a * (_local4 * _local4)) / 2));
}
}
Symbol 1692 MovieClip [__Packages.GameClasses.Line] Frame 0
class GameClasses.Line
{
var keys;
function Line () {
keys = new Array();
if (arguments.length > 0) {
initLine(arguments);
}
}
function destroy() {
clear();
}
function initLine(A) {
var _local2 = 0;
while (_local2 < A.length) {
addKey(A[_local2]);
_local2++;
}
}
function clear() {
var _local2 = 0;
while (_local2 < keys.length) {
delete keys[_local2];
_local2++;
}
delete keys;
}
function addKey(key) {
keys.push(key);
}
function calculate() {
}
function getPoint(t) {
var _local2 = 0;
var _local3 = t * (keys.length - 1);
while (_local2 < _local3) {
_local2++;
}
if (_local2 <= 0) {
return(keys[0]);
}
if (_local2 == keys.length) {
return(keys[keys.length - 1]);
}
_local2--;
return(keys[_local2] + ((keys[_local2 + 1] - keys[_local2]) * (_local3 - _local2)));
}
}
Symbol 1693 MovieClip [__Packages.GameClasses.MCwithShadow] Frame 0
class GameClasses.MCwithShadow extends GameClasses.MCfromBMP
{
var color, shadow, shadow_color, shift_x, shift_y, shadow_x, shadow_y, body, createEmptyMovieClip, bmp;
function MCwithShadow () {
super();
}
function removeMovieClip() {
delete color;
shadow.removeMovieClip();
super.removeMovieClip();
}
function initShadow(sx, sy, bx, by, so, col) {
shadow_color = col;
shadow_opacity = so;
shift_x = bx;
shift_y = by;
shadow_x = sx;
shadow_y = sy;
shadow = body.duplicateMovieClip("shadow", body.getDepth() - 1);
color = new Color(shadow);
color.setRGB(shadow_color);
shadow._alpha = shadow_opacity;
shadow._x = shadow_x;
shadow._y = shadow_y;
body._x = shift_x;
body._y = shift_y;
}
function initShadowBMP(sx, sy, bx, by, so, col) {
shadow_color = col;
shadow_opacity = so;
shift_x = bx;
shift_y = by;
shadow_x = sx;
shadow_y = sy;
createEmptyMovieClip("shadow", body.getDepth() - 1);
shadow.attachBitmap(bmp, 1, "never");
color = new Color(shadow);
color.setRGB(shadow_color);
shadow._alpha = shadow_opacity;
shadow._x = shadow_x;
shadow._y = shadow_y;
body._x = shift_x;
body._y = shift_y;
}
var shadow_opacity = 40;
}
Symbol 1694 MovieClip [__Packages.GameClasses.MyText] Frame 0
class GameClasses.MyText extends GameClasses.MCwithShadow
{
var body, clear, createEmptyMovieClip, txt, text, my_fmt, width, height, txt_shadow, shadow;
function MyText () {
super();
}
function removeMovieClip() {
body.removeMovieClip();
clear();
super.removeMovieClip();
}
function initText(text, font, x, y, width, height, size, bold, align, color) {
body = createEmptyMovieClip("body", 10);
txt = body.createTextField("txt", 1, x, y, width, height);
this.text = text;
txt.wordWrap = true;
txt.embedFonts = true;
txt.text = text;
txt.multiline = true;
txt.selectable = false;
txt.autoSize = "center";
my_fmt = new TextFormat();
if (font != "") {
my_fmt.font = font;
}
my_fmt.color = color;
my_fmt.bold = bold;
my_fmt.align = align;
my_fmt.size = size;
txt.setTextFormat(my_fmt);
this.width = txt._width;
this.height = txt._height;
}
function initShadow(sx, sy, so, col) {
super.initShadow(sx, sy, 0, 0, so, col);
my_fmt = txt.getTextFormat();
txt_shadow = shadow.createTextField("txt_shadow", 1, txt._x, txt._y, txt._width, txt._height);
txt_shadow.wordWrap = true;
txt_shadow.embedFonts = true;
txt_shadow.text = text;
txt_shadow.multiline = true;
txt_shadow.selectable = false;
txt_shadow.wordWrap = true;
txt_shadow.autoSize = txt.autoSize;
txt_shadow.setTextFormat(my_fmt);
}
function setText(tex) {
my_fmt = txt.getTextFormat();
txt.text = tex;
txt_shadow.text = tex;
txt.setTextFormat(my_fmt);
txt_shadow.setTextFormat(my_fmt);
width = txt._width;
height = txt._height;
}
}
Symbol 1695 MovieClip [__Packages.GameClasses.Level] Frame 0
class GameClasses.Level extends MovieClip
{
var log, destroyable_arr, fire1_nps, fire2_nps, fire3_nps, fire4_nps, hint_button, count_artefacts, mcs, locked_arr, artefacts_arr, poa_arr, test_functions, art_cells, big_arts, mcRoot, cursor_mc, mcThis, menu, snd, statistic, lbf, counter, TEXT_MC, HINT_LEVEL_MC, NPS_LEVEL_MC, NPS_BG_LEVEL_MC, SQUARE_MC, enabled, _parent, createEmptyMovieClip, curr_obj, depth, attachMovie, _visible, _alpha, _x, _y, level, temp_mc, time_begin, doFirstLevelAction, win_t0, win_interval, text1, text2, firstTextCountry, firstTextLevel, firstTextGo, textCompleted1, textCompleted2, Svet1, Svet2, Svet3, tabEnabled;
function Level () {
super();
log.info("constructor Level");
initObjects();
initDepths();
initArrays();
}
function destroy() {
loaded = false;
GameClasses.HintWindow.clearAll();
var _local2 = 0;
while (_local2 < destroyable_arr.length) {
destroyable_arr[_local2].destroy();
_local2++;
}
destroyable_arr = null;
fire1_nps.destroy();
fire1_nps = null;
fire2_nps.destroy();
fire2_nps = null;
fire3_nps.destroy();
fire3_nps = null;
fire4_nps.destroy();
fire4_nps = null;
log.info("call function destroy flom Level");
log.info("destroyable_arr.length=" + destroyable_arr.length);
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
GameClasses.FreeMove.clearInterval(interval_delay);
interval_delay = 0;
GameClasses.FreeMove.clearInterval(interval_for);
interval_for = 0;
GameClasses.FreeMove.clearInterval(interval_waitEnabled);
interval_waitEnabled = 0;
if (hint_button != undefined) {
hint_button.die();
hint_button = null;
}
destroyArrays();
destroyObjects();
removeAllMC(this);
loaded = false;
count_artefacts = 0;
log = null;
}
static function initDefaultNumbBonuses() {
numb_l = 3;
}
static function initDefaultStaticVars() {
}
function initDepths() {
log.info("call initDepths from Level");
temp_level = 10000;
depth_for_poa = 20000;
depth_for_a = 25000;
depth_for_fly_poa = 35000;
depth_for_fly_a = 30000;
depth_for_square = 99999 /* 0x01869F */;
depth_for_hint = 100000 /* 0x0186A0 */;
depth_for_texts = 26000;
depth_for_nps = 60001;
depth_for_bg_nps = 10990;
}
function initArrays() {
log.info("call initArrays from Level");
destroyable_arr = new Array();
mcs = new Array();
locked_arr = new Array();
artefacts_arr = new Array();
poa_arr = new Array();
test_functions = new Array();
art_cells = new Array();
big_arts = new Array();
test_functions.push(GameClasses.GFunctions.create(this, testOnButton));
test_functions.push(GameClasses.GFunctions.create(this, testOnArtefact));
test_functions.push(GameClasses.GFunctions.create(this, testOnHintWindow));
test_functions.push(GameClasses.GFunctions.create(this, testOnHintButton));
test_functions.push(GameClasses.GFunctions.create(this, testOnText));
test_functions.push(GameClasses.GFunctions.create(this, testOnPapper));
test_functions.push(GameClasses.GFunctions.create(this, testOnCouter));
test_functions.push(GameClasses.GFunctions.create(this, testOnLifeBonusField));
test_functions.push(GameClasses.GFunctions.create(this, testOnEmbedPicture));
}
function destroyArray(arr) {
var _local1 = 0;
while (_local1 < arr.length) {
delete arr[_local1];
_local1++;
}
}
function destroyArrays() {
log.info("call destroyArrays from Level");
destroyArray(destroyable_arr);
destroyArray(mcs);
destroyArray(locked_arr);
destroyArray(artefacts_arr);
destroyArray(poa_arr);
destroyArray(test_functions);
destroyArray(art_cells);
destroyArray(big_arts);
destroyable_arr = null;
mcs = null;
locked_arr = null;
artefacts_arr = null;
poa_arr = null;
test_functions = null;
art_cells = null;
big_arts = null;
}
function destroyObjects() {
log.info("call destroyObjects from Level");
log = null;
mcRoot = null;
cursor_mc = null;
mcThis = null;
menu = null;
snd = null;
statistic = null;
lbf.destroy();
lbf = null;
counter.destroy();
counter = null;
hint_button.destroy();
hint_button = null;
TEXT_MC.removeMovieClip();
TEXT_MC = null;
HINT_LEVEL_MC.removeMovieClip();
HINT_LEVEL_MC = null;
NPS_LEVEL_MC.removeMovieClip();
NPS_LEVEL_MC = null;
NPS_BG_LEVEL_MC.removeMovieClip();
NPS_BG_LEVEL_MC = null;
SQUARE_MC.removeMovieClip();
SQUARE_MC = null;
}
function initObjects() {
log = logger.Logger.getLog();
loadNextLevetAct = null;
snd = GameClasses.MySounds.getMySounds();
log.info("call initObjects from Level");
cursor_mc = mcRoot.cursor_mc;
enabled = false;
mcRoot = _parent;
mcThis = this;
mcThis.blendMode = "layer";
TEXT_MC = createEmptyMovieClip("TEXT_MC", depth_for_texts);
TEXT_MC.blendMode = "layer";
HINT_LEVEL_MC = createEmptyMovieClip("HINT_LEVEL_MC", depth_for_hint);
HINT_LEVEL_MC.blendMode = "layer";
NPS_LEVEL_MC = createEmptyMovieClip("NPS_LEVEL_MC", depth_for_nps);
NPS_BG_LEVEL_MC = createEmptyMovieClip("NPS_BG_LEVEL_MC", depth_for_bg_nps);
menu = GameClasses.MenuClass.getMenu();
statistic = GameClasses.StatisticClass.getSingleton();
statistic.setRecordValue("pieces", 0);
SQUARE_MC = createSquare(depth_for_square);
}
function recursiveDelete(mc) {
for (var _local3 in mc) {
if (!mc[_local3]) {
continue;
}
if (mc[_local3] instanceof MovieClip) {
if (((((_local3 == "mcRoot") || (_local3 == "mcThis")) || (_local3 == "mcBody")) || (_local3 == "_parent")) || (_local3 == "this")) {
continue;
}
recursiveDelete(mc[_local3]);
mc[_local3].destroy();
mc[_local3].removeMovieClip();
delete mc[_local3];
} else if (mc[_local3] instanceof Array) {
delete mc[_local3];
} else if (mc[_local3] instanceof flash.display.BitmapData) {
flash.display.BitmapData(mc[_local3]).dispose();
delete mc[_local3];
} else {
mc[_local3].destroy();
mc[_local3].clear();
delete mc[_local3];
}
}
}
function removeAllMC(mc) {
log.info("call removeAllMC from Level");
var _local2;
for (_local2 in mc) {
if (!mc[_local2]) {
continue;
}
if (mc[_local2] instanceof MovieClip) {
if ((((((_local2 == "mcRoot") || (_local2 == "mcThis")) || (_local2 == "mcBody")) || (_local2 == "_parent")) || (_local2 == "this")) || (_local2 == "_root")) {
continue;
}
recursiveDelete(mc[_local2]);
mc[_local2].removeMovieClip();
delete mc[_local2];
}
}
mc.clear();
}
function exitLevel() {
destroy();
}
function testOnEmbedPicture() {
if (curr_obj.type == "embed_picture") {
var _local3 = MovieClip(this[curr_obj.id]);
if (!_local3) {
_local3 = this[curr_obj.id].getBody();
}
var _local2 = this[curr_obj.id].getDepthForEmbed();
if (!_local2) {
_local2 = _local3.getNextHighestDepth();
}
var _local4 = MovieClip(_local3.attachMovie(curr_obj.lib_name, "embed" + _local2, _local2));
_local4._x = curr_obj.x;
_local4._y = curr_obj.y;
return(true);
}
return(false);
}
function testOnLifeBonusField() {
if (curr_obj.type == "life_bonus_field") {
lbf = new GameClasses.LifeBonusField(this, curr_obj.id, depth, curr_obj.x, curr_obj.y);
return(true);
}
return(false);
}
function testOnCouter() {
if (curr_obj.type == "counter") {
counter = new GameClasses.GameCounter(this, curr_obj.id, depth, curr_obj.x, curr_obj.y);
this[curr_obj.id].useHandCursor = false;
mcs.push(this[curr_obj.id]);
return(true);
}
return(false);
}
function testOnPapper() {
if (curr_obj.type == "papper") {
log.info("curr_obj.type == \"papper\"");
this[curr_obj.id] = new GameClasses.PapperClass(this, "Papper", depth, _root.dialogs[curr_obj.text.id], curr_obj.x, curr_obj.y, curr_obj.h);
destroyable_arr.push(this[curr_obj.id]);
return(true);
}
return(false);
}
function testOnText() {
if (curr_obj.type == "text") {
this[curr_obj.id] = new GameClasses.TextClass(this, depth, _root.dialogs[curr_obj.text.id], curr_obj.x, curr_obj.y);
this[curr_obj.id].setOpacity(curr_obj.opacity);
destroyable_arr.push(this[curr_obj.id]);
return(true);
}
return(false);
}
function testOnHintButton() {
if (curr_obj.type == "hint_button") {
hint_button = new GameClasses.HintButton(this, curr_obj.lib_name, depth, curr_obj.x, curr_obj.y, GameClasses.GFunctions.create(this, this[curr_obj.action]));
return(true);
}
return(false);
}
function testOnHintWindow() {
if (curr_obj.type == "hint_window") {
var _local3 = "HintWindowText" + curr_obj.id;
this[_local3] = new GameClasses.HintWindow(this, this[curr_obj.id], _root.dialogs[_local3]);
if (_root.dialogs[_local3 + 1]) {
this[_local3 + 1] = new GameClasses.HintWindow(this, this[curr_obj.id], _root.dialogs[_local3 + 1]);
this[_local3 + 1].disableHint();
}
this[_local3].enableHint();
return(true);
}
return(false);
}
function testOnButton() {
var _local3 = new Object();
var _local5;
var _local4;
if (curr_obj.type == "button") {
this[curr_obj.id] = new GameClasses.MyButton2(this, curr_obj.lib_name, depth, _root.dialogs[curr_obj.text.id], curr_obj.x, curr_obj.y);
this[curr_obj.id].addAction(GameClasses.GFunctions.create(this, this[curr_obj.action]));
if (!curr_obj.enabled) {
this[curr_obj.id].disable();
}
destroyable_arr.push(this[curr_obj.id]);
return(true);
}
return(false);
}
function testOnArtefact() {
var _local2 = new Object();
if (curr_obj.type == "artefact") {
count_artefacts++;
attachMovie("Artefact", curr_obj.id, depth);
mcs.push(this[curr_obj.id]);
artefacts_arr.push(this[curr_obj.id]);
this[curr_obj.id].useHandCursor = false;
_local2.art_cam_to_dest = new Array();
this[curr_obj.id].init(curr_obj, _local2);
if (curr_obj.enabled != undefined) {
this[curr_obj.id].enabled = curr_obj.enabled;
this[curr_obj.id].enabled_art = curr_obj.enabled;
}
return(true);
}
return(false);
}
function testFunctions() {
var _local2;
_local2 = 0;
while (_local2 < test_functions.length) {
if (test_functions[_local2](curr_obj, depth)) {
return(true);
}
_local2++;
}
return(false);
}
static function enableAll(mc) {
for (var _local2 in mc) {
if (mc[_local2] instanceof MovieClip) {
if (((((_local2 == "mcRoot") || (_local2 == "mcThis")) || (_local2 == "mcBody")) || (_local2 == "_parent")) || (_local2 == "this")) {
continue;
}
enableAll(mc[_local2]);
}
}
mc.enabled = true;
}
static function disableAll(mc) {
for (var _local2 in mc) {
if (mc[_local2] instanceof MovieClip) {
if (((((_local2 == "mcRoot") || (_local2 == "mcThis")) || (_local2 == "mcBody")) || (_local2 == "_parent")) || (_local2 == "this")) {
continue;
}
disableAll(mc[_local2]);
}
}
mc.enabled = false;
}
function load(lev) {
_visible = true;
if (delay_time != 0) {
GameClasses.FreeMove.makeDelay(delay_time, GameClasses.GFunctions.create(this, load, lev));
delay_time = 0;
return(undefined);
}
if ((!isNaN(lev.number)) && (lev.number != 0)) {
GameClasses.Vars.current_level = lev.number;
}
GameClasses.Vars.do_break_point = true;
is_nug = lev.is_nug;
is_locked = false;
delay_time = GameClasses.Consts.TIME_TO_HIDE;
loading_next_level = false;
GameClasses.HintWindow.initInterval();
if (loaded) {
restore();
return(undefined);
}
beginLoadAct();
var _local4;
disableAll(this);
_alpha = 0;
_x = 0;
_y = 0;
count_artefacts = 0;
level = lev;
temp_mc = createEmptyMovieClip("temp_mc", temp_level);
temp_mc._x = 530;
temp_mc._y = 400;
temp_mc._visible = false;
mcs.push(temp_mc);
var _local2 = 0;
while (_local2 < level.pictures.length) {
var _local3;
var _local5;
var _local9;
curr_obj = level.pictures[_local2];
depth = _local2;
if (curr_obj.lib_name != undefined) {
_local5 = curr_obj.lib_name;
} else {
_local5 = curr_obj.id;
}
if (testFunctions()) {
} else if (curr_obj.type == "flag") {
attachMovie("Flag", curr_obj.id, _local2);
mcs.push(this[curr_obj.id]);
this[curr_obj.id].init(curr_obj.id);
this[curr_obj.id]._x = curr_obj.x;
this[curr_obj.id]._y = curr_obj.y;
this[curr_obj.id].useHandCursor = false;
} else if (curr_obj.type == "region") {
attachMovie("Region", curr_obj.id, _local2);
mcs.push(this[curr_obj.id]);
this[curr_obj.id].init(curr_obj);
this[curr_obj.id].id = curr_obj.id;
this[curr_obj.id].useHandCursor = false;
} else if (curr_obj.type == "mask") {
this[curr_obj.regionId].initMask(curr_obj);
} else if (curr_obj.type == "outline") {
this[curr_obj.regionId].initOutline(curr_obj);
} else if (curr_obj.type == "cell") {
attachMovie("CellClass", curr_obj.id, _local2);
this[curr_obj.id].initCell(curr_obj, _local5);
this[curr_obj.id].useHandCursor = false;
art_cells.push(this[curr_obj.id]);
count_artefacts--;
} else if (curr_obj.type == "big_art") {
count_artefacts++;
attachMovie("BigArtefact", curr_obj.id, _local2);
this[curr_obj.id].useHandCursor = false;
this[curr_obj.id].initBigArt(_parent.artefacts[curr_obj.id], curr_obj);
big_arts.push(this[curr_obj.id]);
} else if (curr_obj.type == "crystal") {
count_artefacts++;
attachMovie("BigArtefact", curr_obj.id, _local2);
this[curr_obj.id].useHandCursor = false;
this[curr_obj.id].initCrystal(_parent.artefacts[curr_obj.id], curr_obj);
big_arts.push(this[curr_obj.id]);
} else if (curr_obj.type == "piece_of_compound_artefact") {
var _local6 = (curr_obj.idArtefact + "_") + (Number(curr_obj.nElement) + 1);
attachMovie("PieceOfCompoundArtefact", _local6, _local2);
poa_arr.push(this[_local6]);
this[_local6].useHandCursor = false;
this[_local6].initPiece(_parent.artefacts[curr_obj.idArtefact], curr_obj);
} else {
if (attachMovie(_local5, curr_obj.id, _local2) == undefined) {
attachMovie("MCfromBMP", curr_obj.id, _local2);
this[curr_obj.id].init(_local5 + ".png");
}
mcs.push(this[curr_obj.id]);
this[curr_obj.id].useHandCursor = false;
this[curr_obj.id]._x = curr_obj.x;
this[curr_obj.id]._y = curr_obj.y;
this[curr_obj.id].id = curr_obj.id;
var _local7 = this[curr_obj.id].getBounds(this);
if ((this[curr_obj.id]._x < 0) && (this[curr_obj.id]._y < 0)) {
this[curr_obj.id]._x = curr_obj.x * 0.65;
this[curr_obj.id]._y = (390 - (curr_obj.y * 0.65)) - this[curr_obj.id]._height;
}
if (curr_obj.real_coord == "false") {
this[curr_obj.id]._x = (curr_obj.x * 0.65) - (this[curr_obj.id]._width / 2);
this[curr_obj.id]._y = (390 - (curr_obj.y * 0.65)) - (this[curr_obj.id]._height / 2);
} else if (curr_obj.ldcoord == "true") {
this[curr_obj.id]._x = curr_obj.x * 0.65;
this[curr_obj.id]._y = (390 - (curr_obj.y * 0.65)) - this[curr_obj.id]._height;
}
this[curr_obj.id]._visible = curr_obj.visible;
this[curr_obj.id].blendMode = "layer";
}
_local2++;
}
_local2 = 0;
while (_local2 < level.regions.length) {
var _local3 = this[level.regions[_local2].idArtefact];
_local3.dest = this[level.regions[_local2].idRegion];
_local3.initDest();
_local4 = 0;
while (_local4 < level.regions[_local2].length) {
curr_obj = level.regions[_local2][_local4];
if (curr_obj.type == "effect") {
_local3.act.art_cam_to_dest.push(GameClasses.GFunctions.create(this, this[curr_obj.effectId]));
} else if (curr_obj.type == "hide") {
_local3.act.art_cam_to_dest.push(GameClasses.GFunctions.create(this, hide_act, curr_obj.objectId));
} else if (curr_obj.type == "show") {
_local3.act.art_cam_to_dest.push(GameClasses.GFunctions.create(this, show_act, curr_obj.objectId));
}
_local4++;
}
_local2++;
}
createLevelText();
loaded = true;
startShowLevel();
}
function hide_act(s) {
this[s]._visible = false;
this[s].enabled = false;
}
function show_act(s) {
this[s]._visible = true;
if (this[s].show != undefined) {
this[s].show();
}
}
function restore() {
GameClasses.Vars.do_break_point = false;
_alpha = 0;
_x = 0;
_y = 0;
delay_time = GameClasses.Consts.TIME_TO_HIDE;
loading_next_level = false;
time_begin = getTimer();
GameClasses.FreeMove.clearInterval(interval_for);
interval_for = 0;
interval_for = GameClasses.FreeMove.setInterval(this, "showLevel", 8);
}
function unload() {
GameClasses.FreeMove.clearInterval(interval_for);
interval_for = 0;
lockLevel();
disableAll(this);
time_begin = getTimer();
interval_for = GameClasses.FreeMove.setInterval(this, "hideLevel", 0);
}
static function reload_level() {
if (GameClasses.Vars.current_level >= general.GameSDK.numTrialLevels) {
var _local2 = GameClasses.NugLevel.getSingleton();
_local2.showWin();
return(undefined);
}
if (_root.prev_level.is_nug) {
_root.prev_level.is_nug = false;
var _local2 = GameClasses.NugLevel.getSingleton();
_local2.showInterlevel(GameClasses.GFunctions.create(GameClasses.Level, reload_level));
return(undefined);
}
GameClasses.HintWindow.clearAll();
_root.prev_level.loadNextLevetAct = GameClasses.GFunctions.create(_root, function () {
_root.level._visible = true;
_root.level.load(_root.obj);
});
_root.prev_level.unload();
}
function startShowLevel() {
GameClasses.FreeMove.clearInterval(interval_for);
interval_for = 0;
time_begin = getTimer();
interval_for = GameClasses.FreeMove.setInterval(this, "showLevel", 0);
}
function showLevel() {
var _local3;
var _local2 = getTimer() - time_begin;
if (_local2 > time_to_show) {
_alpha = 100;
GameClasses.FreeMove.clearInterval(interval_for);
interval_for = 0;
enableAll(this);
clearTabEnabled();
GameClasses.HintWindow.initInterval();
doFirstLevelAction();
} else {
_alpha = alpha_change + (((100 - alpha_change) * _local2) / time_to_show);
}
}
function hideLevel() {
var _local3 = (getTimer() - time_begin) / time_to_hide;
if (_local3 >= 1) {
GameClasses.FreeMove.clearInterval(interval_for);
interval_for = 0;
_x = 0;
_y = 400;
_visible = false;
if (GameClasses.Vars.do_break_point) {
_root.pauseGame();
general.GameSDK.Game_EndOfLevel(GameClasses.Vars.current_level, GameClasses.GameCounter.getTotalScore(), GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000));
}
endHideAct();
exitAct();
loadNextLevetAct();
if (general.GameSDK.autoContinue()) {
_root.playGame();
}
} else {
_alpha = Math.floor(100 - (_local3 * (100 - alpha_change)));
}
}
function loadMap() {
log.info("call loadMap from Level");
_parent.prev_level = _parent.level;
_parent.prev_obj = _parent.obj;
_parent.level = _parent.map_level;
_parent.obj = _parent.levels.map_level;
delete exitAct;
exitAct = exitLevel;
reload_level();
}
function loadNextLevel() {
log.info("call loadNextLevel from Level");
_parent.prev_level = _parent.level;
_parent.prev_obj = _parent.obj;
_parent.level = _parent.map_level;
_parent.obj = _parent.levels.map_level;
delete exitAct;
exitAct = exitLevel;
reload_level();
}
function winWithoutSound() {
mcRoot.pauseGlobalGameTime();
lockLevel();
win_t0 = getTimer();
GameClasses.FreeMove.clearInterval(win_interval);
win_interval = 0;
win_interval = GameClasses.FreeMove.setInterval(this, "updateWin", 0);
}
function win() {
mcRoot.pauseGlobalGameTime();
snd.startSound("level_complete");
lockLevel();
win_t0 = getTimer();
GameClasses.FreeMove.clearInterval(win_interval);
win_interval = 0;
win_interval = GameClasses.FreeMove.setInterval(this, "updateWin", 0);
}
function updateWin() {
var _local2 = (getTimer() - win_t0) / win_time;
if (_local2 > 1) {
GameClasses.FreeMove.clearInterval(win_interval);
win_interval = 0;
winAct();
doFirstWinAction();
}
}
function doFirstWinAction() {
statistic.show();
}
function createLevelText() {
text1 = new GameClasses.TextClass(TEXT_MC, TEXT_MC.getNextHighestDepth(), _root.dialogs["Match3Text" + mcRoot.map_level.curr_level], 0, 0);
text2 = new GameClasses.TextClass(TEXT_MC, TEXT_MC.getNextHighestDepth(), _root.dialogs["Match3Text" + mcRoot.map_level.curr_country], 0, 0);
firstTextCountry = new GameClasses.TextClass(TEXT_MC, TEXT_MC.getNextHighestDepth(), _root.dialogs.Match3TextCountry, 0, 0);
firstTextCountry.setText(mcRoot.dialogs["Match3Text" + mcRoot.map_level.curr_country].text);
firstTextCountry.setVisible(false);
firstTextLevel = new GameClasses.TextClass(TEXT_MC, TEXT_MC.getNextHighestDepth(), _root.dialogs.Match3TextLevel, 0, 0);
firstTextLevel.setText(mcRoot.dialogs["Match3Text" + mcRoot.map_level.curr_level].text);
firstTextLevel.setVisible(false);
firstTextGo = new GameClasses.TextClass(TEXT_MC, TEXT_MC.getNextHighestDepth(), _root.dialogs.Match3TextGo, 0, 0);
firstTextGo.setVisible(false);
textCompleted1 = new GameClasses.TextClass(TEXT_MC, TEXT_MC.getNextHighestDepth(), _root.dialogs.TextCompleted1, 0, 0);
textCompleted1.setVisible(false);
textCompleted2 = new GameClasses.TextClass(TEXT_MC, TEXT_MC.getNextHighestDepth(), _root.dialogs.TextCompleted2, 0, 0);
textCompleted2.setVisible(false);
}
function lockLevel() {
is_locked = true;
}
function unlockLevel() {
is_locked = false;
}
function showMenu() {
menu.show();
}
function showStatistic() {
statistic.show();
}
function gameOver() {
delete eval (exitAct());
exitAct = exitLevel;
loadMap();
}
function loadThis() {
exitAct = function () {
this.destroy();
};
loadNextLevetAct = GameClasses.GFunctions.create(this, function () {
this._visible = true;
this.load(this.level);
});
unload();
}
function restartLevel() {
if (counter) {
counter.clearLevelScore();
}
loadThis();
}
function isLocked() {
return(is_locked);
}
function startRomeFire() {
var Tsvet = 2000;
fire1_nps = GameClasses.NewParticleSystem.makeSimpleFire(NPS_BG_LEVEL_MC);
fire1_nps.addMC("lampa1", 444, 180);
fire1_nps.startSimpleFire(467, 207, 0);
fire2_nps = GameClasses.NewParticleSystem.makeSimpleFire(NPS_BG_LEVEL_MC);
fire2_nps.addMC("lampa2", 371, 186);
fire2_nps.startSimpleFire(392, 209, 0, 0.6);
fire3_nps = GameClasses.NewParticleSystem.makeSimpleFire(NPS_BG_LEVEL_MC);
fire3_nps.addMC("lampa3", 179, 185);
fire3_nps.startSimpleFire(200, 213, 0, 0.4);
fire4_nps = GameClasses.NewParticleSystem.makeSimpleFire(NPS_BG_LEVEL_MC);
fire4_nps.addMC("lampa4", 157, 177);
fire4_nps.startSimpleFire(179, 204, 0, 1);
Svet1.mov = new GameClasses.FreeMove();
Svet1.mov.endAct = GameClasses.GFunctions.create(Svet1, function () {
this.mov.newInitMove(this, Tsvet, 1, null, null, null, null, null, new GameClasses.Spline(0, 100, 0));
});
Svet1.mov.endAct();
Svet2.mov = new GameClasses.FreeMove();
Svet2.mov.endAct = GameClasses.GFunctions.create(Svet2, function () {
this.mov.newInitMove(this, Tsvet, 1, null, null, null, null, null, new GameClasses.Spline(0, 100, 0));
});
Svet2.mov.endAct();
Svet3.mov = new GameClasses.FreeMove();
Svet3.mov.endAct = GameClasses.GFunctions.create(Svet3, function () {
this.mov.newInitMove(this, Tsvet, 1, null, null, null, null, null, new GameClasses.Spline(0, 100, 0));
});
Svet3.mov.endAct();
}
function createSquare(depth) {
var _local2 = createEmptyMovieClip("square_mc" + depth, depth);
_local2.beginFill(0, 0);
_local2.moveTo(0, 0);
_local2.lineTo(520, 0);
_local2.lineTo(520, 390);
_local2.lineTo(0, 390);
_local2.lineTo(0, 0);
_local2.endFill();
_local2.onPress = function () {
};
_local2.tabEnabled = false;
_local2.useHandCursor = false;
_local2._x = 520;
return(_local2);
}
static function clearTabEnable(mc) {
if ((curr_recursion++) >= max_recursion) {
return(undefined);
}
for (var _local3 in mc) {
if (mc[_local3] instanceof MovieClip) {
if (!mc[_local3].tabEnabled) {
continue;
}
if (((((_local3 == "mcRoot") || (_local3 == "mcThis")) || (_local3 == "mcBody")) || (_local3 == "_parent")) || (_local3 == "this")) {
continue;
}
if (String(mc).split(".").length >= String(mc[_local3]).split(".").length) {
continue;
}
mc[_local3].tabEnabled = false;
clearTabEnable(MovieClip(mc[_local3]));
_root.p1(mc[_local3]);
}
}
}
function clearTabEnabled() {
curr_recursion = 0;
tabEnabled = false;
}
static function setInterval(obj_src, fun, T, param1, param2, param3, param4, param5) {
return(GameClasses.FreeMove.setPeriodicInterval(obj_src, fun, T, param1, param2, param3, param4, param5));
}
static function clearInterval(i) {
GameClasses.FreeMove.clearInterval(i);
}
var beginLoadAct = null;
var exitAct = null;
var endHideAct = null;
var is_locked = false;
var game_time = 1000000;
var loading_next_level = false;
var alpha_change = 0;
var loaded = false;
var loading = false;
var interval = 0;
var interval_delay = 0;
var interval_for = 0;
var interval_waitEnabled = 0;
var time_to_show = GameClasses.Consts.TIME_TO_HIDE;
var time_to_hide = GameClasses.Consts.TIME_TO_HIDE;
var temp_level = 10000;
var depth_for_poa = 20000;
var depth_for_a = 25000;
var depth_for_fly_poa = 35000;
var depth_for_fly_a = 30000;
var depth_for_square = 99999;
var depth_for_hint = 100000;
var depth_for_texts = 26000;
var delay_time = GameClasses.Consts.TIME_TO_HIDE;
var depth_for_nps = 60001;
var depth_for_bg_nps = 10990;
var T1 = 600;
var T2 = 1000;
var T3 = 600;
var T_text_completed = 3000;
var is_nug = false;
var win_time = 600;
static var numb_l = 3;
var winAct = null;
var loadNextLevetAct = null;
var otstup = "";
static var max_recursion = 20000;
static var curr_recursion = 0;
}
Symbol 1696 MovieClip [__Packages.GameClasses.MySounds] Frame 0
class GameClasses.MySounds
{
static var single;
var sounds, sound_mc;
function MySounds () {
sounds = new Object();
sound_mc = _root.createEmptyMovieClip("sound_mc", GameClasses.Consts.DEPTH_FOR_SOUND_MC);
sound_mc._visible = false;
}
static function getMySounds() {
if (!single) {
single = new GameClasses.MySounds();
}
return(single);
}
function setOn(val) {
on_state = val;
if (!val) {
for (var _local2 in sounds) {
sounds[_local2].stop();
}
}
}
function setMusikOn(val) {
}
function addSound(snd_obj) {
var _local2 = snd_obj.id;
var _local4 = ("sound_" + _local2) + ".mp3";
if (!sounds[_local2]) {
sounds[_local2] = new Sound(sound_mc.createEmptyMovieClip(_local2, sound_mc.getNextHighestDepth()));
sounds[_local2].attachSound(_local4);
var _local3 = snd_obj.volume;
sounds[_local2].setVolume(_local3);
}
return(sounds[_local2]);
}
function startSound(id) {
if (!on_state) {
return(undefined);
}
var _local3 = addSound(_root.sounds[id]);
_local3.start();
}
function startWithDelay(id, T) {
if (!on_state) {
return(undefined);
}
var _local3 = addSound(_root.sounds[id]);
GameClasses.FreeMove.makeDelay(T, GameClasses.GFunctions.create(_local3, _local3.start));
}
function startCycle(id) {
if (!on_state) {
return(undefined);
}
var _local3 = addSound(_root.sounds[id]);
_local3.start(0, 1000);
}
function stop(id) {
if (!on_state) {
return(undefined);
}
var _local3 = addSound(_root.sounds[id]);
_local3.stop();
}
var on_state = true;
}
Symbol 1697 MovieClip [__Packages.logger.Logger] Frame 0
class logger.Logger
{
static var inst;
function Logger () {
}
static function getLog() {
if (!inst) {
inst = new logger.Logger();
}
return(inst);
}
function info() {
}
function debug() {
}
function warn() {
}
}
Symbol 1698 MovieClip [__Packages.GameClasses.MenuClass] Frame 0
class GameClasses.MenuClass
{
static var log;
var mcRoot, object, body, buttons, texts, url_str, window_str, square_mc;
function MenuClass (menu_obj, mc_root, depth) {
var _local6;
var _local8;
var _local13;
mcRoot = mc_root;
object = menu_obj;
body = mcRoot.createEmptyMovieClip("menu" + depth, depth);
setVisible(false);
body.mov = new GameClasses.FreeMove();
buttons = new Array();
texts = new Array();
_local6 = 3;
var _local5 = 0;
while (_local5 < object.pictures.length) {
var _local3 = object.pictures[_local5];
if (_local3.type == "menu_bg") {
createMenuBg(_local3.lib_name, _local6, _local3.h);
body._x = _local3.x;
body._y = _local3.y;
} else if (_local3.type == "menu_button") {
if (menu_bg != null) {
_local8 = menu_bg._width;
} else {
_local8 = 0;
}
var _local4 = new GameClasses.MenuButton(body, _local3.lib_name, _local6, _root.dialogs[_local3.text.id], _local8, _local3.x, _local3.y, _local3.dx, _local3.dy);
_local4.addAction(GameClasses.GFunctions.create(this, this[_local3.action]));
if (_local3.action == "download") {
url_str = _local3.src;
window_str = _local3.window;
}
if (!_local3.enabled) {
_local4.disable();
}
buttons[_local3.id] = _local4;
buttons.push(_local4);
} else if (_local3.type == "text") {
var _local9;
var _local7 = _root.dialogs[_local3.text.id];
if (menu_bg != null) {
_local7.w = menu_bg._width;
}
_local9 = new GameClasses.TextClass(body, _local6, _local7, _local3.x, _local3.y);
texts.push(_local4);
}
_local5++;
_local6++;
}
createSquare(2);
disableAllButtons();
}
static function getMenu(menu_obj, mc_root, depth) {
if (menu == null) {
log = logger.Logger.getLog();
if (menu_obj == undefined) {
log.warn("menu_obj not assignment");
return(null);
}
if (mc_root == undefined) {
log.warn("mc_root not assignment");
return(null);
}
if (depth == undefined) {
log.warn("depth not assignment");
return(null);
}
menu = new GameClasses.MenuClass(menu_obj, mc_root, depth);
}
return(menu);
}
function setVisible(vis) {
body._visible = vis;
}
function setXY(x, y) {
body._x = x;
body._y = y;
}
function createMenuBg(lib_id, depth, h) {
var _local2;
var _local3 = new Array();
var _local4;
var _local5;
menu_bg = body.createEmptyMovieClip("menu_bg", depth);
_local3[0] = menu_bg.attachMovie(lib_id + "top", "top", 0);
menu_bg.attachMovie(lib_id + "bottom", "bottom", 100);
_local4 = menu_bg.top._height + menu_bg.bottom._height;
_local2 = 1;
while (_local4 < h) {
_local3[_local2] = menu_bg.attachMovie(lib_id + "middle", "middle" + _local2, _local2);
_local4 = _local4 + _local3[_local2]._height;
_local2++;
}
_local3[_local2] = menu_bg.bottom;
_local5 = 0;
_local2 = 0;
while (_local2 < _local3.length) {
_local3[_local2]._y = _local5;
_local5 = _local5 + _local3[_local2]._height;
_local2++;
}
}
function createSquare(depth) {
square_mc = body.createEmptyMovieClip("square_mc", depth);
square_mc.beginFill(0, 100);
square_mc.moveTo(0, 0);
square_mc.lineTo(520, 0);
square_mc.lineTo(520, 390);
square_mc.lineTo(0, 390);
square_mc.lineTo(0, 0);
square_mc.endFill();
square_mc.onPress = function () {
};
square_mc.tabEnabled = false;
square_mc.useHandCursor = false;
square_mc._x = 520;
square_mc.mov = new GameClasses.FreeMove();
}
function enableAllButtons() {
for (var _local2 in buttons) {
if (buttons[_local2] instanceof GameClasses.MenuButton) {
buttons[_local2].enable();
}
}
}
function disableAllButtons() {
for (var _local2 in buttons) {
if (buttons[_local2] instanceof GameClasses.MenuButton) {
buttons[_local2].disable();
}
}
}
function show() {
if (mcRoot.level.isLocked()) {
return(undefined);
}
mcRoot.level.lockLevel();
square_mc._x = -body._x;
square_mc._y = -body._y;
if (mcRoot.level.timer) {
mcRoot.level.timer.pause();
}
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
GameClasses.FreeMove.pause();
this.enableAllButtons();
});
body.mov.newInitMove(body, T, 1, null, null, null, null, null, new GameClasses.Spline(0, 100));
square_mc.mov.newInitMove(square_mc, T, 1, null, null, null, null, null, new GameClasses.Spline(0, 50));
}
function hide() {
disableAllButtons();
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
if (this.unlock_on_hide) {
this.mcRoot.level.unlockLevel();
if (this.mcRoot.level.timer) {
this.mcRoot.level.timer.play();
}
} else {
this.unlock_on_hide = true;
}
this.square_mc._x = 520;
this.body.mov.endAct = null;
this.setVisible(false);
});
GameClasses.FreeMove.play();
body.mov.newInitMove(body, T, 0, null, null, null, null, null, new GameClasses.Spline(100, 0));
square_mc.mov.newInitMove(square_mc, T, 1, null, null, null, null, null, new GameClasses.Spline(50, 0));
}
function startNewGame() {
unlock_on_hide = false;
hide();
var _local2 = GameClasses.NugLevel.getSingleton();
_local2.showNewGame();
}
function hintsOff() {
GameClasses.Vars.enable_hints = false;
buttons.button_hints.clearActions();
buttons.button_hints.setText(mcRoot.dialogs.MenuTextHintsOff.text);
buttons.button_hints.addAction(GameClasses.GFunctions.create(this, hintsOn));
}
function hintsOn() {
if (GameClasses.Vars.current_level >= 1) {
GameClasses.Match3Level.deactivateFirstHelp();
}
if (GameClasses.Vars.current_level >= 3) {
GameClasses.ISpyLevel.deactivateFirstHelp();
}
if (GameClasses.Vars.current_level >= 6) {
GameClasses.QuestLevel.deactivateFirstHelp();
}
GameClasses.Vars.enable_hints = true;
buttons.button_hints.clearActions();
buttons.button_hints.setText(mcRoot.dialogs.MenuTextHintsOn.text);
buttons.button_hints.addAction(GameClasses.GFunctions.create(this, hintsOff));
}
function download() {
general.GameSDK.Game_DeluxeDownload();
if (general.GameSDK.autoContinue()) {
getURL (general.GameSDK.downloadableURL, "_blank");
}
}
function restartLevel() {
mcRoot.level.restartLevel();
if ((GameClasses.Vars.current_level != 0) && (mcRoot.level != mcRoot.map_level)) {
unlock_on_hide = false;
}
hide();
}
function soundOn() {
GameClasses.MySounds.getMySounds().setOn(true);
mcRoot.startThemeSound();
updateSoundButton(true);
}
function updateSoundButton(val) {
if (val) {
buttons.sound_button.clearActions();
buttons.sound_button.setText(mcRoot.dialogs.MenuTextSoundOn.text);
buttons.sound_button.addAction(GameClasses.GFunctions.create(this, soundOff));
} else {
buttons.sound_button.clearActions();
buttons.sound_button.setText(mcRoot.dialogs.MenuTextSoundOff.text);
buttons.sound_button.addAction(GameClasses.GFunctions.create(this, soundOn));
}
}
function soundOff() {
GameClasses.MySounds.getMySounds().setOn(false);
updateSoundButton(false);
}
function setDefault() {
buttons.sound_button.clearActions();
buttons.sound_button.setText(mcRoot.dialogs.MenuTextSoundOn.text);
buttons.sound_button.addAction(GameClasses.GFunctions.create(this, soundOff));
buttons.button_hints.clearActions();
buttons.button_hints.setText(mcRoot.dialogs.MenuTextHintsOn.text);
buttons.button_hints.addAction(GameClasses.GFunctions.create(this, hintsOff));
}
static var menu = null;
var menu_bg = null;
var T = 400;
var unlock_on_hide = true;
}
Symbol 1699 MovieClip [__Packages.GameClasses.MenuButton] Frame 0
class GameClasses.MenuButton
{
var mcRoot, body, undercover, btn;
function MenuButton (root_mc, lib_name, depth, tex, w, x, y, dx, dy) {
mcRoot = root_mc;
body = mcRoot.createEmptyMovieClip("menu_btn_body" + depth, depth);
if (((undercover = body.attachMovie(lib_name + "under", "undercover", 1))) != undefined) {
} else if (((undercover = body.attachMovie(lib_name + "_under", "undercover", 1))) != undefined) {
} else if (((undercover = body.attachMovie(lib_name + "Under", "undercover", 1))) != undefined) {
} else if (((undercover = body.attachMovie(lib_name + "_Under", "undercover", 1))) != undefined) {
} else {
return;
}
btn = new GameClasses.MyButton2(body, lib_name, 2, tex, dx, dy);
if (w == 0) {
body._x = x;
body._y = y;
} else {
body._x = (w - body._width) / 2;
body._y = y;
}
}
function destroy() {
delete mcRoot;
btn.destroy();
delete btn;
undercover.removeMovieClip();
delete undercover;
body.removeMovieClip();
delete body;
}
function setX(x) {
body._x = x;
}
function setY(y) {
body._y = y;
}
function getX() {
return(body._x);
}
function getY() {
return(body._y);
}
function setWidth(w) {
body._width = w;
}
function setHeight(h) {
body._height = h;
}
function getWidth() {
return(body._width);
}
function getHeight() {
return(body._height);
}
function getBody() {
return(body);
}
function setText(str) {
btn.setText(str);
}
function setScale(scale) {
body._xscale = scale;
body._yscale = scale;
}
function setMainOnRelease() {
btn.setMainOnRelease();
}
function setMainOnPress() {
btn.setMainOnPress();
}
function addAction(act) {
btn.addAction(act);
}
function clearActions() {
btn.clearActions();
}
function enable() {
btn.enable();
}
function disable() {
btn.disable();
}
}
Symbol 1700 MovieClip [__Packages.GameClasses.MyButton2] Frame 0
class GameClasses.MyButton2
{
var mcRoot, snd, body, normal, active, pressed, button_text, txt, txt_active, txt_pressed, actions;
function MyButton2 (root_mc, lib_name, depth, tex, x, y) {
var _local5;
var _local4;
mcRoot = root_mc;
snd = GameClasses.MySounds.getMySounds();
body = mcRoot.createEmptyMovieClip("btn_body" + depth, depth);
if (((normal = body.attachMovie(lib_name + "Normal", "normal", 3))) != undefined) {
active = body.attachMovie(lib_name + "Active", "active", 2);
pressed = body.attachMovie(lib_name + "Pressed", "pressed", 1);
} else if (((normal = body.attachMovie(lib_name + "normal", "normal", 3))) != undefined) {
active = body.attachMovie(lib_name + "active", "active", 2);
pressed = body.attachMovie(lib_name + "pressed", "pressed", 1);
} else if (((normal = body.attachMovie(lib_name + "_Normal", "normal", 3))) != undefined) {
active = body.attachMovie(lib_name + "_Active", "active", 2);
pressed = body.attachMovie(lib_name + "_Pressed", "pressed", 1);
} else if (((normal = body.attachMovie(lib_name + "_normal", "normal", 3))) != undefined) {
active = body.attachMovie(lib_name + "_active", "active", 2);
pressed = body.attachMovie(lib_name + "_pressed", "pressed", 1);
} else {
return;
}
body.hitArea = normal;
body._x = x;
body._y = y;
if ((tex != undefined) && (tex != null)) {
button_text = tex;
if (isNaN(button_text.w) || (button_text.w > body._width)) {
button_text.w = body._width;
}
if (isNaN(button_text.h) || (button_text.h > body._height)) {
button_text.h = body._height;
}
_local5 = (body._width - button_text.w) / 2;
_local4 = (body._height - button_text.h) / 2;
txt = new GameClasses.TextClass(normal, 4, button_text, 0, 0);
txt_active = new GameClasses.TextClass(active, 4, button_text, 0, 0);
txt_active.makeDarker(color_text_shift);
txt_pressed = new GameClasses.TextClass(pressed, 4, button_text, coord_text_shift, coord_text_shift);
txt_pressed.makeDarker(-color_text_shift);
}
makeNormal();
body.onRollOver = GameClasses.GFunctions.create(this, onRollOverAction);
body.onRollOut = GameClasses.GFunctions.create(this, onRollOutAction);
body.onDragOver = GameClasses.GFunctions.create(this, onRollOverAction);
body.onDragOut = GameClasses.GFunctions.create(this, onRollOutAction);
body.onPress = GameClasses.GFunctions.create(this, onPressAction);
body.onRelease = GameClasses.GFunctions.create(this, onReleaseAction);
body.onReleaseOutside = GameClasses.GFunctions.create(this, onReleaseOutsideAction);
body.useHandCursor = false;
body.tabEnabled = false;
actions = new Array();
}
function destroy() {
delete snd;
delete mcRoot;
delete button_text;
normal.removeMovieClip();
delete normal;
active.removeMovieClip();
delete active;
pressed.removeMovieClip();
delete pressed;
delete body.onRollOver;
delete body.onRollOut;
delete body.onDragOver;
delete body.onDragOut;
delete body.onPress;
delete body.onRelease;
delete body.onReleaseOutside;
body.removeMovieClip();
delete body;
txt.destroy();
delete txt;
txt_active.destroy();
delete txt_active;
txt_pressed.destroy();
delete txt_pressed;
var _local2 = 0;
while (_local2 < actions.length) {
delete actions[_local2];
_local2++;
}
delete actions;
}
function setX(x) {
body._x = x;
}
function setY(y) {
body._y = y;
}
function getX() {
return(body._x);
}
function getY() {
return(body._y);
}
function setWidth(w) {
body._width = w;
}
function setHeight(h) {
body._height = h;
}
function getWidth() {
return(body._width);
}
function getHeight() {
return(body._height);
}
function getBody() {
return(body);
}
function setText(str) {
txt.setText(str);
txt_active.setText(str);
txt_pressed.setText(str);
}
function setScale(scale) {
body._xscale = scale;
body._yscale = scale;
}
function setMainOnRelease() {
body.onPress = GameClasses.GFunctions.create(this, onPressAction);
body.onRelease = GameClasses.GFunctions.create(this, onReleaseAction);
}
function setMainOnPress() {
body.onRelease = GameClasses.GFunctions.create(this, onPressAction);
body.onPress = GameClasses.GFunctions.create(this, onReleaseAction);
}
function addAction(act) {
actions.push(act);
}
function clearActions() {
actions = new Array();
}
function makeNormal() {
normal._visible = true;
active._visible = false;
pressed._visible = false;
}
function makeActive() {
normal._visible = false;
active._visible = true;
pressed._visible = false;
}
function makePressed() {
normal._visible = false;
active._visible = false;
pressed._visible = true;
}
function onRollOverAction() {
if (enabled && (buttons_enabed)) {
makeActive();
snd.startSound(sound_onRollOver);
}
}
function onRollOutAction() {
if (enabled && (buttons_enabed)) {
makeNormal();
}
}
function onPressAction() {
if (enabled && (buttons_enabed)) {
makePressed();
}
}
function onReleaseAction() {
if (enabled && (buttons_enabed)) {
snd.startSound(sound_onPress);
makeNormal();
var _local2 = actions.length - 1;
while (_local2 >= 0) {
actions[_local2]();
_local2--;
}
}
}
function onReleaseOutsideAction() {
if (enabled && (buttons_enabed)) {
makeNormal();
}
}
function enable() {
normal.enabled = true;
active.enabled = true;
pressed.enabled = true;
body.enabled = true;
enabled = true;
}
function disable() {
enabled = false;
}
static function setOn(val) {
buttons_enabed = val;
}
static var buttons_enabed = true;
var enabled = true;
var color_text_shift = 50;
var coord_text_shift = -1;
var sound_onPress = "ButtonClick";
var sound_onRollOver = "MouseOverButton";
}
Symbol 1701 MovieClip [__Packages.GameClasses.TextClass] Frame 0
class GameClasses.TextClass
{
var log, mcRoot, text_obj, text_str, body, filters, body_tf, shadow_tf, body_fmt, shadow_fmt, gradient_mc;
function TextClass (root_mc, depth, tex, x, y) {
log = logger.Logger.getLog();
log.info("call constructor TextClass");
mcRoot = root_mc;
text_obj = tex;
text_str = text_obj.text;
body = mcRoot.createEmptyMovieClip("text_field_" + depth, depth);
body._x = x;
body._y = y;
body.mov = new GameClasses.FreeMove();
bmp_font = fonts_util.Fonts.getFont(tex.font);
filters = new Array();
if (bmp_font != null) {
initBitmapText();
if (text_obj.blur != 0) {
makeBlur(text_obj.blur);
}
} else if (text_obj.filters.length == 0) {
initText();
if (text_obj.gradient) {
makeGradientFill();
}
if (text_obj.contour) {
initContour();
} else {
initShadow();
}
if (text_obj.blur != 0) {
makeBlur(text_obj.blur);
}
} else {
initText();
initFilters();
}
body.filters = filters;
}
static function createTextObject(text, font, x, y, h, w, color, leading, size, align, bold, shadow_color, shadow_opacity, sx, sy) {
var _local1 = new Object();
_local1.text = text;
_local1.font = font;
_local1.x = x;
_local1.y = y;
_local1.h = h;
_local1.w = w;
_local1.color = color;
_local1.leading = leading;
_local1.size = size;
_local1.align = align;
_local1.bold = bold;
_local1.shadow_color = shadow_color;
_local1.shadow_opacity = shadow_opacity;
_local1.sx = sx;
_local1.sy = sy;
return(_local1);
}
function destroy() {
delete log;
delete text_obj;
delete mcRoot;
body_tf.removeTextField();
shadow_tf.removeTextField();
delete body_tf;
delete shadow_tf;
delete body_fmt;
delete shadow_fmt;
body_bmp_mc.removeMovieClip();
delete body_bmp_mc;
body.mov.destroy();
delete body.mov;
delete filters;
delete body.filters;
body.removeMovieClip();
delete body;
delete bmp_font;
}
function setText(text_str) {
log.info("call function setText from TextClass");
log.info(" text_str=" + text_str);
this.text_str = text_str;
if (body_bmp_mc == null) {
body_tf.text = text_str;
shadow_tf.text = text_str;
body_tf.setTextFormat(body_fmt);
shadow_tf.setTextFormat(shadow_fmt);
} else {
body_bmp_mc.removeMovieClip();
bmp_font.setTextFormat(text_obj);
body_bmp_mc = bmp_font.getBitmapText(body, text_str, "text", 2, text_obj.size, text_obj.w);
body_bmp_mc._x = text_obj.x;
body_bmp_mc._y = text_obj.y;
}
}
function getWidth() {
if (body_bmp_mc == null) {
return(body_tf._width);
}
return(body_bmp_mc._width);
}
function getHeight() {
if (body_bmp_mc == null) {
return(body_tf._height);
}
return(body_bmp_mc._height);
}
function getX() {
if (body_bmp_mc == null) {
return(body_tf._x);
}
return(body_bmp_mc._x);
}
function getY() {
if (body_bmp_mc == null) {
return(body_tf._y);
}
return(body_bmp_mc._y);
}
function setX(val) {
body._x = val;
}
function setY(val) {
body._y = val;
}
function getText() {
return(text_str);
}
function hide() {
body._visible = false;
}
function show() {
body._visible = true;
}
function getBody() {
return(body);
}
function initMove(act, T, delay, x1, y1, xscale1, yscale1, rotation1, alpha1, color1) {
body.mov.endAct = act;
body.mov.newInitMove(body, T, delay, x1, y1, xscale1, yscale1, rotation1, alpha1, color1);
}
function setVisible(vis) {
body._visible = vis;
}
function makeDarker(val) {
var _local3 = new Color(body);
_local3.setTransform({rb:val, gb:val, bb:val});
}
function setColorOffset(r, g, b) {
var _local2 = new Color(body);
_local2.setTransform({rb:r, gb:g, bb:b});
}
function setOpacity(val) {
body._alpha = val;
}
function setHotSpot(x, y) {
body_tf._x = -x;
body_tf._y = -y;
shadow_tf._x = body_tf._x + text_obj.sx;
shadow_tf._y = body_tf._y + text_obj.sy;
gradient_mc._x = body_tf._x;
gradient_mc._y = body_tf._y;
}
function initText() {
log.info("call function initText from TextClass");
body_tf = body.createTextField("txt", 2, text_obj.x, text_obj.y, text_obj.w, 0);
body_tf.autoSize = "center";
body_tf.wordWrap = true;
body_tf.multiline = true;
body_tf.selectable = false;
body_tf.embedFonts = true;
body_tf.text = text_obj.text;
body_fmt = body_tf.getTextFormat();
if ((text_obj.font != "undefined") && (text_obj.font != null)) {
log.debug("font get");
body_fmt.font = text_obj.font;
} else {
log.debug("font not get");
body_fmt.font = "GameFont";
}
body_fmt.size = text_obj.size;
body_fmt.color = text_obj.color;
body_fmt.align = text_obj.align;
body_fmt.bold = text_obj.bold;
body_fmt.leading = text_obj.leading;
body_tf.setTextFormat(body_fmt);
}
function initShadow() {
shadow_tf = body.createTextField("stxt", 1, text_obj.x + text_obj.sx, text_obj.y + text_obj.sy, text_obj.w, 0);
shadow_tf.autoSize = "center";
shadow_tf.wordWrap = true;
shadow_tf.multiline = true;
shadow_tf.selectable = false;
shadow_tf.embedFonts = true;
shadow_tf.text = text_obj.text;
shadow_tf._alpha = text_obj.shadow_opacity;
shadow_fmt = body_tf.getTextFormat();
shadow_fmt.color = text_obj.shadow_color;
shadow_tf.setTextFormat(shadow_fmt);
shadow_tf._xscale = 100 * text_obj.shadow_scale;
shadow_tf._yscale = 100 * text_obj.shadow_scale;
shadow_tf.filters = [new flash.filters.BlurFilter(text_obj.shadow_blur, text_obj.shadow_blur, 1)];
}
function initContour() {
filters.push(new flash.filters.GlowFilter(text_obj.shadow_color, text_obj.shadow_opacity, text_obj.shadow_blur, text_obj.shadow_blur, text_obj.shadow_scale, 1, false, false));
}
function initBitmapText() {
bmp_font.setTextFormat(text_obj);
body_bmp_mc = bmp_font.getBitmapText(body, text_obj.text, "text", 2, text_obj.size, text_obj.w);
body_bmp_mc._x = text_obj.x;
body_bmp_mc._y = text_obj.y;
}
function makeGradientFill() {
gradient_mc = body.createEmptyMovieClip("gradient_mc", 4);
gradient_mc._x = body_tf._x;
gradient_mc._y = body_tf._y;
var _local2 = new flash.geom.Matrix();
_local2.createGradientBox(body_tf._width, body_tf._height, -1.5707963267949);
gradient_mc.beginGradientFill("linear", [text_obj.color, text_obj.color2], [100, 100], [0, 255], _local2);
gradient_mc.moveTo(0, 0);
gradient_mc.lineTo(body_tf._width, 0);
gradient_mc.lineTo(body_tf._width, body_tf._height);
gradient_mc.lineTo(0, body_tf._height);
gradient_mc.lineTo(0, 0);
gradient_mc.endFill();
gradient_mc.setMask(body_tf);
}
function makeBlur(val) {
filters.push(new flash.filters.BlurFilter(val, val, 1));
}
function initFilters() {
var _local3 = 0;
while (_local3 < text_obj.filters.length) {
var _local2 = text_obj.filters[_local3];
switch (_local2.name) {
case "bevel" :
filters.push(new flash.filters.BevelFilter(_local2.distance, _local2.angle, _local2.highlightColor, _local2.highlightAlpha, _local2.shadowColor, _local2.shadowAlpha, _local2.blurX, _local2.blurY, _local2.strength, _local2.quality, _local2.type, _local2.knockout));
break;
case "glow" :
filters.push(new flash.filters.GlowFilter(_local2.color, _local2.alpha, _local2.blurX, _local2.blurY, _local2.strength, _local2.quality, _local2.inner, _local2.knockout));
break;
case "shadow" :
filters.push(new flash.filters.DropShadowFilter(_local2.distance, _local2.angle, _local2.color, _local2.alpha, _local2.blurX, _local2.blurY, _local2.strength, _local2.quality, _local2.inner, _local2.knockout, _local2.hideObject));
break;
}
_local3++;
}
}
var bmp_font = null;
var body_bmp_mc = null;
}
Symbol 1702 MovieClip [__Packages.fonts_util.MyFont] Frame 0
class fonts_util.MyFont
{
var font, big_bmp, bmps;
function MyFont (font_fnt) {
font = font_fnt;
big_bmp = flash.display.BitmapData.loadBitmap(font.id + ".png");
bmps = new Array();
var _local7;
var _local5 = new flash.geom.Point(0, 0);
var _local3 = new flash.geom.Rectangle(0, 0, 1, 1);
var _local2 = 0;
while (_local2 < font.length) {
_local7 = "cod" + font[_local2].char;
var _local8 = (2 * font.xOffset) + font[_local2].B;
var _local9 = ((2 * font.yOffset) + font.ascent) + font.descent;
var _local4 = font.ascent;
bmps[_local2] = new flash.display.BitmapData(_local8, _local9, true, 0);
_local5.x = 0;
_local5.y = 0;
_local3.x = font[_local2].x;
_local3.y = font[_local2].y;
_local3.width = _local8;
_local3.height = _local9;
if (_local3.y < _local4) {
var _local6 = _local4 - _local3.y;
_local3.y = 0;
_local3.height = _local9 - _local6;
_local5.y = _local6;
} else {
_local3.y = _local3.y - _local4;
}
bmps[_local2].copyPixels(big_bmp, _local3, _local5);
bmps[_local7] = bmps[_local2];
_local2++;
}
if (font.cod32 == undefined) {
_local7 = "cod32";
var _local8 = bmps.cod97.width;
var _local9 = ((2 * font.yOffset) + font.ascent) + font.descent;
bmps[font.length] = new flash.display.BitmapData(_local8, _local9, true, 0);
bmps[_local7] = bmps[font.length];
font[_local7] = new Object();
font[_local7].A = 0;
font[_local7].B = _local8;
font[_local7].C = 0;
}
}
function getBitmapText(root_mc, s, str_id, depth, st, wstr) {
var _local15 = root_mc.createEmptyMovieClip(str_id, depth);
var _local17 = st / font.ascent;
var _local10 = wstr / _local17;
var _local16 = leading / _local17;
var _local11 = letter_space / _local17;
var _local7 = 0;
var _local13 = 0;
var _local12 = 0;
var _local9;
var _local3 = 0;
var _local2 = "cod";
var _local14 = "cod";
var _local8 = "cod";
var _local6;
var _local5;
while (_local3 < s.length) {
_local5 = _local15.createEmptyMovieClip("line" + _local12, _local12++);
_local9 = 0;
while (_local3 < s.length) {
if (s.charAt(_local3) == "\\") {
_local3++;
if (s.charAt(_local3) == "n") {
_local3++;
break;
}
}
_local14 = _local2;
_local2 = "cod" + s.charCodeAt(_local3);
if ((((_local7 + font[_local2].B) - font[_local2].C) + _local11) > _local10) {
if (_local2 == "cod32") {
_local3++;
break;
}
_local2 = "cod45";
_local6.attachBitmap(bmps[_local2], 1);
_local3--;
break;
}
_local6 = _local5.createEmptyMovieClip("letter" + _local9, _local9++);
_local6.attachBitmap(bmps[_local2], 1, "never", false);
_local6._x = _local7 + font[_local2].A;
_local7 = _local7 + ((_local6._width + font[_local2].C) + _local11);
_local3++;
if ((_local3 < s.length) && (font.pairs[_local2])) {
_local8 = "cod" + s.charCodeAt(_local3);
if (font.pairs[_local2][_local8]) {
_local7 = _local7 + font.pairs[_local2][_local8];
}
}
}
switch (align) {
case "right" :
_local5._x = _local10 - _local5._width;
break;
case "center" :
_local5._x = (_local10 - _local5._width) / 2;
break;
case "left" :
_local5._x = 0;
break;
default :
_local5._x = 0;
}
_local7 = 0;
_local5._y = _local13;
_local13 = _local13 + (_local5._height + _local16);
}
_local15._width = _local15._width * _local17;
_local15._height = _local15._height * _local17;
return(_local15);
}
function setLetterSpace(val) {
letter_space = val;
}
function setTextFormat(obj) {
align = obj.align;
letter_space = obj.interspace;
leading = obj.leading;
}
function getObject() {
return(font);
}
var leading = 0;
var letter_space = 0;
var align = "left";
}
Symbol 1703 MovieClip [__Packages.fonts_util.Fonts] Frame 0
class fonts_util.Fonts
{
function Fonts () {
}
static function addFont(font) {
if (fonts_obj[font.id] == undefined) {
fonts_obj[font.id] = new fonts_util.MyFont(font);
}
}
static function getFont(font_id) {
if (fonts_obj[font_id] != undefined) {
return(fonts_obj[font_id]);
}
return(null);
}
static function copyFont(fnt_src, fnt_id) {
if (fonts_obj[fnt_id] == undefined) {
fonts_obj[fnt_id] = new fonts_util.MyFont(fnt_src.getObject());
}
}
static var fonts_obj = new Object();
}
Symbol 1704 MovieClip [__Packages.GameClasses.NugLevel] Frame 0
class GameClasses.NugLevel
{
var mcRoot, object, body, buttons, texts, url_str, square_mc;
function NugLevel (obj, mc_root, depth) {
mcRoot = mc_root;
object = obj;
body = mcRoot.createEmptyMovieClip("nug" + depth, depth);
body.mov = new GameClasses.FreeMove();
setVisible(false);
buttons = new Object();
texts = new Object();
initView(body);
disableAllButtons();
}
static function getSingleton(obj, mc_root, depth) {
if (singleton == null) {
if (obj == undefined) {
return(null);
}
if (mc_root == undefined) {
return(null);
}
if (depth == undefined) {
return(null);
}
singleton = new GameClasses.NugLevel(obj, mc_root, depth);
}
return(singleton);
}
function setVisible(vis) {
body._visible = vis;
}
function initView(body_mc) {
var _local10 = 0;
createSquare(body_mc, 2);
var _local4 = 3;
var _local7 = 0;
while (_local7 < object.pictures.length) {
var _local3 = object.pictures[_local7];
if (_local3.type == "simple_picture") {
body_mc.attachMovie(_local3.id, "pict" + _local4, _local4);
body_mc._x = _local3.x;
body_mc._y = _local3.y;
} else if (_local3.type == "menu_button") {
var _local6 = new GameClasses.MenuButton(body_mc, _local3.lib_name, _local4, _root.dialogs[_local3.text.id], _local10, _local3.x, _local3.y, _local3.dx, _local3.dy);
_local6.addAction(GameClasses.GFunctions.create(this, this[_local3.action]));
if (!_local3.enabled) {
_local6.disable();
}
if (_local3.action == "download") {
url_str = _local3.src;
}
buttons[_local3.id] = _local6;
} else if (_local3.type == "text") {
var _local9;
var _local8 = _root.dialogs[_local3.text.id];
_local9 = new GameClasses.TextClass(body_mc, _local4, _local8, _local3.x, _local3.y);
texts[_local3.id] = _local9;
}
_local7++;
_local4++;
}
}
function createSquare(body_mc, depth) {
square_mc = body_mc.createEmptyMovieClip("square_mc", depth);
square_mc.beginFill(16711680, 0);
square_mc.moveTo(0, 0);
square_mc.lineTo(520, 0);
square_mc.lineTo(520, 390);
square_mc.lineTo(0, 390);
square_mc.lineTo(0, 0);
square_mc.endFill();
square_mc.onPress = function () {
};
square_mc.useHandCursor = false;
square_mc.tabEnabled = false;
square_mc._x = 520;
}
function enableAllButtons() {
for (var _local2 in buttons) {
if (buttons[_local2] instanceof GameClasses.MenuButton) {
buttons[_local2].enable();
}
}
}
function disableAllButtons() {
for (var _local2 in buttons) {
if (buttons[_local2] instanceof GameClasses.MenuButton) {
buttons[_local2].disable();
}
}
}
function download() {
general.GameSDK.Game_DeluxeDownload();
if (general.GameSDK.autoContinue()) {
getURL (general.GameSDK.downloadableURL, "_blank");
}
}
function showInterlevel(fun) {
var _local2 = GameClasses.MenuButton(buttons.button_hide);
_local2.setText(mcRoot.dialogs.NugTextButtonInterlevel.text);
_local2.clearActions();
_local2.addAction(GameClasses.GFunctions.create(this, hide, fun));
texts.text1.setText(mcRoot.dialogs.NugText1.text);
texts.text2.setText(mcRoot.dialogs.NugText0.text);
texts.text3.setText("");
show();
}
function showInLevel() {
var _local2 = GameClasses.MenuButton(buttons.button_hide);
_local2.setText(mcRoot.dialogs.NugTextButtonInterlevel.text);
_local2.clearActions();
_local2.addAction(GameClasses.GFunctions.create(this, hide));
texts.text1.setText(mcRoot.dialogs.NugText1.text);
texts.text2.setText(mcRoot.dialogs.NugText0.text);
texts.text3.setText("");
show();
}
function showGameOver() {
initNewGameNug();
texts.text1.setText(mcRoot.dialogs.NugTextGameOver.text);
show();
}
function showNewGame() {
initNewGameNug();
texts.text1.setText(mcRoot.dialogs.NugTextNewGame.text);
show();
}
function showWin() {
initNewGameNug();
texts.text1.setText(mcRoot.dialogs.NugTextWin.text);
show();
}
function initNewGameNug() {
GameClasses.Vars.do_break_point = false;
_root.pauseGlobalGameTime();
general.GameSDK.Game_ScoreSubmit(GameClasses.GameCounter.getTotalScore(), GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000));
var _local3 = GameClasses.MenuButton(buttons.button_hide);
_local3.setText(mcRoot.dialogs.NugTextButtonGameOver.text);
_local3.clearActions();
_local3.addAction(GameClasses.GFunctions.create(this, hide, GameClasses.GFunctions.create(mcRoot, mcRoot.unloadGame)));
texts.text2.setText("");
texts.text3.setText((_root.dialogs.NugText3.text + newline) + GameClasses.GameCounter.getTotalScore());
unlock_on_hide = false;
}
function show(fun) {
mcRoot.level.lockLevel();
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
GameClasses.FreeMove.pause();
this.enableAllButtons();
fun();
});
square_mc._x = -body._x;
square_mc._y = -body._y;
body.mov.newInitMove(body, T, 1, null, null, null, null, null, new GameClasses.Spline(0, 100));
}
function hide(fun) {
GameClasses.FreeMove.play();
disableAllButtons();
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
if (this.unlock_on_hide) {
this.mcRoot.level.unlockLevel();
} else {
this.unlock_on_hide = true;
}
this.square_mc._x = 520;
this.body.mov.endAct = null;
this.setVisible(false);
});
fun();
body.mov.newInitMove(body, T, 0, null, null, null, null, null, new GameClasses.Spline(100, 0));
}
static var singleton = null;
var T = 400;
var endHideAct = null;
var unlock_on_hide = true;
}
Symbol 1705 MovieClip [__Packages.GameClasses.Vars] Frame 0
class GameClasses.Vars
{
function Vars () {
}
static function setDefault() {
game_over = false;
enable_hints = true;
do_break_point = true;
current_level = 0;
global_game_time = 0;
}
static var do_first_prepare_level_action = true;
static var global_game_time = 0;
static var game_over = false;
static var enable_hints = true;
static var do_break_point = true;
static var current_level = 0;
}
Symbol 1706 MovieClip [__Packages.GameClasses.GameCounter] Frame 0
class GameClasses.GameCounter
{
var mcRoot, snd, body, txt, t0, add_val, curr_time, dt;
function GameCounter (mc, id_counter, depth, x, y) {
mcRoot = mc;
curr_counter = counter;
snd = GameClasses.MySounds.getMySounds();
body = mcRoot.createEmptyMovieClip(id_counter, depth);
body._x = x;
body._y = y;
var _local3 = _root.dialogs.TextMatch3Counter;
txt = new GameClasses.TextClass(body, 1, _local3, 0, 0);
txt.setText(String(counter));
}
static function setZero() {
counter = 0;
curr_counter = 0;
}
function getBody() {
return(body);
}
function destroy() {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
snd = null;
mcRoot = null;
txt.destroy();
delete txt;
body.removeMovieClip();
delete body;
}
function clear() {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
body.clear();
body.removeMovieClip();
}
function clearLevelScore() {
counter = counter - levelScore;
}
function getLevelScore() {
return(levelScore);
}
static function getTotalScore() {
return(counter);
}
function add(val, t) {
if (t) {
T = t;
} else {
T = default_Tadd;
}
snd.startSound("ScoreTick");
levelScore = levelScore + val;
if (val == undefined) {
val = 0;
}
counter = counter + val;
if (interval != 0) {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
interval = 0;
}
t0 = getTimer();
add_val = counter - curr_counter;
interval = GameClasses.FreeMove.setInterval(this, "updateCounter", 16);
}
function updateCounter() {
curr_time = getTimer();
dt = (curr_time - t0) / T;
t0 = curr_time;
curr_counter = curr_counter + (add_val * dt);
if (curr_counter < counter) {
txt.setText(String(int(curr_counter)));
} else {
curr_counter = counter;
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
interval = 0;
txt.setText(String(curr_counter));
}
}
static var counter = 0;
static var curr_counter = 0;
var interval = 0;
var green = 40;
var levelScore = 0;
var default_Tadd = 1200;
var T = 1200;
}
Symbol 1707 MovieClip [__Packages.GameClasses.Match3Level] Frame 0
class GameClasses.Match3Level extends GameClasses.Level
{
var cloud, sun_bonus, bbf, zlbf, tbf, sbf, panel, timer, substrate, theField, CPS_LEVEL_MC, stela_help, hhw, depth_for_hint, depth_for_texts, test_functions, createEmptyMovieClip, curr_obj, depth, destroyable_arr, attachMovie, game_time, mcs, count_artefacts, _parent, big_arts, mcRoot, TheField, _alpha, delay_time, initObjects, interval_for, text1, text2, T2, T1, startShowLevel, is_locked, snd, firstTextCountry, firstTextLevel, firstTextGo, T3, time_start_level, mouse_list, match3_Shade, match3_Left, match3_Left8, art_cells, artefacts_arr, lbf, counter, match3_Top, button_menu, match3_Bottom, match3_Right, button_eye, log, textCompleted1, textCompleted2, T_text_completed, is_nug, loadThis;
function Match3Level () {
super();
}
static function deactivateFirstHelp() {
was_help[0] = true;
was_help[1] = true;
}
static function initDefaultNumbBonuses() {
numb_b = GameClasses.Consts.numb_b;
numb_t = GameClasses.Consts.numb_t;
numb_s = GameClasses.Consts.numb_s;
numb_zl = GameClasses.Consts.numb_zl;
}
static function initDefaultStaticVars() {
was_help = [false, false, false, false, false, false, false, false, false, false, false, false, false];
help_interval = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
time_to_help = [0, 8000, 1000, 1100, 1200, 0, 0, 0, 0, 0, 0, 1300, 1400];
}
function destroy() {
var _local3 = 0;
while (_local3 < help_interval.length) {
GameClasses.FreeMove.clearInterval(help_interval[_local3]);
help_interval[_local3] = 0;
_local3++;
}
cloud.destroy();
cloud = null;
sun_bonus.destroy();
sun_bonus = null;
bbf.destroy();
bbf = null;
zlbf.destroy();
zlbf = null;
tbf.destroy();
tbf = null;
sbf.destroy();
sbf = null;
panel.destroy();
panel = null;
timer.destroy();
timer = null;
substrate.destroy();
substrate = null;
theField.destroy();
theField.removeMovieClip();
theField = null;
CPS_LEVEL_MC.removeMovieClip();
CPS_LEVEL_MC = null;
stela_help.removeMovieClip();
stela_help = null;
for (var _local4 in hhw) {
if (hhw[_local4] instanceof GameClasses.HintWindow) {
hhw[_local4].destroy();
delete hhw[_local4];
}
}
delete hhw;
super.destroy();
}
function initDepths() {
super.initDepths();
depth_for_hint = 100000 /* 0x0186A0 */;
depth_for_texts = 26000;
depth_for_substrate = 5000;
depth_for_chips_ps = 9000;
depth_for_chips = 11000;
depth_for_a = 13000;
depth_for_poa = 14000;
depth_for_bombs = 18000;
depth_for_bonuses = 15000;
depth_for_fly_chips = 25000;
depth_for_fly_chips0 = 25000;
depth_for_fly_a = 30000;
depth_for_fly_poa = 35000;
depth_for_bonus_mc = 40000;
depth_for_bonus_ps = 41000;
depth_for_cps = 60000;
}
function initArrays() {
super.initArrays();
hhw = new Array();
test_functions.push(GameClasses.GFunctions.create(this, testOnSubstrate));
test_functions.push(GameClasses.GFunctions.create(this, testOnTheField));
test_functions.push(GameClasses.GFunctions.create(this, testOnMatch3BigArt));
test_functions.push(GameClasses.GFunctions.create(this, testOnTimer));
test_functions.push(GameClasses.GFunctions.create(this, testOnSunBonus));
test_functions.push(GameClasses.GFunctions.create(this, testOnBombBonusField));
test_functions.push(GameClasses.GFunctions.create(this, testOnZeusLightningBonusField));
test_functions.push(GameClasses.GFunctions.create(this, testOnTimeBonusField));
test_functions.push(GameClasses.GFunctions.create(this, testOnSwapBonusField));
}
function beginLoadAct() {
CPS_LEVEL_MC = createEmptyMovieClip("CPS_LEVEL_MC", depth_for_cps);
}
function testOnTimeBonusField() {
if (curr_obj.type == "time_bonus_field") {
tbf = new GameClasses.TimeBonusField();
tbf.initTimeBonusField(this, curr_obj.x, curr_obj.y);
return(true);
}
return(false);
}
function testOnSwapBonusField() {
if (curr_obj.type == "swap_bonus_field") {
sbf = new GameClasses.SwapBonusField();
sbf.initSwapBonusField(this, curr_obj.x, curr_obj.y);
return(true);
}
return(false);
}
function testOnZeusLightningBonusField() {
if (curr_obj.type == "zl_bonus_field") {
zlbf = new GameClasses.ZeusLightningBonusField();
zlbf.initZeusLightningBonusField(this, curr_obj.x, curr_obj.y);
return(true);
}
return(false);
}
function testOnBombBonusField() {
if (curr_obj.type == "bomb_bonus_field") {
bbf = new GameClasses.BombBonusField();
bbf.initBombBonusField(this, curr_obj.x, curr_obj.y);
return(true);
}
return(false);
}
function testOnSunBonus() {
if (curr_obj.type == "sun_bonus") {
sun_bonus = new GameClasses.SunBonus(this, curr_obj.id, depth, curr_obj.x, curr_obj.y);
destroyable_arr.push(sun_bonus);
return(true);
}
return(false);
}
function testOnTimer() {
if (curr_obj.type == "timer") {
timer = GameClasses.MyTime(attachMovie("MyTime", curr_obj.id, depth));
timer.initTimer(curr_obj.id, curr_obj.x, curr_obj.y, game_time);
mcs.push(timer);
return(true);
}
return(false);
}
function testOnMatch3BigArt() {
if (curr_obj.type == "match3_big_art") {
count_artefacts++;
attachMovie("BigArtefact", curr_obj.id, depth);
this[curr_obj.id].useHandCursor = false;
this[curr_obj.id].initMatch3BigArt(_parent.artefacts[curr_obj.id], curr_obj);
mcs.push(this[curr_obj.id]);
big_arts.push(this[curr_obj.id]);
return(true);
}
return(false);
}
function testOnCloud() {
if (curr_obj.type == "cloud") {
cloud = new GameClasses.Cloud(curr_obj.id + ".png");
cloud.initCloud(this, curr_obj.id, depth, curr_obj.x, curr_obj.y, 100000);
mcs.push(this[curr_obj.id]);
if (!this[curr_obj.id]) {
throw new Error(("Clip " + curr_obj.id) + " not created");
}
this[curr_obj.id].useHandCursor = false;
return(true);
}
return(false);
}
function testOnSubstrate() {
if (curr_obj.type == "substrate") {
substrate = new GameClasses.Substrate(this, curr_obj);
this[curr_obj.id].useHandCursor = false;
destroyable_arr.push(substrate);
return(true);
}
return(false);
}
function testOnTheField() {
if (curr_obj.type == "field") {
theField = attachMovie("TheField", "TheField", depth);
game_time = 1000 * mcRoot.fields[curr_obj.id].time;
TheField.initField(mcRoot.fields[curr_obj.id], curr_obj.name, curr_obj.id_art);
TheField.useHandCursor = false;
destroyable_arr.push(theField);
return(true);
}
return(false);
}
function load(lev) {
_alpha = 0;
if (delay_time != 0) {
GameClasses.FreeMove.makeDelay(delay_time, GameClasses.GFunctions.create(this, load, lev));
delay_time = 0;
return(undefined);
}
initDepths();
initArrays();
initObjects();
super.load(lev);
GameClasses.FreeMove.clearInterval(interval_for);
interval_for = 0;
if (GameClasses.Vars.enable_hints) {
initHelpSystem();
}
text1.setY(5);
text2.setY(5);
initPanel();
panel.setT(10);
panel.actForHide = null;
hidePanel();
panel.setT((T1 + T2) * 2);
GameClasses.FreeMove.makeDelay(50, GameClasses.GFunctions.create(this, startShowLevel));
}
function lockLevel() {
GameClasses.HintWindow.disableHW();
is_locked = true;
theField.lockTheField();
}
function unlockLevel() {
GameClasses.HintWindow.enableHW();
is_locked = false;
theField.unlockTheField();
}
function doFirstLevelAction() {
snd.startSound("start_level");
lockLevel();
panel.actForShow = null;
panel.show();
firstTextCountry.initMove(null, T1, 1, null, null, null, null, null, new GameClasses.Line(0, 100));
firstTextLevel.initMove(null, T2, T1, null, null, null, null, null, new GameClasses.Line(0, 100));
GameClasses.FreeMove.makeDelay((T1 + T2) + 1, GameClasses.GFunctions.create(this, doLevelAction2));
}
function doLevelAction2() {
firstTextCountry.initMove(null, T1 + T2, 0, null, null, null, null, null, new GameClasses.Line(100, 100, 0));
firstTextLevel.initMove(null, T2 + T1, 0, null, null, null, null, null, new GameClasses.Line(100, 100, 0));
snd.startSound("Go");
GameClasses.FreeMove.makeDelay((T1 + T2) + 1, GameClasses.GFunctions.create(this, doLevelAction4));
}
function doLevelAction3() {
}
function doLevelAction4() {
firstTextCountry.setVisible(false);
firstTextLevel.setVisible(false);
firstTextGo.initMove(null, T3, 1, null, null, null, null, null, new GameClasses.Spline(0, 80, 100));
GameClasses.FreeMove.makeDelay(T3 + 1, GameClasses.GFunctions.create(this, doLevelAction5));
}
function doLevelAction5() {
firstTextGo.initMove(null, T3, 0, null, null, null, null, null, new GameClasses.Spline(100, 80, 0));
GameClasses.FreeMove.makeDelay(T3 + 1, GameClasses.GFunctions.create(this, doLevelAction6));
}
function doLevelAction6() {
firstTextGo.setVisible(false);
unlockLevel();
timer.startTimer();
timer.pause();
time_start_level = GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000);
callFirstHelp();
}
function initHelpSystem() {
hhw[0] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3FirstHelpHint);
hhw[1] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3SecondHelpHint);
hhw[2] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3BombHelpHint);
hhw[3] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3ZLHelpHint);
hhw[4] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3TimeHelpHint);
hhw[5] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3SunBonusHelpHint);
hhw[5].initHelpHintStrela(325, 300, 325);
hhw[6] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3ReadyBombBonusHelpHint);
hhw[6].initHelpHintStrela(200, 320, 200);
hhw[7] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3ReadyZLBonusHelpHint);
hhw[7].initHelpHintStrela(262, 320, 262);
hhw[8] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3ReadyTimeBonusHelpHint);
hhw[8].initHelpHintStrela(374, 320, 374);
hhw[9] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3ReadySunBonusHelpHint);
hhw[9].initHelpHintStrela(325, 300, 325);
hhw[10] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3ReadySwapBonusHelpHint);
hhw[10].initHelpHintStrela(410, 330, 435);
hhw[11] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3SwapBonusHelpHint);
hhw[12] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3LifeBonusHelpHint);
hhw[13] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3LockHelpHint);
hhw[14] = new GameClasses.HintWindow(this, null, _root.dialogs.Match3OutOfTime);
hhw[14].initHelpHint(320, 280);
hhw[0].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
});
hhw[1].endHideAct = GameClasses.GFunctions.create(this, function () {
this.stela_help.mov.stopMove();
this.stela_help._visible = false;
this.unlockLevel();
this.timer.play();
});
hhw[2].endHideAct = hhw[1].endHideAct;
hhw[3].endHideAct = hhw[1].endHideAct;
hhw[4].endHideAct = hhw[1].endHideAct;
hhw[11].endHideAct = hhw[1].endHideAct;
hhw[12].endHideAct = hhw[1].endHideAct;
hhw[5].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
this.timer.play();
});
hhw[6].endHideAct = hhw[5].endHideAct;
hhw[7].endHideAct = hhw[5].endHideAct;
hhw[8].endHideAct = hhw[5].endHideAct;
hhw[9].endHideAct = hhw[5].endHideAct;
hhw[10].endHideAct = hhw[5].endHideAct;
hhw[13].endHideAct = hhw[5].endHideAct;
hhw[1].startHideAct = GameClasses.GFunctions.create(this, hideStrelas);
hhw[2].startHideAct = GameClasses.GFunctions.create(this, hideStrelas);
hhw[3].startHideAct = GameClasses.GFunctions.create(this, hideStrelas);
hhw[4].startHideAct = GameClasses.GFunctions.create(this, hideStrelas);
hhw[11].startHideAct = GameClasses.GFunctions.create(this, hideStrelas);
hhw[12].startHideAct = GameClasses.GFunctions.create(this, hideStrelas);
hhw[14].endHideAct = GameClasses.GFunctions.create(this, function () {
this.gameOver();
});
}
function callFirstHelp() {
GameClasses.Level.clearInterval(help_interval[0]);
help_interval[0] = 0;
if (!GameClasses.Vars.enable_hints) {
timer.play();
return(undefined);
}
var _local2 = 1;
while (_local2 <= 4) {
if (!was_help[_local2]) {
GameClasses.Level.clearInterval(help_interval[_local2]);
help_interval[_local2] = 0;
help_interval[_local2] = GameClasses.Level.setInterval(this, "callHelp", time_to_help[_local2], _local2);
}
_local2++;
}
if (!was_help[11]) {
GameClasses.Level.clearInterval(help_interval[11]);
help_interval[11] = 0;
help_interval[11] = GameClasses.Level.setInterval(this, "callHelp", time_to_help[11], 11);
}
if (!was_help[12]) {
GameClasses.Level.clearInterval(help_interval[12]);
help_interval[12] = 0;
help_interval[12] = GameClasses.Level.setInterval(this, "callHelp", time_to_help[12], 12);
}
if (theField.start_lock_help_hint) {
startLockHelpHint(theField.x_lock_help_hint, theField.y_lock_help_hint);
}
if (was_help[0]) {
GameClasses.Level.clearInterval(help_interval[0]);
help_interval[0] = 0;
} else {
firstInfoHelp();
}
}
function firstInfoHelp() {
GameClasses.Level.clearInterval(help_interval[0]);
help_interval[0] = 0;
if (was_help[0]) {
return(undefined);
}
if (theField.is_locked || (theField.count_move_on_the_field != 0)) {
help_interval[0] = GameClasses.Level.setInterval(this, "firstInfoHelp", 50);
return(undefined);
}
timer.pause();
was_help[0] = true;
lockLevel();
theField.startPeriodicHitn();
var _local3 = ((((theField.help_rect.x + (theField.help_rect.width / 2)) + 125) > 520) ? 380 : (theField.help_rect.x + (theField.help_rect.width / 2)));
var _local2 = ((theField.help_rect.y > 200) ? (theField.help_rect.y - 40) : ((theField.help_rect.y + theField.help_rect.height) + 100));
hhw[0].initHelpHintStrela(_local3, _local2, 0);
hhw[0].setStrela(theField.help_rect.x + (theField.help_rect.width / 2), theField.help_rect.y);
hhw[0].showHelpHint();
}
function callHelp(num) {
GameClasses.Level.clearInterval(help_interval[num]);
help_interval[num] = 0;
if (was_help[num]) {
return(undefined);
}
if (!GameClasses.Vars.enable_hints) {
return(undefined);
}
if ((theField.is_locked || (theField.count_move_on_the_field != 0)) || ((num == 1) && (!theField.was_first_step))) {
help_interval[num] = GameClasses.Level.setInterval(this, "callHelp", 1000, num);
GameClasses.AllIntervals.get().add(help_interval[num], "help_interval " + num);
return(undefined);
}
var _local4 = makeHelpArray(num);
if (_local4 == null) {
return(undefined);
}
timer.pause();
was_help[num] = true;
lockLevel();
var _local3 = _local4 - GameClasses.Consts.CELL_SIZE;
if (_local3 < (hhw[num].getHeight() + 20)) {
_local3 = hhw[num].getHeight() + 20;
}
hhw[num].initHelpHint(325, _local3);
hhw[num].btn.enable();
hhw[num].showHelpHint();
showStrelas();
}
function makeHelpArray(num) {
var _local4;
switch (num) {
case 1 :
_local4 = theField.makeHelpArray();
break;
case 2 :
_local4 = theField.makeHelpBombArray();
break;
case 3 :
_local4 = theField.makeHelpZLArray();
break;
case 4 :
_local4 = theField.makeHelpTimeArray();
break;
case 11 :
_local4 = theField.makeHelpSwapArray();
break;
case 12 :
_local4 = theField.makeHelpLifeArray();
}
var _local3 = new Array();
stela_help = createEmptyMovieClip("stela_help", 90000);
stela_help.mov = new GameClasses.FreeMove();
stela_help._x = 0;
stela_help._y = 2;
var _local2 = 0;
while (_local2 < _local4.length) {
_local3[_local2] = stela_help.createEmptyMovieClip("stela" + _local2, _local2);
_local3[_local2].createEmptyMovieClip("body", 1);
_local3[_local2].body.attachMovie("strela_small", "body", 1);
_local3[_local2].body._x = (-_local3[_local2].body._width) / 2;
_local3[_local2].body._y = (-_local3[_local2].body._height) / 2;
_local3[_local2]._x = _local4[_local2].x;
_local3[_local2]._y = _local4[_local2].y;
_local2++;
}
if (_local4.length > 0) {
return(_local4[0].y);
}
return(null);
}
function showStrelas() {
stela_help.mov.endAct = GameClasses.GFunctions.create(stela_help, function () {
this.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.mov.newInitMove(this, 500, 0, undefined, new GameClasses.Spline(2, -2, 2));
});
this.mov.endAct();
});
stela_help.mov.newInitMove(stela_help, GameClasses.Consts.TIME_OF_THE_HELP_HINT_MOVE, 0, undefined, undefined, undefined, undefined, undefined, new GameClasses.Spline(0, 100));
}
function hideStrelas() {
stela_help.mov.endAct = null;
stela_help.mov.newInitMove(stela_help, GameClasses.Consts.TIME_OF_THE_HELP_HINT_MOVE, 0, undefined, undefined, undefined, undefined, undefined, new GameClasses.Spline(100, 0));
}
function startUsualBonusHelpHint(num) {
GameClasses.Level.clearInterval(help_interval[num]);
help_interval[num] = 0;
if (!GameClasses.Vars.enable_hints) {
return(undefined);
}
if (was_help[num]) {
return(undefined);
}
if (theField.is_locked || (theField.count_move_on_the_field != 0)) {
help_interval[num] = GameClasses.Level.setInterval(this, "startUsualBonusHelpHint", 100, num);
GameClasses.AllIntervals.get().add(help_interval[num], "help_interval " + num);
return(undefined);
}
was_help[num] = true;
timer.pause();
lockLevel();
hhw[num].showHelpHint();
if (num == 9) {
GameClasses.FreeMove.makeDelay(hhw[9].TIME_OF_THE_HELP_HINT_MOVE + 1, GameClasses.GFunctions.create(Mouse, Mouse.addListener, mouse_list));
}
}
function startSunBonusHelpHint() {
if (!first_level) {
startUsualBonusHelpHint(5);
}
}
function startReadySunBonusHelpHint() {
if (!first_level) {
mouse_list = new Object();
mouse_list.onMouseDown = GameClasses.GFunctions.create(this, function () {
Mouse.removeListener(this.mouse_list);
delete this.mouse_list;
this.hhw[9].hideHelpHint();
if (this.sun_bonus.getHitArea().hitTest(this._xmouse, this._ymouse)) {
GameClasses.FreeMove.makeDelay(this.hhw[9].TIME_OF_THE_HELP_HINT_MOVE + 1, GameClasses.GFunctions.create(this.sun_bonus, this.sun_bonus.onPressAction));
}
});
startUsualBonusHelpHint(9);
}
}
function startReadyBombBonusHelpHint() {
startUsualBonusHelpHint(6);
}
function startReadyZLBonusHelpHint() {
startUsualBonusHelpHint(7);
}
function startReadySwapBonusHelpHint() {
startUsualBonusHelpHint(10);
}
function startReadyTimeBonusHelpHint() {
startUsualBonusHelpHint(8);
}
function startLockHelpHint(x, y) {
GameClasses.AllIntervals.get().del(help_interval[13]);
GameClasses.Level.clearInterval(help_interval[13]);
help_interval[13] = 0;
if (!GameClasses.Vars.enable_hints) {
return(undefined);
}
if (was_help[13]) {
return(undefined);
}
hhw[13].initHelpHintStrela(x, y, x);
startUsualBonusHelpHint(13);
}
function showNag() {
if (((!is_locked) && (!theField.is_locked)) && (theField.count_move_on_the_field == 0)) {
GameClasses.NugLevel.getSingleton().showInLevel();
}
}
function hidePanel() {
if (((!is_locked) && (!theField.is_locked)) && (theField.count_move_on_the_field == 0)) {
lockLevel();
panel.other = new Array();
panel.addOther(theField);
panel.addOther(theField.getVisibleElems());
panel.addOther(match3_Shade);
panel.actForShow = GameClasses.GFunctions.create(this, showPanel);
panel.hide();
timer.pause();
}
}
function showPanel() {
unlockLevel();
timer.play();
}
function initPanel() {
panel = new GameClasses.Panel();
panel.addLeft(match3_Left);
panel.addLeft(match3_Left8);
panel.addLeft(text1.getBody());
panel.addLeft(text2.getBody());
panel.addLeft(art_cells);
panel.addLeft(artefacts_arr);
panel.addLeft(big_arts[0].getVisibleElems());
panel.addLeft(lbf.getBody());
panel.addLeft(counter.getBody());
panel.addTop(match3_Top);
panel.addTop(button_menu.getBody());
panel.addBottom(match3_Bottom, 70);
panel.addBottom(bbf.getVisibleElems());
panel.addBottom(zlbf.getVisibleElems());
panel.addBottom(tbf.getVisibleElems());
panel.addBottom(sbf.getVisibleElems());
panel.addBottom(sun_bonus.getVisibleElems());
panel.addRight(match3_Right, 70);
panel.addRight(button_eye.getBody());
panel.addRight(timer.getBody());
}
function destroyPanel() {
log.info("call destroyPanel from Match3Level");
panel.destroy();
panel = null;
}
function hint() {
}
function doFirstWinAction() {
theField.stopPeriodicHitn();
timer.finishTime(GameClasses.GFunctions.create(this, function () {
this.statistic.setRecordValue("levelScore", this.counter.getLevelScore());
this.statistic.setRecordValue("totalScore", GameClasses.GameCounter.getTotalScore());
var _local3 = (GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000)) - this.time_start_level;
this.statistic.setRecordValue("yourTime", _local3);
this.statistic.show();
}));
var _local4 = GameClasses.TextClass(textCompleted1);
var _local3 = GameClasses.TextClass(textCompleted2);
_local4.setX(_local4.getX());
_local4.setY(_local4.getY());
_local3.setX(_local3.getX());
_local3.setY(_local3.getY());
_local4.setHotSpot(_local4.getWidth() / 2, _local4.getHeight() / 2);
_local3.setHotSpot(_local3.getWidth() / 2, _local3.getHeight() / 2);
var _local6 = new GameClasses.Spline(0, 120, 110, 100);
var _local5 = new GameClasses.Spline(0, 110, 120, 100);
var _local8 = GameClasses.GFunctions.create(this, function (tcl1, tcl2) {
tcl1.initMove(null, 400, 1, null, null, null, null, null, new GameClasses.Line(100, 0));
tcl2.initMove(null, 400, 1, null, null, null, null, null, new GameClasses.Line(100, 0));
}, _local4, _local3);
var _local9 = GameClasses.GFunctions.create(_local3, _local3.initMove, _local8, T_text_completed / 2, 1, null, null, _local5, _local6);
_local4.initMove(_local9, T_text_completed / 2, 1, null, null, _local6, _local5);
}
function gameOver() {
_root.pauseGlobalGameTime();
is_nug = false;
lbf.del();
if (GameClasses.Level.numb_l > 0) {
loadThis();
} else {
GameClasses.Vars.game_over = true;
GameClasses.NugLevel.getSingleton().showGameOver();
}
}
function restartLevel() {
gameOver();
}
function showEndOfTimeHW() {
if (theField.is_locked || (theField.count_move_on_the_field != 0)) {
GameClasses.FreeMove.makeDelay(30, GameClasses.GFunctions.create(this, showEndOfTimeHW));
return(undefined);
}
lockLevel();
_root.pauseGlobalGameTime();
hhw[14].showHelpHint();
}
var first_level = false;
var depth_for_substrate = 5000;
var depth_for_chips_ps = 9000;
var depth_for_chips = 11000;
var depth_for_a = 13000;
var depth_for_poa = 14000;
var depth_for_bonuses = 15000;
var depth_for_bombs = 18000;
var depth_for_fly_chips = 25000;
var depth_for_fly_chips0 = 25000;
var depth_for_fly_a = 30000;
var depth_for_fly_poa = 35000;
var depth_for_bonus_mc = 40000;
var depth_for_bonus_ps = 41000;
var depth_for_cps = 60000;
static var was_help = [false, false, false, false, false, false, false, false, false, false, false, false, false, false];
static var help_interval = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
static var time_to_help = [0, 8000, 1000, 1100, 1200, 0, 0, 0, 0, 0, 0, 1300, 1400, 0];
static var numb_b = GameClasses.Consts.numb_b;
static var numb_t = GameClasses.Consts.numb_t;
static var numb_s = GameClasses.Consts.numb_s;
static var numb_zl = GameClasses.Consts.numb_zl;
}
Symbol 1708 MovieClip [__Packages.GameClasses.Cloud] Frame 0
class GameClasses.Cloud
{
var body, temp_body, body_mc, T, x, y, t0;
function Cloud (id_bmp) {
body = flash.display.BitmapData.loadBitmap(id_bmp);
if (!body) {
throw new Error(("Fail " + id_bmp) + " not exist. Cloud constructor.");
}
temp_body = new flash.display.BitmapData(body.width, body.height, true, 0);
temp_body.copyPixels(body, new flash.geom.Rectangle(0, 0, body.width, body.height), new flash.geom.Point(0, 0));
}
function destroy() {
body.dispose();
body = null;
temp_body.dispose();
temp_body = null;
body_mc.removeMovieClip();
body_mc = null;
}
function clear() {
body.dispose();
temp_body.dispose();
body_mc.removeMovieClip();
}
function initCloud(mc, id_cloud, depth, x, y, T) {
this.T = T;
body_mc = mc.createEmptyMovieClip(id_cloud, depth);
body_mc.attachBitmap(temp_body, 1, "never", true);
this.x = x;
this.y = y;
body_mc._x = x;
body_mc._y = y;
t0 = getTimer();
}
function updateCloud() {
var _local4 = getTimer();
var _local2 = (_local4 - t0) / T;
if (_local2 > 1) {
t0 = _local4;
}
_local2 = 1 - _local2;
var _local3 = body.width * _local2;
var _local5 = 0;
temp_body.floodFill(0, 0, 0);
temp_body.copyPixels(body, new flash.geom.Rectangle(_local3, 0, body.width, body.height), new flash.geom.Point(0, 0));
temp_body.copyPixels(body, new flash.geom.Rectangle(0, 0, _local3, body.height), new flash.geom.Point(body.width - _local3, 0));
}
}
Symbol 1709 MovieClip [__Packages.GameClasses.Substrate] Frame 0
class GameClasses.Substrate
{
var body, mcs;
function Substrate (mc, obj) {
var _local4;
body = flash.display.BitmapData.loadBitmap(obj.id + ".jpg");
if (!body) {
throw new Error((("Fail " + obj.id) + ".jpg") + " not exist. Substrate constructor.");
}
mcs = new Array();
var _local3 = 0;
while (_local3 < 11) {
mcs[_local3] = new Array();
var _local2 = 0;
while (_local2 < 11) {
mcs[_local3][_local2] = mc.createEmptyMovieClip(obj.id + (counter++), mc.depth_for_substrate++);
mcs[_local3][_local2].body = mcs[_local3][_local2].createEmptyMovieClip("body", 1);
mcs[_local3][_local2].light = mcs[_local3][_local2].createEmptyMovieClip("light", 2);
mcs[_local3][_local2].bmp = new flash.display.BitmapData(SIZE, SIZE, true, 0);
mcs[_local3][_local2].bmp.copyPixels(body, new flash.geom.Rectangle(_local2 * SIZE, _local3 * SIZE, SIZE, SIZE), new flash.geom.Point(0, 0));
mcs[_local3][_local2].bmp1 = new flash.display.BitmapData(SIZE, SIZE, true, 0);
mcs[_local3][_local2].bmp1.copyPixels(body, new flash.geom.Rectangle(_local2 * SIZE, _local3 * SIZE, SIZE, SIZE), new flash.geom.Point(0, 0));
mcs[_local3][_local2].body.attachBitmap(mcs[_local3][_local2].bmp, 1);
mcs[_local3][_local2].light.attachBitmap(mcs[_local3][_local2].bmp1, 1);
_local4 = new Color(mcs[_local3][_local2].light);
_local4.setTransform({rb:LIGHT, gb:LIGHT, bb:LIGHT});
mcs[_local3][_local2].light._alpha = 0;
mcs[_local3][_local2]._x = obj.x + (_local2 * SIZE);
mcs[_local3][_local2]._y = obj.y + (_local3 * SIZE);
mcs[_local3][_local2]._visible = false;
mcs[_local3][_local2].enabled = false;
mcs[_local3][_local2].useHandCursor = false;
mcs[_local3][_local2].tabEnabled = false;
_local2++;
}
_local3++;
}
}
function destroy() {
body.dispose();
body = null;
var _local3 = 0;
while (_local3 < 11) {
var _local2 = 0;
while (_local2 < 11) {
mcs[_local3][_local2].body.removeMovieClip();
mcs[_local3][_local2].body = null;
mcs[_local3][_local2].light.removeMovieClip();
mcs[_local3][_local2].light = null;
mcs[_local3][_local2].bmp.dispose();
mcs[_local3][_local2].bmp = null;
mcs[_local3][_local2].bmp1.dispose();
mcs[_local3][_local2].bmp1 = null;
mcs[_local3][_local2].removeMovieClip();
delete mcs[_local3][_local2];
_local2++;
}
delete mcs[_local3];
_local3++;
}
delete mcs;
}
function clear() {
destroy();
}
var counter = 0;
var SIZE = 26;
var LIGHT = 40;
}
Symbol 1710 MovieClip [__Packages.GameClasses.SunBonus] Frame 0
class GameClasses.SunBonus
{
var x, y, x0, y0, mcRoot, snd, body, pots, simvols, states, suns, count_run_bonus, bonus_mc, bmp, bonus_ps, hw, t0, t00, ve, nps;
function SunBonus (mc, prefix_name, depth, x, y) {
var _local3;
var _local4 = 1;
this.x = x;
this.y = y;
x0 = x;
y0 = y;
mcRoot = mc;
snd = GameClasses.MySounds.getMySounds();
body = mcRoot.createEmptyMovieClip(prefix_name, depth);
body._x = x;
body._y = y;
pots = new Array();
simvols = body.createEmptyMovieClip("simbols", 1);
_local4 = 0;
pots.back = simvols.attachMovie(prefix_name + "_simvolBack", "simvol_back", _local4);
pots.back._alpha = 100;
_local4++;
_local3 = 1;
while (_local3 <= numb_pots) {
pots[_local3] = simvols.attachMovie((prefix_name + "_simvol_") + _local3, "pots" + _local3, _local4);
pots[_local3]._alpha = 0;
_local4++;
_local3++;
}
pots.simvol = simvols.attachMovie(prefix_name + "_simvol", "simvol", _local4);
pots.simvol._alpha = 100;
pots[1]._x = 7.3;
pots[1]._y = 0;
pots[2]._x = 10;
pots[2]._y = 4;
pots[3]._x = 10.2;
pots[3]._y = 8;
pots[4]._x = 5;
pots[4]._y = 10.4;
pots[5]._x = 1;
pots[5]._y = 9;
pots[6]._x = 0.7;
pots[6]._y = 3.6;
pots[7]._x = 2.6;
pots[7]._y = 0.5;
simvols._width = 42;
simvols._height = 42;
simvols._x = -21;
simvols._y = -21;
states = new Array();
suns = body.createEmptyMovieClip("suns", 2);
_local4 = 0;
_local3 = 1;
while (_local3 <= numb_states) {
states[_local3] = suns.attachMovie((prefix_name + "_") + _local3, "suns" + _local3, _local4);
states[_local3]._x = (-states[_local3]._width) / 2;
states[_local3]._y = (-states[_local3]._height) / 2;
states[_local3]._alpha = 0;
_local4++;
_local3++;
}
body.hitArea = pots.back;
body.useHandCursor = false;
count_run_bonus = 0;
bonus_mc = new Array();
bmp = new Array();
var _local6 = flash.display.BitmapData.loadBitmap("particles.png");
var _local7 = new flash.geom.Rectangle(32, 64, 32, 32);
var _local8 = new flash.geom.Point(0, 0);
bonus_ps = new GameClasses.ParticleSystem("particles.png", 0, 64, 32, 32, mcRoot.depth_for_bonus_ps++);
var _local9 = new GameClasses.Spline(0, 150, 0);
_local9.Calculate();
bonus_ps.initParticleSystem(body, 7, 700, 0, 360, 0.01, 0, 100, 10, 0, _local9, 16764108, 16763904);
_local3 = 0;
while (_local3 < GameClasses.Consts.NUMBER_OF_BONUS_PS) {
bmp[_local3] = new flash.display.BitmapData(32, 32, true, 16777215);
bmp[_local3].copyPixels(_local6, _local7, _local8);
bonus_mc[_local3] = mcRoot.createEmptyMovieClip("bonus_mc" + _local3, mcRoot.depth_for_bonus_mc++);
bonus_mc[_local3].mov = new GameClasses.FreeMove();
bonus_mc[_local3].body = bonus_mc[_local3].createEmptyMovieClip("body", 1);
bonus_mc[_local3]._alpha = 0;
bonus_mc[_local3]._x = -100;
bonus_mc[_local3]._y = -100;
bonus_mc[_local3].body.attachBitmap(bmp[_local3], 1, "never", true);
bonus_mc[_local3].body._x = (-bonus_mc[_local3].body._width) / 2;
bonus_mc[_local3].body._y = (-bonus_mc[_local3].body._height) / 2;
_local3++;
}
_local6.dispose();
body.onPress = GameClasses.GFunctions.create(this, onPressAction);
body.tabEnabled = false;
body.hitArea = simvols;
hw = new GameClasses.HintWindow(mcRoot, body, _root.dialogs.HintWindowTextSunBonus, new flash.geom.Point(body._x - 21, body._y - 21));
hw.setText((_root.dialogs.HintWindowTextSunBonus.text + Math.floor(charge)) + "%");
body.hitArea = hw.hint_mc;
createSunFullEffect();
}
function getVisibleElems() {
var _local2 = new Array();
_local2.push(body);
return(_local2);
}
function destroy() {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
destroySunFullEffect();
snd = null;
mcRoot = null;
body.onPressAction = null;
simvols.removeMovieClip();
simvols = null;
suns.removeMovieClip();
suns = null;
body.removeMovieClip();
body = null;
pots = null;
states = null;
var _local2 = 0;
while (_local2 < GameClasses.Consts.NUMBER_OF_BONUS_PS) {
bonus_mc[_local2].mov.destroy();
bonus_mc[_local2].mov = null;
bonus_mc[_local2].removeMovieClip();
delete bonus_mc[_local2];
bmp[_local2].dispose();
delete bmp[_local2];
_local2++;
}
bonus_mc = null;
bmp = null;
bonus_ps.destroy();
bonus_ps = null;
hw.destroy();
hw = null;
}
function clear() {
var _local2;
delete body.onPressAction;
simvols.removeMovieClip();
suns.removeMovieClip();
body.removeMovieClip();
delete pots;
delete states;
_local2 = 0;
while (_local2 < GameClasses.Consts.NUMBER_OF_BONUS_PS) {
bonus_mc[_local2].clear();
bonus_mc[_local2].removeMovieClip();
bmp[_local2].dispose();
_local2++;
}
delete bonus_mc;
delete bmp;
}
function getHitArea() {
return(body.hitArea);
}
function startBonusPS() {
bonus_ps.startParticleSystem(new flash.geom.Point(x0, y0));
}
function stopBonusPS() {
bonus_ps.stopParticleSystem();
}
function moveBmcToXY(i, x, y, d, t) {
snd.startWithDelay("SunRay", d);
count_run_bonus++;
var _local3 = new GameClasses.Spline(x0, x0 + ((x - x0) * Math.random()), x);
_local3.Calculate();
var _local2 = new GameClasses.Spline(y0, y0 + ((y - y0) * Math.random()), y);
_local2.Calculate();
var _local5 = new GameClasses.Spline(0, 90, 95, 97, 98, 97, 95, 90, 0);
bonus_mc[i].mov.endAct = GameClasses.GFunctions.create(this, function (num) {
this.snd.startSound("SunChipDestroy");
this.count_run_bonus--;
if (this.count_run_bonus == 0) {
this.stopBonusPS();
}
}, i);
bonus_mc[i].mov.initMove(bonus_mc[i], t, d, _local3, _local2, 100, 100, (360 * Math.random()) - 180, _local5);
}
function addEnergy(val) {
snd.startSound("SunAdd");
mcRoot.startSunBonusHelpHint();
var _local3;
if (is_full) {
return(undefined);
}
charge = charge + val;
if (charge >= 100) {
charge = 100;
_local3 = 1;
while (_local3 <= numb_pots) {
pots[_local3]._alpha = 100;
_local3++;
}
fullBonus();
mcRoot.startReadySunBonusHelpHint();
hw.setText((_root.dialogs.HintWindowTextSunBonus.text + Math.floor(charge)) + "%");
return(undefined);
}
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
body._xscale = 100;
body._yscale = 100;
t0 = getTimer();
t00 = t0;
ve = (charge - curr_charge) / Te;
hw.setText((_root.dialogs.HintWindowTextSunBonus.text + Math.floor(charge)) + "%");
interval = GameClasses.FreeMove.setInterval(this, "updateEnergy", 32);
}
function updateEnergy() {
var _local2;
var _local4;
var _local6;
var _local5 = getTimer();
var _local3 = _local5 - t0;
t0 = _local5;
curr_charge = curr_charge + (_local3 * ve);
if (curr_charge >= charge) {
curr_charge = charge;
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
}
_local4 = int((numb_pots * curr_charge) / 100);
_local6 = (numb_pots * curr_charge) - (_local4 * 100);
_local2 = 1;
while (_local2 <= _local4) {
pots[_local2]._alpha = 100;
_local2++;
}
pots[_local4 + 1]._alpha = _local6;
_local3 = t0 - t00;
if (_local3 < (Te / 2)) {
body._xscale = 100 + ((puls_ampl * _local3) / Te);
body._yscale = 100 + ((puls_ampl * _local3) / Te);
} else if (_local3 < Te) {
body._xscale = 100 + ((puls_ampl * (Te - _local3)) / Te);
body._yscale = 100 + ((puls_ampl * (Te - _local3)) / Te);
} else {
body._xscale = 100;
body._yscale = 100;
}
}
function onPressAction() {
if (is_full) {
if ((mcRoot.theField.count_move_on_the_field != 0) || (mcRoot.theField.is_locked)) {
return(undefined);
}
hw.setText(_root.dialogs.HintWindowTextSunBonus.text + "0%");
snd.startSound("SunStart");
var _local3;
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
_local3 = 1;
while (_local3 <= numb_pots) {
pots[_local3]._alpha = 0;
_local3++;
}
is_full = false;
charge = 0;
curr_charge = 0;
body._xscale = 100;
body._yscale = 100;
mcRoot.theField.startBonusExploude();
}
}
function fullBonus() {
snd.startSound("SunComplete");
startSunFullEffect();
is_full = true;
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
t0 = getTimer();
interval = GameClasses.FreeMove.setInterval(this, "updatePuls", 32);
}
function updatePuls() {
var _local2 = (getTimer() - t0) / T_puls;
if (_local2 <= 0.5) {
body._xscale = 100 + ((puls_ampl * _local2) * 2);
body._yscale = 100 + ((puls_ampl * _local2) * 2);
} else if (_local2 <= 1) {
body._xscale = 100 + ((puls_ampl * (1 - _local2)) * 2);
body._yscale = 100 + ((puls_ampl * (1 - _local2)) * 2);
} else {
t0 = getTimer();
body._xscale = 100;
body._yscale = 100;
}
}
function createSunFullEffect() {
nps = new GameClasses.NewParticleSystem(mcRoot.NPS_LEVEL_MC, 24);
nps.initTextureFromLibrary("SunFullEffect");
}
function destroySunFullEffect() {
nps.destroy();
delete nps;
}
function startSunFullEffect() {
var _local3;
var _local2;
var _local4 = 0;
var _local6 = 25;
var _local5 = 1500;
_local3 = body._x;
_local2 = body._y;
nps.startInverseExplode(_local3, _local2, -150, 150, 30, -0.3, 0.01, 0.0004, new GameClasses.Spline(0, 100, 0), new GameClasses.Spline(0, 100, 0), new GameClasses.Spline(50, 100, 0), null);
}
var interval = 0;
var numb_pots = 7;
var numb_states = 8;
var charge = 0;
var curr_charge = 0;
var dc = 0;
var Te = 300;
var is_full = false;
var puls_ampl = 25;
var T_puls = 1500;
var sfe_T = 1500;
}
Symbol 1711 MovieClip [__Packages.GameClasses.ParticleSystem] Frame 0
class GameClasses.ParticleSystem extends Object
{
static var bmp_big;
var log, depth, cycle, time_interval, bmp, particles, mc, point, ps_mc, count, T, max_rot, count_curr;
function ParticleSystem (name_file, x, y, w, h, depth, cycle, time_interval) {
super();
log = logger.Logger.getLog();
if (TURN_OFF) {
return;
}
if (bmp_big == undefined) {
bmp_big = new Object();
}
if (bmp_big[name_file] == undefined) {
bmp_big[name_file] = flash.display.BitmapData.loadBitmap(name_file);
}
if (depth != undefined) {
this.depth = depth;
} else {
this.depth = depth_of_the_ps++;
}
if (cycle != undefined) {
this.cycle = cycle;
} else {
this.cycle = true;
}
if (time_interval != undefined) {
this.time_interval = time_interval;
} else {
this.time_interval = undefined;
}
bmp = new flash.display.BitmapData(w, h, true, 0);
bmp.copyPixels(bmp_big[name_file], new flash.geom.Rectangle(x, y, w, h), new flash.geom.Point(0, 0));
particles = new Array();
}
function destroy() {
log.info("call function destroy from ParticleSystem");
mc = null;
for (var _local3 in bmp_big) {
bmp_big[_local3].dispose();
}
bmp_big = null;
bmp.dispose();
bmp = null;
var _local2 = particles.length - 1;
while (_local2 >= 0) {
particles[_local2].destroy();
_local2--;
}
particles = null;
point = null;
for (var _local4 in ps_mc) {
if (ps_mc[_local4] instanceof MovieClip) {
MovieClip(ps_mc[_local4]).removeMovieClip();
}
}
ps_mc.removeMovieClip();
ps_mc = null;
log = null;
}
function clear() {
if (TURN_OFF) {
return(undefined);
}
var _local2;
var _local3;
for (_local3 in bmp_big) {
bmp_big[_local3].dispose();
}
delete bmp_big;
bmp_big = undefined;
bmp.dispose();
_local2 = 0;
while (_local2 < particles.length) {
particles[_local2].clear();
delete particles[_local2];
_local2++;
}
delete particles;
}
function makeVisible() {
ps_mc._visible = true;
}
function makeUnvisible() {
ps_mc._visible = false;
}
function initParticleSystem(mc, count, T, fi1, fi2, v, a, alp1, alp2, scale1, scale2, color1, color2) {
if (TURN_OFF) {
return(undefined);
}
this.mc = mc;
if (mc instanceof MovieClip) {
ps_mc = MovieClip(mc)._parent.createEmptyMovieClip("ps" + depth, depth);
} else {
ps_mc = mc.mc._parent.createEmptyMovieClip("ps" + depth, depth);
}
makeUnvisible();
this.count = count;
this.T = T;
var _local2 = 0;
while (_local2 < count) {
var _local3 = new GameClasses.Particle(this, mc, bmp, "particle" + _local2, _local2, T, fi1, fi2, v, a, alp1, alp2, scale1, scale2, color1, color2);
particles.push(_local3);
_local2++;
}
if (time_interval == undefined) {
time_interval = T / count;
}
}
function startParticleSystem(point, max_rot, delay) {
if (TURN_OFF) {
return(undefined);
}
if (started) {
breakParticleSystem();
}
var _local2;
curr_count = 0;
makeVisible();
if ((delay != undefined) && (delay != 0)) {
GameClasses.FreeMove.makeDelay(delay, GameClasses.GFunctions.create(this, startParticleSystem, point, max_rot, 0));
return(undefined);
}
this.point = point;
this.max_rot = max_rot;
started = true;
count_curr = 0;
var _local6 = getTimer();
_local2 = 0;
while (_local2 < particles.length) {
particles[_local2].startParticle(point, max_rot, (time_interval * _local2) + 1);
_local2++;
}
}
function generateParticle(n) {
if (TURN_OFF) {
return(undefined);
}
count_curr++;
if (count_curr < count) {
particles[count_curr].startParticle(point, max_rot);
GameClasses.FreeMove.makeDelay(time_interval + 1, GameClasses.GFunctions.create(this, generateParticle));
}
}
function stopParticleSystem() {
if (TURN_OFF) {
return(undefined);
}
started = false;
var _local2 = 0;
while (_local2 < count) {
particles[_local2].stopParticle();
_local2++;
}
}
function breakParticleSystem() {
makeUnvisible();
if (TURN_OFF) {
return(undefined);
}
started = false;
curr_count = 0;
var _local2 = 0;
while (_local2 < count) {
particles[_local2].mov.stopMove();
particles[_local2].started = false;
particles[_local2].body._visible = false;
_local2++;
}
}
var TURN_OFF = false;
static var depth_of_the_ps = 50000;
var started = false;
var curr_count = 0;
}
Symbol 1712 MovieClip [__Packages.GameClasses.Particle] Frame 0
class GameClasses.Particle
{
var mc, bmp, T, fi1, fi2, v, a, alp1, alp2, scale1, scale2, color1, color2, name_part, body, cx, cy, col, endAct, point, max_rot;
function Particle (ps, mc, bmp, name_part, depth, T, fi1, fi2, v, a, alp1, alp2, scale1, scale2, color1, color2) {
this.ps = ps;
if (mc instanceof MovieClip) {
this.mc = MovieClip(mc);
} else {
this.mc = mc.mc;
x0 = mc.x;
y0 = mc.y;
}
this.bmp.copyPixels(bmp, new flash.geom.Rectangle(0, 0, bmp.width, bmp.height), new flash.geom.Point(0, 0));
this.T = T;
this.fi1 = fi1;
this.fi2 = fi2;
this.v = v;
this.a = a;
this.alp1 = alp1;
this.alp2 = alp2;
this.scale1 = scale1;
this.scale2 = scale2;
this.color1 = color1;
this.color2 = color2;
this.name_part = name_part;
body = ps.ps_mc.createEmptyMovieClip((name_part + "_") + depth, depth);
body._visible = false;
body.body = body.createEmptyMovieClip("body", 1);
body.body.attachBitmap(bmp, 1, "never", true);
cx = body.body._width / 2;
cy = body.body._height / 2;
body.body._x = -cx;
body.body._y = -cy;
body.blendMode = "add";
body.mov = new GameClasses.FreeMove();
col = new Color(body);
if (ps.cycle) {
endAct = GameClasses.GFunctions.create(this, function () {
this.startParticle();
});
} else {
endAct = GameClasses.GFunctions.create(this, function () {
this.started = false;
this.body._visible = false;
ps.curr_count--;
if (ps.curr_count == 0) {
ps.started = false;
}
});
}
}
function destroy() {
ps = null;
mc = null;
bmp.dispose();
body.mov.destroy();
body.mov = null;
body.removeMovieClip();
body = null;
point = null;
col = null;
}
function clear() {
destroy();
}
function startParticle(point, max_rot, delay) {
ps.curr_count++;
var _local6 = (Math.random() * (fi2 - fi1)) + fi1;
var _local3;
if (max_rot == undefined) {
_local3 = (Math.random() * 60) - 30;
} else {
this.max_rot = max_rot;
_local3 = (Math.random() * max_rot) - (max_rot / 2);
}
if (point != undefined) {
this.point = point;
x0 = point.x;
y0 = point.y;
}
var _local2 = mc.getBounds(mc);
started = true;
body._visible = true;
if (x0 == -10000) {
body._x = (mc._x + _local2.xMin) + ((_local2.xMax - _local2.xMin) / 2);
body._y = (mc._y + _local2.yMin) + ((_local2.yMax - _local2.yMin) / 2);
} else {
body._x = x0;
body._y = y0;
}
body._alpha = alp1;
body._xscale = scale1;
body._yscale = scale1;
body._rotation = 0;
if ((color1 != undefined) && (color1 != null)) {
col.setRGB(color1);
}
if (!(body instanceof MovieClip)) {
}
body.mov.endAct = endAct;
GameClasses.FreeMove.addActivePiece(body, getTimer());
body.mov.initParticle(body, T, _local6, v, a, alp2, scale2, _local3, color2, delay);
}
function stopParticle() {
started = false;
ps.curr_count--;
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.body._visible = false;
if (this.ps.curr_count == 0) {
this.ps.makeUnvisible();
}
});
}
var ps = null;
var static_paticle = false;
var x0 = -10000;
var y0 = -10000;
var stoped = false;
var started = false;
}
Symbol 1713 MovieClip [__Packages.GameClasses.HintWindow] Frame 0
class GameClasses.HintWindow
{
static var bmp, interval_mouse, w, h, rect, point, bmp_t, bmp_rt, bmp_r, bmp_rb, bmp_b, bmp_lb, bmp_l, bmp_lt, bmp_c;
var log, snd, square_mc, hint_text, mcBody, mcRoot, body, txt, body_bmp, hint_bmp, hint_mc, shadow, btn, hw, hh, tw, th, strela;
function HintWindow (mc_root, mc_with_hint, tex, point1) {
var _local3;
log = logger.Logger.getLog();
snd = GameClasses.MySounds.getMySounds();
if (bmp == undefined) {
initClass();
}
square_mc = mc_root.SQUARE_MC;
hint_text = tex;
mcBody = mc_with_hint;
mcRoot = mc_root.HINT_LEVEL_MC;
body = mcRoot.createEmptyMovieClip("hint_window" + depth, depth++);
body._x = -100;
body._y = -100;
body.createEmptyMovieClip("body", 2);
body.createEmptyMovieClip("shadow", 1);
body._xscale = 0;
body._yscale = 0;
body._alpha = 0;
txt = new GameClasses.TextClass(body.body, 2, hint_text, recede, recede);
var _local5 = txt.getWidth();
var _local4 = (txt.getHeight() + hint_text.h) + (recede / 2);
initBitmap(_local5, _local4);
body.body.attachBitmap(body_bmp, 1);
GameClasses.Consts.makeShadow(body.body, body.shadow, 0, 50);
body.blendMode = "add";
body.body.blendMode = "add";
body.mov = new GameClasses.FreeMove();
if ((mcBody != undefined) && (mcBody != null)) {
if (mcBody.hitArea) {
hint_bmp = new flash.display.BitmapData(mcBody.hitArea._width, mcBody.hitArea._height, true, 0);
hint_bmp.draw(mcBody.hitArea);
} else {
hint_bmp = new flash.display.BitmapData(mcBody._width, mcBody._height, true, 0);
hint_bmp.draw(mcBody);
}
hint_mc = mcRoot.createEmptyMovieClip("hint_mask" + depth, depth++);
hint_mc.blendMode = "add";
_local3 = new Color(hint_mc);
_local3.setRGB(0);
hint_mc._alpha = 0;
var _local2;
if (point1 == undefined) {
if ((!mcBody.hitArea) || ((mcBody.hitArea._x == 0) && (mcBody.hitArea._y == 0))) {
_local2 = new flash.geom.Point(mcBody._x, mcBody._y);
} else {
_local2 = new flash.geom.Point(mcBody.hitArea._x, mcBody.hitArea._y);
}
} else {
_local2 = point1;
}
hint_mc._x = _local2.x;
hint_mc._y = _local2.y;
hint_mc.useHandCursor = false;
hint_mc.attachBitmap(hint_bmp, 1);
hint_mc.onRollOver = GameClasses.GFunctions.create(this, startHint);
hint_mc.onRollOut = GameClasses.GFunctions.create(this, stopHint);
hint_mc.onDragOver = GameClasses.GFunctions.create(this, startHint);
hint_mc.onDragOut = GameClasses.GFunctions.create(this, stopHint);
hint_mc.tabEnabled = false;
hint_mc.onPress = GameClasses.GFunctions.create(mcBody, function () {
this.onPress();
this.addOnPressAction();
});
}
}
static function disableHW() {
HW_enabled = false;
}
static function enableHW() {
HW_enabled = true;
}
function destroy() {
GameClasses.FreeMove.clearInterval(interval_mouse);
interval_mouse = 0;
mcRoot = null;
mcBody = null;
square_mc = null;
snd = null;
hint_mc.onRollOver = null;
hint_mc.onRollOut = null;
hint_mc.onDragOver = null;
hint_mc.onDragOut = null;
shadow.shadow_bmp.dispose();
shadow.removeMovieClip();
shadow = null;
hint_mc.removeMovieClip();
hint_mc = null;
destroyStrela();
body.mov.destroy();
body.mov = null;
body.body.removeMovieClip();
body.body = null;
body.shadow.shadow_bmp.dispose();
body.shadow.shadow_bmp = null;
body.shadow.filtr.destroy();
body.shadow.filtr = null;
body.shadow.removeMovieClip();
body.shadow = null;
body.removeMovieClip();
body = null;
hint_text = null;
btn.destroy();
btn = null;
hint_bmp.dispose();
hint_bmp = null;
body_bmp.dispose();
body_bmp = null;
txt.destroy();
txt = null;
log = null;
delete addOnPressAction;
delete startHideAct;
delete endHideAct;
}
function clear() {
body.removeMovieClip();
shadow.shadow_bmp.dispose();
shadow.removeMovieClip();
hint_mc.removeMovieClip();
hint_bmp.dispose();
body_bmp.dispose();
}
static function clearAll() {
GameClasses.FreeMove.clearInterval(interval_mouse);
interval_mouse = 0;
all_hw = new Array();
}
static function initInterval() {
GameClasses.FreeMove.clearInterval(interval_mouse);
interval_mouse = 0;
interval_mouse = GameClasses.FreeMove.setInterval(GameClasses.HintWindow, "onMouseMoveAct", 16);
GameClasses.AllIntervals.get().add(interval_mouse);
enableHW();
}
static function initClass() {
initInterval();
bmp = flash.display.BitmapData.loadBitmap(hint_name);
w = 20;
h = 15;
rect = new flash.geom.Rectangle(0, 0, w, h);
point = new flash.geom.Point(0, 0);
bmp_t = new flash.display.BitmapData(w, h, true, 0);
rect.x = w;
rect.y = 0;
bmp_t.copyPixels(bmp, rect, point);
bmp_rt = new flash.display.BitmapData(w, h, true, 0);
rect.x = bmp.width - w;
rect.y = 0;
bmp_rt.copyPixels(bmp, rect, point);
bmp_r = new flash.display.BitmapData(w, h, true, 0);
rect.x = bmp.width - w;
rect.y = h;
bmp_r.copyPixels(bmp, rect, point);
bmp_rb = new flash.display.BitmapData(w, h, true, 0);
rect.x = bmp.width - w;
rect.y = bmp.height - h;
bmp_rb.copyPixels(bmp, rect, point);
bmp_b = new flash.display.BitmapData(w, h, true, 0);
rect.x = w;
rect.y = bmp.height - h;
bmp_b.copyPixels(bmp, rect, point);
bmp_lb = new flash.display.BitmapData(w, h, true, 0);
rect.x = 0;
rect.y = bmp.height - h;
bmp_lb.copyPixels(bmp, rect, point);
bmp_l = new flash.display.BitmapData(w, h, true, 0);
rect.x = 0;
rect.y = h;
bmp_l.copyPixels(bmp, rect, point);
bmp_lt = new flash.display.BitmapData(w, h, true, 0);
rect.x = 0;
rect.y = 0;
bmp_lt.copyPixels(bmp, rect, point);
bmp_c = new flash.display.BitmapData(w, h, true, 0);
rect.x = w;
rect.y = h;
bmp_c.copyPixels(bmp, rect, point);
}
function initBitmap(w1, h1) {
var _local3;
var _local2;
var _local5;
var _local4;
hw = (2 * recede) + w1;
hh = (2 * recede) + h1;
tw = hw - (2 * w);
th = hh - (2 * h);
body_bmp = new flash.display.BitmapData(hw, hh, true, 0);
rect.x = 0;
rect.y = 0;
point.x = 0;
point.y = 0;
rect.width = w;
rect.height = h;
body_bmp.copyPixels(bmp_lt, rect, point);
point.x = body_bmp.width - w;
point.y = 0;
body_bmp.copyPixels(bmp_rt, rect, point);
point.x = body_bmp.width - w;
point.y = body_bmp.height - h;
body_bmp.copyPixels(bmp_rb, rect, point);
point.x = 0;
point.y = body_bmp.height - h;
body_bmp.copyPixels(bmp_lb, rect, point);
_local5 = int(tw / w);
_local3 = 0;
while (_local3 < _local5) {
point.x = w + (_local3 * w);
point.y = 0;
body_bmp.copyPixels(bmp_t, rect, point);
point.y = h + th;
body_bmp.copyPixels(bmp_b, rect, point);
_local3++;
}
rect.width = tw - (_local5 * w);
point.x = w + (_local5 * w);
point.y = 0;
body_bmp.copyPixels(bmp_t, rect, point);
point.y = h + th;
body_bmp.copyPixels(bmp_b, rect, point);
rect.width = w;
_local4 = int(th / h);
_local2 = 0;
while (_local2 < _local4) {
point.y = h + (_local2 * h);
point.x = 0;
body_bmp.copyPixels(bmp_l, rect, point);
point.x = w + tw;
body_bmp.copyPixels(bmp_r, rect, point);
_local2++;
}
rect.height = th - (_local4 * h);
point.y = h + (_local4 * h);
point.x = 0;
body_bmp.copyPixels(bmp_l, rect, point);
point.x = w + tw;
body_bmp.copyPixels(bmp_r, rect, point);
rect.height = h;
_local3 = 0;
while (_local3 < _local5) {
point.x = w + (_local3 * w);
_local2 = 0;
while (_local2 < _local4) {
point.y = h + (_local2 * h);
body_bmp.copyPixels(bmp_c, rect, point);
_local2++;
}
point.y = h + (_local4 * h);
rect.height = th - (_local4 * h);
body_bmp.copyPixels(bmp_c, rect, point);
rect.height = h;
_local3++;
}
point.x = w + (_local5 * w);
rect.width = tw - (_local5 * w);
_local2 = 0;
while (_local2 < _local4) {
point.y = h + (_local2 * h);
body_bmp.copyPixels(bmp_c, rect, point);
_local2++;
}
rect.width = w;
point.x = w + (_local5 * w);
point.y = h + (_local4 * h);
rect.width = tw - (_local5 * w);
rect.height = th - (_local4 * h);
body_bmp.copyPixels(bmp_c, rect, point);
}
function initHelp(x, y) {
type = "study_hint";
TIME_OF_THE_HINT_MOVE = TIME_OF_THE_HELP_HINT_MOVE;
body.body._x = (-body.body._width) / 2;
body.shadow._x = body.body._x;
body.body._y = -body.body._height;
body.shadow._y = body.body._y;
body._x = x;
body._y = y;
}
function initHelpHint(x, y) {
initHelp(x, y);
initButton();
}
function initHelpHintStrela(x, y, xs) {
initHelp(x, y);
initButton();
initStrela(xs);
}
function initHelpHintStrelaH(x, y, ys) {
initHelp(x, y);
initButton();
initStrelaH(ys);
}
function initHelpStrela(x, y, xs) {
initHelp(x, y);
initStrela(xs);
}
function initButton() {
btn = new GameClasses.MyButton2(body.body, "Ok", 3, _root.dialogs.TextOk, 0, 0);
btn.setX((hw - btn.getWidth()) / 2);
btn.setY((hh - btn.getHeight()) - 10);
btn.addAction(GameClasses.GFunctions.create(this, hideHelpHint));
}
function initStrela(x) {
strela = body.createEmptyMovieClip("strela", 3);
var _local2 = flash.display.BitmapData.loadBitmap("Strela.png");
strela.bmp = new flash.display.BitmapData(_local2.width / 2, _local2.height, true, 0);
strela.bmp.copyPixels(_local2, new flash.geom.Rectangle(0, 0, _local2.width / 2, _local2.height), new flash.geom.Point(0, 0));
strela.body = strela.createEmptyMovieClip("body", 2);
strela.shadow = strela.createEmptyMovieClip("shadow", 1);
strela.body.attachBitmap(strela.bmp, 1);
GameClasses.Consts.makeShadow(strela.body, strela.shadow, 0, 60);
strela.body._x = (-strela.body._width) / 2;
strela.body._y = -strela.body._height;
strela.shadow._x = strela.body._x;
strela.shadow._y = strela.body._y;
strela.mov = new GameClasses.FreeMove();
strela.x0 = x - body._x;
strela.y0 = strela.body._height - 10;
strela._x = strela.x0;
strela._y = -body._y;
strela._alpha = 0;
_local2.dispose();
_local2 = null;
}
function destroyStrela() {
strela.bmp.dispose();
strela.bmp = null;
strela.mov.destroy();
strela.mov = null;
strela.shadow.shadow_bmp.dispose();
strela.shadow.shadow_bmp = null;
strela.shadow.filtr.destroy();
strela.shadow.filtr = null;
strela.shadow.removeMovieClip();
strela.shadow = null;
strela.body.removeMovieClip();
strela.body = null;
}
function initStrelaH(y) {
initStrela(0);
strela.x0 = (((-body.body._width) / 2) - strela.body._height) - 15;
strela.y0 = y - body._y;
strela._x = 530 - body._x;
strela._y = strela.y0;
strela._alpha = 0;
strela._rotation = 90;
}
function setStrela(x, y) {
strela.x0 = x - body._x;
strela.y0 = y - body._y;
strela._x = strela.x0;
strela._y = -body._y;
}
function startStrela() {
if (strela._y == (-body._y)) {
strela.acc_y = new GameClasses.AccelLinePath();
strela.acc_y.addKey(strela.y0, 0.0002, 0);
strela.acc_y.addKey(strela.y0 + 5, 0.0002, -1);
strela.acc_y.addKey(strela.y0, 0, 0);
strela.T = strela.acc_y.calculatePath();
strela.acc_x = undefined;
} else {
strela.acc_x = new GameClasses.AccelLinePath();
strela.acc_x.addKey(strela.x0, 0.0002, 0);
strela.acc_x.addKey(strela.x0 + 5, 0.0002, -1);
strela.acc_x.addKey(strela.x0, 0, 0);
strela.T = strela.acc_x.calculatePath();
strela.acc_y = undefined;
}
strela.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.strela.mov.endAct = GameClasses.GFunctions.create(this, function () {
GameClasses.FreeMove.addActivePiece(this.strela, getTimer());
this.strela.mov.initMove(this.strela, this.strela.T, 0, this.strela.acc_x, this.strela.acc_y);
});
this.strela.mov.endAct();
});
strela._alpha = 100;
GameClasses.FreeMove.addActivePiece(strela, getTimer());
strela.mov.initLine(strela, strela.x0, strela.y0, 300);
}
function disableHint() {
hint_disabled = true;
}
function enableHint() {
hint_disabled = false;
hint_mc.swapDepths(depth++);
}
function showHelpHint(is_square) {
hideAll();
is_hint = true;
if ((is_square == undefined) || (is_square)) {
square_mc._x = 0;
}
snd.startSound("TipWindow");
if (strela) {
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.square_mc.onPress = GameClasses.GFunctions.create(this, this.hideHelpHint);
this.square_mc.enabled = true;
this.startStrela();
});
} else {
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.square_mc.onPress = GameClasses.GFunctions.create(this, this.hideHelpHint);
this.square_mc.enabled = true;
});
}
square_mc.tabEnabled = false;
is_active = true;
all_hw.push(this);
GameClasses.FreeMove.addActivePiece(body, getTimer());
body.mov.initMove(body, TIME_OF_THE_HINT_MOVE, TIME_OF_THE_HINT_DELAY, undefined, undefined, 100, 100, undefined, hint_opacity);
}
function hideHelpHint() {
is_hint = false;
square_mc.onPress = function () {
};
square_mc._x = 520;
if (strela) {
strela.mov.endAct = null;
}
hideHint();
}
function showHint() {
if (is_hint) {
return(undefined);
}
is_active = true;
all_hw.push(this);
GameClasses.FreeMove.addActivePiece(body, getTimer());
body.mov.initMove(body, TIME_OF_THE_HINT_MOVE, TIME_OF_THE_HINT_DELAY, undefined, undefined, 100, 100, undefined, hint_opacity);
}
function hideHint() {
var _local2 = all_hw.length - 1;
while (_local2 >= 0) {
if (all_hw[_local2] == this) {
all_hw[_local2] = all_hw[all_hw.length - 1];
all_hw.pop();
break;
}
_local2--;
}
is_active = false;
GameClasses.FreeMove.addActivePiece(body, getTimer());
body.mov.endAct = GameClasses.GFunctions.create(this, endHideAct);
body.mov.initMove(body, TIME_OF_THE_HINT_MOVE, 0, undefined, undefined, 0, 0, undefined, 0);
startHideAct();
}
function startHint() {
if ((!hint_disabled) && (HW_enabled)) {
if (mcBody) {
active_hint = this;
}
showHint();
}
if (mcBody) {
mcBody.onRollOver();
}
}
function stopHint() {
active_hint = null;
if (body.mov.active) {
body.mov.stopMove1();
}
hideHint();
if (mcBody) {
mcBody.onRollOut();
}
}
static function hideCurrent() {
active_hint.stopHint();
}
static function onMouseMoveAct() {
if (active_hint != null) {
if ((active_hint.mcRoot._xmouse + active_hint.body.body._width) > 520) {
active_hint.body.body._x = -active_hint.body.body._width;
active_hint.body.shadow._x = active_hint.body.body._x;
} else {
active_hint.body.body._x = 0;
active_hint.body.shadow._x = active_hint.body.body._x;
}
if ((active_hint.mcRoot._ymouse - active_hint.body.body._height) < 0) {
active_hint.body.body._y = 0;
active_hint.body.shadow._y = active_hint.body.body._y;
} else {
active_hint.body.body._y = -active_hint.body.body._height;
active_hint.body.shadow._y = active_hint.body.body._y;
}
active_hint.body._x = active_hint.mcRoot._xmouse;
active_hint.body._y = active_hint.mcRoot._ymouse;
}
}
static function hideAll() {
var _local1 = all_hw.length - 1;
while (_local1 >= 0) {
if (!all_hw[_local1]) {
all_hw.splice(_local1, 1);
} else if (all_hw[_local1].is_active) {
if (all_hw[_local1].type == "study_hint") {
all_hw[_local1].hideHelpHint();
} else {
all_hw[_local1].hideHint();
}
}
_local1--;
}
}
function getHeight() {
return(body.body._height);
}
function setText(s) {
txt.setText(s);
}
static var hint_name = "HintWindow.png";
static var depth = 0;
static var all_hw = new Array();
static var active_hint = null;
static var is_hint = false;
var startHideAct = null;
var addOnPressAction = null;
var endHideAct = null;
var hint_disabled = false;
var recede = 10;
var TIME_OF_THE_HINT_MOVE = GameClasses.Consts.TIME_OF_THE_HINT_MOVE;
var TIME_OF_THE_HELP_HINT_MOVE = GameClasses.Consts.TIME_OF_THE_HELP_HINT_MOVE;
var TIME_OF_THE_HINT_DELAY = GameClasses.Consts.TIME_OF_THE_HINT_DELAY;
var hint_opacity = 90;
var type = "hint";
var is_active = false;
var sound_showHint = "ShowTooltip";
static var HW_enabled = true;
}
Symbol 1714 MovieClip [__Packages.GameClasses.AllIntervals] Frame 0
class GameClasses.AllIntervals
{
var intervals, infos;
function AllIntervals () {
intervals = new Array();
infos = new Array();
}
static function get() {
if (!ai) {
ai = new GameClasses.AllIntervals();
}
return(ai);
}
function add(int, inf) {
}
function del(int) {
}
function getInfo() {
return("");
}
function add1(int, inf) {
var _local2 = 0;
while (_local2 < intervals.length) {
if (int == intervals[_local2]) {
if (inf) {
infos[_local2] = inf;
}
return(undefined);
}
_local2++;
}
intervals.push(int);
if (inf) {
infos.push(inf);
} else {
infos.push(" ");
}
}
function del1(int) {
var _local3 = -1;
var _local2 = 0;
while (_local2 < intervals.length) {
if (int == intervals[_local2]) {
_local3 = _local2;
break;
}
_local2++;
}
if (_local3 != -1) {
intervals.splice(_local3, 1);
delete infos[_local3];
infos.splice(_local3, 1);
}
}
function getInfo1() {
var _local3 = ("Count=" + intervals.length) + newline;
var _local2 = 0;
while (_local2 < intervals.length) {
_local3 = _local3 + (((String(intervals[_local2]) + " ") + infos[_local2]) + newline);
_local2++;
}
return(_local3);
}
static var ai = null;
}
Symbol 1715 MovieClip [__Packages.GameClasses.NewParticleSystem] Frame 0
class GameClasses.NewParticleSystem
{
var mcRoot, numb, particles, path, body, pmov, pmovs, T, t0;
function NewParticleSystem (root_mc, number_parts) {
mcRoot = root_mc;
numb = number_parts;
particles = new Array();
path = new Array();
body = mcRoot.createEmptyMovieClip("ps" + depth, depth++);
body._x = -100;
makeUnvisible();
body.mov = new GameClasses.FreeMove();
var _local3 = 0;
while (_local3 < numb) {
particles[_local3] = body.createEmptyMovieClip("part" + _local3, _local3);
var _local2 = particles[_local3];
_local2._x = -100;
_local2.mov = new GameClasses.FreeMove();
_local2.body = _local2.createEmptyMovieClip("body", 2);
_local2._visible = false;
_local3++;
}
}
function destroy() {
delete mcRoot;
delete link_mc;
var _local2 = 0;
while (_local2 < particles.length) {
particles[_local2].mov.destroy();
delete particles[_local2].mov;
delete particles[_local2];
_local2++;
}
delete particles;
_local2 = 0;
while (_local2 < path.length) {
delete path[_local2];
_local2++;
}
delete path;
for (var _local3 in body) {
if (body[_local3] instanceof MovieClip) {
MovieClip(body[_local3]).removeMovieClip();
delete body[_local3];
}
}
body.removeMovieClip();
delete body;
path_x.destroy();
path_y.destroy();
if (path_x instanceof Array) {
_local2 = 0;
while (_local2 < path_x.length) {
delete path_x[_local2];
delete path_y[_local2];
_local2++;
}
delete path_x;
delete path_y;
}
pmov.destroy();
delete pmov;
_local2 = 0;
while (_local2 < pmovs.length) {
pmovs[_local2].destroy();
delete pmovs[_local2];
_local2++;
}
delete pmovs;
}
function clear() {
stopPS();
}
function makeVisible() {
body._visible = true;
}
function makeUnvisible() {
body._visible = false;
}
function initTexture(bmp_src) {
if (active) {
stopPS();
}
var _local5 = new flash.geom.Rectangle(0, 0, bmp_src.width, bmp_src.height);
var _local6 = new flash.geom.Point(0, 0);
var _local3 = 0;
while (_local3 < numb) {
var _local2 = particles[_local3];
_local2.bmp.dispose();
_local2.body.removeMovieClip();
_local2.body = _local2.createEmptyMovieClip("body", 2);
_local2.bmp = new flash.display.BitmapData(bmp_src.width, bmp_src.height, true, 0);
_local2.bmp.copyPixels(bmp_src, _local5, _local6);
_local2.body.attachBitmap(_local2.bmp, 1);
_local2.body._x = (-_local2.body._width) / 2;
_local2.body._y = (-_local2.body._height) / 2;
_local3++;
}
}
function initTextureFromLibrary(id) {
if (active) {
stopPS();
}
var _local3 = 0;
while (_local3 < numb) {
var _local2 = particles[_local3];
_local2.bmp.dispose();
_local2.body.removeMovieClip();
_local2.attachMovie(id, "body", 2);
_local2.body._x = (-_local2.body._width) / 2;
_local2.body._y = (-_local2.body._height) / 2;
_local3++;
}
}
function initPath(path_src_x, path_src_y) {
if (active) {
stopPS();
}
if (((path_src_x instanceof GameClasses.Spline) || (path_src_x instanceof GameClasses.Line)) || (path_src_x instanceof Array)) {
path_x = path_src_x;
path_y = path_src_y;
}
}
function startPS1(numb_repeats, t_delay, t_issue, t_life, x1, y1, xscale1, yscale1, rotation1, alpha1, color1) {
startPS(numb_repeats, t_delay, t_issue, t_life, x1, y1, xscale1, yscale1, rotation1, alpha1, color1);
}
function startPS(numb_repeats, t_delay, t_issue, t_life, x1, y1, xscale1, yscale1, rotation1, alpha1, color1) {
body._x = 0;
var _local16 = getTimer();
active = true;
T = t_delay + (t_issue * (numb - 1));
makeVisible();
t0 = getTimer();
var _local3 = 0;
while (_local3 < pmovs.length) {
pmovs[_local3].destroy();
delete pmovs[_local3];
_local3++;
}
delete pmovs;
pmovs = new Array(numb);
_local3 = 0;
while (_local3 < numb) {
var _local2 = particles[_local3];
var _local7 = getBurnX(t_issue, _local3);
var _local6 = getBurnY(t_issue, _local3);
if (x1 != undefined) {
if (x1 instanceof GameClasses.Spline) {
x1.reCalculate(_local7);
y1.reCalculate(_local6);
} else if (!isNaN(x1)) {
_local2._x = x1;
_local2._y = y1;
x1 = null;
y1 = null;
}
} else {
_local2._x = _local7;
_local2._y = _local6;
}
_local2.mov.endAct = null;
pmovs[_local3] = GameClasses.FreeMove.makeDelay(t_delay + (_local3 * t_issue), GameClasses.GFunctions.create(_local2.mov, _local2.mov.newInitMove, _local2, t_life, 1, x1, y1, xscale1, yscale1, rotation1, alpha1, color1));
_local3++;
}
if (numb_repeats == 1) {
particles[numb - 1].mov.endAct = GameClasses.GFunctions.create(this, stopPS);
} else {
pmov = GameClasses.FreeMove.makeDelay(T, GameClasses.GFunctions.create(this, startPS, 0, 0, t_issue, t_life, x1, y1, xscale1, yscale1, rotation1, alpha1, color1));
}
}
function getBurnX(t, i) {
if (T > 0) {
if (path_x instanceof Array) {
return(path_x[i]);
}
return(path_x.getPoint((t * i) / T));
}
return(0);
}
function getBurnY(t, i) {
if (T > 0) {
if (path_y instanceof Array) {
return(path_y[i]);
}
return(path_y.getPoint((t * i) / T));
}
return(0);
}
function stopPS() {
if (active) {
var _local2 = 0;
while (_local2 < pmovs.length) {
pmovs[_local2].destroy();
delete pmovs[_local2];
_local2++;
}
delete pmovs;
pmov.destroy();
delete pmov;
makeUnvisible();
body._x = -100;
_local2 = 0;
while (_local2 < numb) {
particles[_local2].mov.stopMove();
particles[_local2]._x = -100;
_local2++;
}
active = false;
}
}
function startExplode(x, y, mindx, maxdx, dy, minvy, maxvy, ay, sp_xscale, sp_yscale, sp_alp, color1, delay) {
body._x = x;
body._y = y;
var _local8;
var _local3;
var _local9;
var _local7;
var _local6;
var _local5;
makeVisible();
var _local4 = 0;
while (_local4 <= (particles.length - 1)) {
var _local2 = particles[_local4];
_local7 = mindx + (Math.random() * (maxdx - mindx));
_local8 = new GameClasses.Spline(0, _local7);
_local9 = new GameClasses.Spline(0, (Math.random() * 720) - 360);
_local3 = new GameClasses.AccelLinePath();
_local6 = minvy + (Math.random() * (maxvy - minvy));
_local3.addKey(0, ay, _local6);
_local3.addKey(dy, 0, 1);
_local5 = _local3.calculatePath();
_local2.mov.endAct = null;
_local2.mov.newInitMove(_local2, _local5, 1, _local8, _local3, sp_xscale, sp_yscale, _local9, sp_alp, color1);
_local4++;
}
}
function startInverseExplode(x, y, mindx, maxdx, dy, minvy, maxvy, ay, sp_xscale, sp_yscale, sp_alp, color1, delay) {
body._x = x;
body._y = y;
var _local8;
var _local3;
var _local9;
var _local7;
var _local6;
var _local5;
makeVisible();
var _local4 = 0;
while (_local4 <= (particles.length - 1)) {
var _local2 = particles[_local4];
_local7 = mindx + (Math.random() * (maxdx - mindx));
_local8 = new GameClasses.Spline(0, _local7);
_local9 = new GameClasses.Spline(0, (Math.random() * 720) - 360);
_local3 = new GameClasses.AccelLinePath();
_local6 = minvy + (Math.random() * (maxvy - minvy));
_local3.addKey(0, ay, _local6);
_local3.addKey(dy, 0, 1);
_local5 = _local3.calculatePath();
_local2.mov.endAct = null;
_local2.mov.updateAct = _local2.mov.updateActInverse;
_local2.mov.newInitMove(_local2, _local5, 1, _local8, _local3, sp_xscale, sp_yscale, _local9, sp_alp, color1);
_local4++;
}
}
static function makeSimpleFire(root_mc) {
var _local1 = new GameClasses.NewParticleSystem(root_mc, 12);
_local1.initTextureFromLibrary("blur1");
return(_local1);
}
function startSimpleFire(x, y, t_delay, _scale) {
var _local2;
if (!_scale) {
_local2 = 1;
} else {
_local2 = _scale;
}
var _local11 = new flash.geom.Point(x, y);
var _local10 = new flash.geom.Point(x, y - (_local2 * 13));
var _local9 = new flash.geom.Point(x, y - (_local2 * 50));
var _local12 = [_local11, _local10, _local9];
var _local4 = [2, 4, 2];
var _local6 = [_local2 * 25, _local2 * 55, _local2 * 30, _local2 * 5];
var _local5 = [_local2 * 5, _local2 * 5, _local2 * 5, _local2 * 1];
var _local3 = [60, 100, 80, 10];
var _local8 = [16776960, 16711680];
var _local7 = [-180, 180];
startFire(t_delay, 720, 60, _local12, _local4, _local6, _local5, _local3, _local8, _local7);
}
function startFireParticle(part, t_life, t_delay, points, p_rads, scales, s_rads, alphas, color1, rotations) {
var _local10 = new GameClasses.Spline();
var _local9 = new GameClasses.Spline();
var _local2 = 0;
while (_local2 < points.length) {
var _local1 = p_rads[_local2] * (1 - (2 * Math.random()));
var _local6 = Math.sqrt((p_rads[_local2] * p_rads[_local2]) - (_local1 * _local1)) * (1 - (2 * Math.random()));
_local10.addKey(points[_local2].x + _local1);
_local9.addKey(points[_local2].y + _local6);
_local2++;
}
_local10.Calculate(false);
_local9.Calculate(false);
var _local11 = new GameClasses.Spline();
var _local12 = new GameClasses.Spline();
_local2 = 0;
while (_local2 < scales.length) {
var _local1 = s_rads[_local2] * (1 - (2 * Math.random()));
var _local6 = Math.sqrt((s_rads[_local2] * s_rads[_local2]) - (_local1 * _local1)) * (1 - (2 * Math.random()));
_local11.addKey(scales[_local2] + _local1);
_local12.addKey(scales[_local2] + _local6);
_local2++;
}
_local11.Calculate(false);
_local12.Calculate(false);
var _local15 = new GameClasses.Line(rotations[0] + ((rotations[1] - rotations[0]) * Math.random()), rotations[0] + ((rotations[1] - rotations[0]) * Math.random()));
var _local13 = new GameClasses.Spline();
_local2 = 0;
while (_local2 < alphas.length) {
_local13.addKey(alphas[_local2]);
_local2++;
}
_local13.Calculate(false);
GameClasses.FreeMove.makeDelay(t_delay, GameClasses.GFunctions.create(part.mov, part.mov.newInitMove, part, t_life, 1, _local10, _local9, _local11, _local12, _local15, _local13, color1));
}
function startFire(t_delay, t_life, t_issue, points, p_rads, scales, s_rads, alphas, color1, rotations) {
body._x = 0;
makeVisible();
var _local3 = 0;
while (_local3 < particles.length) {
var _local2 = particles[_local3];
_local2.mov.endAct = GameClasses.GFunctions.create(this, startFireParticle, _local2, t_life, 1, points, p_rads, scales, s_rads, alphas, color1, rotations);
startFireParticle(_local2, t_life, t_delay + (t_issue * _local3), points, p_rads, scales, s_rads, alphas, color1, rotations);
_local3++;
}
pmov = GameClasses.FreeMove.makeDelay(t_delay + (t_issue * (particles.length - 1)), GameClasses.GFunctions.create(this, startFire, 0, t_life, t_issue, points, p_rads, scales, s_rads, alphas, color1, rotations));
}
function addMC(id, x, y) {
body.attachMovie(id, id, body.getNextHighestDepth());
body[id]._x = x;
body[id]._y = y;
}
static var depth = 0;
var link_mc = null;
var path_x = null;
var path_y = null;
var active = false;
var randX = 0;
var randY = 0;
}
Symbol 1716 MovieClip [__Packages.GameClasses.BonusField] Frame 0
class GameClasses.BonusField
{
var mcRoot, small_bonus, bonuses, hw, txt, rect, updateNumb, numb, x0, y0, class_name, text_x, text_y;
function BonusField () {
}
function destroy() {
mcRoot = null;
small_bonus.destroy();
small_bonus.removeMovieClip();
small_bonus = null;
bonuses[0].destroy();
bonuses[0].removeMovieClip();
bonuses[0] = null;
bonuses = null;
hw.destroy();
hw = null;
txt.destroy();
txt = null;
rect = null;
updateNumb = null;
}
function clear() {
delete bonuses;
}
function getVisibleElems() {
var _local2 = new Array();
_local2.push(bonuses[0]);
_local2.push(small_bonus);
_local2.push(txt.getBody());
return(_local2);
}
function initBonusField(mc, x, y, numb) {
this.numb = numb;
var _local5;
mcRoot = mc;
x0 = x;
y0 = y;
bonuses = new Array();
bonuses[0] = mcRoot.attachMovie(class_name, class_name + mcRoot.depth_for_bonuses, mcRoot.depth_for_bonuses++);
bonuses[0]._alpha = 0;
bonuses[0].initBonus("chips.png", rect);
bonuses[0].breakShine();
bonuses[0]._x = x0;
bonuses[0]._y = y0;
bonuses[0].initFieldBonus();
txt = new GameClasses.TextClass(mcRoot, mcRoot.depth_for_bonuses++, _root.dialogs.BonusBombZLText, x0 + text_x, y0 + text_y);
hw = new GameClasses.HintWindow(mcRoot, bonuses[0], _root.dialogs["HintWindowText" + class_name]);
if (numb > 0) {
bonuses[0]._visible = true;
bonuses[0].enableBonus();
bonuses[0]._alpha = 100;
txt.setText("x" + numb);
} else {
bonuses[0]._visible = false;
hw.disableHint();
bonuses[0].disableBonus();
}
small_bonus = mcRoot.attachMovie(class_name, class_name + (mcRoot.depth_for_bonuses + 201), mcRoot.depth_for_bonuses + 201);
small_bonus._alpha = 0;
small_bonus._x = x0;
small_bonus._y = y0;
small_bonus.initBonus("chips.png", rect);
small_bonus.breakShine();
}
function startPS(x, y) {
}
function addBonus(bonus) {
switch (bonuses[0].type) {
case "bomb" :
mcRoot.startReadyBombBonusHelpHint();
break;
case "zl" :
mcRoot.startReadyZLBonusHelpHint();
break;
case "time" :
mcRoot.startReadyTimeBonusHelpHint();
break;
case "swap" :
mcRoot.startReadySwapBonusHelpHint();
}
numb++;
if (bonus) {
bonus.removeMovieClip();
}
if (numb == 1) {
bonuses[0]._visible = true;
bonuses[0].enableBonus();
hw.enableHint();
bonuses[0]._x = x0;
bonuses[0]._y = y0;
bonuses[0].bonus_state = GameClasses.Bonus.NOT_SELECTED;
bonuses[0]._alpha = 100;
txt.setText("x" + numb);
} else if (numb > 1) {
txt.setText("x" + numb);
}
updateNumb();
}
function removeBonus() {
numb--;
if (numb <= 0) {
bonuses[0]._visible = false;
bonuses[0].disableBonus();
hw.disableHint();
txt.setText(" ");
bonuses[0]._alpha = 0;
bonuses[0].bonus_state = GameClasses.Bonus.DISABLED;
} else {
txt.setText("x" + numb);
}
updateNumb();
}
var selected_this = false;
}
Symbol 1717 MovieClip [__Packages.GameClasses.Bonus] Frame 0
class GameClasses.Bonus extends MovieClip
{
var snd, mcRoot, _parent, mov, concurent_bonus_fields, bonus_field, onPress, body, blur_body, bmp, blur_bmp, shine_mc, createEmptyMovieClip, shine_color, hitArea, _x, _y, tabEnabled, onDragOver, onDragOut, onRollOver, onRollOut;
function Bonus () {
super();
snd = GameClasses.MySounds.getMySounds();
mcRoot = _parent;
mov = new GameClasses.FreeMove();
concurent_bonus_fields = new Array();
}
function disableBonus() {
bonus_state = DISABLED;
}
function enableBonus() {
bonus_state = NOT_SELECTED;
}
function destroy() {
Mouse.removeListener(listener);
snd = null;
mcRoot = null;
bonus_field = null;
roll_over_mc = null;
selected_bonus = null;
delete tremble_arr;
delete concurent_bonus_fields;
delete listener;
delete onPress;
body.removeMovieClip();
body = null;
blur_body.removeMovieClip();
blur_body = null;
bmp.dispose();
bmp = null;
blur_bmp.dispose();
blur_bmp = null;
mov.destroy();
mov = null;
shine_mc.mov.destroy();
shine_mc.mov = null;
}
function removeMovieClip() {
snd = null;
mcRoot = null;
Mouse.removeListener(listener);
delete tremble_arr;
delete listener;
delete onPress;
body.clear();
body.removeMovieClip();
blur_body.clear();
blur_body.removeMovieClip();
bmp.dispose();
blur_bmp.dispose();
mov.clear();
delete mov;
super.removeMovieClip();
}
function initBonus(id_tex, rect) {
var _local2 = flash.display.BitmapData.loadBitmap(id_tex);
var _local9 = new flash.geom.Point(0, 0);
var _local4;
var _local3 = new flash.filters.BlurFilter(blur_intensity, blur_intensity, 1);
var _local7 = new Array();
_local7.push(_local3);
bmp = new flash.display.BitmapData(rect.width, rect.height, true, 0);
bmp.copyPixels(_local2, rect, _local9);
body = createEmptyMovieClip("body", 3);
body.attachBitmap(bmp, 1, "never", true);
shine_mc = body.createEmptyMovieClip("shine_mc", body.getNextHighestDepth());
shine_mc.mov = new GameClasses.FreeMove();
shine_mc.mov.endAct = null;
blur_bmp = new flash.display.BitmapData(bmp.width + 40, bmp.height + 40, true, 0);
blur_bmp.applyFilter(bmp, new flash.geom.Rectangle(0, 0, bmp.width, bmp.height), new flash.geom.Point(20, 20), _local3);
var _local8 = -20;
var _local6 = -20;
blur_body = createEmptyMovieClip("blur_body", 2);
blur_body.attachBitmap(blur_bmp, 1);
blur_body.width = blur_body._width;
blur_body.height = blur_body._height;
blur_body.x = _local8;
blur_body.y = _local6;
_local4 = new Color(blur_body);
_local4.setRGB(shine_color);
blur_body._alpha = blur_opacity;
blur_body._xscale = blur_body._xscale * min_shine_coof;
blur_body._yscale = blur_body._yscale * min_shine_coof;
blur_body._alpha = 0;
hitArea = body;
_local2.dispose();
startShine();
}
function startShine() {
blur_body._alpha = 100;
shine_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateShine);
GameClasses.FreeMove.addActivePiece(shine_mc, getTimer());
shine_mc.mov.initMove(shine_mc, T_shine * 2, 0);
}
function startBigShine() {
blur_body._alpha = 100;
shine_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateBigShine);
GameClasses.FreeMove.addActivePiece(shine_mc, getTimer());
shine_mc.mov.initMove(shine_mc, T_shine * 2, 0);
}
function breakShine() {
shine_mc.mov.stopMove1();
blur_body._alpha = 0;
blur_body._xscale = 100;
blur_body._yscale = 100;
blur_body._x = blur_body.x;
blur_body._y = blur_body.y;
}
function breakBigShine() {
shine_mc.mov.stopMove1();
blur_body._alpha = 0;
blur_body._xscale = 100;
blur_body._yscale = 100;
blur_body._x = blur_body.x;
blur_body._y = blur_body.y;
}
function updateShine() {
var _local3;
var _local2 = shine_mc.mov.t * 4;
if (_local2 >= 2) {
schine_counter = ((schine_counter >= position_end_shine) ? 0 : (schine_counter + 1));
shine_mc.mov.last_t = shine_mc.mov.curr_t;
_local2 = 0;
} else if (_local2 >= 1) {
_local2 = 2 - _local2;
}
if (schine_counter == position_end_shine) {
_local3 = min_shine_coof + (_local2 * (max2_shine_coof - min_shine_coof));
} else {
_local3 = min_shine_coof + (_local2 * (max_shine_coof - min_shine_coof));
}
blur_body._xscale = 100 * _local3;
blur_body._yscale = 100 * _local3;
blur_body._x = blur_body.x - ((blur_body.width * (_local3 - 1)) / 2);
blur_body._y = blur_body.y - ((blur_body.height * (_local3 - 1)) / 2);
}
function updateBigShine() {
var _local3;
var _local2 = shine_mc.mov.t * 4;
if (_local2 >= 2) {
shine_mc.mov.last_t = shine_mc.mov.curr_t;
_local2 = 0;
} else if (_local2 >= 1) {
_local2 = 2 - _local2;
}
_local3 = min_big_shine_coof + (_local2 * (max_big_shine_coof - min_big_shine_coof));
blur_body._xscale = 100 * _local3;
blur_body._yscale = 100 * _local3;
blur_body._x = blur_body.x - ((blur_body.width * (_local3 - 1)) / 2);
blur_body._y = blur_body.y - ((blur_body.height * (_local3 - 1)) / 2);
}
function endShine() {
shine_mc.mov.stopMove1();
shine_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateEndShine);
GameClasses.FreeMove.addActivePiece(shine_mc, getTimer());
shine_mc.mov.initMove(shine_mc, T_shine * 2, 0);
blur_body._alpha = blur_opacity;
min_shine_coof = 1;
}
function updateEndShine() {
var _local3;
var _local2 = shine_mc.mov.t * 4;
if (_local2 >= 2) {
blur_body._alpha = 0;
_local2 = 0;
shine_mc.mov.stopMove1();
} else if (_local2 >= 1) {
_local2 = 2 - _local2;
}
_local3 = min_shine_coof + (_local2 * (max2_shine_coof - min_shine_coof));
blur_body._xscale = 100 * _local3;
blur_body._yscale = 100 * _local3;
blur_body._x = blur_body.x - ((blur_body.width * (_local3 - 1)) / 2);
blur_body._y = blur_body.y - ((blur_body.height * (_local3 - 1)) / 2);
}
function moveToField() {
snd.startSound("FallenVisBonus");
var _local3;
var _local2;
_local3 = new GameClasses.Spline(_x, (_x + bonus_field().x0) / 2, bonus_field().x0);
_local2 = new GameClasses.Spline(_y, bonus_field().y0 - (Math.random() * 15), bonus_field().y0);
_local3.Calculate();
_local2.Calculate();
mov.__set__endAct(GameClasses.GFunctions.create(this, function () {
this.breakShine();
this.bonus_field().addBonus(this);
this.mov.endAct = null;
}));
GameClasses.FreeMove.addActivePiece(this, getTimer());
mov.initMove(this, GameClasses.Consts.TIME_OF_THE_BOMB_BONUS_MOVE, 0, _local3, _local2);
}
function initFieldBonus() {
tabEnabled = false;
onDragOver = onRollOverAct;
onDragOut = onRollOutAct;
onRollOver = onRollOverAct;
onRollOut = onRollOutAct;
onPress = onPressAct;
}
function uninitFieldBonus() {
}
function onRollOverAct() {
if (bonus_state == NOT_SELECTED) {
startShine();
}
}
function onRollOutAct() {
if (bonus_state == NOT_SELECTED) {
breakShine();
}
}
function onPressAct() {
if (bonus_state == NOT_SELECTED) {
onPressAct1();
} else if (bonus_state == SELECTED) {
onPressAct2();
}
}
function onPressAct1() {
if (bonus_state == DISABLED) {
return(undefined);
}
if (mcRoot.TheField.isLocked() || (mcRoot.is_locked)) {
return(undefined);
}
if (!mcRoot.TheField.was_first_step) {
mcRoot.TheField.was_first_step = true;
mcRoot.timer.play();
}
var _local4 = mcRoot.theField.is_locked;
var _local2 = 0;
while (_local2 < concurent_bonus_fields.length) {
if (concurent_bonus_fields[_local2]().selected_this) {
concurent_bonus_fields[_local2]().bonuses[0].onPressAct2();
break;
}
_local2++;
}
var _local3;
snd.startSound("take_bonus");
bonus_field().selected_this = true;
bonus_state = SELECTED;
mcRoot.TheField.lockTheField();
_local3 = bonus_field().small_bonus;
_local3._alpha = 100;
_local3.listener.onMouseMove = GameClasses.GFunctions.create(_local3, moveActiveBonus);
_local3.listener.onMouseDown = GameClasses.GFunctions.create(_local3, movePressBonus, bonus_field());
Mouse.addListener(_local3.listener);
_local3.mov.endAct = null;
GameClasses.FreeMove.addActivePiece(_local3, getTimer());
_local3.mov.initLineTo(_local3, mcRoot._xmouse + 15, mcRoot._ymouse + 2, 70, 70, 0, GameClasses.Consts.TIME_OF_THE_MOVE_SMALL_BONUS);
startBigShine();
}
function onPressAct2() {
if (bonus_state == DISABLED) {
return(undefined);
}
if (mcRoot.TheField.count_move_on_the_field != 0) {
return(undefined);
}
var _local2 = bonus_field().small_bonus;
snd.startSound("drop_bonus");
bonus_field().selected_this = false;
bonus_state = NOT_SELECTED;
mcRoot.theField.unlockTheField();
Mouse.removeListener(_local2.listener);
_local2.mov.endAct = GameClasses.GFunctions.create(_local2, function () {
this._alpha = 0;
});
_local2.mov.newInitMove(_local2, GameClasses.Consts.TIME_OF_THE_MOVE_SMALL_BONUS, 0, bonus_field().x0, bonus_field().y0, 100, 100);
breakBigShine();
}
function startTremble(mc) {
if (mc.tremble_x0 == undefined) {
mc.tremble_x0 = mc._x;
mc.tremble_y0 = mc._y;
mc.updateTremble = function () {
this._x = ((Math.random() * 4) + this.tremble_x0) - 2;
this._y = ((Math.random() * 4) + this.tremble_y0) - 2;
};
mc.interval_tremble = 0;
}
GameClasses.FreeMove.clearInterval(mc.interval_tremble);
mc.interval_tremble = 0;
mc.interval_tremble = GameClasses.FreeMove.setInterval(mc, "updateTremble", 8);
}
function stopTremble(mc) {
GameClasses.FreeMove.clearInterval(mc.interval_tremble);
mc.interval_tremble = 0;
mc._x = mc.tremble_x0;
mc._y = mc.tremble_y0;
delete mc.tremble_x0;
}
function movePressBonus(bonus_field) {
}
function moveActiveBonus() {
}
var blur_opacity = 60;
var min_shine_coof = 1.1;
var max_shine_coof = 1.3;
var max2_shine_coof = 2;
var min_big_shine_coof = 1;
var max_big_shine_coof = 2;
var T_shine = GameClasses.Consts.TIME_OF_THE_SHINE_PERIOD;
var T_shine_end = GameClasses.Consts.TIME_OF_THE_END_SHINE_PERIOD;
var position_end_shine = GameClasses.Consts.POSITION_OF_THE_END_SHINE;
var blur_intensity = 8;
var t0_shine = 0;
var schine_counter = 0;
static var selected_bonus = false;
var listener = new Object();
var tremble_arr = new Array();
var roll_over_mc = null;
static var NOT_SELECTED = 1;
static var SELECTED = 2;
static var DISABLED = 3;
var bonus_state = NOT_SELECTED;
}
Symbol 1718 MovieClip [__Packages.GameClasses.BombBonusField] Frame 0
class GameClasses.BombBonusField extends GameClasses.BonusField
{
var class_name, rect, text_x, text_y, updateNumb, ps, mcRoot, small_bonus;
function BombBonusField () {
super();
class_name = "Bomb";
rect = new flash.geom.Rectangle(26, 52, 26, 26);
text_x = 21;
text_y = 10;
updateNumb = function () {
GameClasses.Match3Level.numb_b = this.numb;
};
}
function clear() {
super.clear();
ps.clear();
}
function initBombBonusField(mc, x, y) {
super.initBonusField(mc, x, y, GameClasses.Match3Level.numb_b);
ps = new GameClasses.ParticleSystem("particles.png", 0, 64, 32, 32, mcRoot.depth_for_bonus_ps++, false, 70);
var _local3 = new GameClasses.Spline(1, 200, 350, 200, 1);
_local3.Calculate();
ps.initParticleSystem(small_bonus, 7, 700, 0, 360, 0.01, 0, 100, 0, 0, _local3, 16711680, 16750848);
}
function startPS(x, y) {
ps.startParticleSystem(new flash.geom.Point(x, y));
}
}
Symbol 1719 MovieClip [__Packages.GameClasses.MyTime] Frame 0
class GameClasses.MyTime extends MovieClip
{
var mcRoot, _parent, blendMode, body_bmp_full, body_bmp, body_mc, fix, srez, nps, rect1, rect2, point, hw, mov, body_mask_mc, createEmptyMovieClip, attachMovie, _x, _y, T, t0, curr_time, hitArea, finish_h, full_h, added_ochki, full_ochki;
function MyTime () {
super();
mcRoot = _parent;
blendMode = "layer";
}
function destroy() {
mcRoot = null;
body_bmp_full.dispose();
body_bmp_full = null;
body_bmp.dispose();
body_bmp = null;
body_mc.removeMovieClip();
body_mc = null;
fix.removeMovieClip();
fix = null;
srez.removeMovieClip();
srez = null;
nps.destroy();
nps = null;
rect1 = null;
rect2 = null;
point = null;
hw.destroy();
hw = null;
mov.destroy();
mov = null;
body_mask_mc.mov.destroy();
body_mask_mc.mov = null;
body_mask_mc.removeMovieClip();
body_mask_mc = null;
}
function getBody() {
return(this);
}
function removeMovieClip() {
body_bmp_full.dispose();
body_bmp.dispose();
body_mc.removeMovieClip();
fix.removeMovieClip();
srez.removeMovieClip();
super.removeMovieClip();
}
function initTimer(id_time, x, y, T) {
var _local7;
mcRoot.game_time = T;
body_bmp_full = flash.display.BitmapData.loadBitmap(id_time + ".png");
body_bmp = new flash.display.BitmapData(body_bmp_full.width, body_bmp_full.height, true, 0);
body_bmp.copyPixels(body_bmp_full, new flash.geom.Rectangle(0, 0, body_bmp_full.width, body_bmp_full.height), new flash.geom.Point(0, 0));
body_mc = createEmptyMovieClip("body_mc", 1);
body_mc.attachBitmap(body_bmp, 1);
body_mask_mc = createEmptyMovieClip("body_mask_mc", 2);
GameClasses.Consts.drawRectangle(body_mask_mc, new flash.geom.Rectangle(0, 0, body_bmp_full.width, body_bmp_full.height));
body_mask_mc.mov = new GameClasses.FreeMove();
fix = attachMovie(id_time + "Fix", "fix", 7);
srez = attachMovie(id_time + "Srez", "srez", 6);
srez.forceSmoothing = true;
srez._x = -1;
srez._y = -1;
fix._y = body_mc._height - 23;
_x = x;
_y = y;
this.T = T;
t0 = getTimer();
curr_time = 0;
rect1 = new flash.geom.Rectangle(0, 0, body_bmp_full.width, body_bmp_full.height);
rect2 = new flash.geom.Rectangle(0, 0, body_bmp_full.width, 1);
point = new flash.geom.Point(0, 0);
hitArea = body_mc;
hw = new GameClasses.HintWindow(mcRoot, this, _root.dialogs.HintWindowTextTimer);
mov = new GameClasses.FreeMove();
body_mask_mc.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.mcRoot.snd.startSound("level_lost");
this.mcRoot.game_time = 0;
this.mcRoot.showEndOfTimeHW();
});
body_mask_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateTimer);
body_mask_mc._x = body_mc._x;
body_mc.setMask(body_mask_mc);
initPS();
}
function initPS() {
var _local3 = flash.display.BitmapData.loadBitmap("particles.png");
var _local2 = new flash.display.BitmapData(32, 32, true, 0);
_local2.copyPixels(_local3, new flash.geom.Rectangle(32, 64, 32, 32), new flash.geom.Point(0, 0));
_local3.dispose();
nps = new GameClasses.NewParticleSystem(mcRoot.NPS_LEVEL_MC, bonus_numb_nps);
nps.initTexture(_local2);
_local2.dispose();
nps.initPath(new GameClasses.Spline(370, 400, 430, 460, 510, 500, 510, 500, 510), new GameClasses.Spline(370, 360, 370, 380, 370, 300, 200, 100, 60));
}
function startBonus() {
nps.startPS(1, 0, bonus_issue_delay, bonus_particle_life, null, null, new GameClasses.Spline(0, 100, 0), new GameClasses.Spline(0, 100, 0));
var _local2 = ((bonus_issue_delay * bonus_numb_nps) + bonus_particle_life) / 2;
addTime(bonusAddTime, _local2);
}
function startTimer() {
play();
body_mask_mc.mov.newInitMove(body_mask_mc, mcRoot.game_time, 0);
}
function updateTimer(y) {
curr_time = body_mask_mc.mov.t;
if (y == undefined) {
y = curr_time * body_bmp_full.height;
}
mcRoot.game_time = T * (1 - curr_time);
if (rect2.y > y) {
y = rect2.y - 2;
}
srez._y = y - 1;
rect2.y = y;
rect2.height = body_bmp_full.height - y;
point.y = y;
body_mask_mc._y = y;
}
function addTime(val, delay) {
if (delay) {
GameClasses.FreeMove.makeDelay(delay, GameClasses.GFunctions.create(this, addTime, val));
return(undefined);
}
if ((body_mask_mc.mov.curr_t - body_mask_mc.mov.last_t) > val) {
body_mask_mc.mov.last_t = body_mask_mc.mov.last_t + val;
} else {
body_mask_mc.mov.last_t = body_mask_mc.mov.curr_t;
}
}
function finishUpdate() {
var _local2 = body_mask_mc.mov.t;
var _local3 = finish_h + (_local2 * (full_h - finish_h));
updateTimer(_local3);
}
function finishTime(endAct) {
body_mask_mc.mov.stopMove();
finish_h = rect2.y;
full_h = body_bmp_full.height;
added_ochki = 0;
full_ochki = 5 * Math.floor(full_h - finish_h);
body_mask_mc.mov.updateAct = GameClasses.GFunctions.create(this, finishUpdate);
body_mask_mc.mov.endAct = endAct;
var _local4 = (full_h - finish_h) * 10;
body_mask_mc.mov.newInitMove(body_mask_mc, _local4, 0);
mcRoot.counter.add(full_ochki, _local4);
var _local5 = GameClasses.StatisticClass.getSingleton();
_local5.setRecordValue("timeBonus", full_ochki);
var _local3 = int((full_h - finish_h) / 20);
var _local2 = 0;
while (_local2 < _local3) {
GameClasses.FreeMove.makeDelay((_local2 * _local4) / _local3, GameClasses.GFunctions.create(mcRoot.theField.et, mcRoot.theField.et.emerge, _x, (_y + finish_h) + (_local2 * 20), "+100"));
_local2++;
}
}
function pause() {
_root.pauseGlobalGameTime();
body_mask_mc.mov.makePause();
}
function play() {
_root.playGlobalGameTime();
body_mask_mc.mov.makePlay();
}
var bonusAddTime = 60000;
var bonus_issue_delay = 100;
var bonus_particle_life = 500;
var bonus_numb_nps = 30;
}
Symbol 1720 MovieClip [__Packages.GameClasses.StatisticClass] Frame 0
class GameClasses.StatisticClass
{
static var log;
var mcRoot, object, body, data, bodies, curr_body, square_mc;
function StatisticClass (obj, mc_root, depth) {
mcRoot = mc_root;
object = obj;
body = mcRoot.createEmptyMovieClip("statistic" + depth, depth);
body.mov = new GameClasses.FreeMove();
setVisible(false);
data = new Object();
bodies = new Object();
bodies[object.id] = body.createEmptyMovieClip(object.id, body.getNextHighestDepth());
initView(bodies[object.id]);
curr_body = bodies[object.id];
square_mc = curr_body.square_mc;
disableAllButtons();
}
static function getSingleton(obj, mc_root, depth) {
if (singleton == null) {
log = logger.Logger.getLog();
if (obj == undefined) {
log.warn("obj not assignment");
return(null);
}
if (mc_root == undefined) {
log.warn("mc_root not assignment");
return(null);
}
if (depth == undefined) {
log.warn("depth not assignment");
return(null);
}
singleton = new GameClasses.StatisticClass(obj, mc_root, depth);
}
return(singleton);
}
function setVisible(vis) {
body._visible = vis;
if (!vis) {
for (var _local2 in curr_body.records) {
curr_body.records[_local2].setAlpha(0);
}
}
}
function setXY(x, y) {
body._x = x;
body._y = y;
}
function addView(obj) {
object = obj;
if (bodies[object.id]) {
return(undefined);
}
bodies[object.id] = body.createEmptyMovieClip(object.id, body.getNextHighestDepth());
bodies[object.id]._visible = false;
initView(bodies[object.id]);
}
function setView(str) {
curr_body._visible = false;
curr_body = bodies[str];
curr_body._visible = true;
setVisible(false);
square_mc = curr_body.square_mc;
}
function initView(body_mc) {
var _local10;
body_mc.records = new Object();
body_mc.buttons = new Array();
body_mc.texts = new Array();
var _local15 = body_mc.records;
var _local14 = body_mc.buttons;
var _local16 = body_mc.texts;
createSquare(body_mc, 2);
var _local5 = 3;
var _local7 = 0;
while (_local7 < object.pictures.length) {
var _local3 = object.pictures[_local7];
if (_local3.type == "menu_bg") {
createMenuBg(body_mc, _local3.lib_name, _local5, _local3.h);
body._x = _local3.x;
body._y = _local3.y;
} else if (_local3.type == "menu_button") {
if (bg != null) {
_local10 = bg._width;
} else {
_local10 = 0;
}
var _local4 = new GameClasses.MenuButton(body_mc, _local3.lib_name, _local5, _root.dialogs[_local3.text.id], _local10, _local3.x, _local3.y, _local3.dx, _local3.dy);
_local4.addAction(GameClasses.GFunctions.create(this, this[_local3.action]));
if (!_local3.enabled) {
_local4.disable();
}
_local14[_local3.id] = _local4;
_local14.push(_local4);
} else if (_local3.type == "text") {
var _local13;
var _local9 = _root.dialogs[_local3.text.id];
if (bg != null) {
_local9.w = bg._width;
}
_local13 = new GameClasses.TextClass(body_mc, _local5, _local9, _local3.x, _local3.y);
_local16.push(_local13);
} else if (_local3.type == "record") {
var _local8;
var _local12 = _root.dialogs[_local3.texts[0]];
var _local11 = _root.dialogs[_local3.texts[1]];
_local8 = new GameClasses.RecordClass(body_mc, _local3.id, _local12, _local11, _local5, _local3.x, _local3.y);
if (bg != null) {
_local8.toAlign(bg._width);
}
_local15[_local3.id] = _local8;
if (!data[_local3.id]) {
data[_local3.id] = 0;
}
}
_local7++;
_local5++;
}
}
function createMenuBg(body_mc, lib_id, depth, h) {
var _local2;
var _local3 = new Array();
var _local4;
var _local5;
bg = body_mc.createEmptyMovieClip("bg", depth);
_local3[0] = bg.attachMovie(lib_id + "top", "top", 0);
bg.attachMovie(lib_id + "bottom", "bottom", 100);
_local4 = bg.top._height + bg.bottom._height;
_local2 = 1;
while (_local4 < h) {
_local3[_local2] = bg.attachMovie(lib_id + "middle", "middle" + _local2, _local2);
_local4 = _local4 + _local3[_local2]._height;
_local2++;
}
_local3[_local2] = bg.bottom;
_local5 = 0;
_local2 = 0;
while (_local2 < _local3.length) {
_local3[_local2]._y = _local5;
_local5 = _local5 + _local3[_local2]._height;
_local2++;
}
}
function createSquare(body_mc, depth) {
var _local1 = body_mc.createEmptyMovieClip("square_mc", depth);
_local1.beginFill(0, 100);
_local1.moveTo(0, 0);
_local1.lineTo(520, 0);
_local1.lineTo(520, 390);
_local1.lineTo(0, 390);
_local1.lineTo(0, 0);
_local1.endFill();
_local1.onPress = function () {
};
_local1.tabEnabled = false;
_local1.useHandCursor = false;
_local1._x = 520;
_local1.mov = new GameClasses.FreeMove();
}
function addRecordValue(id, val) {
data[id] = data[id] + val;
curr_body.records[id].setValue(data[id]);
}
function setRecordValue(id, val) {
data[id] = val;
curr_body.records[id].setValue(data[id]);
}
function getRecordValue(id) {
return(data[id]);
}
function setZero() {
for (var _local2 in data) {
data[_local2] = 0;
}
for (var _local2 in curr_body.records) {
curr_body.records[_local2].setValue(0);
}
}
function enableAllButtons() {
for (var _local2 in curr_body.buttons) {
if (curr_body.buttons[_local2] instanceof GameClasses.MenuButton) {
curr_body.buttons[_local2].enable();
}
}
}
function disableAllButtons() {
for (var _local2 in curr_body.buttons) {
if (curr_body.buttons[_local2] instanceof GameClasses.MenuButton) {
curr_body.buttons[_local2].disable();
}
}
}
function showRecords(fun) {
var _local5 = GameClasses.GFunctions.create(this, function () {
for (var _local2 in this.curr_body.records) {
if (this.curr_body.records[_local2] instanceof GameClasses.RecordClass) {
this.curr_body.records[_local2].quickShow(null);
}
}
fun();
butt.clearActions();
butt.addAction(GameClasses.GFunctions.create(this, this.loadNextLevel));
});
var _local2 = new Array();
for (var _local4 in curr_body.records) {
if (curr_body.records[_local4] instanceof GameClasses.RecordClass) {
_local2.push(curr_body.records[_local4]);
}
}
var _local3 = _local2.length - 1;
while (_local3 > 0) {
_local2[_local3].show(null, ((_local2.length - _local3) - 1) * _local2[_local3].getShowT());
_local3--;
}
_local2[0].show(_local5, (_local2.length - 1) * _local2[0].getShowT());
var butt = GameClasses.MenuButton(curr_body.buttons.button_1);
butt.clearActions();
butt.addAction(_local5);
butt.enable();
delete butt;
_local3 = 0;
while (_local3 < _local2.length) {
delete _local2[_local3];
_local3++;
}
}
function loadNextLevel() {
hide(GameClasses.GFunctions.create(mcRoot.level, mcRoot.level.loadNextLevel));
}
function show() {
disableAllButtons();
square_mc._x = -body._x;
square_mc._y = -body._y;
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.showRecords(GameClasses.GFunctions.create(this, this.enableAllButtons));
});
body.mov.newInitMove(body, T, 1, null, null, null, null, null, new GameClasses.Spline(0, 100));
square_mc.mov.newInitMove(square_mc, T, 1, null, null, null, null, null, new GameClasses.Spline(0, 50));
}
function hide(fun) {
disableAllButtons();
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.square_mc._x = 520;
this.body.mov.endAct = null;
this.setVisible(false);
});
fun();
body.mov.newInitMove(body, T, 0, null, null, null, null, null, new GameClasses.Spline(100, 0));
square_mc.mov.newInitMove(square_mc, T, 1, null, null, null, null, null, new GameClasses.Spline(50, 0));
}
static var singleton = null;
var bg = null;
var T = 400;
}
Symbol 1721 MovieClip [__Packages.GameClasses.RecordClass] Frame 0
class GameClasses.RecordClass
{
var mcRoot, id, body, txt_left, txt_right;
function RecordClass (mc_root, id, tObjL, tObjR, depth, x, y) {
mcRoot = mc_root;
this.id = id;
body = mcRoot.createEmptyMovieClip(id, depth);
body.mov = new GameClasses.FreeMove();
body._alpha = 0;
body._x = x;
body._y = y;
txt_left = new GameClasses.TextClass(body, 1, tObjL, 0, 0);
txt_right = new GameClasses.TextClass(body, 2, tObjR, 0, 0);
}
function getShowT() {
return(showT);
}
function destroy() {
mcRoot = null;
txt_left.destroy();
txt_left = null;
txt_right.destroy();
txt_right = null;
body.mov.destroy();
delete body.mov;
body.removeMovieClip();
delete body;
}
function show(fun, delay) {
var _local2 = GameClasses.GFunctions.create(this, function () {
GameClasses.MySounds.getMySounds().startSound("StatTip");
this.body.mov.endAct = fun;
this.body.mov.newInitMove(this.body, this.showT, 1, null, null, null, null, null, 100);
});
body.mov.endAct = _local2;
body.mov.newInitMove(body, delay, 0);
}
function quickShow(fun) {
body.mov.stopMove();
body._visible = true;
body._alpha = 100;
fun();
}
function setAlpha(val) {
body._alpha = val;
}
function toAlign(w) {
body._x = (w - body._width) / 2;
}
function addValue(val) {
var _local2 = Number(txt_right.getText());
txt_right.setText(String(_local2 + val));
}
function setValue(val) {
txt_right.setText(String(val));
}
function getValue() {
return(Number(txt_right.getText()));
}
var showT = 300;
}
Symbol 1722 MovieClip [__Packages.GameClasses.ZeusLightningBonusField] Frame 0
class GameClasses.ZeusLightningBonusField extends GameClasses.BonusField
{
var class_name, rect, text_x, text_y, updateNumb, ps;
function ZeusLightningBonusField () {
super();
class_name = "ZeusLightning";
rect = new flash.geom.Rectangle(0, 52, 26, 26);
text_x = 24;
text_y = 10;
updateNumb = function () {
GameClasses.Match3Level.numb_zl = this.numb;
};
}
function clear() {
super.clear();
ps.clear();
}
function initZeusLightningBonusField(mc, x, y) {
super.initBonusField(mc, x, y, GameClasses.Match3Level.numb_zl);
}
function startPS(x, y) {
}
}
Symbol 1723 MovieClip [__Packages.GameClasses.TimeBonusField] Frame 0
class GameClasses.TimeBonusField extends GameClasses.BonusField
{
var class_name, rect, text_x, text_y, updateNumb;
function TimeBonusField () {
super();
class_name = "TimeBonus";
rect = new flash.geom.Rectangle(78, 52, 26, 26);
text_x = 22;
text_y = 10;
updateNumb = function () {
GameClasses.Match3Level.numb_t = this.numb;
};
}
function clear() {
super.clear();
}
function initTimeBonusField(mc, x, y) {
super.initBonusField(mc, x, y, GameClasses.Match3Level.numb_t);
}
}
Symbol 1724 MovieClip [__Packages.GameClasses.SwapBonusField] Frame 0
class GameClasses.SwapBonusField extends GameClasses.BonusField
{
var class_name, rect, text_x, text_y, updateNumb, ps;
function SwapBonusField () {
super();
class_name = "SwapBonus";
rect = new flash.geom.Rectangle(52, 52, 26, 26);
text_x = 22;
text_y = 10;
updateNumb = function () {
GameClasses.Match3Level.numb_s = this.numb;
};
}
function clear() {
super.clear();
ps.clear();
}
function initSwapBonusField(mc, x, y) {
super.initBonusField(mc, x, y, GameClasses.Match3Level.numb_s);
}
function startPS(x, y) {
}
}
Symbol 1725 MovieClip [__Packages.GameClasses.Panel] Frame 0
class GameClasses.Panel
{
var left, right, top, bottom, other, t_curr;
function Panel () {
left = new Array();
right = new Array();
top = new Array();
bottom = new Array();
other = new Array();
}
function destroy() {
Mouse.removeListener(this);
destroyFreeMoves();
actForHide = null;
actForShow = null;
}
function forceSmothing(mc) {
mc.forceSmoothing = true;
}
function addLeft(mc) {
if (mc instanceof Array) {
var _local2 = mc.length - 1;
while (_local2 >= 0) {
addLeft(mc[_local2]);
_local2--;
}
} else {
forceSmothing(mc);
left.push(mc);
if ((mc._x + mc._width) > x_left) {
x_left = mc._x + mc._width;
}
mc.mov = new GameClasses.FreeMove();
mc.x0 = mc._x;
mc.y0 = mc._y;
}
}
function addRight(mc, x_shift) {
if (mc instanceof Array) {
var _local2 = mc.length - 1;
while (_local2 >= 0) {
addRight(mc[_local2], x_shift);
_local2--;
}
} else {
forceSmothing(mc);
right.push(mc);
if (!x_shift) {
x_shift = stage_width - mc._x;
}
if (x_shift > x_right) {
x_right = x_shift;
}
mc.mov = new GameClasses.FreeMove();
mc.x0 = mc._x;
mc.y0 = mc._y;
}
}
function addTop(mc) {
if (mc instanceof Array) {
var _local2 = mc.length - 1;
while (_local2 >= 0) {
addTop(mc[_local2]);
_local2--;
}
} else {
forceSmothing(mc);
top.push(mc);
if ((mc._y + mc._height) > y_top) {
y_top = mc._y + mc._height;
}
mc.mov = new GameClasses.FreeMove();
mc.x0 = mc._x;
mc.y0 = mc._y;
}
}
function addBottom(mc, y_shift) {
if (mc instanceof Array) {
var _local2 = mc.length - 1;
while (_local2 >= 0) {
addBottom(mc[_local2], y_shift);
_local2--;
}
} else {
forceSmothing(mc);
bottom.push(mc);
if (!y_shift) {
y_shift = stage_height - mc._y;
}
if (y_shift > y_bottom) {
y_bottom = y_shift;
}
mc.mov = new GameClasses.FreeMove();
mc.x0 = mc._x;
mc.y0 = mc._y;
}
}
function addOther(mc) {
if (mc instanceof Array) {
var _local2 = mc.length - 1;
while (_local2 >= 0) {
addOther(mc[_local2]);
_local2--;
}
} else {
other.push(mc);
mc.mov = new GameClasses.FreeMove();
}
}
function initArr(arr) {
var _local1 = arr.length - 1;
while (_local1 >= 0) {
arr[_local1].mov = new GameClasses.FreeMove();
arr[_local1].x0 = arr[_local1]._x;
arr[_local1].y0 = arr[_local1]._y;
_local1--;
}
}
function destroyArr(arr) {
var _local1 = arr.length - 1;
while (_local1 >= 0) {
arr[_local1].mov.destroy();
arr[_local1].mov = null;
_local1--;
}
}
function initFreeMoves() {
initArr(left);
initArr(right);
initArr(top);
initArr(bottom);
}
function destroyFreeMoves() {
destroyArr(left);
left = null;
destroyArr(right);
right = null;
destroyArr(top);
top = null;
destroyArr(bottom);
bottom = null;
destroyArr(other);
other = null;
}
function hideArr(arr, x, y) {
var _local2 = arr.length - 1;
while (_local2 >= 0) {
var _local5 = ((x == null) ? (arr[_local2].x0) : (arr[_local2].x0 + x));
var _local4 = ((y == null) ? (arr[_local2].y0) : (arr[_local2].y0 + y));
GameClasses.FreeMove.addActivePiece(arr[_local2], t_curr);
arr[_local2].mov.initMove(arr[_local2], T / 2, T / 2, _local5, _local4);
_local2--;
}
}
function showArr(arr) {
var _local2 = arr.length - 1;
while (_local2 >= 0) {
GameClasses.FreeMove.addActivePiece(arr[_local2], t_curr);
arr[_local2].mov.initMove(arr[_local2], T / 2, 0, arr[_local2].x0, arr[_local2].y0);
_local2--;
}
}
function hideOther() {
var _local2 = other.length - 1;
while (_local2 >= 0) {
if (other[_local2].hide != undefined) {
other[_local2].hide(T / 2, 0);
} else {
GameClasses.FreeMove.addActivePiece(other[_local2], t_curr);
other[_local2].mov.initMove(other[_local2], T / 2, 0, null, null, null, null, null, 0);
}
_local2--;
}
}
function showOther() {
var _local2 = other.length - 1;
while (_local2 >= 0) {
if (other[_local2].show != undefined) {
other[_local2].show(T / 2, T / 2);
} else {
GameClasses.FreeMove.addActivePiece(other[_local2], t_curr);
other[_local2].mov.initMove(other[_local2], T / 2, T / 2, null, null, null, null, null, 100);
}
_local2--;
}
}
function show() {
Mouse.removeListener(this);
t_curr = getTimer();
showArr(left);
showArr(right);
showArr(top);
showArr(bottom);
showOther();
actForShow();
}
function hide() {
t_curr = getTimer();
hideArr(left, -x_left, null);
hideArr(right, x_right, null);
hideArr(top, null, -y_top);
hideArr(bottom, null, y_bottom);
hideOther();
actForHide();
Mouse.addListener(this);
}
function onMouseDown() {
Mouse.removeListener(this);
show();
}
function setT(t) {
T = t;
}
function getT() {
return(T);
}
function setDefaultT() {
T = default_T;
}
var x_left = 0;
var x_right = 0;
var y_top = 0;
var y_bottom = 0;
var stage_height = 390;
var stage_width = 520;
var default_T = 700;
var T = 700;
var actForShow = null;
var actForHide = null;
}
Symbol 1726 MovieClip [__Packages.GameClasses.ISpyLevel] Frame 0
class GameClasses.ISpyLevel extends GameClasses.Level
{
static var mouseListener;
var hhw, is_locked, poa_arr, statistic, delay_time, initDepths, initArrays, big_arts, bg_picture, firstTextCountry, T1, firstTextLevel, T2, time_start_level, startRomeFire, counter, textCompleted1, textCompleted2, T_text_completed, snd;
function ISpyLevel () {
super();
}
static function deactivateFirstHelp() {
was_help[0] = true;
was_help[1] = true;
was_help[2] = true;
was_help[3] = true;
}
static function initDefaultStaticVars() {
was_help = [false, false, false];
help_interval = [0, 0, 0];
time_to_help = [0, 0, 5000];
}
function destroy() {
GameClasses.FreeMove.clearInterval(help_shine_interval);
help_shine_interval = 0;
var _local3 = 0;
while (_local3 < help_interval.length) {
GameClasses.Level.clearInterval(help_interval[_local3]);
help_interval[_local3] = 0;
_local3++;
}
_local3 = 0;
while (_local3 < hhw.length) {
hhw[_local3].destroy();
delete hhw[_local3];
_local3++;
}
hhw = null;
Mouse.removeListener(mouseListener);
super.destroy();
}
function hint() {
if (!is_locked) {
var _local2 = 0;
while (poa_arr[_local2].body && (!poa_arr[_local2].enabled)) {
_local2++;
}
if (poa_arr[_local2]) {
poa_arr[_local2].hint();
}
}
}
function initHelpShine() {
var _local2;
var _local4 = int(Math.random() * poa_arr.length);
var _local3 = poa_arr[_local4];
if (!_local3.on_the_field) {
_local2 = _local4;
while (_local2 < poa_arr.length) {
_local3 = poa_arr[_local2];
if (_local3.on_the_field) {
break;
}
_local2++;
}
if (!_local3.on_the_field) {
_local2 = _local4 - 1;
while (_local2 >= 0) {
_local3 = poa_arr[_local2];
if (_local3.on_the_field) {
break;
}
_local2--;
}
}
}
if (_local3.on_the_field) {
_local3.endSmallShine();
}
}
function initObjects() {
super.initObjects();
statistic.setRecordValue("yourTime", 0);
statistic.setRecordValue("pieces", 0);
}
function load(lev) {
if (delay_time != 0) {
GameClasses.FreeMove.makeDelay(delay_time, GameClasses.GFunctions.create(this, load, lev));
delay_time = 0;
return(undefined);
}
initDepths();
initArrays();
initObjects();
super.load(lev);
GameClasses.FreeMove.clearInterval(help_shine_interval);
help_shine_interval = 0;
var _local3 = 0;
while (_local3 < big_arts.length) {
if (big_arts[_local3].type == "crystal") {
big_arts[_local3].reinitCrystal();
}
_local3++;
}
help_shine_interval = GameClasses.FreeMove.setPeriodicInterval(this, "initHelpShine", GameClasses.Consts.TIME_TO_HELP_SHINE);
if (GameClasses.Vars.enable_hints) {
initHelpSystem();
}
bg_picture.onPress = GameClasses.GFunctions.create(this, falseOnPress);
bg_picture.tabEnabled = false;
}
function doFirstLevelAction() {
lockLevel();
doLevelAction2();
}
function doLevelAction2() {
firstTextCountry.initMove(null, T1, 1, null, null, null, null, null, new GameClasses.Line(0, 100));
firstTextLevel.initMove(null, T2, T1, null, null, null, null, null, new GameClasses.Line(0, 100));
GameClasses.FreeMove.makeDelay((T1 + T2) + 1, GameClasses.GFunctions.create(this, doLevelAction3));
}
function doLevelAction3() {
firstTextCountry.initMove(null, T1 + T2, 0, null, null, null, null, null, new GameClasses.Line(100, 100, 0));
firstTextLevel.initMove(null, T2 + T1, 0, null, null, null, null, null, new GameClasses.Line(100, 100, 0));
GameClasses.FreeMove.makeDelay((T1 + T2) + 1, GameClasses.GFunctions.create(this, doLevelAction4));
}
function doLevelAction4() {
firstTextCountry.setVisible(false);
firstTextLevel.setVisible(false);
unlockLevel();
time_start_level = GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000);
_root.playGlobalGameTime();
callFirstHelp();
}
function lockLevel() {
is_locked = true;
}
function unlockLevel() {
is_locked = false;
}
static function clearHint2() {
GameClasses.Level.clearInterval(help_interval[2]);
help_interval[2] = 0;
}
function initHelpSystem() {
if (mouseListener == undefined) {
mouseListener = new Object();
mouseListener.onMouseDown = GameClasses.GFunctions.create(this, function () {
if (this.poa_arr[0].body.hitTest(this._xmouse, this._ymouse)) {
this.unlockLevel();
this.poa_arr[0].action();
GameClasses.HintWindow.hideAll();
Mouse.removeListener(this.mouseListener);
}
});
}
hhw = new Array();
hhw[0] = new GameClasses.HintWindow(this, null, _root.dialogs.ISpyFirstHelpHint);
hhw[0].initHelpHint(290, 240);
hhw[1] = new GameClasses.HintWindow(this, null, _root.dialogs.ISpyHelpHint2);
hhw[1].initHelpHintStrelaH(310, 145, 105);
hhw[2] = new GameClasses.HintWindow(this, null, _root.dialogs.ISpyHelpHint3);
var _local3 = poa_arr[0].body._x;
_local3 = ((_local3 > 410) ? 410 : (_local3));
hhw[2].initHelpHintStrela(_local3, poa_arr[0].body._y - 40, poa_arr[0].body._x);
hhw[3] = new GameClasses.HintWindow(this, null, _root.dialogs.CrystalFirstHelpHint);
hhw[3].initHelpHint(260, 240);
hhw[0].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
this.startUsualHelpHint(1);
});
hhw[1].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
GameClasses.Level.clearInterval(GameClasses.ISpyLevel.help_interval[2]);
GameClasses.ISpyLevel.help_interval[2] = 0;
GameClasses.ISpyLevel.help_interval[2] = GameClasses.Level.setInterval(this, "startUsualHelpHint", GameClasses.ISpyLevel.time_to_help[2], 2);
_root.playGlobalGameTime();
});
hhw[2].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
Mouse.removeListener(GameClasses.ISpyLevel.mouseListener);
_root.playGlobalGameTime();
});
hhw[3].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
this.time_start_level = GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000);
_root.playGlobalGameTime();
});
}
function callFirstHelp() {
GameClasses.Level.clearInterval(help_interval[0]);
help_interval[0] = 0;
if (!GameClasses.Vars.enable_hints) {
return(undefined);
}
if (was_help[0]) {
return(undefined);
}
if (is_locked) {
help_interval[0] = GameClasses.Level.setInterval(this, "callFirstHelp", 50);
return(undefined);
}
_root.pauseGlobalGameTime();
was_help[0] = true;
lockLevel();
hhw[0].btn.enable();
hhw[0].showHelpHint();
}
function callCrystalFirstAct() {
time_start_level = GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000);
}
function callCrystalFirstHelpHint() {
GameClasses.Level.clearInterval(help_interval[3]);
help_interval[3] = 0;
startRomeFire();
if (!GameClasses.Vars.enable_hints) {
return(undefined);
}
if (was_help[3]) {
return(undefined);
}
if (is_locked) {
help_interval[3] = GameClasses.Level.setInterval(this, "callCrystalFirstHelpHint", 50);
return(undefined);
}
_root.pauseGlobalGameTime();
was_help[3] = true;
lockLevel();
hhw[3].showHelpHint();
}
function startUsualHelpHint(num) {
GameClasses.Level.clearInterval(help_interval[num]);
help_interval[num] = 0;
if (!GameClasses.Vars.enable_hints) {
return(undefined);
}
if (was_help[num]) {
return(undefined);
}
if (is_locked) {
help_interval[num] = GameClasses.Level.setInterval(this, "startUsualHelpHint", 50, num);
return(undefined);
}
_root.pauseGlobalGameTime();
was_help[num] = true;
if (num == 2) {
Mouse.addListener(mouseListener);
}
lockLevel();
hhw[num].btn.enable();
hhw[num].showHelpHint();
}
function doFirstWinAction() {
statistic.setView("statistic2");
statistic.setRecordValue("levelScore", counter.getLevelScore());
statistic.setRecordValue("totalScore", GameClasses.GameCounter.getTotalScore());
statistic.addRecordValue("pieces", 0);
var _local9 = (GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000)) - time_start_level;
statistic.setRecordValue("yourTime", _local9);
var _local4 = GameClasses.TextClass(textCompleted1);
var _local3 = GameClasses.TextClass(textCompleted2);
_local4.setX(_local4.getX());
_local4.setY(_local4.getY());
_local3.setX(_local3.getX());
_local3.setY(_local3.getY());
_local4.setHotSpot(_local4.getWidth() / 2, _local4.getHeight() / 2);
_local3.setHotSpot(_local3.getWidth() / 2, _local3.getHeight() / 2);
var _local6 = new GameClasses.Spline(0, 120, 110, 100);
var _local5 = new GameClasses.Spline(0, 110, 120, 100);
var _local7 = GameClasses.GFunctions.create(this, function (tcl1, tcl2) {
this.statistic.show();
tcl1.initMove(null, 400, 1, null, null, null, null, null, new GameClasses.Line(100, 0));
tcl2.initMove(null, 400, 1, null, null, null, null, null, new GameClasses.Line(100, 0));
}, _local4, _local3);
var _local8 = GameClasses.GFunctions.create(_local3, _local3.initMove, _local7, T_text_completed / 2, 1, null, null, _local5, _local6);
_local4.initMove(_local8, T_text_completed / 2, 1, null, null, _local6, _local5);
}
function endHideAct() {
statistic.setView("statistic1");
}
function falseOnPress() {
snd.startSound("false_click");
}
var help_shine_interval = 0;
static var was_help = [false, false, false, false];
static var help_interval = [0, 0, 0, 0];
static var time_to_help = [0, 0, 5000, 0];
}
Symbol 1727 MovieClip [__Packages.GameClasses.QuestLevel] Frame 0
class GameClasses.QuestLevel extends GameClasses.Level
{
static var mouseListener;
var hhw, hint_art, is_locked, artefacts_arr, statistic, delay_time, initDepths, initArrays, firstTextCountry, T1, firstTextLevel, T2, time_start_level, mcRoot, Rome1_small, counter;
function QuestLevel () {
super();
}
static function deactivateFirstHelp() {
was_help[0] = true;
was_help[1] = true;
was_help[2] = true;
was_help[3] = true;
}
static function initDefaultStaticVars() {
was_help = [false, false, false, false];
help_interval = [0, 0, 0, 0];
time_to_help = [0, 0, 2000, 0];
}
function destroy() {
var _local3 = 0;
while (_local3 < help_interval.length) {
GameClasses.Level.clearInterval(help_interval[_local3]);
help_interval[_local3] = 0;
_local3++;
}
hhw = null;
Mouse.removeListener(mouseListener);
hint_art = null;
super.destroy();
}
function hint() {
if (is_locked) {
return(undefined);
}
var _local2 = 0;
while ((_local2 < artefacts_arr.length) && (!artefacts_arr[_local2].enabled)) {
_local2++;
}
if (artefacts_arr[_local2] != undefined) {
artefacts_arr[_local2].hint();
}
}
function initObjects() {
super.initObjects();
statistic.setRecordValue("yourTime", 0);
statistic.setRecordValue("artefactsPlaced", 0);
}
function load(lev) {
if (delay_time != 0) {
GameClasses.FreeMove.makeDelay(delay_time, GameClasses.GFunctions.create(this, load, lev));
delay_time = 0;
return(undefined);
}
initDepths();
initArrays();
initObjects();
super.load(lev);
if (GameClasses.Vars.enable_hints) {
initHelpSystem();
}
}
function doFirstLevelAction() {
lockLevel();
doLevelAction2();
}
function doLevelAction2() {
firstTextCountry.initMove(null, T1, 1, null, null, null, null, null, new GameClasses.Line(0, 100));
firstTextLevel.initMove(null, T2, T1, null, null, null, null, null, new GameClasses.Line(0, 100));
GameClasses.FreeMove.makeDelay((T1 + T2) + 1, GameClasses.GFunctions.create(this, doLevelAction3));
}
function doLevelAction3() {
firstTextCountry.initMove(null, T1 + T2, 0, null, null, null, null, null, new GameClasses.Line(100, 100, 0));
firstTextLevel.initMove(null, T2 + T1, 0, null, null, null, null, null, new GameClasses.Line(100, 100, 0));
GameClasses.FreeMove.makeDelay((T1 + T2) + 1, GameClasses.GFunctions.create(this, doLevelAction4));
}
function doLevelAction4() {
firstTextCountry.setVisible(false);
firstTextLevel.setVisible(false);
unlockLevel();
time_start_level = GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000);
mcRoot.playGlobalGameTime();
callFirstHelp();
}
function lockLevel() {
is_locked = true;
}
function unlockLevel() {
is_locked = false;
}
static function clearHint2() {
was_help[2] = true;
GameClasses.Level.clearInterval(help_interval[2]);
help_interval[2] = 0;
}
function initHelpSystem() {
if (mouseListener == undefined) {
mouseListener = new Object();
mouseListener.onMouseDown = GameClasses.GFunctions.create(this, function () {
if (this.hint_art.cell.hitTest(this._xmouse, this._ymouse) && (this.hint_art.unblocked)) {
GameClasses.HintWindow.hideAll();
this.hint_art.onPressAct();
this.hint_art.unblocked = false;
this.startUsualHint(3);
} else if (this.hint_art.dest.hitArea.hitTest(this._xmouse, this._ymouse)) {
GameClasses.HintWindow.hideAll();
this.unlockLevel();
this.hint_art.onPressDest();
Mouse.removeListener(this.mouseListener);
}
});
}
hhw = new Array();
hint_art = GameClasses.Artefact(Rome1_small);
hhw[0] = new GameClasses.HintWindow(this, null, _root.dialogs.QuestHelpHint1);
hhw[0].initHelpHint(260, 240);
hhw[1] = new GameClasses.HintWindow(this, null, _root.dialogs.QuestHelpHint2);
hhw[1].initHelpHint(150, 150, 150);
hhw[2] = new GameClasses.HintWindow(this, null, _root.dialogs.QuestHelpHint3);
var _local3 = hint_art.cell._x + (hint_art.cell._width / 2);
hhw[2].initHelpStrela(110, hint_art.cell._y - 30, _local3);
hhw[3] = new GameClasses.HintWindow(this, null, _root.dialogs.QuestHelpHint4);
hhw[3].initHelpStrela(410, 270, 461);
hhw[0].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
this.startUsualHelpHint(1);
});
hhw[1].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
GameClasses.FreeMove.clearInterval(GameClasses.QuestLevel.help_interval[2]);
GameClasses.QuestLevel.help_interval[2] = 0;
GameClasses.QuestLevel.help_interval[2] = GameClasses.FreeMove.setPeriodicInterval(this, "startUsualHelpHint", GameClasses.QuestLevel.time_to_help[2], 2);
_root.playGlobalGameTime();
});
hhw[2].endHideAct = GameClasses.GFunctions.create(this, function () {
_root.playGlobalGameTime();
});
hhw[3].endHideAct = GameClasses.GFunctions.create(this, function () {
_root.playGlobalGameTime();
});
}
function callFirstHelp() {
GameClasses.FreeMove.clearInterval(help_interval[0]);
help_interval[0] = 0;
if (!GameClasses.Vars.enable_hints) {
return(undefined);
}
if (was_help[0]) {
return(undefined);
}
if (is_locked) {
help_interval[0] = GameClasses.FreeMove.setPeriodicInterval(this, "callFirstHelp", 50);
return(undefined);
}
_root.pauseGlobalGameTime();
was_help[0] = true;
lockLevel();
hhw[0].btn.enable();
hhw[0].showHelpHint();
}
function startUsualHelpHint(num) {
GameClasses.FreeMove.clearInterval(help_interval[num]);
help_interval[num] = 0;
if (!GameClasses.Vars.enable_hints) {
return(undefined);
}
_root.p1("num=" + num);
_root.p1("was_help[num]=" + was_help[num]);
if (was_help[num]) {
return(undefined);
}
if (is_locked) {
help_interval[num] = GameClasses.FreeMove.setPeriodicInterval(this, "startUsualHelpHint", 50, num);
return(undefined);
}
_root.pauseGlobalGameTime();
was_help[num] = true;
if (num == 2) {
Mouse.addListener(mouseListener);
hint_art.unblocked = true;
}
lockLevel();
hhw[num].btn.enable();
if ((num == 2) || (num == 3)) {
hhw[num].showHelpHint(false);
} else {
hhw[num].showHelpHint();
}
}
function startUsualHint(num) {
GameClasses.FreeMove.clearInterval(help_interval[num]);
help_interval[num] = 0;
if (!GameClasses.Vars.enable_hints) {
return(undefined);
}
if (was_help[num]) {
return(undefined);
}
_root.pauseGlobalGameTime();
was_help[num] = true;
lockLevel();
hhw[num].btn.enable();
if ((num == 2) || (num == 3)) {
hhw[num].showHelpHint(false);
} else {
hhw[num].showHelpHint();
}
}
function doFirstWinAction() {
statistic.setView("statistic3");
statistic.setRecordValue("levelScore", counter.getLevelScore());
statistic.setRecordValue("totalScore", GameClasses.GameCounter.getTotalScore());
statistic.addRecordValue("artefactsPlaced", 0);
var _local3 = (GameClasses.Vars.global_game_time + Math.floor(GameClasses.FreeMove.getIntervalFullTime(_root.interval_score_broadcast) / 1000)) - time_start_level;
statistic.setRecordValue("yourTime", _local3);
statistic.show();
}
function endHideAct() {
statistic.setView("statistic1");
}
static var was_help = [false, false, false, false];
static var help_interval = [0, 0, 0, 0];
static var time_to_help = [0, 0, 2000, 0];
}
Symbol 1728 MovieClip [__Packages.GameClasses.Artefact] Frame 0
class GameClasses.Artefact extends GameClasses.MCwithShadow
{
static var selected;
var mcRoot, _parent, snd, interval, interval_for_select, temp_mc, cursor_mc, cell, dest, nps, hw0, hw1, hw2, hw_dest, body, tick, act, onPressActAddition, enabled, deleted, shadow, id, _visible, hitArea, attachMovie, initShadow, _x_in_cell, _y_in_cell, initShadowBMP, swapDepths, shift_x, shift_y, shadow_x, shadow_y, ps;
function Artefact () {
super();
mcRoot = _parent;
snd = GameClasses.MySounds.getMySounds();
}
function destroy() {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
GameClasses.FreeMove.clearInterval(interval_for_select);
interval_for_select = 0;
mcRoot = null;
temp_mc = null;
cursor_mc = null;
cell = null;
dest = null;
snd = null;
nps.destroy();
nps = null;
disableHintArt();
hw0.destroy();
hw0 = null;
hw1.destroy();
hw1 = null;
hw2.destroy();
hw2 = null;
hw_dest.destroy();
hw_dest = null;
body.removeMovieClip();
body = null;
tick.removeMovieClip();
tick = null;
act = null;
onPressActAddition = null;
}
function enable() {
enabled = true;
body.enabled = true;
cell.enabled = true;
disableHintArt();
hw0.hint_mc.enabled = true;
hw1.hint_mc.enabled = true;
hw2.hint_mc.enabled = true;
}
function removeMovieClip() {
snd = null;
disableHintArt();
hw0.clear();
hw1.clear();
hw2.clear();
body.removeMovieClip();
tick.removeMovieClip();
super.removeMovieClip();
}
function deleteArt() {
startHidePS();
enabled = false;
deleted = false;
tick._visible = true;
body._visible = false;
shadow._visible = false;
delete cell.onPress1;
enabled_art = false;
var _local2 = 0;
while (_local2 < act.art_cam_to_dest.length) {
act.art_cam_to_dest[_local2]();
_local2++;
}
hw_dest.hideHint();
hw_dest.disableHint();
dest.destroy();
solveHintArt();
mcRoot.count_artefacts--;
if (mcRoot.count_artefacts <= 0) {
mcRoot.win();
}
}
function solveHintArt() {
hw0.disableHint();
hw1.disableHint();
hw2.enableHint();
}
function collectHintArt() {
hw0.disableHint();
hw2.disableHint();
hw1.enableHint();
}
function uncollectHintArt() {
hw1.disableHint();
hw2.disableHint();
hw0.enableHint();
}
function disableHintArt() {
hw0.disableHint();
hw1.disableHint();
hw2.disableHint();
hw_dest.disableHint();
}
function createHidePS() {
nps = new GameClasses.NewParticleSystem(mcRoot.NPS_LEVEL_MC, 12);
var _local3 = flash.display.BitmapData.loadBitmap("particles.png");
var _local2 = new flash.display.BitmapData(32, 32, true, 0);
_local2.copyPixels(_local3, new flash.geom.Rectangle(32, 64, 32, 32), new flash.geom.Point(0, 0));
nps.initTexture(_local2);
}
function startHidePS() {
var _local3;
var _local2;
var _local4 = 0;
var _local6 = 25;
var _local5 = 600;
if (dest.typ == "locked") {
_local3 = Number(dest._x + (dest._width / 2));
_local2 = Number(dest._y + (dest._height / 2));
nps.startExplode(_local3, _local2, -40, 40, 40, -0.15, 0.01, 0.0004, new GameClasses.Spline(0, 60, 80, 0), new GameClasses.Spline(0, 80, 60, 0), new GameClasses.Spline(50, 100, 0), [16777215, 1543601]);
} else {
_local3 = Number(dest.body._x + (dest.body._width / 2));
_local2 = Number(dest.body._y + (dest.body._height / 2));
nps.startExplode(_local3, _local2, -40, 40, 40, -0.15, 0.01, 0.0004, new GameClasses.Spline(0, 60, 80, 0), new GameClasses.Spline(0, 80, 60, 0), new GameClasses.Spline(50, 100, 0), [16777215, 16768512]);
}
if (id == "Rome3_small") {
mcRoot.startRomeFire();
}
}
function init(obj, act) {
id = obj.id;
_visible = obj.visible;
this.act = act;
mcRoot = _parent;
temp_mc = _parent.temp_mc;
cursor_mc = _parent.cursor_mc;
cell = mcRoot[obj.cell];
cell.id = obj.cell;
hitArea = null;
selected = false;
enabled = true;
deleted = false;
body = attachMovie(obj.id, "body", 2);
initShadow(6, 6, 0, -5, 40, 0);
tick = attachMovie("tick_small", "tick", 3);
body.mov = new GameClasses.FreeMove();
shadow.mov = new GameClasses.FreeMove();
_x_in_cell = cell._x + ((cell._width - body._width) / 2);
_y_in_cell = cell._y + ((cell._height - body._height) / 2);
body._x = _x_in_cell;
body._y = _y_in_cell;
shadow._x = body._x;
shadow._y = body._y;
tick._x = cell._x + ((cell._width - tick._width) / 2);
tick._y = cell._y + ((cell._height - tick._height) / 2);
tick._visible = false;
initCell();
createHidePS();
}
function initBMP(obj, act) {
id = obj.id;
_visible = obj.visible;
this.act = act;
mcRoot = _parent;
temp_mc = _parent.temp_mc;
cursor_mc = _parent.cursor_mc;
cell = mcRoot[obj.cell];
cell.id = obj.cell;
hitArea = null;
selected = false;
enabled = true;
deleted = false;
super.init(obj.id + ".png", 2);
initShadowBMP(6, 6, 0, -5, 40, 0);
tick = attachMovie("tick_small", "tick", 3);
body.mov = new GameClasses.FreeMove();
shadow.mov = new GameClasses.FreeMove();
_x_in_cell = cell._x + ((cell._width - body._width) / 2);
_y_in_cell = cell._y + ((cell._height - body._height) / 2);
body._x = _x_in_cell;
body._y = _y_in_cell;
shadow._x = body._x;
shadow._y = body._y;
tick._x = cell._x + ((cell._width - tick._width) / 2);
tick._y = cell._y + ((cell._height - tick._height) / 2);
tick._visible = false;
initCell();
createHidePS();
}
function initDest() {
var _local3 = "HintWindowText" + dest.id;
hw_dest = new GameClasses.HintWindow(mcRoot, dest, _root.dialogs[_local3]);
hw_dest.enableHint();
dest.tabEnabled = false;
if (dest.onPress == undefined) {
dest.onPress = GameClasses.GFunctions.create(this, onPressDest);
} else {
dest.onPress1 = GameClasses.GFunctions.create(this, onPressDest);
}
}
function initCell() {
cell.tabEnabled = false;
cell.onPress = GameClasses.GFunctions.create(this, onPressAct);
cell.onRollOver = GameClasses.GFunctions.create(this, onRollOverAct);
cell.onRollOut = GameClasses.GFunctions.create(this, onRollOutAct);
hw0 = new GameClasses.HintWindow(mcRoot, cell, _root.dialogs.HintWindowTextArtefactNotCollected);
hw1 = new GameClasses.HintWindow(mcRoot, cell, _root.dialogs[("HintWindowText" + id) + "1"]);
hw2 = new GameClasses.HintWindow(mcRoot, cell, _root.dialogs.HintWindowTextArtefactSolved);
if (!_visible) {
hw0.disableHint();
hw1.disableHint();
hw2.disableHint();
} else if (id.substr(id.length - 6, 6) == "Substr") {
hw1.disableHint();
hw2.disableHint();
hw0.enableHint();
} else {
hw0.disableHint();
hw2.disableHint();
hw1.enableHint();
}
}
function putSound() {
var _local2 = Math.floor(Math.random() * 3) + 1;
snd.startSound("neutral_put_" + _local2);
}
function onPressDest() {
if (mcRoot.is_locked) {
return(undefined);
}
if (selected && (selected_art.dest == dest)) {
GameClasses.FreeMove.clearInterval(interval_for_select);
interval_for_select = 0;
mcRoot.statistic.addRecordValue("artefactsPlaced", 1);
mcRoot.counter.add(250);
putSound();
selected_art = null;
selected = false;
swapDepths(temp_mc);
deleteArt();
onPressActAddition();
}
}
function onRollOverAct() {
if (mcRoot.is_locked && (!unblocked)) {
return(undefined);
}
if (((enabled_art && (enabled)) && (!selected)) && (enabled_global)) {
snd.startSound("artefact_mouse_over");
cursor_mc.state = "press";
GameClasses.FreeMove.addActivePiece(body, getTimer());
GameClasses.FreeMove.addActivePiece(shadow, getTimer());
body.mov.initLine(body, _x_in_cell + shift_x, _y_in_cell + shift_y, shift_time);
shadow.mov.initLine(shadow, _x_in_cell + shadow_x, _y_in_cell + shadow_y, shift_time);
}
}
function onRollOutAct() {
if (((enabled_art && (enabled)) && (!selected)) && (enabled_global)) {
cursor_mc.state = "normal";
GameClasses.FreeMove.addActivePiece(body, getTimer());
GameClasses.FreeMove.addActivePiece(shadow, getTimer());
body.mov.initLine(body, _x_in_cell, _y_in_cell, shift_time);
shadow.mov.initLine(shadow, _x_in_cell, _y_in_cell, shift_time);
}
}
function unblockArt() {
enabled = true;
}
function onPressAct() {
if (mcRoot.is_locked && (!unblocked)) {
return(undefined);
}
GameClasses.FreeMove.clearInterval(mcRoot.interval_stupid);
mcRoot.interval_stupid = 0;
if (GameClasses.Vars.current_level == 6) {
GameClasses.QuestLevel.clearHint2();
}
if ((enabled_art && (enabled)) && (enabled_global)) {
if (selected && (selected_art.cell == cell)) {
snd.startSound("artefact_dropped");
selected_art = null;
selected = false;
GameClasses.FreeMove.clearInterval(interval_for_select);
interval_for_select = 0;
swapDepths(temp_mc);
GameClasses.FreeMove.addActivePiece(body, getTimer());
GameClasses.FreeMove.addActivePiece(shadow, getTimer());
body.mov.endAct = GameClasses.GFunctions.create(this, unblockArt);
body.mov.initLine(body, _x_in_cell, _y_in_cell, spring_time);
shadow.mov.initLine(shadow, _x_in_cell, _y_in_cell, spring_time);
enabled = false;
} else if (!selected) {
if (!enabled_hint) {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
dest.onRollOut();
ps.stopParticleSystem();
enabled_hint = true;
}
snd.startSound("artefact_picked");
selected_art = this;
selected = true;
cursor_mc.state = "normal";
body.mov.stopMove1();
shadow.mov.stopMove1();
swapDepths(temp_mc);
GameClasses.FreeMove.addActivePiece(body, getTimer());
GameClasses.FreeMove.addActivePiece(shadow, getTimer());
body.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.unblockArt();
this.interval_for_select = GameClasses.FreeMove.setInterval(this, "updateArtefactMoving", 0);
});
body.mov.initLine(body, mcRoot._xmouse - (body._width / 2), mcRoot._ymouse - (body._height / 2), spring_time);
shadow.mov.initLine(shadow, ((mcRoot._xmouse - (shadow._width / 2)) + shadow_x) - shift_x, ((mcRoot._ymouse - (shadow._height / 2)) + shadow_y) - shift_y, spring_time);
enabled = false;
onPressActAddition();
}
}
}
function updateArtefactMoving() {
body._x = mcRoot._xmouse - (body._width / 2);
body._y = mcRoot._ymouse - (body._height / 2);
shadow._x = (body._x + shadow_x) - shift_x;
shadow._y = (body._y + shadow_y) - shift_y;
}
function hint() {
if (((!selected) && (enabled_global)) && (enabled_hint)) {
if (!ps) {
ps = new GameClasses.ParticleSystem("particles.png", 32, 64, 32, 32);
ps.initParticleSystem(dest, 20, 500, 0, 360, 0.1, 0, 90, 20, 80, 20, 16764108, 16764108);
}
GameClasses.FreeMove.addActivePiece(body, getTimer());
GameClasses.FreeMove.addActivePiece(shadow, getTimer());
body.mov.initLine(body, _x_in_cell + shift_x, _y_in_cell + shift_y, shift_time);
shadow.mov.initLine(shadow, _x_in_cell + shadow_x, _y_in_cell + shadow_y, shift_time);
enabled_hint = false;
ps.startParticleSystem();
interval = GameClasses.FreeMove.setPeriodicInterval(this, "updHitn", HINT_TIME);
dest.onRollOver();
}
}
function updHitn() {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
dest.onRollOut();
GameClasses.FreeMove.addActivePiece(body, getTimer());
GameClasses.FreeMove.addActivePiece(shadow, getTimer());
body.mov.initLine(body, _x_in_cell, _y_in_cell, shift_time);
shadow.mov.initLine(shadow, _x_in_cell, _y_in_cell, shift_time);
ps.stopParticleSystem();
enabled_hint = true;
}
function hintSS() {
if (((!selected) && (enabled_global)) && (enabled_hint)) {
GameClasses.FreeMove.addActivePiece(body, getTimer());
GameClasses.FreeMove.addActivePiece(shadow, getTimer());
body.mov.initLine(body, _x_in_cell + (shift_x / 2), _y_in_cell + (shift_y / 2), shift_time / 2);
shadow.mov.initLine(shadow, _x_in_cell + (shadow_x / 2), _y_in_cell + (shadow_y / 2), shift_time / 2);
dest.onRollOver();
enabled_hint = false;
interval = GameClasses.FreeMove.setPeriodicInterval(this, "updHitn", 3000);
}
}
static var enabled_global = true;
var enabled_art = true;
static var enabled_hint = true;
static var selected_art = null;
var shift_time = 100;
var spring_time = 50;
var HINT_TIME = 3000;
var unblocked = false;
}
Symbol 1729 MovieClip [__Packages.GameClasses.HintButton] Frame 0
class GameClasses.HintButton
{
var btn, action, mcRoot, hw, body, cover, mask_cover, cover_bmp;
function HintButton (root_mc, lib_name, depth, x, y, act) {
btn = new GameClasses.MyButton2(root_mc, lib_name, depth, null, x, y);
action = act;
createHintCover();
btn.setMainOnPress();
btn.clearActions();
btn.addAction(GameClasses.GFunctions.create(this, doHint));
mcRoot = root_mc;
hw = new GameClasses.HintWindow(root_mc, btn.getBody(), _root.dialogs.QuestionMark);
hw.TIME_OF_THE_HINT_DELAY = 700;
body = btn.getBody();
body.mov = new GameClasses.FreeMove();
}
function destroy() {
mcRoot = null;
body = null;
cover.removeMovieClip();
cover = null;
mask_cover.mov.destroy();
mask_cover.mov = null;
mask_cover.removeMovieClip();
mask_cover = null;
btn.destroy();
btn = null;
hw.destroy();
hw = null;
cover_bmp.dispose();
cover_bmp = null;
action = null;
}
function createHintCover() {
cover = btn.getBody().createEmptyMovieClip("cover", 5);
cover._alpha = 0;
cover_bmp = new flash.display.BitmapData(btn.getWidth(), btn.getHeight(), true, 0);
cover_bmp.draw(btn.getBody().normal);
cover.attachBitmap(cover_bmp, 1);
var _local5 = new Color(cover);
var _local4 = -110;
_local5.setTransform({rb:_local4, gb:_local4, bb:_local4});
mask_cover = btn.getBody().createEmptyMovieClip("mask_cover", 6);
makeRectangleMask(cover, mask_cover);
mask_cover.mov = new GameClasses.FreeMove();
mask_cover.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.btn.enable();
this.cover._visible = false;
this.mcRoot.snd.startSound("hint_complete");
this.is_active = true;
var _local3 = 1.2;
var _local5 = ((this.body._width * _local3) - this.body._width) / 2;
var _local4 = ((this.body._height * _local3) - this.body._height) / 2;
this.body.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.hw.setText(_root.dialogs.QuestionMark.text);
});
this.body.mov.newInitMove(this.body, 300, 0, new GameClasses.Spline(this.body._x, this.body._x - _local5, this.body._x), new GameClasses.Spline(this.body._y, this.body._y - _local4, this.body._y), new GameClasses.Spline(100, 100 * _local3, 100), new GameClasses.Spline(100, 100 * _local3, 100));
});
}
function startHintDelay() {
var _local4 = 5;
var _local3 = mask_cover._height - 5;
btn.disable();
cover._alpha = 100;
cover._visible = true;
hw.setText(_root.dialogs.QuestionMarkOff.text);
mask_cover.mov.newInitMove(mask_cover, NO_ACTIVE_TIME, 0, null, new GameClasses.Line(_local4, _local3));
}
function doHint() {
if (is_active && (!mcRoot.is_locked)) {
mcRoot.snd.startSound("hint");
is_active = false;
action();
startHintDelay();
}
}
function die() {
cover_bmp.dispose();
cover.mov.clear();
btn.destroy();
delete btn;
}
function makeRectangleMask(src_mc, dest_mc) {
dest_mc.beginFill(255, 100);
dest_mc.moveTo(0, 0);
dest_mc.lineTo(src_mc._width, 0);
dest_mc.lineTo(src_mc._width, src_mc._height);
dest_mc.lineTo(0, src_mc._height);
dest_mc.lineTo(0, 0);
dest_mc.endFill();
src_mc.setMask(dest_mc);
}
var NO_ACTIVE_TIME = GameClasses.Consts.NO_ACTIVE_TIME_OF_HINT_BUTTON;
var is_active = true;
}
Symbol 1730 MovieClip [__Packages.GameClasses.LifeBonusField] Frame 0
class GameClasses.LifeBonusField
{
var mcRoot, body, numb, txt, x, y;
function LifeBonusField (root_mc, id, depth, x, y) {
mcRoot = root_mc;
body = mcRoot.createEmptyMovieClip(id, depth);
body._x = x;
body._y = y;
numb = GameClasses.Level.numb_l;
var _local3 = _root.dialogs.LifeBonusCounterText;
txt = new GameClasses.TextClass(body, 2, _local3, 0, 0);
txt.setText(String(numb));
this.x = x + (txt.getWidth() / 2);
this.y = y + (txt.getHeight() / 2);
}
function getBody() {
return(body);
}
function destroy() {
mcRoot = null;
body.removeMovieClip();
body = null;
txt.destroy();
txt = null;
}
function updateNumb() {
GameClasses.Level.numb_l = numb;
}
function getX() {
return(body._x + (body._width / 2));
}
function getY() {
return(body._y + (body._height / 2));
}
function add() {
numb++;
updateNumb();
txt.setText(String(numb));
}
function del() {
numb--;
updateNumb();
txt.setText(String(numb));
}
}
Symbol 1731 MovieClip [__Packages.GameClasses.PapperClass] Frame 0
class GameClasses.PapperClass
{
var mcRoot, name_papper, h, body, text_obj, emc, middle, log, top_bmp, bottom_bmp, middle_bmp, body_bmp, textClass, top, bottom;
function PapperClass (root_mc, name_papp, depth, tex, x, y, h) {
mcRoot = root_mc;
name_papper = name_papp;
this.h = h;
body = mcRoot.createEmptyMovieClip("papper_" + depth, depth);
body._x = x;
body._y = y;
text_obj = tex;
initPapper();
}
function changeEmbed(lib_name) {
emc.removeMovieClip();
emc = MovieClip(body.attachMovie(lib_name, "embed" + getDepthForEmbed(), getDepthForEmbed()));
emc._x = middle._x + 10;
emc._y = middle._y + 10;
}
function getDepthForEmbed() {
return(9);
}
function getBody() {
return(body);
}
function destroy() {
log = null;
text_obj = null;
mcRoot = null;
top_bmp.dispose();
delete top_bmp;
bottom_bmp.dispose();
delete bottom_bmp;
middle_bmp.dispose();
delete middle_bmp;
body_bmp.dispose();
delete body_bmp;
textClass.destroy();
delete textClass;
middle.removeMovieClip();
delete middle;
top.removeMovieClip();
delete top;
bottom.removeMovieClip();
delete bottom;
emc.removeMovieClip();
delete emc;
body.removeMovieClip();
delete body;
}
function initPapper() {
top_bmp = flash.display.BitmapData.loadBitmap(("Top" + name_papper) + ".png");
bottom_bmp = flash.display.BitmapData.loadBitmap(("Bottom" + name_papper) + ".png");
middle_bmp = flash.display.BitmapData.loadBitmap(name_papper + ".png");
top = body.createEmptyMovieClip("top", 4);
bottom = body.createEmptyMovieClip("bottom", 5);
top.attachBitmap(top_bmp, 1);
bottom.attachBitmap(bottom_bmp, 1);
textClass = new GameClasses.TextClass(body, 10, text_obj, 0, 0);
if (h == 0) {
h = textClass.getHeight() + 15;
}
body_bmp = new flash.display.BitmapData(middle_bmp.width, h - 10, true, 0);
var _local2 = ((middle_bmp.height / 2) - (h / 2)) + 5;
body_bmp.copyPixels(middle_bmp, new flash.geom.Rectangle(0, _local2, middle_bmp.width, h - 10), new flash.geom.Point(0, 0));
middle = body.createEmptyMovieClip("middle", 1);
middle.attachBitmap(body_bmp, 1);
middle._x = 0;
middle._y = 5;
top._x = 0;
top._y = 0;
bottom._x = 0;
bottom._y = h - bottom._height;
textClass.setY((body._height - textClass.getHeight()) / 2);
}
function changeH(_h) {
h = _h;
if (h < (textClass.getHeight() + 10)) {
h = textClass.getHeight() + 10;
}
body_bmp.dispose();
middle.removeMovieClip();
body_bmp = new flash.display.BitmapData(middle_bmp.width, h - 10, true, 0);
var _local2 = ((middle_bmp.height / 2) - (h / 2)) + 5;
body_bmp.copyPixels(middle_bmp, new flash.geom.Rectangle(0, _local2, middle_bmp.width, h - 10), new flash.geom.Point(0, 0));
middle = body.createEmptyMovieClip("middle", 1);
middle.attachBitmap(body_bmp, 1);
middle._x = 0;
middle._y = 5;
top._x = 0;
top._y = 0;
bottom._x = 0;
bottom._y = h - bottom._height;
textClass.setY((body._height - textClass.getHeight()) / 2);
}
function initText() {
}
function setText(text_str) {
textClass.setText(text_str);
textClass.setY((body._height - textClass.getHeight()) / 2);
}
function setTextY(val) {
textClass.setY(val);
}
}
Symbol 1732 MovieClip [__Packages.GameClasses.PrepareLevel] Frame 0
class GameClasses.PrepareLevel extends GameClasses.Level
{
var prepare_level_complited, test_functions, createLevelText, hhw, curr_obj, attachMovie, depth, mcs, locked_arr, delay_time, loaded, restore, count_artefacts, cursor_mc, _parent, Simvol, Hole, boom_path_x, boom_path_y, beginGemMenuBoom, altar, exitAct, doFirstLevelAction, snd, artefacts_arr, win_t0, createEmptyMovieClip, amulet_mc, PrepareMetal, button_map, Papper, lockLevel, hintSS_obj, is_locked;
function PrepareLevel () {
super();
prepare_level_complited = false;
test_functions.push(GameClasses.GFunctions.create(this, testOnLocked));
createLevelText = null;
}
function destroy() {
GameClasses.FreeMove.clearInterval(interval_stupid);
interval_stupid = 0;
GameClasses.FreeMove.clearInterval(intervalGemMenuBoom);
intervalGemMenuBoom = 0;
GameClasses.FreeMove.clearInterval(win_interval);
win_interval = 0;
destroyHelpSS();
hhw = null;
super.destroy();
}
function testOnLocked() {
if (curr_obj.type == "locked") {
attachMovie("MCwithBlik", curr_obj.id, depth);
mcs.push(this[curr_obj.id]);
locked_arr.push(this[curr_obj.id]);
this[curr_obj.id].useHandCursor = false;
this[curr_obj.id].initFromBitmap(curr_obj);
return(true);
}
return(false);
}
function load(lev) {
if (delay_time != 0) {
GameClasses.FreeMove.makeDelay(delay_time, GameClasses.GFunctions.create(this, load, lev));
delay_time = 0;
return(undefined);
}
if (loaded) {
restore();
return(undefined);
}
count_artefacts = 0;
cursor_mc = _parent.cursor_mc;
prepare_level_complited = false;
super.load(lev);
locked_arr.push(Simvol);
locked_arr.push(Hole);
if (GameClasses.Vars.enable_hints) {
initHelpSystem();
}
}
function getRandomX(val) {
return((Math.random() * val) - (val / 2));
}
function getRandomY(val) {
return((Math.random() * val) - (val / 2));
}
function GemMenuBoom1() {
boom_path_x = new GameClasses.Spline(0);
boom_path_y = new GameClasses.Spline(0);
var _local2 = 0;
while (_local2 < 10) {
boom_path_x.addKey(getRandomX(4));
boom_path_y.addKey(getRandomY(4));
_local2++;
}
_local2 = 0;
while (_local2 < 20) {
boom_path_x.addKey(getRandomX(8));
boom_path_y.addKey(getRandomY(8));
_local2++;
}
boom_path_x.addKey(0);
boom_path_y.addKey(0);
boom_path_x.Calculate(false);
boom_path_y.Calculate(false);
intervalGemMenuBoom = GameClasses.FreeMove.setInterval(this, "updateGemMenuBoom", 0);
beginGemMenuBoom = getTimer();
altar._x0 = altar._x;
altar._y0 = altar._y;
_local2 = 0;
while (_local2 < locked_arr.length) {
locked_arr[_local2]._x0 = locked_arr[_local2]._x;
locked_arr[_local2]._y0 = locked_arr[_local2]._y;
_local2++;
}
}
function updateGemMenuBoom() {
var _local3 = (getTimer() - beginGemMenuBoom) / tGemMenuBoom;
if (_local3 > 1) {
GameClasses.FreeMove.clearInterval(intervalGemMenuBoom);
intervalGemMenuBoom = 0;
altar._x = altar._x0;
altar._y = altar._y0;
var _local2 = 0;
while (_local2 < locked_arr.length) {
locked_arr[_local2]._x = locked_arr[_local2]._x0;
locked_arr[_local2]._y = locked_arr[_local2]._y0;
_local2++;
}
} else {
altar._x = altar._x0 + int(boom_path_x.getPoint(_local3));
altar._y = altar._y0 + int(boom_path_y.getPoint(_local3));
var _local2 = 0;
while (_local2 < locked_arr.length) {
locked_arr[_local2]._x = locked_arr[_local2]._x0 + int(boom_path_x.getPoint(_local3));
locked_arr[_local2]._y = locked_arr[_local2]._y0 + int(boom_path_y.getPoint(_local3));
_local2++;
}
}
}
function loadNextLevel() {
GameClasses.FreeMove.clearInterval(intervalGemMenuBoom);
intervalGemMenuBoom = 0;
_parent.prev_level = _parent.level;
_parent.prev_obj = _parent.obj;
_parent.level = _parent.map_level;
_parent.obj = _parent.levels.map_level;
delete exitAct;
exitAct = function () {
this.amulet_mc.mov.stopMove();
this.amulet_mc._alpha = 0;
};
GameClasses.Level.reload_level();
}
function loadMap() {
GameClasses.FreeMove.clearInterval(intervalGemMenuBoom);
intervalGemMenuBoom = 0;
_parent.prev_level = _parent.level;
_parent.prev_obj = _parent.obj;
_parent.level = _parent.map_level;
_parent.obj = _parent.levels.map_level;
delete exitAct;
exitAct = function () {
this.amulet_mc.mov.stopMove();
this.amulet_mc._alpha = 0;
};
GameClasses.Level.reload_level();
}
function win() {
doFirstLevelAction = null;
GameClasses.FreeMove.clearInterval(interval_stupid);
interval_stupid = 0;
GameClasses.FreeMove.clearInterval(intervalGemMenuBoom);
intervalGemMenuBoom = 0;
GameClasses.FreeMove.clearInterval(win_interval);
win_interval = 0;
destroyHelpSS();
win = null;
initHelpSystem = null;
GemMenuBoom1();
snd.startSound("level_complete");
var _local2;
Simvol._alpha = 0;
Simvol._visible = true;
_local2 = 0;
while (_local2 < artefacts_arr.length) {
artefacts_arr[_local2].disableHintArt();
_local2++;
}
win_t0 = getTimer();
win_interval = GameClasses.FreeMove.setInterval(this, "updateWin", 0);
createEmptyMovieClip("amulet_mc", 90000);
amulet_mc._visible = false;
amulet_mc.attachMovie("Symbol Amulete", "body1", 1);
var _local6 = new flash.display.BitmapData(amulet_mc.body1._width, amulet_mc.body1._height, true, 0);
_local6.draw(amulet_mc.body1);
amulet_mc.body1._visible = false;
amulet_mc.createEmptyMovieClip("body", 2);
amulet_mc.body.attachBitmap(_local6, 1, "never", true);
amulet_mc.body._x = (-amulet_mc.body._width) / 2;
amulet_mc.body._y = (-amulet_mc.body._height) / 2;
amulet_mc._x = 170;
amulet_mc._y = 150;
amulet_mc.mov = new GameClasses.FreeMove();
var _local3 = new GameClasses.Spline(0, 60);
var _local7 = new GameClasses.Spline(0, -40, 0, 40, 0);
amulet_mc.mov.endAct = GameClasses.GFunctions.create(amulet_mc, function () {
var _local3 = new GameClasses.Spline(0, -10, 0, 10, 0);
_local3.reCalculate(170);
var _local2 = new GameClasses.Spline(0, -5, 0, 5, 0, -5, 0, 5, 0);
_local2.reCalculate(150);
this.mov.newInitMove(this, 5000, 0, _local3, _local2, undefined, undefined);
});
amulet_mc.mov.newInitMove(amulet_mc, win_time, 1, undefined, undefined, _local3, _local3, _local7);
}
function updateWin() {
var _local3 = (getTimer() - win_t0) / win_time;
if (_local3 > 1) {
GameClasses.FreeMove.clearInterval(interval_stupid);
interval_stupid = 0;
GameClasses.FreeMove.clearInterval(intervalGemMenuBoom);
intervalGemMenuBoom = 0;
GameClasses.FreeMove.clearInterval(win_interval);
win_interval = 0;
altar._x = altar._x0;
altar._y = altar._y0;
var _local2 = 0;
while (_local2 < locked_arr.length) {
locked_arr[_local2]._x = locked_arr[_local2]._x0;
locked_arr[_local2]._y = locked_arr[_local2]._y0;
_local2++;
}
_local2 = 0;
while (_local2 < artefacts_arr.length) {
artefacts_arr[_local2]._visible = false;
this["cell" + (_local2 + 1)]._visible = false;
_local2++;
}
Simvol._alpha = 100;
winAct();
} else {
Simvol._alpha = 100 * _local3;
}
}
function initHelpSystem() {
hhw = new Array();
hhw[0] = new GameClasses.HintWindow(this, null, _root.dialogs.PrepareLevelFirstHelpHint);
hhw[0].initHelpHint(175, 200);
hhw[1] = new GameClasses.HintWindow(this, null, _root.dialogs.PrepareLevelSecondHelpHint);
hhw[1].initHelpHintStrela(370, 210, 435);
hhw[2] = new GameClasses.HintWindow(this, null, _root.dialogs.PrepareLevel3HelpHint);
hhw[2].initHelpHintStrela(175, 160, 175);
hhw[3] = new GameClasses.HintWindow(this, null, _root.dialogs.PrepareLevelStupidHint1);
hhw[3].initHelpStrela(400, 260, 480, 4);
hhw[4] = new GameClasses.HintWindow(this, null, _root.dialogs.PrepareLevelStupidHint2);
hhw[4].initHelpStrela(200, 210, 200, 4);
hhw[5] = new GameClasses.HintWindow(this, null, _root.dialogs.PrepareLevelEndHint);
hhw[5].initHelpHint(180, 330, 4);
hhw[6] = new GameClasses.HintWindow(this, null, _root.dialogs.PrepareLevelEndRomeHint);
hhw[6].initHelpHint(175, 150);
hhw[7] = new GameClasses.HintWindow(this, null, _root.dialogs.PrepareLevelEndGreeceHint);
hhw[7].initHelpHint(175, 200);
GameClasses.Level.disableAll(this);
if (GameClasses.Vars.do_first_prepare_level_action) {
GameClasses.Vars.do_first_prepare_level_action = false;
doFirstLevelAction = GameClasses.GFunctions.create(this, function () {
this.doFirstLevelAction = null;
GameClasses.Level.disableAll(this);
this.hhw[0].btn.enable();
this.hhw[0].showHelpHint();
});
hhw[0].endHideAct = GameClasses.GFunctions.create(this, function () {
this.hhw[1].btn.enable();
this.hhw[1].showHelpHint();
});
hhw[1].endHideAct = GameClasses.GFunctions.create(this, function () {
this.hhw[2].btn.enable();
this.hhw[2].showHelpHint();
});
hhw[2].endHideAct = GameClasses.GFunctions.create(this, function () {
GameClasses.Level.enableAll(this);
this.initHelpSS();
this.interval_stupid = GameClasses.FreeMove.setPeriodicInterval(this, "startHelpForStupid", this.time_to_stupid_help);
});
} else {
doFirstLevelAction = GameClasses.GFunctions.create(this, function () {
GameClasses.Level.enableAll(this);
this.initHelpSS();
this.interval_stupid = GameClasses.FreeMove.setPeriodicInterval(this, "startHelpForStupid", this.time_to_stupid_help);
});
}
hhw[6].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
});
hhw[7].endHideAct = GameClasses.GFunctions.create(this, function () {
this.unlockLevel();
});
}
function startHelpForStupid() {
GameClasses.FreeMove.clearInterval(interval_stupid);
interval_stupid = 0;
GameClasses.HintWindow.hideCurrent();
GameClasses.Level.disableAll(this);
PrepareMetal.enable();
hhw[3].showHelpHint(false);
PrepareMetal.onPressActAddition = GameClasses.GFunctions.create(this, function () {
this.hhw[3].hideHelpHint();
GameClasses.Level.disableAll(this);
this.PrepareMetal.dest.enable();
this.PrepareMetal.dest.onPressActAddition = GameClasses.GFunctions.create(this, function () {
this.hhw[4].hideHelpHint();
this.PrepareMetal.onPressActAddition = null;
this.PrepareMetal.dest.onPressActAddition = null;
GameClasses.Level.enableAll(this);
});
this.PrepareMetal.hw_dest.hint_mc.enabled = true;
this.PrepareMetal.hw_dest.disableHint();
this.hhw[4].showHelpHint(false);
});
}
function winAct() {
GameClasses.HintWindow.hideAll();
GameClasses.Level.disableAll(this);
hhw[5].btn.enable();
hhw[5].endHideAct = GameClasses.GFunctions.create(this, function () {
this.loadNextLevel();
});
hhw[5].showHelpHint();
}
function endHideAct() {
endHideAct = null;
button_map.clearActions();
button_map.addAction(GameClasses.GFunctions.create(this, loadMap));
button_map.setText(_root.dialogs.MapPrepareButton.text);
Papper.changeH(160);
var _local3 = 0;
while (_local3 < locked_arr.length) {
locked_arr[_local3]._visible = false;
_local3++;
}
}
function restartLevel() {
}
function setEndRomePapper() {
Papper.setText(_root.dialogs.PreparePapperTextIron.text);
Papper.setTextY(100);
Papper.changeEmbed("script_mars_crystal");
}
function setEndGreecePapper() {
Papper.setText(_root.dialogs.PreparePapperTextEarth.text);
Papper.setTextY(100);
Papper.changeEmbed("script_apollo_crystal");
}
function showEndRomeHint() {
lockLevel();
hhw[6].showHelpHint();
setEndRomePapper();
}
function showEndGreeceHint() {
setEndGreecePapper();
}
function winRomeCountry() {
doFirstLevelAction = function () {
this.doFirstLevelAction = null;
this.snd.startSound("fly_artefact_down");
this.button_map.enabled_action = false;
this.StoneBlack.mov = new GameClasses.FreeMove();
this.StoneBlack.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.button_map.enabled_action = true;
this.SimvolBlack._visible = true;
this.showEndRomeHint();
this.StoneBlack.useHandCursor = false;
this.StoneBlack.onRollOver = GameClasses.GFunctions.create(this, this.setEndRomePapper);
this.StoneBlack.tabEnabled = false;
});
var _local2 = this.StoneBlack._y;
this.StoneBlack._y = -this.StoneBlack._height;
this.StoneBlack._visible = true;
this.StoneBlack.mov.newInitMove(this.StoneBlack, GameClasses.Consts.TIME_OF_THE_CRYSTAL_FALL, 0, undefined, _local2);
};
}
function winGreeceCountry() {
doFirstLevelAction = function () {
this.doFirstLevelAction = null;
this.snd.startSound("fly_artefact_down");
this.button_map.enabled_action = false;
this.StoneGreen.mov = new GameClasses.FreeMove();
this.StoneGreen.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.button_map.enabled_action = true;
this.SimvolGreen._visible = true;
this.showEndGreeceHint();
this.StoneGreen.useHandCursor = false;
this.StoneGreen.onRollOver = GameClasses.GFunctions.create(this, this.setEndGreecePapper);
this.StoneGreen.tabEnabled = false;
});
var _local2 = this.StoneGreen._y;
this.StoneGreen._y = -this.StoneGreen._height;
this.StoneGreen._visible = true;
this.StoneGreen.mov.newInitMove(this.StoneGreen, GameClasses.Consts.TIME_OF_THE_CRYSTAL_FALL, 0, undefined, _local2);
};
}
function initHelpSS() {
hintSS_obj = new Object();
hintSS_obj.mov = new GameClasses.FreeMove();
hintSS_obj.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.hintSS();
this.hintSS_obj.mov.newInitMove(this.hintSS_obj, this.hintSS_T, 0);
});
hintSS_obj.mov.newInitMove(hintSS_obj, hintSS_T, 0);
}
function destroyHelpSS() {
hintSS_obj.mov.destroy();
delete hintSS_obj.mov;
delete hintSS_obj;
}
function hintSS() {
if (is_locked) {
return(undefined);
}
var _local2 = 0;
while ((_local2 < artefacts_arr.length) && (!artefacts_arr[_local2].enabled)) {
_local2++;
}
if (artefacts_arr[_local2] != undefined) {
artefacts_arr[_local2].hintSS();
}
}
var interval_stupid = 0;
var intervalGemMenuBoom = 0;
var win_interval = 0;
var tGemMenuBoom = 1000;
var win_time = 1500;
var time_to_stupid_help = 10000;
var hintSS_T = 20000;
}
Symbol 1733 MovieClip [__Packages.GameClasses.MapLevel] Frame 0
class GameClasses.MapLevel extends GameClasses.Level
{
var count_artefacts, createLevelText, Flag, points_list, levels_list, is_locked, log, _parent, curr_point, delay_time, loaded, mcRoot, lockLevel, Rome, RomeSmall1, RomeISpy2, RomeSmall3, RomeSmall4, RomeISpy5, Greece, GreeceSmall1, GreeceSmall2, GreeceSmall3, GreeceISpy4, GreeceSmall5, GreeceSmall6, GreeceSmall7, GreeceSmall8, GreeceISpy9, Flag_x, Flag_y, CountryTextRome, Rome1_smallSubstr, Rome1_small, text_level, papper, Rome2_smallSubstr, Rome2_small, Rome4_smallSubstr, Rome4_small, Rome3_smallSubstr, Rome3_small, GreeceNoActive, CountryTextGreece, text_country, Greece1_smallSubstr, Greece1_small, Greece9_smallSubstr, Greece9_small, Greece4_smallSubstr, Greece4_small, Greece11_smallSubstr, Greece11_small, Greece2_smallSubstr, Greece2_small, Greece10_smallSubstr, Greece10_small, Greece3_smallSubstr, Greece3_small, Greece12_smallSubstr, Greece12_small, button_start, unlockLevel, snd, level, nps, periodic_effect_obj, NPS_LEVEL_MC, Troy;
function MapLevel () {
super();
count_artefacts = 1;
createLevelText = null;
}
function destroy() {
destroyPeriodicEffect();
Flag.destroy();
delete points_list;
delete levels_list;
super.destroy();
}
function loadAltar() {
if (!is_locked) {
destroyPeriodicEffect();
log.info("call loadAltar from MapLevel");
log.info(" this[\"Flag\"]=" + Flag);
Flag.pause();
_parent.prev_level = _parent.level;
_parent.prev_obj = _parent.obj;
_parent.level = _parent.prepare_level;
_parent.obj = _parent.levels.prepare_level;
GameClasses.Level.reload_level();
}
}
function startLevel() {
if (!is_locked) {
destroyPeriodicEffect();
log.info("call startLevel from MapLevel");
log.info(" this[\"Flag\"]=" + Flag);
Flag.pause();
_parent.prev_level = _parent.level;
_parent.prev_obj = _parent.obj;
_parent.level = levels_list[curr_point].lev;
_parent.obj = levels_list[curr_point].obj;
GameClasses.Level.reload_level();
}
}
function load(lev) {
if (delay_time != 0) {
GameClasses.FreeMove.makeDelay(delay_time, GameClasses.GFunctions.create(this, load, lev));
delay_time = 0;
return(undefined);
}
if (loaded) {
restore();
return(undefined);
}
mcRoot.pauseGlobalGameTime();
super.load(lev);
GameClasses.Vars.do_break_point = false;
lockLevel();
points_list = new Array();
levels_list = new Array();
var _local4 = 2;
levels_list.push(_parent.level_Arr[0]);
points_list.push(Rome);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(Rome);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(RomeSmall1);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(RomeISpy2);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(RomeSmall3);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(RomeSmall4);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(RomeISpy5);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(RomeISpy5);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(Greece);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceSmall1);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceSmall2);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceSmall3);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceISpy4);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceSmall5);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceSmall6);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceSmall7);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceSmall8);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceISpy9);
levels_list.push(_parent.level_Arr[_local4++]);
points_list.push(GreeceISpy9);
if (mcRoot.start_level == 0) {
curr_point = 0;
} else {
curr_point = mcRoot.start_level - 1;
var _local3 = 0;
while (_local3 < curr_point) {
points_list[_local3]._visible = true;
levels_list[_local3].lev.count_artefacts = 0;
_local3++;
}
}
points_list[curr_point]._visible = true;
var _local6 = points_list[curr_point]._x + (points_list[curr_point]._width / 2);
var _local5 = (points_list[curr_point]._y + (points_list[curr_point]._height / 4)) + y_shift;
Flag.setXY(_local6, _local5);
if (levels_list[curr_point].lev.count_artefacts == 0) {
curr_point++;
points_list[curr_point]._visible = true;
_local6 = points_list[curr_point]._x + (points_list[curr_point]._width / 2);
_local5 = (points_list[curr_point]._y + (points_list[curr_point]._height / 4)) + y_shift;
Flag.setXY(_local6, _local5);
}
initMapArtefacts(0);
createPeriodicEffect();
}
function restore() {
mcRoot.pauseGlobalGameTime();
if (delay_time != 0) {
GameClasses.FreeMove.makeDelay(delay_time, GameClasses.GFunctions.create(this, restore));
delay_time = 0;
return(undefined);
}
delay_time = GameClasses.Consts.TIME_TO_HIDE;
if (((levels_list[curr_point].lev.count_artefacts != undefined) && (levels_list[curr_point].lev.count_artefacts <= 0)) && (curr_point < levels_list.length)) {
curr_point++;
points_list[curr_point]._visible = true;
Flag_x = points_list[curr_point]._x + (points_list[curr_point]._width / 2);
Flag_y = (points_list[curr_point]._y + (points_list[curr_point]._height / 4)) + y_shift;
Flag_act = true;
initMapArtefacts(curr_point);
}
Flag.resume();
super.restore();
lockLevel();
}
function win() {
}
function initMapArtefacts(numb) {
var _local3;
switch (numb) {
case 0 :
CountryTextRome.setOpacity(100);
_local3 = 1;
while (_local3 <= 8) {
this["cell" + _local3]._visible = true;
this[("Rome" + _local3) + "_smallSubstr"]._visible = true;
this[("Rome" + _local3) + "_smallSubstr"].uncollectHintArt();
_local3++;
}
break;
case 2 :
Rome1_smallSubstr._visible = false;
Rome1_smallSubstr.collectHintArt();
Rome1_small._visible = true;
Rome1_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel2.text);
papper.setText(_root.dialogs.MapPapperRome2.text);
curr_level = "Level2";
break;
case 3 :
Rome2_smallSubstr._visible = false;
Rome2_smallSubstr.collectHintArt();
Rome2_small._visible = true;
Rome2_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel3.text);
papper.setText(_root.dialogs.MapPapperRome3.text);
curr_level = "Level3";
break;
case 4 :
_local3 = 5;
while (_local3 <= 8) {
this[("Rome" + _local3) + "_smallSubstr"]._visible = false;
this[("Rome" + _local3) + "_smallSubstr"].collectHintArt();
this[("Rome" + _local3) + "_small"]._visible = true;
this[("Rome" + _local3) + "_small"].cell.onCell();
_local3++;
}
text_level.setText(_root.dialogs.MapHeadTextLevel4.text);
papper.setText(_root.dialogs.MapPapperRome4.text);
curr_level = "Level4";
break;
case 5 :
Rome4_smallSubstr._visible = false;
Rome4_smallSubstr.collectHintArt();
Rome4_small._visible = true;
Rome4_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel5.text);
papper.setText(_root.dialogs.MapPapperRome5.text);
curr_level = "Level5";
break;
case 6 :
Rome3_smallSubstr._visible = false;
Rome3_smallSubstr.collectHintArt();
Rome3_small._visible = true;
Rome3_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel6.text);
papper.setText(_root.dialogs.MapPapperRome6.text);
curr_level = "Level6";
break;
case 8 :
GreeceNoActive._visible = false;
CountryTextGreece.setOpacity(100);
_local3 = 1;
while (_local3 <= 8) {
this["cell" + _local3]._visible = false;
this[("Rome" + _local3) + "_smallSubstr"].removeMovieClip();
this[("Rome" + _local3) + "_small"].removeMovieClip();
_local3++;
}
_local3 = 1;
while (_local3 <= 12) {
this[("cell" + _local3) + "2"]._visible = true;
this[("Greece" + _local3) + "_smallSubstr"]._visible = true;
this[("Greece" + _local3) + "_smallSubstr"].uncollectHintArt();
_local3++;
}
text_country.setText(_root.dialogs.MapHeadTextGreece.text);
text_level.setText(_root.dialogs.MapHeadTextLevel1.text);
papper.setText(_root.dialogs.MapPapperGreece1.text);
curr_country = "Greece";
curr_level = "Level1";
break;
case 9 :
Greece1_smallSubstr._visible = false;
Greece1_smallSubstr.collectHintArt();
Greece1_small._visible = true;
Greece1_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel2.text);
papper.setText(_root.dialogs.MapPapperGreece2.text);
curr_level = "Level2";
break;
case 10 :
Greece9_smallSubstr._visible = false;
Greece9_smallSubstr.collectHintArt();
Greece9_small._visible = true;
Greece9_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel3.text);
papper.setText(_root.dialogs.MapPapperGreece3.text);
curr_level = "Level3";
break;
case 11 :
Greece4_smallSubstr._visible = false;
Greece4_smallSubstr.collectHintArt();
Greece4_small._visible = true;
Greece4_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel4.text);
papper.setText(_root.dialogs.MapPapperGreece4.text);
curr_level = "Level4";
break;
case 12 :
Greece11_smallSubstr._visible = false;
Greece11_smallSubstr.collectHintArt();
Greece11_small._visible = true;
Greece11_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel5.text);
papper.setText(_root.dialogs.MapPapperGreece5.text);
curr_level = "Level5";
break;
case 13 :
_local3 = 5;
while (_local3 <= 8) {
this[("Greece" + _local3) + "_smallSubstr"]._visible = false;
this[("Greece" + _local3) + "_smallSubstr"].collectHintArt();
this[("Greece" + _local3) + "_small"]._visible = true;
this[("Greece" + _local3) + "_small"].cell.onCell();
_local3++;
}
text_level.setText(_root.dialogs.MapHeadTextLevel6.text);
papper.setText(_root.dialogs.MapPapperGreece6.text);
curr_level = "Level6";
break;
case 14 :
Greece2_smallSubstr._visible = false;
Greece2_smallSubstr.collectHintArt();
Greece2_small._visible = true;
Greece2_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel7.text);
papper.setText(_root.dialogs.MapPapperGreece7.text);
curr_level = "Level7";
break;
case 15 :
Greece10_smallSubstr._visible = false;
Greece10_smallSubstr.collectHintArt();
Greece10_small._visible = true;
Greece10_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel8.text);
papper.setText(_root.dialogs.MapPapperGreece8.text);
curr_level = "Level8";
break;
case 16 :
Greece3_smallSubstr._visible = false;
Greece3_smallSubstr.collectHintArt();
Greece3_small._visible = true;
Greece3_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel9.text);
papper.setText(_root.dialogs.MapPapperGreece9.text);
curr_level = "Level9";
break;
case 17 :
Greece12_smallSubstr._visible = false;
Greece12_smallSubstr.collectHintArt();
Greece12_small._visible = true;
Greece12_small.cell.onCell();
text_level.setText(_root.dialogs.MapHeadTextLevel10.text);
papper.setText(_root.dialogs.MapPapperGreece10.text);
curr_level = "Level10";
break;
default :
var _local4 = GameClasses.NugLevel.getSingleton();
button_start.clearActions();
button_start.addAction(GameClasses.GFunctions.create(_local4, _local4.showWin));
_local4.showWin();
}
}
function doFirstLevelAction() {
unlockLevel();
if (Flag_act) {
Flag_act = false;
snd.startSound("move_flag_in_map");
Flag.goXY(Flag_x, Flag_y);
}
destroyPeriodicEffect();
createPeriodicEffect();
GameClasses.FreeMove.makeDelay(1000, GameClasses.GFunctions.create(this, startPeriodicEffect));
}
function loadThis() {
}
function restartLevel() {
}
function springViaLevel() {
levels_list[curr_point].lev.count_artefacts = 0;
load(level);
}
function destroyPeriodicEffect() {
nps.destroy();
delete nps;
periodic_effect_obj.mov.destroy();
delete periodic_effect_obj.mov;
delete periodic_effect_obj;
}
function createPeriodicEffect() {
nps = new GameClasses.NewParticleSystem(NPS_LEVEL_MC, (points_list.length - curr_point) + 1);
nps.initTextureFromLibrary("SunFullEffect");
var _local4 = new Array();
var _local3 = new Array();
var _local2 = curr_point;
while (_local2 < points_list.length) {
_local4.push(points_list[_local2]._x + (points_list[_local2]._width / 2));
_local3.push((points_list[_local2]._y + (points_list[_local2]._height / 4)) + y_shift);
_local2++;
}
_local4.push(Troy._x + (Troy._width / 2));
_local3.push((Troy._y + (Troy._height / 4)) + y_shift);
nps.initPath(_local4, _local3);
periodic_effect_obj = new Object();
periodic_effect_obj.mov = new GameClasses.FreeMove();
periodic_effect_obj.mov.updateAct = null;
periodic_effect_obj.mov.endAct = GameClasses.GFunctions.create(this, startPeriodicEffect);
}
function startPeriodicEffect() {
nps.startPS(1, 1, 50, 1000, null, null, new GameClasses.Spline(0, 120, 0), new GameClasses.Spline(0, 100, 0), new GameClasses.Spline(0, -100), new GameClasses.Line(50, 70, 50));
periodic_effect_obj.mov.newInitMove(periodic_effect_obj, periodic_effect_T, 0);
}
var curr_country = "Rome";
var curr_level = "Level1";
var Flag_act = false;
var y_shift = 1;
var periodic_effect_T = 5000;
}
Symbol 1734 MovieClip [__Packages.GameClasses.Flag] Frame 0
class GameClasses.Flag extends MovieClip
{
var mov, polotno_bmp, drevko_bmp, temp_bmp, polotno, drevko, wave, createEmptyMovieClip, rect1, rect2, point, col_trans, tabEnabled, onPress, _x, _y, t0_wave, pol_y0, pol_height, pol_width;
function Flag () {
super();
mov = new GameClasses.FreeMove();
}
function destroy() {
GameClasses.FreeMove.clearInterval(interval_wave);
interval_wave = 0;
polotno_bmp.dispose();
delete polotno_bmp;
drevko_bmp.dispose();
delete drevko_bmp;
temp_bmp.dispose();
delete temp_bmp;
polotno.removeMovieClip();
delete polotno;
drevko.removeMovieClip();
delete drevko;
delete wave;
}
function removeMovieClip() {
destroy();
super.removeMovieClip();
}
function init(name_str) {
polotno_bmp = flash.display.BitmapData.loadBitmap(name_str + "2.png");
drevko_bmp = flash.display.BitmapData.loadBitmap(name_str + ".png");
drevko = createEmptyMovieClip("drevko", 1);
drevko.attachBitmap(drevko_bmp, 1);
polotno = createEmptyMovieClip("polotno", 2);
polotno.attachBitmap(polotno_bmp, 1);
drevko._x = (-drevko._width) / 2;
drevko._y = -drevko._height;
polotno._x = drevko._x + (drevko._width / 2);
polotno._y = drevko._y;
rect1 = new flash.geom.Rectangle(0, 0, 1, 1);
rect2 = new flash.geom.Rectangle(0, 0, 1, 1);
point = new flash.geom.Point(0, 0);
col_trans = new flash.geom.ColorTransform(1, 1, 1, 1, 0, 0, 0, 0);
startWave(X_wave, A_wave, T_wave);
tabEnabled = false;
onPress = onPress1;
}
function goXY(x, y) {
var _local2 = (x - _x) / 2;
var _local4 = new GameClasses.Spline(_x, _x + _local2, x);
var _local3 = new GameClasses.Spline(_y, ((_y + y) / 2) - Math.abs(_local2), y);
mov.newInitMove(this, time_of_move, 0, _local4, _local3);
}
function setXY(x, y) {
_x = x;
_y = y;
}
function pause() {
GameClasses.FreeMove.clearInterval(interval_wave);
interval_wave = 0;
}
function resume() {
GameClasses.FreeMove.clearInterval(interval_wave);
interval_wave = 0;
t0_wave = getTimer();
interval_wave = GameClasses.FreeMove.setInterval(this, "updateWave", 8);
}
function startWave(X, A, T) {
wave = new GameClasses.Wave();
wave.init(X, A, T);
t0_wave = getTimer();
pol_y0 = polotno._y;
pol_height = polotno._height;
pol_width = polotno._width;
temp_bmp = new flash.display.BitmapData(pol_width, pol_height + (2 * wave.A), true, 0);
polotno.attachBitmap(temp_bmp, 1, "never", true);
polotno._y = pol_y0 - wave.A;
polotno.blendMode = 0;
interval_wave = GameClasses.FreeMove.setInterval(this, "updateWave", 16);
}
function restartWave(X, A, T) {
GameClasses.FreeMove.clearInterval(interval_wave);
interval_wave = 0;
wave.init(X, A, T);
t0_wave = getTimer();
temp_bmp = new flash.display.BitmapData(pol_width, pol_height + (2 * wave.A), true, 0);
polotno.attachBitmap(temp_bmp, 1, "never", true);
polotno._y = pol_y0 - wave.A;
interval_wave = GameClasses.FreeMove.setInterval(this, "updateWave", 16);
}
function updateWave() {
var _local3 = getTimer();
var _local2 = (_local3 - t0_wave) / wave.T;
if (_local2 > 1) {
_local2 = 0;
t0_wave = _local3;
}
_local2 = 1 - _local2;
generateBMP(_local2);
}
function generateBMP(t) {
var _local3;
var _local4;
var _local2;
temp_bmp.floodFill(0, 0, 0);
_local2 = 1;
while (_local2 < pol_width) {
_local3 = wave.Y(_local2, t);
_local4 = wave.A + _local3;
rect1.x = _local2;
rect1.y = 0;
rect1.width = 1;
rect1.height = pol_height;
point.x = _local2;
point.y = _local4;
rect2.x = _local2;
rect2.y = _local4;
rect2.width = 1;
rect2.height = pol_height;
col_trans.redOffset = color_coof * _local3;
col_trans.greenOffset = color_coof * _local3;
col_trans.blueOffset = color_coof * _local3;
temp_bmp.copyPixels(polotno_bmp, rect1, point);
temp_bmp.colorTransform(rect2, col_trans);
_local2++;
}
}
function onPress2() {
resume();
onPress = onPress1;
}
function onPress1() {
pause();
onPress = onPress2;
}
var interval_wave = 0;
var time_of_move = 500;
var color_coof = -13;
var X_wave = 13;
var A_wave = 2;
var T_wave = 1500;
}
Symbol 1735 MovieClip [__Packages.GameClasses.Wave] Frame 0
class GameClasses.Wave
{
var X, A, T, coof;
function Wave () {
}
function init(X, A, T) {
this.X = X;
this.A = A;
this.T = T;
coof = Math.PI / X;
}
function Y(x, t) {
var _local5;
var _local2;
var _local6;
if (t < 0.5) {
_local5 = A * (1 - (2 * t));
_local2 = X * (1 - (2 * t));
_local6 = Math.PI / _local2;
if (x <= _local2) {
return(_local5 * Math.sin(x * _local6));
}
return((-A) * Math.sin((x - _local2) * coof));
}
if (t > 0.5) {
_local5 = A * (2 - (2 * t));
_local2 = X * (2 - (2 * t));
_local6 = Math.PI / _local2;
if (x <= _local2) {
return((-_local5) * Math.sin(x * _local6));
}
return(A * Math.sin((x - _local2) * coof));
}
return((-A) * Math.sin(x * coof));
}
}
Symbol 1736 MovieClip [__Packages.GameClasses.Region] Frame 0
class GameClasses.Region extends MovieClip
{
var tabEnabled, onDragOver, onDragOut, onRelease, mask, outline, _visible, attachMovie, body, hitArea, t0_outline, enabled, curr_time_outline;
function Region () {
super();
tabEnabled = false;
}
function destroy() {
GameClasses.FreeMove.clearInterval(intervar_outline);
intervar_outline = 0;
onRollOver = null;
onDragOver = null;
onRollOut = null;
onDragOut = null;
onPress = null;
onPress1 = null;
onRelease = null;
mask.removeMovieClip();
mask = null;
outline.removeMovieClip();
outline = null;
}
function hide() {
_visible = false;
}
function onPress() {
onPress1();
}
function init(obj) {
if (attachMovie(obj.id, "body", 3) == undefined) {
attachMovie("MCfromBMP", "body", 3);
body.init(obj.id + ".png", 1);
}
body._x = (obj.x * 0.65) - (body._width / 2);
body._y = (390 - (obj.y * 0.65)) - (body._height / 2);
body._visible = obj.visible;
hitArea = body;
}
function initMask(obj) {
if (attachMovie(obj.id, "mask", 2) == undefined) {
attachMovie("MCfromBMP", "mask", 2);
mask.init(obj.id + ".png", 1);
}
mask._x = (obj.x * 0.65) - (mask._width / 2);
mask._y = (390 - (obj.y * 0.65)) - (mask._height / 2);
mask._visible = obj.visible;
hitArea = mask;
}
function initOutline(obj) {
if (attachMovie(obj.id, "outline", 1) == undefined) {
attachMovie("MCfromBMP", "outline", 5);
outline.init(obj.id + ".png", 1);
}
outline._x = (obj.x * 0.65) - (outline._width / 2);
outline._y = (390 - (obj.y * 0.65)) - (outline._height / 2);
outline._visible = obj.visible;
hitArea = mask;
}
function onReleaseOutside() {
onRollOut();
}
function onRollOver() {
outline._visible = true;
outline._alpha = 100;
t0_outline = getTimer();
intervar_outline = GameClasses.FreeMove.setInterval(this, "updateOutline", 0);
}
function onRollOut() {
GameClasses.FreeMove.clearInterval(intervar_outline);
intervar_outline = 0;
outline._visible = false;
}
function show(s) {
body._visible = true;
outline._visible = false;
enabled = false;
}
function updateOutline() {
curr_time_outline = getTimer();
var _local2 = (curr_time_outline - t0_outline) / T_outline;
outline._alpha = 50 + (50 * Math.sin(_local2 * Math.PI));
}
var onPress1 = null;
var intervar_outline = 0;
var T_outline = 300;
var direct_outline = -1;
}
Symbol 1737 MovieClip [__Packages.GameClasses.PieceOfCompoundArtefact] Frame 0
class GameClasses.PieceOfCompoundArtefact extends MovieClip
{
var mcRoot, _parent, hint_mov, body, blur_body, copy, mov, shine_mc, ps, nps, idArt, depth, hitArea, enabled, createEmptyMovieClip, _xscale, _yscale, swapDepths, _y, _x, tremble_mov, tremble_x0, tremble_y0;
function PieceOfCompoundArtefact () {
super();
mcRoot = _parent;
}
function destroy() {
hint_mov.destroy();
delete hint_mov;
mcRoot = null;
body.removeMovieClip();
body = null;
blur_body.removeMovieClip();
blur_body = null;
copy.removeMovieClip();
copy = null;
mov.destroy();
mov = null;
shine_mc.mov.destroy();
shine_mc.mov = null;
delete shine_mc;
ps.destroy();
ps = null;
nps.destroy();
nps = null;
}
function removeMovieClip() {
ps.clear();
body.removeMovieClip();
blur_body.removeMovieClip();
copy.removeMovieClip();
mov.clear();
super.removeMovieClip();
}
function initPiece(arts_obj, obj) {
var _local5;
var _local4 = new flash.filters.BlurFilter(blur_intensity, blur_intensity, 1);
var _local3 = new Array();
_local3.push(_local4);
var _local9 = String(obj.idArtefact).substr(String(obj.idArtefact).length - 1, 1);
var _local6 = mcRoot[obj.idArtefact].x;
var _local7 = mcRoot[obj.idArtefact].y;
idArt = obj.idArtefact;
body = GameClasses.CompoundArtefact.getBigPiece(mcRoot, "body" + mcRoot.depth_for_poa, arts_obj, Number(obj.nElement), obj.x * 0.65, 390 - (obj.y * 0.65), -Number(obj.angle), Number(obj.xZoom), Number(obj.yZoom), mcRoot.depth_for_poa++);
shine_mc = new Object();
shine_mc.mov = new GameClasses.FreeMove();
shine_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateShine);
shine_mc.mov.endAct = null;
depth = mcRoot.depth_for_poa - 1;
blur_body = body.blur_body;
_local5 = new Color(blur_body);
_local5.setRGB(ISpyColor);
blur_body.width = blur_body._width;
blur_body.height = blur_body._height;
blur_body.x = blur_body._x;
blur_body.y = blur_body._y;
blur_body._xscale = blur_body._xscale * min_shine_coof;
blur_body._yscale = blur_body._yscale * min_shine_coof;
blur_body.filters = _local3;
blur_body._alpha = 0;
copy = GameClasses.CompoundArtefact.getBigPieceCopy(this, "copy", arts_obj, Number(obj.nElement), _local6, _local7, 2);
hitArea = body;
mcRoot[idArt].count_pieces++;
mcRoot[idArt].txt.setText(String(mcRoot[idArt].count_pieces));
ps = new GameClasses.ParticleSystem("particles.png", 32, 64, 32, 32);
ps.initParticleSystem(body, NUMBER_OF_THE_PARTICLE, 500, 0, 360, 0.05, 0, 90, 20, 80, 20, 16764108, 16763904);
initTremble();
mov = new GameClasses.FreeMove();
mov.__set__endAct(GameClasses.GFunctions.create(this, function () {
this.mcRoot.depth_for_poa--;
this.ps.stopParticleSystem();
this.enabled_hint = true;
this.body._visible = false;
this.body.enabled = false;
this.copy._visible = false;
this.copy.enabled = false;
this.mcRoot[this.idArt].count_pieces--;
this.mcRoot[this.idArt].updateState();
this.body.swapDepths(this.depth);
}));
}
function action() {
if (mcRoot.isLocked()) {
return(undefined);
}
updHitn();
GameClasses.StatisticClass.getSingleton().addRecordValue("pieces", 1);
GameClasses.ISpyLevel.clearHint2();
uninitTremble();
mcRoot.counter.add(30);
enabled = false;
on_the_field = false;
enabled_hint = false;
ps.breakParticleSystem();
ps.startParticleSystem();
body.swapDepths(mcRoot.depth_for_fly_poa++);
var _local3 = new GameClasses.Spline(body._x, (body._x - 10) + (20 * Math.random()), copy._x + body.cx);
_local3.Calculate(false);
var _local2 = new GameClasses.Spline(body._y, (body._y - 10) + (20 * Math.random()), copy._y + body.cy);
_local2.Calculate(false);
var _local5 = new GameClasses.Spline(body._xscale, body._xscale + 40, 100);
_local5.Calculate(false);
var _local4 = new GameClasses.Spline(body._yscale, body._yscale + 40, 100);
_local4.Calculate(false);
mcRoot.snd.startWithDelay("artefact_element_flied", TIME_MOVING);
mov.initSplineTo(body, _local3, _local2, _local5, _local4, 0, TIME_MOVING);
}
function hint() {
if (enabled_hint) {
enabled_hint = false;
ps.startParticleSystem();
hint_mov = GameClasses.FreeMove.makeDelay(HINT_TIME + 1, GameClasses.GFunctions.create(this, updHitn));
}
}
function updHitn() {
hint_mov.destroy();
delete hint_mov;
ps.stopParticleSystem();
enabled_hint = true;
}
function initMatch3BlurShineTexture(arts_obj, n) {
var _local4 = new flash.filters.BlurFilter(blur_intensity, blur_intensity, 1);
blur_body = GameClasses.CompoundArtefact.getBigPieceMatch3(this, "blur_body", arts_obj, n, 1);
var _local2 = new flash.display.BitmapData(blur_body._width, blur_body._height, true, 0);
_local2.draw(blur_body);
var _local3 = new flash.display.BitmapData(_local2.width + 40, _local2.height + 40, true, 0);
_local3.applyFilter(_local2, new flash.geom.Rectangle(0, 0, _local2.width, _local2.height), new flash.geom.Point(20, 20), _local4);
var _local7 = blur_body._x - 20;
var _local6 = blur_body._y - 20;
blur_body.removeMovieClip();
blur_body = createEmptyMovieClip("blur_body", 1);
blur_body.attachBitmap(_local3, 1);
blur_body.x = _local7;
blur_body.y = _local6;
var _local5 = new Color(blur_body);
_local5.setRGB(16777184);
_local2.dispose;
}
function initPieceForMatch3(idArt, arts_obj, n) {
var _local2;
mcRoot = _parent;
this.idArt = idArt;
body = GameClasses.CompoundArtefact.getBigPieceMatch3(this, "body", arts_obj, n, 2);
shine_mc = new Object();
shine_mc.mov = new GameClasses.FreeMove();
shine_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateShine);
shine_mc.mov.endAct = null;
_local2 = Math.min(SIZE / body._width, SIZE / body._height);
if (_local2 > 1) {
_local2 = 1;
}
_xscale = _xscale * _local2;
_yscale = _yscale * _local2;
initMatch3BlurShineTexture(arts_obj, n);
blur_body.width = blur_body._width;
blur_body.height = blur_body._height;
blur_body._alpha = blur_opacity;
blur_body._xscale = blur_body._xscale * min_shine_coof;
blur_body._yscale = blur_body._yscale * min_shine_coof;
blur_body._x = blur_body.x - ((blur_body.width * (min_shine_coof - 1)) / 2);
blur_body._y = blur_body.y - ((blur_body.height * (min_shine_coof - 1)) / 2);
blur_body._alpha = blur_opacity;
depth = mcRoot.depth_for_poa - 1;
mov = new GameClasses.FreeMove();
mcRoot[idArt].count_pieces++;
ps = new GameClasses.ParticleSystem("particles.png", 32, 64, 32, 32);
ps.initParticleSystem(this, NUMBER_OF_THE_PARTICLE, 500, 0, 360, 0.05, 0, 90, 20, 80, 20, 16764108, 16763904);
startShine();
}
function action2() {
updHitn();
var _local2;
var _local3;
enabled = false;
on_the_field = false;
enabled_hint = false;
ps.startParticleSystem();
if (mcRoot[idArt].count_pieces < 2) {
mcRoot.theField.lockTheField();
}
mov.__set__endAct(GameClasses.GFunctions.create(this, function () {
this.ps.stopParticleSystem();
this.enabled_hint = true;
this.mcRoot[this.idArt].count_pieces--;
this.mcRoot[this.idArt].updateState();
this.swapDepths(this.depth);
this.endShine();
}));
swapDepths(mcRoot.depth_for_fly_poa++);
_local2 = new GameClasses.Spline(_y, _y + 30, _y - 10, 20 + (20 * Math.random()), mcRoot[idArt].y + body.dy, mcRoot[idArt].y + body.dy);
_local3 = new GameClasses.Spline(_x, _x + (10 * Math.random()), _x + 50, _x + (20 * Math.random()), mcRoot[idArt].x + body.dx, mcRoot[idArt].x + body.dx);
GameClasses.FreeMove.addActivePiece(this, getTimer());
mov.initSplineTo(this, _local3, _local2, 100, 100, 0, TIME_MOVING_MATCH3);
}
function startShine() {
shine_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateShine);
blur_body._xscale = 0;
blur_body._yscale = 0;
shine_mc.mov.newInitMove(shine_mc, T_shine * 2, 50);
}
function updateShine() {
var _local3;
var _local2 = shine_mc.mov.t * 4;
if (_local2 >= 2) {
schine_counter = ((schine_counter >= position_end_shine) ? 0 : (schine_counter + 1));
shine_mc.mov.last_t = shine_mc.mov.curr_t;
_local2 = 0;
} else if (_local2 >= 1) {
_local2 = 2 - _local2;
}
if (schine_counter == position_end_shine) {
_local3 = min_shine_coof + (_local2 * (max2_shine_coof - min_shine_coof));
} else {
_local3 = min_shine_coof + (_local2 * (max_shine_coof - min_shine_coof));
}
blur_body._xscale = 100 * _local3;
blur_body._yscale = 100 * _local3;
blur_body._x = blur_body.x - ((blur_body.width * (_local3 - 1)) / 2);
blur_body._y = blur_body.y - ((blur_body.height * (_local3 - 1)) / 2);
}
function endShine() {
shine_mc.mov.stopMove1();
shine_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateEndShine);
blur_body._xscale = 0;
blur_body._yscale = 0;
shine_mc.mov.newInitMove(shine_mc, T_shine * 2, 0);
blur_body._alpha = blur_opacity;
max2_shine_coof = max2_shine_coof2;
min_shine_coof = 1;
}
function updateEndShine() {
var _local3;
var _local2 = shine_mc.mov.t * 4;
if (_local2 >= 2) {
blur_body._alpha = 0;
_local2 = 0;
shine_mc.mov.stopMove1();
} else if (_local2 >= 1) {
_local2 = 2 - _local2;
}
_local3 = min_shine_coof + (_local2 * (max2_shine_coof - min_shine_coof));
blur_body._xscale = 100 * _local3;
blur_body._yscale = 100 * _local3;
blur_body._x = blur_body.x - ((blur_body.width * (_local3 - 1)) / 2);
blur_body._y = blur_body.y - ((blur_body.height * (_local3 - 1)) / 2);
}
function endSmallShine() {
shine_mc.mov.stopMove();
shine_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateEndShine);
blur_body._xscale = 0;
blur_body._yscale = 0;
shine_mc.mov.newInitMove(shine_mc, 2 * T_shine, 0);
blur_body._alpha = blur_opacity;
max2_shine_coof = 2;
min_shine_coof = 0.9;
}
function initTremble() {
tremble_mov = new Object();
tremble_mov.mov = new GameClasses.FreeMove();
tremble_mov.mov.updateAct = GameClasses.GFunctions.create(this, updateTremble);
tremble_mov.mov.endAct = GameClasses.GFunctions.create(this, startTremble);
tremble_x0 = body._x;
tremble_y0 = body._y;
body.useHandCursor = false;
body.onRollOver = GameClasses.GFunctions.create(this, startTremble);
body.onDragOver = GameClasses.GFunctions.create(this, startTremble);
body.onRollOut = GameClasses.GFunctions.create(this, stopTremble);
body.onDragOut = GameClasses.GFunctions.create(this, stopTremble);
body.onPress = GameClasses.GFunctions.create(this, action);
body.tabEnabled = false;
}
function uninitTremble() {
stopTremble();
tremble_mov.mov.destroy();
delete tremble_mov.mov;
delete tremble_mov;
delete body.onRollOver;
body.onRollOver = null;
delete body.onDragOver;
body.onDragOver = null;
delete body.onRollOut;
body.onRollOut = null;
delete body.onDragOut;
body.onDragOut = null;
delete body.onPress;
body.onPress = null;
}
function updateTremble() {
body._x = ((Math.random() * 2) + tremble_x0) - 1;
body._y = ((Math.random() * 2) + tremble_y0) - 1;
}
function startTremble() {
if (mcRoot.isLocked()) {
return(undefined);
}
is_tremble = true;
tremble_mov.mov.newInitMove(tremble_mov, 2000, 0);
}
function stopTremble() {
if (is_tremble) {
is_tremble = false;
tremble_mov.mov.stopMove();
body._x = tremble_x0;
body._y = tremble_y0;
}
}
var type = "poa";
var enabled_hint = true;
var TIME_MOVING = GameClasses.Consts.TIME_OF_MOVE_PIECE_OF_ART_TO_PLACE;
var TIME_MOVING_MATCH3 = GameClasses.Consts.TIME_OF_MOVE_PIECE_OF_ART_TO_PLACE_IN_MATCH3;
var HINT_TIME = GameClasses.Consts.TIME_OF_HINT_PS_OF_POA;
var NUMBER_OF_THE_PARTICLE = GameClasses.Consts.NUMBER_OF_THE_POA_PARTICLES;
var SIZE = GameClasses.Consts.CELL_SIZE;
var blur_opacity = GameClasses.Consts.OPACITY_OF_THE_POA_BLUR_BODY;
var min_shine_coof = GameClasses.Consts.BEGIN_MIN_SHINE_INTENSITY_COOF;
var max_shine_coof = GameClasses.Consts.BEGIN_MAX_SHINE_INTENSITY_COOF;
var max2_shine_coof = GameClasses.Consts.BEGIN_MAXMAX_SHINE_INTENSITY_COOF;
var max2_shine_coof2 = GameClasses.Consts.BEGIN_MAXMAX_SHINE_INTENSITY_COOF;
var T_shine = GameClasses.Consts.TIME_OF_THE_SHINE_PERIOD;
var T_shine_end = GameClasses.Consts.TIME_OF_THE_END_SHINE_PERIOD;
var position_end_shine = GameClasses.Consts.POSITION_OF_THE_END_SHINE;
var blur_intensity = GameClasses.Consts.INTENSITY_OF_THE_SHINE_POA_BLUR;
var t0_shine = 0;
var schine_counter = 0;
var on_the_field = true;
var is_tremble = false;
var ISpyColor = 16575661;
}
Symbol 1738 MovieClip [__Packages.GameClasses.CompoundArtefact] Frame 0
class GameClasses.CompoundArtefact
{
function CompoundArtefact () {
}
static function getBigArt(mcRoot, nam, obj, depth) {
var _local4 = obj.id + "_full";
mcRoot[nam] = mcRoot.createEmptyMovieClip(nam, depth);
mcRoot[nam].body = mcRoot[nam].attachMovie(_local4, "body", 1);
mcRoot[nam].cx = obj.cx * 0.65;
mcRoot[nam].cy = mcRoot[nam]._height - (obj.cy * 0.65);
mcRoot[nam].body._x = -mcRoot[nam].cx;
mcRoot[nam].body._y = -mcRoot[nam].cy;
mcRoot[nam].shift_x = obj.bigShiftX * 0.65;
mcRoot[nam].shift_y = (-obj.bigShiftY) * 0.65;
return(mcRoot[nam]);
}
static function getBigArtSubstr(mcRoot, nam, obj, depth) {
var _local3 = obj.id + "_substr";
mcRoot[nam] = mcRoot.createEmptyMovieClip(nam, depth);
mcRoot[nam].body = mcRoot[nam].attachMovie(_local3, "body", 1);
return(mcRoot[nam]);
}
static function getBigPiece(mcRoot, nam, obj, n, x, y, angle, xZoom, yZoom, depth) {
var _local5 = (obj.id + "_") + (Number(n) + 1);
var _local3 = n;
mcRoot[nam] = mcRoot.createEmptyMovieClip(nam, depth);
mcRoot[nam].attachMovie(_local5, "body", 2);
mcRoot[nam].attachMovie(_local5, "blur_body", 1);
mcRoot[nam].hitArea = mcRoot[nam].body;
mcRoot[nam].cx = obj[_local3].cx * 0.65;
mcRoot[nam].cy = mcRoot[nam].body._height - (obj[_local3].cy * 0.65);
mcRoot[nam].xrb = obj[_local3].x * 0.65;
mcRoot[nam].yrb = obj[_local3].y * 0.65;
mcRoot[nam].body._x = -mcRoot[nam].cx;
mcRoot[nam].body._y = -mcRoot[nam].cy;
mcRoot[nam].blur_body._x = -mcRoot[nam].cx;
mcRoot[nam].blur_body._y = -mcRoot[nam].cy;
mcRoot[nam]._x = x;
mcRoot[nam]._y = y;
mcRoot[nam]._rotation = angle;
mcRoot[nam]._xscale = mcRoot[nam]._xscale * xZoom;
mcRoot[nam]._yscale = mcRoot[nam]._yscale * yZoom;
return(mcRoot[nam]);
}
static function getBigPieceCopy(mcRoot, nam, obj, n, x, y, depth) {
var _local5 = (obj.id + "_") + (Number(n) + 1);
var _local3 = n;
mcRoot[nam] = mcRoot.createEmptyMovieClip(nam, depth);
mcRoot[nam].attachMovie(_local5, "body", 1);
mcRoot[nam].xrb = obj[_local3].x * 0.65;
mcRoot[nam].yrb = obj[_local3].y * 0.65;
mcRoot[nam]._x = x + mcRoot[nam].xrb;
mcRoot[nam]._y = (y - mcRoot[nam]._height) - mcRoot[nam].yrb;
return(mcRoot[nam]);
}
static function getBigPieceMatch3(mcRoot, nam, obj, n, depth) {
var _local5 = GameClasses.Consts.CELL_SIZE;
var _local7 = (obj.id + "_") + n;
var _local3 = n - 1;
var _local4;
mcRoot[nam] = mcRoot.createEmptyMovieClip(nam, depth);
mcRoot[nam].attachMovie(_local7, "body", 1);
_local4 = Math.min(_local5 / mcRoot[nam].body._width, _local5 / mcRoot[nam].body._height);
if (_local4 > 1) {
_local4 = 1;
}
mcRoot[nam].cx = obj[_local3].cx * 0.65;
mcRoot[nam].cy = mcRoot[nam].body._height - (obj[_local3].cy * 0.65);
mcRoot[nam].body._x = (-((_local4 * mcRoot[nam].body._width) - _local5)) / 2;
mcRoot[nam].body._y = (-((_local4 * mcRoot[nam].body._height) - _local5)) / 2;
mcRoot[nam].dx = (obj[_local3].x * 0.65) - mcRoot[nam].body._x;
mcRoot[nam].dy = ((-mcRoot[nam]._height) - (obj[_local3].y * 0.65)) - mcRoot[nam].body._y;
return(mcRoot[nam]);
}
}
Symbol 1739 MovieClip [__Packages.GameClasses.CellClass] Frame 0
class GameClasses.CellClass extends MovieClip
{
var onn, off, attachMovie, blendMode, _x, _y, _visible;
function CellClass () {
super();
}
function destroy() {
onn.removeMovieClip();
delete onn;
off.removeMovieClip();
delete off;
}
function initCell(obj, lib_name) {
onn = attachMovie(lib_name, "onn", 2);
if (attachMovie(lib_name + "_off", "off", 1) == undefined) {
off = attachMovie(lib_name, "off", 1);
}
if (obj.onn == "true") {
onCell();
} else {
offCell();
}
onn.blendMode = 0;
off.blendMode = 0;
blendMode = 0;
_x = obj.x;
_y = obj.y;
_visible = obj.visible;
}
function onCell() {
onn._visible = true;
off._visible = false;
}
function offCell() {
off._visible = true;
onn._visible = false;
}
}
Symbol 1740 MovieClip [__Packages.GameClasses.BigArtefact] Frame 0
class GameClasses.BigArtefact extends MovieClip
{
var mcRoot, _parent, mov_obj, cell, txt, ps, hw0, hw1, body, subs, tick, panel_incompl, panel_complet, clear, id_art, attachMovie, depth, x, y, count_pieces, count_pieces_old, t0, x_dest, y_dest;
function BigArtefact () {
super();
mcRoot = _parent;
initMovObj();
}
function initMovObj() {
mov_obj = new Object();
mov_obj.mov = new GameClasses.FreeMove();
}
function getVisibleElems() {
var _local2 = new Array();
_local2.push(this);
return(_local2);
}
function destroy() {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
mcRoot = null;
cell = null;
txt.destroy();
txt = null;
mov_obj.mov.destroy();
mov_obj.mov = null;
mov_obj = null;
ps.destroy();
ps = null;
hw0.destroy();
hw0 = null;
hw1.destroy();
hw1 = null;
body.removeMovieClip();
body = null;
subs.removeMovieClip();
subs = null;
tick.removeMovieClip();
tick = null;
panel_incompl.removeMovieClip();
panel_incompl = null;
panel_complet.removeMovieClip();
panel_complet = null;
}
function removeMovieClip() {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
body.removeMovieClip();
subs.removeMovieClip();
cell.removeMovieClip();
tick.removeMovieClip();
panel_incompl.removeMovieClip();
panel_complet.removeMovieClip();
ps.clear();
clear();
super.removeMovieClip();
}
function updateState() {
}
function initTotalTremble() {
}
function initBigArt(arts_obj, obj) {
id_art = arts_obj.id;
tick = attachMovie(name_tick, "tick", 7);
panel_complet = attachMovie(name_complet, "panel_complet", 2);
panel_incompl = attachMovie(name_incompl, "panel_incompl", 1);
cell = mcRoot[obj.cell];
subs = GameClasses.CompoundArtefact.getBigArtSubstr(this, "subs", arts_obj, 3);
body = GameClasses.CompoundArtefact.getBigArt(mcRoot, "body" + mcRoot.depth_for_a, arts_obj, mcRoot.depth_for_a++);
depth = mcRoot.depth_for_a - 1;
body._visible = false;
panel_complet._visible = false;
tick._visible = false;
panel_incompl._x = obj.x;
panel_incompl._y = obj.y;
panel_complet._x = obj.x;
panel_complet._y = obj.y;
body._x = (obj.x + body.cx) + ((panel_incompl._width - body._width) / 2);
body._y = (obj.y + body.cy) + ((panel_incompl._height - body._height) / 2);
subs._x = obj.x + ((panel_incompl._width - subs._width) / 2);
subs._y = obj.y + ((panel_incompl._height - subs._height) / 2);
tick._x = obj.x + ((panel_incompl._width - tick._width) / 2);
tick._y = obj.y + ((panel_incompl._height - tick._height) / 2);
x = obj.x + ((panel_incompl._width - body._width) / 2);
y = (obj.y + panel_incompl._height) - ((panel_incompl._height - body._height) / 2);
count_pieces = 0;
count_pieces_old = 0;
updateState = updateBigArt;
txt = new GameClasses.TextClass(this, 9, _root.dialogs.IspyPieceSmallCounter, obj.x, obj.y);
ps = new GameClasses.ParticleSystem("particles.png", 32, 32, 32, 32);
ps.initParticleSystem(body, GameClasses.Consts.NUMBER_OF_THE_ART_PARTICLE, 500, 0, 360, 0.05, 0, 90, 20, 80, 20, 16764108, 16763904);
hw0 = new GameClasses.HintWindow(mcRoot, panel_incompl, _root.dialogs.HintWindowTextBigArtefactNotCollected);
hw1 = new GameClasses.HintWindow(mcRoot, panel_incompl, _root.dialogs.HintWindowTextBigArtefactSolved);
hw1.disableHint();
hw0.enableHint();
}
function updateBigArtEndAct() {
mcRoot[id_art + "_smallSubstr"].collectHintArt();
hw0.disableHint();
hw1.enableHint();
mcRoot.count_artefacts--;
if (mcRoot.count_artefacts == 0) {
mcRoot.win();
}
body.swapDepths(depth);
cell.onCell();
panel_incompl._visible = false;
panel_complet._visible = true;
txt.hide();
tick._visible = true;
subs._visible = false;
ps.stopParticleSystem();
}
function updateBigArt() {
var _local2 = 6;
var _local3;
var _local5;
var _local4;
var _local7;
var _local6;
var _local9;
var _local8;
var _local11;
var _local14;
var _local13;
var _local12;
var _local10;
if (count_pieces != count_pieces_old) {
txt.setText(String(count_pieces));
if (numb_pieces < count_pieces_old) {
numb_pieces = count_pieces_old + 1;
}
count_pieces_old = count_pieces;
if (count_pieces == 0) {
mcRoot.snd.startSound("artefact_collected");
mov_obj.mov.endAct = GameClasses.GFunctions.create(this, updateBigArtEndAct);
t0 = getTimer();
interval = GameClasses.FreeMove.setInterval(this, "updateTotalArt", 0, this);
_local12 = 1;
while (_local12 <= numb_pieces) {
_local3 = mcRoot[(id_art + "_") + _local12];
_local3.body._visible = true;
_local3.min_shine_coof = 1;
_local3.T_shine_end = GameClasses.Consts.TIME_OF_THE_TREMBLE_SHINE_PERIOD;
_local3.endShine();
_local5 = _local3.body._x;
_local4 = _local3.body._y;
_local7 = _local5 - body._x;
_local6 = _local4 - body._y;
_local2 = 3;
_local7 = (_local2 * _local7) / Math.abs(_local7);
_local6 = (_local2 * _local6) / Math.abs(_local6);
_local9 = new GameClasses.Spline(_local5);
_local10 = 0;
while (_local10 < _local2) {
_local9.addKey(_local5 + ((_local7 * _local10) / _local2));
_local10++;
}
_local10 = _local2;
while (_local10 >= 0) {
_local9.addKey(_local5 + ((_local7 * _local10) / _local2));
_local10--;
}
_local9.addKey(_local5);
_local9.Calculate(false);
_local8 = new GameClasses.Spline(_local4);
_local10 = 0;
while (_local10 < _local2) {
_local8.addKey(_local4 + ((_local6 * _local10) / _local2));
_local10++;
}
_local10 = _local2;
while (_local10 >= 0) {
_local8.addKey(_local4 + ((_local6 * _local10) / _local2));
_local10--;
}
_local8.addKey(_local4);
_local8.Calculate(false);
_local11 = new GameClasses.Spline(0);
_local10 = 0;
while (_local10 < 20) {
_local11.addKey(-5 + (10 * Math.random()));
_local10++;
}
_local11.addKey(0);
_local11.Calculate(false);
_local14 = new GameClasses.Spline(100, 100);
_local14.Calculate(false);
_local13 = new GameClasses.Spline(100, 100);
_local13.Calculate(false);
_local3.mov.endAct = null;
_local3.mov.initSplineTo(_local3.body, _local9, _local8, _local14, _local13, _local11, T_TOTAL_ART);
_local12++;
}
body._visible = false;
}
}
}
function initCrystal(arts_obj, obj) {
type = "crystal";
id_art = arts_obj.id;
x_dest = 280;
y_dest = 170;
panel_incompl = attachMovie(name_art_bg, "panel_incompl", 1);
subs = GameClasses.CompoundArtefact.getBigArtSubstr(this, "subs", arts_obj, 3);
body = GameClasses.CompoundArtefact.getBigArt(mcRoot, "body" + mcRoot.depth_for_a, arts_obj, mcRoot.depth_for_a++);
depth = mcRoot.depth_for_a - 1;
body._visible = false;
panel_incompl._x = obj.x;
panel_incompl._y = obj.y;
body._x = (obj.x + body.cx) + ((panel_incompl._width - body._width) / 2);
body._y = (obj.y + body.cy) + ((panel_incompl._height - body._height) / 2);
subs._x = obj.x + ((panel_incompl._width - subs._width) / 2);
subs._y = obj.y + ((panel_incompl._height - subs._height) / 2);
x = obj.x + ((panel_incompl._width - body._width) / 2);
y = (obj.y + panel_incompl._height) - ((panel_incompl._height - body._height) / 2);
count_pieces = 0;
count_pieces_old = 0;
updateState = updateCrystal;
txt = new GameClasses.TextClass(this, 9, GameClasses.TextClass.createTextObject(" ", "Victorian", (obj.x + panel_incompl._width) - 56, (obj.y + panel_incompl._height) - 32, 20, 20, 11513807, 0, 12, "center", false, 0, 0, 0, 0), 0, 0);
ps = new GameClasses.ParticleSystem("particles.png", 32, 32, 32, 32);
ps.initParticleSystem(body, GameClasses.Consts.NUMBER_OF_THE_ART_PARTICLE, 500, 0, 360, 0.05, 0, 90, 20, 80, 20, 16764108, 16763904);
}
function reinitCrystal() {
var _local3 = 1;
while (_local3 <= count_pieces) {
var _local2 = mcRoot[(id_art + "_") + _local3];
_local2.body._visible = true;
_local2.copy._visible = false;
_local2.mov.endAct = GameClasses.GFunctions.create(_local2, function () {
this.mcRoot.depth_for_poa--;
this.ps.stopParticleSystem();
this.enabled_hint = true;
this.body._visible = false;
this.body.enabled = false;
this.copy._visible = true;
this.copy.enabled = false;
this.mcRoot[this.idArt].count_pieces--;
this.mcRoot[this.idArt].updateState();
this.body.swapDepths(this.depth);
});
_local3++;
}
}
function updateCrystalEndAct() {
mcRoot.count_artefacts--;
if (mcRoot.count_artefacts == 0) {
mcRoot.win();
}
body.swapDepths(depth);
ps.stopParticleSystem();
}
function updateCrystal() {
var _local2 = 6;
var _local3;
var _local5;
var _local4;
var _local7;
var _local6;
var _local9;
var _local8;
var _local11;
var _local14;
var _local13;
var _local12;
var _local10;
if (count_pieces != count_pieces_old) {
txt.setText(String(count_pieces));
if (numb_pieces < count_pieces_old) {
numb_pieces = count_pieces_old + 1;
}
count_pieces_old = count_pieces;
if (count_pieces == 0) {
mcRoot.snd.startSound("artefact_collected");
mov_obj.mov.endAct = GameClasses.GFunctions.create(this, updateCrystalEndAct);
t0 = getTimer();
interval = GameClasses.FreeMove.setInterval(this, "updateTotalArt", 0, this, x_dest, y_dest, 1.2);
_local12 = 1;
while (_local12 <= numb_pieces) {
_local3 = mcRoot[(id_art + "_") + _local12];
_local3.body._visible = true;
_local3.min_shine_coof = 1;
_local3.T_shine_end = GameClasses.Consts.TIME_OF_THE_TREMBLE_SHINE_PERIOD;
_local3.endShine();
_local5 = _local3.body._x;
_local4 = _local3.body._y;
_local7 = _local5 - body._x;
_local6 = _local4 - body._y;
_local7 = (_local2 * _local7) / Math.abs(_local7);
_local6 = (_local2 * _local6) / Math.abs(_local6);
_local9 = new GameClasses.Spline(_local5);
_local10 = 0;
while (_local10 < _local2) {
_local9.addKey(_local5 + ((_local7 * _local10) / _local2));
_local10++;
}
_local10 = _local2;
while (_local10 >= 0) {
_local9.addKey(_local5 + ((_local7 * _local10) / _local2));
_local10--;
}
_local9.addKey(_local5);
_local9.Calculate(false);
_local8 = new GameClasses.Spline(_local4);
_local10 = 0;
while (_local10 < _local2) {
_local8.addKey(_local4 + ((_local6 * _local10) / _local2));
_local10++;
}
_local10 = _local2;
while (_local10 >= 0) {
_local8.addKey(_local4 + ((_local6 * _local10) / _local2));
_local10--;
}
_local8.addKey(_local4);
_local8.Calculate(false);
_local11 = new GameClasses.Spline(0);
_local10 = 0;
while (_local10 < 20) {
_local11.addKey(-5 + (10 * Math.random()));
_local10++;
}
_local11.addKey(0);
_local11.Calculate(false);
_local14 = new GameClasses.Spline(100, 100);
_local14.Calculate(false);
_local13 = new GameClasses.Spline(100, 100);
_local13.Calculate(false);
_local3.mov.endAct = null;
_local3.mov.initSplineTo(_local3.body, _local9, _local8, _local14, _local13, _local11, T_TOTAL_ART);
_local12++;
}
body._visible = false;
}
}
}
function initMatch3BigArt(arts_obj, obj) {
id_art = arts_obj.id;
panel_incompl = attachMovie(name_incompl, "panel_incompl", 1);
panel_incompl._visible = false;
cell = mcRoot[obj.cell];
subs = GameClasses.CompoundArtefact.getBigArtSubstr(this, "subs", arts_obj, 3);
body = GameClasses.CompoundArtefact.getBigArt(mcRoot, "body" + mcRoot.depth_for_a, arts_obj, mcRoot.depth_for_a++);
depth = mcRoot.depth_for_a - 1;
body._visible = false;
tick._visible = false;
panel_incompl._x = obj.x;
panel_incompl._y = obj.y;
body._x = (panel_incompl._x + body.cx) + ((panel_incompl._width - body._width) / 2);
body._y = (panel_incompl._y + body.cy) + ((panel_incompl._height - body._height) / 2);
subs._x = obj.x + ((panel_incompl._width - subs._width) / 2);
subs._y = obj.y + ((panel_incompl._height - subs._height) / 2);
x = obj.x + ((panel_incompl._width - body._width) / 2);
y = (obj.y + panel_incompl._height) - ((panel_incompl._height - body._height) / 2);
count_pieces = 0;
count_pieces_old = 0;
updateState = updateMatch3BigArt;
ps = new GameClasses.ParticleSystem("particles.png", 32, 32, 32, 32);
ps.initParticleSystem(body, GameClasses.Consts.NUMBER_OF_THE_ART_PARTICLE, 500, 0, 360, 0.05, 0, 90, 20, 80, 20, 16764108, 16763904);
hw0 = new GameClasses.HintWindow(mcRoot, panel_incompl, _root.dialogs.HintWindowTextBigArtefactNotCollected);
hw1 = new GameClasses.HintWindow(mcRoot, panel_incompl, _root.dialogs.HintWindowTextBigArtefactSolved);
hw1.disableHint();
hw0.enableHint();
}
function updateMatch3BigArtEndAct() {
mcRoot.count_artefacts--;
hw0.disableHint();
hw1.enableHint();
if (mcRoot.count_artefacts == 0) {
mcRoot.win();
}
body.swapDepths(depth);
cell.onCell();
ps.stopParticleSystem();
}
function updateMatch3BigArt() {
var _local2 = 6;
var _local3;
var _local5;
var _local4;
var _local7;
var _local6;
var _local9;
var _local8;
var _local11;
var _local14;
var _local13;
var _local12;
var _local10;
if (count_pieces != count_pieces_old) {
if (numb_pieces < count_pieces_old) {
numb_pieces = count_pieces_old + 1;
}
count_pieces_old = count_pieces;
if (count_pieces == 0) {
mcRoot.snd.startSound("artefact_collected");
mcRoot.is_locked = true;
mcRoot.TheField.is_locked = true;
mov_obj.mov.endAct = GameClasses.GFunctions.create(this, updateMatch3BigArtEndAct);
t0 = getTimer();
interval = GameClasses.FreeMove.setInterval(this, "updateTotalArt", 0, this);
_local12 = 1;
while (_local12 <= numb_pieces) {
_local3 = mcRoot[(id_art + "_") + _local12];
_local3.min_shine_coof = 1;
_local3.T_shine_end = GameClasses.Consts.TIME_OF_THE_TREMBLE_SHINE_PERIOD;
_local3.endShine();
_local3.body._x = -_local3.cx;
_local3.body._y = -_local3.cy;
_local3.dx = 0;
_local3.dy = 0;
_local5 = _local3._x;
_local4 = _local3._y;
_local7 = _local5 - body._x;
_local6 = _local4 - body._y;
_local2 = 3;
_local7 = (_local2 * _local7) / Math.abs(_local7);
_local6 = (_local2 * _local6) / Math.abs(_local6);
_local9 = new GameClasses.Spline(_local5);
_local10 = 0;
while (_local10 < _local2) {
_local9.addKey(_local5 + ((_local7 * _local10) / _local2));
_local10++;
}
_local10 = _local2;
while (_local10 >= 0) {
_local9.addKey(_local5 + ((_local7 * _local10) / _local2));
_local10--;
}
_local9.addKey(_local5);
_local9.Calculate(false);
_local8 = new GameClasses.Spline(_local4);
_local10 = 0;
while (_local10 < _local2) {
_local8.addKey(_local4 + ((_local6 * _local10) / _local2));
_local10++;
}
_local10 = _local2;
while (_local10 >= 0) {
_local8.addKey(_local4 + ((_local6 * _local10) / _local2));
_local10--;
}
_local8.addKey(_local4);
_local8.Calculate(false);
_local11 = new GameClasses.Spline(0);
_local10 = 0;
while (_local10 < 20) {
_local11.addKey(-5 + (10 * Math.random()));
_local10++;
}
_local11.addKey(0);
_local11.Calculate(false);
_local14 = new GameClasses.Spline(_local3._xscale, 100);
_local14.Calculate(false);
_local13 = new GameClasses.Spline(_local3._yscale, 100);
_local13.Calculate(false);
_local3.mov.endAct = null;
GameClasses.FreeMove.addActivePiece(_local3, getTimer());
_local3.mov.initSplineTo(_local3, _local9, _local8, _local14, _local13, _local11, T_TOTAL_ART);
_local12++;
}
}
}
}
function updateTotalArt(mc, xd, yd, coof) {
var _local2 = (getTimer() - t0) / T_TOTAL_ART;
if (_local2 > 1) {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
ps.startParticleSystem();
mc.endFunctionTotalArt(xd, yd, coof);
}
}
function endFunctionTotalArt(xd, yd, coof) {
var _local7;
var _local5;
var _local6;
var _local4;
var _local9;
var _local8;
body._visible = true;
var _local2 = 1;
while (_local2 <= numb_pieces) {
mcRoot[(id_art + "_") + _local2]._visible = false;
mcRoot[(id_art + "_") + _local2].body._visible = false;
_local2++;
}
subs._visible = false;
if (coof == undefined) {
coof = 0.65;
}
body.swapDepths(mcRoot.depth_for_fly_a++);
_local7 = body._x;
_local5 = body._y;
if (xd == undefined) {
_local6 = (cell._x + (coof * body.cx)) + ((cell._width - (coof * body._width)) / 2);
} else {
_local6 = xd;
}
if (yd == undefined) {
_local4 = (cell._y + (coof * body.cy)) + ((cell._height - (coof * body._height)) / 2);
} else {
_local4 = yd;
}
_local9 = new GameClasses.Spline(_local7, _local7 + (10 * Math.random()), _local7 + (50 * Math.random()), _local6 - (10 * Math.random()), _local6);
_local9.Calculate(false);
_local8 = new GameClasses.Spline(_local5, _local5 + (10 * Math.random()), _local5 + ((_local4 - _local5) / 2), _local4 - (10 * Math.random()), _local4);
_local8.Calculate(false);
mcRoot.snd.startSound("fly_artefact_down");
mov_obj.mov.initSplineTo(body, _local9, _local8, 100 * coof, 100 * coof, 0, TIME_MOVING);
}
var interval = 0;
var numb_pieces = 0;
var name_incompl = "back_artefact_small_incompl";
var name_complet = "back_artefact_small_complet";
var name_art_bg = "background_with_count";
var name_tick = "tick";
var T_TOTAL_ART = GameClasses.Consts.TIME_OF_TREMBLE_TOTAL_ART;
var TIME_MOVING = GameClasses.Consts.TIME_OF_MOVE_TOTAL_ART_TO_PLACE;
var TIME_MOVING_MATCH3 = GameClasses.Consts.TIME_OF_MOVE_TOTAL_ART_TO_PLACE_IN_MATCH3;
var type = "artefact";
}
Symbol 1741 MovieClip [__Packages.GameClasses.Chip] Frame 0
class GameClasses.Chip extends MovieClip
{
static var bmp_gen, bmps_gen, cps_gen;
var log, mcRoot, _parent, useHandCursor, mov, mcs, blik_mcs, rot_mcs, interval, dissap_ps, explode_ps, cps_endAct, blik_mc, rot_mc, cps, endActRotMC, clear, _x, _y, chip_name, _alpha, createEmptyMovieClip, width, _width, height, _height, curr_frame;
function Chip () {
super();
log = logger.Logger.getLog();
mcRoot = _parent;
if (bmp_gen == undefined) {
bmp_gen = new Object();
bmps_gen = new Object();
cps_gen = new Object();
}
useHandCursor = false;
mov = new GameClasses.FreeMove();
mcs = new Array();
blik_mcs = new Array();
rot_mcs = new Array();
interval = -1;
if (bmp_gen["particles.png"] == undefined) {
bmp_gen["particles.png"] = flash.display.BitmapData.loadBitmap("particles.png");
}
if (bmp_gen.dissap_ps == undefined) {
var _local3 = new flash.display.BitmapData(32, 32, true, 0);
_local3.copyPixels(bmp_gen["particles.png"], new flash.geom.Rectangle(64, 64, 32, 32), new flash.geom.Point(0, 0));
bmp_gen.dissap_ps = _local3;
}
if (bmp_gen.explode_ps == undefined) {
var _local3 = new flash.display.BitmapData(32, 32, true, 0);
_local3.copyPixels(bmp_gen["particles.png"], new flash.geom.Rectangle(32, 64, 32, 32), new flash.geom.Point(0, 0));
bmp_gen.explode_ps = _local3;
}
dissap_ps = new GameClasses.NewParticleSystem(mcRoot.NPS_BG_LEVEL_MC, 1);
dissap_ps.initTexture(bmp_gen.dissap_ps);
explode_ps = new GameClasses.NewParticleSystem(mcRoot.NPS_BG_LEVEL_MC, 1);
explode_ps.initTexture(bmp_gen.explode_ps);
}
function destroy() {
log.info("call function destroy from Chip");
mcRoot = null;
blik_mcs = null;
rot_mcs = null;
cps_endAct = null;
for (var _local3 in mcs) {
if (mcs[_local3] instanceof MovieClip) {
MovieClip(mcs[_local3]).removeMovieClip();
delete mcs[_local3];
}
}
mcs = null;
mov.destroy();
mov = null;
blik_mc.mov.destroy();
blik_mc.mov = null;
blik_mc = null;
rot_mc.mov.destroy();
rot_mc.mov = null;
rot_mc = null;
dissap_ps.destroy();
dissap_ps = null;
explode_ps.destroy();
explode_ps = null;
cps.destroy();
cps = null;
for (var _local3 in bmp_gen) {
flash.display.BitmapData(bmp_gen[_local3]).dispose();
delete bmp_gen[_local3];
}
bmp_gen = null;
for (var _local3 in bmps_gen) {
for (var _local2 in bmps_gen[_local3]) {
flash.display.BitmapData(bmps_gen[_local3][_local2]).dispose();
delete bmps_gen[_local3][_local2];
}
delete bmps_gen[_local3];
}
bmps_gen = null;
for (var _local3 in cps_gen) {
cps_gen[_local3].destroy();
delete cps_gen[_local3];
}
cps_gen = null;
endActRotMC = null;
log = null;
}
function removeMovieClip() {
var _local3;
delete mcs;
mov.clear();
delete mov;
clear();
super.removeMovieClip();
}
static function deleteTextures() {
}
function startDissapPS(delay) {
dissap_ps.startPS(1, delay, 0, TIME_DISSAPEAR_PS, Number(_x + (SIZE / 2)), Number(_y + (SIZE / 2)), new GameClasses.Spline(110, 90, 0), new GameClasses.Spline(110, 90, 0));
}
function startExploude(delay) {
cps.reinit(cps_gen[chip_name]);
cps.startExplode(_x, _y, -80, 80, 70, -0.3, 0.01, 0.0007, delay, cps_endAct);
explode_ps.startPS(1, delay, 0, TIME_EXPLODE_PS, Number(_x + (SIZE / 2)), Number(_y + (SIZE / 2)), new GameClasses.Spline(0, 100, 120, 100, 0), new GameClasses.Spline(0, 100, 120, 100, 0), new GameClasses.Spline(0, -10 + (20 * Math.random())));
}
function startExploudeCPS(delay) {
cps.reinit(cps_gen[chip_name]);
cps.startExplode(_x, _y, -80, 80, 70, -0.3, 0.01, 0.0007, delay, cps_endAct);
}
function initChip(nam) {
var _local2;
var _local5;
var _local4 = new flash.geom.Rectangle(0, 0, SIZE, SIZE);
var _local6 = new flash.geom.Point(0, 0);
var _local7;
_alpha = 0;
chip_name = nam;
if (bmp_gen[nam] == undefined) {
bmp_gen[nam] = flash.display.BitmapData.loadBitmap(nam);
_local5 = bmp_gen[nam];
bmps_gen[nam] = new Array();
_local2 = 0;
while (_local2 < 72) {
_local4.x = SIZE * (_local2 % 12);
_local4.y = SIZE * int(_local2 / 12);
bmps_gen[nam][_local2] = new flash.display.BitmapData(SIZE, SIZE, true);
bmps_gen[nam][_local2].copyPixels(_local5, _local4, _local6);
_local2++;
}
cps_gen[nam] = new GameClasses.CompaundParticleSystem(this, bmps_gen[nam][0], 13, 13);
}
cps = new GameClasses.CompaundParticleSystem(cps_gen[nam]);
mcs[0] = createEmptyMovieClip("mc0", 0);
mcs[0].filters = null;
mcs[0].cacheAsBitmap = false;
width = _width;
height = _height;
curr_frame = 0;
setState(-1);
blik_mc = new Object();
blik_mc.mov = new GameClasses.FreeMove();
delete blik_mc.mov.updateAct;
blik_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateBlikMC);
blik_mc.mov.endAct = null;
rot_mc = new Object();
rot_mc.mov = new GameClasses.FreeMove();
rot_mc.mov.updateAct = GameClasses.GFunctions.create(this, updateRotationMC);
endActRotMC = GameClasses.GFunctions.create(this, function () {
this.is_rot = false;
if (this.do_stop) {
this.rot_mc.mov.endAct = null;
this.breakRotation();
} else {
this.startRotation();
}
});
}
function reinitChip(nam) {
var _local3;
chip_name = nam;
setState(-1);
rot_mc.mov.stopMove();
blik_mc.mov.stopMove();
mov.stopMove();
is_rot = false;
}
function updateRotationMC() {
var _local2 = rot_mc.mov.t;
if (_local2 >= 1) {
setState(0);
} else {
setState(int(_local2 * 36));
}
}
function startRotation() {
if (!is_rot) {
if (blik_mc.mov.active) {
breakBlik();
}
do_stop = false;
is_rot = true;
setState(0);
rot_mc.mov.endAct = endActRotMC;
GameClasses.FreeMove.addActivePiece(rot_mc, getTimer());
rot_mc.mov.initMove(rot_mc, time_rot, 0);
}
}
function stopRotation() {
do_stop = true;
}
function breakRotation() {
rot_mc.mov.endAct = null;
rot_mc.mov.stopMove();
setState(0);
is_rot = false;
do_stop = false;
}
function updateBlikMC() {
var _local2 = blik_mc.mov.t;
if (_local2 >= 1) {
setState(0);
} else {
setState(36 + int(_local2 * 36));
}
}
function startBlik(delay) {
if (is_rot) {
return(undefined);
}
setState(0);
GameClasses.FreeMove.makeDelay(delay, GameClasses.GFunctions.create(blik_mc.mov, blik_mc.mov.newInitMove, blik_mc, time_blik, 1));
}
function breakBlik() {
blik_mc.mov.stopMove();
setState(0);
}
function setState(i) {
if (curr_frame == i) {
return(undefined);
}
if (i <= 0) {
i = 36;
}
curr_frame = i;
mcs[0].removeMovieClip();
mcs[0] = createEmptyMovieClip("mc0", 0);
mcs[0].attachBitmap(bmps_gen[chip_name][curr_frame], 1);
}
var type = "chip";
var do_stop = false;
var is_rot = false;
var SIZE = GameClasses.Consts.CELL_SIZE;
var time_rot = GameClasses.Consts.CHIP_TIME_ROTATION;
var time_blik = GameClasses.Consts.CHIP_TIME_BLIK;
var TIME_DISSAPEAR_PS = GameClasses.Consts.TIME_OF_DISSAPEAR_CHIP_PS;
var TIME_EXPLODE_PS = GameClasses.Consts.TIME_OF_EXPLODE_CHIP_PS;
var anim_step = 3;
var anim_coof = 36 / GameClasses.Chip.prototype.anim_step;
}
Symbol 1742 MovieClip [__Packages.GameClasses.CompaundParticleSystem] Frame 0
class GameClasses.CompaundParticleSystem
{
var log, imax, jmax, mcRoot, part_bmps, particles, ps_mc, mc, bmp, w, h, point;
function CompaundParticleSystem (mc, bmp, w, h) {
log = logger.Logger.getLog();
var _local5;
var _local7;
number_particles = 0;
var _local2;
var _local6;
var _local11 = new flash.geom.Point(0, 0);
var _local4 = new flash.geom.Rectangle(0, 0, w, h);
var _local3;
if (mc instanceof MovieClip) {
var _local14 = bmp.height - (imax * h);
var _local13 = bmp.width - (jmax * w);
mcRoot = mc._parent.CPS_LEVEL_MC;
imax = int(bmp.height / h);
jmax = int(bmp.width / w);
part_bmps = new Array();
particles = new Array();
ps_mc = mcRoot.createEmptyMovieClip("cps" + depth, depth++);
ps_mc._visible = false;
this.mc = mc;
this.bmp = bmp;
this.w = w;
this.h = h;
_local5 = 0;
while (_local5 < imax) {
_local4.y = h * _local5;
_local7 = 0;
while (_local7 < jmax) {
_local4.x = w * _local7;
particles[number_particles] = ps_mc.createEmptyMovieClip("part_" + number_particles, number_particles);
part_bmps[number_particles] = new flash.display.BitmapData(w, h, true, 0);
_local2 = particles[number_particles];
_local6 = part_bmps[number_particles];
_local6.copyPixels(bmp, _local4, _local11);
_local3 = _local2.createEmptyMovieClip("body", 1);
_local3.attachBitmap(_local6, 1);
_local3._x = (-_local3._width) / 2;
_local3._y = (-_local3._height) / 2;
_local2._x = _local4.x + (_local3._width / 2);
_local2._y = _local4.y + (_local3._height / 2);
_local2.x = _local2._x;
_local2.y = _local2._y;
_local2.mov = new GameClasses.FreeMove();
number_particles++;
_local7++;
}
if (_local13 != 0) {
_local4.x = w * jmax;
_local4.width = _local13;
particles[number_particles] = ps_mc.createEmptyMovieClip("part_" + number_particles, number_particles);
part_bmps[number_particles] = new flash.display.BitmapData(w, h, true, 0);
_local2 = particles[number_particles];
_local6 = part_bmps[number_particles];
_local6.copyPixels(bmp, _local4, _local11);
_local3 = _local2.createEmptyMovieClip("body", 1);
_local3.attachBitmap(_local6, 1);
_local3._y = (-_local3._height) / 2;
_local2._x = _local4.x + (_local3._width / 2);
_local2._y = _local4.y + (_local3._height / 2);
_local2.x = _local2._x;
_local2.y = _local2._y;
_local2.mov = new GameClasses.FreeMove();
number_particles++;
_local4.width = w;
}
_local5++;
}
if (_local14 != 0) {
_local4.y = h * imax;
_local4.height = _local14;
_local4.width = w;
_local7 = 0;
while (_local7 < jmax) {
_local4.x = w * _local7;
particles[number_particles] = ps_mc.createEmptyMovieClip("part_" + number_particles, number_particles);
part_bmps[number_particles] = new flash.display.BitmapData(w, h, true, 0);
_local2 = particles[number_particles];
_local6 = part_bmps[number_particles];
_local6.copyPixels(bmp, _local4, _local11);
_local3 = _local2.createEmptyMovieClip("body", 1);
_local3.attachBitmap(_local6, 1);
_local3._x = (-_local3._width) / 2;
_local3._y = (-_local3._height) / 2;
_local2._x = _local4.x + (_local3._width / 2);
_local2._y = _local4.y + (_local3._height / 2);
_local2.x = _local2._x;
_local2.y = _local2._y;
_local2.mov = new GameClasses.FreeMove();
number_particles++;
_local7++;
}
if (_local13 != 0) {
_local4.x = w * jmax;
_local4.width = _local13;
_local4.y = h * imax;
_local4.height = _local14;
particles[number_particles] = ps_mc.createEmptyMovieClip("part_" + number_particles, number_particles);
part_bmps[number_particles] = new flash.display.BitmapData(w, h, true, 0);
_local2 = particles[number_particles];
_local6 = part_bmps[number_particles];
_local6.copyPixels(bmp, _local4, _local11);
_local3 = _local2.createEmptyMovieClip("body", 1);
_local3.attachBitmap(_local6, 1);
_local3._x = (-_local3._width) / 2;
_local3._y = (-_local3._height) / 2;
_local2._x = _local4.x + (_local3._width / 2);
_local2._y = _local4.y + (_local3._height / 2);
_local2.x = _local2._x;
_local2.y = _local2._y;
_local2.mov = new GameClasses.FreeMove();
number_particles++;
}
}
} else {
this.mc = mc.mc;
mcRoot = mc.mcRoot;
number_particles = mc.particles.length;
ps_mc = mcRoot.createEmptyMovieClip("cps" + depth, depth++);
ps_mc._visible = false;
particles = new Array(number_particles);
_local5 = 0;
while (_local5 < number_particles) {
particles[_local5] = ps_mc.createEmptyMovieClip("part_" + _local5, _local5);
_local2 = particles[_local5];
_local3 = _local2.createEmptyMovieClip("body", 1);
_local3.attachBitmap(mc.part_bmps[_local5], 1);
_local3._x = (-_local3._width) / 2;
_local3._y = (-_local3._height) / 2;
_local2.x = mc.particles[_local5].x;
_local2.y = mc.particles[_local5].y;
_local2.mov = new GameClasses.FreeMove();
_local5++;
}
}
}
function destroy() {
log.info("call function destroy from CompaundParticleSystem");
mcRoot = null;
mc = null;
point = null;
bmp.dispose();
bmp = null;
for (var _local3 in part_bmps) {
part_bmps[_local3].dispose();
delete part_bmps[_local3];
}
part_bmps = null;
var _local2 = 0;
while (_local2 < particles.length) {
particles[_local2].mov.destroy();
delete particles[_local2].mov;
particles[_local2].removeMovieClip();
delete particles[_local2];
_local2++;
}
particles = null;
for (var _local3 in ps_mc) {
if (ps_mc[_local3] instanceof MovieClip) {
MovieClip(ps_mc[_local3]).removeMovieClip();
delete ps_mc[_local3];
}
}
ps_mc.removeMovieClip();
ps_mc = null;
particles = null;
log = null;
}
function makeVisible() {
ps_mc._visible = true;
}
function makeUnvisible() {
ps_mc._visible = false;
}
function clear() {
var _local3;
delete particles[particles.length - 1].mov.endAct;
_local3 = 0;
while (_local3 < particles.length) {
var _local2 = particles[_local3];
if (_local2.mov.active) {
_local2.mov.stopMove();
}
_local2.mov.clear();
delete particles[_local3].mov;
_local2.body.clear();
_local2.body.removeMovieClip();
_local2.clear();
_local2.removeMovieClip();
_local3++;
}
delete particles;
ps_mc.clear();
ps_mc.removeMovieClip();
}
function reinit(cps) {
var _local3;
_local3 = 0;
while (_local3 < particles.length) {
var _local4 = particles[_local3];
var _local2 = _local4.body;
_local2.removeMovieClip();
_local2 = _local4.createEmptyMovieClip("body", 1);
_local2.attachBitmap(cps.part_bmps[_local3], 1);
_local2._x = (-_local2._width) / 2;
_local2._y = (-_local2._height) / 2;
_local3++;
}
}
function startExplode(x, y, mindx, maxdx, dy, minvy, maxvy, ay, delay, endAct) {
var _local4 = 0;
while (_local4 < particles.length) {
var _local2 = particles[_local4];
_local2._x = _local2.x;
_local2._y = _local2.y;
_local2._rotation = 0;
_local2._alpha = 100;
_local4++;
}
ps_mc._x = x;
ps_mc._y = y;
ps_mc._visible = true;
if ((delay != undefined) && (delay != 0)) {
GameClasses.FreeMove.makeDelay(delay, GameClasses.GFunctions.create(this, startExplode, x, y, mindx, maxdx, dy, minvy, maxvy, ay, 0, endAct));
return(undefined);
}
var _local10;
var _local3;
var _local13;
var _local15;
var _local14;
var _local6;
var _local9;
var _local8;
var _local5;
var _local16;
var _local7 = 0;
_local13 = new GameClasses.Spline(100, 80, 0);
_local13.Calculate(false);
_local15 = new GameClasses.Spline(100, 100);
_local15.Calculate(false);
_local14 = new GameClasses.Spline(100, 100);
_local14.Calculate(false);
_local16 = getTimer();
makeVisible();
_local4 = 0;
while (_local4 <= (particles.length - 1)) {
var _local2 = particles[_local4];
if ((_local2 == undefined) || (_local2 == null)) {
}
_local9 = mindx + (Math.random() * (maxdx - mindx));
_local10 = new GameClasses.Spline(_local2.x, _local2.x + _local9);
_local8 = minvy + (Math.random() * (maxvy - minvy));
_local3 = new GameClasses.AccelLinePath();
_local3.addKey(_local2.y, ay, _local8);
_local3.addKey(_local2.y + dy, 0, 1);
_local5 = _local3.calculatePath();
if (_local5 > _local7) {
_local7 = _local5;
}
_local6 = new GameClasses.Spline(0, (Math.random() * 720) - 360);
_local6.Calculate(false);
_local2.mov.endAct = null;
if (!(_local2 instanceof MovieClip)) {
}
GameClasses.FreeMove.addActivePiece(_local2, _local16);
_local2.mov.initMove(_local2, _local5, 0, _local10, _local3, _local15, _local14, _local6, _local13);
_local4++;
}
GameClasses.FreeMove.makeDelay(_local7 + 1, GameClasses.GFunctions.create(this, function (fun) {
fun();
this.makeUnvisible();
}, endAct));
}
static var depth = 0;
var number_particles = 0;
}
Symbol 1743 MovieClip [__Packages.GameClasses.TheField] Frame 0
class GameClasses.TheField extends MovieClip
{
var all_chips, log, mcRoot, _parent, substrate, et, snd, cells, scope, x_sub, y_sub, statistic, help_rect, new_roll_over_mc, motf, chip_names, bodyCP1, bodyCP2, reserv_chips, nps, sun_inc4, sun_inc5, sun_inc6, attachMovie, getNextHighestDepth, x_lock_help_hint, y_lock_help_hint, curr_x, _xmouse, curr_y, _ymouse, curr_x0, curr_x1, curr_y0, curr_y1, curr_col, curr_row, do_bonus_explode;
function TheField () {
super();
all_chips = new Array();
log = logger.Logger.getLog();
mcRoot = _parent;
substrate = mcRoot.substrate;
et = new GameClasses.EmergedText(mcRoot.TEXT_MC);
snd = GameClasses.MySounds.getMySounds();
}
function startGlobalBlik() {
var _local3;
var _local2;
var _local5;
var _local4;
var _local6;
_local3 = 0;
while (_local3 < cells.length) {
_local2 = 0;
while ((_local2 <= _local3) && (_local2 < cells.ylength)) {
_local5 = _local3 - _local2;
_local4 = _local2;
if (cells[_local5][_local4].body && (cells[_local5][_local4].body.type == "chip")) {
cells[_local5][_local4].body.startBlik((GameClasses.Consts.CHIP_TIME_BLIK * _local3) * GameClasses.Consts.GLOBAL_BLIK_COOF);
}
_local2++;
}
_local3++;
}
_local6 = cells.length - 1;
_local2 = 0;
while (_local2 < cells.ylength) {
_local3 = 0;
while (_local3 <= (cells.ylength - _local2)) {
_local5 = _local6 - _local3;
_local4 = _local2 + _local3;
if (cells[_local5][_local4].body && (cells[_local5][_local4].body.type == "chip")) {
cells[_local5][_local4].body.startBlik((GameClasses.Consts.CHIP_TIME_BLIK * (_local6 + _local2)) * GameClasses.Consts.GLOBAL_BLIK_COOF);
}
_local3++;
}
_local2++;
}
}
function getVisibleElems() {
var _local4 = new Array();
_local4.push(scope.getBody());
var _local3 = 0;
while (_local3 < cells.length) {
var _local2 = 0;
while (_local2 <= cells.ylength) {
if (cells[_local3][_local2]) {
_local4.push(cells[_local3][_local2].cell);
}
_local2++;
}
_local3++;
}
return(_local4);
}
function show(T, delay) {
var _local10 = getTimer();
var _local13 = (delay / 2) / cells.ylength;
var _local9 = delay / 2;
var _local5 = 0;
while (_local5 <= cells.ylength) {
var _local6 = 0;
var _local12 = x_sub - SIZE;
var _local7 = y_sub - SIZE;
_local9 = (delay / 2) + (_local5 * _local13);
while ((cells[_local6][_local5] == undefined) && (_local6 < cells.length)) {
_local7 = _local7 + SIZE;
_local6++;
}
var _local8 = 0;
var _local3 = cells.length - 1;
while (_local3 >= _local6) {
if (cells[_local3][_local5].body) {
var _local2 = cells[_local3][_local5].body;
var _local4 = new GameClasses.AccelLinePath();
_local4.addKey(_local7, 1, 1);
_local4.addKey(_local2._y, 1, 1);
_local4.calculatePath();
_local2.mov = new GameClasses.FreeMove();
_local2.mov.endAct = null;
if (_local3 == (cells.length - 1)) {
_local2.mov.endAct = GameClasses.GFunctions.create(this, function () {
this.snd.startSound("ChipKnock");
});
}
GameClasses.FreeMove.addActivePiece(_local2, _local10);
_local2.mov.initMove(_local2, T, _local9 + 1, null, _local4, null, null, null, new GameClasses.Line(0, 100));
_local8++;
_local7 = _local7 - SIZE;
}
_local3--;
}
_local5++;
}
}
function hide(T, delay) {
var _local5 = getTimer();
var _local4 = 0;
while (_local4 <= cells.ylength) {
var _local2 = cells.length - 1;
while (_local2 >= 0) {
if (cells[_local2][_local4].body) {
var _local3 = cells[_local2][_local4].body;
_local3.mov.endAct = null;
GameClasses.FreeMove.addActivePiece(_local3, _local5);
_local3.mov.initMove(_local3, T, delay + 1, null, null, null, null, null, new GameClasses.Line(100, 0));
}
_local2--;
}
_local4++;
}
}
function destroy() {
GameClasses.FreeMove.clearInterval(global_blik_interval);
global_blik_interval = 0;
GameClasses.FreeMove.clearInterval(interval_hint);
interval_hint = 0;
Mouse.removeListener(listener);
listener = null;
log.info("call function destroy from TheField");
snd = null;
substrate = null;
mcRoot = null;
statistic = null;
selected_mc = null;
roll_over_mc = null;
new_selected_mc = null;
help_rect = null;
new_roll_over_mc = null;
motf = null;
chip_names = null;
bodyCP1 = null;
bodyCP2 = null;
var _local3 = 0;
while (_local3 < cells.length) {
var _local2 = 0;
while (_local2 < cells.ylength) {
cells[_local3][_local2].destroy();
cells[_local3][_local2].removeMovieClip();
delete cells[_local3][_local2];
_local2++;
}
delete cells[_local3];
_local3++;
}
cells = null;
_local3 = 0;
while (_local3 < reserv_chips.length) {
delete reserv_chips[_local3];
_local3++;
}
reserv_chips = null;
scope.destroy();
scope = null;
_local3 = all_chips.length - 1;
while (_local3 >= 0) {
if (all_chips.lock) {
all_chips.lock.destroy_lock();
all_chips.lock.removeMovieClip();
all_chips.lock = null;
}
all_chips[_local3].destroy();
all_chips[_local3].removeMovieClip();
delete all_chips[_local3];
_local3--;
}
all_chips = null;
nps.destroy();
nps = null;
log = null;
}
function removeMovieClip() {
(destroy);// not popped
super.removeMovieClip();
}
function initField(field, id_country, id_art) {
statistic = GameClasses.StatisticClass.getSingleton();
var _local16 = 100;
var _local11 = "";
var _local18 = field[0].length;
var _local17 = field.length;
var _local8 = int((11 - _local17) / 2);
var _local7 = int((11 - _local18) / 2);
var _local4 = 0;
var _local5 = 0;
var _local9;
var _local12 = 0;
var _local6;
var _local10;
var _local3;
x_sub = 325 - ((_local18 * substrate.SIZE) / 2);
y_sub = 190 - ((_local17 * substrate.SIZE) / 2);
sun_inc4 = _local16 * field.sun_inc4;
sun_inc5 = _local16 * field.sun_inc5;
sun_inc6 = _local16 * field.sun_inc6;
chip_names = new Array();
reserv_chips = new GameClasses.MyArray();
cells = new Array();
motf = new Array();
cells.ylength = field[0].length;
var _local15 = 0;
while (_local15 < field.chips.length) {
switch (field.chips.charAt(_local15)) {
case "1" :
chip_names.push("c1.png");
break;
case "2" :
chip_names.push("c2.png");
break;
case "3" :
chip_names.push("c3.png");
break;
case "4" :
chip_names.push("c4.png");
break;
case "5" :
chip_names.push("c5.png");
break;
case "6" :
chip_names.push("c6.png");
break;
case "7" :
chip_names.push("c7.png");
break;
case "8" :
chip_names.push("c8.png");
break;
case "9" :
chip_names.push("c9.png");
break;
case "A" :
chip_names.push("c10.png");
break;
case "B" :
chip_names.push("c11.png");
break;
case "C" :
chip_names.push("c12.png");
break;
case "D" :
chip_names.push("c13.png");
break;
case "E" :
chip_names.push("c14.png");
break;
case "F" :
chip_names.push("c15.png");
break;
case "G" :
chip_names.push("c16.png");
break;
}
_local15++;
}
_local15 = 0;
while (_local15 < field.length) {
cells[_local15] = new Array();
motf[_local15] = new Array();
_local11 = field[_local15];
_local3 = 0;
while (_local3 < _local11.length) {
switch (_local11.charAt(_local3)) {
case "*" :
case "0" :
_local4 = _local15 + _local8;
_local5 = _local3 + _local7;
substrate.mcs[_local4][_local5]._visible = false;
break;
case "V" :
motf[_local15][_local3] = "life";
_local4 = _local15 + _local8;
_local5 = _local3 + _local7;
substrate.mcs[_local4][_local5]._visible = true;
substrate.mcs[_local4][_local5].enabled = true;
substrate.mcs[_local4][_local5]._x = x_sub + (_local3 * substrate.SIZE);
substrate.mcs[_local4][_local5]._y = y_sub + (_local15 * substrate.SIZE);
_local6 = mcRoot.attachMovie("LifeBonus", "life" + mcRoot.depth_for_bombs, mcRoot.depth_for_bombs++);
_local6._x = x_sub + (_local3 * substrate.SIZE);
_local6._y = y_sub + (_local15 * substrate.SIZE);
cells[_local15][_local3] = attachMovie("FieldCell", (("cell" + _local15) + "") + _local3, getNextHighestDepth());
cells[_local15][_local3].initCell(substrate.mcs[_local4][_local5], _local6, _local15, _local3);
break;
case "R" :
motf[_local15][_local3] = "swap";
_local4 = _local15 + _local8;
_local5 = _local3 + _local7;
substrate.mcs[_local4][_local5]._visible = true;
substrate.mcs[_local4][_local5].enabled = true;
substrate.mcs[_local4][_local5]._x = x_sub + (_local3 * substrate.SIZE);
substrate.mcs[_local4][_local5]._y = y_sub + (_local15 * substrate.SIZE);
_local6 = mcRoot.attachMovie("SwapBonus", "swap" + mcRoot.depth_for_bombs, mcRoot.depth_for_bombs++);
_local6.initBonus("chips.png", new flash.geom.Rectangle(52, 52, 26, 26));
_local6._x = x_sub + (_local3 * substrate.SIZE);
_local6._y = y_sub + (_local15 * substrate.SIZE);
cells[_local15][_local3] = attachMovie("FieldCell", (("cell" + _local15) + "") + _local3, getNextHighestDepth());
cells[_local15][_local3].initCell(substrate.mcs[_local4][_local5], _local6, _local15, _local3);
break;
case "T" :
motf[_local15][_local3] = "time";
_local4 = _local15 + _local8;
_local5 = _local3 + _local7;
substrate.mcs[_local4][_local5]._visible = true;
substrate.mcs[_local4][_local5].enabled = true;
substrate.mcs[_local4][_local5]._x = x_sub + (_local3 * substrate.SIZE);
substrate.mcs[_local4][_local5]._y = y_sub + (_local15 * substrate.SIZE);
_local6 = mcRoot.attachMovie("TimeBonus", "time" + mcRoot.depth_for_bombs, mcRoot.depth_for_bombs++);
_local6.initBonus("chips.png", new flash.geom.Rectangle(78, 52, 26, 26));
_local6._x = x_sub + (_local3 * substrate.SIZE);
_local6._y = y_sub + (_local15 * substrate.SIZE);
cells[_local15][_local3] = attachMovie("FieldCell", (("cell" + _local15) + "") + _local3, getNextHighestDepth());
cells[_local15][_local3].initCell(substrate.mcs[_local4][_local5], _local6, _local15, _local3);
break;
case "L" :
motf[_local15][_local3] = "zl";
_local4 = _local15 + _local8;
_local5 = _local3 + _local7;
substrate.mcs[_local4][_local5]._visible = true;
substrate.mcs[_local4][_local5].enabled = true;
substrate.mcs[_local4][_local5]._x = x_sub + (_local3 * substrate.SIZE);
substrate.mcs[_local4][_local5]._y = y_sub + (_local15 * substrate.SIZE);
_local6 = mcRoot.attachMovie("ZeusLightning", "zl" + mcRoot.depth_for_bombs, mcRoot.depth_for_bombs++);
_local6.initBonus("chips.png", new flash.geom.Rectangle(0, 52, 26, 26));
_local6._x = x_sub + (_local3 * substrate.SIZE);
_local6._y = y_sub + (_local15 * substrate.SIZE);
cells[_local15][_local3] = attachMovie("FieldCell", (("cell" + _local15) + "") + _local3, getNextHighestDepth());
cells[_local15][_local3].initCell(substrate.mcs[_local4][_local5], _local6, _local15, _local3);
break;
case "B" :
motf[_local15][_local3] = "bomb";
_local4 = _local15 + _local8;
_local5 = _local3 + _local7;
substrate.mcs[_local4][_local5]._visible = true;
substrate.mcs[_local4][_local5].enabled = true;
substrate.mcs[_local4][_local5]._x = x_sub + (_local3 * substrate.SIZE);
substrate.mcs[_local4][_local5]._y = y_sub + (_local15 * substrate.SIZE);
_local6 = mcRoot.attachMovie("Bomb", "bomb" + mcRoot.depth_for_bombs, mcRoot.depth_for_bombs++);
_local6.initBonus("chips.png", new flash.geom.Rectangle(26, 52, 26, 26));
_local6._x = x_sub + (_local3 * substrate.SIZE);
_local6._y = y_sub + (_local15 * substrate.SIZE);
cells[_local15][_local3] = attachMovie("FieldCell", (("cell" + _local15) + "") + _local3, getNextHighestDepth());
cells[_local15][_local3].initCell(substrate.mcs[_local4][_local5], _local6, _local15, _local3);
break;
case "-" :
case "+" :
case "1" :
_local4 = _local15 + _local8;
_local5 = _local3 + _local7;
substrate.mcs[_local4][_local5]._visible = true;
substrate.mcs[_local4][_local5].enabled = true;
substrate.mcs[_local4][_local5]._x = x_sub + (_local3 * substrate.SIZE);
substrate.mcs[_local4][_local5]._y = y_sub + (_local15 * substrate.SIZE);
do {
_local9 = chip_names[int(Math.random() * chip_names.length)];
} while (((cells[_local15 - 1][_local3] && (cells[_local15 - 1][_local3].body.type == "chip")) && (cells[_local15 - 1][_local3].body.chip_name == _local9)) || ((cells[_local15][_local3 - 1] && (cells[_local15][_local3 - 1].body.type == "chip")) && (cells[_local15][_local3 - 1].body.chip_name == _local9)));
motf[_local15][_local3] = _local9;
_local6 = mcRoot.attachMovie("Chip", "chip" + mcRoot.depth_for_chips, mcRoot.depth_for_chips);
all_chips.push(_local6);
_local6.initChip(_local9);
_local6._x = x_sub + (_local3 * substrate.SIZE);
_local6._y = y_sub + (_local15 * substrate.SIZE);
cells[_local15][_local3] = attachMovie("FieldCell", (("cell" + _local15) + "") + _local3, getNextHighestDepth());
cells[_local15][_local3].initCell(substrate.mcs[_local4][_local5], _local6, _local15, _local3);
mcRoot.depth_for_chips++;
if (_local11.charAt(_local3) == "-") {
start_lock_help_hint = true;
x_lock_help_hint = cells[_local15][_local3].cell._x + (SIZE / 2);
y_lock_help_hint = cells[_local15][_local3].cell._y - 40;
_local6.lock = _local6.attachMovie("Lock", "lock", 1000);
_local6.lock.initLock("Chips.png", new flash.geom.Rectangle(0, 130, 26, 26), new flash.geom.Rectangle(26, 130, 26, 26), 1);
motf[_local15][_local3] = "lock";
} else if (_local11.charAt(_local3) == "+") {
_local6.lock = _local6.attachMovie("Lock", "lock", 1000);
_local6.lock.initLock("Chips.png", new flash.geom.Rectangle(0, 130, 26, 26), new flash.geom.Rectangle(26, 130, 26, 26), 2);
motf[_local15][_local3] = "lock";
}
break;
case "A" :
motf[_local15][_local3] = "poa";
_local4 = _local15 + _local8;
_local5 = _local3 + _local7;
substrate.mcs[_local4][_local5]._visible = true;
substrate.mcs[_local4][_local5].enabled = true;
substrate.mcs[_local4][_local5]._x = x_sub + (_local3 * substrate.SIZE);
substrate.mcs[_local4][_local5]._y = y_sub + (_local15 * substrate.SIZE);
_local12++;
_local10 = (id_art + "_") + _local12;
mcRoot.attachMovie("PieceOfCompoundArtefact", _local10, mcRoot.depth_for_poa++);
mcRoot[_local10].initPieceForMatch3(id_art, _root.artefacts[id_art], _local12);
mcRoot[_local10]._x = x_sub + (_local3 * substrate.SIZE);
mcRoot[_local10]._y = y_sub + (_local15 * substrate.SIZE);
cells[_local15][_local3] = attachMovie("FieldCell", (("cell" + _local15) + "") + _local3, getNextHighestDepth());
cells[_local15][_local3].initCell(substrate.mcs[_local4][_local5], mcRoot[_local10], _local15, _local3);
number_pieces_of_the_artefact_on_the_field++;
break;
}
_local3++;
}
_local15++;
}
scope = new GameClasses.Scope(("scope_" + id_country) + ".png");
scope.getScope(this, field, "scope_" + id_country, getNextHighestDepth(), x_sub, y_sub);
_local15 = 0;
while (_local15 < NUMB_RESERV_CHIPS) {
mcRoot.attachMovie("Chip", "chip" + mcRoot.depth_for_chips, mcRoot.depth_for_chips);
_local6 = mcRoot["chip" + mcRoot.depth_for_chips];
_local6._alpha = 0;
_local6._x = -50;
_local6._y = -50;
_local6.initChip(chip_names[0]);
reserv_chips.insert(_local6);
all_chips.push(_local6);
mcRoot.depth_for_chips++;
_local15++;
}
listener.onMouseMove = GameClasses.GFunctions.create(this, onMouseMoveAction);
listener.onMouseUp = GameClasses.GFunctions.create(this, onMouseUpAction);
listener.onMouseDown = GameClasses.GFunctions.create(this, onMouseDownAction);
Mouse.addListener(listener);
global_blik_interval = GameClasses.FreeMove.setPeriodicInterval(this, "startGlobalBlik", GameClasses.Consts.TIME_PERIOD_GLOBAL_BLIK);
initPeriodicHitn();
}
function updateTheMouseField() {
curr_x = _xmouse;
curr_y = _ymouse;
if ((((curr_x >= curr_x0) && (curr_x < curr_x1)) && (curr_y >= curr_y0)) && (curr_y < curr_y1)) {
} else {
curr_col = int((curr_x - x_sub) / SIZE);
curr_row = int((curr_y - y_sub) / SIZE);
new_roll_over_mc = cells[curr_row][curr_col];
curr_x0 = new_roll_over_mc.cell._x;
curr_x1 = curr_x0 + SIZE;
curr_y0 = new_roll_over_mc.cell._y;
curr_y1 = curr_y0 + SIZE;
}
return(new_roll_over_mc);
}
function onMouseMoveAction() {
if (is_locked) {
return(undefined);
}
updateTheMouseField();
if (roll_over_mc != new_roll_over_mc) {
roll_over_mc = new_roll_over_mc;
if (roll_over_mc.body.type == "chip") {
roll_over_mc.body.startBlik();
}
}
if ((((bodyCP1 || (bodyCP2)) || (selected_mc == 0)) || (!mouse_down)) || (count_move_on_the_field != 0)) {
return(undefined);
}
new_selected_mc = roll_over_mc;
if (selected_mc == new_selected_mc) {
return(undefined);
}
if (((Math.abs(selected_mc.col - new_selected_mc.col) == 1) && (selected_mc.row == new_selected_mc.row)) || ((Math.abs(selected_mc.row - new_selected_mc.row) == 1) && (selected_mc.col == new_selected_mc.col))) {
if ((new_selected_mc.body.lock != undefined) && (new_selected_mc.body.lock.numb != 0)) {
selected_mc.unselect();
selected_mc = null;
return(undefined);
}
changePlaces(selected_mc, new_selected_mc);
return(undefined);
}
return(undefined);
}
function onMouseUpAction() {
mouse_down = false;
}
function onMouseDownAction() {
if ((isLocked() || (bodyCP1)) || (bodyCP2)) {
return(undefined);
}
mouse_down = true;
updateTheMouseField();
new_selected_mc = new_roll_over_mc;
if ((new_selected_mc.body.lock != undefined) && (new_selected_mc.body.lock.numb != 0)) {
new_selected_mc = null;
return(undefined);
}
if ((!selected_mc) && (new_selected_mc)) {
snd.startSound("ChipSelect");
selected_mc = new_selected_mc;
selected_mc.select();
return(undefined);
}
if ((selected_mc == new_selected_mc) || (!new_selected_mc)) {
selected_mc.unselect();
selected_mc = null;
return(undefined);
}
if (((Math.abs(selected_mc.col - new_selected_mc.col) == 1) && (selected_mc.row == new_selected_mc.row)) || ((Math.abs(selected_mc.row - new_selected_mc.row) == 1) && (selected_mc.col == new_selected_mc.col))) {
changePlaces();
return(undefined);
}
selected_mc.unselect();
selected_mc = null;
return(undefined);
}
function firstMoveCP1() {
new_selected_mc.body = bodyCP1;
bodyCP1 = null;
testCP();
}
function firstMoveCP2() {
selected_mc.body = bodyCP2;
bodyCP2 = null;
testCP();
}
function changePlaces() {
if (!was_first_step) {
was_first_step = true;
mcRoot.timer.play();
}
snd.startSound("ChipMove");
var _local2 = getTimer();
global_combo = 0;
count_move_on_the_field = count_move_on_the_field + 2;
bodyCP1 = selected_mc.body;
bodyCP2 = new_selected_mc.body;
selected_mc.body = null;
selected_mc.cell.light._alpha = 0;
new_selected_mc.body = null;
delete bodyCP1.mov.endAct;
bodyCP1.mov.endAct = GameClasses.GFunctions.create(this, firstMoveCP1);
GameClasses.FreeMove.addActivePiece(bodyCP1, _local2);
bodyCP1.mov.initLineTo(bodyCP1, new_selected_mc.cell._x, new_selected_mc.cell._y, bodyCP1._xscale, bodyCP1._yscale, 0, TIME_CP);
delete bodyCP2.mov.endAct;
bodyCP2.mov.endAct = GameClasses.GFunctions.create(this, firstMoveCP2);
GameClasses.FreeMove.addActivePiece(bodyCP2, _local2);
bodyCP2.mov.initLineTo(bodyCP2, selected_mc.cell._x, selected_mc.cell._y, bodyCP2._xscale, bodyCP2._yscale, 0, TIME_CP);
}
function secondMoveCP1() {
bodyCP1.stopRotation();
new_selected_mc.body = bodyCP1;
new_selected_mc = null;
bodyCP1 = null;
count_move_on_the_field--;
}
function secondMoveCP2() {
bodyCP2.stopRotation();
selected_mc.body = bodyCP2;
selected_mc = null;
bodyCP2 = null;
count_move_on_the_field--;
}
function testCP() {
if ((bodyCP2 != null) || (bodyCP1 != null)) {
return(undefined);
}
var _local2 = testMatch3(0);
if (_local2 == null) {
snd.startSound("ChipWrongMove");
var _local3 = getTimer();
bodyCP1 = selected_mc.body;
bodyCP2 = new_selected_mc.body;
selected_mc.body = null;
new_selected_mc.body = null;
delete bodyCP1.mov.endAct;
bodyCP1.mov.endAct = GameClasses.GFunctions.create(this, secondMoveCP1);
GameClasses.FreeMove.addActivePiece(bodyCP1, _local3);
bodyCP1.mov.initLineTo(bodyCP1, new_selected_mc.cell._x, new_selected_mc.cell._y, bodyCP1._xscale, bodyCP1._yscale, 0, TIME_CP);
delete bodyCP2.mov.endAct;
bodyCP2.mov.endAct = GameClasses.GFunctions.create(this, secondMoveCP2);
GameClasses.FreeMove.addActivePiece(bodyCP2, _local3);
bodyCP2.mov.initLineTo(bodyCP2, selected_mc.cell._x, selected_mc.cell._y, bodyCP2._xscale, bodyCP2._yscale, 0, TIME_CP);
} else {
stopPeriodicHitn();
reinitPeriodicHitn();
selected_mc.body.stopRotation();
new_selected_mc.body.stopRotation();
selected_mc = null;
new_selected_mc = null;
count_move_on_the_field = count_move_on_the_field - 2;
updateTheField();
}
}
function testPOA() {
var _local4;
var _local5 = 0;
var _local6 = false;
_local4 = 0;
while (_local4 < cells.ylength) {
_local5 = cells.length;
_local5--;
while (cells[_local5][_local4] == undefined) {
}
var _local3 = cells[_local5][_local4].body;
if (_local3) {
if (_local3.type == "poa") {
snd.startSound("FallenArtefact");
statistic.addRecordValue("pieces", 1);
_local3.action2();
cells[_local5][_local4].body = null;
number_pieces_of_the_artefact_on_the_field--;
if (number_pieces_of_the_artefact_on_the_field == 0) {
lockTheField();
_root.pauseGlobalGameTime();
}
_local6 = true;
} else if (((((_local3.type == "bomb") || (_local3.type == "zl")) || (_local3.type == "time")) || (_local3.type == "swap")) || (_local3.type == "life")) {
_local3.moveToField();
cells[_local5][_local4].body = null;
_local6 = true;
}
}
_local4++;
}
return(_local6);
}
function testMatch3(i_beg) {
var _local2;
var _local3;
var _local7;
var _local6;
var _local5;
var _local4;
_local2 = i_beg;
while (_local2 < cells.length) {
_local3 = 0;
while (_local3 < cells[_local2].length) {
if (cells[_local2][_local3].body && (cells[_local2][_local3].body.type == "chip")) {
_local7 = cells[_local2][_local3].body.chip_name;
_local6 = _local2;
_local4 = 0;
while ((((_local6 < cells.length) && (cells[_local6][_local3].body)) && (cells[_local6][_local3].body.type == "chip")) && (_local7 == cells[_local6][_local3].body.chip_name)) {
_local6++;
_local4++;
}
if (_local4 > 2) {
return({row:_local2, col:_local3, N:_local4, direct:"row"});
}
_local5 = _local3;
_local4 = 0;
while ((((_local5 < cells[_local2].length) && (cells[_local2][_local5].body)) && (cells[_local2][_local5].body.type == "chip")) && (_local7 == cells[_local2][_local5].body.chip_name)) {
_local5++;
_local4++;
}
if (_local4 > 2) {
return({row:_local2, col:_local3, N:_local4, direct:"col"});
}
}
_local3++;
}
_local2++;
}
return(null);
}
function testMatch3c1c2(c1, c2) {
if ((((((!c1.body) || (!c2.body)) || (c1.body.type != "chip")) || (c2.body.type != "chip")) || (c1.body.lock && (c1.body.lock.numb != 0))) || (c2.body.lock && (c2.body.lock.numb != 0))) {
return(null);
}
var _local6;
var _local5 = c1.body.chip_name;
var _local4 = c2.body.chip_name;
c1.body.chip_name = _local4;
c2.body.chip_name = _local5;
_local6 = testMatch3(0);
c1.body.chip_name = _local5;
c2.body.chip_name = _local4;
return(_local6);
}
function findHelpRect() {
var _local2 = 0;
while (_local2 < cells.length) {
var _local3 = 0;
while (_local3 < (cells.ylength - 1)) {
if (testMatch3c1c2(cells[_local2][_local3], cells[_local2][_local3 + 1]) != null) {
return(new flash.geom.Rectangle(cells[_local2][_local3].cell._x, cells[_local2][_local3].cell._y, 2 * SIZE, SIZE));
}
_local3++;
}
_local2++;
}
var _local3 = 0;
while (_local3 < cells.ylength) {
_local2 = 0;
while (_local2 < (cells.length - 1)) {
if (testMatch3c1c2(cells[_local2][_local3], cells[_local2 + 1][_local3]) != null) {
return(new flash.geom.Rectangle(cells[_local2][_local3].cell._x, cells[_local2][_local3].cell._y, SIZE, 2 * SIZE));
}
_local2++;
}
_local3++;
}
return(null);
}
function fallDown(obj) {
var _local2;
var _local3;
var _local16;
var _local22 = 1;
var _local28 = obj.direct == "col";
var _local19 = obj.N;
var _local18 = obj.col;
var _local17 = obj.row;
var _local8;
var _local7;
var _local4;
var _local6;
var _local5;
var _local10;
var _local11;
var _local15;
var _local26;
var _local13;
var _local9;
var _local12 = new Array();
count_bonus_chips = 0;
if (_local28) {
_local2 = _local17;
_local3 = _local18;
while (_local3 < (_local18 + _local19)) {
if (_local3 == _local18) {
_local9 = "away_left";
} else if (_local3 == ((_local18 + _local19) - 1)) {
_local9 = "away_right";
} else {
_local9 = "away";
}
_local8 = _local2;
_local13 = cells[_local8][_local3].body.chip_name;
_local4 = 1;
while (((((_local8++) < cells.length) && (cells[_local8][_local3].body)) && (cells[_local8][_local3].body.type == "chip")) && (_local13 == cells[_local8][_local3].body.chip_name)) {
_local4++;
}
_local15 = 0;
_local8 = _local2;
while (((((_local8--) > 0) && (cells[_local8][_local3].body)) && (cells[_local8][_local3].body.type == "chip")) && (_local13 == cells[_local8][_local3].body.chip_name)) {
_local4++;
_local15++;
}
_local4 = ((_local4 > 2) ? (_local4) : 1);
_local10 = _local2;
if (_local4 > 1) {
_local10 = _local2 - _local15;
_local22++;
}
_local6 = 0;
while (_local6 < _local4) {
if (_local4 > 1) {
if (_local6 == 0) {
_local9 = "away_left";
} else if (_local6 == (_local4 - 1)) {
_local9 = "away_right";
} else {
_local9 = "away";
}
}
if (cells[_local10 + _local6][_local3].body.lock && (cells[_local10 + _local6][_local3].body.lock.numb)) {
_local16 = cells[_local10 + _local6][_local3].body.lock;
snd.startSound("ChipUnlock");
_local16.destroy();
count_bonus_chips++;
if (_local16.numb == 0) {
motf[_local10 + _local6][_local3] = cells[_local10 + _local6][_local3].body.chip_name;
}
} else {
motf[_local10 + _local6][_local3] = "";
count_bonus_chips++;
_local12.push(cells[_local10 + _local6][_local3]);
}
_local6++;
}
_local3++;
}
} else {
_local3 = _local18;
_local2 = _local17;
while (_local2 < (_local17 + _local19)) {
if (_local2 == _local17) {
_local9 = "away_left";
} else if (_local2 == ((_local17 + _local19) - 1)) {
_local9 = "away_right";
} else {
}
_local7 = _local3;
_local13 = cells[_local2][_local7].body.chip_name;
_local4 = 1;
while (((((_local7++) < cells[_local2].length) && (cells[_local2][_local7].body)) && (cells[_local2][_local7].body.type == "chip")) && (_local13 == cells[_local2][_local7].body.chip_name)) {
_local4++;
}
_local15 = 0;
_local7 = _local3;
while (((((_local7--) > 0) && (cells[_local2][_local7].body)) && (cells[_local2][_local7].body.type == "chip")) && (_local13 == cells[_local2][_local7].body.chip_name)) {
_local4++;
_local15++;
}
_local4 = ((_local4 > 2) ? (_local4) : 1);
_local11 = _local3;
if (_local4 > 1) {
_local11 = _local3 - _local15;
_local22++;
}
_local5 = 0;
while (_local5 < _local4) {
if (_local4 > 1) {
if (_local5 == 0) {
_local9 = "away_left";
} else if (_local5 == (_local4 - 1)) {
_local9 = "away_right";
} else {
_local9 = "away";
}
}
if (cells[_local2][_local11 + _local5].body.lock && (cells[_local2][_local11 + _local5].body.lock.numb)) {
_local16 = cells[_local2][_local11 + _local5].body.lock;
snd.startSound("ChipUnlock");
_local16.destroy();
count_bonus_chips++;
if (_local16.numb == 0) {
motf[_local2][_local11 + _local5] = cells[_local2][_local11 + _local5].body.chip_name;
}
} else {
motf[_local2][_local11 + _local5] = "";
count_bonus_chips++;
_local12.push(cells[_local2][_local11 + _local5]);
}
_local5++;
}
_local2++;
}
}
if (_local12.length == 4) {
_local26 = sun_inc4;
} else if (_local12.length == 5) {
_local26 = sun_inc5;
} else {
_local26 = sun_inc6;
}
_local26 = _local26 / _local12.length;
var _local25 = getTimer();
if (count_bonus_chips > 3) {
_local2 = 0;
while (_local2 < _local12.length) {
GameClasses.FreeMove.addActivePiece(_local12[_local2].body, _local25);
moveToBonus(_local12[_local2], _local26, (_local2 * T_to_the_bonus_sun) / 10);
_local2++;
}
} else {
_local2 = 0;
while (_local2 < _local12.length) {
GameClasses.FreeMove.addActivePiece(_local12[_local2].body, _local25);
moveAway(_local12[_local2]);
_local2++;
}
}
var _local24 = _local12[0].cell._x;
var _local21 = _local12[0].cell._x + SIZE;
var _local23 = _local12[0].cell._y;
var _local20 = _local12[0].cell._y + SIZE;
_local2 = 1;
while (_local2 < _local12.length) {
var _local14 = _local12[_local2].cell;
if (_local24 > _local14._x) {
_local24 = _local14._x;
}
if (_local23 > _local14._y) {
_local23 = _local14._y;
}
if (_local21 < (_local14._x + SIZE)) {
_local21 = _local14._x + SIZE;
}
if (_local20 < (_local14._y + SIZE)) {
_local20 = _local14._y + SIZE;
}
_local2++;
}
statistic.addRecordValue("tiles", _local12.length);
runEmergeNumbers(new flash.geom.Point((_local21 + _local24) / 2, (_local20 + _local23) / 2), _local12.length * 5);
_local2 = 0;
while (_local2 < _local12.length) {
delete _local12[_local2];
_local2++;
}
return(_local22);
}
function dissapearEndAction(body) {
reserv_chips.push(body);
}
function moveAway(field_cell) {
field_cell.body.breakRotation();
delete field_cell.body.mov.endAct;
field_cell.body.mov.endAct = GameClasses.GFunctions.create(this, dissapearEndAction, field_cell.body);
field_cell.body.mov.initDisappear(field_cell.body, TIME_DISSAPEAR);
field_cell.body.startDissapPS();
field_cell.body = null;
}
function moveToBonusEndAction(body, dept, add_energy) {
body.swapDepths(dept);
body.breakRotation();
reserv_chips.push(body);
mcRoot.sun_bonus.addEnergy(add_energy);
}
function moveToBonus(field_cell, add_energy, delay) {
var _local8;
var _local7;
var _local12;
var _local13;
var _local10;
var _local4 = field_cell.cell._x;
var _local3 = field_cell.cell._y;
var _local6 = mcRoot.sun_bonus.x;
var _local5 = mcRoot.sun_bonus.y;
var _local11;
var _local9 = mcRoot.depth_for_fly_chips++;
if (mcRoot.depth_for_fly_chips > (mcRoot.depth_for_fly_chips0 + 1000)) {
mcRoot.depth_for_fly_chips = mcRoot.depth_for_fly_chips0;
}
_local8 = new GameClasses.Spline(_local4, (_local4 - 10) + (Math.random() * 20), _local6);
_local7 = new GameClasses.Spline(_local3, _local3 - (10 * Math.random()), _local3, _local5);
_local12 = new GameClasses.Spline(0, (-Math.random()) * 90, Math.random() * 180);
_local13 = new GameClasses.Spline(100, 99, 98, 95, 90, 0);
_local10 = new GameClasses.Spline(100, 99, 98, 95, 90, 0);
_local11 = field_cell.body.getDepth();
field_cell.body.swapDepths(_local9);
field_cell.body.breakRotation();
field_cell.body.startRotation();
field_cell.body.mov.endAct = GameClasses.GFunctions.create(this, moveToBonusEndAction, field_cell.body, _local11, add_energy);
GameClasses.FreeMove.makeDelay(delay, GameClasses.GFunctions.create(snd, snd.startSound, "ChipToSun"));
field_cell.body.mov.initSplineTo(field_cell.body, _local8, _local7, _local13, _local10, _local12, T_to_the_bonus_sun + delay);
field_cell.body = null;
}
function updateNULL() {
var _local5;
var _local17;
var _local2;
var _local23;
var _local12;
var _local11;
var _local21;
var _local14;
var _local22;
var _local19;
var _local15;
var _local13;
var _local6;
var _local10;
var _local8;
var _local20;
var _local3;
var _local4;
var _local7;
_local5 = 0;
while (_local5 < cells.ylength) {
_local10 = 0;
_local7 = new Array();
_local4 = new Array();
_local8 = -1;
_local17 = cells.length - 1;
while (_local17 >= 0) {
if (cells[_local17][_local5] && (!cells[_local17][_local5].body)) {
if (_local8 == -1) {
_local8 = _local17;
}
_local10++;
}
_local17--;
}
if (_local10) {
_local2 = _local8;
while (_local2 >= 0) {
if (cells[_local2][_local5] && (cells[_local2][_local5].body)) {
_local7.push({x:cells[_local2][_local5].cell._x, y:cells[_local2][_local5].cell._y});
_local4.push(cells[_local2][_local5].body);
}
if (cells[_local2][_local5]) {
_local12 = cells[_local2][_local5].cell._x;
_local11 = cells[_local2][_local5].cell._y;
cells[_local2][_local5].body = null;
motf[_local2][_local5] = "";
}
_local2--;
}
_local19 = _local4.length;
_local2 = 1;
while (_local2 <= _local10) {
_local7.push({x:_local12, y:_local11 - (_local2 * SIZE)});
_local13 = chip_names[int(Math.random() * chip_names.length)];
_local6 = GameClasses.Chip(reserv_chips.pop());
_local6._xscale = 100;
_local6._yscale = 100;
_local6._rotation = 0;
_local6._alpha = 0;
_local6.reinitChip(_local13);
_local4.push(_local6);
_local2++;
}
_local3 = _local8;
var _local16 = true;
_local2 = 0;
while (_local2 < _local4.length) {
while (!cells[_local3][_local5]) {
_local3--;
}
if (_local4[_local2].type == "chip") {
motf[_local3][_local5] = _local4[_local2].chip_name;
if (_local4[_local2].lock && (_local4[_local2].lock.numb)) {
motf[_local3][_local5] = "lock";
}
} else if (_local4[_local2].type == "poa") {
motf[_local3][_local5] = "poa";
}
_local3--;
_local2++;
}
_local3 = _local8;
var _local18 = getTimer();
var _local9 = false;
count_move_on_the_field = count_move_on_the_field + _local4.length;
_local2 = 0;
while (_local2 < _local4.length) {
if (_local2 < _local19) {
_local15 = "to_fall";
} else {
_local15 = "to_fall_from_nowhere";
}
while (!cells[_local3][_local5]) {
_local3--;
}
_local21 = cells[_local3][_local5].cell._x;
_local14 = cells[_local3][_local5].cell._y;
_local20 = _local14 - int(_local7[_local2].y);
if (_local2 == 0) {
_local9 = true;
} else {
_local9 = false;
}
GameClasses.FreeMove.addActivePiece(_local4[_local2], _local18);
moveBody(_local4[_local2], _local7[_local2].x, _local7[_local2].y, cells[_local3][_local5], _local2 * DELAY0, _local16, _local9);
_local3--;
_local2++;
}
}
_local5++;
}
_local2 = 0;
while (_local2 < _local7.length) {
delete _local7[_local2];
_local2++;
}
_local2 = 0;
while (_local2 < _local4.length) {
delete _local4[_local2];
_local2++;
}
}
function moveBodyEndAction(body, field_cell) {
field_cell.body = body;
count_move_on_the_field--;
updateTheField();
}
function moveBody(body, x0, y0, field_cell, delay, do_spring, is_knock) {
var _local5;
var _local4;
var _local3;
body.mov.endAct = GameClasses.GFunctions.create(this, moveBodyEndAction, body, field_cell, is_knock);
body._x = x0;
body._y = y0;
_local5 = field_cell.cell._x;
_local4 = field_cell.cell._y;
if (global_combo > 1) {
_local3 = body.mov.initAccelLineTo(body, _local5, _local4, 100, 300, delay, ACCEL, -0.001);
} else {
_local3 = body.mov.initAccelLineTo(body, _local5, _local4, 100, 300, delay, ACCEL, COOF_ABS);
}
if (is_knock) {
GameClasses.FreeMove.makeDelay(_local3, GameClasses.GFunctions.create(snd, snd.startSound, "ChipKnock"));
}
}
function updateTheField() {
if (count_move_on_the_field != 0) {
return(undefined);
}
if (do_bonus_explode) {
executeBonusExploude();
do_bonus_explode = false;
return(undefined);
}
reinitPeriodicHitn();
var _local2;
var _local3 = 0;
testPOA();
while (_local2 = testMatch3(0) , _local2 != null) {
stopPeriodicHitn();
count_bonus_chips = 0;
global_combo++;
_local3 = _local3 + fallDown(_local2);
breakSound(global_combo);
}
statistic.addRecordValue("matches", _local3);
updateNULL();
}
function breakSound(num) {
if (num == 1) {
var _local3 = Math.floor(Math.random() * 3);
var _local2 = "a";
if (_local3 == 1) {
_local2 = "b";
} else if (_local3 == 2) {
_local2 = "c";
}
snd.startSound("BreakFigure1" + _local2);
} else if (num < 10) {
snd.startSound("BreakFigure" + num);
} else {
var _local3 = Math.random();
if (_local3 < 0.5) {
snd.startSound("BreakFigure10");
} else if (_local3 < 0.8) {
snd.startSound("BreakFigure9");
} else if (_local3 < 1) {
snd.startSound("BreakFigure8");
}
}
}
function dissapearChip(cell) {
reserv_chips.push(cell.body);
count_move_on_the_field--;
cell.body = null;
updateTheField();
statistic.addRecordValue("tiles", 1);
}
function startBonusExploude() {
if (count_move_on_the_field == 0) {
executeBonusExploude();
} else {
do_bonus_explode = true;
}
}
function executeBonusExploudeEndAct(body) {
body.mov.stopMove();
reserv_chips.push(body);
count_move_on_the_field--;
mcRoot.counter.add(5);
updateTheField();
}
function executeBonusExploude() {
var _local5;
var _local4;
var _local2;
var _local11 = GameClasses.Consts.NUMBER_OF_BONUS_PS;
var _local10 = 0;
var _local13;
var _local12;
var _local9 = _local11;
var _local7 = new Array();
mcRoot.sun_bonus.startBonusPS();
stopPeriodicHitn();
_local4 = 1;
while (_local4 < cells.length) {
_local2 = 0;
while (_local2 < cells.ylength) {
if (cells[_local4 - 1][_local2].body && (cells[_local4 - 1][_local2].body.type != "chip")) {
var _local3 = _local4;
while ((_local3 < cells.length) && (!cells[_local3][_local2])) {
_local3++;
}
if (cells[_local3][_local2].body && (cells[_local3][_local2].body.type == "chip")) {
_local7.push(cells[_local3][_local2]);
_local9--;
if (_local9 == 0) {
break;
}
}
}
_local2++;
}
if (_local9 == 0) {
break;
}
_local4++;
}
if (_local9 != 0) {
_local5 = 0;
while (_local5 < _local9) {
_local4 = int(Math.random() * cells.length);
_local2 = int(Math.random() * cells.ylength);
if (cells[_local4][_local2].body && (cells[_local4][_local2].body.type == "chip")) {
_local7.push(cells[_local4][_local2]);
}
_local5++;
}
}
_local5 = 0;
while (_local5 < _local7.length) {
var _local6 = _local7[_local5];
if (_local6.body != null) {
_local10 = _local10 + ((1 - (_local5 / _local7.length)) * GameClasses.Consts.TIME_PERIOD_BETWEEN_EXPLODES_OF_THE_CHIPS);
mcRoot.sun_bonus.moveBmcToXY(_local5, _local6.x, _local6.y, _local10 / 2, _local10 / 2);
if (_local6.body.lock && (_local6.body.lock.numb != 0)) {
_local6.body.lock.destroy(_local10);
} else {
count_move_on_the_field++;
var _local8 = _local6.body;
_local8.breakRotation();
_local8.cps_endAct = GameClasses.GFunctions.create(this, executeBonusExploudeEndAct, _local8);
_local8._alpha = 0;
_local8.startExploude(_local10);
_local6.body = null;
}
}
_local5++;
}
_local5 = 0;
while (_local5 < _local7.length) {
delete _local7[_local5];
_local5++;
}
}
function initPeriodicHitn() {
nps = new GameClasses.NewParticleSystem(mcRoot.NPS_LEVEL_MC, 40);
nps.initTextureFromLibrary("red_circle");
interval_hint = GameClasses.FreeMove.setPeriodicInterval(this, "startPeriodicHitn", time_to_hint);
}
function reinitPeriodicHitn() {
GameClasses.FreeMove.resetInterval(interval_hint);
GameClasses.FreeMove.playInterval(interval_hint);
}
function stopPeriodicHitn() {
GameClasses.FreeMove.pauseInterval(interval_hint);
nps.stopPS();
}
function startPeriodicHitn() {
GameClasses.FreeMove.pauseInterval(interval_hint);
if (number_pieces_of_the_artefact_on_the_field == 0) {
nps.stopPS();
return(undefined);
}
if (count_move_on_the_field != 0) {
reinitPeriodicHitn();
return(undefined);
}
var _local2 = findHelpRect();
help_rect = _local2;
if (_local2 != null) {
snd.startSound("hint");
var _local5 = new GameClasses.Line(_local2.x, _local2.x, _local2.x, _local2.x + (_local2.width / 2), _local2.x + _local2.width, _local2.x + _local2.width, _local2.x + _local2.width, _local2.x + (_local2.width / 2), _local2.x);
var _local4 = new GameClasses.Line(_local2.y, _local2.y + (_local2.height / 2), _local2.y + _local2.height, _local2.y + _local2.height, _local2.y + _local2.height, _local2.y + (_local2.height / 2), _local2.y, _local2.y, _local2.y);
var _local3 = new GameClasses.Spline(0, 15, 0);
_local3.Calculate();
nps.initPath(_local5, _local4);
nps.startPS(3, 0, 30, 1200, undefined, undefined, _local3, _local3);
} else {
reshuffleTheField();
}
}
function reshuffleTheField() {
snd.startSound("reshufle");
mcRoot.sbf.addBonus();
stopPeriodicHitn();
}
function lockTheField() {
stopPeriodicHitn();
is_locked = true;
}
function unlockTheField() {
reinitPeriodicHitn();
is_locked = false;
}
function makeArray(st) {
var _local8 = new Array();
var _local6;
var _local4;
var _local5;
var _local7 = 0;
while (_local7 < cells.length) {
var _local3 = 0;
while (_local3 < cells.ylength) {
var _local2 = cells[_local7][_local3];
if (_local2.body && (_local2.body.type == st)) {
_local6 = _local7;
_local5 = 1;
_local4 = cells.length - 1;
while (cells[_local4][_local3] == undefined) {
_local4--;
}
while (_local6 <= _local4) {
_local8.push(new flash.geom.Point(_local2.cell._x + (SIZE / 2), _local2.cell._y + (_local5 * SIZE)));
_local6++;
_local5++;
}
}
_local3++;
}
_local7++;
}
return(_local8);
}
function makeHelpArray() {
return(makeArray("poa"));
}
function makeHelpBombArray() {
return(makeArray("bomb"));
}
function makeHelpZLArray() {
return(makeArray("zl"));
}
function makeHelpTimeArray() {
return(makeArray("time"));
}
function makeHelpSwapArray() {
return(makeArray("swap"));
}
function makeHelpLifeArray() {
return(makeArray("life"));
}
function swapChips(cell1, cell2) {
count_move_on_the_field = count_move_on_the_field + 2;
cell1.body.mov.endAct = GameClasses.GFunctions.create(this, function (cell, body) {
cell.body = body;
body.stopRotation();
this.count_move_on_the_field--;
this.updateTheField();
}, cell2, cell1.body);
cell1.body.mov.newInitMove(cell1.body, TIME_SWAP, 0, cell2.cell._x, cell2.cell._y);
cell1.body = null;
cell2.body.mov.endAct = GameClasses.GFunctions.create(this, function (cell, body) {
cell.body = body;
body.stopRotation();
this.count_move_on_the_field--;
this.updateTheField();
}, cell1, cell2.body);
cell2.body.mov.newInitMove(cell2.body, TIME_SWAP, 0, cell1.cell._x, cell1.cell._y);
cell2.body = null;
}
function runEmergeNumbers(point, numb) {
mcRoot.counter.add(numb);
et.emerge(point.x, point.y, "+" + numb);
}
function isLocked() {
return(((number_pieces_of_the_artefact_on_the_field == 0) || (count_move_on_the_field != 0)) || (is_locked));
}
var selected_mc = null;
var roll_over_mc = null;
var new_selected_mc = null;
var listener = new Object();
var interval_hint = 0;
var global_blik_interval = 0;
var was_first_step = false;
var mouse_down = false;
var count_move_on_the_field = 0;
var global_combo = 0;
var count_bonus_chips = 0;
var SIZE = GameClasses.Consts.CELL_SIZE;
var TIME_CP = GameClasses.Consts.TIME_OF_CHANGE_PLACES_CHIPS;
var TIME_DISSAPEAR = GameClasses.Consts.TIME_OF_DISSAPEAR_CHIP;
var ACCEL = GameClasses.Consts.ACCEL_OF_CHIP_FALL;
var COOF_ABS = GameClasses.Consts.COOF_OF_ABSORPTION_CHIP_FALL;
var DELAY0 = GameClasses.Consts.FIRST_DELAY_OF_CHIP_FALL;
var NUMB_RESERV_CHIPS = GameClasses.Consts.NUMB_RESERV_CHIPS;
var T_to_the_bonus_sun = GameClasses.Consts.TIME_PERIOD_OF_THE_CHIP_MOVE_TO_THE_BONUS_SUN;
var delay_bonus_chip = 150;
var time_to_hint = 5000;
var TIME_SWAP = 300;
var is_locked = false;
var number_pieces_of_the_artefact_on_the_field = 0;
var start_lock_help_hint = false;
}
Symbol 1744 MovieClip [__Packages.GameClasses.Scope] Frame 0
class GameClasses.Scope
{
var log, bmp, scope, scope_mc;
function Scope (id_scope) {
log = logger.Logger.getLog();
var _local2 = new flash.geom.Point(0, 0);
var _local3 = new flash.geom.Rectangle(0, 0, 1, 1);
bmp = flash.display.BitmapData.loadBitmap(id_scope);
if (bmp == undefined) {
trace(("bitmap \"" + id_scope) + "\" not exist. constructor Scope");
}
scope = new Object();
scope.l = new flash.display.BitmapData(33, 26, true, 0);
scope.l.copyPixels(bmp, new flash.geom.Rectangle(19, 52, 33, 26), _local2);
scope.lx = 20;
scope.ly = 0;
scope.r = new flash.display.BitmapData(33, 26, true, 0);
scope.r.copyPixels(bmp, new flash.geom.Rectangle(78, 52, 33, 26), _local2);
scope.rx = 13;
scope.ry = 0;
scope.t = new flash.display.BitmapData(26, 33, true, 0);
scope.t.copyPixels(bmp, new flash.geom.Rectangle(52, 19, 26, 33), _local2);
scope.tx = 0;
scope.ty = 20;
scope.b = new flash.display.BitmapData(26, 33, true, 0);
scope.b.copyPixels(bmp, new flash.geom.Rectangle(52, 78, 26, 33), _local2);
scope.bx = 0;
scope.by = 13;
scope.lt = new flash.display.BitmapData(33, 33, true, 0);
scope.lt.copyPixels(bmp, new flash.geom.Rectangle(19, 19, 33, 33), _local2);
scope.ltx = 20;
scope.lty = 20;
scope.lb = new flash.display.BitmapData(33, 33, true, 0);
scope.lb.copyPixels(bmp, new flash.geom.Rectangle(19, 78, 33, 33), _local2);
scope.lbx = 20;
scope.lby = 13;
scope.rb = new flash.display.BitmapData(33, 33, true, 0);
scope.rb.copyPixels(bmp, new flash.geom.Rectangle(78, 78, 33, 33), _local2);
scope.rbx = 13;
scope.rby = 13;
scope.rt = new flash.display.BitmapData(33, 33, true, 0);
scope.rt.copyPixels(bmp, new flash.geom.Rectangle(78, 19, 33, 33), _local2);
scope.rtx = 13;
scope.rty = 20;
scope.inlt = new flash.display.BitmapData(26, 26, true, 0);
scope.inlt.copyPixels(bmp, new flash.geom.Rectangle(130, 0, 26, 26), _local2);
scope.inltx = 13;
scope.inlty = 13;
scope.inlb = new flash.display.BitmapData(26, 26, true, 0);
scope.inlb.copyPixels(bmp, new flash.geom.Rectangle(130, 26, 26, 26), _local2);
scope.inlbx = 13;
scope.inlby = 13;
scope.inrb = new flash.display.BitmapData(26, 26, true, 0);
scope.inrb.copyPixels(bmp, new flash.geom.Rectangle(156, 26, 26, 26), _local2);
scope.inrbx = 13;
scope.inrby = 13;
scope.inrt = new flash.display.BitmapData(26, 26, true, 0);
scope.inrt.copyPixels(bmp, new flash.geom.Rectangle(156, 0, 26, 26), _local2);
scope.inrtx = 13;
scope.inrty = 13;
}
function getBody() {
return(scope_mc);
}
function destroy() {
log.info("call function destroy from Scope");
for (var _local2 in scope_mc) {
if (scope_mc[_local2] instanceof MovieClip) {
log.debug("\tdestroy " + scope_mc[_local2]);
MovieClip(scope_mc[_local2]).removeMovieClip();
}
}
scope_mc.removeMovieClip();
scope_mc = null;
for (var _local2 in scope) {
if (scope[_local2] instanceof flash.display.BitmapData) {
log.debug(("\tdestroy " + _local2) + " BMP from scope");
flash.display.BitmapData(scope[_local2]).dispose();
}
}
scope = null;
bmp.dispose();
bmp = null;
log = null;
}
function getScope(mc_root, field, id_scope, depth, xbeg, ybeg) {
scope_mc = mc_root.createEmptyMovieClip(id_scope, depth);
var _local3 = "";
var _local10 = "";
var _local2;
var _local8;
var _local7;
var _local6;
var _local14;
var _local13;
_local14 = field.length - 1;
var _local5 = 0;
while (_local5 < field.length) {
_local13 = field[_local5].length - 1;
var _local4 = 0;
while (_local4 < field[_local5].length) {
if (field[_local5].charAt(_local4) == "0") {
} else {
_local3 = "";
_local3 = _local3 + (((_local4 == 0) || (field[_local5].charAt(_local4 - 1) == "0")) ? "0" : "1");
_local3 = _local3 + ((((_local4 == 0) || (_local5 == 0)) || (field[_local5 - 1].charAt(_local4 - 1) == "0")) ? "0" : "1");
_local3 = _local3 + (((_local5 == 0) || (field[_local5 - 1].charAt(_local4) == "0")) ? "0" : "1");
_local3 = _local3 + ((((_local5 == 0) || (_local4 == _local13)) || (field[_local5 - 1].charAt(_local4 + 1) == "0")) ? "0" : "1");
_local3 = _local3 + (((_local4 == _local13) || (field[_local5].charAt(_local4 + 1) == "0")) ? "0" : "1");
_local3 = _local3 + ((((_local5 == _local14) || (_local4 == _local13)) || (field[_local5 + 1].charAt(_local4 + 1) == "0")) ? "0" : "1");
_local3 = _local3 + (((_local5 == _local14) || (field[_local5 + 1].charAt(_local4) == "0")) ? "0" : "1");
_local3 = _local3 + ((((_local5 == _local14) || (_local4 == 0)) || (field[_local5 + 1].charAt(_local4 - 1) == "0")) ? "0" : "1");
if (_local3.charAt(0) == "0") {
_local2 = ((("mc" + _local5) + "") + _local4) + "l";
_local8 = "l";
_local7 = (-scope.lx) + 0;
_local6 = (-scope.ly) + 0;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
if (_local3.charAt(2) == "0") {
_local2 = ((("mc" + _local5) + "") + _local4) + "t";
_local8 = "t";
_local7 = (-scope.tx) + 0;
_local6 = (-scope.ty) + 0;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
if (_local3.charAt(4) == "0") {
_local2 = ((("mc" + _local5) + "") + _local4) + "r";
_local8 = "r";
_local7 = (-scope.rx) + SIZE;
_local6 = (-scope.ry) + 0;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
if (_local3.charAt(6) == "0") {
_local2 = ((("mc" + _local5) + "") + _local4) + "b";
_local8 = "b";
_local7 = (-scope.bx) + 0;
_local6 = (-scope.by) + SIZE;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
_local10 = (_local3.charAt(0) + _local3.charAt(1)) + _local3.charAt(2);
if (_local10 == "000") {
_local2 = ((("mc" + _local5) + "") + _local4) + "lt";
_local8 = "lt";
_local7 = (-scope.ltx) + 0;
_local6 = (-scope.lty) + 0;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
_local10 = (_local3.charAt(2) + _local3.charAt(3)) + _local3.charAt(4);
if (_local10 == "000") {
_local2 = ((("mc" + _local5) + "") + _local4) + "rt";
_local8 = "rt";
_local7 = (-scope.rtx) + SIZE;
_local6 = (-scope.rty) + 0;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
_local10 = (_local3.charAt(4) + _local3.charAt(5)) + _local3.charAt(6);
if (_local10 == "000") {
_local2 = ((("mc" + _local5) + "") + _local4) + "rb";
_local8 = "rb";
_local7 = (-scope.rbx) + SIZE;
_local6 = (-scope.rby) + SIZE;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
_local10 = (_local3.charAt(6) + _local3.charAt(7)) + _local3.charAt(0);
if (_local10 == "000") {
_local2 = ((("mc" + _local5) + "") + _local4) + "lb";
_local8 = "lb";
_local7 = (-scope.lbx) + 0;
_local6 = (-scope.lby) + SIZE;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
}
_local4++;
}
_local5++;
}
_local5 = 0;
while (_local5 < field.length) {
_local13 = field[_local5].length - 1;
var _local4 = 0;
while (_local4 < field[_local5].length) {
_local3 = "";
_local3 = _local3 + (((_local4 == 0) || (field[_local5].charAt(_local4 - 1) == "0")) ? "0" : "1");
_local3 = _local3 + ((((_local4 == 0) || (_local5 == 0)) || (field[_local5 - 1].charAt(_local4 - 1) == "0")) ? "0" : "1");
_local3 = _local3 + (((_local5 == 0) || (field[_local5 - 1].charAt(_local4) == "0")) ? "0" : "1");
_local3 = _local3 + ((((_local5 == 0) || (_local4 == _local13)) || (field[_local5 - 1].charAt(_local4 + 1) == "0")) ? "0" : "1");
_local3 = _local3 + (((_local4 == _local13) || (field[_local5].charAt(_local4 + 1) == "0")) ? "0" : "1");
_local3 = _local3 + ((((_local5 == _local14) || (_local4 == _local13)) || (field[_local5 + 1].charAt(_local4 + 1) == "0")) ? "0" : "1");
_local3 = _local3 + (((_local5 == _local14) || (field[_local5 + 1].charAt(_local4) == "0")) ? "0" : "1");
_local3 = _local3 + ((((_local5 == _local14) || (_local4 == 0)) || (field[_local5 + 1].charAt(_local4 - 1) == "0")) ? "0" : "1");
_local10 = (_local3.charAt(0) + _local3.charAt(1)) + _local3.charAt(2);
if (_local10 == "101") {
_local2 = ((("mc" + _local5) + "") + _local4) + "inrb";
_local8 = "inrb";
_local7 = (-scope.inrbx) + 0;
_local6 = (-scope.inrby) + 0;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
_local10 = (_local3.charAt(2) + _local3.charAt(3)) + _local3.charAt(4);
if (_local10 == "101") {
_local2 = ((("mc" + _local5) + "") + _local4) + "inlb";
_local8 = "inlb";
_local7 = (-scope.inlbx) + SIZE;
_local6 = (-scope.inlby) + 0;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
_local10 = (_local3.charAt(4) + _local3.charAt(5)) + _local3.charAt(6);
if (_local10 == "101") {
_local2 = ((("mc" + _local5) + "") + _local4) + "inlt";
_local8 = "inlt";
_local7 = (-scope.inltx) + SIZE;
_local6 = (-scope.inlty) + SIZE;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
_local10 = (_local3.charAt(6) + _local3.charAt(7)) + _local3.charAt(0);
if (_local10 == "101") {
_local2 = ((("mc" + _local5) + "") + _local4) + "inrt";
_local8 = "inrt";
_local7 = (-scope.inrtx) + 0;
_local6 = (-scope.inrty) + SIZE;
scope_mc.createEmptyMovieClip(_local2, scope_mc.getNextHighestDepth());
scope_mc[_local2].attachBitmap(scope[_local8], 1, "never", true);
scope_mc[_local2]._x = (xbeg + (_local4 * SIZE)) + _local7;
scope_mc[_local2]._y = (ybeg + (_local5 * SIZE)) + _local6;
}
_local4++;
}
_local5++;
}
return(scope_mc);
}
var SIZE = 26;
}
Symbol 1745 MovieClip [__Packages.GameClasses.MyArray] Frame 0
class GameClasses.MyArray extends Array
{
var push, length, pop;
function MyArray () {
super();
}
function insert(obj) {
push(obj);
}
function erase(obj) {
var _local2 = 0;
while (_local2 < length) {
if (obj == this[_local2]) {
this[_local2] = this[length - 1];
pop();
return(undefined);
}
_local2++;
}
}
}
Symbol 1746 MovieClip [__Packages.GameClasses.EmergedText] Frame 0
class GameClasses.EmergedText
{
static var emerge_text_obj;
var log, mcRoot, et_arr;
function EmergedText (root_mc) {
log = logger.Logger.getLog();
mcRoot = root_mc;
emerge_text_obj = _root.dialogs[emerge_text_id];
initET(numb_of_reserv);
}
function destroy() {
delete mcRoot;
delete log;
delete emerge_text_obj;
delete curr_pos;
var _local2 = 0;
while (_local2 < et_arr.length) {
et_arr[_local2].destroy();
delete et_arr[_local2];
_local2++;
}
delete et_arr;
}
function initET(numb) {
et_arr = new Array(numb);
var _local2 = 0;
while (_local2 < numb) {
et_arr[_local2] = new GameClasses.TextClass(mcRoot, mcRoot.getNextHighestDepth(), emerge_text_obj, 530, 400);
et_arr[_local2].setVisible(false);
_local2++;
}
}
function emerge(x, y, text) {
var _local2 = et_arr.pop();
_local2.setText(text);
var _local4 = x - (_local2.getWidth() / 2);
var _local3 = y - (_local2.getHeight() / 2);
var _local5 = GameClasses.GFunctions.create(this, function (et) {
et.setVisible(false);
this.et_arr.push(et);
}, _local2);
_local2.initMove(_local5, T, 1, new GameClasses.Spline(_local4, _local4), new GameClasses.Spline(_local3, _local3 - h_emerge), null, null, null, new GameClasses.Line(0, 100, 90, 100, 0));
}
static var emerge_text_id = "EmergeText";
static var numb_of_reserv = 100;
var curr_pos = 0;
var T = 1000;
var h_emerge = 30;
}
Symbol 1747 MovieClip [__Packages.GameClasses.FieldCell] Frame 0
class GameClasses.FieldCell extends MovieClip
{
var useHandCursor, mcRoot, cell, body, _parent, col, row, x, y, t0;
function FieldCell () {
super();
useHandCursor = false;
}
function destroy() {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
mcRoot = null;
delete cell;
delete body;
}
function removeMovieClip() {
destroy();
super.removeMovieClip();
}
function initCell(mcCell, mcBody, row, col) {
mcRoot = _parent;
cell = mcCell;
body = mcBody;
this.col = col;
this.row = row;
x = cell._x + (cell._width / 2);
y = cell._y + (cell._height / 2);
}
function select() {
cell.light._alpha = 100;
if (body.type == "chip") {
body.startRotation();
} else if (body.type == "life") {
}
}
function unselect() {
cell.light._alpha = 0;
if (body.type == "chip") {
body.stopRotation();
} else if (body.type == "life") {
}
}
function startShine() {
t0 = getTimer();
cell.light._alpha = 0;
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
interval = GameClasses.FreeMove.setInterval(this, "updateShine", 16);
}
function stopShine() {
GameClasses.FreeMove.clearInterval(interval);
interval = 0;
cell.light._alpha = 0;
}
function updateShine() {
var _local3 = getTimer();
var _local2 = (_local3 - t0) / T;
if (_local2 > 1) {
t0 = _local3;
cell.light._alpha = 0;
} else if (_local2 > 0.5) {
cell.light._alpha = 100 - ((_local2 - 0.5) * 200);
} else {
cell.light._alpha = _local2 * 200;
}
}
var interval = 0;
var T = 500;
}
Symbol 1748 MovieClip [__Packages.GameClasses.Lock] Frame 0
class GameClasses.Lock extends MovieClip
{
var mcRoot, _parent, ps1, ps2, body1, body2, bmp1, bmp2, cps1, cps2, numb, createEmptyMovieClip;
function Lock () {
super();
mcRoot = _parent;
ps1 = new GameClasses.ParticleSystem("particles.png", 0, 32, 32, 32, undefined, false, 30);
ps1.initParticleSystem(mcRoot, 7, Tp, 0, 10, 0, 0, 90, 50, 130, 5, 16777215, 16777215);
ps2 = new GameClasses.ParticleSystem("particles.png", 0, 32, 32, 32, undefined, false, 30);
ps2.initParticleSystem(mcRoot, 7, Tp, 0, 10, 0, 0, 90, 50, 130, 5, 16777215, 16777215);
}
function destroy_lock() {
mcRoot = null;
body1.removeMovieClip();
body1 = null;
body2.removeMovieClip();
body2 = null;
bmp1.dispose();
bmp2.dispose();
bmp1 = null;
bmp2 = null;
cps1.destroy();
cps2.destroy();
ps1.destroy();
ps2.destroy();
cps1 = null;
cps2 = null;
ps1 = null;
ps2 = null;
}
function removeMovieClip() {
body1.removeMovieClip();
body2.removeMovieClip();
bmp1.dispose();
bmp2.dispose();
cps1.clear();
cps2.clear();
ps1.clear();
ps2.clear();
super.removeMovieClip();
}
function initLock(id_tex, rect1, rect2, numb) {
var _local3 = new flash.geom.Point(0, 0);
var _local2 = flash.display.BitmapData.loadBitmap(id_tex);
this.numb = numb;
bmp1 = new flash.display.BitmapData(rect1.width, rect1.height, true, 0);
bmp2 = new flash.display.BitmapData(rect2.width, rect2.height, true, 0);
bmp1.copyPixels(_local2, rect1, _local3);
bmp2.copyPixels(_local2, rect2, _local3);
_local2.dispose();
body1 = createEmptyMovieClip("body1", 1);
body1.attachBitmap(bmp1, 1, "never", true);
body2 = createEmptyMovieClip("body2", 2);
body2.attachBitmap(bmp2, 1, "never", true);
if (numb == 1) {
body1._visible = true;
body2._visible = false;
} else {
body1._visible = false;
body2._visible = true;
}
cps1 = new GameClasses.CompaundParticleSystem(mcRoot, bmp1, 6, 6);
cps2 = new GameClasses.CompaundParticleSystem(mcRoot, bmp2, 6, 6);
}
function destroy(delay) {
if (numb == 2) {
destroy2(delay);
numb = 1;
body1._visible = true;
} else if (numb == 1) {
destroy1(delay);
numb = 0;
}
}
function destroy1(delay) {
body1._visible = false;
cps1.startExplode(mcRoot._x, mcRoot._y, -80, 80, 70, -0.3, 0.04, 0.0008, delay);
ps1.startParticleSystem(new flash.geom.Point(mcRoot._x + (GameClasses.Consts.CELL_SIZE / 2), mcRoot._y + (GameClasses.Consts.CELL_SIZE / 2)), 10, delay);
}
function destroy2(delay) {
body2._visible = false;
cps2.startExplode(mcRoot._x, mcRoot._y, -100, 100, 100, -0.4, 0.05, 0.001, delay);
ps2.startParticleSystem(new flash.geom.Point(mcRoot._x + (GameClasses.Consts.CELL_SIZE / 2), mcRoot._y + (GameClasses.Consts.CELL_SIZE / 2)), 10, delay);
}
static var counter = 0;
var T = 200;
var Tp = 300;
}
Symbol 1749 MovieClip [__Packages.GameClasses.Bomb] Frame 0
class GameClasses.Bomb extends GameClasses.Bonus
{
var bonus_field, concurent_bonus_fields, shine_color, mcRoot, _x, _y, roll_over_mc, tremble_arr, stopTremble, startTremble, snd, listener, _alpha, _xscale, _yscale;
function Bomb () {
super();
bonus_field = function () {
return(this.mcRoot.bbf);
};
concurent_bonus_fields[0] = GameClasses.GFunctions.create(this, function () {
return(this.mcRoot.zlbf);
});
concurent_bonus_fields[1] = GameClasses.GFunctions.create(this, function () {
return(this.mcRoot.sbf);
});
shine_color = 16738816 /* 0xFF6A00 */;
}
function moveActiveBonus() {
var _local4 = mcRoot.TheField.cells;
_x = mcRoot._xmouse + 15;
_y = mcRoot._ymouse + 2;
var _local3 = null;
var _local2;
var _local5;
mcRoot.TheField.updateTheMouseField();
_local3 = mcRoot.TheField.new_roll_over_mc;
if (roll_over_mc == _local3) {
return(undefined);
}
roll_over_mc = _local3;
_local2 = tremble_arr.length - 1;
while (_local2 >= 0) {
stopTremble(tremble_arr[_local2].body);
tremble_arr[_local2].stopShine();
tremble_arr.pop();
_local2--;
}
if (_local3.body) {
tremble_arr.push(_local3);
}
if (_local4[_local3.row - 1][_local3.col].body) {
tremble_arr.push(_local4[_local3.row - 1][_local3.col]);
}
if (_local4[_local3.row + 1][_local3.col].body) {
tremble_arr.push(_local4[_local3.row + 1][_local3.col]);
}
if (_local4[_local3.row - 2][_local3.col].body) {
tremble_arr.push(_local4[_local3.row - 2][_local3.col]);
}
if (_local4[_local3.row + 2][_local3.col].body) {
tremble_arr.push(_local4[_local3.row + 2][_local3.col]);
}
if (_local4[_local3.row][_local3.col - 2].body) {
tremble_arr.push(_local4[_local3.row][_local3.col - 2]);
}
if (_local4[_local3.row][_local3.col + 2].body) {
tremble_arr.push(_local4[_local3.row][_local3.col + 2]);
}
if (_local4[_local3.row][_local3.col - 1].body) {
tremble_arr.push(_local4[_local3.row][_local3.col - 1]);
}
if (_local4[_local3.row - 1][_local3.col - 1].body) {
tremble_arr.push(_local4[_local3.row - 1][_local3.col - 1]);
}
if (_local4[_local3.row + 1][_local3.col - 1].body) {
tremble_arr.push(_local4[_local3.row + 1][_local3.col - 1]);
}
if (_local4[_local3.row][_local3.col + 1].body) {
tremble_arr.push(_local4[_local3.row][_local3.col + 1]);
}
if (_local4[_local3.row - 1][_local3.col + 1].body) {
tremble_arr.push(_local4[_local3.row - 1][_local3.col + 1]);
}
if (_local4[_local3.row + 1][_local3.col + 1].body) {
tremble_arr.push(_local4[_local3.row + 1][_local3.col + 1]);
}
_local2 = tremble_arr.length - 1;
while (_local2 >= 0) {
startTremble(tremble_arr[_local2].body);
tremble_arr[_local2].startShine();
_local2--;
}
if (tremble_arr.length != 0) {
snd.startCycle("mmm");
} else {
snd.stop("mmm");
}
}
function movePressBonus(bonus_field) {
if ((roll_over_mc == null) || (tremble_arr.length == 0)) {
return(undefined);
}
bonus_field.bonuses[0].breakBigShine();
var _local3;
bonus_field.bonuses[0].bonus_state = GameClasses.Bonus.NOT_SELECTED;
Mouse.removeListener(listener);
snd.stop("mmm");
snd.startSound("bomb_expl");
mcRoot.TheField.stopPeriodicHitn();
bonus_field.startPS(roll_over_mc.cell._x + (GameClasses.Consts.CELL_SIZE / 2), roll_over_mc.cell._y + (GameClasses.Consts.CELL_SIZE / 2));
_local3 = tremble_arr.length - 1;
for ( ; _local3 >= 0 ; _local3--) {
var _local2 = tremble_arr[_local3].body;
stopTremble(_local2);
tremble_arr[_local3].stopShine();
if (_local2.type == "chip") {
if (_local2.lock && (_local2.lock.numb != 0)) {
_local2.lock.destroy();
snd.startSound("ChipUnlock");
tremble_arr.pop();
continue;
}
_local2.breakRotation();
_local2._alpha = 0;
mcRoot.TheField.count_move_on_the_field++;
_local2.cps_endAct = GameClasses.GFunctions.create(mcRoot.TheField, mcRoot.TheField.dissapearChip, tremble_arr[_local3]);
_local2.startExploudeCPS(0);
}
tremble_arr.pop();
}
_alpha = 0;
_x = bonus_field.x0;
_y = bonus_field.y0;
_xscale = 100;
_yscale = 100;
bonus_field.removeBonus();
mcRoot.TheField.is_locked = false;
}
var type = "bomb";
}
Symbol 1750 MovieClip [__Packages.GameClasses.ZeusLightning] Frame 0
class GameClasses.ZeusLightning extends GameClasses.Bonus
{
var bonus_field, concurent_bonus_fields, shine_color, mcRoot, _x, _y, roll_over_mc, tremble_arr, stopTremble, startTremble, snd, listener, _alpha, _xscale, _yscale;
function ZeusLightning () {
super();
bonus_field = function () {
return(this.mcRoot.zlbf);
};
concurent_bonus_fields[0] = GameClasses.GFunctions.create(this, function () {
return(this.mcRoot.sbf);
});
concurent_bonus_fields[1] = GameClasses.GFunctions.create(this, function () {
return(this.mcRoot.bbf);
});
shine_color = 63996;
}
function moveActiveBonus() {
var _local4 = mcRoot.TheField.cells;
_x = mcRoot._xmouse + 15;
_y = mcRoot._ymouse + 2;
var _local5 = null;
var _local2;
var _local3;
mcRoot.TheField.updateTheMouseField();
_local5 = mcRoot.TheField.new_roll_over_mc;
if (roll_over_mc == _local5) {
return(undefined);
}
roll_over_mc = _local5;
_local2 = tremble_arr.length - 1;
while (_local2 >= 0) {
stopTremble(tremble_arr[_local2].body);
tremble_arr[_local2].stopShine();
tremble_arr.pop();
_local2--;
}
_local2 = 0;
while (_local2 < _local4.length) {
_local3 = 0;
while (_local3 < _local4[_local2].length) {
if ((_local4[_local2][_local3].body && (_local4[_local2][_local3].body.type == "chip")) && (_local4[_local2][_local3].body.chip_name == roll_over_mc.body.chip_name)) {
tremble_arr.push(_local4[_local2][_local3]);
}
_local3++;
}
_local2++;
}
_local2 = tremble_arr.length - 1;
while (_local2 >= 0) {
startTremble(tremble_arr[_local2].body);
tremble_arr[_local2].startShine();
_local2--;
}
if (tremble_arr.length != 0) {
snd.startCycle("mmm");
} else {
snd.stop("mmm");
}
}
function movePressBonus(bonus_field) {
if ((roll_over_mc == null) || (tremble_arr.length == 0)) {
return(undefined);
}
snd.stop("mmm");
var _local4 = GameClasses.Consts.BONUS_ZEUSLIGHTNING_TIME_EFFECT / tremble_arr.length;
bonus_field.bonuses[0].breakBigShine();
var _local2;
bonus_field.bonuses[0].bonus_state = GameClasses.Bonus.NOT_SELECTED;
Mouse.removeListener(listener);
mcRoot.theField.stopPeriodicHitn();
bonus_field.startPS(roll_over_mc.cell._x + (GameClasses.Consts.CELL_SIZE / 2), roll_over_mc.cell._y + (GameClasses.Consts.CELL_SIZE / 2));
_local2 = tremble_arr.length - 1;
while (_local2 >= 0) {
snd.startSound("FlashStart");
var _local3 = tremble_arr[_local2].body;
stopTremble(_local3);
tremble_arr[_local2].stopShine();
if (_local3.lock && (_local3.lock.numb != 0)) {
_local3.lock.destroy(_local4 * _local2);
GameClasses.FreeMove.makeDelay(_local4 * _local2, GameClasses.GFunctions.create(snd, snd.startSound, "ChipUnlock"));
tremble_arr.pop();
} else {
_local3.breakRotation();
_local3._alpha = 0;
_local3.cps_endAct = GameClasses.GFunctions.create(this, endCpsAct, tremble_arr[_local2]);
_local3.startExploude(_local4 * _local2);
GameClasses.FreeMove.makeDelay(_local4 * _local2, GameClasses.GFunctions.create(snd, snd.startSound, "boom"));
tremble_arr.pop();
mcRoot.theField.count_move_on_the_field++;
}
_local2--;
}
_alpha = 0;
_x = bonus_field.x0;
_y = bonus_field.y0;
_xscale = 100;
_yscale = 100;
bonus_field.removeBonus();
mcRoot.theField.is_locked = false;
}
function endCpsAct(tarr) {
mcRoot.TheField.dissapearChip(tarr);
}
var type = "zl";
}
Symbol 1751 MovieClip [__Packages.GameClasses.TimeBonus] Frame 0
class GameClasses.TimeBonus extends GameClasses.Bonus
{
var bonus_field, concurent_bonus_fields, timer, shine_color, bonus_state, mcRoot, snd;
function TimeBonus () {
super();
bonus_field = function () {
return(this.mcRoot.tbf);
};
concurent_bonus_fields[0] = GameClasses.GFunctions.create(this, function () {
return(this.mcRoot.bbf);
});
concurent_bonus_fields[1] = GameClasses.GFunctions.create(this, function () {
return(this.mcRoot.zlbf);
});
concurent_bonus_fields[2] = GameClasses.GFunctions.create(this, function () {
return(this.mcRoot.sbf);
});
timer = function () {
return(this.mcRoot.timer);
};
shine_color = 16681216 /* 0xFE8900 */;
}
function onPressAct() {
if (bonus_state == GameClasses.Bonus.DISABLED) {
return(undefined);
}
if (mcRoot.TheField.isLocked() || (mcRoot.is_locked)) {
return(undefined);
}
if (!mcRoot.TheField.was_first_step) {
mcRoot.TheField.was_first_step = true;
mcRoot.timer.play();
}
var _local2;
_local2 = 0;
while (_local2 < concurent_bonus_fields.length) {
if (concurent_bonus_fields[_local2]().selected_this) {
concurent_bonus_fields[_local2]().bonuses[0].onPressAct2();
break;
}
_local2++;
}
snd.startSound("time_bonus");
timer().startBonus();
bonus_field().removeBonus();
}
var type = "time";
}
Symbol 1752 MovieClip [__Packages.GameClasses.SwapBonus] Frame 0
class GameClasses.SwapBonus extends GameClasses.Bonus
{
var bonus_field, concurent_bonus_fields, shine_color, _x, mcRoot, _y, roll_over_mc, snd, listener, _alpha, _xscale, _yscale;
function SwapBonus () {
super();
bonus_field = function () {
return(this.mcRoot.sbf);
};
concurent_bonus_fields[0] = GameClasses.GFunctions.create(this, function () {
return(this.mcRoot.bbf);
});
concurent_bonus_fields[1] = GameClasses.GFunctions.create(this, function () {
return(this.mcRoot.zlbf);
});
shine_color = 7929600 /* 0x78FF00 */;
}
function moveActiveBonus() {
_x = mcRoot._xmouse + 15;
_y = mcRoot._ymouse + 2;
}
function movePressBonus(bonus_field) {
mcRoot.theField.updateTheMouseField();
roll_over_mc = mcRoot.theField.new_roll_over_mc;
var _local2 = roll_over_mc.body;
if ((_local2 && (_local2.type == "chip")) && ((!_local2.lock) || (_local2.lock.numb == 0))) {
snd.startSound("ChipSelect");
first_selected = roll_over_mc;
first_selected.select();
listener.onMouseDown = GameClasses.GFunctions.create(this, movePressBonus2);
}
}
function movePressBonus2() {
mcRoot.theField.updateTheMouseField();
var _local2 = mcRoot.theField.new_roll_over_mc;
var _local3 = _local2.body;
if (((_local2 == null) || (first_selected == _local2)) || ((_local3 && (_local3.type != "chip")) || (_local3.lock && (_local3.lock.numb > 0)))) {
return(undefined);
}
snd.startSound("ChipMove");
bonus_field().bonuses[0].breakBigShine();
bonus_field().bonuses[0].bonus_state = GameClasses.Bonus.NOT_SELECTED;
Mouse.removeListener(listener);
first_selected.unselect();
roll_over_mc = _local2;
second_selected = roll_over_mc;
mcRoot.theField.swapChips(first_selected, second_selected);
listener.onMouseDown = GameClasses.GFunctions.create(this, movePressBonus);
first_selected = null;
second_selected = null;
roll_over_mc = null;
_alpha = 0;
_x = bonus_field().x0;
_y = bonus_field().y0;
_xscale = 100;
_yscale = 100;
bonus_field().removeBonus();
mcRoot.theField.unlockTheField();
}
function onPressAct2() {
super.onPressAct2();
if (first_selected != null) {
first_selected.unselect();
first_selected = null;
}
}
var type = "swap";
static var first_selected = null;
static var second_selected = null;
}
Symbol 1753 MovieClip [__Packages.GameClasses.LifeBonus] Frame 0
class GameClasses.LifeBonus extends MovieClip
{
var mov, body_bg, body_heart, mcRoot, _parent, createEmptyMovieClip, heart, heart_bg, bg, _x, _y;
function LifeBonus () {
super();
mov = new GameClasses.FreeMove();
var _local3 = flash.display.BitmapData.loadBitmap("Chips.png");
body_bg = new flash.display.BitmapData(26, 26, true, 0);
body_heart = new flash.display.BitmapData(26, 26, true, 0);
body_bg.copyPixels(_local3, new flash.geom.Rectangle(104, 104, 26, 26), new flash.geom.Point(0, 0));
body_heart.copyPixels(_local3, new flash.geom.Rectangle(130, 104, 26, 26), new flash.geom.Point(0, 0));
_local3.dispose();
mcRoot = _parent;
createEmptyMovieClip("bg", 1);
createEmptyMovieClip("heart_bg", 2);
heart = heart_bg.createEmptyMovieClip("body", 1);
bg.attachBitmap(body_bg, 1);
heart.attachBitmap(body_heart, 1);
heart_bg._x = bg._width / 2;
heart_bg._y = bg._height / 2;
heart._x = (-heart._width) / 2;
heart._y = (-heart._height) / 2;
makePuls();
}
function getField() {
return(mcRoot.lbf);
}
function destroy() {
mcRoot = null;
bg.removeMovieClip();
bg = null;
heart.mov.destroy();
heart.mov = null;
heart.removeMovieClip();
heart = null;
mov.destroy();
mov = null;
body_bg.dispose();
body_bg = null;
body_heart.dispose();
body_heart = null;
}
function moveToField() {
mcRoot.snd.startSound("FallenVisBonus");
mov.__set__endAct(GameClasses.GFunctions.create(this, function () {
this.mcRoot.snd.startSound("AddLife");
this.getField().add();
this._visible = false;
}));
var _local3 = getField().getX();
var _local2 = getField().getY();
var _local6 = new GameClasses.Spline(_x, _x + 50, _x - 100, _local3, _local3);
var _local5 = new GameClasses.Spline(_y, _y + 50, _y, _local2, _local2);
var _local4 = new GameClasses.Line(100, 100, 100, 100, 100, 0);
mov.newInitMove(this, TIME_MOVE, 0, _local6, _local5, _local4, _local4);
}
function makePuls() {
heart.mov = new GameClasses.FreeMove();
heart.mov.endAct = GameClasses.GFunctions.create(this, function () {
var _local2 = new GameClasses.Spline(100, this.max_scale, 100, this.min_scale, 100);
this.heart.mov.newInitMove(this.heart, this.T * this.proc_strike, this.T * (1 - this.proc_strike), null, null, _local2, _local2);
});
heart.mov.endAct();
}
function makeQuickPuls() {
heart.mov.stopMove();
T = T / 2;
delete heart.mov.endAct;
heart.mov.endAct = GameClasses.GFunctions.create(this, function () {
var _local2 = new GameClasses.Spline(100, this.max_scale, 100, this.min_scale, 100);
this.heart.mov.newInitMove(this.heart, this.T * this.proc_strike, this.T * (1 - this.proc_strike), null, null, _local2, _local2);
});
heart.mov.endAct();
}
function makeNormalPuls() {
heart.mov.stopMove();
T = T * 2;
delete heart.mov.endAct;
heart.mov.endAct = GameClasses.GFunctions.create(this, function () {
var _local2 = new GameClasses.Spline(100, this.max_scale, 100, this.min_scale, 100);
this.heart.mov.newInitMove(this.heart, this.T * this.proc_strike, this.T * (1 - this.proc_strike), null, null, _local2, _local2);
});
heart.mov.endAct();
}
function stopPuls() {
heart.mov.endAct = null;
}
var type = "life";
var TIME_MOVE = 2500;
var T = 1500;
var max_scale = 112;
var min_scale = 106;
var proc_strike = 0.35;
}
Symbol 160 MovieClip [Artefact] Frame 1
#initclip 94
Object.registerClass("Artefact", GameClasses.Artefact);
#endinitclip
Symbol 161 MovieClip [MCwithBlik] Frame 1
#initclip 71
Object.registerClass("MCwithBlik", GameClasses.MCwithBlik);
#endinitclip
Symbol 162 MovieClip [MyText] Frame 1
#initclip 72
Object.registerClass("MyText", GameClasses.MyText);
#endinitclip
Symbol 163 MovieClip [PrepareLevel] Frame 1
#initclip 73
Object.registerClass("PrepareLevel", GameClasses.PrepareLevel);
#endinitclip
Symbol 164 MovieClip [MCfromBMP] Frame 1
#initclip 74
Object.registerClass("MCfromBMP", GameClasses.MCfromBMP);
#endinitclip
Symbol 224 MovieClip [MapLevel] Frame 1
#initclip 75
Object.registerClass("MapLevel", GameClasses.MapLevel);
#endinitclip
Symbol 225 MovieClip [Flag] Frame 1
#initclip 76
Object.registerClass("Flag", GameClasses.Flag);
#endinitclip
Symbol 362 MovieClip [QuestLevel] Frame 1
#initclip 77
Object.registerClass("QuestLevel", GameClasses.QuestLevel);
#endinitclip
Symbol 363 MovieClip [Region] Frame 1
#initclip 78
Object.registerClass("Region", GameClasses.Region);
#endinitclip
Symbol 1254 MovieClip [ISpyLevel] Frame 1
#initclip 79
Object.registerClass("ISpyLevel", GameClasses.ISpyLevel);
#endinitclip
Symbol 1255 MovieClip [PieceOfCompoundArtefact] Frame 1
#initclip 80
Object.registerClass("PieceOfCompoundArtefact", GameClasses.PieceOfCompoundArtefact);
#endinitclip
Symbol 1262 MovieClip [CellClass] Frame 1
#initclip 81
Object.registerClass("CellClass", GameClasses.CellClass);
#endinitclip
Symbol 1263 MovieClip [BigArtefact] Frame 1
#initclip 82
Object.registerClass("BigArtefact", GameClasses.BigArtefact);
#endinitclip
Symbol 1269 MovieClip [Match3Level] Frame 1
#initclip 83
Object.registerClass("Match3Level", GameClasses.Match3Level);
#endinitclip
Symbol 1383 MovieClip [Chip] Frame 1
#initclip 84
Object.registerClass("Chip", GameClasses.Chip);
#endinitclip
Symbol 1384 MovieClip [TheField] Frame 1
#initclip 85
Object.registerClass("TheField", GameClasses.TheField);
#endinitclip
Symbol 1385 MovieClip [FieldCell] Frame 1
#initclip 86
Object.registerClass("FieldCell", GameClasses.FieldCell);
#endinitclip
Symbol 1395 MovieClip [MyTime] Frame 1
#initclip 87
Object.registerClass("MyTime", GameClasses.MyTime);
#endinitclip
Symbol 1397 MovieClip [Lock] Frame 1
#initclip 88
Object.registerClass("Lock", GameClasses.Lock);
#endinitclip
Symbol 1400 MovieClip [Bomb] Frame 1
#initclip 89
Object.registerClass("Bomb", GameClasses.Bomb);
#endinitclip
Symbol 1401 MovieClip [ZeusLightning] Frame 1
#initclip 90
Object.registerClass("ZeusLightning", GameClasses.ZeusLightning);
#endinitclip
Symbol 1414 MovieClip [TimeBonus] Frame 1
#initclip 91
Object.registerClass("TimeBonus", GameClasses.TimeBonus);
#endinitclip
Symbol 1445 MovieClip [SwapBonus] Frame 1
#initclip 92
Object.registerClass("SwapBonus", GameClasses.SwapBonus);
#endinitclip
Symbol 1509 MovieClip [LifeBonus] Frame 1
#initclip 93
Object.registerClass("LifeBonus", GameClasses.LifeBonus);
#endinitclip
Symbol 1608 MovieClip [Sounds Symbol] Frame 1
stop();