Frame 1
stageWidth = 700;
stageHeight = 430;
_global.preloadBarWidth = stageWidth * 0.25;
_global.preloadBarHeight = stageHeight * 0.025;
var thisOS = System.capabilities.os;
if (thisOS.indexOf("Mac") >= 0) {
thisOS = "mac";
} else {
thisOS = "win";
}
objVersion = new Object();
objVersion.major = 1;
objVersion.minor = 0;
objVersion.build = 0;
mdm.Flash.allowScale(true, false);
Frame 3
if (mcLoader == undefined) {
MovieClip.prototype.createBackground = function (x, y, w, h) {
with (this) {
beginFill(13421772);
lineStyle(1, 0, 100);
moveTo(0, 0);
lineTo(0, h);
lineTo(w, h);
lineTo(w, 0);
lineTo(0, 0);
endFill();
}
this.x = x;
this.y = y;
this.w = w;
this.h = h;
this._x = x;
this._y = y;
mcLoader.createEmptyMovieClip("mcFiller", this.getNextHighestDepth());
mcLoader.mcFiller.createTextField("txt", this.getNextHighestDepth(), 0, -3, w, h * 2);
var fmt = new TextFormat();
fmt.font = "Arial";
fmt.align = "center";
fmt.size = this.h;
mcLoader.mcFiller.txt.setNewTextFormat(fmt);
};
MovieClip.prototype.filler = function (thisWidth, thisText) {
fw = this.w;
fh = this.h;
with (this.mcFiller) {
barW = fw * (thisWidth * 0.01);
beginFill(16776960);
moveTo(1, 1);
lineTo(1, fh);
lineTo(barW, fh);
lineTo(barW, 1);
lineTo(1, 1);
endFill();
if (thisText != undefined) {
txt.text = thisText;
}
}
};
MovieClip.prototype.kill = function () {
this.removeMovieClip();
};
createEmptyMovieClip("mcLoader", this.getNextHighestDepth());
var w = preloadBarWidth;
var h = preloadBarHeight;
var x = ((stageWidth / 2) - (w / 2));
var y = ((stageHeight / 2) - (h / 2));
mcLoader.createBackground(x, y, w, h);
}
percLoaded = Math.round((getBytesLoaded() / getBytesTotal()) * 100);
if (percLoaded < 100) {
mcLoader.filler(percLoaded, percLoaded + "%");
gotoAndPlay ("loadLoop");
} else {
mcLoader.kill();
gotoAndPlay ("loadDone");
}
Frame 5
function randomizeAnArray(thisArray) {
thisArray.sort(function () {
return(random(3) - 1);
});
return(thisArray);
}
function localToLocal(from, to) {
var _local1 = {x:0, y:0};
from.localToGlobal(_local1);
to.globalToLocal(_local1);
return(_local1);
}
function getStyleSheet() {
temp = aryGlobal.textStyleSheet;
var _local2 = new TextField.StyleSheet();
_local2.load(temp);
_local2.onLoad = function (ok) {
if (ok) {
return(this.getStyleNames());
}
return(null);
};
}
function wedge(x, y, startAngle, arc, radius, fillColor, strokeColor) {
thisDepth = thisRoot.nextDepth();
_root.createEmptyMovieClip("drawing_layer" + thisDepth, thisDepth);
with (eval ("drawing_layer" + thisDepth)) {
clear();
lineStyle(1, "0x" + strokeColor);
beginFill("0x" + fillColor, 100);
drawWedge(x, y, startAngle, arc, radius, radius);
endFill();
attachAllEvents("wedge");
}
}
function getRandom(l, h) {
return(Math.round((Math.random() * (h - l)) + l));
}
function buildRandomArray(thisMany, lowestValue) {
lowestValue = ((lowestValue == undefined) ? 0 : (lowestValue));
var _local2 = [];
var _local1 = 0;
while (_local1 < thisMany) {
_local2[_local1] = _local1 + lowestValue;
_local1++;
}
_local2.sort(function () {
return(random(3) - 1);
});
return(_local2);
}
TextFormat.prototype.inheritFrom = function (thisFormat) {
for (each in thisFormat) {
if (thisFormat[each] != null) {
this[each] = thisFormat[each];
}
}
};
MovieClip.prototype.attachEvent = function (eventName, myFunction) {
this[eventName] = function () {
myFunction(eventName, this);
};
};
MovieClip.prototype.removeEvent = function (eventName) {
delete this[eventName];
};
MovieClip.prototype.removeAllEvents = function () {
for (property in this) {
if (property.toString().indexOf("on") == 0) {
this.removeEvent(property);
}
}
};
MovieClip.prototype.drawFlatRectangle = function (fillColor, left, top, wide, high) {
this.lineStyle(1, 16711935, 0);
this.beginFill("0x" + fillColor, 100);
var _local3 = left + wide;
var _local2 = top + high;
this.moveTo(left, top);
this.lineTo(left, _local2);
this.lineTo(_local3, _local2);
this.lineTo(_local3, top);
this.lineTo(left, top);
this.endFill();
};
MovieClip.prototype.drawRectangleFrame = function (lineWeight, lineColor, x, y, wide, high) {
this.lineStyle(lineWeight, "0x" + lineColor, 100);
var _local3 = x + wide;
var _local2 = y + high;
this.moveTo(x, y);
this.lineTo(_local3, y);
this.lineTo(_local3, _local2);
this.lineTo(x, _local2);
this.lineTo(x, y);
this.endFill();
};
MovieClip.prototype.dashLine = function (startPoint, destPoint, dashLength, spaceLength) {
var _local13 = destPoint.x - startPoint.x;
var _local11 = destPoint.y - startPoint.y;
var _local3 = Math.sqrt((_local13 * _local13) + (_local11 * _local11));
var _local12 = _local3 / (dashLength + spaceLength);
var _local14 = dashLength / (dashLength + spaceLength);
var _local7 = (_local13 / _local12) * _local14;
var _local9 = (_local13 / _local12) - _local7;
var _local6 = (_local11 / _local12) * _local14;
var _local8 = (_local11 / _local12) - _local6;
this.moveTo(startPoint.x, startPoint.y);
while (_local3 > 0) {
startPoint.x = startPoint.x + _local7;
startPoint.y = startPoint.y + _local6;
_local3 = _local3 - dashLength;
if (_local3 < 0) {
startPoint.x = destPoint.x;
startPoint.y = destPoint.y;
}
this.lineTo(startPoint.x, startPoint.y);
startPoint.x = startPoint.x + _local9;
startPoint.y = startPoint.y + _local8;
this.moveTo(startPoint.x, startPoint.y);
_local3 = _local3 - spaceLength;
}
this.moveTo(destPoint.x, destPoint.y);
};
MovieClip.prototype.attachAllEvents = function (eventBaseName, addRO) {
eventArray = ["RollOver", "RollOut", "Press", "Release", "Data", "DragOut", "DragOver", "EnterFrame", "Load", "Unload"];
if (addRO) {
eventArray.push("ReleaseOutside");
}
for (each in eventArray) {
if (eval (eventBaseName + eventArray[each])) {
this.attachEvent("on" + eventArray[each], eval (eventBaseName + eventArray[each]));
if ((eventArray[each] == "Release") && (!addRO)) {
this.attachEvent("onReleaseOutside", eval (eventBaseName + eventArray[each]));
}
}
}
};
MovieClip.prototype.showAllEvents = function () {
for (property in this) {
trace(" " + property);
}
};
MovieClip.prototype.drawWedge = function (x, y, startAngle, arc, radius, yRadius) {
if (arguments.length < 5) {
return(undefined);
}
this.moveTo(x, y);
if (yRadius == undefined) {
yRadius = radius;
}
var _local20;
var _local3;
var _local4;
var _local6;
var _local15;
var _local19;
var _local18;
var _local14;
var _local12;
var _local13;
var _local11;
if (Math.abs(arc) > 360) {
arc = 360;
}
_local15 = Math.ceil(Math.abs(arc) / 45);
_local20 = arc / _local15;
_local3 = (-(_local20 / 180)) * Math.PI;
_local4 = (-(startAngle / 180)) * Math.PI;
if (_local15 > 0) {
_local19 = x + (Math.cos((startAngle / 180) * Math.PI) * radius);
_local18 = y + (Math.sin(((-startAngle) / 180) * Math.PI) * yRadius);
this.lineTo(_local19, _local18);
var _local5 = 0;
while (_local5 < _local15) {
_local4 = _local4 + _local3;
_local6 = _local4 - (_local3 / 2);
_local14 = x + (Math.cos(_local4) * radius);
_local12 = y + (Math.sin(_local4) * yRadius);
_local13 = x + (Math.cos(_local6) * (radius / Math.cos(_local3 / 2)));
_local11 = y + (Math.sin(_local6) * (yRadius / Math.cos(_local3 / 2)));
this.curveTo(_local13, _local11, _local14, _local12);
_local5++;
}
this.lineTo(x, y);
}
};
Array.prototype.addUnique = function (thisValue, thisLabel) {
if (thisValue != null) {
if (this.join().indexOf(thisValue) == -1) {
return(this.push(thisValue));
}
stopThis = false;
for (each in this) {
if (thisLabel == undefined) {
var _local2 = this[each];
if (thisValue === _local2) {
return(this);
}
} else {
var _local2 = this[each][thisLabel];
if (thisValue[thisLabel] === _local2) {
return(this);
}
}
}
if (stopThis == false) {
return(this.push(thisValue));
}
} else {
return(this);
}
};
String.prototype.replace = function (lookFor, replaceWith) {
returnString = this;
if (escape(returnString).indexOf(escape(lookFor)) >= 0) {
escLookFor = escape(lookFor);
tempString = new String(escape(returnString));
q = 0;
while ((tempString.indexOf(escLookFor) >= 0) && (q < 100)) {
a = tempString.substring(0, tempString.indexOf(escLookFor));
b = tempString.substring(tempString.indexOf(escLookFor) + escLookFor.length);
tempString = (a + replaceWith) + b;
q++;
}
returnString = unescape(tempString);
returnString = returnString;
}
return(returnString);
};
String.prototype.isLowerCase = function () {
return(this == this.toLowerCase());
};
String.prototype.isUpperCase = function () {
return(this == this.toUpperCase());
};
MovieClip.prototype.nextDepth = function () {
if (this.getNextHighestDepth() != undefined) {
returnDepth = this.getNextHighestDepth();
} else {
if (this.startDepth == undefined) {
this.startDepth = 1;
}
returnDepth = this.startDepth++;
}
return(returnDepth);
};
MovieClip.prototype.getType = function (testThis) {
return(typeof(testThis));
};
Frame 7
function buildPath(thisMc, thisDirection, isBaseMc) {
if (isBaseMc == undefined) {
thisMc = thisMc.mcCube;
}
var _local2 = 25;
var _local1 = 8;
if (thisMc.mcHolder.mcPath == undefined) {
thisMc.mcHolder.createEmptyMovieClip("mcPath", 1);
}
var _local3 = thisMc.mcHolder.mcPath.createEmptyMovieClip("mc" + thisDirection, thisDirection);
switch (thisDirection) {
case 1 :
_local3.drawFlatRectangle("000000", -(_local1 / 2), -_local2, _local1, _local2 + (_local1 / 2));
break;
case 2 :
_local3.drawFlatRectangle("000000", -(_local1 / 2), -(_local1 / 2), _local2 + (_local1 / 2), _local1);
break;
case 3 :
_local3.drawFlatRectangle("000000", -(_local1 / 2), -(_local1 / 2), _local1, _local2 + (_local1 / 2));
break;
case 4 :
_local3.drawFlatRectangle("000000", -_local2, -(_local1 / 2), _local2 + (_local1 / 2), _local1);
}
}
function buildBulb(thisMc, thisState) {
thisMc.mcHolder.mcBulb.removeMovieClip();
thisMc.mcHolder.createEmptyMovieClip("mcBulb", 5);
var _local1 = thisMc.mcHolder.mcBulb;
drawBulb(_local1, 0, 0, 15, thisState);
}
function drawBulb(mc, x, y, r, thisState) {
mc.clear();
var _local5 = new flash.geom.Matrix();
_local5.createGradientBox(r * 2, r * 2, 0, x - r, y - r);
if (thisState == "on") {
mc.lineStyle(2, 16750848, 80);
mc.beginGradientFill("radial", [16776960, 16777215], [100, 10], [0, 255], _local5, "pad", "RGB", 0);
} else {
mc.lineStyle(1, 0, 5);
mc.beginGradientFill("radial", [0, 16777215], [100, 50], [0, 255], _local5, "pad", "RGB", 0);
}
mc.moveTo(x + r, y);
mc.curveTo(r + x, (0.414213562373095 * r) + y, (0.707106781186547 * r) + x, (0.707106781186547 * r) + y);
mc.curveTo((0.414213562373095 * r) + x, r + y, x, r + y);
mc.curveTo((-0.414213562373095 * r) + x, r + y, (-0.707106781186547 * r) + x, (0.707106781186547 * r) + y);
mc.curveTo((-r) + x, (0.414213562373095 * r) + y, (-r) + x, y);
mc.curveTo((-r) + x, (-0.414213562373095 * r) + y, (-0.707106781186547 * r) + x, (-0.707106781186547 * r) + y);
mc.curveTo((-0.414213562373095 * r) + x, (-r) + y, x, (-r) + y);
mc.curveTo((0.414213562373095 * r) + x, (-r) + y, (0.707106781186547 * r) + x, (-0.707106781186547 * r) + y);
mc.curveTo(r + x, (-0.414213562373095 * r) + y, r + x, y);
mc.endFill();
}
function buildWall(thisMc, thisDirection, thisState, isBaseMc) {
if (isBaseMc == undefined) {
thisMc = thisMc.mcCube;
}
if (thisState != "helper") {
var _local1 = 25;
var _local2 = 8;
if (thisMc.mcHolder.mcWall == undefined) {
thisMc.mcHolder.createEmptyMovieClip("mcWall", 2);
}
var _local3 = thisMc.mcHolder.mcWall.createEmptyMovieClip("mc" + thisDirection, thisDirection);
} else {
var _local1 = 25;
var _local2 = 6;
if (thisMc.mcHelper == undefined) {
thisMc.createEmptyMovieClip("mcHelper", 10);
}
var _local3 = thisMc.mcHelper.createEmptyMovieClip("mc" + thisDirection, thisDirection);
}
switch (thisDirection) {
case 1 :
if (thisState == "closed") {
_local3.drawFlatRectangle("000000", -_local1, -_local1, _local1 * 2, _local2);
} else if (thisState == "helper") {
_local3.drawFlatRectangle("ff0000", -_local1, -_local1, _local1 * 2, _local2);
} else {
_local3.drawFlatRectangle("000000", -_local1, -_local1, _local1 - (_local2 / 2), _local2);
_local3.drawFlatRectangle("000000", _local2 / 2, -_local1, _local1 - (_local2 / 2), _local2);
}
break;
case 2 :
if (thisState == "closed") {
_local3.drawFlatRectangle("000000", _local1 - _local2, -_local1, _local2, _local1 * 2);
} else if (thisState == "helper") {
_local3.drawFlatRectangle("ff0000", _local1 - _local2, -_local1, _local2, _local1 * 2);
} else {
_local3.drawFlatRectangle("000000", _local1 - _local2, -_local1, _local2, _local1 - (_local2 / 2));
_local3.drawFlatRectangle("000000", _local1 - _local2, _local2 / 2, _local2, _local1 - (_local2 / 2));
}
break;
case 3 :
if (thisState == "closed") {
_local3.drawFlatRectangle("000000", -_local1, _local1 - _local2, _local1 * 2, _local2);
} else if (thisState == "helper") {
_local3.drawFlatRectangle("ff0000", -_local1, _local1 - _local2, _local1 * 2, _local2);
} else {
_local3.drawFlatRectangle("000000", -_local1, _local1 - _local2, _local1 - (_local2 / 2), _local2);
_local3.drawFlatRectangle("000000", _local2 / 2, _local1 - _local2, _local1 - (_local2 / 2), _local2);
}
break;
case 4 :
if (thisState == "closed") {
_local3.drawFlatRectangle("000000", -_local1, -_local1, _local2, _local1 * 2);
} else if (thisState == "helper") {
_local3.drawFlatRectangle("ff0000", -_local1, -_local1, _local2, _local1 * 2);
} else {
_local3.drawFlatRectangle("000000", -_local1, -_local1, _local2, _local1 - (_local2 / 2));
_local3.drawFlatRectangle("000000", -_local1, _local2 / 2, _local2, _local1 - (_local2 / 2));
}
}
}
Frame 9
function getPuzzleSize() {
gameRecord.moves = 0;
mcTitleScreen.mcHelpAnimation.gotoAndPlay("hide");
mcTitleScreen.txtName._y = -40;
_root.mcPuzzle.removeMovieClip();
mcScore.mc.mcDialog.mcBtnScoreOK.txt.text = "ok";
mcScore.mc.mcDialog.mcBtnScoreOK.attachAllEvents("score");
mcScore.mc.mcDialog.mcBtnScoreSubmit.txt.text = "submit";
mcScore.mc.mcDialog.mcBtnScoreSubmit.attachAllEvents("score");
mcPuzzleSize.gotoAndPlay("open");
}
function pausePlayhead(thisFunction) {
clearInterval(intvPausePlayhead);
thisFunction.call();
updateAfterEvent();
}
function getScale() {
var _local3 = Math.floor(((mcPuzzleArea._width / numColCount) / _root.mcCube.mcHotSpot._width) * 10) * 10;
var _local2 = Math.floor(((mcPuzzleArea._height / numRowCount) / _root.mcCube.mcHotSpot._height) * 10) * 10;
numCubeScale = Math.min(Math.min(_local3, _local2), 100);
numCubeScale = ((numCubeScale == 60) ? 58 : (((numCubeScale == 40) ? 42 : (((numCubeScale == 90) ? 87 : (numCubeScale))))));
}
function displayPuzzle() {
aryHelperWalls = [];
numBulbCount = 0;
var _local9 = 1;
var _local13;
_root.createEmptyMovieClip("mcPuzzle", objDepths.puzzle);
var _local4 = 0;
while (_local4 < numRowCount) {
var _local3 = 0;
while (_local3 < numColCount) {
var _local2 = _root.mcPuzzle.createEmptyMovieClip((("mc_r" + _local4) + "c") + _local3, _local9);
_local2.attachMovie("mcCube", "mcCube", 1);
_local2._xscale = (_local2._yscale = numCubeScale);
_local2._x = (_local2.mcCube.mcHotSpot._width * (numCubeScale * 0.01)) * _local3;
_local2._y = (_local2.mcCube.mcHotSpot._height * (numCubeScale * 0.01)) * _local4;
setConnectedCube(_local2.mcCube, false);
_local2.mcCube.arrayName = (("r" + _local4) + "c") + _local3;
_local2.mcCube.adjustedDirs = new Array();
var _local6 = 0;
while (_local6 < 3) {
var _local7 = aryNetwork[(("r" + _local4) + "c") + _local3].directions[_local6];
if (_local7 != undefined) {
if (_local7 != "bulb") {
_local2.mcCube.adjustedDirs.push(_local7);
}
}
_local6++;
}
if (((("r" + _local4) + "c") + _local3) != strCenter) {
var _local12 = "";
var _local8 = aryNetwork[(("r" + _local4) + "c") + _local3].directions.toString();
if ((_local3 < (numColCount - 1)) && (_local8.indexOf("2") == -1)) {
if ((_local3 == (Math.floor(numColCount / 2) - 1)) && (_local4 == (Math.ceil(numRowCount / 2) - 1))) {
} else {
aryHelperWalls.push({strCubeName:(("r" + _local4) + "c") + _local3, dir:2});
}
}
if ((_local4 < (numRowCount - 1)) && (_local8.indexOf("3") == -1)) {
if ((_local3 == (Math.ceil(numColCount / 2) - 1)) && (_local4 == (Math.floor(numRowCount / 2) - 1))) {
} else {
aryHelperWalls.push({strCubeName:(("r" + _local4) + "c") + _local3, dir:3});
}
}
}
if (aryNetwork[(("r" + _local4) + "c") + _local3].directions[0] == "bulb") {
numBulbCount++;
buildBulb(_local2.mcCube, "off");
buildPath(_local2, aryNetwork[(("r" + _local4) + "c") + _local3].directions[1]);
_local2.mcCube.mcArrow.mcHotSpotCCW.attachAllEvents("bulb", true);
_local2.mcCube.mcArrow.mcHotSpotCW.attachAllEvents("bulb", true);
} else if (((("r" + _local4) + "c") + _local3) != strCenter) {
buildPath(_local2, aryNetwork[(("r" + _local4) + "c") + _local3].directions[0]);
buildPath(_local2, aryNetwork[(("r" + _local4) + "c") + _local3].directions[1]);
buildPath(_local2, aryNetwork[(("r" + _local4) + "c") + _local3].directions[2]);
_local2.mcCube.mcArrow.mcHotSpotCCW.attachAllEvents("path", true);
_local2.mcCube.mcArrow.mcHotSpotCW.attachAllEvents("path", true);
} else {
delete _local2.mcCube.onEnterFrame;
strAry = aryNetwork[(("r" + _local4) + "c") + _local3].directions.toString();
var _local5 = 0;
while (_local5 < 4) {
if (strAry.indexOf(_local5 + 1) >= 0) {
buildWall(_local2, _local5 + 1, "open");
} else {
buildWall(_local2, _local5 + 1, "closed");
}
_local5++;
}
_local2.mcCube.mcHolder.mcWall._alpha = 100;
_local2.mcCube.mcArrow.mcHotSpotCCW.attachAllEvents("center", true);
_local2.mcCube.mcArrow.mcHotSpotCW.attachAllEvents("center", true);
setCubeColor(_local2.mcCube.mcHolder.mcWall, 16777215);
}
_local9++;
_local3++;
}
_local4++;
}
gameRecord.helperWallsAvailable = aryHelperWalls.length;
aryHelperWalls = randomizeAnArray(aryHelperWalls);
_local13 = _local2._width;
mcPuzzle._x = ((mcPuzzleArea._x + (_local13 / 2)) + (mcPuzzleArea._width / 2)) - (mcPuzzle._width / 2);
mcPuzzle._y = ((mcPuzzleArea._y + (_local13 / 2)) + (mcPuzzleArea._height / 2)) - (mcPuzzle._height / 2);
mixUpPuzzle();
if (outPutPuzzles == true) {
outputScript();
}
}
function waitForDone() {
if (numMixCounter == 0) {
clearInterval(intvWaitForDone);
numCubesRotated = 0;
var _local3 = 0;
while (_local3 < numRowCount) {
var _local1 = 0;
while (_local1 < numColCount) {
if (mcPuzzle[(("mc_r" + _local3) + "c") + _local1].mcCube.mcHolder._rotation != 0) {
var _local2 = ((aryNetwork[(("r" + _local3) + "c") + _local1].directions.toString() + ",") + Math.abs(mcPuzzle[(("mc_r" + _local3) + "c") + _local1].mcCube.mcHolder._rotation)).split(",");
if (((_local2[0] != "bulb") && (_local2[2] == 180)) && (((Number(_local2[0]) + Number(_local2[1])) % 2) == 0)) {
numCubesRotated--;
}
numCubesRotated++;
}
_local1++;
}
_local3++;
}
startTheGame();
checkConnected(strCenter);
}
updateAfterEvent();
}
function mixUpPuzzle() {
numMixCounter = numCubeTotal;
clearInterval(intvWaitForDone);
intvWaitForDone = setInterval(waitForDone, 21);
var _local3 = 0;
while (_local3 < numRowCount) {
var _local1 = 0;
while (_local1 < numColCount) {
var _local2 = ((Math.random() > 0.5) ? "cw" : "ccw");
rotateCubeTimer(mcPuzzle[(("mc_r" + _local3) + "c") + _local1].mcCube, getTimer(), _local2, true);
_local1++;
}
_local3++;
}
mcTitleScreen._visible = false;
setTimer("start");
}
function chooseDirection(thisArray) {
return(Number(getRandomFrom(thisArray)));
}
function getAvailableDirections(fromCube) {
var _local4 = new Array();
var _local1 = 1;
while (_local1 < 5) {
var _local2 = getTargetCube(fromCube, _local1);
var _local3 = aryNetwork[_local2].directions[0];
if ((_local2 != "NA") && (_local3 == 0)) {
_local4.push(_local1);
}
_local1++;
}
return(_local4);
}
function getTargetCube(fromCube, thisDir) {
var _local1 = "";
var _local2 = Number(fromCube.substring(fromCube.indexOf("r") + 1, fromCube.indexOf("c")));
var _local3 = Number(fromCube.substring(fromCube.indexOf("c") + 1));
switch (thisDir) {
case 1 :
_local1 = (("r" + (((_local2 - 1) < 0) ? "NA" : (_local2 - 1))) + "c") + _local3;
break;
case 2 :
_local1 = (("r" + _local2) + "c") + (((_local3 + 1) >= numColCount) ? "NA" : (_local3 + 1));
break;
case 3 :
_local1 = (("r" + (((_local2 + 1) >= numRowCount) ? "NA" : (_local2 + 1))) + "c") + _local3;
break;
case 4 :
_local1 = (("r" + _local2) + "c") + (((_local3 - 1) < 0) ? "NA" : (_local3 - 1));
}
_local1 = ((_local1.indexOf("NA") >= 0) ? "NA" : (_local1));
return(_local1);
}
function getFromDir(fromCubeDir) {
var _local1 = 0;
switch (fromCubeDir) {
case 1 :
_local1 = 3;
break;
case 2 :
_local1 = 4;
break;
case 3 :
_local1 = 1;
break;
case 4 :
_local1 = 2;
}
return(_local1);
}
function getRandom(l, h) {
return(Math.round((Math.random() * (h - l)) + l));
}
function getRandomFrom(thisSet) {
return(thisSet[getRandom(0, thisSet.length - 1)]);
}
function getRandomUnique(thisMany, ary) {
var _local5 = new Array();
var _local4 = 0;
while (_local4 < thisMany) {
var _local3 = Math.floor(Math.random() * ary.length);
_local5.push(ary[_local3]);
delete ary[_local3];
var _local2 = new Array();
for (each in ary) {
if (typeof(ary[each]) != "function") {
_local2.push(ary[each]);
}
}
ary = _local2;
_local4++;
}
_local5.sort(Array.NUMERIC);
return(_local5);
}
function alert(thisMessage, thisFunction) {
mcAlert.txt.text = thisMessage;
mcAlert.gotoAndPlay("open");
if (gameRecord.gameState == "playing") {
pausedByAlert = true;
setTimer("pause");
gameRecord.gameState = "paused";
}
if (thisFunction != undefined) {
mcAlert.mcBtnOK.onPress = thisFunction;
}
}
function setCubeColor(thisMc, thisColor) {
thisMc._parent.filters = [pathShadow];
var _local3 = new flash.geom.ColorTransform();
_local3.rgb = thisColor;
var _local4 = new flash.geom.Transform(thisMc);
_local4.colorTransform = _local3;
if (thisColor == 0) {
var _local2 = thisMc._parent.filters[0];
_local2.alpha = 0;
thisMc._parent.filters = new Array(_local2);
thisMc._parent._parent.mcBackground.gotoAndPlay("idleUnlitGoal");
} else if (thisColor == 16777215) {
var _local2 = thisMc._parent.filters[0];
_local2.alpha = 0.15;
thisMc._parent.filters = new Array(_local2);
thisMc._parent._parent.mcBackground.gotoAndPlay("idleLitGoal");
} else {
var _local2 = thisMc._parent.filters[0];
_local2.alpha = 0;
thisMc._parent.filters = new Array(_local2);
}
}
function outputScript() {
trace("aryNetwork = new Array();");
for (var _local3 in aryNetwork) {
if (typeof(aryNetwork[_local3]) != "function") {
var _local2 = "";
var _local1 = 0;
while (_local1 < aryNetwork[_local3].ajoining.length) {
_local2 = _local2 + (((("{dir:" + aryNetwork[_local3].ajoining[_local1].dir.toString()) + ",cube:\"") + aryNetwork[_local3].ajoining[_local1].cube.toString()) + "\"}");
if (_local1 < (aryNetwork[_local3].ajoining.length - 1)) {
_local2 = _local2 + ",";
}
_local1++;
}
trace(((((((("aryNetwork[\"" + _local3) + "\"] = {directions:[") + aryNetwork[_local3].directions.toString()) + "],ajoining:[") + _local2) + "],dop:[") + aryNetwork[_local3].dop.toString()) + "]};");
}
}
trace(((((((("aryGames.push({size: [{width:" + numColCount) + ", height:") + numRowCount) + "}], numDoors: ") + numDoors) + ", strCenter:\"") + strCenter) + "\", puzzle:[aryNetwork]});");
}
function rotateCubeTimer(thisMc, startTime, dir, doMix) {
thisMc.rotating = true;
if (doMix == true) {
var _local3 = Math.random();
if (_local3 < 0.25) {
thisMc.mcHolder._rotation = 90;
} else if (_local3 < 0.5) {
thisMc.mcHolder._rotation = -90;
} else if (_local3 < 0.75) {
thisMc.mcHolder._rotation = 180;
} else {
thisMc.mcHolder._rotation = -180;
}
}
thisMc.adjustedDirs = new Array();
startRotation = thisMc.mcHolder._rotation;
rotationPerMS = 90 / (numRotationSeconds * 1000);
if (dir == "ccw") {
rotationGoal = (((startRotation - 90) == -270) ? 90 : (startRotation - 90));
var _local2 = 0;
while (_local2 < 4) {
if (aryNetwork[thisMc.arrayName].directions[_local2] == undefined) {
break;
}
var _local3 = aryNetwork[thisMc.arrayName].directions[_local2];
if (_local3 != "bulb") {
var _local4 = adjustDirections(_local3, rotationGoal);
thisMc.adjustedDirs.push(_local4);
}
_local2++;
}
if (doMix == true) {
checkLarge(thisMc, rotationGoal);
}
} else {
rotationGoal = (((startRotation + 90) == 270) ? -90 : (startRotation + 90));
var _local2 = 0;
while (_local2 < 4) {
if (aryNetwork[thisMc.arrayName].directions[_local2] == undefined) {
break;
}
var _local3 = aryNetwork[thisMc.arrayName].directions[_local2];
if (_local3 != "bulb") {
var _local4 = adjustDirections(_local3, rotationGoal);
thisMc.adjustedDirs.push(_local4);
}
_local2++;
}
if (doMix == true) {
checkLarge(thisMc, rotationGoal, "-");
}
}
clearInterval(thisMc.intv);
thisMc.intv = setInterval(rotationInterval, 1, thisMc, rotationPerMS, startTime, rotationGoal, dir, startRotation, false, doMix);
}
function rotationInterval(thisMc, rotationPerMS, startTime, goalRotation, dir, startRotation, bolSolvePressed, doMix, thisDuration) {
thisDuration = ((thisDuration == undefined) ? (numRotationSeconds) : (thisDuration));
if (dir == "ccw") {
if ((goalRotation == -180) || (goalRotation == 0)) {
thisDegree = -((-startRotation) + ((getTimer() - startTime) * rotationPerMS));
} else {
thisDegree = -(startRotation + ((getTimer() - startTime) * rotationPerMS));
}
} else {
thisDegree = startRotation + ((getTimer() - startTime) * rotationPerMS);
}
thisMc.mcHolder._rotation = thisDegree;
thisMc.timeStamp = getTimer() - startTime;
if (thisMc.timeStamp >= (thisDuration * 1000)) {
thisMc.mcHolder._rotation = goalRotation;
clearInterval(thisMc.intv);
if (doMix != true) {
if (bolSolvePressed == false) {
clearInterval(intvDelayPlayback);
intvDelayPlayback = setInterval(delayPlayback, 125, checkConnected, thisMc.arrayName);
}
} else {
numMixCounter--;
}
thisMc.rotating = false;
}
}
function checkLarge(thisMc, thisGoal, dir) {
if ((numColCount * numRowCount) > 150) {
if (Math.abs(thisGoal) != 180) {
if (thisGoal >= 0) {
thisMc.mcHolder._rotation = thisGoal + 45;
} else {
thisMc.mcHolder._rotation = thisGoal - 45;
}
} else {
thisMc.mcHolder._rotation = 90;
}
}
}
function lockCube(thisMc) {
if (thisMc.mcLock._alpha == 0) {
thisMc.mcLock._alpha = numLockAlpha;
thisMc.mcBackground.gotoAndPlay("locked");
} else {
thisMc.mcLock._alpha = 0;
}
}
function checkConnected(thisArrayName) {
var _local2 = false;
for (var _local4 in [1, 2, 3, 4]) {
if (getConnectedCube(mcPuzzle["mc_" + getTargetCube(thisArrayName, [1, 2, 3, 4][_local4])].mcCube) == true) {
_local2 = true;
break;
}
}
if ((_local2 == false) && (thisArrayName != strCenter)) {
setConnectedCube(mcPuzzle["mc_" + thisArrayName].mcCube, false);
} else {
aryPreviouslyConnected = new Array();
aryPreviouslyConnected = aryConnected;
aryConnected = new Array(strCenter);
aryDoneAlreadyChecked = new Array();
checkIfConnected(strCenter, 0);
aryPreviouslyConnected = removeSimular(aryPreviouslyConnected, aryConnected);
for (var _local4 in aryPreviouslyConnected) {
if (aryPreviouslyConnected[_local4] != strCenter) {
setConnectedCube(mcPuzzle["mc_" + aryPreviouslyConnected[_local4]].mcCube, false);
}
}
var _local1 = 0;
for (var _local4 in aryConnected) {
setConnectedCube(mcPuzzle["mc_" + aryConnected[_local4]].mcCube, true);
if (aryNetwork[aryConnected[_local4]].directions[0] == "bulb") {
_local1++;
}
}
if (_local1 == numBulbCount) {
setTimer("stop");
}
}
}
function removeSimular(newArray, compareArray) {
var _local2 = new Array();
var _local3 = compareArray.toString() + ",";
for (var _local4 in newArray) {
if (typeof(newArray[_local4]) != "function") {
if (_local3.indexOf(newArray[_local4] + ",") < 0) {
_local2.push(newArray[_local4]);
}
}
}
return(_local2);
}
function delayPlayback(thisFunction, thisArg) {
clearInterval(intvDelayPlayback);
thisFunction(thisArg);
}
function checkIfConnected(cubeName, omitDir) {
var _local7 = aryDoneAlreadyChecked.toString() + ",";
if (_local7.indexOf(((cubeName + "_") + omitDir) + ",") == -1) {
aryDoneAlreadyChecked.push((cubeName + "_") + omitDir);
for (var _local6 in mcPuzzle["mc_" + cubeName].mcCube.adjustedDirs) {
if (typeof(mcPuzzle["mc_" + cubeName].mcCube.adjustedDirs[_local6]) != "function") {
var _local1 = getTargetCube(cubeName, mcPuzzle["mc_" + cubeName].mcCube.adjustedDirs[_local6]);
for (var _local5 in mcPuzzle["mc_" + _local1].mcCube.adjustedDirs) {
if (typeof(mcPuzzle["mc_" + _local1].mcCube.adjustedDirs[_local5]) != "function") {
var _local2 = getFromDir(mcPuzzle["mc_" + _local1].mcCube.adjustedDirs[_local5]);
if (_local2 != omitDir) {
if (_local2 == mcPuzzle["mc_" + cubeName].mcCube.adjustedDirs[_local6]) {
aryConnected.addUnique(_local1);
checkIfConnected(_local1, mcPuzzle["mc_" + _local1].mcCube.adjustedDirs[_local5]);
}
}
}
}
}
}
}
}
function adjustDirections(thisStoredDir, thisGoal) {
var _local2;
switch (thisGoal) {
case 0 :
_local2 = thisStoredDir;
break;
case -90 :
_local2 = ((thisStoredDir == 1) ? 4 : (((thisStoredDir == 2) ? 1 : (((thisStoredDir == 3) ? 2 : 3)))));
break;
case 180 :
case -180 :
_local2 = ((thisStoredDir == 1) ? 3 : (((thisStoredDir == 2) ? 4 : (((thisStoredDir == 3) ? 1 : 2)))));
break;
case 90 :
_local2 = ((thisStoredDir == 1) ? 2 : (((thisStoredDir == 2) ? 3 : (((thisStoredDir == 3) ? 4 : 1)))));
break;
default :
trace(((("ERROR IN adjustDirections(" + thisStoredDir) + ", ") + thisGoal) + ") - NO MATCH");
}
return(_local2);
}
function getGameTime() {
var _local1 = "";
var _local4;
switch (gameRecord.gameState) {
case "playing" :
_local4 = (getTimer() - gameRecord.startTime) - gameRecord.totalPauseTime;
break;
case "paused" :
_local4 = (gameRecord.startPause - gameRecord.startTime) - gameRecord.totalPauseTime;
break;
case "stopped" :
_local4 = (gameRecord.endTime - gameRecord.startTime) - gameRecord.totalPauseTime;
}
var _local5 = new Date(0, 0, 0, 0, 0, 0, _local4);
var _local6 = _local5.getHours();
var _local3 = _local5.getMinutes();
var _local2 = _local5.getSeconds();
_local1 = ((((_local3 == 0) ? "00" : (((_local3 < 10) ? ("0" + _local3) : (_local3)))) + ":") + ((_local2 == 0) ? "00" : (((_local2 < 10) ? ("0" + _local2) : (_local2))))) + _local1;
if (_local6 > 0) {
_local1 = (_local6 + ":") + _local1;
}
return(_local1);
}
function setTimer(thisState) {
if (thisState == "start") {
gameRecord.startTime = getTimer();
gameRecord.totalPauseTime = 0;
} else if (thisState == "stop") {
gameRecord.endTime = getTimer();
endTheGame();
} else if (thisState == "pause") {
gameRecord.startPause = getTimer();
} else if (thisState == "resume") {
gameRecord.endPause = getTimer();
gameRecord.totalPauseTime = gameRecord.totalPauseTime + (gameRecord.endPause - gameRecord.startPause);
}
}
function watchTime() {
mcStatus.txtTime.text = "Time: " + getGameTime();
}
function startTheGame() {
gameRecord.totalPauseTime = 0;
gameRecord.startTime = 0;
gameRecord.moves = 0;
gameRecord.endTime = 0;
gameRecord.totalTme = 0;
gameRecord.score = 0;
gameRecord.helperWallsUsed = 0;
gameRecord.minMoves = numCubesRotated;
gameRecord.gameState = "playing";
mcStatus.txtMinMoves.text = "Minimum moves: " + gameRecord.minMoves;
mcStatus.txtMoves.text = "Turns taken: " + gameRecord.moves;
mcStatus.txtScore.text = "";
mcMenuHolder.mc.mcBtnPause.txt.text = "pause";
mcMenuHolder.mc.mcBtnPause.gotoAndPlay("idle");
mcMenuHolder.mc.mcBtnSolve.gotoAndPlay("idle");
mcMenuHolder.mc.mcBtnHelperWall.gotoAndPlay("idle");
mcTitleScreen._visible = false;
mcTitleScreen.txtMessage.text = "";
setTimer("start");
clearInterval(_root.intvWatchTime);
_root.intvWatchTime = setInterval(watchTime, 21);
recordAction("start");
}
function endTheGame() {
clearInterval(intvDelayPlayback);
mcScore.mc.mcDialog.mcPerfectScore.gotoAndPlay("hide");
mcMenuHolder.mc.mcBtnPause.gotoAndPlay("disabled");
mcMenuHolder.mc.mcBtnSolve.gotoAndPlay("disabled");
mcMenuHolder.mc.mcBtnHelperWall.gotoAndPlay("disabled");
gameRecord.gameState = "stopped";
gameRecord.totalTme = getGameTime();
gameRecord.efficiency = Math.floor((gameRecord.minMoves / gameRecord.moves) * 100);
gameRecord.score = Math.floor(((numColCount * numRowCount) * (gameRecord.minMoves / gameRecord.moves)) * 100);
if (strVersionType == "pay") {
mcScore.mc.mcDialog.txtScore.text = ((((("Score: " + gameRecord.score) + "\n\nEfficiency:") + gameRecord.efficiency) + "%\nTime: ") + gameRecord.totalTme) + "\n\nEnter your username and password to submit score online.";
mcStatus.txtScore.text = "Score: " + gameRecord.score;
getUserName();
} else {
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + currentPuzzleNumber].mcIcons._alpha = numIconAlpha;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + currentPuzzleNumber].mcFrame.gotoAndPlay("idleUnlit");
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + currentPuzzleNumber].beenPlayed = true;
mcScore.mc.mcDialog.txtScore.text = (((("Score: " + gameRecord.score) + "\n\nEfficiency:") + gameRecord.efficiency) + "%\nTime: ") + gameRecord.totalTme;
if (soUser.data.completed[currentPuzzleNumber].score == gameRecord.score) {
mcScore.mc.mcDialog.txtScore.text = mcScore.mc.mcDialog.txtScore.text + "\n\nYou tied your highest score.";
} else if (soUser.data.completed[currentPuzzleNumber].score < gameRecord.score) {
mcScore.mc.mcDialog.txtScore.text = mcScore.mc.mcDialog.txtScore.text + ("\n\nYou beat your highest score of " + soUser.data.completed[currentPuzzleNumber].score);
}
mcStatus.txtScore.text = "Score: " + gameRecord.score;
}
clearInterval(intvShowScore);
intvShowScore = setInterval(showScore, 750);
recordAction("solve");
}
function showScore() {
clearInterval(intvShowScore);
mcScore.gotoAndPlay("open");
}
function recordAction(thisAction) {
if (strVersionType == "free") {
_root.objRecord.lvSend = new LoadVars();
_root.objRecord.lvRecieve = new LoadVars();
if (thisAction == "start") {
_root.objRecord.lvSend.action = "start";
_root.objRecord.lvSend.w = numColCount;
_root.objRecord.lvSend.h = numRowCount;
_root.objRecord.lvRecieve.onLoad = function (success) {
_root.objRecord.success = success;
if (success) {
_root.objRecord.id = _root.objRecord.lvRecieve.id;
}
for (each in _root.objRecord) {
mcDev.txt.text = mcDev.txt.text + (((each + " = ") + _root.objRecord[each]) + newline);
for (eachB in _root.objRecord[each]) {
txtDev.text = txtDev.text + ((((" " + eachb) + " = ") + _root.objRecord[each][eachb]) + newline);
}
}
};
} else if (thisAction == "solve") {
if (_root.objRecord.success == true) {
_root.objRecord.lvSend.action = "solve";
_root.objRecord.lvSend.score = gameRecord.score;
_root.objRecord.lvSend.id = _root.objRecord.id;
}
} else if (thisAction == "abort") {
if (_root.objRecord.success == true) {
_root.objRecord.lvSend.action = "abort";
_root.objRecord.lvSend.score = gameRecord.score;
_root.objRecord.lvSend.id = _root.objRecord.id;
}
}
_root.objRecord.lvSend.sendAndLoad(strRecordURL, _root.objRecord.lvRecieve, "POST");
for (each in _root.objRecord) {
mcDev.txt.text = mcDev.txt.text + (((each + " = ") + _root.objRecord[each]) + newline);
for (eachB in _root.objRecord[each]) {
txtDev.text = txtDev.text + ((((" " + eachb) + " = ") + _root.objRecord[each][eachb]) + newline);
}
}
if (thisAction == "solve") {
if (soUser.data.completed == undefined) {
soUser.data.completed = new Array();
}
if (soUser.data.completed[currentPuzzleNumber].score == undefined) {
numSoCompleted++;
}
if (soUser.data.completed[currentPuzzleNumber].score <= gameRecord.score) {
soUser.data.completed[currentPuzzleNumber] = {score:gameRecord.score, efficiency:gameRecord.efficiency, totalTme:gameRecord.totalTme};
soUser.flush();
}
}
}
}
function setConnectedCube(thisMc, thisState) {
if ((thisMc != undefined) && (thisMc.connected != thisState)) {
thisMc.connected = thisState;
if (thisState == true) {
setCubeColor(thisMc.mcHolder.mcPath, 16777215);
if (thisMc.mcHolder.mcBulb != undefined) {
buildBulb(thisMc, "on");
}
} else {
setCubeColor(thisMc.mcHolder.mcPath, 0);
if (thisMc.mcHolder.mcBulb != undefined) {
buildBulb(thisMc, "off");
}
}
var _local3 = new Color(thisMc.mcHolder.mcPath);
}
}
function getConnectedCube(thisMc) {
var _local2 = thisMc.connected;
if (_local2 == true) {
setCubeColor(thisMc.mcHolder.mcPath, 16777215);
if (thisMc.mcHolder.mcBulb != undefined) {
buildBulb(thisMc, "on");
}
} else {
setCubeColor(thisMc.mcHolder.mcPath, 0);
if (thisMc.mcHolder.mcBulb != undefined) {
buildBulb(thisMc, "off");
}
}
return(_local2);
}
function menuRollOver(thisEvent, thisMc) {
if (gameRecord.gameState != "building") {
_root.mcMenuHolder.gotoAndPlay("show");
if (_root.mcMenuHolder.mc.mcHotSpot.onRollOut == undefined) {
_root.mcMenuHolder.mc.mcHotSpot.onRollOut = function () {
if (this.hitTest(_xmouse, _ymouse, false) == false) {
_root.mcMenuHolder.gotoAndPlay("close");
}
};
_root.mcMenuHolder.mc.mcHotSpot.useHandCursor = false;
}
}
}
function initInterface() {
mcDev.swapDepths(100);
var _local4 = new Object();
_local4.titleScreen = 1;
_local4.puzzle = 2;
_local4.btnMenu = 3;
_local4.btnMenuHolder = 4;
_local4.puzzleSize = 5;
_local4.help = 6;
_local4.score = 7;
_local4.alert = 8;
_local4.versionText = 10;
_local4.cover = 5000;
mcCover.swapDepths(_local4.cover);
mcBtnMenu.swapDepths(_local4.btnMenu);
mcBtnMenu.attachAllEvents("menu");
mcBtnMenu.txt.text = "menu";
if (strVersionType == "pay") {
mcMenuHolder.swapDepths(_local4.btnMenuHolder);
mcMenuHolder.mc.mcBtnNewPuzzle.attachAllEvents("newpuzzle");
mcMenuHolder.mc.mcBtnNewPuzzle.txt.text = "new";
mcPuzzleSize.swapDepths(_local4.puzzleSize);
var _local1 = 1;
while (_local1 < 7) {
mcPuzzleSize.mc.mcDialog["mcBtnSize" + _local1].txt.text = (aryPuzzleSizes[_local1 - 1].w + " x ") + aryPuzzleSizes[_local1 - 1].h;
if (mcPuzzleSize.mc.mcDialog["mcBtnSize" + _local1].onRollOver == undefined) {
mcPuzzleSize.mc.mcDialog["mcBtnSize" + _local1].attachAllEvents("puzzleSize");
}
_local1++;
}
mcPuzzleSize.mc.mcDialog.mcBtnSize7.txt.text = "custom sized";
mcPuzzleSize.mc.mcDialog.mcBtnSize7.attachAllEvents("puzzleSize");
mcPuzzleSize.mc.mcDialog.mcAlertClose.attachAllEvents("puzzleClose");
mcPuzzleSize.mc.mcDialog.txtCols.restrict = "0-9";
mcPuzzleSize.mc.mcDialog.txtRows.restrict = "0-9";
mcPuzzleSize.mc.mcDialog.mcClickBlock.onPress = function () {
};
mcPuzzleSize.mc.mcDialog.mcClickBlock.useHandCursor = false;
mcScore.swapDepths(_local4.score);
mcScore.mc.mcDialog.mcBtnScoreOK.txt.text = "ok";
mcScore.mc.mcDialog.mcBtnScoreOK.attachAllEvents("score");
mcScore.mc.mcDialog.mcBtnScoreSubmit.txt.text = "submit";
mcScore.mc.mcDialog.mcBtnScoreSubmit.attachAllEvents("score");
mcScore.mc.mcDialog.mcAlertClose.attachAllEvents("scoreClose");
mcScore.mc.mcDialog.mcClickBlock.onPress = function () {
};
mcScore.mc.mcDialog.mcClickBlock.useHandCursor = false;
} else {
mcMenuHolder.swapDepths(_local4.btnMenuHolder);
mcMenuHolder.mc.mcBtnNewPuzzle.attachAllEvents("startpuzzle");
mcMenuHolder.mc.mcBtnNewPuzzle.txt.text = "start";
mcPuzzleSize.swapDepths(_local4.puzzleSize);
numSoCompleted = 0;
var _local1 = 0;
while (_local1 < 30) {
var _local3;
var _local2;
if (_local1 < 10) {
_local3 = _local1;
_local2 = aryGames1;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].mcIcons.mcGames1._alpha = 100;
} else if (_local1 < 20) {
_local3 = _local1 - 10;
_local2 = aryGames2;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].mcIcons.mcGames2._alpha = 100;
} else if (_local1 < 30) {
_local3 = _local1 - 20;
_local2 = aryGames3;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].mcIcons.mcGames3._alpha = 100;
}
if (mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1] == undefined) {
break;
}
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].thisPuzzleNumber = _local1;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].thisArray = _local2;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].sizeText = (((("Puzzle #" + (_local1 + 1)) + " ") + _local2[_local3].size[0].width) + " x ") + _local2[_local3].size[0].height;
if (soUser.data.completed[_local1].score != undefined) {
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].beenPlayed = true;
numSoCompleted++;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].mcIcons._alpha = numIconAlpha;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].mcFrame.gotoAndPlay("idleUnlit");
} else {
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].beenPlayed = false;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].mcFrame.gotoAndPlay("idleLit");
}
if (mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].onRollOver == undefined) {
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].attachAllEvents("puzzleNumber");
}
_local1++;
}
mcPuzzleSize.mc.mcDialog.mcBtnClearScores.txt.text = "clear scores";
mcPuzzleSize.mc.mcDialog.mcBtnClearScores.attachAllEvents("clearScores");
mcPuzzleSize.mc.mcDialog.mcBtnBuy.txt.text = "buy circuitry";
mcPuzzleSize.mc.mcDialog.mcBtnBuy.attachAllEvents("buyCircuitry");
mcPuzzleSize.mc.mcDialog.mcClickBlock.onPress = function () {
};
mcPuzzleSize.mc.mcDialog.mcClickBlock.useHandCursor = false;
mcScore.swapDepths(_local4.score);
mcScore.mc.mcDialog.mcBtnScoreReturn.txt.text = "return";
mcScore.mc.mcDialog.mcBtnScoreReturn.attachAllEvents("scoreReturn");
mcScore.mc.mcDialog.mcBtnScoreBuy.txt.text = "buy";
mcScore.mc.mcDialog.mcBtnScoreBuy.attachAllEvents("scoreBuy");
mcScore.mc.mcDialog.mcBtnScoreNext.txt.text = "next";
mcScore.mc.mcDialog.mcBtnScoreNext.attachAllEvents("scoreNext");
mcScore.mc.mcDialog.mcClickBlock.onPress = function () {
};
mcScore.mc.mcDialog.mcClickBlock.useHandCursor = false;
}
mcMenuHolder.mc.mcBtnHelp.attachAllEvents("help");
mcMenuHolder.mc.mcBtnHelp.txt.text = "help";
mcHelp.swapDepths(_local4.help);
mcHelp.mcClickBlock.onPress = function () {
};
mcHelp.mcClickBlock.useHandCursor = false;
mcHelp.mcAlertClose.attachAllEvents("helpClose");
mcMenuHolder.mc.mcBtnScores.attachAllEvents("scores");
mcMenuHolder.mc.mcBtnScores.txt.text = "scores";
mcMenuHolder.mc.mcBtnPause.attachAllEvents("pause");
mcMenuHolder.mc.mcBtnPause.gotoAndPlay("disabled");
mcMenuHolder.mc.mcBtnPause.txt.text = "pause";
mcMenuHolder.mc.mcBtnSolve.attachAllEvents("solve");
mcMenuHolder.mc.mcBtnSolve.txt.text = "solve";
mcMenuHolder.mc.mcBtnSolve.gotoAndPlay("disabled");
mcMenuHolder.mc.mcBtnHelperWall.attachAllEvents("helperWall");
mcMenuHolder.mc.mcBtnHelperWall.txt.text = "helper wall";
mcMenuHolder.mc.mcBtnHelperWall.gotoAndPlay("disabled");
mcAlert.swapDepths(_local4.alert);
mcAlert.mcBtnOK.txt.text = "ok";
mcAlert.mcBtnOK.attachAllEvents("alertClose");
mcAlert.mcAlertClose.attachAllEvents("alertClose");
mcAlert.mcClickBlock.onPress = function () {
};
mcAlert.mcClickBlock.useHandCursor = false;
mcTitleScreen.swapDepths(_local4.titleScreen);
mcVersion.swapDepths(_local4.versionText);
mcTitleScreen.mcHelpAnimation.gotoAndPlay("show");
currentGameArray = getCurrentGameArray(0);
}
mcVersion.txtVersion.text = (((("v. " + objVersion.major) + ".") + objVersion.minor) + ".") + objVersion.build;
var outPutPuzzles = false;
var strVersionType = "free";
var strRecordURL = "http://www.cdotspace.com/circuitry/record.asp";
var strViewScoresURL = "http://www.cdotspace.com/circuitry/viewScores.asp";
var strSubmitScoresURL = "http://www.cdotspace.com/circuitry/submitScores.asp";
var strBuyURL = "http://www.cdotspace.com/circuitry/paypal/buy.asp";
var strQuestionsURL = "http://www.cdotspace.com/circuitry/questions.html";
var strReportBugURL = "http://www.cdotspace.com/circuitry/bug.asp";
strHelp = "The point of the puzzle is to connect all of the light bulbs to the power source in the center.";
strHelp = strHelp + "\n\nClick the cubes to rotate them into the desired position.";
strHelp = strHelp + (("\n\nHolding down the " + ((thisOS == "win") ? "CTRL" : "APPLE")) + " key while clicking a cube will LOCK or UNLOCK a cube, so you don\u2019t accidentally rotate a cube you shouldn\u2019t.");
var numRotationSpeed = 15;
var numLockAlpha = 50;
var numUnlitBlend = 80;
var numChancesOfPlacingBulb = 2;
var strCenter;
var numDoors;
var checkCompletedCounter;
var numCubeScale;
var numCubeTotal;
var numMixCounter;
var numCubesRotated;
var lastMcPressed = "";
var currentPuzzleNumber;
var numSoCompleted;
var gameRecord = new Array();
if (strVersionType == "pay") {
var soUser = SharedObject.getLocal("usernames", "/");
} else {
var soUser = SharedObject.getLocal("userscores", "/");
}
var numBulbCount;
var aryHelperWalls = new Array();
var fmtStatus = new TextFormat();
fmtStatus.size = 13;
fmtStatus.color = 0;
fmtStatus.leading = -3;
fmtStatus.font = "BankGothic";
var fmtMessage = new TextFormat();
fmtMessage.inheritFrom(fmtStatus);
fmtMessage.align = "center";
fmtMessage.size = 17;
var fmtInstructions = new TextFormat();
fmtInstructions.inheritFrom(fmtStatus);
fmtInstructions.size = 19;
var fmtScore = new TextFormat();
fmtScore.inheritFrom(fmtStatus);
fmtScore.align = "center";
fmtScore.size = 19;
var numIconAlpha = 30;
var numRotationSeconds = 0.25;
if (strVersionType == "pay") {
mcScore.mc.attachMovie("mcScore_pay", "mcDialog", 1);
mcPuzzleSize.mc.attachMovie("mcPuzzleSize_pay", "mcDialog", 1);
mcPuzzleSize.mc.mcDialog.txtInstructionsL.autoSize = "center";
mcPuzzleSize.mc.mcDialog.txtInstructionsL.embedFonts = true;
mcPuzzleSize.mc.mcDialog.txtInstructionsL.setNewTextFormat(fmtInstructions);
mcPuzzleSize.mc.mcDialog.txtInstructionsL.text = "Choose a size from one of the buttons to submit your score online";
mcPuzzleSize.mc.mcDialog.txtInstructionsR.autoSize = "center";
mcPuzzleSize.mc.mcDialog.txtInstructionsR.embedFonts = true;
mcPuzzleSize.mc.mcDialog.txtInstructionsR.setNewTextFormat(fmtInstructions);
mcPuzzleSize.mc.mcDialog.txtInstructionsR.text = "or make a puzzle any sizeup to\n33 x 19.";
mcPuzzleSize.mc.mcDialog.txtRows.tabIndex = 1;
mcPuzzleSize.mc.mcDialog.txtCols.tabIndex = 2;
mdm.Menu.Main.menuType = "function";
mdm.Menu.Main.insertHeader("Help");
mdm.Menu.Main.insertItem("Help", "How to play");
mdm.Menu.Main.insertItem("Help", "Questions");
mdm.Menu.Main.insertDivider("Help");
mdm.Menu.Main.insertItem("Help", "About");
mdm.Menu.Main.insertItem("Help", "Report a bug");
mdm.Menu.Main.onMenuClick_How_to_play = function () {
helpRelease(onRelease, _level0.mcMenuHolder.mc.mcBtnHelp);
};
mdm.Menu.Main.onMenuClick_Questions = function () {
mdm.System.exec(strQuestionsURL);
};
mdm.Menu.Main.onMenuClick_About = function () {
_root.pauseRelease(onRelease, _level0.mcMenuHolder.mc.mcBtnPause);
mdm.Menu.Main.intv = setInterval(mdm.Menu.Main.menuDelay, 150);
};
mdm.Menu.Main.menuDelay = function () {
clearInterval(mdm.Menu.Main.intv);
mdm.Menu.Main.isOpen = mdm.Dialogs.promptAdv(((((("Circuitry\nversion " + objVersion.major) + ".") + objVersion.minor) + ".") + objVersion.build) + "\n\nC. Michael Barsotti\nwww.cdotspace.com\\circuitry", "info");
mdm.Menu.Main.intvCheckOpen = setInterval(mdm.Menu.Main.checkOpen, 1);
};
mdm.Menu.Main.checkOpen = function () {
if (mdm.Menu.Main.isOpen != undefined) {
clearInterval(mdm.Menu.Main.intvCheckOpen);
_root.pauseRelease(onRelease, _level0.mcMenuHolder.mc.mcBtnPause);
}
};
mdm.Menu.Main.onMenuClick_Report_a_bug = function () {
mdm.System.exec((((((((strReportBugURL + "?version=") + objVersion.major) + ".") + objVersion.minor) + ".") + objVersion.build) + "&os=") + System.capabilities.os);
};
} else {
mcScore.mc.attachMovie("mcScore_free", "mcDialog", 1);
mcPuzzleSize.mc.attachMovie("mcPuzzleSize_free", "mcDialog", 1);
mcPuzzleSize.mc.mcDialog.txtInstructionsL.autoSize = "center";
mcPuzzleSize.mc.mcDialog.txtInstructionsL.embedFonts = true;
mcPuzzleSize.mc.mcDialog.txtInstructionsL.setNewTextFormat(fmtInstructions);
mcPuzzleSize.mc.mcDialog.txtInstructionsL.text = "Small medium or large";
mcPuzzleSize.mc.mcDialog.txtScore.autoSize = "center";
mcPuzzleSize.mc.mcDialog.txtScore.embedFonts = true;
mcPuzzleSize.mc.mcDialog.txtScore.setNewTextFormat(fmtInstructions);
}
mcStatus.txtMinMoves.embedFonts = true;
mcStatus.txtMinMoves.setNewTextFormat(fmtStatus);
mcStatus.txtMoves.embedFonts = true;
mcStatus.txtMoves.setNewTextFormat(fmtStatus);
mcStatus.txtTime.embedFonts = true;
mcStatus.txtTime.setNewTextFormat(fmtStatus);
mcStatus.txtScore.embedFonts = true;
mcStatus.txtScore.setNewTextFormat(fmtStatus);
mcScore.mc.mcDialog.txtScore.embedFonts = true;
mcScore.mc.mcDialog.txtScore.setNewTextFormat(fmtScore);
mcScore.mc.mcDialog.txtPassword.password = true;
mcScore.mc.mcDialog.txtUserName.tabIndex = 3;
mcScore.mc.mcDialog.txtPassword.tabIndex = 4;
mcAlert.txt.embedFonts = true;
mcAlert.txt.setNewTextFormat(fmtMessage);
mcTitleScreen.txtMessage.embedFonts = true;
mcTitleScreen.txtMessage.autoSize = "center";
mcTitleScreen.txtMessage.setNewTextFormat(fmtStatus);
mcTitleScreen.txtMessage.text = "\n\n\n\n\n\n\u00A9 copyright 2003 - 2006, Michael Barsotti - cdotspace.com";
mcTitleScreen.txtMessage.text = mcTitleScreen.txtMessage.text + "\nThis game may not be reproduced or transmitted,\nin whole or in part,without written consent.";
var firstIndex = mcTitleScreen.txtMessage.length;
mcTitleScreen.txtMessage.text = mcTitleScreen.txtMessage.text + "\n\nTo begin, open the MENU and select NEW";
mcTitleScreen.txtMessage.setTextFormat(firstIndex, 500, fmtMessage);
mcTitleScreen.txtMessage.setNewTextFormat(fmtMessage);
var aryPuzzleSizes = new Array({w:7, h:5}, {w:11, h:7}, {w:13, h:9}, {w:15, h:9}, {w:17, h:11}, {w:23, h:13});
aryPuzzleSizes.sortOn(["w", "h"], Array.NUMERIC);
trace(strVersionType);
if (strVersionType == "pay") {
var buildToggle;
submitPuzzleSize = function (thisSizeString) {
var _local5;
var _local3;
var _local2;
var _local1;
var _local4 = thisSizeString.split(" x ");
_local2 = Number(_local4[0]);
_local1 = Number(_local4[1]);
_local5 = (((_local2 % 2) == 0) ? (_local2 + 1) : (_local2));
_local3 = (((_local1 % 2) == 0) ? (_local1 + 1) : (_local1));
numColCount = Math.min(Math.max(Math.max(_local5, _local3), 5), 33);
numRowCount = Math.min(Math.max(Math.min(_local5, _local3), 5), 19);
numCubeTotal = numColCount * numRowCount;
txtWidth.text = numColCount;
txtHeight.text = numRowCount;
buildNetworkArray();
};
buildNetworkArray = function () {
gameRecord.gameState = "building";
mcTitleScreen._visible = true;
mcTitleScreen.txtMessage.text = (("Building puzzle\n" + numColCount) + " x ") + numRowCount;
if (numColCount > 20) {
mcTitleScreen.txtMessage.text = mcTitleScreen.txtMessage.text + "\nLarge puzzles take a long time to generate and may run slowly. Please be patient.";
}
txtError.text = "";
mcPuzzleSize.gotoAndPlay("close");
intvPausePlayhead = setInterval(pausePlayhead, 1000, buildNetworkArrayCont);
};
buildNetworkArrayCont = function () {
checkCompletedCounter = 0;
aryNetwork = new Array();
var _local4 = 0;
while (_local4 < numRowCount) {
var _local2 = 0;
while (_local2 < numColCount) {
aryNetwork[(("r" + _local4) + "c") + _local2] = {directions:[0], ajoining:[], dop:[]};
var _local1 = 1;
while (_local1 < 5) {
var _local3 = getTargetCube((("r" + _local4) + "c") + _local2, _local1);
if (_local3 != "NA") {
aryNetwork[(("r" + _local4) + "c") + _local2].ajoining.push({cube:_local3, dir:_local1});
}
_local1++;
}
_local2++;
}
_local4++;
}
strCenter = (("r" + ((numRowCount / 2) - 0.5)) + "c") + ((numColCount / 2) - 0.5);
getScale();
buildFirstNet();
};
buildFirstNet = function () {
numDoors = getRandom(1, 3);
aryNetwork[strCenter].directions = getRandomUnique(numDoors, [1, 2, 3, 4]);
aryNetwork[strCenter].dop = [0];
var _local3 = aryNetwork[strCenter].directions.length;
var _local1 = 0;
while (_local1 < _local3) {
var _local2 = getTargetCube(strCenter, aryNetwork[strCenter].directions[_local1]);
if (aryNetwork[_local2].directions[0] == 0) {
buildNet(strCenter, aryNetwork[strCenter].directions[_local1]);
} else {
aryNetwork[strCenter].directions.splice(_local1, 1);
_local1--;
_local3--;
}
_local1++;
}
buildToggle = 0;
do {
buildMainNet();
} while (checkIfCompleted() == false);
displayPuzzle();
};
buildMainNet = function () {
var _local5 = "";
var _local6 = false;
var _local4 = "";
if (Math.random() < 0.5) {
var _local11 = 0;
var _local10 = numRowCount + 1;
var _local12 = 1;
} else {
var _local11 = numRowCount;
var _local10 = -1;
var _local12 = -1;
}
if (Math.random() < 0.5) {
var _local8 = 0;
var _local7 = numColCount + 1;
var _local9 = 1;
} else {
var _local8 = numColCount;
var _local7 = -1;
var _local9 = -1;
}
var _local3 = _local11;
while (_local3 != _local10) {
var _local2 = _local8;
while (_local2 != _local7) {
var _local1 = (("r" + _local3) + "c") + _local2;
if (((((strCenter != _local1) && (aryNetwork[_local1].directions[0] != "bulb")) && (aryNetwork[_local1].directions[0] != 0)) && (aryNetwork[_local1].directions.length < 3)) && (getAvailableDirections(_local1).length > 0)) {
_local5 = _local1;
_local6 = true;
break;
}
if ((aryNetwork[_local1].directions[0] == "bulb") && (_local4 == "")) {
_local4 = _local1;
}
_local2 = _local2 + _local9;
}
if (_local6) {
break;
}
_local3 = _local3 + _local12;
}
if (_local5 == "") {
_local5 = _local4;
aryNetwork[_local5].directions.splice(0, 1);
}
var _local14 = getAvailableDirections(_local5);
var _local13 = chooseDirection(_local14);
if (isNaN(_local13)) {
mcFlag._alpha = 100;
aryNetwork[_local5].directions.unshift("bulb");
} else {
aryNetwork[_local5].directions.push(_local13);
buildNet(_local5, _local13);
}
};
buildNet = function (startCube, thisDir) {
checkCompletedCounter = 0;
var _local1 = getTargetCube(startCube, thisDir);
if (_local1 == "NA") {
trace(((("******************** Target NA buildNet(" + startCube) + ", ") + thisDir) + ") ********************");
} else {
var _local3 = getFromDir(thisDir);
if (getRandom(0, numChancesOfPlacingBulb) == 0) {
aryNetwork[_local1].directions = ["bulb", _local3];
aryNetwork[_local1].dop = [_local3];
} else {
var _local4 = getAvailableDirections(_local1);
if (_local4.length > 0) {
var _local5 = chooseDirection(_local4);
aryNetwork[_local1].directions = [_local3, _local5];
aryNetwork[_local1].dop.push(_local3);
buildNet(_local1, _local5);
} else if (startCube != strCenter) {
aryNetwork[_local1].directions = ["bulb", _local3];
aryNetwork[_local1].dop.push(_local3);
} else {
for (each in aryNetwork[strCenter].directions) {
if (aryNetwork[strCenter].directions[each] == thisDir) {
delete aryNetwork[strCenter].directions[each];
}
}
}
}
}
};
checkIfCompleted = function () {
checkCompletedCounter++;
var _local4 = true;
var _local3 = false;
var _local2 = 0;
while (_local2 < numRowCount) {
var _local1 = 0;
while (_local1 < numColCount) {
if (aryNetwork[(("r" + _local2) + "c") + _local1].directions[0] == 0) {
_local4 = false;
_local3 = true;
break;
}
_local1++;
}
if (_local3) {
break;
}
_local2++;
}
if (checkCompletedCounter > 2) {
unstickPuzzle();
}
return(_local4);
};
unstickPuzzle = function () {
var _local7 = false;
var _local5 = 0;
while (_local5 < numRowCount) {
var _local3 = 0;
while (_local3 < numColCount) {
if (aryNetwork[(("r" + _local5) + "c") + _local3].directions[0] == 0) {
var _local2 = 1;
while (_local2 < 5) {
var _local1 = getTargetCube((("r" + _local5) + "c") + _local3, _local2);
if (_local1 != "NA") {
var _local4 = ((aryNetwork[_local1].directions[0] == "bulb") ? true : false);
var _local6 = ((((_local4 == false) && (aryNetwork[_local1].directions.length != 3)) && (aryNetwork[_local1].directions[0] != 0)) ? true : false);
if ((_local4 == true) || (_local6 == true)) {
fromCubeDir = _local2;
_local7 = true;
break;
}
}
_local2++;
}
if (_local7 == true) {
if (_local4 == true) {
aryNetwork[_local1].directions[0] = getFromDir(fromCubeDir);
aryNetwork[(("r" + _local5) + "c") + _local3].directions = ["bulb", fromCubeDir];
} else {
aryNetwork[_local1].directions.push(getFromDir(fromCubeDir));
aryNetwork[(("r" + _local5) + "c") + _local3].directions = ["bulb", fromCubeDir];
}
}
}
if (_local7 == true) {
break;
}
_local3++;
}
if (_local7 == true) {
break;
}
_local5++;
}
checkCompletedCounter = 0;
};
puzzleSizeRelease = function (thisEvent, thisMc) {
var _local1 = "";
if (gameRecord.gameState != "building") {
if (thisMc.txt.text == "custom sized") {
if (((mcPuzzleSize.mc.mcDialog.txtCols.text + "") + mcPuzzleSize.mc.mcDialog.txtRows.text) == "") {
alert("Please enter a width and height");
} else {
_local1 = (mcPuzzleSize.mc.mcDialog.txtCols.text + " x ") + mcPuzzleSize.mc.mcDialog.txtRows.text;
}
} else {
_local1 = thisMc.txt.text;
}
thisMc.gotoAndPlay("idle");
if (_local1 != "") {
submitPuzzleSize(_local1);
thisMc.mcFrame._alpha = 100;
if (thisMc != lastPuzzleSizeMc) {
lastPuzzleSizeMc.mcFrame._alpha = 0;
lastPuzzleSizeMc = thisMc;
}
}
}
};
newpuzzleRelease = function (thisEvent, thisMc) {
if ((thisMc.disabled == false) && (gameRecord.gameState != "building")) {
mcMenuHolder.gotoAndPlay("closeQuick");
if (gameRecord.gameState == "playing") {
pausedByNew = true;
pauseRelease();
}
getPuzzleSize();
}
};
getUserName = function () {
var _local1 = soUser.getSize();
if (_local1 > 0) {
mcScore.mc.mcDialog.txtUserName.text = soUser.data.username;
mcScore.mc.mcDialog.txtPassword.text = soUser.data.password;
}
soUser.flush();
mcScore.mc.mcDialog.txtUserName._visible = true;
mcScore.mc.mcDialog.txtPassword._visible = true;
};
submitScore = function () {
if (mdm.Network.checkConnection() == false) {
alert("You must be connected to the Internet to submit your score.");
} else if ((mcScore.mc.mcDialog.txtUserName.text == "") || (mcScore.mc.mcDialog.txtPassword.text == "")) {
alert("Please enter a name", getUserName);
} else {
soUser.data.username = mcScore.mc.mcDialog.txtUserName.text;
soUser.data.password = mcScore.mc.mcDialog.txtPassword.text;
soUser.flush();
_root.objPayRecord = new Object();
_root.objPayRecord.lvSend = new LoadVars();
_root.objPayRecord.lvRecieve = new LoadVars();
_root.objPayRecord.lvSend.playerName = mcScore.mc.mcDialog.txtUserName.text;
_root.objPayRecord.lvSend.playerPassword = mcScore.mc.mcDialog.txtPassword.text;
_root.objPayRecord.lvSend.playerScore = gameRecord.score;
_root.objPayRecord.lvSend.playerWidth = numColCount;
_root.objPayRecord.lvSend.playerHeight = numRowCount;
_root.objPayRecord.lvSend.minMoves = gameRecord.minMoves;
_root.objPayRecord.lvSend.moves = gameRecord.moves;
var _local2 = gameRecord.totalTme;
var _local5 = _local2.length;
if (_local5 < 6) {
_local2 = ("1:" + _local2) + " AM";
} else {
_local2 = _local2 + " PM";
}
_root.objPayRecord.lvSend.playerTime = _local2;
_root.objPayRecord.lvRecieve.onLoad = function (success) {
_root.objPayRecord.success = success;
var _local3 = _root.objPayRecord.lvRecieve.isRegistered;
if (success) {
if (_local3 == "True") {
var _local2 = (((((strViewScoresURL + "?username=") + _root.objPayRecord.lvSend.playerName) + "&w=") + numColCount) + "&h=") + numRowCount;
if (_root.objPayRecord.lvRecieve.ver > (objVersion.major + (objVersion.minor * 0.1))) {
_local2 = _local2 + "&update=true";
}
getURL (_local2, "_blank");
_root.scoreCloseRelease();
} else {
alert("The username and password could not be found.\nPlease be sure you entered it corectly.");
}
} else {
alert("I'm sorry, something has gone wrong. The server may be down or a file is missing.\nIf this problem persists please contact the game developer at michael@cdotspace.com.");
}
};
_root.objPayRecord.lvSend.sendAndLoad(strSubmitScoresURL, _root.objPayRecord.lvRecieve, "POST");
}
};
} else {
startFreePuzzle = function () {
getPuzzleSize();
};
loadPuzzleNumber = function (thisGameNumber) {
currentGameArray = getCurrentGameArray(thisGameNumber - 1);
currentPuzzleNumber = thisGameNumber;
if (currentPuzzleNumber < 10) {
thisArrayPos = currentPuzzleNumber;
} else if (currentPuzzleNumber < 20) {
thisArrayPos = currentPuzzleNumber - 10;
} else {
thisArrayPos = currentPuzzleNumber - 20;
}
numColCount = currentGameArray[thisArrayPos].size[0].width;
numRowCount = currentGameArray[thisArrayPos].size[0].height;
strCenter = currentGameArray[thisArrayPos].strCenter;
aryNetwork = currentGameArray[thisArrayPos].puzzle[0];
numCubeTotal = numColCount * numRowCount;
gameRecord.gameState = "building";
mcTitleScreen._visible = true;
mcTitleScreen.txtMessage.text = (((("Building puzzle #" + (currentPuzzleNumber + 1)) + newline) + numColCount) + " x ") + numRowCount;
getScale();
mcPuzzleSize.gotoAndPlay("close");
intvPausePlayhead = setInterval(pausePlayhead, 1000, displayPuzzle);
};
clearScoresRelease = function (thisEvent, thisMc) {
if (gameRecord.gameState != "building") {
numSoCompleted = 0;
soUser.clear();
var _local1 = 0;
while (_local1 < 30) {
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].mcIcons._alpha = 100;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].beenPlayed = false;
mcPuzzleSize.mc.mcDialog["mcBtnPuzzleNumber" + _local1].mcFrame.gotoAndPlay("idleLit");
_local1++;
}
soUser.flush();
}
};
puzzleNumberRollOver = function (thisEvent, thisMc) {
if (gameRecord.gameState != "building") {
if (thisMc.beenPlayed == true) {
thisMc.mcFrame.gotoAndPlay("overUnlit");
} else {
thisMc.mcFrame.gotoAndPlay("overLit");
}
if (soUser.data.completed[thisMc.thisPuzzleNumber].score != undefined) {
var _local2 = "Puzzle #" + (thisMc.thisPuzzleNumber + 1);
_local2 = _local2 + ("\nscore: " + soUser.data.completed[thisMc.thisPuzzleNumber].score);
_local2 = _local2 + (("\nefficiency:" + soUser.data.completed[thisMc.thisPuzzleNumber].efficiency) + "%");
_local2 = _local2 + ("\ntime: " + soUser.data.completed[thisMc.thisPuzzleNumber].totalTme);
mcPuzzleSize.mc.mcDialog.txtScore.text = _local2;
} else {
mcPuzzleSize.mc.mcDialog.txtScore.text = thisMc.sizeText;
}
}
};
puzzleNumberRollOut = function (thisEvent, thisMc) {
if (gameRecord.gameState != "building") {
if (thisMc.beenPlayed == true) {
thisMc.mcFrame.gotoAndPlay("idleUnlit");
} else {
thisMc.mcFrame.gotoAndPlay("idleLit");
}
mcPuzzleSize.mc.mcDialog.txtScore.text = "";
}
};
puzzleNumberRelease = function (thisEvent, thisMc) {
var _local2 = "";
if (gameRecord.gameState != "building") {
loadPuzzleNumber(thisMc.thisPuzzleNumber);
if (thisMc.beenPlayed == true) {
thisMc.mcFrame.gotoAndPlay("idleUnlit");
} else {
thisMc.mcFrame.gotoAndPlay("idleLit");
}
mcPuzzleSize.mc.mcDialog.txtScore.text = "";
}
};
scoreReturnRelease = function (thisEvent, thisMc) {
if (gameRecord.gameState != "building") {
thisMc.gotoAndPlay("idle");
startFreePuzzle();
mcScore.gotoAndPlay("close");
}
};
scoreBuyRelease = (buyCircuitryRelease = function (thisEvent, thisMc) {
if (gameRecord.gameState != "building") {
thisMc.gotoAndPlay("idle");
buyCircuitry();
}
});
scoreNextRelease = function (thisEvent, thisMc) {
if (gameRecord.gameState != "building") {
thisMc.gotoAndPlay("idle");
getNextPuzzle();
mcScore.gotoAndPlay("close");
}
};
var freeGameNumber = 0;
startpuzzleRelease = function (thisEvent, thisMc) {
if ((thisMc.disabled == false) && (gameRecord.gameState != "building")) {
thisMc.gotoAndPlay("idle");
mcMenuHolder.gotoAndPlay("closeQuick");
if (gameRecord.gameState == "playing") {
pausedByNew = true;
pauseRelease();
}
startFreePuzzle();
}
};
var currentGameArray;
getNextPuzzle = function () {
if (numSoCompleted >= 30) {
currentPuzzleNumber = (((currentPuzzleNumber + 1) >= 30) ? 0 : (currentPuzzleNumber + 1));
} else {
currentPuzzleNumber = getNextUnfinishedPuzzle(currentPuzzleNumber - 1);
}
loadPuzzleNumber(currentPuzzleNumber);
};
getNextUnfinishedPuzzle = function (thisNum) {
thisNum++;
var _local3 = 30;
var _local4 = -1;
var _local1 = thisNum;
while (_local1 < _local3) {
if (soUser.data.completed[_local1].score == undefined) {
_local4 = _local1;
break;
}
if (_local1 == 29) {
thisNum = -1;
_local3 = thisNum;
}
_local1++;
}
if (_local4 == -1) {
_local4 = (((thisNum + 1) == 30) ? 0 : (thisNum + 1));
}
return(_local4);
};
buyCircuitry = function () {
getURL (strBuyURL, "_blank");
};
getCurrentGameArray = function (thisPuzzleNum) {
var _local1;
if (thisPuzzleNum < 10) {
_local1 = aryGames1;
} else if (thisPuzzleNum < 20) {
_local1 = aryGames2;
} else {
_local1 = aryGames3;
}
return(_local1);
};
}
var pathShadow = (new flash.filters.DropShadowFilter(16, 45, 0, 0.9, 0, 0, 1, 15, false, false, false));
pathRollOver = (centerRollOver = (bulbRollOver = function (thisEvent, thisMc) {
if ((gameRecord.gameState == "playing") && (thisMc._parent._parent.mcLock._alpha == 0)) {
var _local2 = String(thisMc);
if (_local2.substr(_local2.length - 3) == "CCW") {
thisMc._parent.mcArrowCCW._alpha = 100;
} else {
thisMc._parent.mcArrowCW._alpha = 100;
}
if (thisMc._parent._parent.connected == true) {
thisMc._parent._parent.mcBackground.gotoAndPlay("overLit");
} else {
thisMc._parent._parent.mcBackground.gotoAndPlay("overUnlit");
}
}
}));
pathRollOut = (centerRollOut = (bulbRollOut = (pathReleaseOutside = (centerReleaseOutside = (bulbReleaseOutside = function (thisEvent, thisMc) {
if (thisMc._parent._parent.mcLock._alpha == 0) {
if (thisMc._parent._parent.connected == true) {
thisMc._parent._parent.mcBackground.gotoAndPlay("idleLit");
} else {
thisMc._parent._parent.mcBackground.gotoAndPlay("idleUnlit");
}
}
var _local2 = String(thisMc);
if (_local2.substr(_local2.length - 3) == "CCW") {
thisMc._parent.mcArrowCCW._alpha = 0;
} else {
thisMc._parent.mcArrowCW._alpha = 0;
}
})))));
pathPress = (centerPress = (bulbPress = function (thisEvent, thisMc) {
if (thisMc._parent._parent.rotating == false) {
if (gameRecord.gameState == "playing") {
if (thisMc._parent._parent.connected == true) {
thisMc._parent._parent.mcBackground.gotoAndPlay("downLit");
} else {
thisMc._parent._parent.mcBackground.gotoAndPlay("downUnlit");
}
var _local3 = String(thisMc);
if (Key.isDown(17) == false) {
if (thisMc._parent._parent.mcLock._alpha == 0) {
if (thisMc._parent._parent._parent != lastMcPressed) {
gameRecord.moves++;
_root.mcStatus.txtMoves.text = "Turns taken: " + gameRecord.moves;
}
lastMcPressed = thisMc._parent._parent._parent;
if (_local3.substr(_local3.length - 3) == "CCW") {
rotateCubeTimer(thisMc._parent._parent, getTimer(), "ccw");
} else {
rotateCubeTimer(thisMc._parent._parent, getTimer(), "cw");
}
}
} else {
lockCube(thisMc._parent._parent);
}
}
}
}));
pathRelease = (centerRelease = (bulbRelease = function (thisEvent, thisMc) {
if ((gameRecord.gameState == "playing") && (thisMc._parent._parent.mcLock._alpha == 0)) {
if (thisMc._parent._parent.connected == true) {
thisMc._parent._parent.mcBackground.gotoAndPlay("overLit");
} else {
thisMc._parent._parent.mcBackground.gotoAndPlay("overUnlit");
}
}
}));
clearScoresRollOver = (buyCircuitryRollOver = (scoreReturnRollOver = (scoreBuyRollOver = (scoreNextRollOver = (helperWallRollOver = (puzzleSizeRollOver = (solveRollOver = (helpRollOver = (scoresRollOver = (newpuzzleRollOver = (startpuzzleRollOver = (pauseRollOver = (scoreRollOver = (submitScoreRollOver = (scoreCloseRollOver = (helpCloseRollOver = (puzzleCloseRollOver = (alertCloseRollOver = function (thisEvent, thisMc) {
if ((thisMc.disabled == false) && (gameRecord.gameState != "building")) {
thisMc.gotoAndPlay("over");
}
}))))))))))))))))));
clearScoresRollOut = (buyCircuitryRollOut = (scoreReturnRollOut = (scoreBuyRollOut = (scoreNextRollOut = (helperWallRollOut = (puzzleSizeRollOut = (solveRollOut = (helpRollOut = (scoresRollOut = (newpuzzleRollOut = (startpuzzleRollOut = (pauseRollOut = (scoreRollOut = (submitScoreRollOut = (scoreCloseRollOut = (helpCloseRollOut = (puzzleCloseRollOut = (alertCloseRollOut = function (thisEvent, thisMc) {
if ((thisMc.disabled == false) && (gameRecord.gameState != "building")) {
thisMc.gotoAndPlay("idle");
}
}))))))))))))))))));
puzzleCloseRelease = function (thisEvent, thisMc) {
if (gameRecord.gameState != "building") {
thisMc.gotoAndPlay("idle");
mcPuzzleSize.gotoAndPlay("close");
if ((gameRecord.gameState == "paused") && (pausedByNew == true)) {
pausedByNew = false;
pauseRelease();
}
}
};
pauseRelease = function (thisEvent, thisMc) {
if (thisMc.disabled == false) {
if (gameRecord.gameState == "playing") {
setTimer("pause");
thisMc.txt.text = "resume";
gameRecord.gameState = "paused";
mcTitleScreen.txtMessage.text = "Game Paused";
mcTitleScreen._visible = true;
mcPuzzle._visible = false;
mcMenuHolder.mc.mcBtnSolve.gotoAndPlay("disabled");
mcMenuHolder.mc.mcBtnHelperWall.gotoAndPlay("disabled");
} else {
setTimer("resume");
thisMc.txt.text = "pause";
gameRecord.gameState = "playing";
mcTitleScreen._visible = false;
mcPuzzle._visible = true;
mcMenuHolder.mc.mcBtnSolve.gotoAndPlay("idle");
if (gameRecord.helperWallsUsed != gameRecord.helperWallsAvailable) {
mcMenuHolder.mc.mcBtnHelperWall.gotoAndPlay("idle");
}
}
mcMenuHolder.gotoAndPlay("closeQuick");
}
};
helpRelease = function (thisEvent, thisMc) {
if ((thisMc.disabled == false) && (gameRecord.gameState != "building")) {
mcHelp.gotoAndPlay("open");
if (gameRecord.gameState == "playing") {
setTimer("pause");
gameRecord.gameState = "paused";
pausedByHelp = true;
}
if (gameRecord.gameState == "paused") {
mcHelp.txtIsPaused.text = "(game timer is paused)";
} else {
mcHelp.txtIsPaused.text = "";
}
mcMenuHolder.gotoAndPlay("closeQuick");
}
};
helpCloseRelease = function (thisEvent, thisMc) {
thisMc.gotoAndPlay("idle");
mcHelp.gotoAndPlay("close");
if (pausedByHelp == true) {
pausedByHelp = false;
setTimer("resume");
gameRecord.gameState = "playing";
}
};
scoreRelease = function (thisEvent, thisMc) {
if ((thisMc.disabled == false) && (gameRecord.gameState != "building")) {
thisMc.gotoAndPlay("idle");
if (thisMc.txt.text == "ok") {
scoreCloseRelease();
} else {
submitScore();
}
mcMenuHolder.gotoAndPlay("closeQuick");
}
};
submitScoreRelease = function (thisEvent, thisMc) {
if (gameRecord.gameState != "building") {
thisMc.gotoAndPlay("idle");
if (thisMc.txt.text == "submit") {
submitScore();
} else {
scoreCloseRelease();
}
}
};
scoreCloseRelease = function (thisEvent, thisMc) {
thisMc.gotoAndPlay("idle");
mcScore.gotoAndPlay("close");
};
helperWallRelease = function (thisEvent, thisMc) {
if (thisMc.disabled == false) {
if (aryHelperWalls.length > 0) {
var _local2 = aryHelperWalls.pop();
buildWall(_root.mcPuzzle["mc_" + _local2.strCubeName], _local2.dir, "helper", false);
gameRecord.moves++;
gameRecord.moves++;
gameRecord.helperWallsUsed++;
_root.mcStatus.txtMoves.text = "Turns taken: " + gameRecord.moves;
} else {
mcMenuHolder.mc.mcBtnHelperWall.gotoAndPlay("disabled");
mcMenuHolder.gotoAndPlay("closeQuick");
alert("No more helper walls available.");
}
}
};
alertCloseRelease = function (thisEvent, thisMc) {
thisMc.gotoAndPlay("idle");
mcAlert.gotoAndPlay("close");
if (pausedByAlert == true) {
pausedByAlert = false;
setTimer("resume");
gameRecord.gameState = "playing";
}
};
scoresRelease = function (thisEvent, thisMc) {
if (strVersionType == "pay") {
if (mdm.Network.checkConnection() == false) {
alert("Please connect to the Internet to view scores.");
} else {
getURL (strViewScoresURL + "?w=0&h=0");
}
} else {
getURL (strViewScoresURL + "?w=0&h=0", "_blank");
}
};
solvePress = function (thisEvent, thisMc) {
if (thisMc.disabled == false) {
mcMenuHolder.gotoAndPlay("closeQuick");
var _local5 = 0;
while (_local5 < numRowCount) {
var _local3 = 0;
while (_local3 < numColCount) {
thisMc = _root.mcPuzzle[(("mc_r" + _local5) + "c") + _local3].mcCube;
if (thisMc.mcHolder._rotation != 0) {
var _local4 = ((aryNetwork[(("r" + _local5) + "c") + _local3].directions.toString() + ",") + Math.abs(mcPuzzle[(("mc_r" + _local5) + "c") + _local3].mcCube.mcHolder._rotation)).split(",");
if (((_local4[0] != "bulb") && (_local4[2] == 180)) && (((Number(_local4[0]) + Number(_local4[1])) % 2) == 0)) {
} else {
clearInterval(thisMc.intv);
rotationPerMS = thisMc.mcHolder._rotation / ((numRotationSeconds * 5) * 1000);
if (thisMc.mcHolder._rotation < 0) {
thisMc.intv = setInterval(rotationInterval, 1, thisMc, rotationPerMS, getTimer(), 0, "ccw", thisMc.mcHolder._rotation, true, false, numRotationSeconds * 5);
} else {
thisMc.intv = setInterval(rotationInterval, 1, thisMc, rotationPerMS, getTimer(), 0, "ccw", thisMc.mcHolder._rotation, true, false, numRotationSeconds * 5);
}
setCubeColor(thisMc.mcHolder.mcPath, 10066329);
}
}
_local3++;
}
_local5++;
}
clearInterval(_root.intvWatchTime);
gameRecord.gameState = "stopped";
mcStatus.txtMinMoves.text = "game aborted";
mcStatus.txtMoves.text = "";
mcStatus.txtScore.text = "";
mcStatus.txtTime.text = "";
mcMenuHolder.mc.mcBtnPause.gotoAndPlay("disabled");
mcMenuHolder.mc.mcBtnSolve.gotoAndPlay("disabled");
mcMenuHolder.mc.mcBtnHelperWall.gotoAndPlay("disabled");
recordAction("abort");
}
};
var objRecord = new Object();
if (strVersionType == "free") {
aryGames1 = new Array();
aryPuzzles = new Array();
aryPuzzles.r4c6 = {directions:[4, 1], ajoining:[{dir:1, cube:"r3c6"}, {dir:4, cube:"r4c5"}], dop:[4]};
aryPuzzles.r4c5 = {directions:[4, 2], ajoining:[{dir:1, cube:"r3c5"}, {dir:2, cube:"r4c6"}, {dir:4, cube:"r4c4"}], dop:[4]};
aryPuzzles.r4c4 = {directions:[4, 2], ajoining:[{dir:1, cube:"r3c4"}, {dir:2, cube:"r4c5"}, {dir:4, cube:"r4c3"}], dop:[4]};
aryPuzzles.r4c3 = {directions:[1, 2], ajoining:[{dir:1, cube:"r3c3"}, {dir:2, cube:"r4c4"}, {dir:4, cube:"r4c2"}], dop:[1]};
aryPuzzles.r4c2 = {directions:[1, 4], ajoining:[{dir:1, cube:"r3c2"}, {dir:2, cube:"r4c3"}, {dir:4, cube:"r4c1"}], dop:[1]};
aryPuzzles.r4c1 = {directions:[2, 4], ajoining:[{dir:1, cube:"r3c1"}, {dir:2, cube:"r4c2"}, {dir:4, cube:"r4c0"}], dop:[2]};
(aryPuzzles);// not popped
([2, 1]);// not popped
({dir:2, cube:"r4c1"});// not popped
}
// swfAction0x01 // Unknown action
Frame 11
initInterface();
stop();
Symbol 23 MovieClip Frame 6
this.useHandCursor = true;
this.disabled = false;
stop();
Symbol 23 MovieClip Frame 11
this.useHandCursor = true;
this.disabled = false;
stop();
Symbol 23 MovieClip Frame 16
this.useHandCursor = true;
this.disabled = false;
stop();
Symbol 23 MovieClip Frame 19
this.useHandCursor = false;
this.disabled = true;
stop();
Symbol 26 MovieClip Frame 21
stop();
Symbol 26 MovieClip Frame 45
stop();
Symbol 34 MovieClip Frame 6
stop();
Symbol 34 MovieClip Frame 11
stop();
Symbol 34 MovieClip Frame 16
stop();
Symbol 45 MovieClip Frame 7
stop();
Symbol 45 MovieClip Frame 13
stop();
Symbol 45 MovieClip Frame 19
stop();
Symbol 45 MovieClip Frame 25
stop();
Symbol 45 MovieClip Frame 31
stop();
Symbol 45 MovieClip Frame 37
stop();
Symbol 63 MovieClip Frame 6
stop();
Symbol 63 MovieClip Frame 12
stop();
Symbol 63 MovieClip Frame 18
stop();
Symbol 63 MovieClip Frame 24
stop();
Symbol 63 MovieClip Frame 30
stop();
Symbol 63 MovieClip Frame 36
stop();
Symbol 63 MovieClip Frame 39
stop();
Symbol 89 MovieClip Frame 1
mcCtrl._visible = ((_root.thisOS == "win") ? true : false);
mcPrince._visible = ((_root.thisOS == "win") ? false : true);
Symbol 96 MovieClip Frame 2
this.showText("");
stop();
Symbol 96 MovieClip Frame 4
function showText(thisText) {
this._parent.txtHelp.text = thisText;
}
function goSection(dir) {
if (dir == "next") {
currentSection++;
} else {
currentSection = currentSection - 2;
}
if (currentSection < 0) {
currentSection = sectionCount;
} else if (currentSection > sectionCount) {
currentSection = 1;
}
gotoAndPlay("section" + currentSection);
}
if (this._parent._name.toString() != "mcHelp") {
showTools = false;
mcNext._visible = false;
txtScore.text = "";
} else {
currentSection = 1;
sectionCount = 4;
showTools = true;
mcNext.txt.text = ">>";
mcNext._visible = (mcBack._visible = true);
mcNext.onPress = function () {
goSection("next");
};
}
Symbol 96 MovieClip Frame 5
currentSection = 1;
this.showText("The object of Circuitry is to connect all of the bulbs to the power source.\n\nClick on the cubes to rotate them.");
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n0";
} else {
txtScore.text = "";
}
_root.buildPath(mcCube1, 2, true);
_root.buildPath(mcCube1, 3, true);
_root.setCubeColor(mcCube1.mcHolder.mcPath, 0);
_root.buildPath(mcCube2, 2, true);
_root.buildPath(mcCube2, 4, true);
_root.setCubeColor(mcCube2.mcHolder.mcPath, 0);
_root.buildPath(mcCube3, 3, true);
_root.buildPath(mcCube3, 4, true);
_root.setCubeColor(mcCube3.mcHolder.mcPath, 0);
_root.buildPath(mcCube4, 3, true);
_root.setCubeColor(mcCube4.mcHolder.mcPath, 0);
_root.buildBulb(mcCube4, "off");
_root.buildPath(mcCube5, 1, true);
_root.buildPath(mcCube5, 3, true);
_root.setCubeColor(mcCube5.mcHolder.mcPath, 0);
_root.buildPath(mcCube6, 3, true);
_root.setCubeColor(mcCube6.mcHolder.mcPath, 0);
_root.buildBulb(mcCube6, "off");
_root.buildPath(mcCube7, 1, true);
_root.buildPath(mcCube7, 2, true);
_root.setCubeColor(mcCube7.mcHolder.mcPath, 0);
_root.buildPath(mcCube8, 1, true);
_root.buildPath(mcCube8, 4, true);
_root.setCubeColor(mcCube8.mcHolder.mcPath, 0);
_root.buildPath(mcCube9, 1, true);
_root.buildPath(mcCube9, 3, true);
_root.setCubeColor(mcCube9.mcHolder.mcPath, 0);
_root.buildWall(mcCube10, 1, "open", true);
_root.buildWall(mcCube10, 2, "open", true);
_root.buildWall(mcCube10, 3, "closed", true);
_root.buildWall(mcCube10, 4, "closed", true);
_root.setCubeColor(mcCube10.mcHolder.mcWall, 16777215);
_root.setCubeColor(mcCube10.mcHolder.mcPath, 16777215);
_root.buildPath(mcCube11, 2, true);
_root.buildPath(mcCube11, 3, true);
_root.buildPath(mcCube11, 4, true);
_root.setCubeColor(mcCube11.mcHolder.mcPath, 0);
_root.buildPath(mcCube12, 4, true);
_root.setCubeColor(mcCube12.mcHolder.mcPath, 0);
_root.buildBulb(mcCube12, "off");
_root.buildPath(mcCube13, 1, true);
_root.buildPath(mcCube13, 2, true);
_root.setCubeColor(mcCube13.mcHolder.mcPath, 0);
_root.buildPath(mcCube14, 2, true);
_root.buildPath(mcCube14, 4, true);
_root.setCubeColor(mcCube14.mcHolder.mcPath, 0);
_root.buildPath(mcCube15, 1, true);
_root.buildPath(mcCube15, 2, true);
_root.buildPath(mcCube15, 4, true);
_root.setCubeColor(mcCube15.mcHolder.mcPath, 0);
_root.buildPath(mcCube16, 4, true);
_root.setCubeColor(mcCube16.mcHolder.mcPath, 0);
_root.buildBulb(mcCube16, "off");
mcbtn.txt.text = "helper wall";
Symbol 96 MovieClip Frame 28
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n1";
} else {
txtScore.text = "";
}
Symbol 96 MovieClip Frame 34
_root.setCubeColor(mcCube7.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube11.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube6.mcHolder.mcPath, 16777215);
_root.buildBulb(mcCube6, "on");
Symbol 96 MovieClip Frame 102
if (showTools == true) {
currentSection = 1;
gotoAndPlay("section" + currentSection);
}
Symbol 96 MovieClip Frame 103
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n1";
} else {
txtScore.text = "";
}
if (showTools == true) {
currentSection = 2;
this.showText(("Press the " + ((_root.thisOS == "win") ? "CTRL" : "APPLE")) + " key and click a cube to lock it.\n\nClick again to unlock.");
_root.setCubeColor(mcCube7.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube11.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube6.mcHolder.mcPath, 16777215);
_root.buildBulb(mcCube6, "on");
_root.setCubeColor(mcCube12.mcHolder.mcPath, 0);
_root.buildBulb(mcCube12, "off");
}
Symbol 96 MovieClip Frame 126
this.mcCube12.mcBackground.gotoAndPlay("locked");
Symbol 96 MovieClip Frame 168
this.mcCube12.mcBackground.gotoAndPlay("idleLitGoal");
Symbol 96 MovieClip Frame 183
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n2";
} else {
txtScore.text = "";
}
Symbol 96 MovieClip Frame 189
_root.setCubeColor(mcCube12.mcHolder.mcPath, 16777215);
_root.buildBulb(mcCube12, "on");
Symbol 96 MovieClip Frame 197
if (showTools == true) {
currentSection = 2;
gotoAndPlay("section" + currentSection);
}
Symbol 96 MovieClip Frame 198
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n2";
} else {
txtScore.text = "";
}
currentSection = 3;
this.showText("From the MENU press the HELPER WALLS button to place a helper wall. Each wall will cost you 2 turns.\n\nHelper walls may or may not be very helpful. Many puzzles have multiple solutions, these walls are based on the original solution. You may have a solution that crosses a helper wall.");
if (showTools == true) {
_root.setCubeColor(mcCube12.mcHolder.mcPath, 16777215);
_root.buildBulb(mcCube12, "on");
}
Symbol 96 MovieClip Frame 223
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n4";
} else {
txtScore.text = "";
}
Symbol 96 MovieClip Frame 253
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n6";
} else {
txtScore.text = "";
}
Symbol 96 MovieClip Frame 267
if (showTools == true) {
currentSection = 3;
gotoAndPlay("section" + currentSection);
}
Symbol 96 MovieClip Frame 268
currentSection = 4;
this.showText("Rotate the remaining cubes to solve the puzzle. Your score is the minimum number of turns needed to solve the puzzle divided by the number of turns you took.");
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n6";
} else {
txtScore.text = "";
}
if (showTools == true) {
_root.setCubeColor(mcCube4.mcHolder.mcPath, 0);
_root.buildBulb(mcCube4, "off");
_root.setCubeColor(mcCube7.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube8.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube6.mcHolder.mcPath, 16777215);
_root.buildBulb(mcCube6, "on");
_root.setCubeColor(mcCube1.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube2.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube3.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube5.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube9.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube13.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube14.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube15.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube16.mcHolder.mcPath, 0);
_root.buildBulb(mcCube16, "off");
}
Symbol 96 MovieClip Frame 293
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n7";
} else {
txtScore.text = "";
}
Symbol 96 MovieClip Frame 297
_root.setCubeColor(mcCube6.mcHolder.mcPath, 0);
_root.buildBulb(mcCube6, "off");
_root.setCubeColor(mcCube7.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube11.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube12.mcHolder.mcPath, 0);
_root.buildBulb(mcCube12, "off");
Symbol 96 MovieClip Frame 308
_root.setCubeColor(mcCube7.mcHolder.mcPath, 0);
_root.setCubeColor(mcCube6.mcHolder.mcPath, 0);
_root.buildBulb(mcCube6, "off");
_root.setCubeColor(mcCube11.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube12.mcHolder.mcPath, 16777215);
_root.buildBulb(mcCube12, "on");
Symbol 96 MovieClip Frame 323
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n8";
} else {
txtScore.text = "";
}
Symbol 96 MovieClip Frame 329
_root.setCubeColor(mcCube1.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube2.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube3.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube5.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube9.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube13.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube14.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube15.mcHolder.mcPath, 16777215);
Symbol 96 MovieClip Frame 337
_root.setCubeColor(mcCube16.mcHolder.mcPath, 16777215);
_root.buildBulb(mcCube16, "on");
Symbol 96 MovieClip Frame 353
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n9";
} else {
txtScore.text = "";
}
Symbol 96 MovieClip Frame 383
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n10";
} else {
txtScore.text = "";
}
Symbol 96 MovieClip Frame 388
_root.setCubeColor(mcCube6.mcHolder.mcPath, 16777215);
_root.buildBulb(mcCube6, "on");
Symbol 96 MovieClip Frame 403
if (showTools == true) {
txtScore.text = "Minimum Moves:\n7\n\nTurns Taken:\n11\n\nScore:\n54%";
} else {
txtScore.text = "";
}
Symbol 96 MovieClip Frame 408
_root.setCubeColor(mcCube4.mcHolder.mcPath, 16777215);
_root.buildBulb(mcCube4, "on");
_root.setCubeColor(mcCube7.mcHolder.mcPath, 16777215);
_root.setCubeColor(mcCube8.mcHolder.mcPath, 16777215);
Symbol 96 MovieClip Frame 425
if (showTools == true) {
currentSection = 4;
gotoAndPlay("section" + currentSection);
}
Symbol 96 MovieClip Frame 428
gotoAndPlay ("section1");
Symbol 100 MovieClip Frame 4
stop();
Symbol 100 MovieClip Frame 9
stop();
Symbol 100 MovieClip Frame 15
stop();
Symbol 102 MovieClip Frame 2
stop();
Symbol 102 MovieClip Frame 8
stop();
Symbol 102 MovieClip Frame 15
stop();
Symbol 103 MovieClip Frame 2
stop();
Symbol 103 MovieClip Frame 8
if (_root.gameRecord.efficiency >= 100) {
_root.mcScore.mc.mcDialog.mcPerfectScore.gotoAndPlay("show");
}
stop();
Symbol 103 MovieClip Frame 15
stop();
Symbol 106 MovieClip Frame 2
stop();
Symbol 106 MovieClip Frame 11
stop();
Symbol 106 MovieClip Frame 19
stop();
Symbol 110 MovieClip Frame 2
this.mcAnimation.gotoAndPlay("hide");
stop();
Symbol 110 MovieClip Frame 11
this.mcAnimation.gotoAndPlay("hide");
stop();
Symbol 110 MovieClip Frame 16
this.mcAnimation.gotoAndPlay("show");
Symbol 110 MovieClip Frame 19
stop();