Frame 1
function checkLoaded() {
if (_root.getBytesLoaded() == _root.getBytesTotal()) {
clearInterval(loadingInterval);
gotoAndPlay (10);
}
}
stop();
var loadingInterval;
_root.promoCode = "H7WHD3LHU8MU";
_root.configroot = "http://marketing-cdn.moshimonsters.com/flash/config/";
System.security.allowDomain("bin.clearspring.com");
System.security.allowDomain("widgets.clearspring.com");
loadingInterval = setInterval(checkLoaded, 200);
Frame 10
PuzzleChallenge.main(this);
stop();
Symbol 38 MovieClip [LoadingAnim] Frame 1
stop();
Symbol 38 MovieClip [LoadingAnim] Frame 27
stop();
this.removeMovieClip();
Instance of Symbol 59 MovieClip "btnWebsite" in Symbol 62 MovieClip Frame 1
on (release) {
getURL ("http://www.moshimonsters.com/");
}
Symbol 81 MovieClip Frame 6
stop();
Symbol 225 MovieClip Frame 1
stop();
Symbol 230 MovieClip Frame 1
stop();
Symbol 257 MovieClip [lnkGameOverAnim] Frame 69
stop();
Symbol 294 MovieClip Frame 1
this.onEnterFrame = function () {
stopAllSounds();
delete this.onEnterFrame;
};
Symbol 362 MovieClip Frame 11
stop();
Symbol 376 MovieClip Frame 11
stop();
Symbol 385 MovieClip Frame 1
stop();
Symbol 387 MovieClip Frame 1
stop();
Symbol 388 MovieClip Frame 1
function render() {
Left.mcEye._x = Left.mcEye._x + finalX;
Left.mcEye._y = Left.mcEye._y + finalY;
Right.mcEye._x = Right.mcEye._x + finalX;
Right.mcEye._y = Right.mcEye._y + finalY;
lidLeft._yscale = 100 + (Left.mcEye._y * 1.5);
lidRight._yscale = 100 + (Right.mcEye._y * 1.5);
Mouth._x = Left.mcEye._x / 6;
Mouth._y = Left.mcEye._y / 6;
this._x = Left.mcEye._x / 6;
this._y = Left.mcEye._y / 6;
Left.mcEye._xscale = 100 - (Math.abs(Left.mcEye._x) * 2);
Right.mcEye._xscale = 100 - (Math.abs(Right.mcEye._x) * 2);
Left.mcEye._yscale = 100 - (Math.abs(Left.mcEye._y) * 2);
Right.mcEye._yscale = 100 - (Math.abs(Right.mcEye._y) * 2);
}
function doFace() {
if (this._parent._alpha != 0) {
var _local2 = getTargetPosition();
distanceToMouse = _local2.length / lookAtUrgency;
var _local3 = Math.atan(_local2.y / _local2.x) / (Math.PI/180);
finalPoint = rotate(new flash.geom.Point(1, 0), -getFinalAngle(_local3));
if (_local2.x < 0) {
distanceToMouse = -distanceToMouse;
}
if (distanceToMouse > radius) {
distanceToMouse = radius;
} else if (distanceToMouse < (-radius)) {
distanceToMouse = -radius;
}
finalPoint.normalize(distanceToMouse);
finalX = finalPoint.x - Left.mcEye._x;
finalY = finalPoint.y - Left.mcEye._y;
if (!jittering) {
finalX = finalX / friction;
finalY = finalY / friction;
}
checkJitterAndBlink();
} else {
finalX = 0;
finalY = 0;
resetJitter();
}
render();
}
function checkJitterAndBlink() {
var _local1 = finalPoint.subtract(lastPoint);
if (!jittering) {
if (_local1.length < 2) {
jitterCount++;
if (jitterCount >= jitterStart) {
startJitter();
}
} else {
resetJitter();
if (_local1.length > blinkDistance) {
lidLeft.play();
lidRight.play();
}
}
} else {
doJitter();
}
lastPoint = finalPoint.clone();
}
function rotate(startPoint, angle) {
var _local3;
if (angle != 0) {
var _local2 = Math.cos((angle * Math.PI) / 180);
var _local4 = Math.sin((angle * Math.PI) / 180);
var _local5 = startPoint.x;
var _local8 = (_local5 * _local2) + (startPoint.y * _local4);
var _local6 = (_local5 * (-_local4)) + (startPoint.y * _local2);
_local3 = new flash.geom.Point(_local8, _local6);
} else {
_local3 = new flash.geom.Point(startPoint.x, startPoint.y);
}
return(_local3);
}
function getFinalAngle(angle) {
if (jittering) {
return(angle + jitterAngle);
}
return(angle);
}
function getTargetPosition() {
return(new flash.geom.Point(this._xmouse, this._ymouse));
}
function startJitter() {
jittering = true;
var _local1 = getTargetPosition().length / 3;
jitterAngle = (Math.random() * _local1) - (_local1 / 2);
if (jitterAngle < 0) {
jitterAngle = jitterAngle - 10;
} else {
jitterAngle = jitterAngle + 10;
}
}
function doJitter() {
if (jittering) {
jitterTime++;
if (jitterTime > jitterTimeOut) {
resetJitter();
}
}
}
function getNewJitterStart() {
return(Math.floor(Math.random() * (jitterRandomTimeMax - jitterRandomTimeMin)) + jitterRandomTimeMin);
}
function resetJitter() {
jitterTime = 0;
jitterCount = 0;
jitterStart = getNewJitterStart();
jittering = false;
}
var jitterTimeOut = 2;
var jitterRandomTimeMin = 40;
var jitterRandomTimeMax = 80;
var radius = 8;
var friction = 3;
var lookAtUrgency = 10;
var blinkDistance = 6;
Left.mcEye.gotoAndStop("Left");
Right.mcEye.gotoAndStop("Right");
var jittering = false;
var jitterTime = 0;
var jitterCount = 0;
var jitterAngle = 0;
var jitterStart = getNewJitterStart();
var lastPoint;
var finalPoint;
var distanceToMouse;
var finalX;
var finalY;
doFace();
this.onEnterFrame = function () {
doFace();
};
Symbol 588 MovieClip Frame 1
stop();
Symbol 596 MovieClip Frame 1
stop();
Symbol 600 MovieClip Frame 1
function render() {
Left.mcEye._x = Left.mcEye._x + finalX;
Left.mcEye._y = Left.mcEye._y + finalY;
Right.mcEye._x = Right.mcEye._x + finalX;
Right.mcEye._y = Right.mcEye._y + finalY;
Mouth._x = Left.mcEye._x / 12;
Mouth._y = Left.mcEye._y / 12;
this._x = Left.mcEye._x / 8;
this._y = Left.mcEye._y / 8;
Left.mcEye._xscale = 100 - (Math.abs(Left.mcEye._x) * 1.5);
Right.mcEye._xscale = 100 - (Math.abs(Right.mcEye._x) * 1.5);
Left.mcEye._yscale = 100 - (Math.abs(Left.mcEye._y) * 1.5);
Right.mcEye._yscale = 100 - (Math.abs(Right.mcEye._y) * 1.5);
}
function doFace() {
if (this._parent._alpha != 0) {
var _local2 = getTargetPosition();
distanceToMouse = _local2.length / lookAtUrgency;
var _local3 = Math.atan(_local2.y / _local2.x) / (Math.PI/180);
finalPoint = rotate(new flash.geom.Point(1, 0), -getFinalAngle(_local3));
if (_local2.x < 0) {
distanceToMouse = -distanceToMouse;
}
if (distanceToMouse > radius) {
distanceToMouse = radius;
} else if (distanceToMouse < (-radius)) {
distanceToMouse = -radius;
}
finalPoint.normalize(distanceToMouse);
finalX = finalPoint.x - Left.mcEye._x;
finalY = finalPoint.y - Left.mcEye._y;
if (!jittering) {
finalX = finalX / friction;
finalY = finalY / friction;
}
checkJitterAndBlink();
} else {
finalX = 0;
finalY = 0;
resetJitter();
}
render();
}
function checkJitterAndBlink() {
var _local1 = finalPoint.subtract(lastPoint);
if (!jittering) {
if (_local1.length < 2) {
jitterCount++;
if (jitterCount >= jitterStart) {
startJitter();
}
} else {
resetJitter();
if (_local1.length > blinkDistance) {
lidLeft.play();
lidRight.play();
}
}
} else {
doJitter();
}
lastPoint = finalPoint.clone();
}
function rotate(startPoint, angle) {
var _local3;
if (angle != 0) {
var _local2 = Math.cos((angle * Math.PI) / 180);
var _local4 = Math.sin((angle * Math.PI) / 180);
var _local5 = startPoint.x;
var _local8 = (_local5 * _local2) + (startPoint.y * _local4);
var _local6 = (_local5 * (-_local4)) + (startPoint.y * _local2);
_local3 = new flash.geom.Point(_local8, _local6);
} else {
_local3 = new flash.geom.Point(startPoint.x, startPoint.y);
}
return(_local3);
}
function getFinalAngle(angle) {
if (jittering) {
return(angle + jitterAngle);
}
return(angle);
}
function getTargetPosition() {
return(new flash.geom.Point(this._xmouse, this._ymouse));
}
function startJitter() {
jittering = true;
var _local1 = getTargetPosition().length / 3;
jitterAngle = (Math.random() * _local1) - (_local1 / 2);
if (jitterAngle < 0) {
jitterAngle = jitterAngle - 10;
} else {
jitterAngle = jitterAngle + 10;
}
}
function doJitter() {
if (jittering) {
jitterTime++;
if (jitterTime > jitterTimeOut) {
resetJitter();
}
}
}
function getNewJitterStart() {
return(Math.floor(Math.random() * (jitterRandomTimeMax - jitterRandomTimeMin)) + jitterRandomTimeMin);
}
function resetJitter() {
jitterTime = 0;
jitterCount = 0;
jitterStart = getNewJitterStart();
jittering = false;
}
var jitterTimeOut = 2;
var jitterRandomTimeMin = 40;
var jitterRandomTimeMax = 80;
var radius = 15;
var friction = 3;
var lookAtUrgency = 12;
var blinkDistance = 8;
Left.mcEye.gotoAndStop("Left");
Right.mcEye.gotoAndStop("Right");
var jittering = false;
var jitterTime = 0;
var jitterCount = 0;
var jitterAngle = 0;
var jitterStart = getNewJitterStart();
var lastPoint;
var finalPoint;
var distanceToMouse;
var finalX;
var finalY;
doFace();
this.onEnterFrame = function () {
doFace();
};
Symbol 682 MovieClip Frame 1
Symbol 687 MovieClip Frame 1
stop();
Symbol 692 MovieClip Frame 1
stop();
Symbol 696 MovieClip Frame 1
function render() {
Left.mcEye._x = Left.mcEye._x + finalX;
Left.mcEye._y = Left.mcEye._y + finalY;
Right.mcEye._x = Right.mcEye._x + finalX;
Right.mcEye._y = Right.mcEye._y + finalY;
lidLeft._yscale = 100 + (Left.mcEye._y * 1.5);
lidRight._yscale = 100 + (Right.mcEye._y * 1.5);
Mouth._x = Left.mcEye._x / 6;
Mouth._y = Left.mcEye._y / 6;
Nose._x = Left.mcEye._x / 4;
Nose._y = Left.mcEye._y / 4;
this._x = Left.mcEye._x / 6;
this._y = Left.mcEye._y / 6;
Left.mcEye._xscale = 100 - (Math.abs(Left.mcEye._x) * 2);
Right.mcEye._xscale = 100 - (Math.abs(Right.mcEye._x) * 2);
Left.mcEye._yscale = 100 - (Math.abs(Left.mcEye._y) * 2);
Right.mcEye._yscale = 100 - (Math.abs(Right.mcEye._y) * 2);
}
function doFace() {
if (this._parent._alpha != 0) {
var _local2 = getTargetPosition();
distanceToMouse = _local2.length / lookAtUrgency;
var _local3 = Math.atan(_local2.y / _local2.x) / (Math.PI/180);
finalPoint = rotate(new flash.geom.Point(1, 0), -getFinalAngle(_local3));
if (_local2.x < 0) {
distanceToMouse = -distanceToMouse;
}
if (distanceToMouse > radius) {
distanceToMouse = radius;
} else if (distanceToMouse < (-radius)) {
distanceToMouse = -radius;
}
finalPoint.normalize(distanceToMouse);
finalX = finalPoint.x - Left.mcEye._x;
finalY = finalPoint.y - Left.mcEye._y;
if (!jittering) {
finalX = finalX / friction;
finalY = finalY / friction;
}
checkJitterAndBlink();
} else {
finalX = 0;
finalY = 0;
resetJitter();
}
render();
}
function checkJitterAndBlink() {
var _local1 = finalPoint.subtract(lastPoint);
if (!jittering) {
if (_local1.length < 2) {
jitterCount++;
if (jitterCount >= jitterStart) {
startJitter();
}
} else {
resetJitter();
if (_local1.length > blinkDistance) {
lidLeft.play();
lidRight.play();
}
}
} else {
doJitter();
}
lastPoint = finalPoint.clone();
}
function rotate(startPoint, angle) {
var _local3;
if (angle != 0) {
var _local2 = Math.cos((angle * Math.PI) / 180);
var _local4 = Math.sin((angle * Math.PI) / 180);
var _local5 = startPoint.x;
var _local8 = (_local5 * _local2) + (startPoint.y * _local4);
var _local6 = (_local5 * (-_local4)) + (startPoint.y * _local2);
_local3 = new flash.geom.Point(_local8, _local6);
} else {
_local3 = new flash.geom.Point(startPoint.x, startPoint.y);
}
return(_local3);
}
function getFinalAngle(angle) {
if (jittering) {
return(angle + jitterAngle);
}
return(angle);
}
function getTargetPosition() {
return(new flash.geom.Point(this._xmouse, this._ymouse));
}
function startJitter() {
jittering = true;
var _local1 = getTargetPosition().length / 3;
jitterAngle = (Math.random() * _local1) - (_local1 / 2);
if (jitterAngle < 0) {
jitterAngle = jitterAngle - 10;
} else {
jitterAngle = jitterAngle + 10;
}
}
function doJitter() {
if (jittering) {
jitterTime++;
if (jitterTime > jitterTimeOut) {
resetJitter();
}
}
}
function getNewJitterStart() {
return(Math.floor(Math.random() * (jitterRandomTimeMax - jitterRandomTimeMin)) + jitterRandomTimeMin);
}
function resetJitter() {
jitterTime = 0;
jitterCount = 0;
jitterStart = getNewJitterStart();
jittering = false;
}
var jitterTimeOut = 2;
var jitterRandomTimeMin = 40;
var jitterRandomTimeMax = 80;
var radius = 8;
var friction = 3;
var lookAtUrgency = 12;
var blinkDistance = 6;
Left.mcEye.gotoAndStop("Left");
Right.mcEye.gotoAndStop("Right");
var jittering = false;
var jitterTime = 0;
var jitterCount = 0;
var jitterAngle = 0;
var jitterStart = getNewJitterStart();
var lastPoint;
var finalPoint;
var distanceToMouse;
var finalX;
var finalY;
doFace();
this.onEnterFrame = function () {
doFace();
};
Symbol 821 MovieClip Frame 1
stop();
Symbol 834 MovieClip Frame 1
function render() {
Left.mcEye._x = Left.mcEye._x + finalX;
Left.mcEye._y = Left.mcEye._y + finalY;
Right.mcEye._x = Right.mcEye._x + finalX;
Right.mcEye._y = Right.mcEye._y + finalY;
Mouth._x = Left.mcEye._x / 12;
Mouth._y = Left.mcEye._y / 12;
this._x = Left.mcEye._x / 8;
this._y = Left.mcEye._y / 8;
Left.mcEye._xscale = 100 - (Math.abs(Left.mcEye._x) * 1.5);
Right.mcEye._xscale = 100 - (Math.abs(Right.mcEye._x) * 1.5);
Left.mcEye._yscale = 100 - (Math.abs(Left.mcEye._y) * 1.5);
Right.mcEye._yscale = 100 - (Math.abs(Right.mcEye._y) * 1.5);
}
function doFace() {
if (this._parent._alpha != 0) {
var _local2 = getTargetPosition();
distanceToMouse = _local2.length / lookAtUrgency;
var _local3 = Math.atan(_local2.y / _local2.x) / (Math.PI/180);
finalPoint = rotate(new flash.geom.Point(1, 0), -getFinalAngle(_local3));
if (_local2.x < 0) {
distanceToMouse = -distanceToMouse;
}
if (distanceToMouse > radius) {
distanceToMouse = radius;
} else if (distanceToMouse < (-radius)) {
distanceToMouse = -radius;
}
finalPoint.normalize(distanceToMouse);
finalX = finalPoint.x - Left.mcEye._x;
finalY = finalPoint.y - Left.mcEye._y;
if (!jittering) {
finalX = finalX / friction;
finalY = finalY / friction;
}
checkJitterAndBlink();
} else {
finalX = 0;
finalY = 0;
resetJitter();
}
render();
}
function checkJitterAndBlink() {
var _local1 = finalPoint.subtract(lastPoint);
if (!jittering) {
if (_local1.length < 2) {
jitterCount++;
if (jitterCount >= jitterStart) {
startJitter();
}
} else {
resetJitter();
if (_local1.length > blinkDistance) {
lidLeft.play();
lidRight.play();
}
}
} else {
doJitter();
}
lastPoint = finalPoint.clone();
}
function rotate(startPoint, angle) {
var _local3;
if (angle != 0) {
var _local2 = Math.cos((angle * Math.PI) / 180);
var _local4 = Math.sin((angle * Math.PI) / 180);
var _local5 = startPoint.x;
var _local8 = (_local5 * _local2) + (startPoint.y * _local4);
var _local6 = (_local5 * (-_local4)) + (startPoint.y * _local2);
_local3 = new flash.geom.Point(_local8, _local6);
} else {
_local3 = new flash.geom.Point(startPoint.x, startPoint.y);
}
return(_local3);
}
function getFinalAngle(angle) {
if (jittering) {
return(angle + jitterAngle);
}
return(angle);
}
function getTargetPosition() {
return(new flash.geom.Point(this._xmouse, this._ymouse));
}
function startJitter() {
jittering = true;
var _local1 = getTargetPosition().length / 3;
jitterAngle = (Math.random() * _local1) - (_local1 / 2);
if (jitterAngle < 0) {
jitterAngle = jitterAngle - 10;
} else {
jitterAngle = jitterAngle + 10;
}
}
function doJitter() {
if (jittering) {
jitterTime++;
if (jitterTime > jitterTimeOut) {
resetJitter();
}
}
}
function getNewJitterStart() {
return(Math.floor(Math.random() * (jitterRandomTimeMax - jitterRandomTimeMin)) + jitterRandomTimeMin);
}
function resetJitter() {
jitterTime = 0;
jitterCount = 0;
jitterStart = getNewJitterStart();
jittering = false;
}
var jitterTimeOut = 2;
var jitterRandomTimeMin = 40;
var jitterRandomTimeMax = 80;
var radius = 15;
var friction = 3;
var lookAtUrgency = 12;
var blinkDistance = 8;
Left.mcEye.gotoAndStop("Left");
Right.mcEye.gotoAndStop("Right");
var jittering = false;
var jitterTime = 0;
var jitterCount = 0;
var jitterAngle = 0;
var jitterStart = getNewJitterStart();
var lastPoint;
var finalPoint;
var distanceToMouse;
var finalX;
var finalY;
doFace();
this.onEnterFrame = function () {
doFace();
};
Symbol 1034 MovieClip Frame 1
stop();
Symbol 1044 MovieClip Frame 1
stop();
Symbol 1064 MovieClip Frame 1
stop();
Symbol 1071 MovieClip Frame 1
function render() {
Left.mcEye._x = Left.mcEye._x + finalX;
Left.mcEye._y = Left.mcEye._y + finalY;
Right.mcEye._x = Right.mcEye._x + finalX;
Right.mcEye._y = Right.mcEye._y + finalY;
Mouth._x = Left.mcEye._x / 6;
Mouth._y = Left.mcEye._y / 6;
Nose._x = Left.mcEye._x / 4;
Nose._y = Left.mcEye._y / 4;
this._x = Left.mcEye._x / 6;
this._y = Left.mcEye._y / 6;
Left.mcEye._xscale = 100 - (Math.abs(Left.mcEye._x) * 2);
Right.mcEye._xscale = 100 - (Math.abs(Right.mcEye._x) * 2);
Left.mcEye._yscale = 100 - (Math.abs(Left.mcEye._y) * 2);
Right.mcEye._yscale = 100 - (Math.abs(Right.mcEye._y) * 2);
}
function doFace() {
if (this._parent._alpha != 0) {
var _local2 = getTargetPosition();
distanceToMouse = _local2.length / lookAtUrgency;
var _local3 = Math.atan(_local2.y / _local2.x) / (Math.PI/180);
finalPoint = rotate(new flash.geom.Point(1, 0), -getFinalAngle(_local3));
if (_local2.x < 0) {
distanceToMouse = -distanceToMouse;
}
if (distanceToMouse > radius) {
distanceToMouse = radius;
} else if (distanceToMouse < (-radius)) {
distanceToMouse = -radius;
}
finalPoint.normalize(distanceToMouse);
finalX = finalPoint.x - Left.mcEye._x;
finalY = finalPoint.y - Left.mcEye._y;
if (!jittering) {
finalX = finalX / friction;
finalY = finalY / friction;
}
checkJitterAndBlink();
} else {
finalX = 0;
finalY = 0;
resetJitter();
}
render();
}
function checkJitterAndBlink() {
var _local1 = finalPoint.subtract(lastPoint);
if (!jittering) {
if (_local1.length < 2) {
jitterCount++;
if (jitterCount >= jitterStart) {
startJitter();
}
} else {
resetJitter();
if (_local1.length > blinkDistance) {
lidLeft.play();
lidRight.play();
whiskersLeft.play();
whiskersRight.play();
}
}
} else {
doJitter();
}
lastPoint = finalPoint.clone();
}
function rotate(startPoint, angle) {
var _local3;
if (angle != 0) {
var _local2 = Math.cos((angle * Math.PI) / 180);
var _local4 = Math.sin((angle * Math.PI) / 180);
var _local5 = startPoint.x;
var _local8 = (_local5 * _local2) + (startPoint.y * _local4);
var _local6 = (_local5 * (-_local4)) + (startPoint.y * _local2);
_local3 = new flash.geom.Point(_local8, _local6);
} else {
_local3 = new flash.geom.Point(startPoint.x, startPoint.y);
}
return(_local3);
}
function getFinalAngle(angle) {
if (jittering) {
return(angle + jitterAngle);
}
return(angle);
}
function getTargetPosition() {
return(new flash.geom.Point(this._xmouse, this._ymouse));
}
function startJitter() {
jittering = true;
var _local1 = getTargetPosition().length / 3;
jitterAngle = (Math.random() * _local1) - (_local1 / 2);
if (jitterAngle < 0) {
jitterAngle = jitterAngle - 10;
} else {
jitterAngle = jitterAngle + 10;
}
}
function doJitter() {
if (jittering) {
jitterTime++;
if (jitterTime > jitterTimeOut) {
resetJitter();
}
}
}
function getNewJitterStart() {
return(Math.floor(Math.random() * (jitterRandomTimeMax - jitterRandomTimeMin)) + jitterRandomTimeMin);
}
function resetJitter() {
jitterTime = 0;
jitterCount = 0;
jitterStart = getNewJitterStart();
jittering = false;
}
var jitterTimeOut = 2;
var jitterRandomTimeMin = 40;
var jitterRandomTimeMax = 80;
var radius = 8;
var friction = 3;
var lookAtUrgency = 12;
var blinkDistance = 6;
Left.mcEye.gotoAndStop("Left");
Right.mcEye.gotoAndStop("Right");
var jittering = false;
var jitterTime = 0;
var jitterCount = 0;
var jitterAngle = 0;
var jitterStart = getNewJitterStart();
var lastPoint;
var finalPoint;
var distanceToMouse;
var finalX;
var finalY;
doFace();
this.onEnterFrame = function () {
doFace();
};
Symbol 1108 MovieClip Frame 5
stop();
Symbol 1117 MovieClip Frame 6
stop();
Symbol 1142 MovieClip Frame 16
stop();
Symbol 1146 MovieClip Frame 5
stop();
Symbol 1148 MovieClip Frame 5
stop();
Symbol 1158 MovieClip Frame 4
stop();
Symbol 1162 MovieClip Frame 4
stop();
Symbol 1183 MovieClip Frame 5
stop();
Symbol 1187 MovieClip Frame 4
stop();
Symbol 1189 MovieClip Frame 4
stop();
Symbol 1190 MovieClip Frame 5
stop();
Symbol 1198 MovieClip Frame 8
stop();
Symbol 1205 MovieClip Frame 8
stop();
Symbol 1270 MovieClip Frame 1
Symbol 1274 MovieClip Frame 1
stop();
Symbol 1282 MovieClip Frame 1
function render() {
targetEye._x = targetEye._x + finalX;
targetEye._y = targetEye._y + finalY;
mcFace.Mouth._x = targetEye._x / 6;
mcFace.Mouth._y = targetEye._y / 6;
mcFace.hairSpike._x = targetEye._x / 2;
mcFace.hairSpike._y = targetEye._y / 2;
mcFace.hairMidSpike._x = targetEye._x / 4;
mcFace.hairMidSpike._y = targetEye._y / 4;
hairBack._x = (-targetEye._x) / 4;
hairBack._y = (-targetEye._y) / 4;
mcCrack._rotation = (-targetEye._x) / 2;
mcCrack._xscale = 100 - (targetEye._x * 2);
mcCrack._yscale = 100 + targetEye._y;
earLeft._x = (-targetEye._x) / 4;
earLeft._rotation = (-targetEye._x) / 8;
earRight._x = (-targetEye._x) / 4;
earRight._rotation = (-targetEye._x) / 8;
mcFace._x = targetEye._x / 6;
mcFace._y = targetEye._y / 6;
targetEye._xscale = 100 - (Math.abs(targetEye._x) * 2);
targetEye._yscale = 100 - (Math.abs(targetEye._y) * 2);
}
function doFace() {
if (this._parent._alpha != 0) {
var _local2 = getTargetPosition();
distanceToMouse = _local2.length / lookAtUrgency;
var _local3 = Math.atan(_local2.y / _local2.x) / (Math.PI/180);
finalPoint = rotate(new flash.geom.Point(1, 0), -getFinalAngle(_local3));
if (_local2.x < 0) {
distanceToMouse = -distanceToMouse;
}
if (distanceToMouse > radius) {
distanceToMouse = radius;
} else if (distanceToMouse < (-radius)) {
distanceToMouse = -radius;
}
finalPoint.normalize(distanceToMouse);
finalX = finalPoint.x - targetEye._x;
finalY = finalPoint.y - targetEye._y;
if (!jittering) {
finalX = finalX / friction;
finalY = finalY / friction;
}
checkJitterAndBlink();
} else {
finalX = 0;
finalY = 0;
resetJitter();
}
render();
}
function checkJitterAndBlink() {
var _local1 = finalPoint.subtract(lastPoint);
if (!jittering) {
if (_local1.length < 2) {
jitterCount++;
if (jitterCount >= jitterStart) {
startJitter();
}
} else {
resetJitter();
if (_local1.length > blinkDistance) {
mcFace.lidLeft.play();
}
}
} else {
doJitter();
}
lastPoint = finalPoint.clone();
}
function rotate(startPoint, angle) {
var _local3;
if (angle != 0) {
var _local2 = Math.cos((angle * Math.PI) / 180);
var _local4 = Math.sin((angle * Math.PI) / 180);
var _local5 = startPoint.x;
var _local8 = (_local5 * _local2) + (startPoint.y * _local4);
var _local6 = (_local5 * (-_local4)) + (startPoint.y * _local2);
_local3 = new flash.geom.Point(_local8, _local6);
} else {
_local3 = new flash.geom.Point(startPoint.x, startPoint.y);
}
return(_local3);
}
function getFinalAngle(angle) {
if (jittering) {
return(angle + jitterAngle);
}
return(angle);
}
function getTargetPosition() {
return(new flash.geom.Point(this._xmouse, this._ymouse));
}
function startJitter() {
jittering = true;
var _local1 = getTargetPosition().length / 3;
jitterAngle = (Math.random() * _local1) - (_local1 / 2);
if (jitterAngle < 0) {
jitterAngle = jitterAngle - 10;
} else {
jitterAngle = jitterAngle + 10;
}
}
function doJitter() {
if (jittering) {
jitterTime++;
if (jitterTime > jitterTimeOut) {
resetJitter();
}
}
}
function getNewJitterStart() {
return(Math.floor(Math.random() * (jitterRandomTimeMax - jitterRandomTimeMin)) + jitterRandomTimeMin);
}
function resetJitter() {
jitterTime = 0;
jitterCount = 0;
jitterStart = getNewJitterStart();
jittering = false;
}
var jitterTimeOut = 2;
var jitterRandomTimeMin = 40;
var jitterRandomTimeMax = 80;
var radius = 8;
var friction = 3;
var lookAtUrgency = 12;
var blinkDistance = 6;
var jittering = false;
var jitterTime = 0;
var jitterCount = 0;
var jitterAngle = 0;
var jitterStart = getNewJitterStart();
var lastPoint;
var finalPoint;
var distanceToMouse;
var finalX;
var finalY;
var targetEye = mcFace.Left.mcEye;
doFace();
this.onEnterFrame = function () {
doFace();
};
Symbol 1393 MovieClip [lnkGameBackground] Frame 20
stop();
Symbol 20480 MovieClip [__Packages.com.mindcandy.diablo.shared.events.Event] Frame 0
class com.mindcandy.diablo.shared.events.Event
{
function Event () {
}
}
Symbol 20481 MovieClip [__Packages.com.mindcandy.diablo.shared.events.BaseEvent] Frame 0
class com.mindcandy.diablo.shared.events.BaseEvent implements com.mindcandy.diablo.shared.events.Event
{
var name, type, source, context, expiryTime, firedTime, consumed;
function BaseEvent (name, type, context, source) {
this.name = name;
this.type = type;
this.source = source;
this.context = context;
expiryTime = 10;
firedTime = getTimer();
consumed = false;
}
function consume() {
consumed = true;
}
function isConsumed() {
return(consumed);
}
function getType() {
return(type);
}
function getName() {
return(name);
}
function getFiredTime() {
return(firedTime);
}
function getContext() {
return(context);
}
function getExpiryTime() {
return(expiryTime);
}
function setExpiryTime(ms) {
expiryTime = ms;
}
function getSource() {
return(source);
}
}
Symbol 20482 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.event.GameEvent] Frame 0
class com.mindcandy.diablo.puzzle.controller.event.GameEvent extends com.mindcandy.diablo.shared.events.BaseEvent
{
function GameEvent (name, context, source) {
super(name, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME, context, source);
}
static var NEW_GAME = "new puzzle session started";
static var COUNTDOWN_COMPLETED = "3-2-1 sequence completed";
static var STARTED = "game on!";
static var ANSWER_SELECTED = "the user has selected an answer";
static var PUZZLE_MARKED = "marking completed";
static var RESULT_SHOWN = "result shown";
static var NEW_ROUND = "here we go again...";
static var END_GAME_PERIOD = "reached the end-game period";
static var TIME_UP = "time up";
static var PUZZLE_CACHE_EMPTY = "out of questions";
}
Symbol 20483 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.state.State] Frame 0
class com.mindcandy.diablo.puzzle.controller.state.State
{
var name;
function State (name) {
this.name = name;
}
function getName() {
return(name);
}
function toString() {
return(name);
}
static var KEEP_CURRENT = new com.mindcandy.diablo.puzzle.controller.state.State("keep current state rather than transitioning to another");
}
Symbol 20484 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.mixer.AudioChannel] Frame 0
class com.mindcandy.diablo.shared.content.sound.mixer.AudioChannel
{
function AudioChannel () {
}
}
Symbol 20485 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.MonsterType] Frame 0
class com.mindcandy.diablo.puzzle.model.MonsterType
{
var name, floats;
function MonsterType (name, floats) {
this.name = name;
this.floats = floats;
}
function getName() {
return(name);
}
function getFloats() {
return(floats);
}
static function getValues() {
if (MONSTERS.length == 0) {
populateDefaultMonsters();
}
return(MONSTERS);
}
static function populateDefaultMonsters() {
MONSTERS.push(FURI);
MONSTERS.push(LUVLI);
MONSTERS.push(ZOMMER);
MONSTERS.push(DIAVLO);
MONSTERS.push(POPPET);
MONSTERS.push(KATSUMA);
}
static var FURI = new com.mindcandy.diablo.puzzle.model.MonsterType("Furi", false);
static var LUVLI = new com.mindcandy.diablo.puzzle.model.MonsterType("Luvli", true);
static var ZOMMER = new com.mindcandy.diablo.puzzle.model.MonsterType("Zommer", false);
static var DIAVLO = new com.mindcandy.diablo.puzzle.model.MonsterType("Diavlo", true);
static var POPPET = new com.mindcandy.diablo.puzzle.model.MonsterType("Poppet", false);
static var KATSUMA = new com.mindcandy.diablo.puzzle.model.MonsterType("Katsuma", false);
static var MONSTERS = new Array();
}
Symbol 20486 MovieClip [__Packages.com.mindcandy.diablo.shared.view.events.mouse.MouseEventHandler] Frame 0
class com.mindcandy.diablo.shared.view.events.mouse.MouseEventHandler
{
function MouseEventHandler () {
}
}
Symbol 20487 MovieClip [__Packages.com.mindcandy.diablo.shared.view.events.mouse.BaseMouseEventHandler] Frame 0
class com.mindcandy.diablo.shared.view.events.mouse.BaseMouseEventHandler implements com.mindcandy.diablo.shared.view.events.mouse.MouseEventHandler
{
function BaseMouseEventHandler () {
}
function handlePress(Void) {
}
function handleClick(Void) {
}
function handleCompoundClick(count) {
}
function handleDrag(target) {
}
function handleDrop(target) {
}
function handleRollOver(Void) {
}
function handleRollOut(Void) {
}
function allowsDrag(Void) {
return(false);
}
function allowsReleaseOutside() {
return(false);
}
function isSwitchable() {
return(false);
}
function destroy() {
}
}
Symbol 20488 MovieClip [__Packages.com.mindcandy.diablo.shared.view.events.button.ButtonEventHandler] Frame 0
class com.mindcandy.diablo.shared.view.events.button.ButtonEventHandler extends com.mindcandy.diablo.shared.view.events.mouse.BaseMouseEventHandler
{
var target, button;
function ButtonEventHandler (target, button) {
super();
this.target = target;
this.button = button;
}
function handleActivate(Void) {
}
function handleDeactivate(Void) {
}
function handleClick(Void) {
target.gotoAndStop("Up");
if (button.getAction()) {
trace("f firing command for action " + button.getAction());
trace("f context is " + button.getContext());
com.mindcandy.diablo.shared.controller.Environment.getInstance().getCommandManager().fire(button.getAction(), null, button.getContext());
}
button.getListener().handleClick(button);
}
function handlePress(Void) {
target.gotoAndStop("Down");
}
function handleRollOver(Void) {
target.gotoAndStop("Over");
button.getListener().handleRollOver(button);
}
function handleRollOut(Void) {
target.gotoAndStop("Up");
button.getListener().handleRollOut(button);
}
function destroy() {
button = null;
target = null;
}
}
Symbol 20489 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.button.PuzzleButtonHandler] Frame 0
class com.mindcandy.diablo.puzzle.view.button.PuzzleButtonHandler extends com.mindcandy.diablo.shared.view.events.button.ButtonEventHandler
{
var pb, em, target, fRollover;
function PuzzleButtonHandler (target, button) {
super(target, button);
pb = button;
em = com.mindcandy.diablo.shared.controller.Environment.getInstance().getEventManager();
}
function handleClick(Void) {
target.gotoAndStop("Selected");
em.newEvent(pb.getEventName(), pb.getEventType(), pb.getContext());
}
function handleRollOver() {
if (target.rolloverBox) {
fRollover.destroy();
fRollover = new com.mosesSupposes.fuse.Fuse();
fRollover.push({target:target.rolloverBox, seconds:0.5, ease:"easeOutQuad", _alpha:100});
fRollover.start();
}
super.handleRollOver();
}
function handleRollOut(Void) {
if (target.rolloverBox) {
fRollover.destroy();
fRollover = new com.mosesSupposes.fuse.Fuse();
fRollover.push({target:target.rolloverBox, seconds:0.5, ease:"easeOutQuad", _alpha:0});
fRollover.start();
}
super.handleRollOut();
}
}
Symbol 20490 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.scripting.Statement] Frame 0
class com.mindcandy.diablo.shared.controller.scripting.Statement
{
function Statement () {
}
}
Symbol 20491 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.commands.Command] Frame 0
class com.mindcandy.diablo.shared.controller.commands.Command implements com.mindcandy.diablo.shared.controller.scripting.Statement
{
function Command () {
}
}
Symbol 20492 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.commands.BaseCommand] Frame 0
class com.mindcandy.diablo.shared.controller.commands.BaseCommand implements com.mindcandy.diablo.shared.controller.commands.Command
{
var type, commandManager;
function BaseCommand (type, manager) {
this.type = type;
commandManager = manager;
}
function execute(args, context, listener, sync) {
trace("w execute(context) should be overridden!");
}
function getName() {
return(type.toString());
}
function getType() {
return(type);
}
function getManager() {
return(commandManager);
}
function getOutput() {
return({});
}
}
Symbol 20493 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.state.TransitionHandler] Frame 0
class com.mindcandy.diablo.puzzle.controller.state.TransitionHandler implements com.mindcandy.diablo.shared.controller.commands.Command
{
function TransitionHandler () {
}
}
Symbol 20494 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand extends com.mindcandy.diablo.shared.controller.commands.BaseCommand implements com.mindcandy.diablo.puzzle.controller.state.TransitionHandler
{
var name, env, window, game, engine, monster, intervalBeforeNextEvent;
function PuzzleCommand (manager, name) {
super(com.mindcandy.diablo.shared.controller.commands.CommandType.PUZZLES, manager);
this.name = name;
}
function read(context) {
env = com.mindcandy.diablo.shared.controller.Environment(context.env);
window = com.mindcandy.diablo.puzzle.view.GameWindow(context.window);
game = com.mindcandy.diablo.puzzle.model.Game(context.game);
engine = com.mindcandy.diablo.puzzle.controller.ApplicationEngine(context.engine);
monster = com.mindcandy.diablo.puzzle.controller.MonsterController(context.monster);
}
function getCurrentSession() {
return(game.getCurrentSession());
}
function fireEvent(name, type, context) {
_global.clearInterval(intervalBeforeNextEvent);
env.getEventManager().newEvent(name, type, context, PuzzleChallenge.NAME);
}
function fireEventAfter(name, type, delay) {
intervalBeforeNextEvent = _global.setInterval(this, "fireEvent", delay, name, type);
}
function getName() {
return(name);
}
}
Symbol 20495 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.ServiceResponseListener] Frame 0
class com.mindcandy.diablo.shared.controller.ServiceResponseListener
{
function ServiceResponseListener () {
}
}
Symbol 20496 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.PuzzleServiceCommand] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.PuzzleServiceCommand extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand implements com.mindcandy.diablo.shared.controller.ServiceResponseListener
{
var fireEvent;
function PuzzleServiceCommand (manager) {
super(manager);
}
function notifyResponse(response) {
if (response.isSuccess()) {
handleResponseSuccess(response);
} else {
handleResponseFailure(response);
}
}
function handleResponseSuccess(response) {
}
function handleResponseFailure(rx) {
trace("f service response failure - " + rx.getResponseMessage());
fireEvent(com.mindcandy.diablo.puzzle.controller.event.AppEvent.SERVICE_ERROR, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP, {code:rx.getResponseCode(), key:com.mindcandy.diablo.puzzle.controller.command.DisplayError.SERVICE_ERROR_KEY});
}
}
Symbol 20497 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.ScoreSession] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.ScoreSession extends com.mindcandy.diablo.puzzle.controller.command.PuzzleServiceCommand
{
var read, window, getCurrentSession, game, fireEventAfter;
function ScoreSession (manager) {
super(manager);
}
function execute(args, context, listener, sync) {
read(context);
window.showScoring();
var _local6 = getCurrentSession().getStatistics();
game.getGameStatistics().addPuzzleSessionStatistics(_local6);
fireEventAfter(com.mindcandy.diablo.puzzle.controller.event.AppEvent.SCORING_COMPLETE, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP, MOMENTARY_HIATUS);
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.ScoreSession";
var MOMENTARY_HIATUS = 1000;
}
Symbol 20498 MovieClip [__Packages.com.mindcandy.diablo.shared.content.AssetLoadManager] Frame 0
class com.mindcandy.diablo.shared.content.AssetLoadManager
{
function AssetLoadManager () {
}
}
Symbol 20499 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.Controller] Frame 0
class com.mindcandy.diablo.shared.controller.Controller
{
function Controller () {
}
}
Symbol 20500 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.BaseController] Frame 0
class com.mindcandy.diablo.shared.controller.BaseController implements com.mindcandy.diablo.shared.controller.Controller
{
var master;
function BaseController () {
}
function init(master) {
this.master = master;
}
function handleReady(subController) {
master.handleReady(this);
}
function handleFailed(sub, reason) {
master.handleFailed(this, reason);
}
function getMaster() {
return(master);
}
}
Symbol 20501 MovieClip [__Packages.com.mindcandy.diablo.shared.model.Entity] Frame 0
class com.mindcandy.diablo.shared.model.Entity
{
var properties, entityXMLNodeName;
function Entity (properties) {
this.properties = properties || (new Object());
}
function getProp(key) {
return(properties[key]);
}
function getNumericProp(key) {
return(Number(getProp(key)));
}
function getBooleanProp(key) {
return(getProp(key).toString() === "true");
}
function setProp(key, value) {
properties[key] = value;
}
function hasProp(key) {
return(properties[key] != undefined);
}
function getProps() {
return(properties);
}
function toXML() {
var _local2 = ("\n<" + entityXMLNodeName) + ">";
trace("f " + _local2);
for (var prop in this) {
if (prop != "entityXMLNodeName") {
switch (typeof(this[prop])) {
case "boolean" :
case "movieclip" :
case "number" :
case "string" :
_local2 = _local2 + (((((("\n<" + prop) + ">") + this[prop]) + "</") + prop) + ">");
break;
case "function" :
case "null" :
case "undefined" :
_local2 = _local2 + (("\n<" + prop) + "/>");
break;
case "object" :
if (this[prop].toXML != undefined) {
_local2 = _local2 + (("\n<" + prop) + ">");
_local2 = _local2 + this[prop].toXML().toString();
_local2 = _local2 + (("\n</" + prop) + ">");
} else {
_local2 = _local2 + (((((("\n<" + prop) + ">") + this[prop]) + "</") + prop) + ">");
}
break;
}
}
}
_local2 = _local2 + (("\n</" + entityXMLNodeName) + ">");
var _local3 = new XML(_local2);
_local3.ignoreWhite = true;
return(_local3);
}
function destroy(destroyAll) {
var _local3 = destroyAll || false;
for (var prop in this) {
switch (typeof(this[prop])) {
case "object" :
if ((this[prop].destroy != undefined) && (_local3)) {
this[prop].destroy(true);
} else {
this[prop] = null;
}
break;
default :
this[prop] = null;
}
}
}
}
Symbol 20502 MovieClip [__Packages.com.mindcandy.diablo.shared.model.inventory.Inventory] Frame 0
class com.mindcandy.diablo.shared.model.inventory.Inventory extends com.mindcandy.diablo.shared.model.Entity
{
var roomMap, changeMap, type;
function Inventory (type) {
super();
roomMap = new com.mindcandy.data.holder.map.HashMap();
changeMap = new com.mindcandy.diablo.shared.model.inventory.ChangeMap(type);
this.type = type;
}
function put(key, item) {
var _local4 = item.getRoom().getId();
if (!containsKey(_local4)) {
roomMap.put(_local4, new com.mindcandy.data.holder.map.HashMap());
}
var _local5 = get(_local4);
_local5.put(key, item);
return(item);
}
function updateChangeMap(changeItem) {
changeMap.put(changeItem.getId(), changeItem);
}
function getChangeMap() {
return(changeMap);
}
function remove(targetItem) {
var _local3 = targetItem.getRoom().getId();
var _local4 = get(_local3);
_local4.remove(targetItem.getId());
if (_local4.isEmpty()) {
roomMap.remove(_local3);
}
return(targetItem);
}
function setLocation(targetItem, room) {
if (room != undefined) {
if (room.getId() == -1) {
trace("f set X in set location");
targetItem.setX(0);
targetItem.setY(0);
targetItem.setZ(0);
}
var _local4 = targetItem.getRoom().getId();
var _local5 = get(_local4);
remove(com.mindcandy.diablo.shared.model.InventoryItem(_local5.get(targetItem.getId())));
targetItem.setRoom(room);
put(targetItem.getId(), targetItem);
}
}
function getUnassignedItems(Void) {
return(get(UNASSIGNED_KEY));
}
function getTotalOwnedAssetUnPlaced(asset) {
var _local3 = getUnassignedItems().iterator();
return(getTotalAsset(_local3, asset));
}
function getTotalOwnedAssetPlaced(asset) {
var _local3 = roomMap.getKeys();
var _local4 = new com.mindcandy.data.holder.map.HashMap();
var _local5 = 0;
for ( ; _local5 < _local3.length ; _local5++) {
if (_local3[_local5] != "-1") {
_local4.putAll(get(_local3[_local5]));
}
}
var _local6 = _local4.iterator();
return(getTotalAsset(_local6, asset));
}
function getTotalAsset(list, asset) {
var _local4 = 0;
var _local5 = asset.getDetails().getPath();
while (list.hasNext()) {
var _local6 = com.mindcandy.diablo.shared.model.InventoryItem(list.next());
if (_local6.getAssetDetails().getPath() == _local5) {
_local4++;
}
}
return(_local4);
}
function get(key) {
return(org.as2lib.data.holder.Map(roomMap.get(key)));
}
function getKeys(Void) {
return(roomMap.getKeys());
}
function getValues(Void) {
return(roomMap.getValues());
}
function iterator(Void) {
return(new org.as2lib.data.holder.map.ValueMapIterator(roomMap));
}
function valueIterator(Void) {
return(iterator());
}
function keyIterator(Void) {
return(new org.as2lib.data.holder.map.KeyMapIterator(roomMap));
}
function size(Void) {
return(getKeys().length);
}
function containsKey(key) {
return(roomMap.containsKey(key));
}
function getType() {
return(type);
}
var UNASSIGNED_KEY = "-1";
}
Symbol 20503 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.PuzzleType] Frame 0
class com.mindcandy.diablo.puzzle.model.PuzzleType
{
var id, name, displayName, level, highScore, averageScore, puzzleThumb, played;
function PuzzleType (id, name, level, played) {
this.id = id;
this.name = name;
displayName = com.mindcandy.diablo.shared.controller.Environment.getInstance().getTextManager().getText("puzzlepalace.puzzlename." + name);
this.level = level;
highScore = 0;
averageScore = 0;
puzzleThumb = new com.mindcandy.diablo.puzzle.model.PuzzleThumb(this.id, com.mindcandy.diablo.shared.controller.Environment.getInstance().getUrlManager().getPuzzleThumbURL(name));
this.played = played;
}
function getId() {
return(id);
}
function setId(id) {
this.id = id;
}
function getName() {
return(name);
}
function setName(name) {
this.name = name;
}
function getLevel() {
return(level);
}
function setLevel(level) {
this.level = level;
}
function getPuzzleThumb() {
return(puzzleThumb);
}
function setHighScore(highScore) {
this.highScore = highScore;
}
function setAverageScore(averageScore) {
this.averageScore = averageScore;
}
function getHighScore() {
return(highScore);
}
function getAverageScore() {
return(averageScore);
}
function getDisplayName() {
return(displayName);
}
function setDisplayName(displayName) {
this.displayName = displayName;
}
function isPlayed() {
return(played);
}
function setPlayed(played) {
this.played = played;
}
}
Symbol 20504 MovieClip [__Packages.com.mindcandy.diablo.shared.view.animation.AnimationComplete] Frame 0
class com.mindcandy.diablo.shared.view.animation.AnimationComplete
{
function AnimationComplete () {
}
}
Symbol 20505 MovieClip [__Packages.com.mindcandy.diablo.shared.view.button.ButtonEventListener] Frame 0
class com.mindcandy.diablo.shared.view.button.ButtonEventListener
{
function ButtonEventListener () {
}
}
Symbol 20506 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.DisplayMonsterMenu] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.DisplayMonsterMenu extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand implements com.mindcandy.diablo.shared.view.button.ButtonEventListener, com.mindcandy.diablo.shared.view.animation.AnimationComplete
{
var read, window, game, monsterControllers;
function DisplayMonsterMenu () {
super();
}
function execute(args, context, listener, sync) {
read(context);
window.showMonsterMenu(this, game);
}
function animFinished(animationDetails) {
setupPortraits();
}
function setupPortraits() {
monsterControllers = new com.mindcandy.data.holder.map.HashMap();
var _local2 = window.selectMonsterPanel.monsterPortraits;
var _local3 = 0;
for ( ; _local3 < _local2.length ; _local3++) {
var _local4 = com.mindcandy.diablo.puzzle.view.panel.MonsterPortraitPanel(_local2[_local3]);
var _local5 = _local4.monsterButton;
var _local6 = _local5.getMonster();
var _local7 = new com.mindcandy.diablo.puzzle.view.panel.MonsterPanel(_local5.getDisplayClip());
var _local8 = new com.mindcandy.diablo.puzzle.controller.MonsterController(_local6, _local7, window);
_local8.setAllowInterupts(false);
monsterControllers.put(_local6.getName(), _local8);
setupMonsterPortraitButton(_local5, com.mindcandy.diablo.puzzle.controller.event.AppEvent.MONSTER_CHOSEN);
}
}
function setupMonsterPortraitButton(button, eventName) {
button.setActive(true);
button.setEventName(eventName);
button.setEventType(com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP);
button.setListener(this);
button.show();
}
function handleClick(item) {
var _local3 = monsterControllers.valueIterator();
while (_local3.hasNext()) {
com.mindcandy.diablo.puzzle.controller.MonsterController(_local3.next()).destroy();
}
monsterControllers.clear();
}
function handleRollOver(item) {
var _local3 = monsterControllers.valueIterator();
while (_local3.hasNext()) {
com.mindcandy.diablo.puzzle.controller.MonsterController(_local3.next()).talk(null);
}
var _local4 = item.getContext().selectedMonster;
var _local5 = com.mindcandy.diablo.puzzle.controller.MonsterController(monsterControllers.get(_local4.getName()));
_local5.react(com.mindcandy.diablo.puzzle.model.MonsterMoodType.HAPPY);
_local5.talk(MONSTER_ROLLOVER_SPEECH);
}
function handleRollOut(item) {
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.DisplayMenu";
static var MONSTER_ROLLOVER_SPEECH = "Pick Me!";
}
Symbol 20507 MovieClip [__Packages.com.mindcandy.utils.encrypt.TimeSliced] Frame 0
class com.mindcandy.utils.encrypt.TimeSliced
{
function TimeSliced () {
}
}
Symbol 20508 MovieClip [__Packages.com.mindcandy.utils.encrypt.SpiroUncrypt] Frame 0
class com.mindcandy.utils.encrypt.SpiroUncrypt implements com.mindcandy.utils.encrypt.TimeSliced
{
var moveArray, imageClip, listener, bitmapWidth, bitmapHeight, myBitmapData, currentInterval, lastBurstTime, totalBurstTime, decryptCallbackStamp, totalTime, decryptIntervalFunc, decryptIntervalHandle, totalPixels, stringBuffer, charMap, endOfTransmission, xPos, yPos, rotationDirection, moveDirection, legCounter, channelMap, distToTravel, distTravelled, iterations;
function SpiroUncrypt () {
moveArray = [0, -1, 1, 0, 0, 1, -1, 0];
imageClip = _root.createEmptyMovieClip("configLoader" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
}
static function process(URL, listener) {
var _local4 = new com.mindcandy.utils.encrypt.SpiroUncrypt();
_local4.loadImage(URL, listener);
}
function loadImage(target, listener) {
var _local4 = new Object();
var _local5 = new MovieClipLoader();
this.listener = listener;
_local4.scope = this;
_local4.onLoadInit = function () {
this.scope.imageLoaded();
};
_local5.addListener(_local4);
_local5.loadClip(target, imageClip);
}
function imageLoaded() {
bitmapWidth = imageClip._width;
bitmapHeight = imageClip._height;
myBitmapData = new flash.display.BitmapData(bitmapWidth, bitmapHeight, false, 0);
myBitmapData.draw(imageClip);
imageClip.removeMovieClip();
start();
currentInterval = 40;
lastBurstTime = 0;
totalBurstTime = 0;
decryptCallbackStamp = getTimer();
totalTime = 0;
decryptIntervalFunc = com.mindcandy.utils.delegate.Delegate.create(this, doDecrypt);
decryptIntervalHandle = _global.setInterval(decryptIntervalFunc, currentInterval);
}
function doDecrypt() {
var _local2 = getTimer() - decryptCallbackStamp;
decryptCallbackStamp = getTimer();
if ((tweakCounter--) > 0) {
if (lastBurstTime <= (currentInterval * (1 - loadSafety))) {
pixelsPerStep = pixelsPerStep + deltaPPS;
} else {
pixelsPerStep = pixelsPerStep - deltaPPS;
}
}
if (pixelsPerStep < minPixelsPerStep) {
pixelsPerStep = minPixelsPerStep;
}
totalTime = totalTime + _local2;
if (!nextStep()) {
_global.clearInterval(decryptIntervalHandle);
com.mindcandy.utils.delegate.Delegate.destroy(decryptIntervalFunc);
trace(("f Total Burst Time: " + totalBurstTime) + "ms");
trace("f Total Time" + totalTime);
}
_global.updateAfterEvent();
}
function uncrypt() {
totalPixels = bitmapWidth * bitmapHeight;
stringBuffer = "";
var _local2 = getTimer();
charMap = new Array(256);
var _local3 = 0;
while (_local3 < 256) {
charMap[_local3] = String.fromCharCode(_local3);
_local3++;
}
var _local4 = 4;
var _local5 = Math.floor(bitmapWidth / 2);
var _local6 = Math.floor(bitmapHeight / 2);
var _local7 = (myBitmapData.getPixel(_local5, _local6) >> 16) & 255;
if (_local7 > 67) {
_local7 = 1;
var _local8 = 2;
} else {
_local7 = -1;
var _local8 = 4;
}
var _local9 = true;
var _local10 = (myBitmapData.getPixel(_local5, _local6) >> 8) & 255;
var _local11 = 1;
var _local12 = 0;
var _local13 = 0;
var _local14 = 0;
for ( ; _local14 < totalPixels ; _local14++) {
_local5 = _local5 + moveArray[_local8];
_local6 = _local6 + moveArray[_local8 + 1];
_local12++;
var _local15 = myBitmapData.getPixel(_local5, _local6);
var _local16 = (_local15 >> 16) & 255;
var _local17 = (_local15 >> 8) & 255;
var _local18 = (_local15 >> 0) & 255;
switch (_local10) {
case 60 :
var _local19 = _local18;
var _local20 = _local17;
var _local21 = _local16;
break;
case 68 :
_local19 = _local18;
_local20 = _local16;
_local21 = _local17;
break;
case 76 :
_local19 = _local17;
_local20 = _local18;
_local21 = _local16;
break;
case 84 :
_local19 = _local16;
_local20 = _local18;
_local21 = _local17;
break;
case 92 :
_local19 = _local17;
_local20 = _local16;
_local21 = _local18;
break;
case 100 :
_local19 = _local16;
_local20 = _local17;
_local21 = _local18;
break;
default :
_local19 = _local18;
_local20 = _local17;
_local21 = _local16;
}
stringBuffer = stringBuffer + ((charMap[_local19] + charMap[_local20]) + charMap[_local21]);
if ((_local16 == _local4) || ((_local17 == _local4) || (_local18 == _local4))) {
_local13 = _local14 * 3;
break;
}
if (_local12 == _local11) {
_local12 = 0;
var _local8 = _local8 + (_local7 * 2);
if (_local8 > 7) {
_local8 = 0;
} else if (_local8 < 0) {
_local8 = 6;
}
_local9 = !_local9;
if (_local9) {
_local11++;
}
}
}
listener.handleComplete(stringBuffer.slice(0, _local13));
var _local22 = getTimer();
trace(((("f " + (myBitmapData.width * myBitmapData.height)) + " pixels done in ") + (_local22 - _local2)) + "ms");
}
function start() {
totalPixels = bitmapWidth * bitmapHeight;
stringBuffer = "";
charMap = new Array(256);
var _local2 = 0;
while (_local2 < 256) {
charMap[_local2] = String.fromCharCode(_local2);
_local2++;
}
endOfTransmission = 4;
xPos = Math.floor(bitmapWidth / 2);
yPos = Math.floor(bitmapHeight / 2);
rotationDirection = (myBitmapData.getPixel(xPos, yPos) >> 16) & 255;
if (rotationDirection > 67) {
rotationDirection = 1;
moveDirection = 2;
} else {
rotationDirection = -1;
moveDirection = 4;
}
legCounter = true;
channelMap = (myBitmapData.getPixel(xPos, yPos) >> 8) & 255;
distToTravel = 1;
distTravelled = 0;
iterations = -1;
}
function nextStep() {
var _local2 = getTimer();
var _local3 = pixelsPerStep;
while ((_local3--) > 0) {
iterations++;
xPos = xPos + moveArray[moveDirection];
yPos = yPos + moveArray[moveDirection + 1];
distTravelled++;
var _local4 = myBitmapData.getPixel(xPos, yPos);
var _local5 = (_local4 >> 16) & 255;
var _local6 = (_local4 >> 8) & 255;
var _local7 = (_local4 >> 0) & 255;
switch (channelMap) {
case 60 :
var _local8 = _local7;
var _local9 = _local6;
var _local10 = _local5;
break;
case 68 :
_local8 = _local7;
_local9 = _local5;
_local10 = _local6;
break;
case 76 :
_local8 = _local6;
_local9 = _local7;
_local10 = _local5;
break;
case 84 :
_local8 = _local5;
_local9 = _local7;
_local10 = _local6;
break;
case 92 :
_local8 = _local6;
_local9 = _local5;
_local10 = _local7;
break;
case 100 :
_local8 = _local5;
_local9 = _local6;
_local10 = _local7;
break;
default :
_local8 = _local7;
_local9 = _local6;
_local10 = _local5;
}
stringBuffer = stringBuffer + ((charMap[_local8] + charMap[_local9]) + charMap[_local10]);
if ((_local5 == endOfTransmission) || ((_local6 == endOfTransmission) || (_local7 == endOfTransmission))) {
var _local11 = iterations * 3;
listener.handleComplete(stringBuffer.slice(0, _local11));
return(false);
}
if (distTravelled == distToTravel) {
distTravelled = 0;
moveDirection = moveDirection + (rotationDirection * 2);
if (moveDirection > 7) {
moveDirection = 0;
} else if (moveDirection < 0) {
moveDirection = 6;
}
legCounter = !legCounter;
if (legCounter) {
distToTravel++;
}
}
}
var _local12 = getTimer();
lastBurstTime = _local12 - _local2;
totalBurstTime = totalBurstTime + lastBurstTime;
return(true);
}
var pixelsPerStep = 100;
var tweakCounter = 10;
static var minPixelsPerStep = 100;
static var deltaPPS = 200;
static var loadSafety = 0.25;
}
Symbol 20509 MovieClip [__Packages.com.mindcandy.diablo.shared.events.EventListener] Frame 0
class com.mindcandy.diablo.shared.events.EventListener
{
function EventListener () {
}
}
Symbol 20510 MovieClip [__Packages.com.mindcandy.diablo.shared.xml.XMLResponseParser] Frame 0
class com.mindcandy.diablo.shared.xml.XMLResponseParser
{
function XMLResponseParser () {
}
}
Symbol 20511 MovieClip [__Packages.com.mindcandy.diablo.shared.xml.BaseResponseParser] Frame 0
class com.mindcandy.diablo.shared.xml.BaseResponseParser implements com.mindcandy.diablo.shared.xml.XMLResponseParser
{
var response;
function BaseResponseParser () {
}
function parseResponseXML(xml) {
response = new com.mindcandy.diablo.shared.model.ServiceResponse();
parse(xml);
response.setData(getData());
return(response);
}
function parse(xml) {
parseChildren(xml);
}
function parseEnd(xml) {
}
function parseStart(xml) {
}
function parseChildren(xml, reverse) {
if (reverse) {
xml.childNodes.reverse();
}
if (xml.nodeName != null) {
parseStart(xml);
}
var _local4 = 0;
for ( ; _local4 < xml.childNodes.length ; _local4++) {
parse(xml.childNodes[_local4]);
}
if (xml.nodeName != null) {
parseEnd(xml);
}
}
function getData() {
return(null);
}
function getResponse() {
return(response);
}
function parseStatus(att) {
response.setResponseMessage(att.text);
response.setResponseCode(att.code);
}
}
Symbol 20512 MovieClip [__Packages.com.mindcandy.diablo.shared.view.ViewObject] Frame 0
class com.mindcandy.diablo.shared.view.ViewObject
{
function ViewObject () {
}
}
Symbol 20513 MovieClip [__Packages.com.mindcandy.diablo.shared.view.BaseViewObject] Frame 0
class com.mindcandy.diablo.shared.view.BaseViewObject implements com.mindcandy.diablo.shared.view.ViewObject
{
var target, mouseManager, dispatcher, physicalY, physicalYTop;
function BaseViewObject (target) {
this.target = target;
mouseManager = null;
dispatcher = null;
}
function getTarget(Void) {
return(target);
}
function setTarget(clip) {
target = clip;
}
function getEventDispatcher(Void) {
if (dispatcher == null) {
dispatcher = new com.mindcandy.diablo.shared.view.events.BaseEventDispatcher(this);
}
return(dispatcher);
}
function getMouseManager(Void) {
if (mouseManager == null) {
mouseManager = new com.mindcandy.diablo.shared.view.events.mouse.MouseManager(this);
}
return(mouseManager);
}
function getX(Void) {
return(target._x);
}
function getY(Void) {
return(target._y);
}
function getZ(Void) {
return(target.getDepth());
}
function setX(x) {
trace("f set X: " + x);
target._x = x;
}
function setY(y) {
target._y = y;
}
function setZ(z) {
target.swapDepths(z);
}
function getPhysicalX(Void) {
return(getDisplayClip()._width / 2);
}
function setPhysicalY(value) {
physicalY = value;
}
function getPhysicalY(Void) {
return(physicalY || (getDisplayClip()._height));
}
function setPhysicalYTop(value) {
physicalYTop = value;
}
function getPhysicalYTop(Void) {
return(physicalYTop || (getDisplayClip()._y));
}
function getDisplayClip() {
if (target.displayClip != undefined) {
return(target.displayClip);
}
return(target);
}
function bringToFront() {
var _local2 = target._parent.getNextHighestDepth();
setZ(_local2);
}
function show() {
target._visible = true;
}
function hide() {
target._visible = false;
}
function destroy() {
killMouseManager();
com.mindcandy.utils.movieclip.EmptyClip.empty(target);
}
function killMouseManager(Void) {
dispatcher = null;
mouseManager.destroy();
mouseManager = null;
}
}
Symbol 20514 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.MonsterPortraitPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.MonsterPortraitPanel extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var target, monsterButton, monsterLabel;
function MonsterPortraitPanel (parent, monster) {
super();
target = parent[getClipNameFor(monster)];
monsterButton = new com.mindcandy.diablo.puzzle.view.button.MonsterButton(target.monster, monster);
monsterButton.setActive(true);
monsterLabel = TextField(target.label);
monsterLabel.text = monster.getName();
}
function getClipNameFor(monster) {
return(monster.getName().toLowerCase());
}
function setButtonListener(listener) {
monsterButton.setListener(listener);
}
function setButtonEvent(name, type) {
monsterButton.setEventName(name);
monsterButton.setEventType(type);
}
function destroy() {
super.destroy();
monsterButton.destroy();
}
}
Symbol 20515 MovieClip [__Packages.com.mindcandy.diablo.shared.content.application.Application] Frame 0
class com.mindcandy.diablo.shared.content.application.Application
{
function Application () {
}
}
Symbol 20516 MovieClip [__Packages.com.mosesSupposes.fuse.FuseKitCommon] Frame 0
class com.mosesSupposes.fuse.FuseKitCommon
{
static var logOutput;
function FuseKitCommon () {
}
static function _cts() {
return("|_tint|_tintPercent|_brightness|_brightOffset|_contrast|_invertColor|_colorReset|_colorTransform|");
}
static function _resetTo100() {
return("|_alpha|_contrast|_invertColor|_tintPercent|_xscale|_yscale|_scale|");
}
static function _resetTo0() {
return("|_brightness|_brightOffset|_colorReset|_rotation|");
}
static function _underscoreable() {
return(_cts() + "_frame|_x|_y|_xscale|_yscale|_scale|_width|_height|_size|_rotation|_alpha|_fade|_visible|");
}
static function _cbprops() {
return("|skipLevel|cycles|roundResults|extra1|extra2|func|scope|args|startfunc|startscope|startargs|updfunc|updscope|updargs|");
}
static function _fuseEvents() {
return("|onStart|onStop|onPause|onResume|onAdvance|onComplete|");
}
static function _fuseprops() {
return("|command|label|delay|event|eventparams|target|addTarget|trigger|startAt|ease|easing|seconds|duration|time|");
}
static function _validateFuseCommand(c, inGroup, hasArg, outputLevel, simple) {
var _local7 = false;
var _local8 = false;
switch (c) {
case "start" :
case "stop" :
case "pause" :
case "resume" :
case "setStartProps" :
if (inGroup != true) {
_local7 = true;
}
break;
case "delay" :
case "trigger" :
if (simple == true) {
if (hasArg == true) {
_local7 = true;
}
} else {
_local8 = true;
}
inGroup = false;
break;
case "skipTo" :
if (!((hasArg == true) && (inGroup != true))) {
break;
}
_local7 = true;
}
if ((outputLevel > 0) && (_local7 == false)) {
error("109", c, inGroup, _local8);
}
return(_local7);
}
static function output(s) {
if (typeof(logOutput) == "function") {
logOutput(s);
} else {
trace(s);
}
}
static function error(errorCode) {
var _local3 = arguments[1];
var _local4 = arguments[2];
var _local5 = arguments[3];
if (VERBOSE != true) {
output(("[FuseKitCommon#" + errorCode) + "]");
return(undefined);
}
var _local6 = "";
var _local7 = newline;
switch (errorCode) {
case "001" :
_local6 = _local6 + "** ERROR: When using simpleSetup to extend prototypes, you must pass the Shortcuts class. **";
_local6 = _local6 + (_local7 + " import com.mosesSupposes.fuse.*;");
_local6 = _local6 + ((_local7 + " ZigoEngine.simpleSetup(Shortcuts);") + _local7);
break;
case "002" :
_local6 = _local6 + "** ZigoEngine.doShortcut: shortcuts missing. Use the setup commands: import com.mosesSupposes.fuse.*; ZigoEngine.register(Shortcuts); **";
break;
case "003" :
_local6 = _local6 + ((_local7 + "*** Error: DO NOT use #include \"lmc_tween.as\" with this version of ZigoEngine! ***") + _local7);
break;
case "004" :
_local6 = _local6 + (("** ZigoEngine.doTween - too few arguments [" + _local3) + "].");
if ((_local4) == true) {
_local6 = _local6 + " If you are trying to use Object Syntax without Fuse, pass FuseItem in your register() or simpleSetup() call. **";
} else {
_local6 = _local6 + " Object syntax call failed. **";
}
break;
case "005" :
_local6 = _local6 + (((("** ZigoEngine.doTween - missing targets[" + _local3) + "] and/or props[") + _local4) + "] **");
break;
case "006" :
_local6 = _local6 + (("** Error: easing shortcut string not recognized (\"" + _local3) + "\"). You may need to pass the in PennerEasing class during register or simpleSetup. **");
break;
case "007" :
_local6 = _local6 + (((("- ZigoEngine: Target locked [" + _local3) + "], ignoring tween call [") + _local4) + "]");
break;
case "008" :
_local6 = _local6 + "** You must register the Shortcuts class in order to use easy string-type callback parsing. **";
break;
case "009" :
_local6 = _local6 + (("** ZigoEngine: A callback parameter \"" + _local3) + "\" was not recognized. **");
break;
case "010" :
_local6 = _local6 + ((((("** " + ((_local3 == true) ? "ZigoEngine" : "FuseItem")) + " unable to parse ") + ((_local4 == 1) ? "callback[" : (String(_local4) + " callbacks["))) + _local5) + "]. Try using the syntax {scope:this, func:\"myFunction\"} **");
break;
case "011" :
_local6 = _local6 + (((("- ZigoEngine: Callbacks discarded via skipLevel 2 option [" + _local3) + "|") + _local4) + "].");
break;
case "012" :
_local6 = _local6 + (((((("- Engine set props or ignored no-change tween on: " + _local3) + ", props passed:[") + _local4) + "], endvals passed:[") + _local5) + "]");
break;
case "013" :
_local6 = _local6 + (((((("- Engine added tween on:\n\ttargets:[" + _local3) + "]\n\tprops:[") + _local4) + "]\n\tendvals:[") + _local5) + "]");
break;
case "014" :
_local6 = _local6 + "** Error: easing function passed is not usable with this engine. Functions need to follow the Robert Penner model. **";
break;
case "015" :
_local6 = _local6 + "** Error: The CustomEasing class must be passed during setup (register or simpleSetup) to use custom easing Arrays. **";
break;
case "016" :
_local6 = _local6 + (("[ ZigoEngine.TIME_MULTIPLIER: " + String(Number(Number(_local3) * 100))) + "% ]");
break;
case "101" :
_local6 = _local6 + "** ERROR: Fuse simpleSetup was removed in version 2.0! **";
_local6 = _local6 + (_local7 + " You must now use the following commands:");
_local6 = _local6 + ((_local7 + _local7) + "\timport com.mosesSupposes.fuse.*;");
_local6 = _local6 + (_local7 + "\tZigoEngine.simpleSetup(Shortcuts, PennerEasing, Fuse);");
_local6 = _local6 + ((_local7 + "Note that PennerEasing is optional, and FuseFMP is also accepted. (FuseFMP.simpleSetup is run automatically if included.)") + _local7);
break;
case "102" :
_local6 = _local6 + (((("** Fuse " + _local3) + " index or label not found (") + _local4) + ") or out of range. **");
break;
case "103" :
_local6 = _local6 + (((("** Fuse skipTo (" + _local3) + ") ignored - targets the current index (") + _local4) + "). **");
break;
case "104" :
_local6 = _local6 + (("** Fuse fastForward index out of play range (" + _local3) + ") - skipTo has been called instead. **");
break;
case "105" :
_local6 = _local6 + "** An unsupported Array method was called on Fuse. **";
break;
case "106" :
_local6 = _local6 + "** ERROR: You have not set up Fuse correctly. **";
_local6 = _local6 + (_local7 + "You must now use the following commands (PennerEasing is optional).");
_local6 = _local6 + (_local7 + "\timport com.mosesSupposes.fuse.*;");
_local6 = _local6 + ((_local7 + "\tZigoEngine.simpleSetup(Shortcuts, PennerEasing, Fuse);") + _local7);
break;
case "107" :
_local6 = _local6 + "** Fuse :: id not found - Aborting open(). **";
break;
case "108" :
_local6 = _local6 + "** Fuse.startRecent: No recent Fuse found to start! **";
break;
case "109" :
_local6 = _local6 + (("** Command \"" + _local3) + "\" discarded. ");
if (_local4 == true) {
_local6 = _local6 + "Not allowed within a group. **";
} else if (_local5 == true) {
_local6 = _local6 + (("Not supported in Object Syntax, use the " + _local3) + " property instead. **");
} else {
_local6 = _local6 + "The command may be unrecognized or missing an argument. **";
}
break;
case "110" :
_local6 = _local6 + (((("** " + _local3) + " illegal Fuse property discarded:\"") + _local4) + "\". Bezier keywords other than x and y cannot be set as start values. **");
break;
case "112" :
_local6 = _local6 + "** Fuse: missing com.mosesSupposes.fuse.ZigoEngine! Cannot tween. **";
break;
case "113" :
_local6 = _local6 + "** FuseItem: A callback has been discarded. Actions with a command may only contain: label, delay, scope, args. **";
break;
case "115" :
_local6 = _local6 + ((_local3 + " overlapping prop discarded: ") + _local4);
break;
case "116" :
_local6 = _local6 + ("** FuseItem Error: Delays within groups (arrays) and start/update callbacks are not supported when using Fuse without ZigoEngine. Although you need to restructure your Fuse, it should be possible to achieve the same results. **" + _local7);
break;
case "117" :
_local6 = _local6 + (("** " + _local3) + ": infinite cycles are not allowed within Fuses - discarded. **");
break;
case "118" :
_local6 = _local6 + ((("** " + _local3) + ": No targets found!") + ((_local4 == true) ? " [Unable to set start props] **" : " [Skipping tween parameters in this action] **"));
break;
case "119" :
_local6 = _local6 + ((((("** " + _local3) + ": ") + ((_local4 == 1) ? "" : (_local4 + " actions in the group"))) + " missing targets") + ((_local5 == true) ? " during setStartProps **" : " **"));
break;
case "120" :
_local6 = _local6 + (((("** " + _local3) + ": conflict with \"") + _local4) + "\". Property might be doubled within a grouped-action array. **");
break;
case "121" :
_local6 = _local6 + "** Fuse timecode formatting requires \"00:\" formatting (example:\"01:01:33\" yields 61.33 seconds.) **";
break;
case "122" :
_local6 = _local6 + (("** Event \"" + _local3) + "\" reserved by Fuse. **");
break;
case "123" :
_local6 = _local6 + (("** A Fuse event parameter failed in " + _local3) + " **");
break;
case "124" :
_local6 = _local6 + (((("** " + _local3) + ": trigger:") + _local4) + " ignored - only one trigger is allowed per action **");
break;
case "125" :
_local6 = _local6 + (_local3 + " Warning - fastForward hit an item during its tween cycle, may malfunction.");
break;
case "201" :
_local6 = _local6 + (("**** FuseFMP cannot initialize argument " + _local3) + " (BitmapFilters cannot be applied to this object type) ****");
break;
case "202" :
_local6 = _local6 + (((("** FuseFMP error: A " + _local3) + " could not be created for ") + _local4) + " **");
break;
case "203" :
_local6 = _local6 + (("** FuseFMP.setFilterProps - too few arguments passed (" + _local3) + ") - minimum 2 required. **");
break;
case "204" :
_local6 = _local6 + (("** FuseFMP.setFilterProps could not locate the filter passed. (" + _local3) + ") **");
}
output(_local6);
}
static function parseCallback(callback, targets, outputLevel, callerIsEngine, addprefix) {
if (callback._vcb == true) {
return(callback);
}
var _local7 = {_vcb:true, skipLevel:_global.com.mosesSupposes.fuse.ZigoEngine.SKIP_LEVEL, cycles:1};
if (callback == undefined) {
return(_local7);
}
var _local8 = [];
if (typeof(callback) == "object") {
if ((callback.skipLevel != undefined) && ((typeof(callback.skipLevel) == "number") && (callback.skipLevel != _global.com.mosesSupposes.fuse.ZigoEngine.SKIP_LEVEL))) {
if ((callback.skipLevel >= 0) && (callback.skipLevel <= 2)) {
_local7.skipLevel = callback.skipLevel;
}
}
if (callback.cycles != undefined) {
if ((typeof(callback.cycles) == "number") && (callback.cycles > -1)) {
_local7.cycles = callback.cycles;
} else if (callback.cycles.toUpperCase() == "LOOP") {
_local7.cycles = 0;
}
}
if (callback.extra1 != undefined) {
_local7.extra1 = callback.extra1;
}
if (callback.extra2 != undefined) {
_local7.extra2 = callback.extra2;
}
if ((callback.roundResults === true) || (callback.roundResults === false)) {
_local7.roundResults = callback.roundResults;
}
} else {
callback = {func:callback};
}
var _local9 = ["start", "upd", ""];
var _local10 = _global.com.mosesSupposes.fuse.Shortcuts.parseStringTypeCallback;
for (var i in _local9) {
var _local11 = _local9[i];
var _local12 = callback[_local11 + "func"];
if ((_local12 != undefined) && ((typeof(_local12) == "string") && (_local12.indexOf("(") > -1))) {
if (_local10 != undefined) {
var _local13 = _local10(_local12);
if (_local13.func != undefined) {
callback[_local11 + "scope"] = _local13.scope;
callback[_local11 + "func"] = _local13.func;
callback[_local11 + "args"] = _local13.args;
}
} else if (outputLevel > 0) {
error("008");
}
}
}
var _local14 = callback.scope;
for (var i in callback) {
var _local15 = i.toLowerCase().indexOf("func");
if (_local15 > -1) {
var _local16 = i.slice(0, _local15);
var _local17 = callback[i];
var _local18 = callback[_local16 + "args"];
var _local19 = ((callback[_local16 + "scope"] == undefined) ? (_local14) : (callback[_local16 + "scope"]));
if ((typeof(_local17) == "string") && (_local19[_local17] == undefined)) {
for (var j in targets) {
var _local20 = targets[j];
if (typeof(_local20[_local17]) == "function") {
_local19 = _local20;
break;
}
if (typeof(_local20._parent[_local17]) == "function") {
_local19 = _local20._parent;
break;
}
}
if ((_local19 == undefined) && (_level0[_local17] != undefined)) {
_local19 = _level0;
}
if ((_local19 == undefined) && (_global[_local17] != undefined)) {
_local19 = _global;
}
}
if (typeof(_local17) != "function") {
if (typeof(_local19[String(_local17)]) == "function") {
_local17 = _local19[String(_local17)];
} else {
_local17 = eval (String(_local17));
}
}
if (_local17 == undefined) {
_local8.push(String((((((((addprefix == null) ? (i) : (addprefix + i)) + ":") + ((typeof(callback[i]) == "string") ? (("\"" + callback[i]) + "\"") : (callback[i]))) + "/") + _local16) + "scope:") + _local19));
} else {
if ((_local18 != undefined) && (!(_local18 instanceof Array))) {
_local18 = [_local18];
}
if (_local16 == "") {
_local16 = "end";
}
_local7[_local16] = {s:_local19, f:_local17, a:_local18};
if (callerIsEngine == true) {
_local7[_local16].id = ++cbTicker;
}
if (_local16 == "start") {
_local7.start.fired = false;
}
}
} else if (_cbprops().indexOf(("|" + i) + "|") == -1) {
error("009", i);
}
}
if ((_local8.length > 0) && (outputLevel > 0)) {
if (outputLevel > 0) {
error("010", callerIsEngine, _local8.length, _local8.toString());
}
}
return(_local7);
}
static var VERSION = "Fuse Kit 2.1.3r1 Copyright (c) 2006 Moses Gunesch, MosesSupposes.com under MIT Open Source License";
static var VERBOSE = true;
static var ALL = "ALL";
static var ALLCOLOR = "ALLCOLOR";
static var cbTicker = 0;
}
Symbol 20517 MovieClip [__Packages.com.mosesSupposes.fuse.Fuse] Frame 0
class com.mosesSupposes.fuse.Fuse extends Array
{
var _nID, _aDefaultTargs, length, scope, _nIndex, _oDel1, dispatchEvent, label, autoClear, duration, easing;
function Fuse (fuseAction) {
super();
mx.events.EventDispatcher.initialize(this);
_nID = registerInstance(this);
_nState = -1;
_aDefaultTargs = new Array();
if (arguments.length > 0) {
splice.apply(this, new Array(0, 0).concat(arguments));
}
var _local4 = ["concat", "join", "sort", "sortOn"];
for (var i in _local4) {
com.mosesSupposes.fuse.Fuse.prototype[_local4[i]] = function () {
if (com.mosesSupposes.fuse.Fuse.OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("105");
}
};
}
}
function addEventListener(event, handler) {
}
function removeEventListener(event, handler) {
}
function destroy() {
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output(getHandle() + " destroy.");
}
stop(true);
splice(0, length);
_aDefaultTargs = null;
scope = null;
_global.ASSetPropFlags(this, null, 0, 7);
var _local2 = _nID;
for (var i in this) {
delete this[i];
}
removeInstanceAt(_local2, true);
}
static function getInstance(idOrLabel) {
if (typeof(idOrLabel) == "number") {
return(_aInstances[idOrLabel]);
}
if (typeof(idOrLabel) == "string") {
for (var i in _aInstances) {
if (com.mosesSupposes.fuse.Fuse(_aInstances[i]).label == idOrLabel) {
return(_aInstances[i]);
}
}
}
return(null);
}
static function getInstances(stateFilter, targets) {
var _local4 = (stateFilter == null) || (stateFilter.toUpperCase() == "ALL");
if (!(targets instanceof Array)) {
targets = arguments.slice(1);
}
var _local5 = [];
for (var i in _aInstances) {
var _local6 = _aInstances[i];
if (_aInstances[i] == null) {
continue;
}
if ((_local4 == false) && (_local6.state != stateFilter)) {
continue;
}
var _local7 = targets.length == 0;
if (_local7 == false) {
if (_local7 == true) {
continue;
}
var _local8 = _local6.getActiveTargets(true);
for (var j in targets) {
for (var k in _local8) {
if (_local8[k] == targets[j]) {
_local7 = true;
break;
}
}
}
}
if (_local7 == true) {
_local5.unshift(_local6);
}
}
return(_local5);
}
function get id() {
return(_nID);
}
function get state() {
switch (_nState) {
case -1 :
return("stopped");
case 0 :
return("paused");
case 1 :
return("playing");
}
return(undefined);
}
function get currentIndex() {
return(_nIndex);
}
function get currentLabel() {
return(this[_nIndex].label);
}
function get target() {
return(((_aDefaultTargs.length == 1) ? (_aDefaultTargs[0]) : (_aDefaultTargs)));
}
function set target(t) {
delete _aDefaultTargs;
if (t != null) {
addTarget(t);
}
//return(target);
}
function addTarget(t) {
if (_aDefaultTargs == null) {
_aDefaultTargs = [];
}
if (arguments[0] instanceof Array) {
arguments = arguments[0];
}
for (var i in arguments) {
var _local3 = false;
for (var j in _aDefaultTargs) {
if (arguments[i] == _aDefaultTargs[j]) {
_local3 = true;
break;
}
}
if (_local3 == false) {
_aDefaultTargs.push(arguments[i]);
}
}
}
function removeTarget(t) {
if ((_aDefaultTargs == null) || (_aDefaultTargs.length == 0)) {
return(undefined);
}
if (arguments[0] instanceof Array) {
arguments = arguments[0];
}
for (var i in arguments) {
for (var j in _aDefaultTargs) {
if (arguments[i] == _aDefaultTargs[j]) {
_aDefaultTargs.splice(Number(j), 1);
}
}
}
}
function getActiveTargets(includeDefaults) {
if (_nState == -1) {
return([]);
}
if (includeDefaults == true) {
var _local3 = _aDefaultTargs.slice();
} else {
var _local3 = [];
}
return(com.mosesSupposes.fuse.FuseItem(this[_nIndex]).getActiveTargets(_local3));
}
function clone() {
var _local2 = [];
var _local3 = 0;
for ( ; _local3 < length ; _local3++) {
_local2.push(com.mosesSupposes.fuse.FuseItem(this[_local3]).getInitObj());
}
var _local4 = new com.mosesSupposes.fuse.Fuse();
_local4.push.apply(_local4, _local2);
_local4.scope = scope;
_local4.target = target;
return(_local4);
}
function push(fuseAction) {
splice.apply(this, new Array(length, 0).concat(arguments));
return(length);
}
function pushTween(targets, props, endvals, seconds, ease, delay, callback) {
push({__buildMode:true, tweenargs:arguments});
return(length);
}
function pop() {
var _local2 = com.mosesSupposes.fuse.FuseItem(this[length - 1]).getInitObj();
splice(length - 1, 1);
return(_local2);
}
function unshift(fuseAction) {
splice.apply(this, new Array(0, 0).concat(arguments));
return(length);
}
function shift() {
var _local2 = com.mosesSupposes.fuse.FuseItem(this[0]).getInitObj();
splice(0, 1);
return(_local2);
}
function splice(startIndex, deleteCount, fuseAction) {
stop(true);
var _local6 = Number(arguments.shift());
if (_local6 < 0) {
_local6 = length + _local6;
}
deleteCount = Number(arguments.shift());
var _local7 = new Array();
var _local8 = 0;
for ( ; _local8 < arguments.length ; _local8++) {
var _local9 = ((arguments[_local8] instanceof com.mosesSupposes.fuse.Fuse) ? (arguments[_local8]) : (new com.mosesSupposes.fuse.FuseItem(_local6 + _local8, arguments[_local8], _nID)));
addEventListener("onStop", _local9);
addEventListener("evtSetStart", _local9);
_local7.push(_local9);
}
var _local10 = super.splice.apply(this, new Array(_local6, deleteCount).concat(_local7));
for (var j in _local10) {
var _local11 = _local10[j];
removeEventListener("onStop", _local11);
removeEventListener("evtSetStart", _local11);
if (_local11 instanceof com.mosesSupposes.fuse.Fuse) {
_local11.removeEventListener("onComplete", _oDel1);
} else {
_local11.destroy();
}
}
var _local12 = 0;
for ( ; _local12 < length ; _local12++) {
com.mosesSupposes.fuse.FuseItem(this[_local12])._nItemID = _local12;
}
}
function slice(indexA, indexB) {
var _local5 = super.slice(indexA, indexB);
var _local6 = new Array();
var _local7 = 0;
for ( ; _local7 < arguments.length ; _local7++) {
_local6.push(com.mosesSupposes.fuse.FuseItem(this[_local7]).getInitObj());
}
return(_local6);
}
function reverse() {
stop(true);
super.reverse();
var _local3 = 0;
for ( ; _local3 < length ; _local3++) {
com.mosesSupposes.fuse.FuseItem(this[_local3])._nItemID = _local3;
}
}
function traceItems(indexA, indexB) {
var _local5 = "";
var _local6 = super.slice(indexA, indexB);
_local5 = _local5 + ((getHandle() + " traceItems:") + "\n----------\n");
var _local7 = 0;
for ( ; _local7 < _local6.length ; _local7++) {
if (_local6[_local7] instanceof com.mosesSupposes.fuse.Fuse) {
_local5 = _local5 + (((((getHandle() + ">Item#") + _local7) + ": [Nested Fuse] ") + _local6[_local7]) + newline);
} else {
_local5 = _local5 + (_local6[_local7] + newline);
}
}
_local5 = _local5 + "----------";
com.mosesSupposes.fuse.FuseKitCommon.output(_local5);
}
function toString() {
return(((getHandle() + " (contains ") + length) + ((length == 1) ? " item)" : " items)"));
}
function setStartProps(trueOrItemIDs) {
var _local3 = (arguments.length == 0) || ((trueOrItemIDs === true) || (trueOrItemIDs == com.mosesSupposes.fuse.FuseKitCommon.ALL));
dispatchEvent({target:this, type:"evtSetStart", all:_local3, filter:((trueOrItemIDs instanceof Array) ? (trueOrItemIDs) : (arguments)), curIndex:((_nState == 1) ? (_nIndex) : -1), targs:_aDefaultTargs, scope:scope});
}
function start(setStart) {
close();
stop(true);
_nState = 1;
if (length == 0) {
advance(false, true, false);
}
if ((setStart != null) && (setStart != false)) {
setStartProps.apply(this, arguments);
}
dispatchEvent({target:this, type:"onStart"});
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output(getHandle() + " start.");
}
playCurrentItem();
}
function stop() {
if (_nState != -1) {
var _local2 = 0;
for ( ; _local2 < length ; _local2++) {
if (this[_local2] instanceof com.mosesSupposes.fuse.Fuse) {
com.mosesSupposes.fuse.Fuse(this[_local2]).removeEventListener("onComplete", _oDel1);
if (com.mosesSupposes.fuse.Fuse(this[_local2]).state == "playing") {
com.mosesSupposes.fuse.Fuse(this[_local2]).stop();
}
} else if ((_local2 == _nIndex) || (com.mosesSupposes.fuse.FuseItem(this[_local2]).hasTriggerFired() == true)) {
com.mosesSupposes.fuse.FuseItem(this[_local2]).stop();
}
}
}
var _local3 = _nState;
_nState = -1;
if ((!(arguments[0] === true)) && (_local3 != -1)) {
dispatchEvent({target:this, type:"onStop"});
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output(getHandle() + " stop.");
}
}
_nIndex = 0;
_global.clearInterval(_nDelay);
_nTimeCache = (_nDelay = -1);
}
function skipTo(indexOrLabel) {
close();
var _local3 = normalizeIndex(indexOrLabel);
if (_local3 == null) {
if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("102", "skipTo", String(indexOrLabel));
}
return(undefined);
}
if ((_local3 == _nIndex) && (arguments[1] === true)) {
if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("103", String(indexOrLabel), _nIndex);
}
}
if (this[_nIndex] instanceof com.mosesSupposes.fuse.Fuse) {
com.mosesSupposes.fuse.Fuse(this[_nIndex]).removeEventListener("onComplete", _oDel1);
}
stop(true);
_nIndex = _local3;
var _local4 = _nState;
_nState = 1;
if (_local4 == -1) {
dispatchEvent({target:this, type:"onStart"});
}
playCurrentItem();
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output("skipTo:" + _local3);
}
}
function pause() {
if (_nState == 1) {
var _local2 = 0;
for ( ; _local2 <= _nIndex ; _local2++) {
if ((this[_local2].state === "playing") || (this[_local2]._nPlaying > 0)) {
this[_local2].pause();
}
}
if (_nTimeCache != -1) {
_nTimeCache = _nTimeCache - getTimer();
_global.clearInterval(_nDelay);
}
_nState = 0;
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output(getHandle() + " pause.");
}
dispatchEvent({target:this, type:"onPause"});
}
}
function resume() {
if (_nState != 0) {
return(undefined);
}
close();
_nState = 1;
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output(getHandle() + " resume.");
}
dispatchEvent({target:this, type:"onResume"});
if (_nTimeCache != -1) {
playCurrentItem(false, true);
}
var _local2 = 0;
for ( ; _local2 <= _nIndex ; _local2++) {
if ((this[_local2] instanceof com.mosesSupposes.fuse.Fuse) && (this[_local2].state == "paused")) {
com.mosesSupposes.fuse.Fuse(this[_local2]).resume();
} else if (this[_local2]._nPlaying == 0) {
com.mosesSupposes.fuse.FuseItem(this[_local2]).pause(true);
}
}
}
function fastForward(resumeAtIndexOrLabel) {
var _local3 = ((resumeAtIndexOrLabel == null) ? (length) : (normalizeIndex(resumeAtIndexOrLabel)));
if (_local3 == null) {
if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("102", "fastForward", String(resumeAtIndexOrLabel));
}
return(undefined);
}
if ((_local3 == 0) || (_local3 <= _nIndex)) {
if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("104", _local3);
}
skipTo(_local3);
return(undefined);
}
_global.clearInterval(_nDelay);
var _local4 = _nIndex;
for ( ; _local4 < _local3 ; _local4++) {
this[_local4].fastForward(null, _aDefaultTargs, scope);
advance(false, true, !((_local4 == (_local3 - 1)) && (_local3 < length)));
}
}
function getHandle() {
return("-Fuse" + ((label != undefined) ? ((" \"" + label) + "\"") : ("#" + String(_nID))));
}
function advance(wasTriggered, silentStop, isFF) {
if (_nState < 1) {
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output(((((("** DEVELOPER ALERT: " + getHandle()) + " advance called out of turn! (state:") + state) + " currentIndex:") + currentIndex) + ") Please report this Fuse's details to MosesSupposes.com. **");
}
return(undefined);
}
var _local5 = false;
if ((_nIndex == (length - 1)) && (isFF != true)) {
var _local6 = length - 1;
for ( ; _local6 > -1 ; _local6--) {
if (com.mosesSupposes.fuse.FuseItem(this[_local6])._nPlaying > -1) {
return(undefined);
}
}
_local5 = true;
}
if ((wasTriggered == true) && (_local5 == false)) {
return(undefined);
}
if (this[_nIndex] instanceof com.mosesSupposes.fuse.Fuse) {
com.mosesSupposes.fuse.Fuse(this[_nIndex]).removeEventListener("onComplete", _oDel1);
}
if ((_nIndex + 1) >= length) {
stop(silentStop);
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output(getHandle() + " complete.");
}
_nIndex = length - 1;
dispatchEvent({target:this, type:"onComplete"});
if ((autoClear == true) || ((!(autoClear === false)) && (AUTOCLEAR == true))) {
destroy();
}
return(undefined);
}
_nIndex++;
if (isFF == true) {
return(undefined);
}
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output((getHandle() + " advance: ") + _nIndex);
}
dispatchEvent({target:this, type:"onAdvance"});
playCurrentItem();
}
function playCurrentItem(postDelay, resumeDelay) {
_global.clearInterval(_nDelay);
if ((postDelay != true) || (resumeDelay == true)) {
var _local4 = 0;
if (resumeDelay != true) {
_local4 = (com.mosesSupposes.fuse.FuseItem(this[_nIndex]).evalDelay(scope) || 0) * 1000;
}
if ((_local4 > 0) || (resumeDelay == true)) {
if (resumeDelay == true) {
_local4 = _nTimeCache;
_nTimeCache = _nTimeCache + getTimer();
} else {
var _local5 = Math.abs(_global.com.mosesSupposes.fuse.ZigoEngine.TIME_MULTIPLIER);
if (_global.isNaN(_local5) == true) {
_local5 = 1;
}
_local4 = _local4 * _local5;
_nTimeCache = getTimer() + _local4;
}
_nDelay = _global.setInterval(this, "playCurrentItem", _local4, true);
return(undefined);
}
}
_nTimeCache = (_nDelay = -1);
if (this[_nIndex] instanceof com.mosesSupposes.fuse.Fuse) {
if (_oDel1 == null) {
_oDel1 = com.mindcandy.utils.delegate.Delegate.create(this, advance);
}
com.mosesSupposes.fuse.Fuse(this[_nIndex]).addEventListener("onComplete", _oDel1);
com.mosesSupposes.fuse.Fuse(this[_nIndex]).start(_aDefaultTargs, scope);
} else {
var _local6 = com.mosesSupposes.fuse.FuseItem(this[_nIndex]).startItem(_aDefaultTargs, scope, duration, easing);
if (OUTPUT_LEVEL > 1) {
com.mosesSupposes.fuse.FuseKitCommon.output((getHandle() + " props tweened: ") + _local6);
}
}
}
function evtSetStart(o) {
setStartProps.apply(this, o.filter);
}
static function open(fuseOrID) {
var _local3 = _global.com.mosesSupposes.fuse.ZigoEngine;
if (_local3 == undefined) {
com.mosesSupposes.fuse.FuseKitCommon.error("106");
return(null);
}
_local3.register(com.mosesSupposes.fuse.Fuse, com.mosesSupposes.fuse.FuseItem);
if (_oBuildMode == null) {
_oBuildMode = {curID:-1, prevID:-1, curGroup:null};
} else if ((_oBuildMode != null) && (_oBuildMode.curID > -1)) {
close();
}
if (fuseOrID != null) {
if (fuseOrID instanceof com.mosesSupposes.fuse.Fuse) {
_oBuildMode.curID = fuseOrID.id;
} else if (getInstance(fuseOrID) != null) {
_oBuildMode.curID = getInstance(fuseOrID).id;
} else {
com.mosesSupposes.fuse.FuseKitCommon.error("107");
return(null);
}
} else {
_oBuildMode.curID = (new com.mosesSupposes.fuse.Fuse()).id;
}
_oBuildMode.prevID = _oBuildMode.curID;
return(getInstance(_oBuildMode.curID));
}
static function openGroup(fuseOrID) {
if (!((_oBuildMode != null) && (_oBuildMode.curID > -1))) {
open(fuseOrID);
} else if (_oBuildMode.curGroup != null) {
closeGroup();
}
_oBuildMode.curGroup = new Array();
return(getInstance(_oBuildMode.curID));
}
static function closeGroup() {
if ((_oBuildMode.curGroup == null) || (!((_oBuildMode != null) && (_oBuildMode.curID > -1)))) {
return(undefined);
}
getInstance(_oBuildMode.curID).push(_oBuildMode.curGroup);
_oBuildMode.curGroup = null;
}
static function close() {
if (!((_oBuildMode != null) && (_oBuildMode.curID > -1))) {
return(undefined);
}
if (_oBuildMode.curGroup != null) {
closeGroup();
}
_oBuildMode.curID = -1;
}
static function closeAndStart(setStart) {
if (!((_oBuildMode != null) && (_oBuildMode.curID > -1))) {
return(undefined);
}
var _local3 = getInstance(_oBuildMode.curID);
close();
_local3.start.apply(_local3, arguments);
}
static function startRecent(setStart) {
var _local3 = getInstance(_oBuildMode.prevID);
if (_local3 != null) {
_local3.start.apply(_local3, arguments);
} else {
com.mosesSupposes.fuse.FuseKitCommon.error("108");
}
}
static function addCommand(commandOrScope, indexOrFunc, argument) {
if (!((_oBuildMode != null) && (_oBuildMode.curID > -1))) {
return(undefined);
}
var _local5 = _oBuildMode.curGroup != null;
var _local6 = ((_local5 == true) ? (_oBuildMode.curGroup) : (getInstance(_oBuildMode.curID)));
if (typeof(commandOrScope) == "string") {
var _local7 = indexOrFunc != undefined;
var _local8 = com.mosesSupposes.fuse.FuseKitCommon._validateFuseCommand(String(commandOrScope), _local5, _local7, OUTPUT_LEVEL, true);
if (_local8 == true) {
_local6.push({__buildMode:true, command:commandOrScope, commandargs:indexOrFunc});
}
} else {
_local6.push({__buildMode:true, scope:commandOrScope, func:indexOrFunc, args:arguments.slice(2)});
}
}
static function addBuildItem(args) {
if (!((_oBuildMode != null) && (_oBuildMode.curID > -1))) {
return(false);
}
var _local3 = ((_oBuildMode.curGroup != null) ? (_oBuildMode.curGroup) : (getInstance(_oBuildMode.curID)));
if ((args.length == 1) && (typeof(args[0]) == "object")) {
_local3.push(args[0]);
} else {
_local3.push({__buildMode:true, tweenargs:args});
}
return(true);
}
function normalizeIndex(indexOrLabel) {
if (typeof(indexOrLabel) == "string") {
var _local3 = -1;
var _local4 = 0;
for ( ; _local4 < length ; _local4++) {
if (this[_local4].label == String(indexOrLabel)) {
_local3 = _local4;
break;
}
}
if (_local3 == -1) {
return(null);
}
} else {
var _local3 = Number(indexOrLabel);
}
if ((_global.isNaN(_local3) == true) || (Math.abs(_local3) >= length)) {
return(null);
}
if (_local3 < 0) {
var _local3 = Math.max(0, length + _local3);
}
return(_local3);
}
static function registerInstance(s) {
if (_aInstances == null) {
_aInstances = new Array();
}
return(_aInstances.push(s) - 1);
}
static function removeInstanceAt(id, isDestroyCall) {
if (isDestroyCall != true) {
com.mosesSupposes.fuse.Fuse(_aInstances[id]).destroy();
}
delete _aInstances[id];
}
static var registryKey = "fuse";
static var VERSION = com.mosesSupposes.fuse.FuseKitCommon.VERSION;
static var OUTPUT_LEVEL = 1;
static var AUTOCLEAR = false;
static var AUTOSTOP = true;
var _nState = -1;
var _nDelay = -1;
var _nTimeCache = -1;
static var _aInstances = null;
static var _oBuildMode = null;
}
Symbol 20518 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.SoundEventListener] Frame 0
class com.mindcandy.diablo.shared.content.sound.SoundEventListener
{
function SoundEventListener () {
}
}
Symbol 20519 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.mixer.BasicChannel] Frame 0
class com.mindcandy.diablo.shared.content.sound.mixer.BasicChannel implements com.mindcandy.diablo.shared.content.sound.SoundEventListener, com.mindcandy.diablo.shared.content.sound.mixer.AudioChannel
{
var name, listener, faderCurve, playError, intervalBeforeNextAction, item, targetVol, muted, fiveSecondWarningGiven;
function BasicChannel (name, listener) {
this.name = name;
this.listener = listener;
faderCurve = new com.mindcandy.diablo.shared.content.sound.mixer.DefaultFaderCurve();
playError = false;
clear();
}
function getName() {
return(name);
}
function playClip() {
_global.clearInterval(intervalBeforeNextAction);
item.startPlayback(false);
listener.notifyPlaying(this);
}
function playClipAfter(ms) {
intervalBeforeNextAction = _global.setInterval(this, "playClip", ms);
}
function stopClip() {
item.stopPlayback();
}
function updateVolume(vol) {
item.setVolume(vol);
}
function togglePauseStatus() {
if (item.isPaused()) {
item.resumePlayback();
item.setVolume(targetVol);
} else {
targetVol = item.getVolume();
item.pausePlayback();
}
}
function toggleMute() {
if (muted) {
item.setVolume(targetVol);
} else {
targetVol = item.getVolume();
item.setVolume(0);
}
muted = !muted;
}
function getFaderCurve() {
return(faderCurve);
}
function setFaderCurve(faderCurve) {
this.faderCurve = faderCurve;
}
function setListener(listener) {
this.listener = listener;
}
function setSource(item) {
clear();
this.item = item;
item.setListener(this);
}
function getSource() {
return(item);
}
function isEmpty() {
return(item == null);
}
function isPlaying() {
return((item != null) && (item.isPlaying()));
}
function clear() {
stopClip();
targetVol = DEFAULT_VOLUME;
muted = false;
fiveSecondWarningGiven = false;
item = null;
}
function onLoadError() {
updateVolume(0);
listener.notifyError(this);
}
function notifyProgress(item) {
faderCurve.updateVolume(this, item.getPercentPlayed());
if ((!fiveSecondWarningGiven) && (item.getRemainingTime() <= 5000)) {
listener.notifyLastFiveSeconds(this);
fiveSecondWarningGiven = true;
}
}
function notifyComplete(item) {
listener.notifyCompleted(this);
}
function notifyError(item, reason) {
listener.notifyError(this, reason);
}
static var DEFAULT_VOLUME = 30;
}
Symbol 20520 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.button.MonsterButtonHandler] Frame 0
class com.mindcandy.diablo.puzzle.view.button.MonsterButtonHandler extends com.mindcandy.diablo.shared.view.events.button.ButtonEventHandler
{
var button, eventManager;
function MonsterButtonHandler (target, button) {
super(target, button);
this.button = button;
eventManager = com.mindcandy.diablo.shared.controller.Environment.getInstance().getEventManager();
}
function handleClick() {
super.handleClick();
eventManager.newEvent(button.getEventName(), button.getEventType(), button.getContext());
}
}
Symbol 20521 MovieClip [__Packages.org.as2lib.data.holder.Iterator] Frame 0
class org.as2lib.data.holder.Iterator
{
function Iterator () {
}
}
Symbol 20522 MovieClip [__Packages.org.as2lib.data.holder.map.KeyMapIterator] Frame 0
class org.as2lib.data.holder.map.KeyMapIterator implements org.as2lib.data.holder.Iterator
{
var target, iterator, key;
function KeyMapIterator (target) {
if (!target) {
throw new Error(("The passed-in target map '" + target) + "' is not allowed to be null or undefined.", this, arguments);
}
this.target = target;
iterator = new org.as2lib.data.holder.array.ArrayIterator(target.getKeys());
}
function hasNext(Void) {
return(iterator.hasNext());
}
function next(Void) {
key = iterator.next();
return(key);
}
function remove(Void) {
iterator.remove();
target.remove(key);
}
}
Symbol 20523 MovieClip [__Packages.LuminicBox.Log.LogEvent] Frame 0
class LuminicBox.Log.LogEvent
{
var loggerId, argument, level, time;
function LogEvent (loggerId, argument, level) {
this.loggerId = loggerId;
this.argument = argument;
this.level = level;
time = new Date();
}
static function serialize(logEvent) {
var _local3 = new Object();
_local3.loggerId = logEvent.loggerId;
_local3.time = logEvent.time;
_local3.levelName = logEvent.level.getName();
_local3.argument = logEvent.argument;
return(_local3);
}
static function deserialize(o) {
var _local3 = LuminicBox.Log.Level["" + o.levelName];
var _local4 = new LuminicBox.Log.LogEvent(o.loggerId, o.argument, _local3);
_local4.time = o.time;
return(_local4);
}
}
Symbol 20524 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.MarkedPuzzle] Frame 0
class com.mindcandy.diablo.puzzle.model.MarkedPuzzle
{
var puzzle, correct, answer;
function MarkedPuzzle (puzzle, correct, answer) {
this.puzzle = puzzle;
this.correct = correct;
this.answer = answer;
}
function isCorrect() {
return(correct);
}
function getPuzzle() {
return(puzzle);
}
function getAnswer() {
return(answer);
}
function setAnswer(answer) {
this.answer = answer;
}
}
Symbol 20525 MovieClip [__Packages.com.mindcandy.diablo.puzzle.xml.PuzzleSessionParser] Frame 0
class com.mindcandy.diablo.puzzle.xml.PuzzleSessionParser extends com.mindcandy.diablo.shared.xml.BaseResponseParser implements com.mindcandy.diablo.shared.xml.XMLResponseParser
{
var isPractice, puzzleSession, environment, parseChildren, parseStatus, puzzle;
function PuzzleSessionParser (isPractice) {
super();
this.isPractice = isPractice;
puzzleSession = new com.mindcandy.diablo.puzzle.model.PuzzleSession();
environment = com.mindcandy.diablo.shared.controller.Environment.getInstance();
}
function parse(xml) {
var _local3 = xml.attributes;
switch (xml.nodeName) {
case "response" :
puzzleSession.setSessionId(_local3.sessionid);
parseChildren(xml);
break;
case "status" :
parseStatus(_local3);
break;
case "puzzles" :
parseChildren(xml);
break;
case "puzzle" :
var _local4 = buildImagePath(String(_local3.type), String(_local3.filename));
puzzle = new com.mindcandy.diablo.puzzle.model.Puzzle(Number(_local3.id), Number(_local3.category), Number(_local3.difficulty), _local3.type, _local4, _local3.text, _local3.checksum);
puzzleSession.getPuzzleQueue().add(puzzle);
parseChildren(xml);
break;
case "answer" :
puzzle.addAnswer(new com.mindcandy.diablo.puzzle.model.Answer(Number(_local3.id), _local3.text));
break;
default :
parseChildren(xml);
}
}
function buildImagePath(type, file) {
return(environment.getUrlManager().getPuzzleImageURL((type + "/") + file, isPractice));
}
function getData() {
return(puzzleSession);
}
}
Symbol 20526 MovieClip [__Packages.com.mindcandy.diablo.shared.model.BehaviourConfig] Frame 0
class com.mindcandy.diablo.shared.model.BehaviourConfig
{
var expiryTimes, eventRects, eventOccs;
function BehaviourConfig () {
expiryTimes = new com.mindcandy.data.holder.map.HashMap();
eventRects = new com.mindcandy.data.holder.map.HashMap();
eventOccs = new com.mindcandy.data.holder.map.HashMap();
}
function addExpiryTime(event, expiry) {
expiryTimes.put(event, expiry);
}
function addEvent(event, rectArray, occArray) {
eventRects.put(event, rectArray);
eventOccs.put(event, occArray);
}
function getExpiryTime(event) {
return(Number(expiryTimes.get(event)));
}
function getEventRects(event) {
return(Array(eventRects.get(event)));
}
function getEventOccurrences(event) {
return(Array(eventOccs.get(event)));
}
}
Symbol 20527 MovieClip [__Packages.com.mindcandy.diablo.shared.content.AssetDataListener] Frame 0
class com.mindcandy.diablo.shared.content.AssetDataListener
{
function AssetDataListener () {
}
}
Symbol 20528 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.LoadPuzzles] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.LoadPuzzles extends com.mindcandy.diablo.puzzle.controller.command.PuzzleServiceCommand implements com.mindcandy.diablo.shared.content.AssetDataListener
{
var readyEvent, service, window, game, fireEvent, getCurrentSession;
function LoadPuzzles (manager, readyEvent) {
super(manager);
this.readyEvent = "challenge started";
service = new com.mindcandy.diablo.puzzle.service.PuzzleSessionService();
}
function getService() {
return(service);
}
function execute(args, context, listener, sync) {
read(context);
window.showLoad();
getService().sendRequest(this, game.getPuzzleSet());
}
function read(context) {
super.read(context);
}
function handleResponseSuccess(response) {
var _local3 = com.mindcandy.diablo.puzzle.model.PuzzleSession(response.getData());
game.setCurrentSession(_local3);
cachePuzzleImages();
window.loadPanel.updateProgress(PCT_OF_WORK_RELATING_TO_SERVICE_CALL);
}
function handleResponseFailure(rx) {
trace("f service response failure - " + rx.getResponseMessage());
fireEvent(com.mindcandy.diablo.puzzle.controller.event.AppEvent.SERVICE_ERROR, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP, {code:rx.getResponseCode(), key:com.mindcandy.diablo.puzzle.controller.command.DisplayError.SERVICE_ERROR_KEY});
}
function cachePuzzleImages() {
var _local2 = getCurrentSession().getPuzzleQueue().generateImageList();
var _local3 = window.getImageHolder();
var _local4 = new com.mindcandy.diablo.shared.content.graphics.GraphicalAssetFactory(_local3);
var _local5 = new com.mindcandy.diablo.shared.content.graphics.BitmapAssetMapBuilder(new com.mindcandy.diablo.shared.content.graphics.GraphicalAssetMap());
var _local6 = new com.mindcandy.diablo.shared.content.graphics.GraphicalAssetManager(_local4, _local5);
_local6.assemble(_local2.iterator(), this);
}
function handleLoad(item, loaded, remaining) {
var _local5 = loaded / (loaded + remaining);
var _local6 = PCT_OF_WORK_RELATING_TO_SERVICE_CALL + (PCT_OF_WORK_RELATING_TO_ASSET_LOADING * _local5);
window.loadPanel.updateProgress(_local6);
}
function handleAssetLoad(data, bitmapData) {
window.setImageCache(bitmapData);
fireEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.NEW_GAME, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME, {});
}
function handleAssetFailure(reason) {
trace("f asset load error - " + reason);
fireEvent(com.mindcandy.diablo.puzzle.controller.event.AppEvent.ASSET_ERROR, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP, {code:404, key:com.mindcandy.diablo.puzzle.controller.command.DisplayError.ASSET_ERROR_KEY});
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.LoadPuzzles";
static var PCT_OF_WORK_RELATING_TO_SERVICE_CALL = 10;
static var PCT_OF_WORK_RELATING_TO_ASSET_LOADING = 100 - PCT_OF_WORK_RELATING_TO_SERVICE_CALL;
}
Symbol 20529 MovieClip [__Packages.com.mindcandy.diablo.shared.view.dialogues.Bubble] Frame 0
class com.mindcandy.diablo.shared.view.dialogues.Bubble
{
function Bubble () {
}
}
Symbol 20530 MovieClip [__Packages.com.mindcandy.diablo.shared.view.dialogues.BaseBubble] Frame 0
class com.mindcandy.diablo.shared.view.dialogues.BaseBubble implements com.mindcandy.diablo.shared.view.dialogues.Bubble
{
var hostPanel, bubble, followTarget, doesFollow, isTimed, timedDelay, ignoreBoundries, speed, closeCall, followItemCentre, widget, currentHPos, currentVPos, xPos, xOffset, yPos, yOffset, switchBoundaryHorz, rectOffset, switchBoundaryVert, listener, fFadeOut;
function BaseBubble (hostPanel, followTarget, doesFollow, isTimed, timedDelay) {
this.hostPanel = hostPanel;
bubble = hostPanel.createEmptyMovieClip("bubble" + hostPanel.getNextHighestDepth(), hostPanel.getNextHighestDepth());
this.followTarget = followTarget;
this.doesFollow = doesFollow;
this.isTimed = isTimed;
this.timedDelay = timedDelay;
ignoreBoundries = false;
speed = 5;
closeCall = null;
followItemCentre = false;
widget = false;
}
function enableHandlers() {
bubble.onRelease = com.mindcandy.utils.delegate.Delegate.create(this, clickPop);
if (isTimed) {
_global.clearInterval(closeCall);
closeCall = _global.setInterval(com.mindcandy.utils.delegate.Delegate.create(this, timePop), timedDelay);
}
if (doesFollow) {
bubble.onEnterFrame = com.mindcandy.utils.delegate.Delegate.create(this, follow);
}
}
function init() {
setInitialPositions();
enableHandlers();
}
function setInitialPositions() {
var _local2 = new flash.geom.Point(hostPanel._x, hostPanel._y);
followTarget.localToGlobal(_local2);
currentHPos = "right";
currentVPos = "top";
var _local3 = currentHPos;
var _local4 = currentVPos;
xPos = _local2.x + xOffset;
yPos = _local2.y + yOffset;
if (followItemCentre) {
xPos = xPos + (followTarget._width / 2);
yPos = yPos + (followTarget._height / 2);
}
place();
orientate();
if (!ignoreBoundries) {
if (_local3 != currentHPos) {
xPos = xPos + (xOffset * 2);
}
if (_local4 != currentVPos) {
yPos = yPos + (yOffset * 2);
}
}
updateBox();
}
function follow() {
place();
orientate();
position();
updateBox();
}
function position() {
var _local2 = new flash.geom.Point(hostPanel._x, hostPanel._y);
followTarget.localToGlobal(_local2);
var _local3 = _local2.x + xOffset;
var _local4 = _local2.y + yOffset;
if (followItemCentre) {
_local3 = _local3 + (followTarget._width / 2);
_local4 = _local4 + (followTarget._height / 2);
}
if (!ignoreBoundries) {
if (_local3 < LEFT_BOUNDARY) {
_local3 = LEFT_BOUNDARY;
}
if (_local3 > RIGHT_BOUNDARY) {
_local3 = RIGHT_BOUNDARY;
}
if (_local4 < UPPER_BOUNDARY) {
_local4 = UPPER_BOUNDARY;
}
if (_local4 > LOWER_BOUNDARY) {
_local4 = LOWER_BOUNDARY;
}
}
xPos = xPos + ((_local3 - bubble._x) / speed);
yPos = yPos + ((_local4 - bubble._y) / speed);
}
function updateBox() {
bubble._x = xPos;
bubble._y = yPos;
if (!ignoreBoundries) {
if (bubble._x < LEFT_BOUNDARY) {
bubble._x = LEFT_BOUNDARY;
}
if (bubble._x > RIGHT_BOUNDARY) {
bubble._x = RIGHT_BOUNDARY;
}
if (bubble._y < UPPER_BOUNDARY) {
bubble._y = UPPER_BOUNDARY;
}
if (bubble._y > LOWER_BOUNDARY) {
bubble._y = LOWER_BOUNDARY;
}
}
}
function place() {
if (currentHPos == "left") {
switchBoundaryHorz = (LEFT_BOUNDARY + rectOffset) - xOffset;
if (xPos < switchBoundaryHorz) {
currentHPos = "right";
xOffset = -xOffset;
}
} else {
switchBoundaryHorz = (RIGHT_BOUNDARY - rectOffset) - xOffset;
if (xPos > switchBoundaryHorz) {
currentHPos = "left";
xOffset = -xOffset;
}
}
if (!widget) {
if (currentVPos == "top") {
switchBoundaryVert = (UPPER_BOUNDARY + bubble._height) + yOffset;
if (yPos < switchBoundaryVert) {
currentVPos = "bottom";
yOffset = -yOffset;
}
} else {
switchBoundaryVert = (LOWER_BOUNDARY - bubble._height) - yOffset;
if (yPos > switchBoundaryVert) {
currentVPos = "top";
yOffset = -yOffset;
}
}
}
}
function clickPop() {
pop(true);
}
function timePop() {
pop(false);
}
function pop(clicked) {
_global.clearInterval(closeCall);
closeCall = null;
listener.handlePopping(this, clicked);
fFadeOut = null;
fFadeOut = new com.mosesSupposes.fuse.Fuse();
fFadeOut.addTarget(bubble);
fFadeOut.push({scope:this, func:"destroy", _alpha:0, ease:"easeOutQuad", seconds:0.3});
fFadeOut.start();
}
function destroy() {
_global.clearInterval(closeCall);
closeCall = null;
fFadeOut.destroy();
bubble.removeMovieClip();
listener.handlePopped(this);
listener = null;
}
function create() {
}
function orientate() {
}
function setBoundries(top, right, bottom, left) {
UPPER_BOUNDARY = top;
RIGHT_BOUNDARY = right;
LOWER_BOUNDARY = bottom;
LEFT_BOUNDARY = left;
}
function setDelay(delay) {
timedDelay = delay;
_global.clearInterval(closeCall);
closeCall = _global.setInterval(com.mindcandy.utils.delegate.Delegate.create(this, pop), timedDelay);
}
function setDoesFollow(state) {
doesFollow = state;
if (state) {
enableHandlers();
}
}
function setIgnoresBoundries(state) {
ignoreBoundries = state;
}
function setSpeed(speed) {
this.speed = speed;
}
function deactivateCloseButton() {
delete bubble.onRelease;
}
function setFollowItemCenter(state) {
followItemCentre = state;
}
function setListener(ear) {
listener = ear;
}
function removeHandlers() {
delete bubble.onRelease;
}
function setIsWidget(widget) {
this.widget = widget;
}
var RIGHT_BOUNDARY = 815;
var LEFT_BOUNDARY = 125;
var UPPER_BOUNDARY = 40;
var LOWER_BOUNDARY = 510;
}
Symbol 20531 MovieClip [__Packages.com.mindcandy.diablo.shared.model.inventory.InventoryType] Frame 0
class com.mindcandy.diablo.shared.model.inventory.InventoryType
{
var type;
function InventoryType (type) {
this.type = type;
}
function toString() {
return(type);
}
static var ITEMS = new com.mindcandy.diablo.shared.model.inventory.InventoryType("items");
static var SEEDS = new com.mindcandy.diablo.shared.model.inventory.InventoryType("seeds");
}
Symbol 20532 MovieClip [__Packages.com.mindcandy.diablo.shared.view.dialogues.BubbleListener] Frame 0
class com.mindcandy.diablo.shared.view.dialogues.BubbleListener
{
function BubbleListener () {
}
}
Symbol 20533 MovieClip [__Packages.org.as2lib.data.holder.map.ValueMapIterator] Frame 0
class org.as2lib.data.holder.map.ValueMapIterator implements org.as2lib.data.holder.Iterator
{
var target, iterator, key;
function ValueMapIterator (target) {
if (!target) {
throw new Error(("The passed-in target map '" + target) + "' is not allowed to be null or undefined.");
}
this.target = target;
iterator = new org.as2lib.data.holder.array.ArrayIterator(target.getKeys());
}
function hasNext(Void) {
return(iterator.hasNext());
}
function next(Void) {
key = iterator.next();
return(target.get(key));
}
function remove(Void) {
iterator.remove();
target.remove(key);
}
}
Symbol 20534 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.UrlManager] Frame 0
class com.mindcandy.diablo.shared.controller.UrlManager
{
function UrlManager () {
}
}
Symbol 20535 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.DefaultUrlManager] Frame 0
class com.mindcandy.diablo.shared.controller.DefaultUrlManager extends com.mindcandy.diablo.shared.controller.BaseController implements com.mindcandy.diablo.shared.controller.UrlManager
{
var timeline, env;
function DefaultUrlManager (timeline) {
super();
this.timeline = timeline;
}
function init(master) {
if (master instanceof com.mindcandy.diablo.shared.controller.Environment) {
env = com.mindcandy.diablo.shared.controller.Environment(master);
env.handleReady(this);
}
}
function getResourceURL(type, filename) {
return((env.getProperty("url.resources.base") + env.getProperty("url.resources." + type)) + filename);
}
function getRootURL() {
return(timeline._url);
}
function getServiceURL(name) {
return(env.getProperty("url.services.base") + env.getProperty("url.services." + name));
}
function getConfigURL(name) {
return(buildConfigURL("", name));
}
function buildConfigURL(directory, name) {
var _local4 = env.getParameter("configroot");
var _local5 = (env.useUncryption() ? "enc/" : "");
var _local6 = env.getProperty("url.config." + name);
return(((_local4 + _local5) + directory) + _local6);
}
function getPuzzleImageURL(filename, practice) {
var _local4 = (practice ? "url.resources.puzzleimages_practice" : "url.resources.puzzleimages");
return(env.getProperty(_local4) + filename);
}
function getPuzzleThumbURL(name) {
return((env.getProperty("url.resources.puzzlethumbs") + name) + ".png");
}
function getAssetURL(type) {
return((env.getProperty("url.resources.base") + type) + "/");
}
function getAppURL(name, file) {
return(((env.getProperty("url.subapplication.base") + name) + "/") + file);
}
function getMonsterAssetURL(type, primary_colour, secondary_colour) {
return(((((((getAssetURL("anims") + "monster/") + type) + "/") + primary_colour) + "_") + secondary_colour) + "/");
}
function getMoshlingAssetURL(type) {
return((getAssetURL("anims") + "moshling/") + type);
}
function getUserRoomURL(username) {
return((env.getProperty("url.application.home") + "/monsters") + ((username == "") ? "" : ("/" + username)));
}
function getStaticImageURL(filename) {
return(env.getProperty("url.resources.images") + filename);
}
}
Symbol 20536 MovieClip [__Packages.com.mindcandy.diablo.shared.content.AssetManager] Frame 0
class com.mindcandy.diablo.shared.content.AssetManager
{
function AssetManager () {
}
}
Symbol 20537 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.external.ExternalLibraryManager] Frame 0
class com.mindcandy.diablo.shared.content.sound.external.ExternalLibraryManager implements com.mindcandy.diablo.shared.content.AssetDataListener, com.mindcandy.diablo.shared.content.AssetManager
{
var source, target, factory, loader, builder, contents, listener;
function ExternalLibraryManager (source, target) {
this.source = source;
this.target = target;
factory = new com.mindcandy.diablo.shared.content.sound.external.LinkedAssetFactory(source.getClip());
}
function getFactory() {
return(factory);
}
function getLoader() {
return(loader);
}
function getBuilder() {
return(builder);
}
function assemble(items, listener) {
contents = items;
this.listener = listener;
if (source.isLoaded()) {
handleAssetLoad();
} else {
builder = new com.mindcandy.diablo.shared.content.sound.external.ExternalLibraryBuilder(source, target);
loader = new com.mindcandy.diablo.shared.content.loaders.QueuedLoadManager(1);
builder.setListener(this);
loader.startLoading(builder);
}
}
function handleAssetLoad(data, bitmapData) {
while (contents.hasNext()) {
var _local4 = com.mindcandy.diablo.shared.content.sound.SoundDetails(contents.next());
trace("i linking sound asset " + _local4.getAssetDetails().getId());
target.put(factory.create(_local4));
}
listener.handleAssetLoad(target);
}
function handleAssetFailure(reason) {
listener.handleAssetFailure(reason);
}
function handleLoad(item, loaded, remaining) {
listener.handleLoad(item, loaded, remaining);
}
}
Symbol 20538 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.scripting.StatementBlock] Frame 0
class com.mindcandy.diablo.shared.controller.scripting.StatementBlock implements com.mindcandy.diablo.shared.controller.scripting.Statement
{
function StatementBlock () {
}
}
Symbol 20539 MovieClip [__Packages.com.mindcandy.diablo.shared.model.GameElement] Frame 0
class com.mindcandy.diablo.shared.model.GameElement extends com.mindcandy.diablo.shared.model.Entity
{
var id, name, roomId, type, x, y, z, entityXMLNodeName;
function GameElement (id, name, roomId, type, x, y, z) {
super();
this.id = id || -1;
this.name = name || "";
this.roomId = roomId || -1;
this.type = type || "";
this.x = x || 0;
this.y = y || 0;
this.z = z || 0;
}
function getId() {
return(id);
}
function getName() {
return(name);
}
function getRoomId() {
return(roomId);
}
function getType() {
return(type);
}
function getX() {
return(x);
}
function getY() {
return(y);
}
function getZ() {
return(z);
}
function setX(target) {
x = target;
}
function setY(target) {
y = target;
}
function setZ(target) {
z = target;
}
function setRoomId(target) {
roomId = target;
}
function toString() {
var _local2 = "";
_local2 = _local2 + (("id=\"" + id) + "\"");
_local2 = _local2 + ((" name=\"" + name) + "\"");
_local2 = _local2 + ((" type=\"" + type) + "\"");
_local2 = _local2 + ((" x=\"" + x) + "\"");
_local2 = _local2 + ((" y=\"" + y) + "\"");
_local2 = _local2 + ((" z=\"" + z) + "\"");
return(_local2);
}
function toXML() {
var _local2 = "";
_local2 = _local2 + ("\n<" + entityXMLNodeName);
_local2 = _local2 + (" " + toString());
_local2 = _local2 + "/>";
var _local3 = new XML(_local2);
_local3.ignoreWhite = true;
return(_local3);
}
}
Symbol 20540 MovieClip [__Packages.com.mindcandy.diablo.shared.content.HasAssetDetails] Frame 0
class com.mindcandy.diablo.shared.content.HasAssetDetails
{
function HasAssetDetails () {
}
}
Symbol 20541 MovieClip [__Packages.com.mindcandy.diablo.shared.content.graphics.HasGraphicalDetails] Frame 0
class com.mindcandy.diablo.shared.content.graphics.HasGraphicalDetails
{
function HasGraphicalDetails () {
}
}
Symbol 20542 MovieClip [__Packages.com.mindcandy.diablo.shared.model.AssetItem] Frame 0
class com.mindcandy.diablo.shared.model.AssetItem extends com.mindcandy.diablo.shared.model.GameElement implements com.mindcandy.diablo.shared.content.graphics.HasGraphicalDetails, com.mindcandy.diablo.shared.content.HasAssetDetails
{
var entityXMLNodeName, assetDetails, graphicsInfo, handler, args, id, name, type, x, y, z;
function AssetItem (path, id, srcId, name, roomId, type, x, y, z, structureId, layer, tiles, animated, replacedefault, handler, args) {
super(id, name, roomId, type, x, y, z);
entityXMLNodeName = "item";
path = path || "";
var _local19 = path.substr(-3);
assetDetails = new com.mindcandy.diablo.shared.content.AssetDetails(String(id), srcId, path, _local19);
graphicsInfo = new com.mindcandy.diablo.shared.content.graphics.GraphicalDetails(x, y, z, structureId, layer, tiles, animated, replacedefault);
this.handler = handler;
if (args) {
this.args = new Object();
var _local20 = args.split("|#|");
var _local22 = 0;
for ( ; _local22 < _local20.length ; _local22++) {
var _local21 = _local20[_local22].split("::");
this.args[_local21[0]] = _local21[1];
}
}
}
function getAssetDetails() {
return(assetDetails);
}
function getGraphicalDetails() {
return(graphicsInfo);
}
function getHandler() {
return(handler);
}
function getArgs() {
return(args);
}
function toString() {
var _local2 = "";
_local2 = _local2 + ((" id=\"" + id) + "\"");
_local2 = _local2 + ((" name=\"" + name) + "\"");
_local2 = _local2 + ((" type=\"" + type) + "\"");
_local2 = _local2 + ((" x=\"" + x) + "\"");
_local2 = _local2 + ((" y=\"" + y) + "\"");
_local2 = _local2 + ((" z=\"" + z) + "\"");
return(_local2);
}
function toXML() {
var _local2 = "";
_local2 = _local2 + ("\n<" + entityXMLNodeName);
_local2 = _local2 + (" " + toString());
_local2 = _local2 + "/>";
var _local3 = new XML(_local2);
_local3.ignoreWhite = true;
return(_local3);
}
}
Symbol 20543 MovieClip [__Packages.com.mindcandy.diablo.shared.model.LocationItem] Frame 0
class com.mindcandy.diablo.shared.model.LocationItem extends com.mindcandy.diablo.shared.model.AssetItem
{
var entityXMLNodeName;
function LocationItem (path, id, srcId, name, type, x, y, z, structureId, layer, tiles, animated, replacedefault, handler, args) {
super(path, id, srcId, name, 0, type, x, y, z, structureId, layer, tiles, animated, replacedefault, handler, args);
entityXMLNodeName = "locationitem";
}
}
Symbol 20544 MovieClip [__Packages.com.mindcandy.utils.encrypt.UncryptListener] Frame 0
class com.mindcandy.utils.encrypt.UncryptListener
{
function UncryptListener () {
}
}
Symbol 20545 MovieClip [__Packages.com.mindcandy.diablo.shared.config.PropertiesFile] Frame 0
class com.mindcandy.diablo.shared.config.PropertiesFile extends com.mindcandy.diablo.shared.controller.BaseController implements com.mindcandy.utils.encrypt.UncryptListener
{
var url, uncrypt, properties, master, loadDelegate;
function PropertiesFile (url, uncrypt) {
super();
this.url = url;
this.uncrypt = uncrypt;
properties = new Object();
}
function getSubset(prefix) {
var _local3 = {};
var _local4 = prefix.length;
for (var s in properties) {
if (s.substr(0, _local4) == prefix) {
_local3[s] = properties[s];
}
}
return(_local3);
}
function setProperty(key, value) {
properties[key] = value;
}
function deleteProperty(key) {
delete properties[key];
}
function getProperty(key) {
return(com.mindcandy.utils.string.StringUtil.trimTrailingSpace(String(properties[key])));
}
function hasProperty(key) {
return(properties[key] != null);
}
function getProperties() {
return(properties);
}
function getFormattedProperty(key, params) {
if (params.length == 0) {
return(getProperty(key));
}
var _local5 = params.slice();
com.mindcandy.utils.string.StringUtil.dumpToLog(_local5);
if (getProperty(key)) {
var _local6 = getProperty(key);
var _local7 = _local6.split(STRING_INSERT);
if (_local5.length == (_local7.length - 1)) {
var _local8 = new Array();
while (_local7.length) {
_local8.push(_local7.shift());
if (_local5.length) {
_local8.push(_local5.shift());
}
}
var _local4 = _local8.join("");
}
}
return(_local4);
}
function init(master) {
this.master = master;
if (uncrypt) {
com.mindcandy.utils.encrypt.SpiroUncrypt.process(url, this);
} else {
loadDelegate = com.mindcandy.utils.delegate.Delegate.create(this, handleLoad);
properties = new LoadVars();
properties.onLoad = loadDelegate;
properties.load(url);
}
}
function handleReady(sub) {
}
function handleFailed(sub, reason) {
}
function handleComplete(data) {
trace("F UNCRYPTED PROPS FILE!");
var _local3 = data.split("&");
properties = new Object();
var _local5 = 0;
for ( ; _local5 < _local3.length ; _local5++) {
var _local4 = _local3[_local5].split("=");
properties[_local4[0]] = _local4[1];
}
master.handleReady(this);
}
function handleLoad(success) {
if (success) {
master.handleReady(this);
} else {
master.handleFailed(this, "Failed to load properties file");
}
com.mindcandy.utils.delegate.Delegate.destroy(loadDelegate);
}
var STRING_INSERT = "$s";
}
Symbol 20546 MovieClip [__Packages.com.mindcandy.diablo.shared.view.animation.AnimationListener] Frame 0
class com.mindcandy.diablo.shared.view.animation.AnimationListener
{
function AnimationListener () {
}
}
Symbol 20547 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.SlimeCurtain] Frame 0
class com.mindcandy.diablo.puzzle.view.SlimeCurtain extends com.mindcandy.diablo.shared.view.BaseViewObject implements com.mindcandy.diablo.shared.view.animation.AnimationListener
{
var glass, target, slimeInAnimation, slimeOutAnimation, listener;
function SlimeCurtain (timeline, glass) {
super();
this.glass = glass;
target = timeline.createEmptyMovieClip("slime", SLIME_DEPTH);
slimeInAnimation = new com.mindcandy.diablo.shared.view.animation.LinkedAnimation(target, LNK_SLIME_IN);
slimeOutAnimation = new com.mindcandy.diablo.shared.view.animation.LinkedAnimation(target, LNK_SLIME_OUT);
}
function destroy() {
glass.destroy();
slimeInAnimation.destroy();
slimeOutAnimation.destroy();
super.destroy();
}
function doSlimeIn(listener) {
slimeInAnimation.show();
slimeOutAnimation.hide();
glass.activateGlassPanel();
this.listener = listener;
slimeInAnimation.addListener(this);
slimeInAnimation.play(0);
}
function doSlimeOut(listener) {
slimeInAnimation.hide();
slimeOutAnimation.show();
this.listener = listener;
slimeOutAnimation.addListener(this);
slimeOutAnimation.play(0);
}
function handleComplete(anim) {
if (anim.getKey() == LNK_SLIME_IN) {
trace("d Slime Curtain is now down.");
} else {
trace("d Slime Curtain is now up, stage is visible again.");
glass.disableGlassPanel();
slimeOutAnimation.hide();
}
listener.handleComplete(anim);
}
function handleInterrupt(anim) {
}
function handleSetup(anim, clip) {
}
static var SLIME_DEPTH = 1000;
static var LNK_SLIME_IN = "lnkSlimeIn";
static var LNK_SLIME_OUT = "lnkSlimeOut";
}
Symbol 20548 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.Environment] Frame 0
class com.mindcandy.diablo.shared.controller.Environment extends com.mindcandy.diablo.shared.controller.BaseController
{
static var instance;
var timeline, isInitialised, user, defaultUser, defaultMonster, properties, logManager, urlManager, soundManager, textManager, master, friendUser, friendMonster, eventManager, commandManager, appManager, functionManager;
function Environment () {
super();
timeline = null;
isInitialised = false;
user = (defaultUser = new com.mindcandy.diablo.shared.model.User());
defaultMonster = new com.mindcandy.diablo.shared.model.Monster();
}
static function getInstance() {
if (instance == null) {
instance = new com.mindcandy.diablo.shared.controller.Environment();
}
return(instance);
}
function init(master, timeline) {
if (isInitialised) {
master.handleReady(this);
} else {
super.init(master);
this.timeline = timeline;
initProperties();
}
}
function handleReady(sub) {
if (sub == properties) {
if (getBooleanProp("environment.logging")) {
initLogger();
} else {
initUrlManager();
}
} else if (sub == logManager) {
initUrlManager();
} else if (sub == urlManager) {
initSoundManager();
initOtherManagers();
} else if (sub == soundManager) {
initTextManager();
} else if (sub == textManager) {
isInitialised = true;
master.handleReady(this);
}
}
function handleFailed(sub, reason) {
master.handleFailed(this, "Environment was not fully initialised, because: " + reason);
}
function toString() {
var _local2 = "d >>> ENVIRONMENT PROPERTIES\n";
for (var prop in properties) {
_local2 = _local2 + ((("properties." + prop) + " = ") + properties[prop]);
}
return(_local2);
}
function getProperty(key) {
return(properties.getProperty(key));
}
function getBooleanProp(key) {
return((getProperty(key).toString() === "true") || (getProperty(key).toString() === "active"));
}
function getNumericProperty(key) {
return(Number(getProperty(key)));
}
function getParameter(key) {
return(((timeline[key] == undefined) ? (getDefaultParameterValue(key)) : (timeline[key])));
}
function useUncryption() {
return(UNCRYPTION_ACTIVE);
}
function redirectUser() {
getURL (getProperty("url.application.nosessionredirect"), "_self");
}
function redirectUserToLogin() {
getURL (getProperty("url.application.loginredirect"), "_self");
}
function redirectUserToAdoption() {
getURL ((getProperty("url.application.adoptionredirect") + "/") + friendUser.getUsername(), "_self");
}
function setUser(user) {
this.user = user;
}
function getUser() {
return(user);
}
function setFriendUser(user) {
trace("f FRIEND USER IS >>> " + user.getUsername());
friendUser = user;
}
function getFriendUser() {
return(((friendUser == null) ? (getUser()) : (friendUser)));
}
function setFriendMonster(monster) {
trace("f FRIEND ROOM MONSTER IS>>> " + monster.getName());
friendMonster = monster;
}
function getFriendMonster() {
return(((friendMonster == null) ? (user.getMonster()) : (friendMonster)));
}
function getUrlManager() {
return(urlManager);
}
function getEventManager() {
return(eventManager);
}
function getCommandManager() {
return(commandManager);
}
function getSoundManager() {
return(soundManager);
}
function getTextManager() {
return(textManager);
}
function registerAppManager(manager) {
if (appManager == null) {
appManager = manager;
}
}
function getAppManager() {
return(appManager);
}
function registerFunctionManager(manager) {
if (functionManager == null) {
functionManager = manager;
}
}
function getFunctionManager() {
return(functionManager);
}
function initProperties() {
var _local2 = getParameter("configroot") + "environment.properties";
properties = new com.mindcandy.diablo.shared.config.PropertiesFile(_local2, false);
properties.init(this);
}
function initLogger() {
logManager = new com.mindcandy.diablo.shared.controller.LogController("logging.xml");
logManager.init(this);
}
function initUrlManager() {
trace("f setting up URL manager...");
urlManager = new com.mindcandy.diablo.shared.controller.DefaultUrlManager(timeline);
urlManager.init(this);
}
function initSoundManager() {
trace("f setting up sound manager...");
soundManager = new com.mindcandy.diablo.shared.content.sound.DefaultSoundManager(timeline);
soundManager.init(this);
}
function initOtherManagers() {
trace("f setting up event and command managers...");
eventManager = com.mindcandy.diablo.shared.events.EventManagerLocator.getManager();
commandManager = new com.mindcandy.diablo.shared.controller.commands.DefaultCommandManager();
appManager = new com.mindcandy.diablo.shared.content.application.DefaultApplicationManager();
}
function initTextManager() {
trace("f setting up text manager...");
textManager = new com.mindcandy.diablo.shared.content.text.DefaultTextManager(getParameter("localecode"));
textManager.init(this);
}
function getDefaultParameterValue(key) {
switch (key) {
case "localecode" :
return("en");
case "configroot" :
return("config/");
case "whoami" :
return(user.getUserId().toString());
case "whereami" :
return(user.getUsername());
}
return("Unknown parameter");
}
function isLoggedIn() {
return(user.getUserId() != 0);
}
static var UNCRYPTION_ACTIVE = true;
}
Symbol 20549 MovieClip [__Packages.com.mindcandy.diablo.shared.view.tooltips.ToolTip] Frame 0
class com.mindcandy.diablo.shared.view.tooltips.ToolTip
{
function ToolTip () {
}
}
Symbol 20550 MovieClip [__Packages.com.mindcandy.diablo.shared.view.tooltips.BaseToolTip] Frame 0
class com.mindcandy.diablo.shared.view.tooltips.BaseToolTip implements com.mindcandy.diablo.shared.view.tooltips.ToolTip
{
var host, followTarget, followCentre, popDelay, boundries, listener, clickable, caratLocation, centreCarat, offset, speed, isValid, tooltipClip, posXPolarity, posYPolarity, boundryRight, boundryLeft, boundryTop, boundryBottom, hitTestTop, boundsTopClip, hitTestRight, boundsRightClip, hitTestBottom, boundsBottomClip, hitTestLeft, boundsLeftClip, usesBoundries, closeCall, fFadeOut;
function BaseToolTip (config) {
host = config.host;
followTarget = config.follow;
followCentre = config.followCentre || false;
popDelay = config.popDelay || (DEFAULT_DELAY);
boundries = config.boundries;
listener = config.listener;
clickable = config.clickable || false;
caratLocation = config.caratLoc || "b";
centreCarat = config.centreCarat || false;
offset = config.offset || ({x:0, y:0, base:0});
speed = config.speed || 1;
isValid = true;
tooltipClip = host.createEmptyMovieClip("tooltip", host.getNextHighestDepth());
tooltipClip._visible = false;
}
function init() {
generateBoundries();
applyRules();
spawn();
assemble();
runCycle();
}
function spawn() {
var _local2 = new flash.geom.Point(host._x, host._y);
followTarget.localToGlobal(_local2);
var _local3 = (posXPolarity ? (_local2.x + offset.x) : (_local2.x - offset.x));
var _local4 = (posYPolarity ? (_local2.y + offset.y) : (_local2.y - offset.y));
if (followCentre) {
_local3 = _local3 + (followTarget._width / 2);
_local4 = _local4 + (followTarget._height / 2);
}
tooltipClip._x = (xPos = _local3);
tooltipClip._y = (yPos = _local4);
}
function position() {
var _local2 = new flash.geom.Point(host._x, host._y);
followTarget.localToGlobal(_local2);
var _local3 = (posXPolarity ? (_local2.x + offset.x) : (_local2.x - offset.x));
var _local4 = (posYPolarity ? (_local2.y + offset.y) : (_local2.y - offset.y));
if (followCentre) {
_local3 = _local3 + (followTarget._width / 2);
_local4 = _local4 + (followTarget._height / 2);
}
xPos = xPos + ((_local3 - tooltipClip._x) / speed);
yPos = yPos + ((_local4 - tooltipClip._y) / speed);
tooltipClip._x = xPos;
tooltipClip._y = yPos;
}
function assemble() {
}
function checkBoundries() {
if ((tooltipClip._x + offset.base) > boundryRight) {
tooltipClip._x = (xPos = boundryRight - offset.base);
tooltipClip._visible = true;
}
if ((tooltipClip._x - offset.base) < boundryLeft) {
tooltipClip._x = (xPos = boundryLeft + offset.base);
tooltipClip._visible = true;
}
if ((caratLocation == "r") || (caratLocation == "l")) {
if ((tooltipClip._y - (tooltipClip._height / 2)) < boundryTop) {
tooltipClip._y = (yPos = boundryTop + (tooltipClip._height / 2));
tooltipClip._visible = true;
}
if ((tooltipClip._y + (tooltipClip._height / 2)) > boundryBottom) {
tooltipClip._y = (yPos = boundryBottom - (tooltipClip._height / 2));
tooltipClip._visible = true;
}
} else {
if (tooltipClip._y < boundryTop) {
tooltipClip._y = (yPos = boundryTop);
tooltipClip._visible = true;
}
if (tooltipClip._y > boundryBottom) {
tooltipClip._y = (yPos = boundryBottom);
tooltipClip._visible = true;
}
}
}
function validate() {
hitTestTop = tooltipClip.hitTest(boundsTopClip);
hitTestRight = tooltipClip.hitTest(boundsRightClip);
hitTestBottom = tooltipClip.hitTest(boundsBottomClip);
hitTestLeft = tooltipClip.hitTest(boundsLeftClip);
if ((hitTestTop == true) || ((hitTestRight == true) || ((hitTestBottom == true) || (hitTestLeft == true)))) {
isValid = false;
assemble();
} else {
isValid = true;
tooltipClip._visible = true;
}
}
function runCycle() {
position();
checkBoundries();
validate();
}
function generateBoundries() {
if (boundries != undefined) {
var _local2 = 0;
boundsTopClip = host.createEmptyMovieClip("t", host.getNextHighestDepth());
boundsTopClip.beginFill(16711680, _local2);
com.mindcandy.utils.movieclip.drawing.DrawRect.draw(boundsTopClip, 0, 0, Stage.width, boundries.t);
boundsTopClip.endFill();
boundsRightClip = host.createEmptyMovieClip("r", host.getNextHighestDepth());
boundsRightClip.beginFill(16711680, _local2);
com.mindcandy.utils.movieclip.drawing.DrawRect.draw(boundsRightClip, boundries.l + boundries.w, 0, Stage.width - (boundries.l + boundries.w), Stage.height);
boundsRightClip.endFill();
boundsBottomClip = host.createEmptyMovieClip("b", host.getNextHighestDepth());
boundsBottomClip.beginFill(16711680, _local2);
com.mindcandy.utils.movieclip.drawing.DrawRect.draw(boundsBottomClip, 0, boundries.t + boundries.h, Stage.width, Stage.height - (boundries.t + boundries.h));
boundsBottomClip.endFill();
boundsLeftClip = host.createEmptyMovieClip("l", host.getNextHighestDepth());
boundsLeftClip.beginFill(16711680, _local2);
com.mindcandy.utils.movieclip.drawing.DrawRect.draw(boundsLeftClip, 0, 0, boundries.l, Stage.height);
boundsLeftClip.endFill();
boundryTop = boundries.t;
boundryRight = boundries.l + boundries.w;
boundryBottom = boundries.t + boundries.h;
boundryLeft = boundries.l;
usesBoundries = true;
} else {
usesBoundries = false;
}
}
function applyRules() {
if (clickable) {
tooltipClip.onRelease = com.mindcandy.utils.delegate.Delegate.create(this, clickPop);
}
if (popDelay > 0) {
_global.clearInterval(closeCall);
closeCall = _global.setInterval(com.mindcandy.utils.delegate.Delegate.create(this, timePop), popDelay);
}
if (followTarget != undefined) {
tooltipClip.onEnterFrame = com.mindcandy.utils.delegate.Delegate.create(this, runCycle);
}
}
function clickPop() {
pop(true);
}
function timePop() {
pop(false);
}
function pop(clicked) {
_global.clearInterval(closeCall);
closeCall = null;
listener.handleClosing(this, clicked);
fFadeOut = null;
fFadeOut = new com.mosesSupposes.fuse.Fuse();
fFadeOut.addTarget(tooltipClip);
fFadeOut.push({scope:this, func:"destroy", _alpha:0, ease:"easeOutQuad", seconds:0.3});
fFadeOut.start();
}
function destroy() {
_global.clearInterval(closeCall);
closeCall = null;
fFadeOut.destroy();
tooltipClip.removeMovieClip();
listener.handleClosed(this);
listener = null;
boundsBottomClip.removeMovieClip();
boundsTopClip.removeMovieClip();
boundsLeftClip.removeMovieClip();
boundsRightClip.removeMovieClip();
}
function setDelay(delay) {
popDelay = delay;
}
function create(message) {
}
static var DEFAULT_DELAY = 5000;
var xPos = 0;
var yPos = 0;
}
Symbol 20551 MovieClip [__Packages.LuminicBox.Log.Level] Frame 0
class LuminicBox.Log.Level
{
var _name, _value;
function Level (name, value) {
_name = name;
_value = value;
}
function getName() {
return(_name);
}
function getValue() {
return(_value);
}
function toString() {
return(getName());
}
static var ALL = new LuminicBox.Log.Level("ALL", 1);
static var LOG = new LuminicBox.Log.Level("LOG", 1);
static var DEBUG = new LuminicBox.Log.Level("DEBUG", 2);
static var INFO = new LuminicBox.Log.Level("INFO", 4);
static var WARN = new LuminicBox.Log.Level("WARN", 8);
static var ERROR = new LuminicBox.Log.Level("ERROR", 16);
static var FATAL = new LuminicBox.Log.Level("FATAL", 32);
static var NONE = new LuminicBox.Log.Level("NONE", 1024);
}
Symbol 20552 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.scripting.Function] Frame 0
class com.mindcandy.diablo.shared.controller.scripting.Function
{
function Function () {
}
}
Symbol 20553 MovieClip [__Packages.com.mindcandy.diablo.shared.events.EventFilter] Frame 0
class com.mindcandy.diablo.shared.events.EventFilter
{
function EventFilter () {
}
}
Symbol 20554 MovieClip [__Packages.com.mindcandy.diablo.shared.content.application.SubApplication] Frame 0
class com.mindcandy.diablo.shared.content.application.SubApplication implements com.mindcandy.diablo.shared.events.EventFilter, com.mindcandy.diablo.shared.events.EventListener, com.mindcandy.diablo.shared.content.application.Application
{
var manager, details, window, isOpen, isLoaded, startRetryCount, clipLoader, remoteApp, clipLoadListener, startRetryInterval;
function SubApplication (manager, details, window) {
this.manager = manager;
this.details = details;
this.window = window;
isOpen = false;
isLoaded = false;
startRetryCount = 0;
}
function getDetails() {
return(details);
}
function load() {
if (!isLoaded) {
debug((((("LOADING " + details.getName()) + " FROM ") + details.getPath()) + " INTO ") + window.getHost());
window.init();
clipLoader = new MovieClipLoader();
setupLoadListener();
clipLoader.loadClip(details.getPath(), window.getHost());
}
}
function open() {
debug("OPENING " + details.getName());
isOpen = true;
startWhenLoaded();
}
function shut() {
debug("CLOSING " + details.getName());
window.close();
isOpen = false;
}
function exit() {
debug("EXIT " + details.getName());
if (isOpen) {
shut();
}
remoteApp.destroy();
}
function notify(event) {
debug("RECEIVED EVENT NOTIFICATION - " + event.getName());
if (event.getName() == "application ready") {
event.consume();
remoteApp = com.mindcandy.diablo.shared.content.application.RemoteApplication(event.getContext().endpoint);
open();
} else if (event.getName() == "application error") {
remoteApp = com.mindcandy.diablo.shared.content.application.RemoteApplication(event.getContext().endpoint);
shut();
exit();
} else if (remoteApp instanceof com.mindcandy.diablo.shared.events.EventListener) {
com.mindcandy.diablo.shared.events.EventListener(remoteApp).notify(event);
}
}
function getEventFilter() {
return(this);
}
function isFiltered(event) {
return(!isRelevant(event));
}
function isRelevant(event) {
return((event.getType() == com.mindcandy.diablo.shared.events.EventType.APPLICATION) && (event.getSource() == details.getName()));
}
function setupLoadListener() {
var subApp = this;
clipLoadListener = new Object();
clipLoadListener.app = this;
clipLoadListener.onLoadStart = function (clip) {
clip._visible = false;
clip.stop();
};
clipLoadListener.onLoadComplete = function (clip) {
trace("subapp - load complete");
};
clipLoadListener.onLoadInit = function (clip) {
clip._visible = true;
clip.play();
this.app.handleLoadComplete();
};
clipLoadListener.onLoadError = function (clip, errorCode, httpStatus) {
var _local5 = subApp.getDetails();
var _local6 = "Could not load application file " + _local5.getPath();
this.app.handleLoadError(_local6);
};
clipLoader.addListener(clipLoadListener);
}
function handleLoadComplete() {
isLoaded = true;
clipLoadListener = null;
clipLoader = null;
}
function handleLoadError(reason) {
debug((("ERROR LOADING " + details.getName()) + " - ") + reason);
isLoaded = false;
clipLoadListener = null;
clipLoader = null;
exit();
manager.relayEvent(this, "application error", {message:reason});
}
function startWhenLoaded() {
_global.clearInterval(startRetryInterval);
if (isLoaded) {
debug("LOADED " + details.getName());
window.open();
remoteApp.start();
manager.relayEvent(this, "application started");
} else if ((startRetryCount++) < MAX_RETRIES) {
debug("WAITING FOR " + details.getName());
startRetryInterval = _global.setInterval(this, "startWhenLoaded", WAIT_PERIOD);
} else {
debug("LOAD FAILED FOR " + details.getName());
handleLoadError("Timeout waiting for application to load");
}
}
function debug(text) {
if (DEBUG) {
trace("D " + text);
}
}
static var WAIT_PERIOD = 500;
static var MAX_RETRIES = 20;
static var DEBUG = true;
}
Symbol 20555 MovieClip [__Packages.LuminicBox.Log.IPublisher] Frame 0
class LuminicBox.Log.IPublisher
{
function IPublisher () {
}
}
Symbol 20556 MovieClip [__Packages.LuminicBox.Log.ConsolePublisher] Frame 0
class LuminicBox.Log.ConsolePublisher implements LuminicBox.Log.IPublisher
{
var _maxDepth;
function ConsolePublisher () {
_maxDepth = 4;
}
function set maxDepth(value) {
_maxDepth = ((_maxDepth > 255) ? 255 : (value));
//return(maxDepth);
}
function get maxDepth() {
return(_maxDepth);
}
function toString() {
return("ConsolePublisher");
}
function publish(e) {
var _local3 = LuminicBox.Log.LogEvent.serialize(e);
_local3.argument = serializeObj(_local3.argument, 1);
var _local4 = new LocalConnection();
_local4.send("_luminicbox_log_console", "log", _local3);
}
function serializeObj(o, depth) {
var _local4 = getType(o);
var _local5 = new Object();
if (!_local4.inspectable) {
_local5.value = o;
} else if (_local4.stringify) {
_local5.value = o + "";
} else if (depth <= _maxDepth) {
if ((_local4.name == "movieclip") || (_local4.name == "button")) {
_local5.id = o + "";
}
var _local6 = new Array();
if (o instanceof Array) {
var _local7 = 0;
for ( ; _local7 < o.length ; _local7++) {
_local6.push({property:_local7, value:serializeObj(o[_local7], depth + 1)});
}
} else {
for (var prop in o) {
_local6.push({property:prop, value:serializeObj(o[prop], depth + 1)});
}
}
_local5.value = _local6;
} else {
_local5.reachLimit = true;
}
_local5.type = _local4.name;
return(_local5);
}
function getType(o) {
var _local3 = typeof(o);
var _local4 = new Object();
_local4.inspectable = true;
_local4.name = _local3;
if ((_local3 == "string") || ((_local3 == "boolean") || ((_local3 == "number") || ((_local3 == "undefined") || (_local3 == "null"))))) {
_local4.inspectable = false;
} else if (o instanceof Date) {
_local4.inspectable = false;
_local4.name = "date";
} else if (o instanceof Array) {
_local4.name = "array";
} else if (o instanceof Button) {
_local4.name = "button";
} else if (o instanceof MovieClip) {
_local4.name = "movieclip";
} else if (o instanceof XML) {
_local4.name = "xml";
_local4.stringify = true;
} else if (o instanceof XMLNode) {
_local4.name = "xmlnode";
_local4.stringify = true;
} else if (o instanceof Color) {
_local4.name = "color";
}
return(_local4);
}
var _version = 0.1;
}
Symbol 20557 MovieClip [__Packages.com.mindcandy.diablo.shared.content.AssetFactory] Frame 0
class com.mindcandy.diablo.shared.content.AssetFactory
{
function AssetFactory () {
}
}
Symbol 20558 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.SoundAssetFactory] Frame 0
class com.mindcandy.diablo.shared.content.sound.SoundAssetFactory implements com.mindcandy.diablo.shared.content.AssetFactory
{
var holderClip;
function SoundAssetFactory (holderClip) {
this.holderClip = holderClip;
}
function create(item) {
var _local3 = com.mindcandy.diablo.shared.content.sound.SoundDetails(item);
var _local4 = _local3.getAssetDetails();
var _local5 = holderClip.createEmptyMovieClip(_local4.getId(), holderClip.getNextHighestDepth());
return(new com.mindcandy.diablo.shared.content.sound.BaseSoundAsset(_local4, _local3, _local5));
}
}
Symbol 20559 MovieClip [__Packages.com.mindcandy.diablo.shared.content.Asset] Frame 0
class com.mindcandy.diablo.shared.content.Asset
{
function Asset () {
}
}
Symbol 20560 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.SoundAsset] Frame 0
class com.mindcandy.diablo.shared.content.sound.SoundAsset implements com.mindcandy.diablo.shared.content.Asset
{
function SoundAsset () {
}
}
Symbol 20561 MovieClip [__Packages.com.mindcandy.diablo.shared.model.MonsterAnimation] Frame 0
class com.mindcandy.diablo.shared.model.MonsterAnimation implements com.mindcandy.diablo.shared.content.graphics.HasGraphicalDetails, com.mindcandy.diablo.shared.content.HasAssetDetails
{
var monster, key, floating, assetDetails, graphicsInfo;
function MonsterAnimation (monster, key, floating, path) {
this.monster = monster;
this.key = key || "";
this.floating = floating;
assetDetails = new com.mindcandy.diablo.shared.content.AssetDetails(key, -1, path, "swf");
graphicsInfo = new com.mindcandy.diablo.shared.content.graphics.GraphicalDetails(0, 0, -1);
}
function getKey() {
return(key);
}
function getAssetDetails() {
return(assetDetails);
}
function toXML() {
return(null);
}
function getGraphicalDetails() {
return(graphicsInfo);
}
function getFloating() {
return(floating);
}
}
Symbol 20562 MovieClip [__Packages.com.mindcandy.diablo.shared.view.events.EventDispatcher] Frame 0
class com.mindcandy.diablo.shared.view.events.EventDispatcher
{
function EventDispatcher () {
}
}
Symbol 20563 MovieClip [__Packages.com.mindcandy.diablo.shared.view.events.BaseEventDispatcher] Frame 0
class com.mindcandy.diablo.shared.view.events.BaseEventDispatcher implements com.mindcandy.diablo.shared.view.events.EventDispatcher
{
var source, eventManager;
function BaseEventDispatcher (source) {
this.source = source;
eventManager = null;
}
function getSource() {
return(source);
}
function getManager() {
if (eventManager == null) {
eventManager = com.mindcandy.diablo.shared.controller.Environment.getInstance().getEventManager();
}
return(eventManager);
}
function fireNewEvent(name, type, context, target) {
getManager().newEvent(name, type, context);
}
}
Symbol 20564 MovieClip [__Packages.com.mindcandy.diablo.shared.view.button.Button] Frame 0
class com.mindcandy.diablo.shared.view.button.Button
{
function Button () {
}
}
Symbol 20565 MovieClip [__Packages.com.mindcandy.diablo.shared.view.button.BaseButton] Frame 0
class com.mindcandy.diablo.shared.view.button.BaseButton extends com.mindcandy.diablo.shared.view.BaseViewObject implements com.mindcandy.diablo.shared.view.button.Button
{
var context, getMouseManager, target, listener, action;
function BaseButton (target, handler) {
super(target);
target.stop();
context = new Object();
if (!handler) {
handler = new com.mindcandy.diablo.shared.view.events.button.ButtonEventHandler(target, this);
}
getMouseManager().setHandler(handler);
reset();
}
static function createButton(target, action, context) {
var _local5 = new com.mindcandy.diablo.shared.view.button.BaseButton(target);
_local5.setAction(action);
_local5.setContext(context);
return(_local5);
}
function setActive(isActive) {
if (isActive) {
getMouseManager().activate();
com.mindcandy.diablo.shared.view.events.button.ButtonEventHandler(getMouseManager().getHandler()).handleActivate();
} else {
getMouseManager().deactivate();
com.mindcandy.diablo.shared.view.events.button.ButtonEventHandler(getMouseManager().getHandler()).handleDeactivate();
}
}
function reset(Void) {
target.gotoAndStop("Up");
}
function getListener(Void) {
return(listener);
}
function setListener(listener) {
this.listener = listener;
}
function setAction(action) {
this.action = action;
}
function getAction() {
return(action);
}
function getContext() {
return(context);
}
function setContext(context) {
this.context = context;
}
function setProperty(name, value) {
context[name] = value;
}
}
Symbol 20566 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.button.EventButton] Frame 0
class com.mindcandy.diablo.puzzle.view.button.EventButton extends com.mindcandy.diablo.shared.view.button.BaseButton
{
var eventType, eventName;
function EventButton (target, handler) {
super(target, handler);
}
function getEventType() {
return(eventType);
}
function setEventType(type) {
eventType = type;
}
function getEventName() {
return(eventName);
}
function setEventName(eventName) {
this.eventName = eventName;
}
}
Symbol 20567 MovieClip [__Packages.com.mindcandy.diablo.shared.view.dialogues.mouse.ErrorBoxMouseHandler] Frame 0
class com.mindcandy.diablo.shared.view.dialogues.mouse.ErrorBoxMouseHandler extends com.mindcandy.diablo.shared.view.events.button.ButtonEventHandler
{
var listener, target;
function ErrorBoxMouseHandler (target, listener) {
super(target);
this.listener = listener;
}
function handleClick(Void) {
target.gotoAndStop("Selected");
listener.handleDialogueResponse(true);
}
function destroy() {
target = null;
}
}
Symbol 20568 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.GhettoBlaster] Frame 0
class com.mindcandy.diablo.puzzle.view.GhettoBlaster
{
var env, timeline, soundManager, musicChannel;
function GhettoBlaster (timeline, env) {
this.env = env;
this.timeline = timeline;
soundManager = env.getSoundManager();
musicChannel = new com.mindcandy.diablo.shared.content.sound.mixer.BasicChannel(CHANNEL_A);
soundManager.getMixer().add(musicChannel);
soundManager.addExternalLibrary(this.timeline, getSoundList());
}
function playGameMusic() {
soundManager.playMusic(GAME_MUSIC, true, musicChannel);
}
function playEffect(key) {
soundManager.triggerEffect(key);
}
function playReactionFor(monster, mood) {
var _local4 = Math.floor(Math.random() * 2);
soundManager.triggerSpeech(getLinkageFor(monster, mood, _local4));
}
function getLinkageFor(monster, mood, id) {
id = ((id == undefined) ? 0 : (id));
return((("snd" + monster.getName()) + mood.getName()) + id);
}
function playResultSound(correct) {
playEffect((correct ? (CORRECT_FX) : (WRONG_FX)));
}
function playTimeUp() {
soundManager.getMixer().stopAllClips();
soundManager.triggerEffect(TIME_UP_FX);
}
function destroy() {
soundManager.getMixer().stopAllClips();
if (soundManager.getMixer().isMuted()) {
soundManager.getMixer().toggleMuted();
}
}
function getSoundList() {
var _local2 = new org.as2lib.data.holder.list.ArrayList();
_local2.insertByValue(new com.mindcandy.diablo.shared.content.sound.SoundDetails(GAME_MUSIC, GAME_MUSIC, com.mindcandy.diablo.shared.content.sound.SoundType.MUSIC));
_local2.insertByValue(new com.mindcandy.diablo.shared.content.sound.SoundDetails(ENDGAME_TICKS, ENDGAME_TICKS, com.mindcandy.diablo.shared.content.sound.SoundType.MUSIC));
_local2.insertByValue(new com.mindcandy.diablo.shared.content.sound.SoundDetails(SUSPENSE_FX, SUSPENSE_FX, com.mindcandy.diablo.shared.content.sound.SoundType.FX));
_local2.insertByValue(new com.mindcandy.diablo.shared.content.sound.SoundDetails(TIME_UP_FX, TIME_UP_FX, com.mindcandy.diablo.shared.content.sound.SoundType.FX));
_local2.insertByValue(new com.mindcandy.diablo.shared.content.sound.SoundDetails(CORRECT_FX, CORRECT_FX, com.mindcandy.diablo.shared.content.sound.SoundType.FX));
_local2.insertByValue(new com.mindcandy.diablo.shared.content.sound.SoundDetails(WRONG_FX, WRONG_FX, com.mindcandy.diablo.shared.content.sound.SoundType.FX));
_local2.insertByValue(new com.mindcandy.diablo.shared.content.sound.SoundDetails(CHECKING_FX, CHECKING_FX, com.mindcandy.diablo.shared.content.sound.SoundType.FX));
addMonsterSoundsToList(_local2);
return(_local2);
}
function addMonsterSoundsToList(sounds) {
var _local3 = com.mindcandy.diablo.puzzle.model.MonsterType.getValues();
var _local4 = com.mindcandy.diablo.puzzle.model.MonsterMoodType.getValues();
var _local5 = 0;
for ( ; _local5 < _local3.length ; _local5++) {
var _local6 = com.mindcandy.diablo.puzzle.model.MonsterType(_local3[_local5]);
var _local7 = 0;
for ( ; _local7 < _local4.length ; _local7++) {
var _local8 = com.mindcandy.diablo.puzzle.model.MonsterMoodType(_local4[_local7]);
for ( ; _local8 == com.mindcandy.diablo.puzzle.model.MonsterMoodType.IDLE ; _local7++) {
}
var _local9 = 0;
for ( ; _local9 < 2 ; _local9++) {
var _local10 = getLinkageFor(_local6, _local8, _local9);
sounds.insertByValue(new com.mindcandy.diablo.shared.content.sound.SoundDetails(_local10, _local10, com.mindcandy.diablo.shared.content.sound.SoundType.FX));
}
}
}
}
function toggleMute() {
soundManager.getMixer().toggleMuted();
}
function isMuted() {
return(soundManager.getMixer().isMuted());
}
static var GAME_MUSIC = "lnkPuzzleMusic";
static var ENDGAME_TICKS = "puzzle_music_ticks";
static var TIME_UP_FX = "puzzle_fx_timeup";
static var CHECKING_FX = "puzzle_fx_checking";
static var CORRECT_FX = "puzzle_fx_correct";
static var WRONG_FX = "puzzle_fx_wrong";
static var SUSPENSE_FX = "puzzle_fx_suspense";
static var CHANNEL_A = "A";
static var CHANNEL_B = "B";
}
Symbol 20569 MovieClip [__Packages.com.mindcandy.diablo.shared.model.DressingUpBox] Frame 0
class com.mindcandy.diablo.shared.model.DressingUpBox
{
var contentMap, contentTypeMap;
function DressingUpBox () {
contentMap = new com.mindcandy.data.holder.map.HashMap();
contentTypeMap = new com.mindcandy.data.holder.map.HashMap();
}
function add(item) {
var _local3 = item.getId().toString();
var _local4 = item.getType();
trace((("f add " + _local3) + ", ") + _local4);
if (!hasContentsOfType(_local4)) {
addType(_local4);
}
contentMap.put(_local3, item);
getContentListForType(_local4).insertLast(item);
}
function getContents() {
return(contentMap.iterator());
}
function getContentsOfType(name) {
return(getContentListForType(name));
}
function getItemCount(srcId) {
var _local3 = 0;
var _local5 = getContents();
while (_local5.hasNext()) {
var _local4 = com.mindcandy.diablo.shared.model.DressUpItem(_local5.next());
trace("f item src id: " + _local4.getAssetDetails().getSrcId());
if (_local4.getAssetDetails().getSrcId() == srcId) {
_local3++;
}
}
return(_local3);
}
function getUniqueContents() {
var _local3 = getContents();
var _local4 = new com.mindcandy.data.holder.map.HashMap();
while (_local3.hasNext()) {
var _local2 = com.mindcandy.diablo.shared.model.DressUpItem(_local3.next());
_local4.put(_local2.getAssetDetails().getSrcId(), _local2);
}
return(_local4.iterator());
}
function addType(name) {
contentTypeMap.put(name, new org.as2lib.data.holder.list.ArrayList());
}
function hasContentsOfType(name) {
return(contentTypeMap.containsKey(name));
}
function getContentListForType(name) {
return(org.as2lib.data.holder.List(contentTypeMap.get(name)));
}
function getItem(key) {
return(com.mindcandy.diablo.shared.model.DressUpItem(contentMap.get(key)));
}
}
Symbol 20570 MovieClip [__Packages.com.mindcandy.utils.logging.LuminicObjectLogger] Frame 0
class com.mindcandy.utils.logging.LuminicObjectLogger
{
static var logger;
function LuminicObjectLogger () {
}
static function getLogger() {
if (!logger) {
logger = new LuminicBox.Log.Logger();
logger.addPublisher(new LuminicBox.Log.ConsolePublisher());
}
return(logger);
}
static function debug(msg) {
getLogger().debug(msg);
}
static function error(msg) {
getLogger().error(msg);
}
static function fatal(msg) {
getLogger().fatal(msg);
}
static function warn(msg) {
getLogger().warn(msg);
}
static function info(msg) {
getLogger().info(msg);
}
static function log(msg) {
getLogger().log(msg);
}
}
Symbol 20571 MovieClip [__Packages.com.mindcandy.diablo.shared.content.application.ApplicationManager] Frame 0
class com.mindcandy.diablo.shared.content.application.ApplicationManager
{
function ApplicationManager () {
}
}
Symbol 20572 MovieClip [__Packages.com.mindcandy.diablo.shared.content.application.DefaultApplicationManager] Frame 0
class com.mindcandy.diablo.shared.content.application.DefaultApplicationManager implements com.mindcandy.diablo.shared.content.application.ApplicationManager
{
var appDetails, activeApps, eventManager;
function DefaultApplicationManager () {
appDetails = new com.mindcandy.data.holder.map.HashMap();
activeApps = new com.mindcandy.data.holder.map.HashMap();
eventManager = com.mindcandy.diablo.shared.events.EventManagerLocator.getManager();
}
function setAvailableApps(detailMap) {
appDetails = detailMap;
}
function loadApplication(details, window) {
var _local4 = new com.mindcandy.diablo.shared.content.application.SubApplication(this, details, window);
eventManager.newEvent("freeze game", com.mindcandy.diablo.shared.events.EventType.APPLICATION, {monster:details.freezeMonster, ui:details.freezeUI, window:details.freezeWindow, heartbeat:details.freezeHeartbeat}, details.getName());
activeApps.put(details.getName(), _local4);
eventManager.register(_local4);
_local4.load();
}
function findApplication(name) {
return(com.mindcandy.diablo.shared.content.application.Application(activeApps.get(name)));
}
function exitApplication(name) {
var _local3 = com.mindcandy.diablo.shared.content.application.SubApplication(findApplication(name));
eventManager.newEvent("defrost game", com.mindcandy.diablo.shared.events.EventType.APPLICATION, {monster:_local3.getDetails().freezeMonster, ui:_local3.getDetails().freezeUI, window:_local3.getDetails().freezeWindow, heartbeat:_local3.getDetails().freezeHeartbeat}, _local3.getDetails().getName());
activeApps.remove(name);
eventManager.remove(_local3);
_local3.exit();
}
function getDetailsFor(name) {
return(com.mindcandy.diablo.shared.content.application.ApplicationDetails(appDetails.get(name)));
}
function getAvailableAppNames() {
return(appDetails.keyIterator());
}
function getActiveAppNames() {
return(activeApps.keyIterator());
}
function relayEvent(source, id, context) {
eventManager.newEvent(id, com.mindcandy.diablo.shared.events.EventType.APPLICATION, context, source.getDetails().getName());
}
}
Symbol 20573 MovieClip [__Packages.com.mindcandy.diablo.shared.view.animation.Animation] Frame 0
class com.mindcandy.diablo.shared.view.animation.Animation
{
function Animation () {
}
}
Symbol 20574 MovieClip [__Packages.com.mindcandy.diablo.shared.view.animation.FrameAnimation] Frame 0
class com.mindcandy.diablo.shared.view.animation.FrameAnimation implements com.mindcandy.diablo.shared.view.animation.Animation
{
var targetClip, totalFrames, duration, loops, loopsComplete, ease, callback, frameFuse;
function FrameAnimation (targetClip, loops, ease) {
this.targetClip = targetClip;
totalFrames = this.targetClip._totalframes;
duration = totalFrames / 24;
this.loops = loops;
loopsComplete = 0;
this.ease = ease || "linear";
}
function start(callback) {
if (this.callback == undefined) {
this.callback = callback;
}
var _local3 = (((loopsComplete == 0) || (!targetClip.loopFrame)) ? 1 : (targetClip.loopFrame));
targetClip.gotoAndStop(_local3);
targetClip._visible = true;
frameFuse.destroy();
frameFuse = new com.mosesSupposes.fuse.Fuse();
frameFuse.addTarget(targetClip);
frameFuse.push({_frame:totalFrames, ease:ease, seconds:duration});
if (loops == -1) {
frameFuse.push({func:start, scope:this});
} else if (loops > loopsComplete) {
frameFuse.push({func:start, scope:this});
} else {
frameFuse.push({func:"animFinished", scope:this.callback, args:{animation:this}});
}
frameFuse.start();
loopsComplete++;
}
function destroy() {
targetClip.stop();
targetClip._visible = false;
frameFuse.destroy();
}
function getClip() {
return(targetClip);
}
function addListener(listener) {
}
function play(loops, ease) {
}
function pause() {
frameFuse.pause();
}
function resume() {
frameFuse.resume();
}
function getKey() {
return(targetClip._name);
}
}
Symbol 20575 MovieClip [__Packages.com.mindcandy.diablo.shared.content.BaseAssetManager] Frame 0
class com.mindcandy.diablo.shared.content.BaseAssetManager implements com.mindcandy.diablo.shared.content.AssetManager
{
var factory, loader, builder;
function BaseAssetManager (factory, loader, builder) {
this.factory = factory;
this.loader = loader;
this.builder = builder;
}
function getFactory() {
return(factory);
}
function getLoader() {
return(loader);
}
function getBuilder() {
return(builder);
}
function assemble(items, listener) {
builder.setListener(listener);
while (items.hasNext()) {
var _local4 = items.next();
if (_local4 instanceof com.mindcandy.diablo.shared.content.HasAssetDetails) {
var _local5 = com.mindcandy.diablo.shared.content.HasAssetDetails(_local4);
builder.add(factory.create(_local5));
}
}
loader.startLoading(builder);
}
}
Symbol 20576 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.SoundAssetManager] Frame 0
class com.mindcandy.diablo.shared.content.sound.SoundAssetManager extends com.mindcandy.diablo.shared.content.BaseAssetManager
{
function SoundAssetManager (holderClip) {
super(new com.mindcandy.diablo.shared.content.sound.SoundAssetFactory(holderClip), new com.mindcandy.diablo.shared.content.loaders.QueuedLoadManager(5), new com.mindcandy.diablo.shared.content.sound.SoundLibraryBuilder(holderClip));
}
}
Symbol 20577 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.LinkedPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.LinkedPanel extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var linkageId, holder, target, destroy;
function LinkedPanel (linkageId) {
super();
this.linkageId = linkageId;
}
function getLinkageId() {
return(linkageId);
}
function attach(holder) {
this.holder = holder;
target = holder.attachMovie(linkageId, linkageId, holder.getNextHighestDepth());
initHandlers();
}
function remove() {
clearHandlers();
destroy();
holder = null;
}
function show(listener) {
super.show();
playIntro(listener);
}
function playIntro(listener) {
listener.animFinished();
}
function initHandlers() {
trace("w Child classes must override initHandlers() in LinkedPanel!");
}
function clearHandlers() {
trace("w Child classes must override clearHandlers() in LinkedPanel!");
}
}
Symbol 20578 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.SoundManager] Frame 0
class com.mindcandy.diablo.shared.content.sound.SoundManager
{
function SoundManager () {
}
}
Symbol 20579 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.FloatController] Frame 0
class com.mindcandy.diablo.shared.controller.FloatController
{
var floatDelegate, yVel, yPos, floatLevel, floatSpeedStatic, floatSpeedActive, fallSpeed, maxFloatVelStatic, maxFloatVelActive, floating, hitTarget, floatInterval, floatSpeed, maxFloatVel;
function FloatController () {
floatDelegate = com.mindcandy.utils.delegate.Delegate.create(this, float);
yVel = 0;
yPos = 0;
floatLevel = 100;
floatSpeedStatic = 0.06;
floatSpeedActive = 0.35;
fallSpeed = 0.7;
maxFloatVelStatic = 1.2;
maxFloatVelActive = 6;
floating = false;
hitTarget = false;
floatInterval = null;
}
function activate(startFloat) {
if (!startFloat) {
_global.clearInterval(floatInterval);
floatInterval = null;
} else if (floatInterval == null) {
floatInterval = _global.setInterval(floatDelegate, 25);
}
}
function destroy() {
_global.clearInterval(floatInterval);
com.mindcandy.utils.delegate.Delegate.destroy(floatDelegate);
}
function float() {
if (floating) {
doFloat();
} else {
doFall();
}
yPos = yPos + yVel;
render();
}
function setFloat(float) {
floating = float;
if (floating) {
if (yPos > floatLevel) {
hitTarget = true;
} else {
hitTarget = false;
}
} else {
hitTarget = false;
}
}
function doFall() {
if (yPos > 0) {
yVel = yVel - fallSpeed;
}
if ((yPos + yVel) <= 0) {
hitTarget = true;
yPos = 0;
yVel = 0;
}
}
function doFloat() {
if (!hitTarget) {
if (yPos < (floatLevel * 0.75)) {
floatSpeed = floatSpeedActive;
maxFloatVel = maxFloatVelActive;
} else {
floatSpeed = floatSpeedStatic;
maxFloatVel = maxFloatVelStatic;
}
}
if (yPos < floatLevel) {
yVel = yVel + floatSpeed;
} else {
hitTarget = true;
yVel = yVel - floatSpeed;
}
if ((yVel > maxFloatVel) || (yVel < (-maxFloatVel))) {
yVel = yVel * 0.9;
}
}
function render() {
}
}
Symbol 20580 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.MonsterFloatController] Frame 0
class com.mindcandy.diablo.puzzle.controller.MonsterFloatController extends com.mindcandy.diablo.shared.controller.FloatController
{
var panel, floatLevel, floatSpeedActive, setFloat, yPos;
function MonsterFloatController (panel) {
super();
this.panel = panel;
floatLevel = 10 + Math.floor(Math.random() * 5);
floatSpeedActive = (Math.floor(Math.random() * 3) / 10) + 1;
setFloat(true);
}
function render() {
panel.getTarget()._y = -yPos;
}
}
Symbol 20581 MovieClip [__Packages.com.mindcandy.diablo.shared.events.EventManagerLocator] Frame 0
class com.mindcandy.diablo.shared.events.EventManagerLocator
{
function EventManagerLocator () {
}
static function getManager() {
if (eventManager == null) {
eventManager = new com.mindcandy.diablo.shared.events.MulticastingEventManager();
}
return(eventManager);
}
static var eventManager = null;
}
Symbol 20582 MovieClip [__Packages.com.mindcandy.diablo.shared.view.events.mouse.MouseManager] Frame 0
class com.mindcandy.diablo.shared.view.events.mouse.MouseManager
{
var doPress, doRelease, doReleaseOutside, doRollOver, doRollOut, eventSource, target, handler, clickCount, isPressed, isMouseOver, isBeingDragged, intervalBeforeDrag, startDragXPos, startDragYPos, handleClickInterval, lastClickTime;
function MouseManager (eventSource) {
doPress = com.mindcandy.utils.delegate.Delegate.create(this, handlePress);
doRelease = com.mindcandy.utils.delegate.Delegate.create(this, handleRelease);
doReleaseOutside = com.mindcandy.utils.delegate.Delegate.create(this, handleReleaseOutside);
doRollOver = com.mindcandy.utils.delegate.Delegate.create(this, handleRollOver);
doRollOut = com.mindcandy.utils.delegate.Delegate.create(this, handleRollOut);
this.eventSource = eventSource;
target = eventSource.getTarget();
deactivate();
}
function getHandler() {
return(handler);
}
function setHandler(handler) {
this.handler = handler;
bindHandlers();
}
function activate() {
bindHandlers();
}
function deactivate() {
clickCount = 0;
isPressed = false;
isMouseOver = false;
isBeingDragged = false;
_global.clearInterval(intervalBeforeDrag);
clearHandlers();
}
function reset() {
deactivate();
target = eventSource.getTarget();
activate();
}
function bindHandlers() {
target.onPress = doPress;
target.onRelease = doRelease;
target.onReleaseOutside = doReleaseOutside;
target.onRollOver = (target.onDragOver = doRollOver);
target.onRollOut = (target.onDragOut = doRollOut);
}
function clearHandlers() {
com.mindcandy.utils.movieclip.KillButton.Destroy(target);
}
function handlePress(Void) {
isPressed = true;
startDragXPos = target._xmouse;
startDragYPos = target._ymouse;
intervalBeforeDrag = _global.setInterval(this, "handleStartDrag", MS_BEFORE_DRAG);
handler.handlePress();
}
function handleRelease(Void) {
isPressed = false;
_global.clearInterval(intervalBeforeDrag);
if (isBeingDragged) {
handleEndDrag();
} else {
processClick();
}
_global.updateAfterEvent();
}
function handleReleaseOutside() {
if (handler.allowsDrag() || (handler.allowsReleaseOutside())) {
handleRelease();
}
}
function handleStartDrag(Void) {
_global.clearInterval(intervalBeforeDrag);
if (handler.allowsDrag()) {
isBeingDragged = true;
handler.handleDrag(target);
}
}
function handleEndDrag(Void) {
target.stopDrag();
isBeingDragged = false;
handler.handleDrop(target);
}
function processClick(Void) {
_global.clearInterval(handleClickInterval);
handleClick();
if (clickCount == 0) {
clickCount = 1;
} else if (getTimer() <= (lastClickTime + MS_MULTI_CLICK_GAP)) {
clickCount++;
} else {
clickCount = 1;
}
lastClickTime = getTimer();
handleClickInterval = _global.setInterval(this, "handleCompoundClick", MS_MULTI_CLICK_GAP);
}
function handleClick() {
handler.handleClick();
}
function handleCompoundClick() {
_global.clearInterval(handleClickInterval);
handler.handleCompoundClick(clickCount);
}
function getSource() {
return(eventSource);
}
function handleRollOver() {
if (!isBeingDragged) {
handler.handleRollOver();
}
}
function handleRollOut() {
if (!isBeingDragged) {
handler.handleRollOut();
}
}
function destroy() {
com.mindcandy.utils.delegate.Delegate.destroy(doPress);
com.mindcandy.utils.delegate.Delegate.destroy(doRelease);
com.mindcandy.utils.delegate.Delegate.destroy(doReleaseOutside);
com.mindcandy.utils.delegate.Delegate.destroy(doRollOver);
com.mindcandy.utils.delegate.Delegate.destroy(doRollOut);
handler.destroy();
handler = null;
eventSource = null;
target = null;
_global.clearInterval(handleClickInterval);
handleClickInterval = null;
_global.clearInterval(intervalBeforeDrag);
intervalBeforeDrag = null;
}
static var MS_BEFORE_DRAG = 100;
static var MS_MULTI_CLICK_GAP = 300;
}
Symbol 20583 MovieClip [__Packages.LuminicBox.Log.Logger] Frame 0
class LuminicBox.Log.Logger
{
var _loggerId, _level, _publishers, _filters;
function Logger (logId) {
if (logId && (logId.length > 0)) {
_loggerId = logId;
}
_level = LuminicBox.Log.Level.LOG;
_publishers = new Array();
_filters = new Array();
}
function setLevel(level) {
_level = level;
}
function addPublisher(publisher) {
if (!_publishers[publisher.toString()]) {
_publishers[publisher.toString()] = publisher;
}
}
function removePublisher(publisher) {
delete _publishers[publisher.toString()];
}
function getPublishers() {
return(_publishers);
}
function publish(argument, level) {
if (level.getValue() >= _level.getValue()) {
var _local4 = new LuminicBox.Log.LogEvent(_loggerId, argument, level);
for (var publisher in _publishers) {
LuminicBox.Log.IPublisher(_publishers[publisher]).publish(_local4);
}
}
}
function log(argument) {
publish(argument, LuminicBox.Log.Level.LOG);
}
function debug(argument) {
publish(argument, LuminicBox.Log.Level.DEBUG);
}
function info(argument) {
publish(argument, LuminicBox.Log.Level.INFO);
}
function warn(argument) {
publish(argument, LuminicBox.Log.Level.WARN);
}
function error(argument) {
publish(argument, LuminicBox.Log.Level.ERROR);
}
function fatal(argument) {
publish(argument, LuminicBox.Log.Level.FATAL);
}
}
Symbol 20584 MovieClip [__Packages.com.mindcandy.diablo.shared.content.AssetFileLoader] Frame 0
class com.mindcandy.diablo.shared.content.AssetFileLoader
{
function AssetFileLoader () {
}
}
Symbol 20585 MovieClip [__Packages.com.mindcandy.diablo.shared.content.loaders.BaseLoader] Frame 0
class com.mindcandy.diablo.shared.content.loaders.BaseLoader implements com.mindcandy.diablo.shared.content.AssetFileLoader
{
var targetURL, manager, containerType, percentageLoaded;
function BaseLoader (loadItem, manager, containerType) {
targetURL = loadItem.getDetails().getPath();
this.manager = manager;
this.containerType = containerType;
percentageLoaded = 0;
this.manager.add(this);
}
function start() {
}
function loadFailed(error) {
manager.handleLoadFailed(this, error);
}
function getPercentageLoaded() {
return(percentageLoaded);
}
function destroy() {
targetURL = null;
manager = null;
containerType = null;
percentageLoaded = null;
}
}
Symbol 20586 MovieClip [__Packages.com.mindcandy.diablo.shared.content.loaders.Mp3Loader] Frame 0
class com.mindcandy.diablo.shared.content.loaders.Mp3Loader extends com.mindcandy.diablo.shared.content.loaders.BaseLoader implements com.mindcandy.diablo.shared.content.AssetFileLoader
{
var sourceAsset, targetSound, targetURL, percentageLoaded, manager;
function Mp3Loader (loadItem, assetLoader) {
super(loadItem, assetLoader, "object");
sourceAsset = com.mindcandy.diablo.shared.content.sound.SoundAsset(loadItem);
targetSound = sourceAsset.getTarget();
}
function start() {
var scope = this;
targetSound.onLoad = function (success) {
delete this.onLoad;
if (success) {
scope.loadComplete();
} else {
scope.loadFailed("Could not load sound file:\n " + scope.targetURL);
}
};
trace("i L O A D I N G M P 3 - " + sourceAsset.getName());
targetSound.loadSound(targetURL, false);
}
function checkLoadProgress() {
percentageLoaded = (targetSound.getBytesLoaded() / targetSound.getBytesTotal()) * 100;
}
function loadComplete() {
manager.handleLoadComplete(this);
destroy();
}
function destroy() {
super.destroy();
}
}
Symbol 20587 MovieClip [__Packages.com.mindcandy.diablo.shared.model.StructureMask] Frame 0
class com.mindcandy.diablo.shared.model.StructureMask extends com.mindcandy.diablo.shared.model.Entity
{
var entityXMLNodeName, source, target;
function StructureMask (source, target) {
super();
entityXMLNodeName = "structuralmask";
this.source = source;
this.target = target;
}
function getSource() {
return(source);
}
function getTarget() {
return(target);
}
function toString() {
var _local3 = super.toString();
_local3 = _local3 + ((" source=\"" + source) + "\"");
_local3 = _local3 + ((" target=\"" + target) + "\"");
return(_local3);
}
}
Symbol 20588 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.SoundDetails] Frame 0
class com.mindcandy.diablo.shared.content.sound.SoundDetails implements com.mindcandy.diablo.shared.content.HasAssetDetails
{
var details, soundType;
function SoundDetails (id, path, type) {
details = new com.mindcandy.diablo.shared.content.AssetDetails(id, -1, path, "mp3");
soundType = type;
}
function getAssetDetails() {
return(details);
}
function getSoundType() {
return(soundType);
}
}
Symbol 20589 MovieClip [__Packages.com.mindcandy.diablo.shared.content.loaders.ExternalLibraryLoader] Frame 0
class com.mindcandy.diablo.shared.content.loaders.ExternalLibraryLoader extends com.mindcandy.diablo.shared.content.loaders.BaseLoader implements com.mindcandy.diablo.shared.content.AssetFileLoader
{
var loadTarget, swfMovieLoader, swfLoadListener, targetURL, manager;
function ExternalLibraryLoader (loadItem, manager) {
super(loadItem, manager, "movieclip");
loadTarget = com.mindcandy.diablo.shared.content.ExternalLibrary(loadItem);
}
function start() {
var scope = this;
swfMovieLoader = new MovieClipLoader();
swfLoadListener = new Object();
swfLoadListener.onLoadProgress = function (target_mc, bytesLoaded, bytesTotal) {
scope.percentageLoaded = (bytesLoaded / bytesTotal) * 100;
};
swfLoadListener.onLoadStart = function (target_mc) {
target_mc._visible = false;
target_mc.stop();
};
swfLoadListener.onLoadComplete = function (target_mc) {
target_mc.stop();
};
swfLoadListener.onLoadInit = function (target_mc) {
target_mc.gotoAndStop(1);
scope.loadComplete();
};
swfLoadListener.onLoadError = function (target_mc, errorCode, httpStatus) {
scope.loadFailed("Could not load SWF file:\n " + scope.targetURL);
};
trace((("i L O A D I N G E X T E R N A L L I B R A R Y " + loadTarget.getClip()._name) + " on path ") + loadTarget.getDetails().getPath());
swfMovieLoader.addListener(swfLoadListener);
swfMovieLoader.loadClip(targetURL, loadTarget.getClip());
}
function loadComplete() {
trace("i D O N E !");
manager.handleLoadComplete(this);
destroy();
}
function destroy() {
swfMovieLoader.removeListener(swfLoadListener);
swfMovieLoader = null;
swfLoadListener = null;
super.destroy();
}
}
Symbol 20590 MovieClip [__Packages.com.mosesSupposes.fuse.PennerEasing] Frame 0
class com.mosesSupposes.fuse.PennerEasing
{
function PennerEasing () {
}
static function linear(t, b, c, d) {
return(((c * t) / d) + b);
}
static function easeInQuad(t, b, c, d) {
t = t / d;
return(((c * t) * t) + b);
}
static function easeOutQuad(t, b, c, d) {
t = t / d;
return((((-c) * t) * (t - 2)) + b);
}
static function easeInOutQuad(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
return((((c / 2) * t) * t) + b);
}
t--;
return((((-c) / 2) * ((t * (t - 2)) - 1)) + b);
}
static function easeInExpo(t, b, c, d) {
return(((t == 0) ? (b) : ((c * Math.pow(2, 10 * ((t / d) - 1))) + b)));
}
static function easeOutExpo(t, b, c, d) {
return(((t == d) ? (b + c) : ((c * ((-Math.pow(2, (-10 * t) / d)) + 1)) + b)));
}
static function easeInOutExpo(t, b, c, d) {
if (t == 0) {
return(b);
}
if (t == d) {
return(b + c);
}
t = t / (d / 2);
if (t < 1) {
return(((c / 2) * Math.pow(2, 10 * (t - 1))) + b);
}
t--;
return(((c / 2) * ((-Math.pow(2, -10 * t)) + 2)) + b);
}
static function easeOutInExpo(t, b, c, d) {
if (t == 0) {
return(b);
}
if (t == d) {
return(b + c);
}
t = t / (d / 2);
if (t < 1) {
return(((c / 2) * ((-Math.pow(2, -10 * t)) + 1)) + b);
}
return(((c / 2) * (Math.pow(2, 10 * (t - 2)) + 1)) + b);
}
static function easeInElastic(t, b, c, d, a, p) {
if (t == 0) {
return(b);
}
t = t / d;
if (t == 1) {
return(b + c);
}
if (!p) {
p = d * 0.3;
}
if ((!a) || (a < Math.abs(c))) {
a = c;
var _local8 = p / 4;
} else {
var _local8 = (p / (2 * Math.PI)) * Math.asin(c / a);
}
t = t - 1;
return((-((a * Math.pow(2, 10 * t)) * Math.sin((((t * d) - _local8) * (2 * Math.PI)) / p))) + b);
}
static function easeOutElastic(t, b, c, d, a, p) {
if (t == 0) {
return(b);
}
t = t / d;
if (t == 1) {
return(b + c);
}
if (!p) {
p = d * 0.3;
}
if ((!a) || (a < Math.abs(c))) {
a = c;
var _local8 = p / 4;
} else {
var _local8 = (p / (2 * Math.PI)) * Math.asin(c / a);
}
return((((a * Math.pow(2, -10 * t)) * Math.sin((((t * d) - _local8) * (2 * Math.PI)) / p)) + c) + b);
}
static function easeInOutElastic(t, b, c, d, a, p) {
if (t == 0) {
return(b);
}
t = t / (d / 2);
if (t == 2) {
return(b + c);
}
if (!p) {
p = d * (0.3 * 1.5);
}
if ((!a) || (a < Math.abs(c))) {
a = c;
var _local8 = p / 4;
} else {
var _local8 = (p / (2 * Math.PI)) * Math.asin(c / a);
}
if (t < 1) {
t = t - 1;
return((-0.5 * ((a * Math.pow(2, 10 * t)) * Math.sin((((t * d) - _local8) * (2 * Math.PI)) / p))) + b);
}
t = t - 1;
return(((((a * Math.pow(2, -10 * t)) * Math.sin((((t * d) - _local8) * (2 * Math.PI)) / p)) * 0.5) + c) + b);
}
static function easeOutInElastic(t, b, c, d, a, p) {
if (t == 0) {
return(b);
}
t = t / (d / 2);
if (t == 2) {
return(b + c);
}
if (!p) {
p = d * (0.3 * 1.5);
}
if ((!a) || (a < Math.abs(c))) {
a = c;
var _local8 = p / 4;
} else {
var _local8 = (p / (2 * Math.PI)) * Math.asin(c / a);
}
if (t < 1) {
return(((0.5 * ((a * Math.pow(2, -10 * t)) * Math.sin((((t * d) - _local8) * (2 * Math.PI)) / p))) + (c / 2)) + b);
}
return(((c / 2) + (0.5 * ((a * Math.pow(2, 10 * (t - 2))) * Math.sin((((t * d) - _local8) * (2 * Math.PI)) / p)))) + b);
}
static function easeInBack(t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
t = t / d;
return((((c * t) * t) * (((s + 1) * t) - s)) + b);
}
static function easeOutBack(t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
t = (t / d) - 1;
return((c * (((t * t) * (((s + 1) * t) + s)) + 1)) + b);
}
static function easeInOutBack(t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
t = t / (d / 2);
if (t < 1) {
s = s * 1.525;
return(((c / 2) * ((t * t) * (((s + 1) * t) - s))) + b);
}
t = t - 2;
s = s * 1.525;
return(((c / 2) * (((t * t) * (((s + 1) * t) + s)) + 2)) + b);
}
static function easeOutInBack(t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
t = t / (d / 2);
if (t < 1) {
t--;
s = s * 1.525;
return(((c / 2) * (((t * t) * (((s + 1) * t) + s)) + 1)) + b);
}
t--;
s = s * 1.525;
return(((c / 2) * (((t * t) * (((s + 1) * t) - s)) + 1)) + b);
}
static function easeOutBounce(t, b, c, d) {
t = t / d;
if (t < (1 / 2.75)) {
return((c * ((7.5625 * t) * t)) + b);
}
if (t < (2 / 2.75)) {
t = t - (1.5 / 2.75);
return((c * (((7.5625 * t) * t) + 0.75)) + b);
}
if (t < (2.5 / 2.75)) {
t = t - (2.25 / 2.75);
return((c * (((7.5625 * t) * t) + 0.9375)) + b);
}
t = t - (2.625 / 2.75);
return((c * (((7.5625 * t) * t) + 0.984375)) + b);
}
static function easeInBounce(t, b, c, d) {
return((c - easeOutBounce(d - t, 0, c, d)) + b);
}
static function easeInOutBounce(t, b, c, d) {
if (t < (d / 2)) {
return((easeInBounce(t * 2, 0, c, d) * 0.5) + b);
}
return(((easeOutBounce((t * 2) - d, 0, c, d) * 0.5) + (c * 0.5)) + b);
}
static function easeOutInBounce(t, b, c, d) {
if (t < (d / 2)) {
return((easeOutBounce(t * 2, 0, c, d) * 0.5) + b);
}
return(((easeInBounce((t * 2) - d, 0, c, d) * 0.5) + (c * 0.5)) + b);
}
static function easeInCubic(t, b, c, d) {
t = t / d;
return((((c * t) * t) * t) + b);
}
static function easeOutCubic(t, b, c, d) {
t = (t / d) - 1;
return((c * (((t * t) * t) + 1)) + b);
}
static function easeInOutCubic(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
return(((((c / 2) * t) * t) * t) + b);
}
t = t - 2;
return(((c / 2) * (((t * t) * t) + 2)) + b);
}
static function easeOutInCubic(t, b, c, d) {
t = t / (d / 2);
t--;
return(((c / 2) * (((t * t) * t) + 1)) + b);
}
static function easeInQuart(t, b, c, d) {
t = t / d;
return(((((c * t) * t) * t) * t) + b);
}
static function easeOutQuart(t, b, c, d) {
t = (t / d) - 1;
return(((-c) * ((((t * t) * t) * t) - 1)) + b);
}
static function easeInOutQuart(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
return((((((c / 2) * t) * t) * t) * t) + b);
}
t = t - 2;
return((((-c) / 2) * ((((t * t) * t) * t) - 2)) + b);
}
static function easeOutInQuart(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
t--;
return((((-c) / 2) * ((((t * t) * t) * t) - 1)) + b);
}
t--;
return(((c / 2) * ((((t * t) * t) * t) + 1)) + b);
}
static function easeInQuint(t, b, c, d) {
t = t / d;
return((((((c * t) * t) * t) * t) * t) + b);
}
static function easeOutQuint(t, b, c, d) {
t = (t / d) - 1;
return((c * (((((t * t) * t) * t) * t) + 1)) + b);
}
static function easeInOutQuint(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
return(((((((c / 2) * t) * t) * t) * t) * t) + b);
}
t = t - 2;
return(((c / 2) * (((((t * t) * t) * t) * t) + 2)) + b);
}
static function easeOutInQuint(t, b, c, d) {
t = t / (d / 2);
t--;
return(((c / 2) * (((((t * t) * t) * t) * t) + 1)) + b);
}
static function easeInSine(t, b, c, d) {
return((((-c) * Math.cos((t / d) * (Math.PI / 2))) + c) + b);
}
static function easeOutSine(t, b, c, d) {
return((c * Math.sin((t / d) * (Math.PI / 2))) + b);
}
static function easeInOutSine(t, b, c, d) {
return((((-c) / 2) * (Math.cos((Math.PI * t) / d) - 1)) + b);
}
static function easeOutInSine(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
return(((c / 2) * Math.sin((Math.PI * t) / 2)) + b);
}
t--;
return((((-c) / 2) * (Math.cos((Math.PI * t) / 2) - 2)) + b);
}
static function easeInCirc(t, b, c, d) {
t = t / d;
return(((-c) * (Math.sqrt(1 - (t * t)) - 1)) + b);
}
static function easeOutCirc(t, b, c, d) {
t = (t / d) - 1;
return((c * Math.sqrt(1 - (t * t))) + b);
}
static function easeInOutCirc(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
return((((-c) / 2) * (Math.sqrt(1 - (t * t)) - 1)) + b);
}
t = t - 2;
return(((c / 2) * (Math.sqrt(1 - (t * t)) + 1)) + b);
}
static function easeOutInCirc(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
t--;
return(((c / 2) * Math.sqrt(1 - (t * t))) + b);
}
t--;
return(((c / 2) * (2 - Math.sqrt(1 - (t * t)))) + b);
}
static var registryKey = "pennerEasing";
}
Symbol 20591 MovieClip [__Packages.com.mindcandy.diablo.shared.content.text.TextManager] Frame 0
class com.mindcandy.diablo.shared.content.text.TextManager
{
function TextManager () {
}
}
Symbol 20592 MovieClip [__Packages.com.mindcandy.diablo.shared.content.text.DefaultTextManager] Frame 0
class com.mindcandy.diablo.shared.content.text.DefaultTextManager extends com.mindcandy.diablo.shared.controller.BaseController implements com.mindcandy.diablo.shared.content.text.TextManager
{
var localeCode, environment, properties, master;
function DefaultTextManager (localeCode) {
super();
this.localeCode = localeCode;
}
function init(environment) {
super.init(environment);
this.environment = environment;
loadProperties();
}
function getCurrentLocale() {
return(localeCode);
}
function getSubset(prefix) {
return(properties.getSubset(prefix));
}
function getText(key) {
return(properties.getProperty(key));
}
function getFormattedText(key, params) {
return(properties.getFormattedProperty(key, params));
}
function handleReady(subController) {
master.handleReady(this);
}
function handleFailed(sub, reason) {
master.handleFailed(this, reason);
}
function loadProperties() {
var _local2 = environment.useUncryption();
var _local3 = (environment.getUrlManager().getConfigURL("text") + localeCode) + ".properties";
trace((("f laoding props from " + _local3) + " uncrypt = ") + _local2);
properties = new com.mindcandy.diablo.shared.config.PropertiesFile(_local3, _local2);
properties.init(this);
}
}
Symbol 20593 MovieClip [__Packages.com.mosesSupposes.fuse.ZigoEngine] Frame 0
class com.mosesSupposes.fuse.ZigoEngine
{
static var extensions, updateTime, tweenHolder, instance, _listeners, broadcastMessage, updateIntId;
function ZigoEngine () {
}
static function addListener(handler) {
AsBroadcaster.initialize(com.mosesSupposes.fuse.ZigoEngine);
addListener(handler);
}
static function removeListener(handler) {
}
static function isPlaying() {
return(_playing);
}
static function simpleSetup(shortcutsClass) {
if (arguments.length > 0) {
register.apply(com.mosesSupposes.fuse.ZigoEngine, arguments);
}
_global.ZigoEngine = com.mosesSupposes.fuse.ZigoEngine;
if (extensions.fuse != undefined) {
_global.Fuse = extensions.fuse;
}
if (extensions.fuseFMP != undefined) {
extensions.fuseFMP.simpleSetup();
}
initialize(MovieClip.prototype, Button.prototype, TextField.prototype);
if (extensions.shortcuts == undefined) {
com.mosesSupposes.fuse.FuseKitCommon.error("001");
}
}
static function register(classReference) {
if (extensions == undefined) {
extensions = {};
}
var _local3 = "|fuse|fuseItem|fuseFMP|shortcuts|pennerEasing|customEasing|";
for (var i in arguments) {
var _local4 = arguments[i].registryKey;
if ((extensions[_local4] == undefined) && (_local3.indexOf(("|" + _local4) + "|") > -1)) {
extensions[_local4] = arguments[i];
if ((_local4 == "fuseFMP") || (_local4 == "shortcuts")) {
Object(extensions[_local4]).initialize();
}
}
}
}
static function initialize(target) {
if (arguments.length > 0) {
initializeTargets.apply(com.mosesSupposes.fuse.ZigoEngine, arguments);
if (extensions.shortcuts != undefined) {
extensions.shortcuts.addShortcutsTo.apply(extensions.shortcuts, arguments);
}
}
}
static function deinitialize(target) {
if ((arguments.length == 0) || (target == null)) {
arguments.push(MovieClip.prototype, Button.prototype, TextField.prototype);
}
deinitializeTargets.apply(com.mosesSupposes.fuse.ZigoEngine, arguments);
if (extensions.shortcuts != undefined) {
extensions.shortcuts.removeShortcutsFrom.apply(extensions.shortcuts, arguments);
}
}
static function getUpdateInterval() {
return(updateTime);
}
static function setUpdateInterval(time) {
if (_playing) {
setup(true);
updateTime = time;
setup();
} else {
updateTime = time;
}
}
static function getControllerDepth() {
return(tweenHolder.getDepth());
}
static function setControllerDepth(depth) {
if ((depth == null) || (_global.isNaN(depth) == true)) {
depth = 6789;
}
if (Object(tweenHolder).proof != null) {
tweenHolder.swapDepths(depth);
} else {
tweenHolder = _root.createEmptyMovieClip("ZigoEnginePulse", depth);
}
}
static function doShortcut(targets, methodName) {
if (extensions.shortcuts == undefined) {
if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("002");
}
return(null);
}
return(extensions.shortcuts.doShortcut.apply(extensions.shortcuts, arguments));
}
static function doTween(targets, props, endvals, seconds, ease, delay, callback) {
if (extensions.fuse.addBuildItem(arguments) == true) {
return(null);
}
if (TIME_MULTIPLIER != prevTimeMult) {
TIME_MULTIPLIER = Math.abs(TIME_MULTIPLIER);
if (_global.isNaN(TIME_MULTIPLIER) == true) {
TIME_MULTIPLIER = 1;
}
if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("016", TIME_MULTIPLIER);
}
prevTimeMult = TIME_MULTIPLIER;
}
if ((instance == undefined) || ((Object(tweenHolder).proof == undefined) && (updateTime == undefined))) {
if ((MovieClip.prototype.tween != null) && (typeof(_global.$tweenManager) == "object")) {
com.mosesSupposes.fuse.FuseKitCommon.error("003");
}
instance = new com.mosesSupposes.fuse.ZManager();
_playing = false;
}
var _local9 = instance.paramsObj(targets, props, endvals, true);
var _local10 = (((_local9.tg[0] == null) || (_local9.tg.length == 0)) ? undefined : (_local9.tg));
if ((_local9.pa == undefined) || ((_local10 == undefined) || (arguments.length < 3))) {
if ((extensions.fuseItem != null) && ((arguments.length == 1) && (typeof(arguments[0]) == "object"))) {
return(extensions.fuseItem.doTween(arguments[0]));
}
if (OUTPUT_LEVEL > 0) {
if (arguments.length < 3) {
com.mosesSupposes.fuse.FuseKitCommon.error("004", (((arguments.length == 1) && (arguments[0] == null)) ? "1 (null)" : (String(arguments.length))), extensions.fuseItem == null);
} else {
com.mosesSupposes.fuse.FuseKitCommon.error("005", _local10.toString(), _local9.pa.toString());
}
}
return(null);
}
if (_playing != true) {
setup();
}
if ((seconds == null) || (_global.isNaN(seconds) == true)) {
seconds = DURATION || 1;
} else if (seconds < 0.01) {
seconds = 0;
}
seconds = seconds * TIME_MULTIPLIER;
if ((delay < 0.01) || ((delay == null) || (_global.isNaN(delay) == true))) {
delay = 0;
}
delay = delay * TIME_MULTIPLIER;
var _local11 = com.mosesSupposes.fuse.FuseKitCommon.parseCallback(callback, _local10, OUTPUT_LEVEL, true);
if (typeof(ease) == "function") {
if (typeof(Function(ease).call(null, 1, 1, 1, 1)) == "number") {
var _local12 = Function(ease);
} else if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("014", ease);
}
} else if ((ease == null) || (ease == "")) {
if (EASING instanceof Function) {
var _local12 = Function(EASING);
} else if (extensions.pennerEasing != undefined) {
ease = EASING;
}
}
if ((typeof(ease) == "string") && (ease != "")) {
if (extensions.pennerEasing[ease] != undefined) {
var _local12 = extensions.pennerEasing[ease];
} else if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("006", ease);
}
} else if (ease instanceof Array) {
if (extensions.customEasing != undefined) {
_local11.extra1 = ease;
if (typeof(ease[0]) == "number") {
var _local12 = extensions.customEasing.precalced;
} else {
var _local12 = extensions.customEasing.fromCurve;
}
} else if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("015", ease);
}
}
if (typeof(_local12) != "function") {
var _local12 = function (t, b, c, d) {
t = (t / d) - 1;
return((c * (((((t * t) * t) * t) * t) + 1)) + b);
};
}
if (_listeners.length > 0) {
broadcastMessage.call(com.mosesSupposes.fuse.ZigoEngine, "onTweenAdd", _local10, _local9.pa, _local9.va, seconds, _local12, delay, _local11);
}
var _local13 = "";
for (var i in _local10) {
var _local14 = _local10[i];
if (_local14.__zigoID__ == null) {
initializeTargets(_local14);
} else if (instance.getStatus("locked", _local14) == true) {
if (OUTPUT_LEVEL > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("007", ((_local14._name != undefined) ? (_local14._name) : (_local14.toString())), _local9.pa.toString());
}
continue;
}
var _local15 = instance.addTween(_local14, _local9.pa, _local9.va, seconds, _local12, delay, _local11);
_local13 = ((_local15 == null) ? "|" : (_local15 + "|")) + _local13;
}
_local13 = _local13.slice(0, -1);
return((((_local13 == "") || (_local13 == "|")) ? null : (_local13)));
}
static function removeTween(targs, props) {
instance.removeTween(targs, props);
}
static function isTweening(targ, prop) {
return(instance.getStatus("active", targ, prop));
}
static function getTweens(targ) {
if (instance == undefined) {
return(0);
}
return(Number(instance.getStatus("count", targ)));
}
static function lockTween(targ, setLocked) {
instance.alterTweens("lock", targ, setLocked == true);
}
static function isTweenLocked(targ) {
return(instance.getStatus("locked", targ));
}
static function ffTween(targs, props, suppressEndEvents) {
instance.alterTweens("ff", targs, props, null, suppressEndEvents);
}
static function skipTweenTo(seconds, targs, props) {
instance.alterTweens("skipTo", targs, props, false, false, seconds);
}
static function rewTween(targs, props, pauseFlag, suppressStartEvents) {
instance.alterTweens("rewind", targs, props, pauseFlag, suppressStartEvents);
}
static function isTweenPaused(targ, prop) {
return(instance.getStatus("paused", targ, prop));
}
static function pauseTween(targs, props) {
instance.alterTweens("pause", targs, props);
}
static function unpauseTween(targs, props) {
instance.alterTweens("unpause", targs, props);
}
static function resumeTween(targs, props) {
instance.alterTweens("unpause", targs, props);
}
static function setColorByKey(targetObj, type, amt, rgb) {
new Color(targetObj).setTransform(getColorTransObj(type, amt, rgb));
}
static function getColorTransObj(type, amt, rgb) {
switch (type) {
case "brightness" :
var _local5 = 100 - Math.abs(amt);
var _local6 = ((amt > 0) ? (255 * (amt / 100)) : 0);
return({ra:_local5, rb:_local6, ga:_local5, gb:_local6, ba:_local5, bb:_local6});
case "brightOffset" :
return({ra:100, rb:255 * (amt / 100), ga:100, gb:255 * (amt / 100), ba:100, bb:255 * (amt / 100)});
case "contrast" :
return({ra:amt, rb:128 - ((128 / 100) * amt), ga:amt, gb:128 - ((128 / 100) * amt), ba:amt, bb:128 - ((128 / 100) * amt)});
case "invertColor" :
return({ra:100 - (2 * amt), rb:amt * (255 / 100), ga:100 - (2 * amt), gb:amt * (255 / 100), ba:100 - (2 * amt), bb:amt * (255 / 100)});
case "tint" :
if (rgb == null) {
break;
}
if (typeof(rgb) == "string") {
if (rgb.charAt(0) == "#") {
rgb = rgb.slice(1);
}
rgb = ((rgb.charAt(1).toLowerCase() != "x") ? ("0x" + rgb) : (rgb));
}
var _local7 = Number(rgb);
return({ra:100 - amt, rb:(_local7 >> 16) * (amt / 100), ga:100 - amt, gb:((_local7 >> 8) & 255) * (amt / 100), ba:100 - amt, bb:(_local7 & 255) * (amt / 100)});
}
return({rb:0, ra:100, gb:0, ga:100, bb:0, ba:100});
}
static function getColorKeysObj(targOrTransObj) {
var _local3 = ((targOrTransObj.ra != undefined) ? (targOrTransObj) : (new Color(targOrTransObj).getTransform()));
var _local4 = (_local3.ra == _local3.ga) && (_local3.ga == _local3.ba);
var _local5 = (_local3.rb == _local3.gb) && (_local3.gb == _local3.bb);
var _local6 = {tintPercent:Number(((_local4 == true) ? (100 - _local3.ra) : 0))};
if (_local6.tintPercent != 0) {
var _local7 = 100 / _local6.tintPercent;
_local6.tint = (((_local3.rb * _local7) << 16) | ((_local3.gb * _local7) << 8)) | (_local3.bb * _local7);
var _local8 = _local6.tint.toString(16);
var _local9 = 6 - _local8.length;
while ((_local9--) > 0) {
_local8 = "0" + _local8;
}
_local6.tintString = "0x" + _local8.toUpperCase();
}
if ((_local4 == true) && (_local5 == true)) {
if (_local3.ra < 0) {
_local6.invertColor = _local3.rb * (100 / 255);
} else if ((_local3.ra == 100) && (_local3.rb != 0)) {
_local6.brightOffset = _local3.rb * (100 / 255);
}
if (_local3.ra != 100) {
if ((_local3.rb == 0) || ((_local3.rb != 0) && (((255 * ((100 - _local3.ra) / 100)) - _local3.rb) <= 1))) {
_local6.brightness = ((_local3.rb != 0) ? (100 - _local3.ra) : (_local3.ra - 100));
}
if (((128 - ((128 / 100) * _local3.ra)) - _local3.rb) <= 1) {
_local6.contrast = _local3.ra;
}
}
}
return(_local6);
}
static function initializeTargets() {
for (var i in arguments) {
var _local2 = arguments[i];
if ((_local2 == MovieClip.prototype) || ((_local2 == Button.prototype) || ((_local2 == TextField.prototype) || (_local2 == Object.prototype)))) {
if (_local2.oldAddListener == undefined) {
if (_local2 == TextField.prototype) {
_local2.oldAddListener = _local2.addListener;
_global.ASSetPropFlags(_local2, "oldAddListener", 7, 1);
}
_local2.addListener = function (o) {
if (this.__zigoID__ == undefined) {
com.mosesSupposes.fuse.ZigoEngine.initializeTargets(this);
}
if (this instanceof TextField) {
Function(this.oldAddListener).call(this, o);
} else {
this.addListener(o);
}
};
if (_local2 == MovieClip.prototype) {
_global.ASSetPropFlags(_local2, "addListener", 7, 1);
}
}
} else if (_local2.__zigoID__ == undefined) {
_local2.__zigoID__ = zigoIDs;
_global.ASSetPropFlags(_local2, "__zigoID__", 7, 1);
zigoIDs++;
if ((_local2._listeners == null) || (_local2.addListener == null)) {
AsBroadcaster.initialize(_local2);
}
}
}
}
static function deinitializeTargets() {
for (var i in arguments) {
var _local2 = arguments[i];
if (_local2.__zigoID__ != undefined) {
_global.ASSetPropFlags(_local2, "__zigoID__,_listeners,broadcastMessage,addListener,removeListener", 0, 2);
delete _local2.__zigoID__;
delete _local2._listeners;
delete _local2.broadcastMessage;
delete _local2.addListener;
delete _local2.removeListener;
}
if (_local2.oldAddListener != undefined) {
_global.ASSetPropFlags(_local2, "oldAddListener", 0, 2);
_local2.addListener = _local2.oldAddListener;
delete _local2.oldAddListener;
}
}
}
static function __mgrRelay(inst, method, args) {
if (inst == instance) {
Function(com.mosesSupposes.fuse.ZigoEngine[method]).apply(com.mosesSupposes.fuse.ZigoEngine, args);
}
}
static function setup(deinitFlag) {
if (deinitFlag == true) {
_playing = false;
_global.clearInterval(updateIntId);
delete tweenHolder.onEnterFrame;
return(undefined);
}
instance.cleanUp();
_global.clearInterval(updateIntId);
delete updateIntId;
if ((updateTime != null) && (updateTime > 0)) {
updateIntId = _global.setInterval(instance, "update", updateTime);
} else {
if (Object(tweenHolder).proof == null) {
setControllerDepth(6789);
Object(tweenHolder).proof = 1;
}
var _inst = instance;
tweenHolder.onEnterFrame = function () {
_inst.update.call(_inst);
};
}
_playing = true;
instance.now = getTimer();
}
static var VERSION = com.mosesSupposes.fuse.FuseKitCommon.VERSION + ", ZigoEngine based on concepts by L.Zigo";
static var EASING = "easeOutQuint";
static var DURATION = 1;
static var TIME_MULTIPLIER = 1;
static var ROUND_RESULTS = false;
static var OUTPUT_LEVEL = 1;
static var AUTOSTOP = false;
static var SKIP_LEVEL = 0;
static var _playing = false;
static var zigoIDs = 0;
static var prevTimeMult = 1;
}
Symbol 20594 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.state.StateMachine] Frame 0
class com.mindcandy.diablo.puzzle.controller.state.StateMachine implements com.mindcandy.diablo.shared.controller.Controller, com.mindcandy.diablo.shared.events.EventListener
{
var env, filter, active, transitionMap, commandManager, master, currentState, currentTransition, currentHandler, handlers;
function StateMachine (env, filter) {
this.env = env;
this.filter = filter;
active = false;
transitionMap = {};
commandManager = env.getCommandManager();
}
function init(master) {
this.master = master;
}
function handleReady(sub) {
master.handleReady(this);
}
function handleFailed(sub, reason) {
master.handleFailed(this, reason);
}
function notify(event) {
if (transitionMap[event.getName()]) {
performTransitionFor(event.getName(), event.getContext());
}
}
function getEventFilter() {
return(filter);
}
function getCurrentState() {
return(currentState);
}
function addTransition(eventName, sourceStates, target, handlerName) {
var _local6 = new com.mindcandy.diablo.puzzle.controller.state.StateTransition(sourceStates, target, handlerName);
var _local7 = (transitionMap[eventName] ? (transitionMap[eventName]) : ({}));
if (sourceStates.length > 0) {
var _local8 = 0;
for ( ; _local8 < sourceStates.length ; _local8++) {
_local7[com.mindcandy.diablo.puzzle.controller.state.State(sourceStates[_local8])] = _local6;
}
} else {
trace("f adding wildcard rule for transition triggered by event " + eventName);
_local7[ALL_OTHER_STATES] = _local6;
}
transitionMap[eventName] = _local7;
}
function performTransitionFor(eventName, context) {
currentTransition = findTransitionFor(eventName);
if (currentTransition && (currentTransition.isAvailableFrom(currentState))) {
var _local4 = currentTransition.getTargetState();
currentHandler = commandManager.create(currentTransition.getHandlerName());
currentState = ((_local4 == com.mindcandy.diablo.puzzle.controller.state.State.KEEP_CURRENT) ? (currentState) : (_local4));
currentHandler.execute({}, prepare(context));
} else {
trace((((("f " + eventName) + " - cannot transition from ") + currentState.getName()) + " to ") + currentTransition.getTargetState().getName());
com.mindcandy.utils.logging.LuminicObjectLogger.debug(transitionMap);
}
}
function findTransitionFor(eventName) {
if (transitionMap[eventName]) {
var _local3 = null;
var _local4 = transitionMap[eventName];
if (_local4[currentState]) {
_local3 = com.mindcandy.diablo.puzzle.controller.state.StateTransition(_local4[currentState]);
} else if (_local4[ALL_OTHER_STATES]) {
_local3 = com.mindcandy.diablo.puzzle.controller.state.StateTransition(_local4[ALL_OTHER_STATES]);
}
return(_local3);
}
return(null);
}
function prepare(context) {
return(context);
}
function registerHandler(name, command) {
handlers.push(name);
commandManager.register(name, command);
}
function removeHandlers() {
while (handlers.length > 0) {
commandManager.remove(handlers.pop().toString());
}
}
static var ALL_OTHER_STATES = "*";
}
Symbol 20595 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.GameEngine] Frame 0
class com.mindcandy.diablo.puzzle.controller.GameEngine extends com.mindcandy.diablo.puzzle.controller.state.StateMachine
{
var parent, window, registerHandler, addTransition, active, performTransitionFor, currentState, removeHandlers;
function GameEngine (env, window, parent) {
super(env);
this.parent = parent;
this.window = window;
registerTransitionsAndHandlers();
}
function registerTransitionsAndHandlers() {
registerHandler(com.mindcandy.diablo.puzzle.controller.command.PlayCountdown.NAME, com.mindcandy.diablo.puzzle.controller.command.PlayCountdown);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.StartRound.NAME, com.mindcandy.diablo.puzzle.controller.command.StartRound);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.StartGame.NAME, com.mindcandy.diablo.puzzle.controller.command.StartGame);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.MarkPuzzle.NAME, com.mindcandy.diablo.puzzle.controller.command.MarkPuzzle);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.DisplayResult.NAME, com.mindcandy.diablo.puzzle.controller.command.DisplayResult);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.CheckStatus.NAME, com.mindcandy.diablo.puzzle.controller.command.CheckStatus);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.FlagTimeUp.NAME, com.mindcandy.diablo.puzzle.controller.command.FlagTimeUp);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.EndGame.NAME, com.mindcandy.diablo.puzzle.controller.command.EndGame);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.DisplayError.NAME, com.mindcandy.diablo.puzzle.controller.command.DisplayError);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.NEW_GAME, [com.mindcandy.diablo.puzzle.controller.state.GameState.IDLE], com.mindcandy.diablo.puzzle.controller.state.GameState.COUNTDOWN, com.mindcandy.diablo.puzzle.controller.command.PlayCountdown.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.COUNTDOWN_COMPLETED, [com.mindcandy.diablo.puzzle.controller.state.GameState.COUNTDOWN], com.mindcandy.diablo.puzzle.controller.state.GameState.STARTING, com.mindcandy.diablo.puzzle.controller.command.StartGame.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.STARTED, [com.mindcandy.diablo.puzzle.controller.state.GameState.STARTING], com.mindcandy.diablo.puzzle.controller.state.GameState.DISPLAYING_PUZZLE, com.mindcandy.diablo.puzzle.controller.command.StartRound.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.ANSWER_SELECTED, [com.mindcandy.diablo.puzzle.controller.state.GameState.DISPLAYING_PUZZLE], com.mindcandy.diablo.puzzle.controller.state.GameState.MARKING, com.mindcandy.diablo.puzzle.controller.command.MarkPuzzle.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.PUZZLE_MARKED, [com.mindcandy.diablo.puzzle.controller.state.GameState.MARKING], com.mindcandy.diablo.puzzle.controller.state.GameState.DISPLAYING_RESULT, com.mindcandy.diablo.puzzle.controller.command.DisplayResult.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.RESULT_SHOWN, [com.mindcandy.diablo.puzzle.controller.state.GameState.DISPLAYING_RESULT], com.mindcandy.diablo.puzzle.controller.state.GameState.CHECKING_STATUS, com.mindcandy.diablo.puzzle.controller.command.CheckStatus.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.NEW_ROUND, [com.mindcandy.diablo.puzzle.controller.state.GameState.CHECKING_STATUS], com.mindcandy.diablo.puzzle.controller.state.GameState.DISPLAYING_PUZZLE, com.mindcandy.diablo.puzzle.controller.command.StartRound.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.TIME_UP, [com.mindcandy.diablo.puzzle.controller.state.GameState.MARKING, com.mindcandy.diablo.puzzle.controller.state.GameState.DISPLAYING_RESULT], com.mindcandy.diablo.puzzle.controller.state.State.KEEP_CURRENT, com.mindcandy.diablo.puzzle.controller.command.FlagTimeUp.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.TIME_UP, [com.mindcandy.diablo.puzzle.controller.state.GameState.DISPLAYING_PUZZLE, com.mindcandy.diablo.puzzle.controller.state.GameState.CHECKING_STATUS], com.mindcandy.diablo.puzzle.controller.state.GameState.GAME_OVER, com.mindcandy.diablo.puzzle.controller.command.EndGame.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.GameEvent.PUZZLE_CACHE_EMPTY, [com.mindcandy.diablo.puzzle.controller.state.GameState.CHECKING_STATUS], com.mindcandy.diablo.puzzle.controller.state.GameState.GAME_OVER, com.mindcandy.diablo.puzzle.controller.command.EndGame.NAME);
}
function start() {
trace("i GameEngine Start");
active = true;
performTransitionFor(com.mindcandy.diablo.puzzle.controller.event.GameEvent.NEW_GAME, {});
}
function suspend() {
active = false;
}
function reset() {
active = false;
currentState = com.mindcandy.diablo.puzzle.controller.state.GameState.IDLE;
}
function destroy() {
active = false;
removeHandlers();
}
function prepare(context) {
return(parent.prepare(context));
}
}
Symbol 20596 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.MonsterMoodType] Frame 0
class com.mindcandy.diablo.puzzle.model.MonsterMoodType
{
var name;
function MonsterMoodType (name) {
this.name = name;
}
function getName() {
return(name);
}
static function getValues() {
if (MOODS.length == 0) {
populateDefaultMonsters();
}
return(MOODS);
}
static function populateDefaultMonsters() {
MOODS.push(IDLE);
MOODS.push(HAPPY);
MOODS.push(SAD);
}
static var IDLE = new com.mindcandy.diablo.puzzle.model.MonsterMoodType("Idle");
static var HAPPY = new com.mindcandy.diablo.puzzle.model.MonsterMoodType("Happy");
static var SAD = new com.mindcandy.diablo.puzzle.model.MonsterMoodType("Sad");
static var MOODS = new Array();
}
Symbol 20597 MovieClip [__Packages.com.mindcandy.diablo.shared.view.tooltips.SpeechBubble] Frame 0
class com.mindcandy.diablo.shared.view.tooltips.SpeechBubble extends com.mindcandy.diablo.shared.view.tooltips.BaseToolTip implements com.mindcandy.diablo.shared.view.tooltips.ToolTip
{
var WIDTH, CORNER_RADIUS, PADDING, FONT, FONT_SIZE, STROKE_COLOUR, BASE_COLOUR, TEXT_COLOUR, message, posXPolarity, posYPolarity, init, textClip, tooltipClip, setDelay, baseClip, caratClip, caratLocation, GLOW, SHADOW, isValid, hitTestTop, hitTestRight, offset, hitTestBottom, hitTestLeft;
function SpeechBubble (config, textFormat) {
super(config);
format(textFormat);
}
function format(textFormat) {
WIDTH = textFormat.width || 250;
CORNER_RADIUS = textFormat.cornerRadius || 10;
PADDING = textFormat.padding || 10;
FONT = textFormat.font || "Arial Rounded Bold MT";
FONT_SIZE = textFormat.fontSize || 14;
STROKE_COLOUR = textFormat.strokeColour || 12572651;
BASE_COLOUR = textFormat.baseColour || 16382973;
TEXT_COLOUR = textFormat.textColour || 4551058;
}
function create(message) {
this.message = message;
posXPolarity = true;
posYPolarity = false;
createText();
createBase();
init();
}
function createText() {
textClip = tooltipClip.createTextField("text", 3, PADDING, PADDING, WIDTH, 10);
textClip.wordWrap = true;
textClip.multiline = true;
textClip.setStyle("embedFonts", true);
textClip.embedFonts = true;
textClip.selectable = false;
textClip.text = message;
var _local2 = new TextFormat();
_local2.font = FONT;
_local2.size = FONT_SIZE;
_local2.color = TEXT_COLOUR;
textClip.setTextFormat(_local2);
textClip.autoSize = true;
var _local3 = Math.ceil(textClip.textWidth);
if (_local3 > WIDTH) {
textClip.textWidth = WIDTH;
}
textClip._width = textClip.textWidth + TEXT_BUFFER;
var _local4 = (message.length / 10) * 1000;
if (_local4 < DEFAULT_MIN_DELAY) {
_local4 = DEFAULT_MIN_DELAY;
} else if (_local4 > DEFAULT_MAX_DELAY) {
_local4 = DEFAULT_MAX_DELAY;
}
setDelay(_local4);
}
function createBase() {
baseClip = tooltipClip.createEmptyMovieClip("rect", 2);
baseClip.beginFill(BASE_COLOUR);
com.mindcandy.utils.movieclip.drawing.DrawRect.draw(baseClip, 0, 0, textClip._width + (CORNER_RADIUS * 2), textClip._height + (CORNER_RADIUS * 2), CORNER_RADIUS);
baseClip.endFill();
caratClip = tooltipClip.createEmptyMovieClip("carat", 1);
caratClip.beginFill(BASE_COLOUR);
caratClip.moveTo(0, 0);
if (caratLocation == "t") {
caratClip.lineTo(40, 20);
caratClip.lineTo(10, 20);
} else if (caratLocation == "b") {
caratClip.lineTo(40, -20);
caratClip.lineTo(10, -20);
}
caratClip.lineTo(0, 0);
caratClip.endFill();
GLOW = new flash.filters.GlowFilter(STROKE_COLOUR, 100, 6, 6, 6);
SHADOW = new flash.filters.DropShadowFilter(5, 50, 0, 15, 5, 5, 0.1);
tooltipClip.filters = [GLOW, SHADOW];
}
function assemble() {
if (isValid) {
setDefault();
} else {
if (hitTestTop) {
switch (caratLocation) {
case "t" :
caratClip._yscale = 100;
baseClip._y = 0 + caratClip._height;
posYPolarity = true;
break;
case "b" :
caratClip._yscale = -100;
baseClip._y = 0 + caratClip._height;
posYPolarity = true;
}
}
if (hitTestRight) {
caratClip._xscale = -100;
baseClip._x = (-baseClip._width) + offset.base;
posXPolarity = false;
}
if (hitTestBottom) {
switch (caratLocation) {
case "t" :
caratClip._yscale = -100;
baseClip._y = -(baseClip._height + caratClip._height);
posYPolarity = false;
break;
case "b" :
caratClip._yscale = 100;
baseClip._y = -(baseClip._height + caratClip._height);
posYPolarity = false;
}
}
if (hitTestLeft) {
caratClip._xscale = 100;
baseClip._x = -offset.base;
posXPolarity = true;
}
}
textClip._y = baseClip._y + PADDING;
textClip._x = baseClip._x + PADDING;
}
function setDefault() {
switch (caratLocation) {
case "t" :
caratClip._xscale = 100;
caratClip._yscale = 100;
baseClip._x = -offset.base;
baseClip._y = 0 + caratClip._height;
break;
case "b" :
caratClip._xscale = 100;
caratClip._yscale = 100;
baseClip._x = -offset.base;
baseClip._y = -(baseClip._height + caratClip._height);
}
}
static var DEFAULT_MIN_DELAY = 3000;
static var DEFAULT_MAX_DELAY = 8000;
static var TEXT_BUFFER = 8;
}
Symbol 20598 MovieClip [__Packages.org.as2lib.data.holder.List] Frame 0
class org.as2lib.data.holder.List
{
function List () {
}
}
Symbol 20599 MovieClip [__Packages.org.as2lib.data.holder.list.ArrayList] Frame 0
class org.as2lib.data.holder.list.ArrayList implements org.as2lib.data.holder.List
{
var data;
function ArrayList (source) {
if (source) {
data = source.concat();
} else {
data = new Array();
}
}
function insertByIndexAndValue(index, value) {
if ((index < 0) || (index > data.length)) {
throw new Error(((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or greater than this list's size [") + size()) + "].", this, arguments);
}
if (index == data.length) {
data.push(value);
return(undefined);
}
if (index == 0) {
data.unshift(value);
return(undefined);
}
data.splice(index, 0, value);
}
function removeByIndex(index) {
if ((index < 0) || (index >= data.length)) {
throw new Error(((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or equal to or greater than this list's size [") + size()) + "].", this, arguments);
}
if (index == 0) {
return(data.shift());
}
if (index == (data.length - 1)) {
return(data.pop());
}
var _local3 = data[index];
data.splice(index, 1);
return(_local3);
}
function set(index, value) {
if ((index < 0) || (index >= data.length)) {
throw new Error(((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or equal to or greater than this list's size [") + size()) + "].", this, arguments);
}
var _local4 = data[index];
data[index] = value;
return(_local4);
}
function get(index) {
if ((index < 0) || (index >= data.length)) {
throw new Error(((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or equal to or greater than this list's size [") + size()) + "].", this, arguments);
}
return(data[index]);
}
function clear(Void) {
data = new Array();
}
function size(Void) {
return(data.length);
}
function iterator(Void) {
return(new org.as2lib.data.holder.array.ArrayIterator(data));
}
function toArray(Void) {
return(data.concat());
}
function insert() {
if (arguments.length == 1) {
insertByValue(arguments[0]);
} else if ((arguments.length == 2) && (arguments[0] instanceof Number)) {
insertByIndexAndValue(Number(arguments[0]), arguments[1]);
} else {
trace("f Invalid insert call");
}
}
function insertByValue(value) {
insertLast(value);
}
function insertFirst(value) {
insertByIndexAndValue(0, value);
}
function insertLast(value) {
insertByIndexAndValue(size(), value);
}
function insertAll() {
if ((arguments.length == 1) && (arguments[0] instanceof org.as2lib.data.holder.List)) {
insertAllByList(org.as2lib.data.holder.List(arguments[0]));
} else if ((arguments[0] instanceof Number) && (arguments[1] instanceof org.as2lib.data.holder.List)) {
insertAllByIndexAndList(Number(arguments[0]), org.as2lib.data.holder.List(arguments[1]));
} else {
trace("f Invalid insertAll call");
}
}
function insertAllByList(list) {
var _local3 = list.toArray();
var _local4 = _local3.length;
var _local5 = 0;
for ( ; _local5 < _local4 ; _local5++) {
insertLast(_local3[_local5]);
}
}
function insertAllByIndexAndList(index, list) {
if ((index < 0) || (index > size())) {
throw new Error(((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or greater than this list's size [") + size()) + "].", this, arguments);
}
var _local4 = list.toArray();
var _local5 = _local4.length;
var _local6 = 0;
for ( ; _local6 < _local5 ; _local6++) {
insertByIndexAndValue(_local6 + index, _local4[_local6]);
}
}
function remove() {
if (arguments.length != 1) {
return(undefined);
}
if (arguments[0] instanceof Number) {
removeByIndex(Number(arguments[0]));
} else {
removeByValue(arguments[0]);
}
}
function removeByValue(value) {
var _local3 = indexOf(value);
if (_local3 > -1) {
removeByIndex(indexOf(value));
}
return(_local3);
}
function removeFirst(Void) {
return(removeByIndex(0));
}
function removeLast(Void) {
return(removeByIndex(size() - 1));
}
function removeAll(list) {
var _local3 = list.toArray();
var _local4 = _local3.length;
var _local5 = 0;
for ( ; _local5 < _local4 ; _local5++) {
removeByValue(_local3[_local5]);
}
}
function setAll(index, list) {
if ((index < 0) || ((index + list.size()) > size())) {
throw new Error(((((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or the 'index' plus the size of the given 'list' [") + list.size()) + "] is greater than this list's size [") + size()) + "].", this, arguments);
}
var _local4 = list.toArray();
var _local5 = _local4.length;
var _local6 = 0;
for ( ; _local6 < _local5 ; _local6++) {
set(index++, _local4[_local6]);
}
}
function contains(value) {
return(indexOf(value) > -1);
}
function containsAll(list) {
var _local3 = list.toArray();
var _local4 = _local3.length;
var _local5 = 0;
for ( ; _local5 < _local4 ; _local5++) {
if (!contains(_local3[_local5])) {
return(false);
}
}
return(true);
}
function retainAll(list) {
var _local3 = size();
while (_local3-- , _local3 - -1) {
if (!list.contains(get(_local3))) {
removeByIndex(_local3);
}
}
}
function subList(fromIndex, toIndex) {
return(new org.as2lib.data.holder.list.SubList(this, fromIndex, toIndex));
}
function isEmpty(Void) {
return(size() < 1);
}
function indexOf(value) {
var _local3 = size();
while (_local3-- , (_local3 > -1) && (!(get(_local3) === value))) {
}
return(_local3);
}
}
Symbol 20600 MovieClip [__Packages.com.mindcandy.utils.movieclip.drawing.DrawRect] Frame 0
class com.mindcandy.utils.movieclip.drawing.DrawRect
{
function DrawRect () {
}
static function draw(targetClip, x, y, w, h, cornerRadius) {
if (arguments.length > 4) {
if (cornerRadius > 0) {
if (cornerRadius > (Math.min(w, h) / 2)) {
cornerRadius = Math.min(w, h) / 2;
}
var _local8 = Math.PI / 4;
targetClip.moveTo(x + cornerRadius, y);
targetClip.lineTo((x + w) - cornerRadius, y);
var _local9 = (-Math.PI) / 2;
var _local10 = ((x + w) - cornerRadius) + ((Math.cos(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
var _local11 = (y + cornerRadius) + ((Math.sin(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
var _local12 = ((x + w) - cornerRadius) + (Math.cos(_local9 + _local8) * cornerRadius);
var _local13 = (y + cornerRadius) + (Math.sin(_local9 + _local8) * cornerRadius);
targetClip.curveTo(_local10, _local11, _local12, _local13);
_local9 = _local9 + _local8;
_local10 = ((x + w) - cornerRadius) + ((Math.cos(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local11 = (y + cornerRadius) + ((Math.sin(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local12 = ((x + w) - cornerRadius) + (Math.cos(_local9 + _local8) * cornerRadius);
_local13 = (y + cornerRadius) + (Math.sin(_local9 + _local8) * cornerRadius);
targetClip.curveTo(_local10, _local11, _local12, _local13);
targetClip.lineTo(x + w, (y + h) - cornerRadius);
_local9 = _local9 + _local8;
_local10 = ((x + w) - cornerRadius) + ((Math.cos(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local11 = ((y + h) - cornerRadius) + ((Math.sin(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local12 = ((x + w) - cornerRadius) + (Math.cos(_local9 + _local8) * cornerRadius);
_local13 = ((y + h) - cornerRadius) + (Math.sin(_local9 + _local8) * cornerRadius);
targetClip.curveTo(_local10, _local11, _local12, _local13);
_local9 = _local9 + _local8;
_local10 = ((x + w) - cornerRadius) + ((Math.cos(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local11 = ((y + h) - cornerRadius) + ((Math.sin(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local12 = ((x + w) - cornerRadius) + (Math.cos(_local9 + _local8) * cornerRadius);
_local13 = ((y + h) - cornerRadius) + (Math.sin(_local9 + _local8) * cornerRadius);
targetClip.curveTo(_local10, _local11, _local12, _local13);
targetClip.lineTo(x + cornerRadius, y + h);
_local9 = _local9 + _local8;
_local10 = (x + cornerRadius) + ((Math.cos(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local11 = ((y + h) - cornerRadius) + ((Math.sin(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local12 = (x + cornerRadius) + (Math.cos(_local9 + _local8) * cornerRadius);
_local13 = ((y + h) - cornerRadius) + (Math.sin(_local9 + _local8) * cornerRadius);
targetClip.curveTo(_local10, _local11, _local12, _local13);
_local9 = _local9 + _local8;
_local10 = (x + cornerRadius) + ((Math.cos(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local11 = ((y + h) - cornerRadius) + ((Math.sin(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local12 = (x + cornerRadius) + (Math.cos(_local9 + _local8) * cornerRadius);
_local13 = ((y + h) - cornerRadius) + (Math.sin(_local9 + _local8) * cornerRadius);
targetClip.curveTo(_local10, _local11, _local12, _local13);
targetClip.lineTo(x, y + cornerRadius);
_local9 = _local9 + _local8;
_local10 = (x + cornerRadius) + ((Math.cos(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local11 = (y + cornerRadius) + ((Math.sin(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local12 = (x + cornerRadius) + (Math.cos(_local9 + _local8) * cornerRadius);
_local13 = (y + cornerRadius) + (Math.sin(_local9 + _local8) * cornerRadius);
targetClip.curveTo(_local10, _local11, _local12, _local13);
_local9 = _local9 + _local8;
_local10 = (x + cornerRadius) + ((Math.cos(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local11 = (y + cornerRadius) + ((Math.sin(_local9 + (_local8 / 2)) * cornerRadius) / Math.cos(_local8 / 2));
_local12 = (x + cornerRadius) + (Math.cos(_local9 + _local8) * cornerRadius);
_local13 = (y + cornerRadius) + (Math.sin(_local9 + _local8) * cornerRadius);
targetClip.curveTo(_local10, _local11, _local12, _local13);
} else {
targetClip.moveTo(x, y);
targetClip.lineTo(x + w, y);
targetClip.lineTo(x + w, y + h);
targetClip.lineTo(x, y + h);
targetClip.lineTo(x, y);
}
}
}
}
Symbol 20601 MovieClip [__Packages.org.osflash.zeroi.logging.LoggerClass] Frame 0
class org.osflash.zeroi.logging.LoggerClass
{
static var instance;
var history, doBroadcast, replayCount, _listeners;
function LoggerClass () {
AsBroadcaster.initialize(this);
history = new Array();
doBroadcast = broadcastAndRecordMessage;
replayCount = 0;
}
static function getInstance() {
if (instance == null) {
instance = new org.osflash.zeroi.logging.LoggerClass();
}
return(instance);
}
static function log(msg, method, file, lineNr) {
if (loggingActive) {
var _local6 = getInstance();
_local6.doLog.apply(_local6, arguments);
}
}
static function setLogging(active) {
loggingActive = active;
}
function doLog(msg, method, file, lineNr) {
var _local6 = msg.charAt(0).toLowerCase();
if (msg.length == 1) {
msg = "";
} else if (msg.charAt(1) == " ") {
msg = msg.substr(2);
}
var _local7 = 50;
var _local8 = _local7 - msg.toString().length;
var _local9 = 0;
for ( ; _local9 < _local8 ; _local9++) {
msg = msg + " ";
}
var _local10 = (((msg + ">> ") + method) + " >> Line No: ") + lineNr;
if (org.osflash.zeroi.logging.LoggerConfig.isInitialized()) {
var _local11 = method.substr(0, method.indexOf(":"));
var _local12 = org.osflash.zeroi.logging.LoggerConfig.getLogLevel(_local11);
if (org.osflash.zeroi.logging.LogLevel.getLevelByKey(_local6).getLevel() < _local12.getLevel()) {
return(undefined);
}
}
switch (_local6) {
case "d" :
doBroadcast("publish", "debug", _local10);
break;
case "i" :
doBroadcast("publish", "info", _local10);
break;
case "w" :
doBroadcast("publish", "warn", _local10);
break;
case "e" :
doBroadcast("publish", "error", _local10);
break;
case "f" :
doBroadcast("publish", "fatal", _local10);
break;
case "t" :
doBroadcast("publish", "temp", _local10);
break;
default :
doBroadcast("publish", "debug", _local10);
}
}
function stopRecordingHistory() {
history = null;
doBroadcast = broadcastMessage;
}
function doReplayHistory(listener) {
var _local5 = 0;
for ( ; _local5 < history.length ; _local5++) {
var _local3 = history[_local5][0];
var _local4 = history[_local5].slice(1);
listener[_local3].apply(listener, _local4);
}
replayCount++;
if (replayCount == _listeners.length) {
stopRecordingHistory();
}
}
function addListener(listener) {
}
function removeListener(listener) {
}
function broadcastMessage(msg) {
}
function broadcastAndRecordMessage(msg) {
history.push(arguments);
broadcastMessage.apply(this, arguments);
}
function replayHistory(listener) {
var id;
var self = this;
id = _global.setInterval(function () {
_global.clearInterval(id);
self.doReplayHistory(listener);
}, 500);
}
static var loggingActive = true;
}
Symbol 20602 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.mixer.FaderCurve] Frame 0
class com.mindcandy.diablo.shared.content.sound.mixer.FaderCurve
{
function FaderCurve () {
}
}
Symbol 20603 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.button.PuzzleButton] Frame 0
class com.mindcandy.diablo.puzzle.view.button.PuzzleButton extends com.mindcandy.diablo.puzzle.view.button.EventButton
{
function PuzzleButton (target) {
super(target, new com.mindcandy.diablo.puzzle.view.button.PuzzleButtonHandler(target, this));
}
}
Symbol 20604 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.button.AnswerButton] Frame 0
class com.mindcandy.diablo.puzzle.view.button.AnswerButton extends com.mindcandy.diablo.puzzle.view.button.PuzzleButton
{
var target, answer, context;
function AnswerButton (target) {
super(target);
}
function reset() {
super.reset();
target.buttonText = "";
}
function getAnswer() {
return(answer);
}
function setAnswer(answer) {
this.answer = answer;
target.buttonText = answer.getText();
context = {selectedAnswer:answer};
}
}
Symbol 20605 MovieClip [__Packages.com.mindcandy.diablo.shared.model.Monster] Frame 0
class com.mindcandy.diablo.shared.model.Monster extends com.mindcandy.diablo.shared.model.Entity
{
var entityXMLNodeName, levelChanged, inventories, moshlings, getNumericProp, getBooleanProp, getProp, dressingUpBox, behaviourConfig, config;
function Monster (happiness, health, level, name, rocks, type, monstar, primary_colour, secondary_colour, highestPuzzleScore, totalRocks, progress) {
super();
entityXMLNodeName = "Monster";
levelChanged = false;
setHappiness(happiness || 500);
setHealth(health || 500);
setLevel(level || 1);
setName(name || "Anonymous");
setRocks(rocks || 0);
setType(type || "katsuma");
setMonstar(monstar || "A");
setIdleState("normal");
setState("unknown");
setPrimaryColour(primary_colour || 1);
setSecondaryColour(secondary_colour || 4);
setHighestPuzzleScore(highestPuzzleScore || 34);
setTotalRocks(totalRocks || 200);
setRoomRating(0);
setRoomViews(0);
setReferralPoints(0);
setFloat();
setProgress(progress || 0);
inventories = new com.mindcandy.data.holder.map.HashMap();
moshlings = new Array();
updateMood();
}
function setMoshlings(moshlings) {
this.moshlings = moshlings;
}
function getMoshlings() {
return(moshlings);
}
function addMoshling(moshling) {
moshlings.push(moshling);
}
function getHappiness() {
return(getNumericProp(HAPPINESS));
}
function getFloat() {
return(getBooleanProp(FLOATING));
}
function getHealth() {
return(getNumericProp(HEALTH));
}
function getLevel() {
return(getNumericProp(LEVEL));
}
function getName() {
return(String(getProp(NAME)));
}
function getRocks() {
return(getNumericProp(ROCKS));
}
function getType() {
return(String(getProp(TYPE)));
}
function getMonstar() {
return(getNumericProp(MONSTAR));
}
function getHighestPuzzleScore() {
return(getNumericProp(HIGHEST_PUZZLE_SCORE));
}
function getTotalRocks() {
return(getNumericProp(TOTAL_ROCKS));
}
function getRoomRating() {
return(getNumericProp(ROOM_RATING));
}
function getRoomViews() {
return(getNumericProp(ROOM_VIEWS));
}
function getReferralPoints() {
return(getNumericProp(REFERRAL_POINTS));
}
function setFloat() {
switch (getProp(TYPE)) {
case "diavlo" :
case "luvli" :
var _local2 = "true";
break;
default :
_local2 = "false";
}
setProp(FLOATING, _local2);
}
function setHappiness(target) {
setProp(HAPPINESS, target);
}
function setHealth(target) {
setProp(HEALTH, target);
}
function setLevel(target) {
levelChanged = true;
setProp(LEVEL, target);
}
function setRocks(target) {
setProp(ROCKS, target);
}
function setMonstar(target) {
setProp(MONSTAR, target);
}
function setName(target) {
setProp(NAME, target);
}
function setType(target) {
setProp(TYPE, target);
}
function getIdleState() {
return(String(getProp(IDLE_STATE)));
}
function setIdleState(target) {
setProp(IDLE_STATE, target);
}
function getState() {
return(String(getProp(STATE)));
}
function setState(target) {
setProp(STATE, target);
}
function getPrimaryColour() {
return(getNumericProp(PRIMARYCOLOUR));
}
function setPrimaryColour(primary) {
setProp(PRIMARYCOLOUR, primary);
}
function getSecondaryColour() {
return(getNumericProp(SECONDARYCOLOUR));
}
function setSecondaryColour(secondary) {
setProp(SECONDARYCOLOUR, secondary);
}
function setHighestPuzzleScore(highestPuzzleScore) {
setProp(HIGHEST_PUZZLE_SCORE, highestPuzzleScore);
}
function setTotalRocks(totalRocks) {
setProp(TOTAL_ROCKS, totalRocks);
}
function setRoomRating(target) {
setProp(ROOM_RATING, target);
}
function setRoomViews(target) {
setProp(ROOM_VIEWS, target);
}
function setReferralPoints(target) {
setProp(REFERRAL_POINTS, target);
}
function getProgress() {
return(getNumericProp(LEVEL_PROGRESS));
}
function setProgress(target) {
setProp(LEVEL_PROGRESS, target);
}
function setProp(key, value) {
if (key == HAPPINESS) {
var _local5 = Number(value);
if (_local5 > MAX_HAPPINESS) {
value = MAX_HAPPINESS;
} else if (_local5 < MIN_HAPPINESS) {
value = MIN_HAPPINESS;
}
} else if (key == HEALTH) {
var _local6 = Number(value);
if (_local6 > MAX_HEALTH) {
value = MAX_HEALTH;
} else if (_local6 < MIN_HEALTH) {
value = MIN_HEALTH;
}
}
if ((key == HAPPINESS) || (key == HEALTH)) {
updateMood();
}
super.setProp(key, value);
}
function isLevelChanged() {
return(levelChanged);
}
function unsetLevelChanged() {
levelChanged = false;
}
function setMood(mood) {
setProp(MOOD, mood);
}
function getMood() {
return(getNumericProp(MOOD));
}
function updateMood() {
setMood(com.mindcandy.diablo.shared.util.MoodUtil.getZone(getHealth(), getHappiness()));
}
function getInventory(type) {
if (!type) {
return(inventories.get(com.mindcandy.diablo.shared.model.inventory.InventoryType.ITEMS));
}
return(inventories.get(type));
}
function addInventory(inventory) {
inventories.put(inventory.getType(), inventory);
}
function getDressingUpBox() {
return(dressingUpBox);
}
function setDressingUpBox(dressingUpBox) {
this.dressingUpBox = dressingUpBox;
}
function getInventories() {
return(inventories);
}
function setInventories(inventories) {
this.inventories = inventories;
}
function setBehaviourConfig(behaviourConfig) {
this.behaviourConfig = behaviourConfig;
}
function getBehaviourConfig() {
return(behaviourConfig);
}
function getConfig() {
return(config);
}
function setConfig(target) {
config = target;
}
var MIN_HEALTH = 0;
var MAX_HEALTH = 999;
var MIN_HAPPINESS = 0;
var MAX_HAPPINESS = 999;
static var HAPPINESS = "happiness";
static var HEALTH = "health";
static var LEVEL = "level";
static var NAME = "name";
static var ROCKS = "rocks";
static var TYPE = "type";
static var MONSTAR = "monstar";
static var IDLE_STATE = "idlestate";
static var STATE = "state";
static var PRIMARYCOLOUR = "primary_colour";
static var SECONDARYCOLOUR = "secondary_colour";
static var HIGHEST_PUZZLE_SCORE = "highest_puzzle_score";
static var TOTAL_ROCKS = "total_rocks";
static var MOOD = "mood";
static var FLOATING = "floating";
static var ROOM_RATING = "room_rating";
static var ROOM_VIEWS = "room_views";
static var REFERRAL_POINTS = "referral_points";
static var LEVEL_PROGRESS = "progress";
}
Symbol 20606 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.GamePanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.GamePanel extends com.mindcandy.diablo.puzzle.view.panel.LinkedPanel implements com.mindcandy.diablo.shared.view.animation.AnimationListener
{
var parent, markingWidget, questionPanel, answerPanel, timer, listener, gameOverAnim, target, scoreBoard;
function GamePanel (parent) {
super(LINKAGE_ID);
this.parent = parent;
}
function show(listener) {
}
function showPuzzle(puzzle) {
markingWidget.hide();
questionPanel.show(puzzle);
answerPanel.show(puzzle.getAnswers());
answerPanel.activateButtons();
}
function showChecking(Void) {
markingWidget.show();
markingWidget.showChecking();
}
function showResult(markedPuzzle, listener) {
if (markedPuzzle.isCorrect()) {
markingWidget.showCorrect(listener);
} else {
timer.penalise();
markingWidget.showWrong(listener);
}
}
function showGameOver(listener) {
this.listener = listener;
gameOverAnim = new com.mindcandy.diablo.shared.view.animation.LinkedAnimation(target, "lnkGameOverAnim");
gameOverAnim.addListener(this);
gameOverAnim.play();
}
function updateScore(stats) {
scoreBoard.text = com.mindcandy.utils.string.StringUtil.zeroPad(stats.getRightAnswerCount(), 2);
}
function handleSetup(anim, clip) {
}
function handleInterrupt(anim) {
}
function handleComplete(anim) {
listener.animFinished();
}
function initHandlers() {
questionPanel = new com.mindcandy.diablo.puzzle.view.panel.QuestionPanel(target.questionPanel, parent);
markingWidget = new com.mindcandy.diablo.puzzle.view.panel.MarkingWidget(target.marking);
answerPanel = new com.mindcandy.diablo.puzzle.view.panel.AnswerPanel(target.answerPanel);
timer = new com.mindcandy.diablo.puzzle.view.CountdownTimer(target.timer);
scoreBoard = TextField(target.score.txtScore);
}
function clearHandlers() {
questionPanel.destroy();
markingWidget.destroy();
answerPanel.destroy();
timer.destroy();
}
function destroy() {
clearHandlers();
super.destroy();
}
static var LINKAGE_ID = "lnkGameScreen";
static var DEFAULT_SCORE = "00";
}
Symbol 20607 MovieClip [__Packages.com.mindcandy.diablo.shared.events.EventType] Frame 0
class com.mindcandy.diablo.shared.events.EventType
{
var name;
function EventType (name) {
this.name = name;
types.put(name, this);
}
function toString() {
return(name);
}
static function valueOf(name) {
return((types.hasOwnProperty(name) ? (com.mindcandy.diablo.shared.events.EventType(types[name])) : null));
}
static var types = new Object();
static var PUZZLEPALACE = new com.mindcandy.diablo.shared.events.EventType("puzzles");
static var APPLICATION = new com.mindcandy.diablo.shared.events.EventType("application");
static var GAME = new com.mindcandy.diablo.shared.events.EventType("game");
static var MONSTER = new com.mindcandy.diablo.shared.events.EventType("monster");
static var INVENTORY = new com.mindcandy.diablo.shared.events.EventType("inventory");
static var SYSTEM = new com.mindcandy.diablo.shared.events.EventType("system");
static var LOCATION = new com.mindcandy.diablo.shared.events.EventType("location");
static var SHOP = new com.mindcandy.diablo.shared.events.EventType("shop");
static var PINBOARD = new com.mindcandy.diablo.shared.events.EventType("pinboard");
static var FRIENDSTREE = new com.mindcandy.diablo.shared.events.EventType("friendstree");
static var PROFILE = new com.mindcandy.diablo.shared.events.EventType("profile");
static var MINIGAME = new com.mindcandy.diablo.shared.events.EventType("minigame");
static var ADOPTION = new com.mindcandy.diablo.shared.events.EventType("adoption");
static var TUTORIAL = new com.mindcandy.diablo.shared.events.EventType("tutorial");
static var FRIENDROOM = new com.mindcandy.diablo.shared.events.EventType("friendroom");
static var DODGYDEALS = new com.mindcandy.diablo.shared.events.EventType("dodgydeals");
static var MOSHLING = new com.mindcandy.diablo.shared.events.EventType("Moshlings");
}
Symbol 20608 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType] Frame 0
class com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType extends com.mindcandy.diablo.shared.events.EventType
{
function PuzzleEventType () {
super();
}
static var PUZZLE_APP = new com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType("puzzle application");
static var PUZZLE_GAME = new com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType("puzzle game");
static var PUZZLE_FETCH = new com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType("puzzle fetch");
}
Symbol 20609 MovieClip [__Packages.com.mindcandy.diablo.shared.content.AssetMapBuilder] Frame 0
class com.mindcandy.diablo.shared.content.AssetMapBuilder
{
function AssetMapBuilder () {
}
}
Symbol 20610 MovieClip [__Packages.com.mindcandy.diablo.shared.content.loaders.GraphicsLoader] Frame 0
class com.mindcandy.diablo.shared.content.loaders.GraphicsLoader extends com.mindcandy.diablo.shared.content.loaders.BaseLoader
{
var targetClip, containerType, loadFailed;
function GraphicsLoader (loadItem, manager, containerType) {
super(loadItem, manager, containerType);
targetClip = loadItem.getViewObject().getTarget();
}
function start() {
if (validateContainerType(targetClip)) {
startLoad();
}
}
function startLoad() {
}
function validateContainerType(target) {
var _local3 = typeof(target);
if (_local3 == containerType) {
return(true);
}
loadFailed(((("e Invalid container object type: Supplied - '" + _local3) + "', should be '") + containerType) + "'");
return(false);
}
}
Symbol 20611 MovieClip [__Packages.com.mindcandy.diablo.shared.content.loaders.SwfLoader] Frame 0
class com.mindcandy.diablo.shared.content.loaders.SwfLoader extends com.mindcandy.diablo.shared.content.loaders.GraphicsLoader implements com.mindcandy.diablo.shared.content.AssetFileLoader
{
var swfMovieLoader, swfLoadListener, targetURL, targetClip, manager;
function SwfLoader (loadItem, manager) {
super(com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(loadItem), manager, "movieclip");
}
function startLoad() {
var scope = this;
swfMovieLoader = new MovieClipLoader();
swfLoadListener = new Object();
swfLoadListener.onLoadProgress = function (target_mc, bytesLoaded, bytesTotal) {
scope.percentageLoaded = (bytesLoaded / bytesTotal) * 100;
};
swfLoadListener.onLoadStart = function (target_mc) {
target_mc._visible = false;
target_mc.anim.stop();
target_mc.stop();
};
swfLoadListener.onLoadComplete = function (target_mc) {
target_mc.stop();
};
swfLoadListener.onLoadInit = function (target_mc) {
target_mc.gotoAndStop(1);
target_mc.anim.gotoAndStop(1);
scope.loadComplete();
};
swfLoadListener.onLoadError = function (target_mc, errorCode, httpStatus) {
scope.loadFailed("Could not load SWF file:\n " + scope.targetURL);
};
swfMovieLoader.addListener(swfLoadListener);
swfMovieLoader.loadClip(targetURL, targetClip);
}
function loadComplete() {
manager.handleLoadComplete(this);
destroy();
}
function destroy() {
swfMovieLoader.removeListener(swfLoadListener);
swfMovieLoader = null;
swfLoadListener = null;
super.destroy();
}
}
Symbol 20612 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.external.ExternalLibraryBuilder] Frame 0
class com.mindcandy.diablo.shared.content.sound.external.ExternalLibraryBuilder implements com.mindcandy.diablo.shared.content.AssetMapBuilder
{
var sourceLibrary, targetLibrary, listener;
function ExternalLibraryBuilder (source, target) {
sourceLibrary = source;
targetLibrary = target;
}
function getMap() {
return(targetLibrary);
}
function getUnloadedAssets() {
return(new Array(sourceLibrary));
}
function setListener(listener) {
this.listener = listener;
}
function add(item) {
targetLibrary.put(item);
}
function handleAllLoadsComplete() {
trace("w HANDLING LIBRARY LOAD COMPLETE");
listener.handleAssetLoad(targetLibrary);
}
function handleLoadFailure(reason) {
listener.handleAssetFailure(reason);
}
function handleLoad(item, loaded, remaining) {
listener.handleLoad(item, loaded, remaining);
}
}
Symbol 20613 MovieClip [__Packages.com.mindcandy.diablo.shared.content.graphics.BitmapAssetMapBuilder] Frame 0
class com.mindcandy.diablo.shared.content.graphics.BitmapAssetMapBuilder implements com.mindcandy.diablo.shared.content.AssetMapBuilder
{
var map, unloadedAssets, maxWidth, maxHeight, constrainSize, listener;
function BitmapAssetMapBuilder (map, maxWidth, maxHeight) {
this.map = map;
unloadedAssets = [];
if ((maxWidth != null) && (maxHeight != null)) {
this.maxWidth = maxWidth;
this.maxHeight = maxHeight;
constrainSize = true;
} else {
constrainSize = false;
}
}
function getMap() {
return(map);
}
function getUnloadedAssets() {
return(unloadedAssets);
}
function setListener(listener) {
this.listener = listener;
}
function add(item) {
unloadedAssets.push(item);
}
function handleAllLoadsComplete() {
var _local2 = unloadedAssets;
unloadedAssets = [];
var _local3 = 0;
for ( ; _local3 < _local2.length ; _local3++) {
map.put(com.mindcandy.diablo.shared.content.Asset(_local2[_local3]));
}
listener.handleAssetLoad(null, assembleBitmapMap(map));
}
function handleLoadFailure(reason) {
listener.handleAssetFailure(reason);
}
function assembleBitmapMap(assetMap) {
var _local3 = assetMap.getAssets();
var _local4 = new com.mindcandy.diablo.shared.content.graphics.BitmapAssetMap();
while (_local3.hasNext()) {
var _local5 = com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(_local3.next());
var _local6 = _local5.getViewObject();
_local6.getTarget().gotoAndStop(1);
var _local7 = ((_local6.getTarget().iconClip != undefined) ? (_local6.getTarget().iconClip) : (_local6.getTarget()));
_local4.put(_local5.getDetails().getSrcId(), renderBitmap(_local7));
_local6.destroy();
_local5.destroy();
}
return(_local4);
}
function renderBitmap(targetClip) {
var _local8 = Math.ceil(targetClip._width);
var _local9 = Math.ceil(targetClip._height);
if (constrainSize && ((_local8 > maxWidth) || (_local9 > maxHeight))) {
var _local7 = ((_local8 > _local9) ? (maxWidth / _local8) : (maxHeight / _local9));
var _local5 = Math.ceil(_local8 * _local7);
var _local6 = Math.ceil(_local9 * _local7);
} else {
var _local5 = _local8;
var _local6 = _local9;
}
var _local4 = new flash.geom.Matrix();
_local4.a = _local5 / _local8;
_local4.d = _local6 / _local9;
var _local3 = new flash.display.BitmapData(_local5, _local6, true, 16777215);
_local3.draw(targetClip, _local4, null, null, null, true);
return(_local3);
}
function handleLoad(item, loaded, remaining) {
listener.handleLoad(item, loaded, remaining);
}
}
Symbol 20614 MovieClip [__Packages.com.mindcandy.diablo.shared.content.application.RemoteApplication] Frame 0
class com.mindcandy.diablo.shared.content.application.RemoteApplication
{
function RemoteApplication () {
}
}
Symbol 20615 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.button.MonsterButton] Frame 0
class com.mindcandy.diablo.puzzle.view.button.MonsterButton extends com.mindcandy.diablo.puzzle.view.button.EventButton
{
var setProperty, monster;
function MonsterButton (target, monster) {
super(target, new com.mindcandy.diablo.puzzle.view.button.MonsterButtonHandler(target, this));
setProperty("selectedMonster", monster);
this.monster = monster;
}
function getMonster() {
return(monster);
}
}
Symbol 20616 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.DisplayInstructions] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.DisplayInstructions extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand implements com.mindcandy.diablo.shared.view.animation.AnimationListener
{
var read, window;
function DisplayInstructions () {
super();
}
function execute(args, context, listener, sync) {
read(context);
window.slime.doSlimeIn(this);
}
function handleComplete(anim) {
window.showInstructions();
window.slime.doSlimeOut();
setupButton(window.instructionsPanel.startButton, com.mindcandy.diablo.puzzle.controller.event.AppEvent.INSTRUCTIONS_READ);
setupButton(window.instructionsPanel.websiteLinkButton, com.mindcandy.diablo.puzzle.controller.event.AppEvent.EXTERNAL_LINK_CLICKED);
}
function setupButton(button, eventName) {
button.setActive(true);
button.setEventName(eventName);
button.setEventType(com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP);
button.show();
}
function handleInterrupt(anim) {
}
function handleSetup(anim, clip) {
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.DisplayInstructions";
}
Symbol 20617 MovieClip [__Packages.com.mindcandy.diablo.shared.model.MonsterConfig] Frame 0
class com.mindcandy.diablo.shared.model.MonsterConfig extends com.mindcandy.diablo.shared.model.Entity
{
var animationMap, soundDetails;
function MonsterConfig () {
super();
animationMap = new com.mindcandy.data.holder.map.HashMap(new Object());
}
function addAnimation(target) {
animationMap.put(target.getKey(), target);
}
function getBehaviours() {
return(animationMap.iterator());
}
function setSoundDetails(list) {
soundDetails = list;
}
function getSoundDetails() {
return(soundDetails);
}
function getAnimKeys() {
return(animationMap.keyIterator());
}
function getAnimDetails() {
return(animationMap.iterator());
}
function getAnimation(key) {
return(com.mindcandy.diablo.shared.model.MonsterAnimation(animationMap.get(key)));
}
}
Symbol 20618 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.FlagTimeUp] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.FlagTimeUp extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand
{
var read, getCurrentSession;
function FlagTimeUp (manager) {
super(manager);
}
function execute(args, context, listener, sync) {
read(context);
getCurrentSession().flagTimeUp();
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.FlagTimeUp";
}
Symbol 20619 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.GameStatistics] Frame 0
class com.mindcandy.diablo.puzzle.model.GameStatistics
{
var scores;
function GameStatistics () {
scores = new Array();
}
function addPuzzleSessionStatistics(stats) {
scores.push(stats.getRightAnswerCount());
}
function getGamesPlayed() {
return(scores.length);
}
function getHighScore() {
var _local2 = 0;
var _local3 = 0;
for ( ; _local3 < scores.length ; _local3++) {
((scores[_local3] > _local2) ? (_local2 = scores[_local3]) : null);
}
return(_local2);
}
function getAverageScore() {
var _local2 = 0;
var _local3 = 0;
for ( ; _local3 < scores.length ; _local3++) {
_local2 = _local2 + scores[_local3];
}
return(((_local2 > 0) ? (Math.floor(_local2 / scores.length)) : 0));
}
function getScores() {
return(scores);
}
}
Symbol 20620 MovieClip [__Packages.com.mindcandy.diablo.shared.content.graphics.GraphicalAssetManager] Frame 0
class com.mindcandy.diablo.shared.content.graphics.GraphicalAssetManager extends com.mindcandy.diablo.shared.content.BaseAssetManager
{
function GraphicalAssetManager (factory, builder) {
super(factory, new com.mindcandy.diablo.shared.content.loaders.QueuedLoadManager(6), builder);
}
}
Symbol 20621 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.state.GameState] Frame 0
class com.mindcandy.diablo.puzzle.controller.state.GameState extends com.mindcandy.diablo.puzzle.controller.state.State
{
function GameState (name) {
super(name);
}
static var IDLE = new com.mindcandy.diablo.puzzle.controller.state.GameState("idle");
static var COUNTDOWN = new com.mindcandy.diablo.puzzle.controller.state.GameState("countdown");
static var STARTING = new com.mindcandy.diablo.puzzle.controller.state.GameState("starting game");
static var STARTING_NEW_ROUND = new com.mindcandy.diablo.puzzle.controller.state.GameState("starting new round");
static var DISPLAYING_PUZZLE = new com.mindcandy.diablo.puzzle.controller.state.GameState("displaying puzzle");
static var MARKING = new com.mindcandy.diablo.puzzle.controller.state.GameState("checking answer");
static var DISPLAYING_RESULT = new com.mindcandy.diablo.puzzle.controller.state.GameState("displaying result");
static var CHECKING_STATUS = new com.mindcandy.diablo.puzzle.controller.state.GameState("checking whether or not to continue");
static var GAME_OVER = new com.mindcandy.diablo.puzzle.controller.state.GameState("game over");
}
Symbol 20622 MovieClip [__Packages.com.mindcandy.diablo.shared.view.dialogues.DialogueListener] Frame 0
class com.mindcandy.diablo.shared.view.dialogues.DialogueListener
{
function DialogueListener () {
}
}
Symbol 20623 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.DisplayError] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.DisplayError extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand implements com.mindcandy.diablo.shared.view.dialogues.DialogueListener
{
var window, engine;
function DisplayError () {
super();
}
function read(context) {
super.read(context);
}
function execute(args, context, listener, sync) {
read(context);
window.clearSpring.trackEvent("Fatal Error", context.key);
engine.suspend();
window.showError(ERROR_TITLE, ERROR_MESSAGE, false, this);
}
function handleDialogueResponse(response, dialogue) {
engine.resume();
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.DisplayError";
static var TITLE_KEY = "puzzlepalace.error.title";
static var SERVICE_ERROR_KEY = "puzzlepalace.error.reason.service";
static var ASSET_ERROR_KEY = "puzzlepalace.error.reason.asset";
static var ERROR_TITLE = "Oops!";
static var ERROR_MESSAGE = "The Puzzle Palace is experiencing difficulties at the moment - please try again later.";
}
Symbol 20624 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.event.AppEvent] Frame 0
class com.mindcandy.diablo.puzzle.controller.event.AppEvent extends com.mindcandy.diablo.shared.events.BaseEvent
{
function AppEvent (name, context, source) {
super(name, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP, context, source);
}
static var INIT = "initialising the application";
static var INIT_COMPLETED = "application ready";
static var START = "application started";
static var GAME_COMPLETED = "the game has finished";
static var SCORES_SHOWN = "scores have been shown";
static var SOUND_TOGGLED = "sound was toggled on / off";
static var SCORING_COMPLETE = "scoring complete";
static var INSTRUCTIONS_READ = "user has read the instructions";
static var SERVICE_ERROR = "back end communication failed";
static var ASSET_ERROR = "failed to load an asset file";
static var REPLAY_BUTTON_PRESSED = "replay button pressed";
static var MONSTER_CHOSEN = "user chose a monster";
static var READY_TO_LOAD_PUZZLES = "ready to load in puzzles";
static var SWITCHED_BACKGROUND = "changed background image";
static var EXTERNAL_LINK_CLICKED = "external link clicked";
}
Symbol 20625 MovieClip [__Packages.com.mindcandy.diablo.shared.content.BaseAssetMapBuilder] Frame 0
class com.mindcandy.diablo.shared.content.BaseAssetMapBuilder implements com.mindcandy.diablo.shared.content.AssetMapBuilder
{
var map, unloadedAssets, listener;
function BaseAssetMapBuilder (map) {
this.map = map;
unloadedAssets = new Array();
}
function getMap() {
return(map);
}
function getUnloadedAssets() {
return(unloadedAssets);
}
function setListener(listener) {
this.listener = listener;
}
function add(item) {
unloadedAssets.push(item);
}
function handleLoad(item, loaded, remaining) {
listener.handleLoad(item, loaded, remaining);
}
function handleLoadFailure(reason) {
listener.handleAssetFailure(reason);
}
function handleAllLoadsComplete() {
var _local2 = unloadedAssets;
unloadedAssets = new Array();
var _local3 = 0;
for ( ; _local3 < _local2.length ; _local3++) {
map.put(com.mindcandy.diablo.shared.content.Asset(_local2[_local3]));
}
listener.handleAssetLoad(map);
}
}
Symbol 20626 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.MonsterController] Frame 0
class com.mindcandy.diablo.puzzle.controller.MonsterController implements com.mindcandy.diablo.shared.view.animation.AnimationListener
{
var monster, monsterPanel, gameWindow, sound, monsterAnimController, allowInterupts, floatController, speech;
function MonsterController (monster, panel, gameWindow) {
this.monster = monster;
monsterPanel = panel;
this.gameWindow = gameWindow;
sound = gameWindow.sound;
monsterAnimController = new com.mindcandy.diablo.puzzle.controller.MonsterAnimController(monster, panel.getTarget());
allowInterupts = true;
if (this.monster.getFloats()) {
floatController = new com.mindcandy.diablo.puzzle.controller.MonsterFloatController(monsterPanel);
floatController.activate(true);
}
react(com.mindcandy.diablo.puzzle.model.MonsterMoodType.IDLE);
}
function talk(text, isEndScreen) {
speech.destroy();
if (text == undefined) {
return(undefined);
}
var _local4 = new Object();
_local4.host = _root;
_local4.follow = monsterPanel.getTarget();
_local4.caratLoc = "b";
_local4.offset = getSpeechBubbleOffsetFor(monster);
if (isEndScreen) {
_local4.offset.base = 45;
_local4.offset.y = _local4.offset.y + 30;
_local4.offset.x = _local4.offset.x - 40;
}
speech = new com.mindcandy.diablo.shared.view.tooltips.SpeechBubble(_local4);
speech.create(text);
}
function getSpeechBubbleOffsetFor(monster) {
switch (monster) {
case com.mindcandy.diablo.puzzle.model.MonsterType.FURI :
return({x:40, y:90, base:0});
case com.mindcandy.diablo.puzzle.model.MonsterType.ZOMMER :
return({x:35, y:80, base:0});
}
return({x:30, y:45, base:0});
}
function react(mood) {
if ((!allowInterupts) && (monsterAnimController.getActiveAnim().getKey() == monsterAnimController.getLinkageNameFor(mood))) {
trace(("d Monster is already performing the " + mood.getName()) + " animation");
return(undefined);
}
monsterAnimController.play(mood, this);
sound.playReactionFor(monster, mood);
}
function destroy() {
speech.destroy();
floatController.destroy();
monsterPanel.destroy();
monsterAnimController.destroy();
}
function handleComplete(anim) {
if (anim.getKey() != monsterAnimController.getLinkageNameFor(com.mindcandy.diablo.puzzle.model.MonsterMoodType.IDLE)) {
react(com.mindcandy.diablo.puzzle.model.MonsterMoodType.IDLE);
}
}
function handleInterrupt(anim) {
}
function handleSetup(anim, clip) {
}
function setAllowInterupts(value) {
allowInterupts = value;
}
function toString() {
return(monster.getName() + " MonsterController");
}
}
Symbol 20627 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.ScoringPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.ScoringPanel extends com.mindcandy.diablo.puzzle.view.panel.LinkedPanel
{
var anim, target;
function ScoringPanel () {
super(LINKAGE_ID);
}
function playIntro(listener) {
anim.start(listener);
}
function initHandlers() {
target.gotoAndStop(1);
anim = new com.mindcandy.diablo.shared.view.animation.FrameAnimation(target, 0);
}
function clearHandlers() {
anim.destroy();
}
static var LINKAGE_ID = "lnkGameOverAnim";
}
Symbol 20628 MovieClip [__Packages.com.mindcandy.diablo.shared.model.Location] Frame 0
class com.mindcandy.diablo.shared.model.Location extends com.mindcandy.diablo.shared.model.Entity
{
var id, name, type, structure, contents, structureMasks, parallaxItems, npcItems, monsterscale, monsterx, monstery, floory, width, height, startX, monstervisible;
function Location (id, name, type) {
super()
this.id = id;
this.name = name;
this.type = type;
structure = new com.mindcandy.data.holder.map.HashMap();
contents = new com.mindcandy.data.holder.map.HashMap();
structureMasks = new com.mindcandy.data.holder.map.HashMap();
parallaxItems = new com.mindcandy.data.holder.map.HashMap();
npcItems = new com.mindcandy.data.holder.map.HashMap();
}
function setDetails(monsterscale, monsterx, monstery, floory, width, height, startX, monstervisible) {
this.monsterscale = monsterscale;
this.monsterx = monsterx;
this.monstery = monstery;
this.floory = floory;
this.width = width;
this.height = height;
this.startX = startX;
this.monstervisible = monstervisible;
}
function putStructure(key, value) {
structure.put(key, value);
}
function getStructure(Void) {
return(structure);
}
function putContents(key, value) {
contents.put(key, value);
}
function getContents(Void) {
return(contents);
}
function putStructureMask(key, value) {
structureMasks.put(key, value);
}
function getStructureMasks(Void) {
return(structureMasks);
}
function putParallaxItem(key, value) {
parallaxItems.put(key, value);
}
function getParallaxItems(Void) {
return(parallaxItems);
}
function putNpcItem(key, value) {
npcItems.put(key, value);
}
function getNpcItems(Void) {
return(npcItems);
}
function getId() {
return(id);
}
function getMonsterscale() {
return(monsterscale);
}
function getMonsterx() {
return(monsterx);
}
function getMonstery() {
return(monstery);
}
function getMonstervisible() {
return(monstervisible);
}
function getFloory() {
return(floory);
}
function getCeilingy() {
return(0);
}
function getName() {
return(name);
}
function getType() {
return(type);
}
function getWidth() {
return(width);
}
function getHeight() {
return(height);
}
function getStartX() {
return(startX);
}
function toString() {
return((((id + ", ") + name) + ", ") + type);
}
function isFriendRoom() {
return(id == 7);
}
}
Symbol 20629 MovieClip [__Packages.com.mindcandy.diablo.shared.model.HasGameDetails] Frame 0
class com.mindcandy.diablo.shared.model.HasGameDetails
{
function HasGameDetails () {
}
}
Symbol 20630 MovieClip [__Packages.com.mindcandy.diablo.shared.model.DressUpItem] Frame 0
class com.mindcandy.diablo.shared.model.DressUpItem extends com.mindcandy.diablo.shared.model.AssetItem implements com.mindcandy.diablo.shared.model.HasGameDetails
{
var entityXMLNodeName, graphicsInfo, gameDetails, targetZone, inUse;
function DressUpItem (path, id, srcId, name, type, happiness, health, zone, description) {
super(buildUrlFrom(path), id, srcId, name, -1, type, 0, 0, 0, "none", "none", false, false, false, null, null);
entityXMLNodeName = "dressupitem";
graphicsInfo = new com.mindcandy.diablo.shared.content.graphics.GraphicalDetails(0, 0, 0, null, null, false, true);
gameDetails = new com.mindcandy.diablo.shared.model.GameDetails(happiness, health, null, null, null, description, type);
targetZone = zone;
inUse = !IN_USE;
}
function getTargetZone() {
return(targetZone);
}
function getGameDetails() {
return(gameDetails);
}
function isInUse() {
return(inUse);
}
function setInUse(status) {
inUse = status;
}
function buildUrlFrom(path) {
return(com.mindcandy.diablo.shared.controller.Environment.getInstance().getUrlManager().getAssetURL("world") + path);
}
static var IN_USE = true;
}
Symbol 20631 MovieClip [__Packages.org.osflash.zeroi.logging.LogLevel] Frame 0
class org.osflash.zeroi.logging.LogLevel
{
var level;
function LogLevel (level) {
this.level = level;
}
static function getLevelByName(name) {
switch (name) {
case "DEBUG" :
return(DEBUG);
case "INFO" :
return(INFO);
case "WARN" :
return(WARN);
case "ERROR" :
return(ERROR);
case "FATAL" :
return(FATAL);
case "TEMP" :
return(TEMP);
}
return(null);
}
static function getNameByLevel(level) {
switch (level) {
case 0 :
return("DEBUG");
case 1 :
return("INFO");
case 2 :
return("WARN");
case 3 :
return("ERROR");
case 4 :
return("FATAL");
case 5 :
return("TEMP");
}
return(null);
}
static function getLevelByKey(key) {
switch (key) {
case "d" :
return(DEBUG);
case "i" :
return(INFO);
case "w" :
return(WARN);
case "e" :
return(ERROR);
case "f" :
return(FATAL);
case "t" :
return(TEMP);
}
return(DEBUG);
}
function getLevel(Void) {
return(level);
}
function toString() {
return(("[LogLevel level=" + getNameByLevel(level)) + "]");
}
static var DEBUG = new org.osflash.zeroi.logging.LogLevel(0);
static var INFO = new org.osflash.zeroi.logging.LogLevel(1);
static var WARN = new org.osflash.zeroi.logging.LogLevel(2);
static var ERROR = new org.osflash.zeroi.logging.LogLevel(3);
static var FATAL = new org.osflash.zeroi.logging.LogLevel(4);
static var TEMP = new org.osflash.zeroi.logging.LogLevel(5);
}
Symbol 20632 MovieClip [__Packages.com.mindcandy.diablo.shared.service.WebService] Frame 0
class com.mindcandy.diablo.shared.service.WebService
{
var environment;
function WebService () {
environment = com.mindcandy.diablo.shared.controller.Environment.getInstance();
}
function sendRequest(URL, parameters, isBidirectional, listener, context) {
var service = this;
var _local7 = new Date();
parameters = ((parameters == null) ? (new Object()) : (parameters));
parameters.noCache = _local7.getTime();
var serviceURL = getServiceURL(URL, parameters);
var _local8 = new com.mindcandy.diablo.shared.xml.ContextSensitiveXML();
var responseListener = listener;
_local8.setContext(context);
_local8.onLoad = function (success) {
var _local3 = (success ? (service.getParser(this.getContext()).parseResponseXML(this)) : (new com.mindcandy.diablo.shared.model.ServiceResponse(500, serviceURL)));
_local3.setService(service);
responseListener.notifyResponse(_local3);
};
if (isBidirectional) {
getRequestXML(context).sendAndLoad(serviceURL, _local8);
} else {
_local8.load(serviceURL);
}
}
function getServiceURL(uri, parameters) {
var _local4 = uri;
var _local5 = true;
var _local6 = environment.getUrlManager().getRootURL().indexOf("file:") == 0;
for (var key in parameters) {
_local4 = _local4 + (_local5 ? "?" : "&");
_local4 = _local4 + ((key + "=") + parameters[key]);
_local5 = false;
}
trace("i requesting service URL " + _local4);
return((_local6 ? (uri) : (_local4)));
}
function getRequestXML(context) {
var _local3 = new com.mindcandy.diablo.shared.xml.ContextSensitiveXML();
var _local4 = buildRequestData(context);
_local3.ignoreWhite = true;
_local3.contentType = "text/xml";
_local3.setContext(context);
_local3.parseXML(_local4);
trace("f requestData: " + _local4);
trace("f context: " + context);
return(_local3);
}
function getParser(context) {
trace("e Override me!");
return(null);
}
function buildRequestData(context) {
trace("e Override me!");
return(null);
}
}
Symbol 20633 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.ClearSpringAnalytics] Frame 0
class com.mindcandy.diablo.puzzle.view.ClearSpringAnalytics
{
var kernel;
function ClearSpringAnalytics () {
_root.onClearSpringKernelLoaded = com.mindcandy.utils.delegate.Delegate.create(this, onClearSpringKernelLoaded);
var _local2 = _root.createEmptyMovieClip("clearspring", _root.getNextHighestDepth());
var _local3 = new MovieClipLoader();
_local3.loadClip(KERNEL_URL, _local2);
}
function onClearSpringKernelLoaded(k) {
trace("i ClearSpring Kernel Loaded");
kernel = k;
trackEvent("Application Loaded");
}
function isAvaliable() {
return(kernel != undefined);
}
function trackEvent(name, metadata) {
if (!isAvaliable()) {
trace("w ClearSpring Kernel not Loaded, unable to track event: " + name);
return(false);
}
trace((("i Tracking Event: " + name) + " -- ") + metadata);
var _local4 = kernel.track.event(name, metadata);
if (_local4 == kernel.track.E_TOO_LONG) {
trace("w Submtited data was too long to track");
return(false);
}
return(true);
}
function getAndTrackUrl(url) {
if (!isAvaliable()) {
trace("w ClearSpring Kernel not Loaded, unable to track url: " + url);
return(false);
}
trace("i Tracking and Opening URL: " + url);
kernel.track.url.open(url);
return(true);
}
static var KERNEL_URL = "http://widgets.clearspring.com/o/48a95987ed15801a/48a95987ed15801a/-/-TRK/1/lib.as2.swf?onLoad=onClearSpringKernelLoaded";
}
Symbol 20634 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.Answer] Frame 0
class com.mindcandy.diablo.puzzle.model.Answer
{
var id, text;
function Answer (id, text) {
this.id = id;
this.text = text;
}
function getId() {
return(id);
}
function getText() {
return(text);
}
}
Symbol 20635 MovieClip [__Packages.com.mosesSupposes.fuse.FuseFMP] Frame 0
class com.mosesSupposes.fuse.FuseFMP
{
static var _classes, _shortcuts, _getter, _setter;
function FuseFMP () {
}
static function simpleSetup() {
initialize(MovieClip.prototype, Button.prototype, TextField.prototype);
_global.FuseFMP = com.mosesSupposes.fuse.FuseFMP;
for (var i in _classes) {
_global[i] = _classes[i];
}
}
static function initialize(target) {
if (_classes == undefined) {
_shortcuts = {getFilterName:function (f) {
return(com.mosesSupposes.fuse.FuseFMP.getFilterName(f));
}, getFilterIndex:function (f) {
return(com.mosesSupposes.fuse.FuseFMP.getFilterIndex(this, f));
}, getFilter:function (f, createNew) {
return(com.mosesSupposes.fuse.FuseFMP.getFilter(this, f, createNew));
}, writeFilter:function (f, pObj) {
return(com.mosesSupposes.fuse.FuseFMP.writeFilter(this, f, pObj));
}, removeFilter:function (f) {
return(com.mosesSupposes.fuse.FuseFMP.removeFilter(this, f));
}, getFilterProp:function (prop, createNew) {
return(com.mosesSupposes.fuse.FuseFMP.getFilterProp(this, prop, createNew));
}, setFilterProp:function (prop, v) {
com.mosesSupposes.fuse.FuseFMP.setFilterProp(this, prop, v);
}, setFilterProps:function (fOrPObj, pObj) {
com.mosesSupposes.fuse.FuseFMP.setFilterProps(this, fOrPObj, pObj);
}, traceAllFilters:function () {
com.mosesSupposes.fuse.FuseFMP.traceAllFilters();
}};
_classes = {BevelFilter:flash.filters.BevelFilter, BlurFilter:flash.filters.BlurFilter, ColorMatrixFilter:flash.filters.ColorMatrixFilter, ConvolutionFilter:flash.filters.ConvolutionFilter, DisplacementMapFilter:flash.filters.DisplacementMapFilter, DropShadowFilter:flash.filters.DropShadowFilter, GlowFilter:flash.filters.GlowFilter, GradientBevelFilter:flash.filters.GradientBevelFilter, GradientGlowFilter:flash.filters.GradientGlowFilter};
_getter = {__resolve:function (name) {
var _local2 = function () {
var _local2 = this;
if (_local2.filters != undefined) {
var _local3 = name.split("_");
if (_local3[1] == "blur") {
_local3[1] = "blurX";
}
return(com.mosesSupposes.fuse.FuseFMP.getFilter(this, _local3[0] + "Filter", false)[_local3[1]]);
}
};
return(_local2);
}};
_setter = {__resolve:function (name) {
var _local2 = function (val) {
var _local3 = this;
if (_local3.filters != undefined) {
com.mosesSupposes.fuse.FuseFMP.setFilterProp(this, name, val);
}
};
return(_local2);
}};
}
if (arguments[0] == null) {
return(undefined);
}
var _local3 = [MovieClip, Button, TextField];
for (var i in arguments) {
var _local4 = false;
for (var j in _local3) {
if ((arguments[i] instanceof _local3[j]) || (arguments[i] == Function(_local3[j]).prototype)) {
_local4 = true;
break;
}
}
if (!_local4) {
com.mosesSupposes.fuse.FuseKitCommon.error("201", i);
continue;
}
for (var filtername in _classes) {
var _local5 = new _classes[filtername][undefined]();
for (var b in _local5) {
if (typeof(_local5[b]) == "function") {
continue;
}
var _local6 = (filtername.substr(0, -6) + "_") + b;
arguments[i].addProperty(_local6, _getter[_local6], _setter[_local6]);
_global.ASSetPropFlags(arguments[i], _local6, 3, 1);
if (b == "blurX") {
_local6 = _local6.slice(0, -1);
arguments[i].addProperty(_local6, _getter[_local6], _setter[_local6]);
_global.ASSetPropFlags(arguments[i], _local6, 3, 1);
}
}
}
for (var s in _shortcuts) {
arguments[i][s] = _shortcuts[s];
_global.ASSetPropFlags(arguments[i], s, 7, 1);
}
}
}
static function deinitialize() {
if (_classes == undefined) {
return(undefined);
}
if (arguments.length == 0) {
arguments.push(MovieClip.prototype, Button.prototype, TextField.prototype);
}
for (var i in arguments) {
for (var filtername in _classes) {
var _local2 = new _classes[filtername][undefined]();
for (var b in _local2) {
if (typeof(_local2[b]) == "function") {
continue;
}
var _local3 = (filtername.substr(0, -6) + "_") + b;
_global.ASSetPropFlags(arguments[i], _local3, 0, 2);
arguments[i].addProperty(_local3, null, null);
delete arguments[i][_local3];
}
}
for (var s in _shortcuts) {
_global.ASSetPropFlags(arguments[i], s, 0, 2);
delete arguments[i][s];
}
}
}
static function getFilterName(instance) {
if (_classes == undefined) {
initialize(null);
}
for (var a in _classes) {
if (instance.__proto__ == Function(_classes[a]).prototype) {
return(a);
}
}
return(null);
}
static function getFilterIndex(target, filter) {
if (_classes == undefined) {
initialize(null);
}
filter = getInstance(filter);
if (filter === null) {
return(-1);
}
var _local4 = target.filters;
var _local5 = 0;
for ( ; _local5 < _local4.length ; _local5++) {
if (_local4[_local5].__proto__ == filter.__proto__) {
return(_local5);
}
}
return(-1);
}
static function getFilter(target, filter, createNew) {
var _local5 = getFilterIndex(target, filter);
if (_local5 == -1) {
if (createNew != true) {
return(null);
}
_local5 = writeFilter(target, filter);
if (_local5 == -1) {
return(null);
}
}
return(target.filters[_local5]);
}
static function writeFilter(target, filter, propsObj) {
if (_classes == undefined) {
initialize(null);
}
filter = getInstance(filter);
if (filter === null) {
return(-1);
}
var _local5 = target.filters;
var _local6 = getFilterIndex(target, filter);
if (_local6 == -1) {
_local5.push(filter);
} else {
_local5[_local6] = filter;
}
target.filters = _local5;
if (typeof(propsObj) == "object") {
setFilterProps(target, filter, propsObj);
}
_local6 = getFilterIndex(target, filter);
return(_local6);
}
static function removeFilter(target, filter) {
if (_classes == undefined) {
initialize(null);
}
filter = getInstance(filter);
var _local4 = target.filters;
var _local5 = getFilterIndex(target, filter);
if (_local5 == -1) {
return(false);
}
_local4.splice(_local5, 1);
target.filters = _local4;
return(true);
}
static function getFilterProp(target, propname, createNew) {
var _local5 = propname.split("_");
if (_local5[1] == "blur") {
_local5[1] = "blurX";
}
return(getFilter(target, _local5[0] + "Filter", createNew)[_local5[1]]);
}
static function setFilterProp(target, propname, value) {
if (_classes == undefined) {
initialize(null);
}
var _local5 = propname.split("_");
var _local6 = _local5[0] + "Filter";
if (_classes[_local6] == undefined) {
return(undefined);
}
var _local7 = new _classes[_local6][undefined]();
if ((BLUR_ZERO == true) && (_local6 == "BlurFilter")) {
_local7.blurX = (_local7.blurY = 0);
}
var _local8 = _local5[1];
var _local9 = target.filters.length || 0;
while (_local9-- , _local9 > -1) {
if (target.filters[_local9].__proto__ == _local7.__proto__) {
_local7 = target.filters[_local9];
break;
}
}
if (_local7 == null) {
com.mosesSupposes.fuse.FuseKitCommon.error("202", _local6, target);
// unexpected jump
}
if (_local8 == "blur") {
_local7.blurX = value;
_local7.blurY = value;
} else {
if ((typeof(value) == "string") && (_local8.toLowerCase().indexOf("color") > -1)) {
if (value.charAt(0) == "#") {
value = value.slice(1);
}
value = ((value.charAt(1).toLowerCase() != "x") ? (Number("0x" + value)) : (Number(value)));
}
_local7[_local8] = value;
}
var _local10 = target.filters;
if (_local9 == -1) {
_local10.push(_local7);
} else {
_local10[_local9] = _local7;
}
target.filters = _local10;
}
static function setFilterProps(target, filterOrPropsObj, propsObj) {
if (arguments.length < 2) {
com.mosesSupposes.fuse.FuseKitCommon.error("203", arguments.length);
return(undefined);
}
if (_classes == undefined) {
initialize(null);
}
var _local5 = new Object();
var _local6 = arguments.length == 2;
if (_local6 == false) {
var _local7 = getFilterName(getInstance(filterOrPropsObj));
if (_classes[_local7] == undefined) {
com.mosesSupposes.fuse.FuseKitCommon.error("204", filterOrPropsObj);
return(undefined);
}
_local5[_local7] = 1;
} else {
propsObj = filterOrPropsObj;
for (var prop in propsObj) {
var _local8 = prop.split("_")[0] + "Filter";
if ((_classes[_local8] != undefined) && (_local5[_local8] == undefined)) {
_local5[_local8] = 1;
}
}
}
if (!(target instanceof Array)) {
target = [target];
}
for (var i in target) {
var _local9 = target[i];
for (var fname in _local5) {
var _local10 = new _classes[fname][undefined]();
if ((BLUR_ZERO == true) && (fname == "BlurFilter")) {
_local10.blurX = (_local10.blurY = 0);
}
var _local11 = _local9.filters.length || 0;
while (_local11-- , _local11 > -1) {
if (_local9.filters[_local11].__proto__ == _local10.__proto__) {
_local10 = _local9.filters[_local11];
break;
}
}
if (_local10 == null) {
com.mosesSupposes.fuse.FuseKitCommon.error("202", fname, _local9);
continue;
}
var _local12 = String(fname).slice(0, -6) + "_";
for (var prop in propsObj) {
var _local13 = prop.indexOf(_local12) == 0;
if ((_local6 == true) && (_local13 == false)) {
continue;
}
var _local14 = propsObj[prop];
if (_local13 == true) {
prop = prop.slice(_local12.length);
}
if (prop == "blur") {
_local10.blurX = _local14;
_local10.blurY = _local14;
} else {
if ((typeof(_local14) == "string") && (prop.toLowerCase().indexOf("color") > -1)) {
if (_local14.charAt(0) == "#") {
_local14 = _local14.slice(1);
}
_local14 = ((_local14.charAt(1).toLowerCase() != "x") ? (Number("0x" + _local14)) : (Number(_local14)));
}
_local10[prop] = _local14;
}
}
var _local15 = _local9.filters;
if (_local11 == -1) {
_local15.push(_local10);
} else {
_local15[_local11] = _local10;
}
_local9.filters = _local15;
}
}
}
static function getAllShortcuts() {
if (_classes == undefined) {
initialize(null);
}
var _local2 = [];
for (var filtername in _classes) {
var _local3 = new _classes[filtername][undefined]();
for (var b in _local3) {
if (typeof(_local3[b]) == "function") {
continue;
}
_local2.push((filtername.substr(0, -6) + "_") + b);
if (b == "blurX") {
_local2.push(filtername.substr(0, -6) + "_blur");
}
}
}
return(_local2);
}
static function traceAllFilters() {
if (_classes == undefined) {
initialize(null);
}
var _local2 = "------ FuseFMP filter properties ------\n";
for (var filtername in _classes) {
_local2 = _local2 + filtername;
var _local3 = new _classes[filtername][undefined]();
for (var b in _local3) {
if (typeof(_local3[b]) == "function") {
continue;
}
_local2 = _local2 + ((("\t- " + filtername.substr(0, -6)) + "_") + b);
if (b == "blurX") {
_local2 = _local2 + (("\t- " + filtername.substr(0, -6)) + "_blur");
}
}
_local2 = _local2 + newline;
}
com.mosesSupposes.fuse.FuseKitCommon.output(_local2);
}
static function getInstance(filter) {
if (filter instanceof flash.filters.BitmapFilter) {
return(flash.filters.BitmapFilter(filter));
}
if (typeof(filter) == "function") {
for (var j in _classes) {
if (filter == _classes[j]) {
var _local3 = new _classes[j][undefined]();
if ((BLUR_ZERO == true) && (j == "BlurFilter")) {
_local3.blurX = (_local3.blurY = 0);
}
return(_local3);
}
}
}
if (typeof(filter) == "string") {
var _local4 = String(filter);
if (_local4.substr(-6) != "Filter") {
_local4 = _local4 + "Filter";
}
for (var j in _classes) {
if (j == _local4) {
var _local5 = new _classes[j][undefined]();
if ((BLUR_ZERO == true) && (j == "BlurFilter")) {
_local5.blurX = (_local5.blurY = 0);
}
return(_local5);
}
}
}
return(null);
}
static var registryKey = "fuseFMP";
static var VERSION = com.mosesSupposes.fuse.FuseKitCommon.VERSION;
static var BLUR_ZERO = true;
}
Symbol 20636 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.CheckStatus] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.CheckStatus extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand
{
var read, getCurrentSession, fireEvent;
function CheckStatus () {
super();
}
function execute(args, context, listener, sync) {
read(context);
if (getCurrentSession().isTimeUp()) {
trace("f time up!");
fireEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.TIME_UP, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
} else if (!getCurrentSession().getPuzzleQueue().hasItems()) {
fireEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.PUZZLE_CACHE_EMPTY, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
} else {
fireEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.NEW_ROUND, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
}
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.CheckStatus";
}
Symbol 20637 MovieClip [__Packages.mx.events.EventDispatcher] Frame 0
class mx.events.EventDispatcher
{
function EventDispatcher () {
}
static function _removeEventListener(queue, event, handler) {
if (queue != undefined) {
var _local5 = queue.length;
var _local6 = 0;
for ( ; _local6 < _local5 ; _local6++) {
var _local7 = queue[_local6];
if (_local7 == handler) {
queue.splice(_local6, 1);
return(undefined);
}
}
}
}
static function initialize(object) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.EventDispatcher();
}
object.addEventListener = _fEventDispatcher.addEventListener;
object.removeEventListener = _fEventDispatcher.removeEventListener;
object.dispatchEvent = _fEventDispatcher.dispatchEvent;
object.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchQueue(queueObj, eventObj) {
var _local4 = "__q_" + eventObj.type;
var _local5 = queueObj[_local4];
if (_local5 != undefined) {
for (var _local6 in _local5) {
var _local7 = _local5[_local6];
var _local8 = typeof(_local7);
if ((_local8 == "object") || (_local8 == "movieclip")) {
if (_local7.handleEvent != undefined) {
_local7.handleEvent(eventObj);
}
if (_local7[eventObj.type] != undefined) {
if (exceptions[eventObj.type] == undefined) {
_local7[eventObj.type](eventObj);
}
}
} else {
_local7.apply(queueObj, [eventObj]);
}
}
}
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(this, eventObj);
}
function addEventListener(event, handler) {
var _local4 = "__q_" + event;
if (this[_local4] == undefined) {
this[_local4] = new Array();
}
_global.ASSetPropFlags(this, _local4, 1);
_removeEventListener(this[_local4], event, handler);
this[_local4].push(handler);
}
function removeEventListener(event, handler) {
var _local4 = "__q_" + event;
_removeEventListener(this[_local4], event, handler);
}
static var _fEventDispatcher = undefined;
static var exceptions = {move:1, draw:1, load:1};
}
Symbol 20638 MovieClip [__Packages.com.mindcandy.utils.movieclip.EmptyClip] Frame 0
class com.mindcandy.utils.movieclip.EmptyClip
{
function EmptyClip () {
}
static function empty(targetClip) {
for (var clip in targetClip) {
if (typeof(targetClip[clip]) == "movieclip") {
empty(MovieClip(targetClip[clip]));
}
}
var _local3 = null;
if (!targetClip._parent.lockChildren) {
targetClip.removeMovieClip();
}
}
}
Symbol 20639 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.SelectMonster] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.SelectMonster extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand implements com.mindcandy.diablo.shared.view.animation.AnimationListener
{
var read, window, engine, monster, fireEvent;
function SelectMonster () {
super();
}
function execute(args, context, listener, sync) {
read(context);
window.clearSpring.trackEvent("Monster Chosen", com.mindcandy.diablo.puzzle.model.MonsterType(context.selectedMonster).getName());
engine.setGameModel(new com.mindcandy.diablo.puzzle.model.Game(context.selectedMonster));
window.clear();
window.background.holder.play();
window.monsterCliff.animate(this);
monster = new com.mindcandy.diablo.puzzle.controller.MonsterController(context.selectedMonster, new com.mindcandy.diablo.puzzle.view.panel.MonsterPanel(window.monsterCliff.monsterClip), window);
engine.setMonsterController(monster);
}
function handleComplete(anim) {
fireEvent(com.mindcandy.diablo.puzzle.controller.event.AppEvent.READY_TO_LOAD_PUZZLES, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP);
}
function handleInterrupt(anim) {
}
function handleSetup(anim, clip) {
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.SelectMonster";
}
Symbol 20640 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.mixer.DefaultFaderCurve] Frame 0
class com.mindcandy.diablo.shared.content.sound.mixer.DefaultFaderCurve implements com.mindcandy.diablo.shared.content.sound.mixer.FaderCurve
{
function DefaultFaderCurve () {
}
function updateVolume(channel, pctPlayed) {
}
}
Symbol 20641 MovieClip [__Packages.com.mindcandy.diablo.shared.model.NPCBehaviour] Frame 0
class com.mindcandy.diablo.shared.model.NPCBehaviour
{
var key, clipname;
function NPCBehaviour (key, clipname) {
this.key = key || "";
this.clipname = clipname || "";
}
function getKey() {
return(key);
}
function getClipname() {
return(clipname);
}
}
Symbol 20642 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.StartRound] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.StartRound extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand
{
var read, getCurrentSession, window;
function StartRound () {
super();
}
function execute(args, context, listener, sync) {
read(context);
getCurrentSession().getNextPuzzleFromQueue();
window.gamePanel.answerPanel.resetButtons();
window.gamePanel.updateScore(getCurrentSession().getStatistics());
window.gamePanel.showPuzzle(getCurrentSession().getPuzzleInPlay());
window.gamePanel.answerPanel.activateButtons();
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.StartRound";
}
Symbol 20643 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.GoToUrl] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.GoToUrl extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand
{
var targetUrl, window;
function GoToUrl (manager) {
super(manager, NAME);
}
function read(context) {
super.read(context);
targetUrl = context.url;
}
function execute(args, context, listener, sync) {
read(context);
if (targetUrl == undefined) {
return(undefined);
}
if (window.clearSpring.isAvaliable()) {
window.clearSpring.getAndTrackUrl(targetUrl);
} else {
trace("d getUrl: " + targetUrl);
getURL (targetUrl, "_self");
}
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.GoToUrl";
}
Symbol 20644 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.AnswerPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.AnswerPanel extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var buttonA, buttonB, buttonC, buttonD, buttons;
function AnswerPanel (target) {
super(target);
buttonA = new com.mindcandy.diablo.puzzle.view.button.AnswerButton(target.buttonA);
buttonB = new com.mindcandy.diablo.puzzle.view.button.AnswerButton(target.buttonB);
buttonC = new com.mindcandy.diablo.puzzle.view.button.AnswerButton(target.buttonC);
buttonD = new com.mindcandy.diablo.puzzle.view.button.AnswerButton(target.buttonD);
buttons = new Array(buttonA, buttonB, buttonC, buttonD);
}
function show(answers) {
super.show();
var _local4 = 0;
for ( ; _local4 < answers.length ; _local4++) {
var _local5 = com.mindcandy.diablo.puzzle.model.Answer(answers[_local4]);
var _local6 = com.mindcandy.diablo.puzzle.view.button.AnswerButton(buttons[_local4]);
_local6.setAnswer(_local5);
_local6.show();
}
}
function activateButtons() {
setButtonState(true);
}
function deactivateButtons() {
setButtonState(false);
}
function resetButtons() {
for (var key in buttons) {
com.mindcandy.diablo.puzzle.view.button.AnswerButton(buttons[key]).reset();
}
}
function setButtonListener(listener) {
for (var key in buttons) {
com.mindcandy.diablo.puzzle.view.button.AnswerButton(buttons[key]).setListener(listener);
}
}
function setButtonEvent(name, type) {
for (var key in buttons) {
com.mindcandy.diablo.puzzle.view.button.AnswerButton(buttons[key]).setEventName(name);
com.mindcandy.diablo.puzzle.view.button.AnswerButton(buttons[key]).setEventType(type);
}
}
function setButtonState(active) {
for (var key in buttons) {
com.mindcandy.diablo.puzzle.view.button.AnswerButton(buttons[key]).setActive(active);
}
}
}
Symbol 20645 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.button.PuzzleMenuButton] Frame 0
class com.mindcandy.diablo.puzzle.view.button.PuzzleMenuButton extends com.mindcandy.diablo.puzzle.view.button.PuzzleButton
{
var target;
function PuzzleMenuButton (target) {
super(target);
}
function setActive(isActive) {
target.gotoAndStop((isActive ? "Up" : "Off"));
super.setActive(isActive);
}
}
Symbol 20646 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.button.ReplayButton] Frame 0
class com.mindcandy.diablo.puzzle.view.button.ReplayButton extends com.mindcandy.diablo.puzzle.view.button.EventButton
{
var type, context;
function ReplayButton (target) {
super(target, new com.mindcandy.diablo.puzzle.view.button.PuzzleButtonHandler(target, this));
}
function reset() {
super.reset();
}
function getPuzzleType() {
return(type);
}
function setPuzzleType(type) {
this.type = type;
context = {puzzleType:type};
}
}
Symbol 20647 MovieClip [__Packages.com.mindcandy.diablo.shared.util.MoodUtil] Frame 0
class com.mindcandy.diablo.shared.util.MoodUtil
{
function MoodUtil () {
}
static function getMoodWord(health, happiness, moodWordMap) {
var _local5 = getZone(health, happiness);
var _local6 = "monster.moodzone." + _local5;
var _local7 = moodWordMap[_local6].split(",");
var _local8 = Math.floor(Math.random() * _local7.length);
return(_local7[_local8]);
}
static function getMoodColour(health, happiness) {
return(moodColours[getZone(health, happiness) - 1]);
}
static function getZone(health, happiness) {
var _local4 = zones.length;
var _local5 = zones[0].length;
var _local6 = Math.floor(_local5 * (happiness / 1000));
var _local7 = Math.floor(_local4 * (health / 1000));
return(zones[(_local4 - 1) - _local7][_local6]);
}
static function getZoneRectangle(number) {
if ((number < 1) || (number > 12)) {
return(null);
}
var _local3 = zones.length;
var _local4 = zones[0].length;
var _local5 = 0;
for ( ; _local5 < _local3 ; _local5++) {
var _local6 = 0;
for ( ; _local6 < _local4 ; _local6++) {
if (zones[(_local3 - _local5) - 1][_local6] == number) {
var _local7 = 1000 / _local4;
var _local8 = 1000 / _local3;
var _local9 = _local7 * _local6;
var _local10 = _local8 * _local5;
return(new flash.geom.Rectangle(_local9, _local10, _local7, _local8));
}
}
}
return(null);
}
static var zones = [[4, 9, 10, 12], [3, 5, 8, 11], [1, 2, 6, 7]];
static var moodColours = [2172504, 6776679, 11188024, 10362144, 14658598, 4428611, 13129000, 1674624, 3242409, 3242409, 4867209, 13515662, 14600482];
}
Symbol 20648 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.commands.CommandListener] Frame 0
class com.mindcandy.diablo.shared.controller.commands.CommandListener
{
function CommandListener () {
}
}
Symbol 20649 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.state.StateTransition] Frame 0
class com.mindcandy.diablo.puzzle.controller.state.StateTransition
{
var sourceStates, targetState, handlerName;
function StateTransition (sourceStates, targetState, handlerName) {
this.sourceStates = sourceStates;
this.targetState = targetState;
this.handlerName = handlerName;
}
function isAvailableFrom(state) {
var _local3 = sourceStates.length;
var _local4 = _local3 == 0;
while ((!_local4) && ((_local3--) >= 0)) {
_local4 = state == sourceStates[_local3];
}
return(_local4);
}
function getTargetState() {
return(targetState);
}
function getHandlerName() {
return(handlerName);
}
}
Symbol 20650 MovieClip [__Packages.com.mindcandy.diablo.shared.view.tooltips.ToolTipListener] Frame 0
class com.mindcandy.diablo.shared.view.tooltips.ToolTipListener
{
function ToolTipListener () {
}
}
Symbol 20651 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.ApplicationEngine] Frame 0
class com.mindcandy.diablo.puzzle.controller.ApplicationEngine extends com.mindcandy.diablo.puzzle.controller.state.StateMachine
{
var timeline, standalone, window, gameEngine, registerHandler, addTransition, currentState, performTransitionFor, master, active, removeHandlers, gameModel, env, monsterController;
function ApplicationEngine (env, timeline, standalone) {
super(env);
this.timeline = timeline;
this.standalone = standalone;
window = new com.mindcandy.diablo.puzzle.view.GameWindow(timeline, env);
gameEngine = new com.mindcandy.diablo.puzzle.controller.GameEngine(env, window, this);
registerTransitionsAndHandlers();
}
function registerTransitionsAndHandlers() {
registerHandler(com.mindcandy.diablo.puzzle.controller.command.InitApplication.NAME, com.mindcandy.diablo.puzzle.controller.command.InitApplication);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.DisplayInstructions.NAME, com.mindcandy.diablo.puzzle.controller.command.DisplayInstructions);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.DisplayMonsterMenu.NAME, com.mindcandy.diablo.puzzle.controller.command.DisplayMonsterMenu);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.LoadPuzzles.NAME, com.mindcandy.diablo.puzzle.controller.command.LoadPuzzles);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.ScoreSession.NAME, com.mindcandy.diablo.puzzle.controller.command.ScoreSession);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.DisplayScores.NAME, com.mindcandy.diablo.puzzle.controller.command.DisplayScores);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.SelectMonster.NAME, com.mindcandy.diablo.puzzle.controller.command.SelectMonster);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.DisplayError.NAME, com.mindcandy.diablo.puzzle.controller.command.DisplayError);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.ToggleSound.NAME, com.mindcandy.diablo.puzzle.controller.command.ToggleSound);
registerHandler(com.mindcandy.diablo.puzzle.controller.command.GoToUrl.NAME, com.mindcandy.diablo.puzzle.controller.command.GoToUrl);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.INIT, [com.mindcandy.diablo.puzzle.controller.state.AppState.IDLE], com.mindcandy.diablo.puzzle.controller.state.AppState.INITIALISING, com.mindcandy.diablo.puzzle.controller.command.InitApplication.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.START, [com.mindcandy.diablo.puzzle.controller.state.AppState.INITIALISING, com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_ERROR], com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_INSTRUCTIONS, com.mindcandy.diablo.puzzle.controller.command.DisplayInstructions.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.INSTRUCTIONS_READ, [com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_INSTRUCTIONS], com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_MONSTERS, com.mindcandy.diablo.puzzle.controller.command.DisplayMonsterMenu.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.MONSTER_CHOSEN, [com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_MONSTERS], com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_MONSTERS, com.mindcandy.diablo.puzzle.controller.command.SelectMonster.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.READY_TO_LOAD_PUZZLES, [com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_MONSTERS], com.mindcandy.diablo.puzzle.controller.state.AppState.IN_GAME, com.mindcandy.diablo.puzzle.controller.command.LoadPuzzles.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.REPLAY_BUTTON_PRESSED, [com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_SCORES], com.mindcandy.diablo.puzzle.controller.state.AppState.IN_GAME, com.mindcandy.diablo.puzzle.controller.command.LoadPuzzles.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.GAME_COMPLETED, [com.mindcandy.diablo.puzzle.controller.state.AppState.IN_GAME], com.mindcandy.diablo.puzzle.controller.state.AppState.SCORING, com.mindcandy.diablo.puzzle.controller.command.ScoreSession.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.SCORING_COMPLETE, [com.mindcandy.diablo.puzzle.controller.state.AppState.SCORING], com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_SCORES, com.mindcandy.diablo.puzzle.controller.command.DisplayScores.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.EXTERNAL_LINK_CLICKED, [com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_SCORES, com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_INSTRUCTIONS], com.mindcandy.diablo.puzzle.controller.state.State.KEEP_CURRENT, com.mindcandy.diablo.puzzle.controller.command.GoToUrl.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.ASSET_ERROR, [com.mindcandy.diablo.puzzle.controller.state.AppState.INITIALISING, com.mindcandy.diablo.puzzle.controller.state.AppState.IN_GAME, com.mindcandy.diablo.puzzle.controller.state.AppState.SCORING], com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_ERROR, com.mindcandy.diablo.puzzle.controller.command.DisplayError.NAME);
addTransition(com.mindcandy.diablo.puzzle.controller.event.AppEvent.SERVICE_ERROR, [com.mindcandy.diablo.puzzle.controller.state.AppState.INITIALISING, com.mindcandy.diablo.puzzle.controller.state.AppState.IN_GAME, com.mindcandy.diablo.puzzle.controller.state.AppState.SCORING], com.mindcandy.diablo.puzzle.controller.state.AppState.DISPLAYING_ERROR, com.mindcandy.diablo.puzzle.controller.command.DisplayError.NAME);
}
function init(master) {
super.init(master);
currentState = com.mindcandy.diablo.puzzle.controller.state.AppState.IDLE;
gameEngine.reset();
performTransitionFor(com.mindcandy.diablo.puzzle.controller.event.AppEvent.INIT);
}
function notify(event) {
if (event.getName() == com.mindcandy.diablo.puzzle.controller.event.AppEvent.INIT_COMPLETED) {
master.handleReady(this);
} else if (inGame() && (event.getType() == com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME)) {
gameEngine.notify(event);
} else {
super.notify(event);
}
}
function start() {
active = true;
performTransitionFor(com.mindcandy.diablo.puzzle.controller.event.AppEvent.START);
}
function suspend() {
active = false;
gameEngine.suspend();
}
function resume() {
gameEngine.reset();
start();
}
function resetGame() {
gameEngine.reset();
}
function destroy() {
active = false;
removeHandlers();
gameEngine.destroy();
window.destroy();
window = null;
gameModel = null;
}
function inGame() {
return(currentState == com.mindcandy.diablo.puzzle.controller.state.AppState.IN_GAME);
}
function prepare(context) {
context = (context ? (context) : ({}));
context.env = env;
context.engine = this;
context.game = gameModel;
context.window = window;
context.monster = monsterController;
return(context);
}
function isStandalone() {
return(standalone);
}
function getGameModel() {
return(gameModel);
}
function setGameModel(gameModel) {
if (this.gameModel == undefined) {
this.gameModel = gameModel;
} else {
throw new Error("GameModel has already been set");
}
}
function setMonsterController(monsterController) {
if (this.monsterController == undefined) {
this.monsterController = monsterController;
} else {
throw new Error("MonsterController has already been set.");
}
}
}
Symbol 20652 MovieClip [__Packages.com.mindcandy.diablo.shared.view.GlassPanel] Frame 0
class com.mindcandy.diablo.shared.view.GlassPanel extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var target;
function GlassPanel (targetClip) {
super(targetClip);
target.useHandCursor = false;
}
function activateGlassPanel() {
target.onRelease = function () {
trace("f clink");
};
}
function disableGlassPanel() {
delete target.onRelease;
}
}
Symbol 20653 MovieClip [__Packages.org.osflash.zeroi.logging.LoggerConfig] Frame 0
class org.osflash.zeroi.logging.LoggerConfig
{
static var logs, completeFunc, DEFAULT, initComplete;
function LoggerConfig () {
}
static function isInitialized(Void) {
return(logs != null);
}
static function init(xmlURI, completeFunc) {
org.osflash.zeroi.logging.LoggerConfig.completeFunc = completeFunc;
logs = new Array();
org.osflash.zeroi.util.XMLUtils.loadXML(xmlURI, org.osflash.zeroi.logging.LoggerConfig, onXML);
}
static function onXML(b, x) {
DEFAULT = org.osflash.zeroi.logging.LogLevel.getLevelByName(org.osflash.zeroi.util.XMLUtils.byName(x, "logger").attributes.level);
trace("i default " + DEFAULT);
var _local4 = org.osflash.zeroi.util.XMLUtils.byName(x, "log");
while (_local4) {
logs[_local4.attributes.target] = org.osflash.zeroi.logging.LogLevel.getLevelByName(_local4.attributes.level);
_local4 = _local4.nextSibling;
}
initComplete = true;
completeFunc(b);
}
static function getLogLevel(fullpath) {
if (!initComplete) {
return(org.osflash.zeroi.logging.LogLevel.INFO);
}
var _local3 = logs[fullpath];
if (_local3 != undefined) {
return(_local3);
}
var _local4 = fullpath.split(".");
if (_local4.length > 1) {
var _local5 = new String();
var _local6 = 0;
for ( ; _local6 < (_local4.length - 1) ; _local6++) {
_local5 = _local5 + _local4[_local6];
if (_local6 < (_local4.length - 2)) {
_local5 = _local5 + ".";
}
}
return(getLogLevel(_local5));
}
return(DEFAULT);
}
static function getDefaultLogLevel(Void) {
return(DEFAULT);
}
}
Symbol 20654 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.CountdownTimer] Frame 0
class com.mindcandy.diablo.puzzle.view.CountdownTimer extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var progressBar, countdownPeriod, endGamePeriod, progressCheckInterval, penaltyTime, startTime, progressCheckID, isPaused, splitTime, pausedTime, warningDispatched;
function CountdownTimer (target) {
super(target);
progressBar = new com.mindcandy.diablo.puzzle.view.ProgressBar(target.progressBar);
countdownPeriod = ONE_MINUTE;
endGamePeriod = FIVE_SECS;
progressCheckInterval = 40;
reset();
}
function setPeriod(milliseconds) {
countdownPeriod = milliseconds;
}
function setEndGamePeriod(milliseconds) {
endGamePeriod = milliseconds;
}
function getElapsedTime() {
return((getTimer() - startTime) + penaltyTime);
}
function start() {
startTime = getTimer();
progressCheckID = _global.setInterval(this, "checkProgress", progressCheckInterval);
}
function penalise() {
penaltyTime = penaltyTime + PENALTY_SECS;
if (getElapsedTime() >= countdownPeriod) {
_global.clearInterval(progressCheckID);
dispatchCompleted();
}
}
function pause() {
isPaused = true;
splitTime = getTimer();
_global.clearInterval(progressCheckID);
}
function resume() {
if (isPaused) {
isPaused = false;
pausedTime = pausedTime + (getTimer() - splitTime);
progressCheckID = _global.setInterval(this, "checkProgress", progressCheckInterval);
}
}
function reset() {
_global.clearInterval(progressCheckID);
progressBar.update(0);
warningDispatched = false;
startTime = (penaltyTime = 0);
}
function checkProgress() {
var _local2 = getElapsedTime();
var _local3 = 100 * (_local2 / countdownPeriod);
progressBar.update(_local3);
if (_local3 >= 100) {
_global.clearInterval(progressCheckID);
dispatchCompleted();
} else if ((!warningDispatched) && ((countdownPeriod - _local2) <= endGamePeriod)) {
warningDispatched = true;
dispatchEndGameReached();
}
}
function dispatchCompleted() {
com.mindcandy.diablo.shared.events.EventManagerLocator.getManager().newEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.TIME_UP, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
}
function dispatchEndGameReached() {
com.mindcandy.diablo.shared.events.EventManagerLocator.getManager().newEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.END_GAME_PERIOD, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
}
function destroy() {
_global.clearInterval(progressCheckID);
super.destroy();
}
static var ONE_MINUTE = 60000;
static var FIVE_SECS = 5000;
static var PENALTY_SECS = 3000;
}
Symbol 20655 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.external.LinkedAssetFactory] Frame 0
class com.mindcandy.diablo.shared.content.sound.external.LinkedAssetFactory implements com.mindcandy.diablo.shared.content.AssetFactory
{
var holderClip;
function LinkedAssetFactory (holderClip) {
this.holderClip = holderClip;
}
function create(item) {
var _local3 = com.mindcandy.diablo.shared.content.sound.SoundDetails(item);
var _local4 = _local3.getAssetDetails();
var _local5 = holderClip.createEmptyMovieClip(_local4.getPath(), holderClip.getNextHighestDepth());
return(new com.mindcandy.diablo.shared.content.sound.external.LinkedSoundAsset(_local3, _local5));
}
}
Symbol 20656 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.PuzzleImage] Frame 0
class com.mindcandy.diablo.puzzle.model.PuzzleImage implements com.mindcandy.diablo.shared.content.graphics.HasGraphicalDetails, com.mindcandy.diablo.shared.content.HasAssetDetails
{
var assetDetails, imageDetails;
function PuzzleImage (id, url) {
assetDetails = new com.mindcandy.diablo.shared.content.AssetDetails(id.toString(), id, url, url.substr(-3));
imageDetails = new com.mindcandy.diablo.shared.content.graphics.GraphicalDetails();
}
function getAssetDetails() {
return(assetDetails);
}
function getGraphicalDetails() {
return(imageDetails);
}
}
Symbol 20657 MovieClip [__Packages.com.mindcandy.diablo.shared.view.animation.LinkedAnimation] Frame 0
class com.mindcandy.diablo.shared.view.animation.LinkedAnimation implements com.mindcandy.diablo.shared.view.animation.Animation
{
var parentClip, linkageId, listeners, x, y, delay, startFrame, loopsComplete, loopsRequired, ease, animClip, embeddedSound, totalFrames, duration, frameFuse;
function LinkedAnimation (parentClip, linkageId, delay, x, y) {
this.parentClip = parentClip;
this.linkageId = linkageId;
listeners = new Array();
this.x = x || 0;
this.y = y || 0;
this.delay = delay || 0;
}
function start(callback) {
}
function addListener(listener) {
listeners.push(listener);
}
function play(loops, ease) {
startFrame = 1;
loopsComplete = 0;
loopsRequired = loops || 0;
this.ease = ease || "linear";
animClip = parentClip.attachMovie(linkageId, linkageId + Math.floor(Math.random() * 10000), parentClip.getNextHighestDepth(), {_visible:false});
animClip._x = x;
animClip._y = y;
handleSetup();
embeddedSound = new Sound(animClip);
embeddedSound.setVolume(100);
if (totalFrames == undefined) {
totalFrames = animClip._totalframes;
}
duration = totalFrames / TARGET_FRAME_RATE;
animClip._visible = true;
nextLoop();
}
function nextLoop() {
startFrame = (((loopsComplete == 0) || (!animClip.loopFrame)) ? 1 : (Number(animClip.loopFrame)));
animClip.gotoAndStop(startFrame);
frameFuse.destroy();
frameFuse = new com.mosesSupposes.fuse.Fuse();
frameFuse.addTarget(animClip);
frameFuse.push({_frame:totalFrames, ease:ease, delay:delay, seconds:duration});
if ((loopsRequired == INFINITE) || (loopsComplete < loopsRequired)) {
frameFuse.push({func:"nextLoop", scope:this});
} else {
frameFuse.push({func:"handleFinished", scope:this});
}
frameFuse.start();
loopsComplete++;
}
function pause() {
frameFuse.pause();
}
function resume() {
frameFuse.resume();
}
function destroy() {
frameFuse.destroy();
embeddedSound.setVolume(0);
animClip.removeMovieClip();
animClip = null;
}
function getClip() {
return(animClip);
}
function handleFinished() {
var _local2 = 0;
for ( ; _local2 < listeners.length ; _local2++) {
com.mindcandy.diablo.shared.view.animation.AnimationListener(listeners[_local2]).handleComplete(this);
}
}
function handleSetup() {
var _local2 = 0;
for ( ; _local2 < listeners.length ; _local2++) {
com.mindcandy.diablo.shared.view.animation.AnimationListener(listeners[_local2]).handleSetup(this, animClip);
}
}
function show() {
embeddedSound.setVolume(100);
animClip._visible = true;
}
function hide() {
embeddedSound.setVolume(0);
animClip._visible = false;
}
function getKey() {
return(linkageId);
}
function setParentClip(parentClip) {
this.parentClip = parentClip;
}
function setTotalFrames(totalFrames) {
this.totalFrames = totalFrames;
}
static var INFINITE = -1;
static var TARGET_FRAME_RATE = 24;
}
Symbol 20658 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.LogController] Frame 0
class com.mindcandy.diablo.shared.controller.LogController extends com.mindcandy.diablo.shared.controller.BaseController
{
var configURL, loggingActiveDelegate, master;
function LogController (configURL) {
super();
this.configURL = configURL;
}
function init(master) {
super.init(master);
loggingActiveDelegate = com.mindcandy.utils.delegate.Delegate.create(this, handleReady);
org.osflash.zeroi.logging.LoggerClass.setLogging(true);
org.osflash.zeroi.logging.LoggerConfig.init(configURL, loggingActiveDelegate);
}
function handleReady(subController) {
com.mindcandy.utils.delegate.Delegate.destroy(loggingActiveDelegate);
master.handleReady(this);
}
}
Symbol 20659 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.commands.CommandManager] Frame 0
class com.mindcandy.diablo.shared.controller.commands.CommandManager implements com.mindcandy.diablo.shared.controller.commands.CommandListener
{
function CommandManager () {
}
}
Symbol 20660 MovieClip [__Packages.com.mindcandy.diablo.shared.events.EventManager] Frame 0
class com.mindcandy.diablo.shared.events.EventManager
{
function EventManager () {
}
}
Symbol 20661 MovieClip [__Packages.com.mindcandy.diablo.shared.content.graphics.GraphicalAsset] Frame 0
class com.mindcandy.diablo.shared.content.graphics.GraphicalAsset implements com.mindcandy.diablo.shared.content.Asset
{
function GraphicalAsset () {
}
}
Symbol 20662 MovieClip [__Packages.com.mindcandy.diablo.shared.content.graphics.BaseGraphicalAsset] Frame 0
class com.mindcandy.diablo.shared.content.graphics.BaseGraphicalAsset implements com.mindcandy.diablo.shared.content.graphics.GraphicalAsset
{
var assetDetails, graphicsInfo, viewObject, assetMap;
function BaseGraphicalAsset (emptyClip, assetInfo, graphicsInfo) {
assetDetails = assetInfo;
this.graphicsInfo = graphicsInfo;
viewObject = new com.mindcandy.diablo.shared.view.BaseViewObject(emptyClip);
}
function getName() {
return(assetDetails.getId());
}
function getDetails() {
return(assetDetails);
}
function getGraphicalDetails() {
return(graphicsInfo);
}
function destroy() {
viewObject.destroy();
var _local2 = viewObject;
viewObject = null;
}
function clone(newParent) {
return(this);
}
function updatePosition(x, y, z, oldX, oldY) {
if (arguments.length < 5) {
assetMap.insertAsset(this, oldX);
} else {
trace(("f set X to " + x) + " in updatePosition");
viewObject.setX(x);
viewObject.setY(y);
assetMap.updateAsset(this, oldX);
}
}
function getMap(Void) {
return(assetMap);
}
function setMap(assetMap) {
this.assetMap = assetMap;
}
function updateAssetMap(oldX) {
assetMap.updateAsset(this, oldX);
}
function getViewObject() {
return(viewObject);
}
}
Symbol 20663 MovieClip [__Packages.com.mosesSupposes.fuse.FuseItem] Frame 0
class com.mosesSupposes.fuse.FuseItem
{
static var _ZigoEngine, _aInstances;
var _nItemID, _nFuseID, _initObj, _aProfiles, _oElements, _oTemps, _sImage, _aTweens, _oTwBeingAdded;
function FuseItem (id, o, fuseID) {
_ZigoEngine = _global.com.mosesSupposes.fuse.ZigoEngine;
_nItemID = id;
_nFuseID = fuseID;
_initObj = o;
_aProfiles = [];
_oElements = {aEvents:[]};
_oTemps = {};
if (!(o instanceof Array)) {
o = [o];
}
var _local5 = _global.com.mosesSupposes.fuse.Fuse;
_oTemps.outputLevel = ((_local5 != undefined) ? (_local5.OUTPUT_LEVEL) : (_global.com.mosesSupposes.fuse.ZigoEngine.OUTPUT_LEVEL));
if (o.length == 1) {
var _local6 = o[0];
var _local7 = ((_local6.action != undefined) ? (_local6.action) : (_local6));
if ((_local7.__buildMode != true) && (_local7.command != undefined)) {
_oElements.command = _local7.command;
_oElements.scope = _local7.scope;
_oElements.args = _local7.args;
_sImage = " Elements:[" + ("command" + ((typeof(_local7.command) == "string") ? ((":\"" + _local7.command) + "\", ") : ", "));
if (_local7.delay != undefined) {
_sImage = _sImage + "delay, ";
_oElements.delay = _local7.delay;
}
_sImage = _sImage.slice(0, -2) + "]";
if ((_local7.func != undefined) && (_oTemps.outputLevel > 0)) {
com.mosesSupposes.fuse.FuseKitCommon.error("113");
}
return;
}
}
_oTemps.sImgS = "";
_oTemps.sImgE = "";
_oTemps.sImgB = "";
_oTemps.afl = 0;
_oTemps.ael = 0;
_oTemps.twDelayFlag = false;
_oTemps.nActions = o.length;
_oTemps.fuseProps = com.mosesSupposes.fuse.FuseKitCommon._fuseprops();
_oTemps.cbProps = com.mosesSupposes.fuse.FuseKitCommon._cbprops();
_oTemps.sUP = com.mosesSupposes.fuse.FuseKitCommon._underscoreable();
_oTemps.sCT = com.mosesSupposes.fuse.FuseKitCommon._cts();
_oTemps.bTriggerFound = false;
for (var i in o) {
var _local8 = o[i];
if ((_local8.label != undefined) && (typeof(_local8.label) == "string")) {
_oElements.label = _local8.label;
}
var _local10 = typeof(_local8.action) == "object";
if (_local10 == true) {
var _local11 = ((_local8.action instanceof Array) ? (_local8.action) : ([_local8.action]));
var _local9 = {delay:_local8.delay, target:_local8.target, addTarget:_local8.addTarget, label:_local8.label, trigger:_local8.trigger};
for (var j in _local11) {
var _local12 = parseProfile(_local11[j], _local9);
if (_local12 != undefined) {
_aProfiles.unshift(_local12);
}
}
} else {
var _local13 = _local8;
var _local14 = parseProfile(_local13, _local9);
if (_local14 != undefined) {
_aProfiles.unshift(_local14);
}
}
}
_sImage = "";
var _local15 = "";
if (_oTemps.afl > 0) {
_local15 = _local15 + ((_oTemps.afl > 1) ? (_oTemps.afl + " callbacks, ") : "callback, ");
}
if ((_oElements.delay != undefined) || (_oTemps.twDelayFlag == true)) {
_local15 = _local15 + "delay, ";
}
if (_oTemps.bTriggerFound == true) {
_local15 = _local15 + "trigger, ";
}
if (_oTemps.ael > 0) {
_local15 = _local15 + ((_oTemps.ael > 1) ? (_oTemps.ael + " events, ") : "event, ");
}
if (_local15 != "") {
_sImage = _sImage + ((" Elements:[" + _local15.slice(0, -2)) + "]");
}
if (_oTemps.sImgS != "") {
_sImage = _sImage + ((" StartProps:[" + _oTemps.sImgS.slice(0, -2)) + "]");
}
if (_oTemps.sImgE != "") {
_sImage = _sImage + ((" Props:[" + _oTemps.sImgE.slice(0, -2)) + "]");
}
if (_oTemps.sImgB != "") {
_sImage = _sImage + ((" Simple Syntax Props:[" + _oTemps.sImgB.slice(0, -1)) + "]");
}
if (_sImage.slice(-2) == ", ") {
_sImage = _sImage.slice(0, -2);
}
delete _oTemps;
}
static function doTween() {
for (var i in arguments) {
if (typeof(arguments[i]) == "object") {
if (_aInstances == undefined) {
_aInstances = new Array();
}
var _local2 = new com.mosesSupposes.fuse.FuseItem(_aInstances.length, arguments[i], -1);
return(_local2.startItem());
}
}
}
function get label() {
return(_oElements.label);
}
function hasTriggerFired() {
return(_bTrigger == true);
}
function getInitObj() {
return(_initObj);
}
function getActiveTargets(targetList) {
if (_aTweens.length <= 0) {
return(targetList);
}
var _local3 = false;
for (var i in _aTweens) {
for (var j in targetList) {
if (targetList[j] == _aTweens[i].targ) {
_local3 = true;
break;
}
}
if (_local3 == false) {
targetList.unshift(_aTweens[i].targ);
}
}
return(targetList);
}
function toString() {
return(String((_sID() + ":") + _sImage));
}
function evalDelay(scope) {
var _local3 = _oElements.delay;
if (_local3 instanceof Function) {
_local3 = _local3.apply(((_oElements.delayscope != undefined) ? (_oElements.delayscope) : (scope)));
}
if (typeof(_local3) == "string") {
_local3 = parseClock(String(_local3));
}
if (_global.isNaN(Number(_local3)) == true) {
return(0);
}
return(Number(_local3));
}
function startItem(targs, scope, duration, easing) {
_ZigoEngine = _global.com.mosesSupposes.fuse.ZigoEngine;
var _local6 = _global.com.mosesSupposes.fuse.Fuse;
var _local7 = ((_local6 != undefined) ? (_local6.OUTPUT_LEVEL) : (_ZigoEngine.OUTPUT_LEVEL));
if (_oElements.command != null) {
var _local8 = _oElements.scope || (scope);
var _local9 = ((_oElements.command instanceof Function) ? (String(_oElements.command.apply(_local8))) : (String(_oElements.command)));
var _local10 = ((_oElements.args instanceof Function) ? (_oElements.args.apply(_local8)) : (_oElements.args));
var _local11 = com.mosesSupposes.fuse.FuseKitCommon._validateFuseCommand(_local9, _aProfiles.length > 0, (_local10 != null) && (!((_local10 instanceof Array) && (_local10.length == 0))), _local7, false);
if (_local11 == true) {
_nPlaying = 1;
if (!(_local10 instanceof Array)) {
_local10 = ((_local10 == null) ? ([]) : ([_local10]));
}
dispatchRequest(String(_local9), _local10);
}
if ((_local11 == false) || (_local9 == "setStartProps")) {
complete();
}
return(null);
}
if (_aTweens.length > 0) {
stop();
}
_ZigoEngine.addListener(this);
_nPlaying = 2;
var _local12 = null;
if (_aProfiles.length > 0) {
if (_ZigoEngine == undefined) {
com.mosesSupposes.fuse.FuseKitCommon.error("112");
} else {
_local12 = doTweens(targs, scope, duration, easing, false, false);
}
}
_nPlaying = 1;
var _local13 = _oElements.aEvents;
for (var i in _local13) {
if ((_local12 == null) && ((_aTweens.length > 0) && (_local13[i].skipLevel == 2))) {
continue;
}
fireEvents(_local13[i], scope, _local7, targs);
}
if ((_local12 == null) && ((_aTweens.length <= 0) && (_nPlaying == 1))) {
if (_local7 == 3) {
(com.mosesSupposes.fuse.FuseKitCommon.output(((_sID() + " no tweens added - item done. [getTimer()=") + getTimer()) + "]"));// not popped
}
complete();
}
return(_local12);
}
function stop() {
var _local2 = _nPlaying > -1;
_nPlaying = -1;
if (_local2 == true) {
onStop();
}
_ZigoEngine.removeListener(this);
}
static function removeInstance(id) {
com.mosesSupposes.fuse.FuseItem(_aInstances[id]).destroy();
delete _aInstances[id];
}
function onStop() {
_bStartSet = false;
for (var i in _aTweens) {
var _local2 = _aTweens[i];
_local2.targ.removeListener(this);
_ZigoEngine.removeTween(_local2.targ, _local2.props);
delete _aTweens[i];
}
delete _aTweens;
_bTrigger = false;
}
function evtSetStart(o) {
if ((_sImage.indexOf("StartProps:") == -1) || (o.curIndex == _nItemID)) {
return(undefined);
}
if (o.all != true) {
var _local3 = false;
for (var i in o.filter) {
if ((Number(o.filter[i]) == _nItemID) || (String(o.filter[i]) == _oElements.label)) {
_local3 = true;
}
}
if (_local3 == false) {
return(undefined);
}
}
_nPlaying = 2;
doTweens(o.targs, o.scope, null, null, true, false);
_nPlaying = -1;
_bStartSet = true;
}
function pause(resume) {
if (_nPlaying == -1) {
return(undefined);
}
_nPlaying = ((resume == true) ? 1 : 0);
for (var i in _aTweens) {
var _local3 = _aTweens[i];
var _local4 = _local3.targ;
var _local5 = _local3.props;
if (resume == true) {
var _local6 = [];
var _local7 = _aTweens.length;
for (var j in _local5) {
if (_ZigoEngine.isTweenPaused(_local4, _local5[j]) == false) {
_local6.push(_local5[j]);
}
}
if (_local6.length > 0) {
onTweenEnd({__zigoID__:_local3.targZID, props:_local6, isResume:true});
}
if (_aTweens.length == _local7) {
_local4.addListener(this);
_ZigoEngine.unpauseTween(_local4, _local3.props);
}
} else {
_local4.removeListener(this);
_ZigoEngine.pauseTween(_local4, _local3.props);
}
}
if ((resume == true) && (_aTweens.length <= 0)) {
complete();
} else if (resume == true) {
_ZigoEngine.addListener(this);
} else {
_ZigoEngine.removeListener(this);
}
}
function fastForward(ignore, targs, scope) {
if (_nPlaying == 1) {
for (var i in _aTweens) {
var _local5 = _aTweens[i];
var _local6 = _local5.targ;
_local6.removeListener(this);
_ZigoEngine.ffTween(_local6, _local5.props, true);
}
return(undefined);
}
if (_nPlaying == 2) {
com.mosesSupposes.fuse.FuseKitCommon.error("125", _nItemID);
}
_nPlaying = 2;
doTweens(targs, scope, null, null, false, true);
stop();
}
function destroy() {
var _local2 = _nPlaying > -1;
_nPlaying = -1;
for (var i in _aTweens) {
var _local3 = _aTweens[i];
_local3.targ.removeListener(this);
if (_local2 == true) {
_ZigoEngine.removeTween(_local3.targ, _local3.props);
}
delete _aTweens[i];
}
for (var j in this) {
delete this[j];
}
}
function dispatchRequest(type, args) {
var _local4 = _global.com.mosesSupposes.fuse.Fuse.getInstance(_nFuseID);
if ((!(args instanceof Array)) && (args != null)) {
args = new Array(args);
}
Function(_local4[type]).apply(_local4, args);
}
function _sID() {
if (_nFuseID == -1) {
var _local2 = "-One-off tween ";
} else {
var _local2 = _global.com.mosesSupposes.fuse.Fuse.getInstance(_nFuseID).getHandle();
}
var _local2 = _local2 + (">Item #" + String(_nItemID));
if (_oElements.label != undefined) {
_local2 = _local2 + ((" \"" + _oElements.label) + "\"");
}
return(_local2);
}
function parseProfile(obj, aap) {
if (obj.__buildMode == true) {
if (obj.command != undefined) {
if (obj.command == "delay") {
_oElements.delay = obj.commandargs;
} else if (obj.command == "trigger") {
if (_oTemps.bTriggerFound == false) {
_oTemps.bTriggerFound = true;
return({trigger:obj.commandargs, _doTimer:true});
}
if (_oTemps.outputLevel > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("124", _sID(), obj.commandargs);
}
} else {
_oElements.command = obj.command;
_oElements.args = obj.commandargs;
}
}
if (obj.func != undefined) {
_oTemps.afl++;
_oElements.aEvents.unshift({scope:obj.scope, func:obj.func, args:obj.args});
}
if (obj.tweenargs != undefined) {
_oTemps.sImgB = _oTemps.sImgB + (obj.tweenargs[1].toString() + ",");
return(obj);
}
return(null);
}
var _local7 = {delay:((aap.delay != undefined) ? (aap.delay) : (obj.delay)), ease:obj.ease, seconds:obj.seconds, event:obj.event, eventparams:obj.eventparams, skipLevel:(((typeof(obj.skipLevel) == "number") && ((obj.skipLevel >= 0) && (obj.skipLevel <= 2))) ? (obj.skipLevel) : (_ZigoEngine.SKIP_LEVEL)), roundResults:obj.roundResults, oSP:{}, oEP:{}, oAFV:{}};
var _local8 = ((aap.trigger != undefined) ? (aap.trigger) : (obj.trigger));
if (_local8 != undefined) {
if (_oTemps.bTriggerFound == false) {
_local7.trigger = _local8;
_oTemps.bTriggerFound = true;
} else if (_oTemps.outputLevel > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("124", _sID(), _local8);
}
}
if (_local7.delay == undefined) {
_local7.delay = obj.startAt;
}
if (_local7.ease == undefined) {
_local7.ease = obj.easing;
}
if (_local7.seconds == undefined) {
_local7.seconds = ((obj.duration != undefined) ? (obj.duration) : (obj.time));
}
if (aap.target != undefined) {
_local7.target = ((aap.target instanceof Array) ? (aap.target) : ([aap.target]));
} else if (obj.target != undefined) {
_local7.target = ((obj.target instanceof Array) ? (obj.target) : ([obj.target]));
}
if (obj.addTarget != undefined) {
_local7.addTarget = ((obj.addTarget instanceof Array) ? (obj.addTarget) : ([obj.addTarget]));
}
if (aap.addTarget != undefined) {
if (_local7.addTarget == undefined) {
_local7.addTarget = ((aap.addTarget instanceof Array) ? (aap.addTarget) : ([aap.addTarget]));
} else {
_local7.addTarget = ((_local7.addTarget instanceof Array) ? (_local7.addTarget.concat(aap.addTarget)) : (new Array(_local7.addTarget).concat(aap.addTarget)));
}
}
var _local9 = false;
for (var _local5 in obj) {
var _local10 = obj[_local5];
if (_oTemps.cbProps.indexOf(("|" + _local5) + "|") > -1) {
if (_local5 != "skipLevel") {
_local7[_local5] = _local10;
}
continue;
}
if (_oTemps.fuseProps.indexOf(("|" + _local5) + "|") > -1) {
if ((_local5 == "command") && ((_oTemps.nActions > 1) && (_oTemps.outputLevel > 0))) {
com.mosesSupposes.fuse.FuseKitCommon.error("109", String(_local10), true);
}
continue;
}
if (typeof(_local10) == "object") {
var _local11 = ((_local10 instanceof Array) ? ([]) : ({}));
for (var _local6 in _local10) {
_local11[_local6] = _local10[_local6];
}
_local10 = _local11;
}
if (_local5.indexOf("start_") == 0) {
if ((_local5 == "start_controlX") || ((_local5 == "start_controlY") || (_local5.indexOf("_bezier_") > -1))) {
if (_oTemps.outputLevel > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("110", _sID(), _local5);
}
continue;
}
var _local5 = _local5.slice(6);
var _local12 = _local7.oSP;
} else {
var _local12 = _local7.oEP;
}
if ((ADD_UNDERSCORES == true) && (_oTemps.sUP.indexOf(("|_" + _local5) + "|") > -1)) {
var _local5 = "_" + _local5;
}
if (_oTemps.sCT.indexOf(("|" + _local5) + "|") > -1) {
var _local14 = (_local5 == "_tintPercent") && (_local12.colorProp.p == "_tint");
var _local15 = (_local5 == "_tint") && (_local12.colorProp.p == "_tintPercent");
if ((_local12.colorProp == undefined) || ((_local14 == true) || (_local15 == true))) {
if (_local14 == true) {
_local12.colorProp = {p:"_tint", v:{tint:_local12.colorProp.v, percent:_local10}};
} else if (_local15 == true) {
_local12.colorProp = {p:"_tint", v:{tint:_local10, percent:_local12.colorProp.v}};
} else {
_local12.colorProp = {p:_local5, v:_local10};
}
_local9 = true;
} else if (_oTemps.outputLevel > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("115", _sID(), _local5);
}
} else if (_local10 != null) {
_local12[_local5] = _local10;
_local9 = true;
}
}
if ((_local9 == false) && ((_local7.trigger != undefined) || (((_local7.delay != undefined) || (_local7.seconds != undefined)) && (((_local7.startfunc != undefined) || (_local7.updfunc != undefined)) || ((_local7.func != undefined) && (_oTemps.nActions > 1)))))) {
if (_ZigoEngine == undefined) {
com.mosesSupposes.fuse.FuseKitCommon.error("116");
} else {
if (_local7.func != undefined) {
_oTemps.afl++;
}
if (_local7.event != undefined) {
_oTemps.ael++;
}
_local7._doTimer = true;
if (_local7.delay != undefined) {
_oTemps.twDelayFlag = true;
}
return(_local7);
}
}
if (_local9 == true) {
var _local16 = _local7.oEP.colorProp != undefined;
var _local17 = 0;
for ( ; _local17 < 2 ; _local17++) {
var _local18 = ((_local17 == 0) ? (_local7.oSP) : (_local7.oEP));
var _local19 = ((_local17 == 0) ? (_oTemps.sImgS) : (_oTemps.sImgE));
var _local20 = _local18.colorProp.p;
if (_local20 != undefined) {
_local18[_local20] = _local18.colorProp.v;
delete _local18.colorProp;
}
if (((_local18._xscale != undefined) || (_local18._scale != undefined)) && ((_local18._width != undefined) || (_local18._size != undefined))) {
var _local21 = ((_local18._xscale != undefined) ? "_xscale" : "_scale");
delete _local18[_local21];
if (_oTemps.outputLevel > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("115", _sID(), _local21);
}
}
if (((_local18._yscale != undefined) || (_local18._scale != undefined)) && ((_local18._height != undefined) || (_local18._size != undefined))) {
var _local22 = ((_local18._yscale != undefined) ? "_yscale" : "_scale");
delete _local18[_local22];
if (_oTemps.outputLevel > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("115", _sID(), _local22);
}
}
if ((_local18._fade != undefined) && (_local18._alpha != undefined)) {
delete _local18._alpha;
if (_oTemps.outputLevel > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("115", _sID(), "_alpha");
}
}
for (var _local5 in _local18) {
if (_local19.indexOf(_local5 + ", ") == -1) {
_local19 = _local19 + (_local5 + ", ");
}
if (_local18 == _local7.oSP) {
if ((_local7.oEP[_local5] == undefined) && (!((_local5 == _local20) && (_local16 == true)))) {
_local7.oAFV[_local5] = true;
_local7.oEP[_local5] = [];
}
}
}
((_local17 == 0) ? ((_oTemps.sImgS = _local19)) : ((_oTemps.sImgE = _local19)));
}
return(_local7);
}
if ((_local7.delay != undefined) && (_oTemps.nActions == 1)) {
_oElements.delay = _local7.delay;
_oElements.delayscope = _local7.scope;
}
if (_local7.event != undefined) {
_oTemps.ael++;
_oElements.aEvents.unshift({scope:_local7.scope, e:_local7.event, ep:_local7.eventparams, skipLevel:_local7.skipLevel});
}
var _local23 = _oElements.aEvents.length;
if (_local7.func != undefined) {
_oElements.aEvents.push({func:_local7.func, scope:_local7.scope, args:_local7.args, skipLevel:_local7.skipLevel});
}
_oTemps.afl = _oTemps.afl + (_oElements.aEvents.length - _local23);
return(undefined);
}
function doTweens(targs, defaultScope, defaultSeconds, defaultEase, setStart, isFF) {
if (_aTweens == null) {
_aTweens = [];
}
var tba = ((_oTwBeingAdded = {}));
var ZE = _ZigoEngine;
var _local8 = function (target, props, endvals, seconds, ease, delay, callback) {
if (target.__zigoID__ == null) {
ZE.initializeTargets(target);
}
tba[target.__zigoID__] = true;
var _local9 = ZE.doTween.apply(ZE, arguments);
tba[target.__zigoID__] = false;
return(((_local9 == null) ? ([]) : (_local9.split(","))));
};
var _local9 = _global.com.mosesSupposes.fuse.Fuse;
var _local10 = ((_local9 != undefined) ? (_local9.OUTPUT_LEVEL) : (_ZigoEngine.OUTPUT_LEVEL));
var _local11 = "";
var _local12 = 0;
var _local16 = (_bStartSet != true) && ((setStart == true) || (_sImage.indexOf("StartProps:") > -1));
var _local17 = 0;
for ( ; _local17 < _aProfiles.length ; _local17++) {
if (_nPlaying < 2) {
return(null);
}
var _local18 = _aProfiles[_local17];
for ( ; _local18.__buildMode == true ; _local17++) {
var _local19 = _aProfiles[_local17].tweenargs;
var _local20 = _local11;
if ((_local19[6].cycles === 0) || (_local19[6].cycles.toUpperCase() == "LOOP")) {
delete _local19[6].cycles;
if (_local10 > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("117", _sID());
}
}
var _local21 = com.mosesSupposes.fuse.FuseKitCommon.parseCallback(_local19[6]);
if (!(_local19[0] instanceof Array)) {
_local19[0] = [_local19[0]];
}
for (var _local13 in _local19[0]) {
if (isFF == true) {
_local8(_local19[0][_local13], _local19[1], _local19[2], 0, null, 0, {skipLevel:0});
if (_local10 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(((((("\n-" + _sID()) + " FF(simple syntax)\ttargets:[") + _local19[0][_local13]) + "]\tprops:[") + _local19[1]) + "]");
}
} else {
var _local22 = _local8(_local19[0][_local13], _local19[1], _local19[2], _local19[3], _local19[4], _local19[5], _local21);
if (_local22.length > 0) {
_aTweens.push({targ:_local19[0][_local13], props:_local22, targZID:_local19[0][_local13].__zigoID__});
_local19[0][_local13].addListener(this);
for (var _local14 in _local22) {
if (_local11.indexOf(_local22[_local14] + ",") == -1) {
_local11 = _local11 + (_local22[_local14] + ",");
}
}
}
if (_local10 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(((((("\n-" + _sID()) + " TWEEN(simple syntax)\ttargets:[") + _local19[0][_local13]) + "]\tprops tweened:[") + _local22.toString()) + "]");
}
}
}
if ((isFF == false) && ((_local20 == _local11) || (_local11 == ""))) {
_local12++;
}
}
var _local23 = defaultScope;
var _local24 = [];
var _local25 = ((_local18.target == undefined) ? (targs) : (_local18.target));
var _local26 = [];
var _local27 = false;
for (var _local13 in _local25) {
var _local28 = _local25[_local13];
_local26 = _local26.concat(((_local28 instanceof Function) ? (_local28.apply(_local23)) : (_local28)));
}
for (var _local13 in _local18.addTarget) {
var _local29 = _local18.addTarget[_local13];
_local26 = _local26.concat(((_local29 instanceof Function) ? (_local29.apply(_local23)) : (_local29)));
}
for (var _local13 in _local26) {
var _local30 = _local26[_local13];
if (_local30 != null) {
var _local31 = false;
for (var _local14 in _local24) {
if (_local24[_local14] == _local30) {
_local31 = true;
break;
}
}
if (_local31 == false) {
_local24.unshift(_local30);
}
} else {
_local27 = true;
}
}
var _local32 = (_local18._doTimer == true) && ((_local24.length == 0) && (isFF == false));
if ((_local27 == true) || ((_local24.length == 0) && (_local18._doTimer != true))) {
_local12++;
}
if (_local16 == true) {
for (var _local13 in _local24) {
if (_nPlaying < 2) {
return(null);
}
var _local33 = _local24[_local13];
var _local34 = [];
var _local35 = [];
if (setStart == true) {
for (var q in _local18.oEP) {
_global.com.mosesSupposes.fuse.FuseFMP.getFilterProp(_local33, q, true);
}
}
for (var p in _local18.oSP) {
var _local36 = _local18.oSP[p];
if (_local36 instanceof Function) {
_local36 = _local36.apply(_local23);
}
if ((_local36 === true) || (_local36 === false)) {
_local33[p] = _local36;
if (_local18.oAFV[p] == true) {
for (var _local15 in _local18.oEP[p]) {
if (_local18.oEP[p][_local15].targ == _local33) {
_local18.oEP[p].splice(Number(_local15), 1);
}
}
_local18.oEP[p].push({targ:_local33, val:"IGNORE", _isAF:true});
}
continue;
}
if ((_local18.oAFV[p] == true) && ((!((p == "_colorReset") && (_local36 == 100))) && (!((p == "_tintPercent") && (_local36 == 0))))) {
if ((p == "_tint") || (p == "_colorTransform")) {
var _local37 = _ZigoEngine.getColorTransObj();
} else if ((String(com.mosesSupposes.fuse.FuseKitCommon._resetTo100()).indexOf(("|" + p) + "|") > -1) || ((p == "_fade") && (_local36 < 50))) {
var _local37 = 100;
} else if ((String(com.mosesSupposes.fuse.FuseKitCommon._resetTo0()).indexOf(("|" + p) + "|") > -1) || (p == "_fade")) {
var _local37 = 0;
} else {
var _local38 = _global.com.mosesSupposes.fuse.FuseFMP.getFilterProp(_local33, p, true);
if (_local38 != null) {
var _local37 = _local38;
} else {
var _local37 = ((_global.isNaN(_local33[p]) == false) ? _local33[p] : 0);
}
}
for (var _local15 in _local18.oEP[p]) {
if (_local18.oEP[p][_local15].targ == _local33) {
_local18.oEP[p].splice(Number(_local15), 1);
}
}
_local18.oEP[p].push({targ:_local33, val:_local37, _isAF:true});
}
if (typeof(_local36) == "object") {
var _local39 = ((_local36 instanceof Array) ? ([]) : ({}));
for (var _local15 in _local36) {
_local39[_local15] = ((_local36[_local15] instanceof Function) ? (Function(_local36[_local15]).apply(_local23)) : (_local36[_local15]));
}
_local36 = _local39;
}
_local34.push(p);
_local35.push(_local36);
}
if (_local35.length > 0) {
if (_local10 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output((((_sID() + " ") + _local33) + " SET STARTS: ") + [("[" + _local34) + "]", ("[" + _local35) + "]"]);
}
_local8(_local33, _local34, _local35, 0);
}
}
}
for ( ; setStart == true ; _local17++) {
}
var _local46 = "";
if (isFF == false) {
if (_local18.scope != undefined) {
_local23 = _local18.scope;
}
var _local41 = ((_local18.skipLevel instanceof Function) ? (_local18.skipLevel.apply(_local23)) : (_local18.skipLevel));
var _local47 = ((_local18.extra1 instanceof Function) ? (_local18.extra1.apply(_local23)) : (_local18.extra1));
var _local48 = ((_local18.extra2 instanceof Function) ? (_local18.extra2.apply(_local23)) : (_local18.extra2));
var _local49 = ((_local18.roundResults instanceof Function) ? (_local18.roundResults.apply(_local23)) : (_local18.roundResults));
var _local42 = {skipLevel:_local41, extra1:_local47, extra2:_local48, roundResults:_local49};
var _local43 = {skipLevel:_local41, extra1:_local47, extra2:_local48, roundResults:_local49};
if (_local18.cycles != undefined) {
var _local50 = ((_local18.cycles instanceof Function) ? (_local18.cycles.apply(_local23)) : (_local18.cycles));
if (((Number(_local50) == 0) || (String(_local50).toUpperCase() == "LOOP")) && (_local9 != undefined)) {
delete _local18.cycles;
if (_local10 > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("117", _sID());
}
} else {
_local42.cycles = (_local43.cycles = _local50);
}
}
if ((_local18.func != undefined) || ((_local18.startfunc != undefined) || (_local18.updfunc != undefined))) {
for (var _local13 in _local18) {
if (_local13.indexOf("func") > -1) {
_local43[_local13] = _local18[_local13];
} else if ((_local13 == "startscope") || ((_local13 == "updscope") || (_local13.indexOf("args") > -1))) {
_local43[_local13] = _local18[_local13];
}
}
if (_local23 != undefined) {
if ((_local43.func != undefined) && (_local43.scope == undefined)) {
_local43.scope = _local23;
}
if ((_local43.updfunc != undefined) && (_local43.updscope == undefined)) {
_local43.updscope = _local23;
}
if ((_local43.startfunc != undefined) && (_local43.startscope == undefined)) {
_local43.startscope = _local23;
}
}
}
for (var _local14 in _local43) {
_local46 = _local46 + (((_local14 + ":") + _local43[_local14]) + "|");
}
if (_local18.event != undefined) {
var _local40 = {scope:_local18.scope, e:_local18.event, ep:_local18.eventparams, skipLevel:_local41};
}
var _local44 = _local18.trigger === true;
var _local45;
if ((_local44 == false) && (_local18.trigger != undefined)) {
_local45 = ((_local18.trigger instanceof Function) ? (_local18.trigger.apply(_local23)) : (_local18.trigger));
if (typeof(_local45) == "string") {
_local45 = ((String(_local45).charAt(0) == "-") ? (-parseClock(String(_local45).slice(1))) : (parseClock(String(_local45))));
}
if (_global.isNaN(_local45) == true) {
_local45 = undefined;
}
}
}
var _local55 = false;
var _local56 = ((_local32 == false) ? (_local24) : ([0]));
var _local57 = -1;
for (var _local13 in _local56) {
if (_nPlaying < 2) {
return(null);
}
if (isFF == false) {
if (_local18.ease != null) {
var _local53 = _local18.ease;
if (_local53 instanceof Function) {
var _local58 = Function(_local53);
if (typeof(_local58(1, 1, 1, 1)) != "number") {
_local53 = _local58.apply(_local23);
}
}
}
if (_local53 == null) {
var _local53 = defaultEase;
}
var _local52 = ((_local18.seconds instanceof Function) ? (_local18.seconds.apply(_local23)) : (_local18.seconds));
if (_local52 != undefined) {
if (typeof(_local52) == "string") {
_local52 = parseClock(String(_local52));
}
if (_global.isNaN(_local52) == true) {
_local52 = _ZigoEngine.DURATION || 0;
}
}
if (_local52 == null) {
_local52 = defaultSeconds;
}
var _local51 = ((_local18.delay instanceof Function) ? (_local18.delay.apply(_local23)) : (_local18.delay));
if (typeof(_local51) == "string") {
_local51 = parseClock(String(_local51));
}
if ((_local51 == null) || (_global.isNaN(_local51) == true)) {
_local51 = 0;
}
if (_local32 == true) {
continue;
}
}
var _local59 = _local56[_local13];
var _local60 = [];
var _local61 = [];
var _local62 = 0;
var _local63 = -2;
for (var p in _local18.oEP) {
var _local64 = _local18.oEP[p];
if (_local64 instanceof Function) {
_local64 = _local64.apply(_local23);
}
if ((_local64 === true) || (_local64 === false)) {
if (_local54 == undefined) {
var _local54 = {};
}
_local54[p] = _local64;
_local62++;
continue;
}
if (typeof(_local64) == "object") {
if (_local64[0]._isAF == true) {
for (var _local15 in _local64) {
if (_local64[_local15].targ == _local59) {
_local64 = _local64[_local15].val;
break;
}
}
} else {
var _local65 = ((_local64 instanceof Array) ? ([]) : ({}));
for (var _local15 in _local64) {
_local65[_local15] = ((_local64[_local15] instanceof Function) ? (Function(_local64[_local15]).apply(_local23)) : (_local64[_local15]));
}
_local64 = _local65;
}
}
if (_local64 != "IGNORE") {
if (p == "_bezier_") {
_local63 = _local60.length;
} else if ((_local63 == -2) && ((p == "controlX") || (p == "controlY"))) {
_local63 = -1;
}
_local60.push(p);
_local61.push(_local64);
}
}
if (_local61.length > 0) {
if (_local63 > -2) {
if (_local63 == -1) {
_local63 = _local60.length;
}
_local60[_local63] = "_bezier_";
if (typeof(_local61[_local63]) != "object") {
_local61[_local63] = {};
}
var _local66 = _local61[_local63];
for (var _local14 in _local60) {
if ("|x|y|_x|_y|controlX|controlY|".indexOf(("|" + _local60[_local14]) + "|") > -1) {
if (_local60[_local14].charAt(0) == "_") {
_local60[_local14] = _local60[_local14].slice(-1);
}
if (typeof(_local66[_local60[_local14]]) == "number") {
if ((_local10 > 0) && ((_local57 == -1) || (_local57 == _local13))) {
com.mosesSupposes.fuse.FuseKitCommon.error("115", _sID(), _local60[_local14]);
_local57 = Number(_local13);
}
} else {
_local66[_local60[_local14]] = _local61[_local14];
}
_local60.splice(Number(_local14), 1);
_local61.splice(Number(_local14), 1);
}
}
}
if (isFF == true) {
if (_local10 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(((((("\n-" + _sID()) + " FF\ttargets:[") + _local59) + "]\tprops:[") + _local60.toString()) + "]");
}
_local8(_local59, _local60, _local61, 0, null, 0, {skipLevel:0});
continue;
}
var _local67 = {caught:false, onTweenEnd:function (evto) {
this.caught = true;
}};
_local59.addListener(_local67);
var _local68 = _local8(_local59, _local60, _local61, _local52, _local53, _local51, _local43);
_local59.removeListener(_local67);
if (_local68.length == 0) {
if (_local67.caught == true) {
var _local43 = _local42;
}
} else {
if (_local68.length > 0) {
var _local69 = {targ:_local59, props:_local68, bools:_local54, targZID:_local59.__zigoID__};
if (_local55 == false) {
var _local43 = _local42;
_local69.event = _local40;
var _local54;
var _local40 = _local54;
_local69.trigger = _local44;
}
_aTweens.push(_local69);
_local59.addListener(this);
_local55 = true;
for (var _local14 in _local68) {
if (_local11.indexOf(_local68[_local14] + ",") == -1) {
_local11 = _local11 + (_local68[_local14] + ",");
}
}
}
if (_local10 == 3) {
var _local70 = _local60.toString();
if (_local68.length > _local60.length) {
_local70 = _local70 + (("\n\t[NO-CHANGE PROPS DISCARDED (disregard this for double props like _scale). KEPT:" + _local68.toString()) + "]");
}
var _local71 = "";
for (var _local14 in _local61) {
_local71 = (((typeof(_local61[_local14]) == "string") ? (("\"" + _local61[_local14]) + "\"") : (_local61[_local14])) + ", ") + _local71;
}
(com.mosesSupposes.fuse.FuseKitCommon.output((("\n-" + _sID()) + " TWEEN:\n") + [("\t[getTimer():" + getTimer()) + "] ", "targ: " + _local59, "props: " + _local70, "endVals: " + _local71, "time: " + ((_local52 == undefined) ? (_ZigoEngine.DURATION) : (_local52)), "easing: " + ((_local53 == undefined) ? (_ZigoEngine.EASING) : (_local53)), "delay: " + ((_local51 == undefined) ? 0 : (_local51)), "callbacks: " + ((_local46 == "") ? "(none)" : (_local46))].join("\n\t")));// not popped
}
}
_local67 = undefined;
}
}
if ((_global.isNaN(_local52) == true) || (_local18.seconds == null)) {
var _local52 = 0;
}
var _local72 = _local51 + _local52;
if (_local45 != undefined) {
if (_local45 < 0) {
var _local45 = _local45 + _local72;
}
if ((_local45 > 0) && ((_local72 == 0) || (_local45 < _local72))) {
if (_local72 == 0) {
if (_local10 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(((((((((_sID() + " graft a timed trigger (") + _local45) + " sec). [has callback:") + (_local43 != _local42)) + ", has event:") + (_local40 != undefined)) + ", has booleans:") + (_local54 != undefined)) + "]");
}
doTimerTween(null, _local45, 0, true, _local54, _local43, _local40);
_local55 = true;
} else {
if (_local10 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(((_sID() + " graft a timed trigger (") + _local45) + " sec).");
}
doTimerTween(null, _local45, 0, true);
}
} else if (_local10 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(((((_sID() + " timed trigger discarded: out of range. [") + _local45) + "/") + _local72) + "]");
}
}
if ((_local55 == false) && ((_local43 != _local42) || ((_local40 != undefined) || (_local54 != undefined)))) {
if ((_local41 == 0) && (_local72 > 0)) {
if (_local10 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(((((((((_sID() + " no props tweened - graft a delay (") + _local72) + " sec). [has callback:") + (_local43 != _local42)) + ", has event:") + (_local40 != undefined)) + ", has booleans:") + (_local54 != undefined)) + "]");
}
doTimerTween(_local24, _local52, _local51, _local44, _local54, _local43, _local40);
} else {
if (_local10 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(((((((_sID() + " no props tweened, executing nontween items. [has callback:") + (_local43 != _local42)) + ", has event:") + (_local40 != undefined)) + ", has booleans:") + (_local54 != undefined)) + "]");
}
for (var _local13 in _local24) {
for (var _local14 in _local54) {
_local24[_local13][_local14] = _local54[_local14];
}
}
if (_local41 < 2) {
if (_local43 != undefined) {
fireEvents(_local43, _local23, _local10, _local24);
}
if (_local40 != undefined) {
fireEvents(_local40, _local23, _local10);
}
}
}
}
}
if ((_local12 > 0) && (_local10 > 0)) {
if ((_local12 == _aProfiles.length) && (_local11 == "")) {
com.mosesSupposes.fuse.FuseKitCommon.error("118", _sID(), setStart);
} else {
com.mosesSupposes.fuse.FuseKitCommon.error("119", _sID(), _local12, _local16);
}
}
tba = undefined;
_oTwBeingAdded = undefined;
return(((_local11 == "") ? null : (_local11.slice(0, -1))));
}
function doTimerTween(actualTargets, duration, delay, trigger, booleans, callback, event) {
var _local9 = {__TweenedDelay:0};
_ZigoEngine.initializeTargets(_local9);
_aTweens.push({targ:_local9, props:["__TweenedDelay"], trigger:trigger, bools:booleans, event:event, actualTargs:actualTargets, targZID:_local9.__zigoID__});
var _local10 = _ZigoEngine.doTween(_local9, "__TweenedDelay", 1, duration, null, delay, callback) == null;
if (_local10 == true) {
onTweenEnd({target:_local9, props:["__TweenedDelay"]});
} else {
_local9.addListener(this);
}
}
function onTweenEnd(o, doAutoStop) {
if (_nPlaying < 1) {
return(undefined);
}
var _local4 = _global.com.mosesSupposes.fuse.Fuse;
var _local5 = ((_local4 != undefined) ? (_local4.OUTPUT_LEVEL) : (_ZigoEngine.OUTPUT_LEVEL));
var _local6 = ((!(o.__zigoID__ === undefined)) ? (o.__zigoID__) : (o.target.__zigoID__));
for (var i in _aTweens) {
var _local7 = _aTweens[i];
if (_local7.targZID == _local6) {
for (var j in o.props) {
var _local8 = _local7.props;
for (var k in _local8) {
var _local9 = _local8[k];
if (_local9 == o.props[j]) {
_local8.splice(Number(k), 1);
if (doAutoStop == true) {
var _local10 = _local4.getInstance(_nFuseID);
var _local11 = (_bTrigger == true) && ((o.during == "add") && ((_local10[_local10.currentIndex]._oTwBeingAdded[_local6] === true) && (_local10.state == "playing")));
if (_local11 == false) {
_local7.targ.removeListener(this);
for (i in _aTweens) {
if (_aTweens[i].targZID == _local6) {
for (j in o.props) {
for (k in _aTweens[i].props) {
if (_aTweens[i].props[k] == o.props[j]) {
_aTweens[i].props.splice(Number(k), 1);
}
}
}
if (_aTweens[i].props.length == 0) {
_aTweens.splice(Number(i), 1);
}
}
}
if (_local5 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(_sID() + " triggering auto-stop due to interruption");
}
if ((_local10.autoClear == true) || ((!(_local10.autoClear === false)) && (_local4.AUTOCLEAR == true))) {
dispatchRequest("destroy");
} else {
dispatchRequest("stop");
}
return(undefined);
}
if (_local5 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(((("note -" + _sID()) + " interrupted one of its own properties \"") + _local9) + "\". (Autostop not triggered.)");
}
}
if ((_nPlaying == 2) && (_local9 != "__TweenedDelay")) {
if (_local5 > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("120", _sID(), _local9);
}
}
if (_local8.length == 0) {
if (_local7.event != undefined) {
fireEvents(_local7.event, null, _local5);
}
if (_local9 == "__TweenedDelay") {
_ZigoEngine.deinitializeTargets(_local7.targ);
delete _local7.targ;
for (var m in _local7.bools) {
for (var t in _local7.actualTargs) {
_local7.actualTargs[t][m] = _local7.bools[m];
}
}
} else {
var _local12 = false;
for (var m in _local7.bools) {
_local7.targ[m] = _local7.bools[m];
}
for (var l in _aTweens) {
if ((l != i) && (_aTweens[l].targ == _local7.targ)) {
_local12 = true;
}
}
if (_local12 == false) {
_local7.targ.removeListener(this);
}
}
if (_local7.trigger == true) {
if ((_bTrigger == false) && ((o.isResume != true) && (_aTweens.length > 1))) {
_bTrigger = true;
if (_local5 == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(_sID() + " trigger fired!");
}
var breakChainInt;
breakChainInt = _global.setInterval(function (fi) {
_global.clearInterval(breakChainInt);
fi.dispatchRequest("advance", [false, false, false]);
}, 1, this);
}
}
_aTweens.splice(Number(i), 1);
}
}
}
}
}
}
if ((_aTweens.length == 0) && ((_nPlaying == 1) && (o.isResume != true))) {
complete(_local5);
}
}
function onTweenInterrupt(o) {
if (_nPlaying == -1) {
return(undefined);
}
var _local3 = _global.com.mosesSupposes.fuse.Fuse;
var _local4 = _local3.getInstance(_nFuseID);
var _local5 = (_local4.autoStop == true) || ((!(_local4.autoStop === false)) && (_local3.AUTOSTOP == true));
var _local6 = o.__zigoID__;
var _local7 = ((_local3 != undefined) ? (_local3.OUTPUT_LEVEL) : (_ZigoEngine.OUTPUT_LEVEL));
if ((_local5 == true) || ((!(_local5 === false)) && (_local3.AUTOSTOP == true))) {
onTweenEnd(o, true);
return(undefined);
}
if (typeof(o.target) != "string") {
onTweenEnd(o);
return(undefined);
}
for (var i in _aTweens) {
if (_aTweens[i].targZID == _local6) {
_aTweens.splice(Number(i), 1);
}
}
if ((_aTweens.length == 0) && (_nPlaying == 1)) {
complete(_local7);
}
}
function complete(outputLevel) {
if (outputLevel == 3) {
com.mosesSupposes.fuse.FuseKitCommon.output(_sID() + " complete.");
}
var breakChainInt;
breakChainInt = _global.setInterval(function (fi, trigger) {
_global.clearInterval(breakChainInt);
var _local4 = fi._nPlaying;
if (trigger != true) {
if (_local4 < 1) {
return(undefined);
}
}
fi.stop();
if (_local4 > 0) {
fi.dispatchRequest("advance", [trigger, false, false]);
}
}, 1, this, _bTrigger);
}
function parseClock(str) {
if (str.indexOf(":") != 2) {
com.mosesSupposes.fuse.FuseKitCommon.error("121");
return(_ZigoEngine.DURATION || 0);
}
var _local3 = 0;
var _local4 = str.split(":");
_local4.reverse();
if ((String(_local4[0]).length == 2) && (_global.isNaN(_local5 = Math.abs(Number(_local4[0]))) == false)) {
_local3 = _local3 + (_local5 / 100);
}
if ((String(_local4[1]).length == 2) && ((_global.isNaN(_local5) == false) && ((_local5 = Math.abs(Number(_local4[1]))) < 60))) {
_local3 = _local3 + _local5;
}
if ((String(_local4[2]).length == 2) && ((_global.isNaN(_local5) == false) && ((_local5 = Math.abs(Number(_local4[2]))) < 60))) {
_local3 = _local3 + (_local5 * 60);
}
if ((String(_local4[3]).length == 2) && ((_global.isNaN(_local5) == false) && ((_local5 = Math.abs(Number(_local4[3]))) < 24))) {
_local3 = _local3 + (_local5 * 3600);
}
return(_local3);
}
function fireEvents(o, scope, outputLevel, targets) {
if (o.scope == undefined) {
o.scope = scope;
}
if (o.e == undefined) {
var _local6 = com.mosesSupposes.fuse.FuseKitCommon.parseCallback(o, targets, outputLevel, false);
if (_local6.start.f != null) {
_local6.start.f.apply(_local6.start.s, _local6.start.a);
}
if (_local6.upd.f != null) {
_local6.upd.f.apply(_local6.upd.s, _local6.upd.a);
}
if (_local6.end.f != null) {
_local6.end.f.apply(_local6.end.s, _local6.end.a);
}
} else {
var _local7 = ((o.e instanceof Function) ? (String(o.e.apply(scope))) : (String(o.e)));
if ((_local7 != "undefined") && (_local7.length > 0)) {
if (String(com.mosesSupposes.fuse.FuseKitCommon._fuseEvents()).indexOf(("|" + _local7) + "|") > -1) {
if (outputLevel > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("122", _local7);
}
} else {
var _local8 = _global.com.mosesSupposes.fuse.Fuse.getInstance(_nFuseID);
var _local9 = ((o.ep instanceof Function) ? (o.ep.apply(scope)) : (o.ep));
if ((_local9 == null) || (typeof(_local9) != "object")) {
_local9 = {};
}
_local9.target = _local8;
_local9.type = _local7;
_local8.dispatchEvent.call(_local8, _local9);
}
} else if (outputLevel > 0) {
com.mosesSupposes.fuse.FuseKitCommon.error("123", _sID());
}
}
}
static var registryKey = "fuseItem";
static var ADD_UNDERSCORES = true;
var _nPlaying = -1;
var _bStartSet = false;
var _bTrigger = false;
}
Symbol 20664 MovieClip [__Packages.org.as2lib.data.holder.Map] Frame 0
class org.as2lib.data.holder.Map
{
function Map () {
}
}
Symbol 20665 MovieClip [__Packages.com.mindcandy.data.holder.map.HashMap] Frame 0
class com.mindcandy.data.holder.map.HashMap implements org.as2lib.data.holder.Map
{
var hashMap;
function HashMap (source) {
hashMap = new Object();
populate(source);
}
function populate(source) {
if (source) {
for (var i in source) {
put(i, source[i]);
}
}
}
function containsKey(key) {
return(hashMap[key] != undefined);
}
function containsValue(value) {
return(findKey(value) != undefined);
}
function getKeys(Void) {
var _local3 = new Array();
for (var key in hashMap) {
_local3.push(key);
}
_local3.reverse();
return(_local3);
}
function getValues(Void) {
var _local3 = new Array();
for (var key in hashMap) {
_local3.push(hashMap[key]);
}
_local3.reverse();
return(_local3);
}
function get(key) {
return(hashMap[key]);
}
function put(key, value) {
hashMap[key] = value;
return(value);
}
function putAll(map) {
var _local3 = map.getValues();
var _local4 = map.getKeys();
var _local5 = _local4.length;
var _local6 = 0;
for ( ; _local6 < _local5 ; _local6 = _local6 - -1) {
put(_local4[_local6], _local3[_local6]);
}
}
function clear(Void) {
hashMap = new Object();
}
function remove(key) {
var _local3 = hashMap[key];
delete hashMap[key];
return(_local3);
}
function iterator(Void) {
return(new org.as2lib.data.holder.map.ValueMapIterator(this));
}
function valueIterator(Void) {
return(iterator());
}
function keyIterator(Void) {
return(new org.as2lib.data.holder.map.KeyMapIterator(this));
}
function size(Void) {
return(getKeys().length);
}
function isEmpty(Void) {
return(size() < 1);
}
function findKey(value) {
var _local3 = getValues();
var _local4 = _local3.length;
_local4--;
while ((!(_local3[_local4] === value)) && (_local4 >= -1)) {
}
return(getKeys()[_local4]);
}
function toString() {
return(hashMap.toString());
}
}
Symbol 20666 MovieClip [__Packages.com.mindcandy.diablo.shared.model.MoshlingDetails] Frame 0
class com.mindcandy.diablo.shared.model.MoshlingDetails
{
var description, habitat, likes, dislikes, species, set, rarity, rank;
function MoshlingDetails () {
}
function getDescription() {
return(description);
}
function setDescription(description) {
this.description = description;
}
function getHabitat() {
return(habitat);
}
function setHabitat(habitat) {
this.habitat = habitat;
}
function getLikes() {
return(likes);
}
function setLikes(likes) {
this.likes = likes;
}
function getDislikes() {
return(dislikes);
}
function setDislikes(dislikes) {
this.dislikes = dislikes;
}
function getSpecies() {
return(species);
}
function setSpecies(species) {
this.species = species;
}
function getSet() {
return(set);
}
function setSet(set) {
this.set = set;
}
function getRarity() {
return(rarity);
}
function setRarity(rarity) {
this.rarity = rarity;
}
function toString() {
return(((((((((((((("[description: " + description) + " likes: ") + likes) + " dislikes: ") + dislikes) + " species: ") + species) + " set: ") + set) + " rarity: ") + rarity) + " rank: ") + rank) + "]");
}
function setRank(rank) {
this.rank = rank;
}
function getRank() {
return(rank);
}
}
Symbol 20667 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.PuzzleThumb] Frame 0
class com.mindcandy.diablo.puzzle.model.PuzzleThumb implements com.mindcandy.diablo.shared.content.graphics.HasGraphicalDetails, com.mindcandy.diablo.shared.content.HasAssetDetails
{
var assetDetails, imageDetails;
function PuzzleThumb (id, url) {
assetDetails = new com.mindcandy.diablo.shared.content.AssetDetails(id.toString(), id, url, url.substr(-3));
imageDetails = new com.mindcandy.diablo.shared.content.graphics.GraphicalDetails();
}
function getAssetDetails() {
return(assetDetails);
}
function getGraphicalDetails() {
return(imageDetails);
}
}
Symbol 20668 MovieClip [__Packages.com.mindcandy.diablo.shared.model.inventory.ChangeMap] Frame 0
class com.mindcandy.diablo.shared.model.inventory.ChangeMap extends com.mindcandy.data.holder.map.HashMap implements org.as2lib.data.holder.Map
{
var type, dirty, iterator, hashMap;
function ChangeMap (type) {
super();
this.type = type;
dirty = false;
}
function resetChangeMap() {
var _local2 = iterator();
while (_local2.hasNext()) {
com.mindcandy.diablo.shared.model.inventory.AssetChangeDetails(_local2.next()).destroy();
}
hashMap = new Object();
dirty = false;
}
function isDirty() {
return(dirty);
}
function put(key, value) {
dirty = true;
return(super.put(key, value));
}
function getChangesXML() {
var _local2 = new XML(("<" + type) + "/>");
var _local3 = iterator();
while (_local3.hasNext()) {
var _local4 = com.mindcandy.diablo.shared.model.inventory.AssetChangeDetails(_local3.next());
_local2.firstChild.appendChild(_local4.toXML());
}
return(_local2.toString());
}
}
Symbol 20669 MovieClip [__Packages.com.mindcandy.diablo.shared.model.Moshling] Frame 0
class com.mindcandy.diablo.shared.model.Moshling
{
var id, name, details, asset;
function Moshling (id, name) {
this.id = id;
this.name = name;
}
function toString() {
return(((((("[id: " + id) + " name: ") + name) + " details: ") + details) + "]");
}
function getName() {
return(name);
}
function getId() {
return(id);
}
function setId(id) {
this.id = id;
}
function getDetails() {
return(details);
}
function setDetails(details) {
this.details = details;
}
function hasDetails() {
return(details != undefined);
}
function setName(name) {
this.name = name;
}
function getAsset() {
return(asset);
}
function setAsset(asset) {
this.asset = asset;
}
}
Symbol 20670 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.MarkPuzzle] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.MarkPuzzle extends com.mindcandy.diablo.puzzle.controller.command.PuzzleServiceCommand
{
var read, getCurrentSession, window, fireEvent;
function MarkPuzzle () {
super();
}
function execute(args, context, listener, sync) {
read(context);
var _local6 = getCurrentSession().getPuzzleInPlay();
var _local7 = com.mindcandy.diablo.puzzle.model.Answer(context.selectedAnswer);
var _local8 = _local6.mark(_local7);
var _local9 = (_local8 ? "correct result" : "incorrect result");
window.gamePanel.answerPanel.deactivateButtons();
window.gamePanel.showChecking();
window.sound.playEffect(com.mindcandy.diablo.puzzle.view.GhettoBlaster.CHECKING_FX);
getCurrentSession().markPuzzleInPlay(_local8);
fireEvent(_local9, com.mindcandy.diablo.shared.events.EventType.PUZZLEPALACE, {practice:false});
fireEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.PUZZLE_MARKED, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.MarkPuzzle";
}
Symbol 20671 MovieClip [__Packages.com.mindcandy.diablo.puzzle.service.PuzzleSessionService] Frame 0
class com.mindcandy.diablo.puzzle.service.PuzzleSessionService extends com.mindcandy.diablo.shared.service.WebService
{
var environment;
function PuzzleSessionService () {
super();
}
function sendRequest(listener, sessionId) {
super.sendRequest(buildRequestURL(sessionId), {}, false, listener, null);
}
function getParser() {
return(new com.mindcandy.diablo.puzzle.xml.PuzzleSessionParser(false));
}
function buildRequestURL(sessionId) {
var _local3 = environment.getProperty("minigame.puzzlechallenge.url.puzzles") + sessionId.toString();
trace("d -- PuzzleSessionService URL: " + _local3);
return(_local3);
}
}
Symbol 20672 MovieClip [__Packages.com.mindcandy.diablo.shared.model.GameDetails] Frame 0
class com.mindcandy.diablo.shared.model.GameDetails extends com.mindcandy.diablo.shared.model.Entity
{
var getNumericProp, getProp, setProp;
function GameDetails (happiness, health, level, rocks, rarity, description, type) {
super();
setHappiness(happiness);
setHealth(health);
setLevel(level);
setRocks(rocks);
setRarity(rarity);
setDescription(description);
setType(type);
}
function getHappiness() {
return(getNumericProp(HAPPINESS));
}
function getHealth() {
return(getNumericProp(HEALTH));
}
function getLevel() {
return(getNumericProp(LEVEL));
}
function getRocks() {
return(getNumericProp(ROCKS));
}
function getDescription() {
return(String(getProp(DESCRIPTION)));
}
function getType() {
return(String(getProp(TYPE)));
}
function getRarity() {
return(getNumericProp(RARITY));
}
function setHappiness(happiness) {
setProp(HAPPINESS, happiness);
}
function setHealth(health) {
setProp(HEALTH, health);
}
function setLevel(level) {
setProp(LEVEL, level);
}
function setRocks(rocks) {
setProp(ROCKS, rocks);
}
function setDescription(description) {
setProp(DESCRIPTION, description);
}
function setType(type) {
setProp(TYPE, type);
}
function setRarity(rarity) {
setProp(RARITY, rarity);
}
static var HAPPINESS = "happiness";
static var HEALTH = "health";
static var LEVEL = "level";
static var ROCKS = "rocks";
static var RARITY = "rarity";
static var DESCRIPTION = "description";
static var TYPE = "type";
}
Symbol 20673 MovieClip [__Packages.com.mindcandy.diablo.shared.model.NPC] Frame 0
class com.mindcandy.diablo.shared.model.NPC implements com.mindcandy.diablo.shared.content.graphics.HasGraphicalDetails, com.mindcandy.diablo.shared.content.HasAssetDetails
{
var key, assetDetails, graphicsInfo, behaviourMap, defaultbehaviour;
function NPC (key, structureId, path, defaultbehaviour, x, y) {
this.key = key;
assetDetails = new com.mindcandy.diablo.shared.content.AssetDetails(key, -1, path, "swf");
graphicsInfo = new com.mindcandy.diablo.shared.content.graphics.GraphicalDetails(x, y, 1, structureId);
behaviourMap = new com.mindcandy.data.holder.map.HashMap();
}
function getKey() {
return(key);
}
function addBehaviour(target) {
behaviourMap.put(target.getKey(), target);
}
function getBehaviour(key) {
return(com.mindcandy.diablo.shared.model.NPCBehaviour(behaviourMap.get(key)));
}
function getBehaviours() {
return(behaviourMap.iterator());
}
function getAssetDetails() {
return(assetDetails);
}
function getDefaultBehaviour() {
return(defaultbehaviour);
}
function getGraphicalDetails() {
return(graphicsInfo);
}
function toXML() {
return(null);
}
}
Symbol 20674 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.BaseSoundAsset] Frame 0
class com.mindcandy.diablo.shared.content.sound.BaseSoundAsset implements com.mindcandy.diablo.shared.content.sound.SoundAsset
{
var sound, assetDetails, soundDetails, listener, isLoop, autoPlay, loaded, playing, paused, soundPosition, playbackProgressInterval, parentMap, isBeingDestroyed, loadProgressID;
function BaseSoundAsset (assetDetails, soundDetails, holderClip) {
sound = new Sound(holderClip);
this.assetDetails = assetDetails;
this.soundDetails = soundDetails;
listener = null;
isLoop = false;
autoPlay = false;
loaded = false;
playing = false;
paused = false;
}
function startPlayback(looped) {
if (loaded && (sound.duration > 0)) {
var _local3 = (looped ? 1000 : 1);
isLoop = looped;
setPlaying(true);
paused = false;
var _local4 = com.mindcandy.utils.delegate.Delegate.create(this, handlePlaybackComplete);
sound.onSoundComplete = _local4;
sound.start(0, _local3);
} else {
listener.notifyError(this, "Cannot play sound unless it's been loaded.");
}
}
function stopPlayback() {
if (playing) {
sound.stop();
soundPosition = 0;
setPlaying(false);
}
}
function pausePlayback() {
soundPosition = sound.position / MILLISECONDS;
sound.stop();
setPlaying(false);
paused = true;
}
function temporarilyPausePlayback() {
pausePlayback();
paused = false;
}
function resumePlayback() {
var _local2 = soundPosition;
sound.start(_local2);
setPlaying(true);
paused = false;
}
function destroy() {
stopPlayback();
_global.clearInterval(playbackProgressInterval);
delete sound;
sound = null;
}
function getSoundDetails() {
return(soundDetails);
}
function getAssetMap(Void) {
return(parentMap);
}
function setAssetMap(assetMap) {
parentMap = assetMap;
}
function getName() {
return(getDetails().getId());
}
function getDetails() {
return(assetDetails);
}
function getTarget() {
return(sound);
}
function isPlaying() {
return(playing);
}
function isLoaded() {
return(loaded);
}
function isPaused() {
return(paused);
}
function setPlaying(isPlaying) {
playing = isPlaying;
if (isPlaying) {
playbackProgressInterval = _global.setInterval(this, "updateSoundProgress", 10);
} else {
_global.clearInterval(playbackProgressInterval);
}
}
function getVolume() {
return(sound.getVolume());
}
function setVolume(level) {
if (!isBeingDestroyed) {
sound.setVolume(level);
}
}
function setBalance(value) {
if (isLoaded) {
sound.setPan(value);
}
}
function getBalance() {
return(sound.getPan());
}
function getDuration() {
return(sound.duration);
}
function setPosition(seconds) {
soundPosition = ((seconds != undefined) ? (seconds) : (sound.position / MILLISECONDS));
}
function getPosition() {
return(((soundPosition == undefined) ? 0 : (soundPosition)));
}
function getElapsedTime() {
return(Math.ceil(sound.position / MILLISECONDS));
}
function getRemainingTime() {
return(sound.duration - sound.position);
}
function getPercentLoaded() {
return((isLoaded ? 100 : (calculatePercentLoaded())));
}
function getPercentPlayed() {
return(calculatePercentPlayed());
}
function setLoaded(success) {
if (success) {
handleLoadCompleted();
} else {
handleLoadError();
}
}
function setListener(listener) {
this.listener = listener;
}
function calculatePercentLoaded() {
var _local2 = Math.round((sound.getBytesLoaded() / sound.getBytesTotal()) * 100);
return(((_global.isNaN(_local2) || ((_local2 < 0) || (_local2 > 99))) ? 0 : (_local2)));
}
function calculatePercentPlayed() {
var _local2 = Math.round((sound.position / sound.duration) * 100);
return(((_global.isNaN(_local2) || ((_local2 < 0) || (_local2 > 99))) ? 0 : (_local2)));
}
function handlePlaybackComplete() {
playing = false;
listener.notifyComplete(this);
}
function handleLoadCompleted() {
_global.clearInterval(loadProgressID);
loaded = true;
if (autoPlay) {
startPlayback(false);
}
}
function handleLoadError() {
_global.clearInterval(loadProgressID);
loaded = false;
trace("e Failed to load sound file - " + assetDetails.getPath());
}
function updateSoundProgress() {
listener.notifyProgress(this);
}
static var MILLISECONDS = 1000;
static var SECONDS = 60;
}
Symbol 20675 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.external.LinkedSoundAsset] Frame 0
class com.mindcandy.diablo.shared.content.sound.external.LinkedSoundAsset extends com.mindcandy.diablo.shared.content.sound.BaseSoundAsset
{
var assetDetails, sound, loaded;
function LinkedSoundAsset (soundDetails, holderClip) {
super(soundDetails.getAssetDetails(), soundDetails, holderClip);
assetDetails = soundDetails.getAssetDetails();
sound.attachSound(assetDetails.getPath());
loaded = true;
}
}
Symbol 20676 MovieClip [__Packages.com.mindcandy.diablo.shared.model.ServiceResponse] Frame 0
class com.mindcandy.diablo.shared.model.ServiceResponse
{
var responseCode, responseMessage, data, service;
function ServiceResponse (code, message) {
responseCode = code;
responseMessage = message;
}
function getResponseMessage() {
return(responseMessage);
}
function setResponseMessage(message) {
responseMessage = message;
}
function getResponseCode() {
return(responseCode);
}
function setResponseCode(code) {
responseCode = code;
}
function getData() {
return(data);
}
function setData(data) {
this.data = data;
}
function isSuccess() {
trace("Response code is " + responseCode);
return(responseCode == 0);
}
function toString() {
return((((("w Service Response >> Code: " + responseCode) + ", Message: ") + responseMessage) + ", Data: ") + data);
}
function getService() {
return(service);
}
function setService(service) {
this.service = service;
}
}
Symbol 20677 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.SoundLibraryBuilder] Frame 0
class com.mindcandy.diablo.shared.content.sound.SoundLibraryBuilder extends com.mindcandy.diablo.shared.content.BaseAssetMapBuilder
{
function SoundLibraryBuilder (holderClip) {
super(new com.mindcandy.diablo.shared.content.sound.SoundLibrary(holderClip));
}
}
Symbol 20678 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.DisplayResult] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.DisplayResult extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand implements com.mindcandy.diablo.shared.view.animation.AnimationComplete
{
var read, getCurrentSession, monster, window, fireEvent;
function DisplayResult () {
super();
}
function execute(args, context, listener, sync) {
read(context);
var _local6 = (getCurrentSession().getLastMarkedPuzzle().isCorrect() ? (com.mindcandy.diablo.puzzle.model.MonsterMoodType.HAPPY) : (com.mindcandy.diablo.puzzle.model.MonsterMoodType.SAD));
monster.react(_local6);
window.showResult(getCurrentSession().getLastMarkedPuzzle(), this);
}
function animFinished(animationDetails) {
fireEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.RESULT_SHOWN, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.DisplayResult";
}
Symbol 20679 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.CountdownPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.CountdownPanel extends com.mindcandy.diablo.puzzle.view.panel.LinkedPanel
{
var countdown, target;
function CountdownPanel () {
super(LINKAGE_ID);
}
function playIntro(listener) {
countdown.start(listener);
}
function initHandlers() {
target.gotoAndStop(1);
countdown = new com.mindcandy.diablo.shared.view.animation.FrameAnimation(target, 0);
}
function clearHandlers() {
countdown.destroy();
}
static var LINKAGE_ID = "lnkCountDownAnim";
}
Symbol 20680 MovieClip [__Packages.com.mindcandy.diablo.shared.view.dialogues.ErrorBox] Frame 0
class com.mindcandy.diablo.shared.view.dialogues.ErrorBox extends com.mindcandy.diablo.shared.view.dialogues.BaseBubble
{
var allowContinue, listener, title, message, dialogueClip, bubble, init, place, okayButton, pop;
function ErrorBox (hostPanel, allowContinue, listener) {
super(hostPanel, null, false, false, 0);
this.allowContinue = allowContinue;
this.listener = listener;
}
function create(title, message, location) {
this.title = title;
this.message = message;
dialogueClip = bubble.attachMovie("lnkErrorBox", "lnkErrorBox", bubble.getNextHighestDepth());
render();
init();
dialogueClip._x = location.x;
dialogueClip._y = location.y;
}
function render() {
dialogueClip.txtHeader.text = title;
dialogueClip.txtBody.text = message;
enableHandlers();
place();
}
function enableHandlers() {
var _local2 = dialogueClip.btnOkay;
if (allowContinue) {
var _local3 = new com.mindcandy.diablo.shared.view.dialogues.mouse.ErrorBoxMouseHandler(_local2, listener);
okayButton = new com.mindcandy.diablo.shared.view.button.BaseButton(_local2, _local3);
okayButton.setActive(true);
} else {
_local2._visible = false;
}
}
function orientate() {
}
function close() {
pop();
}
}
Symbol 20681 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.PlayCountdown] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.PlayCountdown extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand implements com.mindcandy.diablo.shared.view.animation.AnimationComplete
{
var read, window, fireEvent;
function PlayCountdown () {
super();
}
function execute(args, context, listener, sync) {
read(context);
window.showCountdown(this);
}
function animFinished(animationDetails) {
fireEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.COUNTDOWN_COMPLETED, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.PlayCountdown";
}
Symbol 20682 MovieClip [__Packages.com.mindcandy.utils.movieclip.KillButton] Frame 0
class com.mindcandy.utils.movieclip.KillButton
{
function KillButton () {
}
static function Destroy(targetClip) {
delete targetClip.onPress;
delete targetClip.onRelease;
delete targetClip.onReleaseOutside;
delete targetClip.onRollOut;
delete targetClip.onRollOver;
delete targetClip.onDragOut;
delete targetClip.onDragOver;
}
}
Symbol 20683 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.ServiceController] Frame 0
class com.mindcandy.diablo.shared.controller.ServiceController extends com.mindcandy.diablo.shared.controller.BaseController implements com.mindcandy.diablo.shared.controller.ServiceResponseListener
{
var master;
function ServiceController () {
super();
}
function notifyResponse(response) {
if (response.isSuccess()) {
handleResponseSuccess(response);
} else {
handleResponseFailure(response);
}
}
function handleResponseSuccess(response) {
trace("w override success handler");
}
function handleResponseFailure(response) {
var _local3 = (getMessage(response.getResponseCode()) + newline) + response.getResponseMessage();
master.handleFailed(this, _local3);
trace("f controller init failed - " + response.getResponseMessage());
}
function getMessage(code) {
switch (code) {
case 1 :
return("User not authenticated:");
case 500 :
return("File not found:");
}
}
}
Symbol 20684 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.mixer.ChannelEventListener] Frame 0
class com.mindcandy.diablo.shared.content.sound.mixer.ChannelEventListener
{
function ChannelEventListener () {
}
}
Symbol 20685 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.DefaultSoundManager] Frame 0
class com.mindcandy.diablo.shared.content.sound.DefaultSoundManager extends com.mindcandy.diablo.shared.controller.ServiceController implements com.mindcandy.diablo.shared.content.sound.mixer.ChannelEventListener, com.mindcandy.diablo.shared.content.AssetDataListener, com.mindcandy.diablo.shared.content.sound.SoundManager
{
var library, loadingLibrary, queue, mixerClip, mixer, allfxChannel, speakChannel, listener, master, queueChannel;
function DefaultSoundManager (timeline) {
super();
library = null;
loadingLibrary = false;
queue = new Array();
mixerClip = timeline.createEmptyMovieClip("mixerClip", timeline.getNextHighestDepth());
}
function init(master) {
super.init(master);
setupLibrary();
setupMixer();
}
function getLibrary() {
return(library);
}
function getMixer() {
return(mixer);
}
function playMusic(name, looped, channel) {
var _local5 = library.lookupSound(name);
channel.clear();
channel.setSource(_local5);
_local5.startPlayback(looped);
}
function playSequence(items) {
queue = items.toArray();
playNextSoundInQueue();
}
function triggerEffect(name, listener) {
var _local4 = library.lookupSound(name);
allfxChannel.setSource(_local4);
allfxChannel.setListener(listener);
allfxChannel.playClip();
}
function triggerSpeech(phoneme, listener) {
var _local4 = library.lookupSound(phoneme);
if (_local4 != null) {
speakChannel.setSource(_local4);
speakChannel.setListener(listener);
speakChannel.playClip();
} else {
listener.notifyError(speakChannel, "Phoneme asset not found!");
}
}
function handleLoad(item, loaded, remaining) {
if ((listener != null) && (listener != this)) {
listener.handleLoad(item, loaded, remaining);
}
}
function handleAssetLoad(data, bitmapData) {
if (data instanceof com.mindcandy.diablo.shared.content.sound.SoundLibrary) {
if (library == null) {
library = com.mindcandy.diablo.shared.content.sound.SoundLibrary(data);
master.handleReady(this);
}
if (listener != null) {
listener.handleAssetLoad(data);
}
loadingLibrary = false;
}
}
function handleAssetFailure(reason) {
if ((listener != null) && (listener != this)) {
listener.handleAssetFailure("Failed to load sound library items");
}
}
function handleResponseSuccess(response) {
loadLibraryItems(org.as2lib.data.holder.List(response.getData()));
}
function handleResponseFailure(response) {
trace((("e Sound loading failed (" + response.getResponseCode()) + ") ") + response.getResponseMessage());
}
function notifyReady(channel) {
}
function notifyPlaying(channel) {
}
function notifyLastFiveSeconds(channel) {
}
function notifyCompleted(channel) {
if (channel == queueChannel) {
playNextSoundInQueue();
}
}
function notifyError(channel, reason) {
trace("e Audio playback failed on " + channel.getName());
trace("e Reason " + reason);
trace("e Source clip = " + channel.getSource().getName());
trace("e Source type = " + channel.getSource().getSoundDetails().getSoundType());
trace("e Source path = " + channel.getSource().getSoundDetails().getAssetDetails().getPath());
}
function setupLibrary() {
handleAssetLoad(new com.mindcandy.diablo.shared.content.sound.SoundLibrary(mixerClip));
}
function setupMixer() {
trace("i setting up sound mixer");
mixer = new com.mindcandy.diablo.shared.content.sound.mixer.GameSoundMixer(mixerClip, this);
allfxChannel = new com.mindcandy.diablo.shared.content.sound.mixer.BasicChannel(ALLFX, this);
speakChannel = new com.mindcandy.diablo.shared.content.sound.mixer.BasicChannel(SPEAK, this);
mixer.add(allfxChannel);
mixer.add(speakChannel);
}
function addExternalLibrary(root, contents) {
if (!loadingLibrary) {
trace(("d ADDING EXTERNAL LIBRARY WITH " + contents.size()) + " items");
listener = null;
assembleExternalLibrary(new com.mindcandy.diablo.shared.content.ExternalLibrary(root, null, true), contents);
} else {
trace("d CANNOT ADD EXTERNAL LIBRARY - ALREADY LOADING OTHER ITEMS");
}
}
function loadExternalLibrary(url, contents, listener) {
if (!loadingLibrary) {
trace("d LOADING EXTERNAL LIBRARY @ " + url);
this.listener = listener;
assembleExternalLibrary(new com.mindcandy.diablo.shared.content.ExternalLibrary(mixerClip, url, false), contents);
} else {
trace("d CANNOT ADD EXTERNAL LIBRARY - ALREADY LOADING OTHER ITEMS");
}
}
function playNextSoundInQueue() {
if (queue.length > 0) {
var _local2 = queue.shift();
var _local3 = library.lookupSound(_local2.toString());
queueChannel.clear();
queueChannel.setSource(_local3);
queueChannel.playClip();
}
}
function loadLibraryItems(contents) {
if (!loadingLibrary) {
var _local3 = contents.size();
if (_local3 > 0) {
trace(("d ADDING " + _local3) + " EXTERNAL CONTENT ITEMS TO LIBRARY");
loadingLibrary = true;
(new com.mindcandy.diablo.shared.content.sound.SoundAssetManager(mixerClip)).assemble(contents.iterator(), this);
} else {
handleAssetLoad(new com.mindcandy.diablo.shared.content.sound.SoundLibrary(mixerClip));
}
} else {
trace("d CANNOT LOAD LIBRARY ITEMS - ALREADY LOADING OTHERS");
}
}
function assembleExternalLibrary(source, contents) {
var _local4 = new com.mindcandy.diablo.shared.content.sound.external.ExternalLibraryManager(source, library);
loadingLibrary = true;
_local4.assemble(contents.iterator(), this);
}
static var ALLFX = "allfx";
static var QUEUE = "queue";
static var SPEAK = "speak";
}
Symbol 20686 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.MonsterPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.MonsterPanel extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var target;
function MonsterPanel (parentClip) {
super();
target = parentClip.createEmptyMovieClip("target", parentClip.getNextHighestDepth());
}
}
Symbol 20687 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.InstructionsPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.InstructionsPanel extends com.mindcandy.diablo.puzzle.view.panel.LinkedPanel
{
var target, startButton, websiteLinkButton;
function InstructionsPanel () {
super(LINKAGE_ID);
}
function initHandlers() {
target.gotoAndStop(1);
startButton = new com.mindcandy.diablo.puzzle.view.button.PuzzleMenuButton(target.btnStart);
startButton.hide();
websiteLinkButton = new com.mindcandy.diablo.puzzle.view.button.PuzzleMenuButton(target.btnWebsite);
websiteLinkButton.setProperty("url", "http://www.moshimonsters.com/");
}
function clearHandlers() {
startButton.destroy();
}
static var LINKAGE_ID = "lnkInstructionsScreen";
}
Symbol 20688 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.InitApplication] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.InitApplication extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand
{
var read, fireEventAfter;
function InitApplication () {
super();
}
function execute(args, context, listener, sync) {
read(context);
setupView();
setupFuse();
fireEventAfter(com.mindcandy.diablo.puzzle.controller.event.AppEvent.INIT_COMPLETED, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP, COMMAND_DELAY);
}
function setupView() {
Stage.scaleMode = "noscale";
_root.preloader.gotoAndPlay("finished");
}
function setupFuse() {
com.mosesSupposes.fuse.ZigoEngine.setControllerDepth(-1);
com.mosesSupposes.fuse.ZigoEngine.register(com.mosesSupposes.fuse.Fuse, com.mosesSupposes.fuse.FuseItem, com.mosesSupposes.fuse.PennerEasing);
com.mosesSupposes.fuse.ZigoEngine.register(com.mosesSupposes.fuse.FuseFMP);
com.mosesSupposes.fuse.Fuse.AUTOCLEAR = true;
com.mosesSupposes.fuse.FuseItem.ADD_UNDERSCORES = false;
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.InitApplication";
static var COMMAND_DELAY = 1000;
}
Symbol 20689 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.EndGame] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.EndGame extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand
{
var read, getCurrentSession, window, engine, fireEvent;
function EndGame (manager) {
super(manager);
}
function execute(args, context, listener, sync) {
read(context);
getCurrentSession().flagTimeUp();
window.sound.playTimeUp();
window.clearImageCache();
engine.resetGame();
fireEvent(com.mindcandy.diablo.puzzle.controller.event.AppEvent.GAME_COMPLETED, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP);
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.EndGame";
}
Symbol 20690 MovieClip [__Packages.PuzzleChallenge] Frame 0
class PuzzleChallenge implements com.mindcandy.diablo.shared.events.EventFilter, com.mindcandy.diablo.shared.events.EventListener, com.mindcandy.diablo.shared.content.application.RemoteApplication, com.mindcandy.diablo.shared.controller.Controller
{
var timeline, env, engine, standalone;
function PuzzleChallenge (timeline) {
this.timeline = timeline;
env = com.mindcandy.diablo.shared.controller.Environment.getInstance();
}
static function main(timeline) {
new PuzzleChallenge(timeline).init();
}
function init(master) {
env.init(this, timeline);
}
function handleReady(sub) {
switch (sub) {
case env :
trace("environment ready - initialising puzzle engine...");
checkStandalone();
setupEngine();
break;
case engine :
trace("puzzle engine ready - starting the application...");
proceedAccordingToStatus();
}
}
function handleFailed(sub, reason) {
if (sub == env) {
getURL (reason, "_self");
} else {
env.getEventManager().newEvent("application error", com.mindcandy.diablo.shared.events.EventType.APPLICATION, {endpoint:this, reason:reason});
}
}
function start() {
engine.start();
}
function destroy() {
env.getEventManager().remove(this);
engine.destroy();
engine = null;
env = null;
}
function notify(event) {
engine.notify(event);
}
function getEventFilter() {
return(this);
}
function isFiltered(event) {
return(!(event.getType() instanceof com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType));
}
function setupEngine() {
env.getEventManager().register(this);
engine = new com.mindcandy.diablo.puzzle.controller.ApplicationEngine(env, timeline, standalone);
engine.init(this);
}
function proceedAccordingToStatus() {
if (standalone) {
start();
} else {
env.getEventManager().newEvent("application ready", com.mindcandy.diablo.shared.events.EventType.APPLICATION, {endpoint:this}, NAME);
}
}
function checkStandalone() {
standalone = this == env.getMaster();
trace((standalone ? "STANDALONE MODE" : "SUB-APP MODE"));
}
//ASSetPropFlags(_local1, null, 1);
static var NAME = "puzzlechallenge";
}
Symbol 20691 MovieClip [__Packages.com.mindcandy.diablo.shared.model.Room] Frame 0
class com.mindcandy.diablo.shared.model.Room
{
var id, name, location;
function Room (id, name) {
this.id = id;
this.name = name;
}
function getId() {
return(id);
}
function setId(id) {
this.id = id;
}
function getLocation() {
return(location);
}
function setLocation(location) {
this.location = location;
}
function getName() {
return(name);
}
function setName(name) {
this.name = name;
}
static var INVENTORY = -1;
static var DEFAULT_ROOM = 1;
}
Symbol 20692 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.commands.CommandType] Frame 0
class com.mindcandy.diablo.shared.controller.commands.CommandType
{
var name;
function CommandType (name) {
this.name = name;
typeMap.put(name, this);
}
function toString() {
return(name);
}
static function valueOf(name) {
return((typeMap.containsKey(name) ? (typeMap.get(name)) : null));
}
static var typeMap = new com.mindcandy.data.holder.map.HashMap();
static var SOUND = new com.mindcandy.diablo.shared.controller.commands.CommandType("sound");
static var SYSTEM = new com.mindcandy.diablo.shared.controller.commands.CommandType("system");
static var INVENTORY = new com.mindcandy.diablo.shared.controller.commands.CommandType("inventory");
static var SHOP = new com.mindcandy.diablo.shared.controller.commands.CommandType("shop");
static var MONSTER = new com.mindcandy.diablo.shared.controller.commands.CommandType("monster");
static var PUZZLES = new com.mindcandy.diablo.shared.controller.commands.CommandType("puzzles");
static var WINDOW = new com.mindcandy.diablo.shared.controller.commands.CommandType("window");
static var PROFILE = new com.mindcandy.diablo.shared.controller.commands.CommandType("profile");
static var GARDEN = new com.mindcandy.diablo.shared.controller.commands.CommandType("garden");
}
Symbol 20693 MovieClip [__Packages.com.mindcandy.diablo.shared.content.AssetMap] Frame 0
class com.mindcandy.diablo.shared.content.AssetMap
{
function AssetMap () {
}
}
Symbol 20694 MovieClip [__Packages.com.mindcandy.diablo.shared.content.graphics.BitmapAssetMap] Frame 0
class com.mindcandy.diablo.shared.content.graphics.BitmapAssetMap extends com.mindcandy.data.holder.map.HashMap
{
var iterator;
function BitmapAssetMap () {
super();
}
function put(key, value) {
super.put(key, value);
return(value);
}
function get(key) {
return(flash.display.BitmapData(super.get(key)));
}
function clear() {
var _local3 = iterator();
while (_local3.hasNext()) {
var _local4 = flash.display.BitmapData(_local3.next());
_local4.dispose();
}
super.clear();
}
}
Symbol 20695 MovieClip [__Packages.com.mindcandy.diablo.shared.content.graphics.GraphicalAssetFactory] Frame 0
class com.mindcandy.diablo.shared.content.graphics.GraphicalAssetFactory implements com.mindcandy.diablo.shared.content.AssetFactory
{
var parentClip;
function GraphicalAssetFactory (parentClip) {
this.parentClip = parentClip;
}
function create(item) {
var _local3 = com.mindcandy.diablo.shared.content.graphics.HasGraphicalDetails(item).getGraphicalDetails();
var _local4 = getCorrectParentClip(_local3);
return(buildNewAsset(item.getAssetDetails(), _local3, _local4));
}
function buildNewAsset(assetDetails, graphicalDetails, targetClip) {
var _local5 = getCorrectDepth(graphicalDetails, targetClip);
var _local6 = "mc" + assetDetails.getId();
var _local7 = targetClip.createEmptyMovieClip(_local6, _local5);
return(createAsset(_local7, assetDetails, graphicalDetails));
}
function getCorrectDepth(details, targetClip) {
return(((details.getDefaultZ() <= 0) ? (targetClip.getNextHighestDepth()) : (details.getDefaultZ())));
}
function getCorrectParentClip(assetDetails) {
return(parentClip);
}
function createAsset(emptyClip, ad, gd) {
return(new com.mindcandy.diablo.shared.content.graphics.BaseGraphicalAsset(emptyClip, ad, gd));
}
}
Symbol 20696 MovieClip [__Packages.com.mindcandy.utils.string.StringUtil] Frame 0
class com.mindcandy.utils.string.StringUtil
{
function StringUtil () {
}
static function properCase(data) {
return(((data.length < 2) ? (data.toUpperCase()) : (data.charAt(0).toUpperCase() + data.substr(1).toLowerCase())));
}
static function trimTrailingSpace(data) {
var _local3 = data.length;
var _local4 = data.length - 1;
for ( ; _local4 >= 0 ; _local4--) {
var _local5 = data.charCodeAt(_local4);
if ((_local5 > 32) && (_local5 < 127)) {
break;
}
_local3--;
}
return(data.substring(0, _local3));
}
static function dumpToLog(obj, depth) {
var _local4 = depth || 0;
var _local5 = _local4 + 1;
var _local6 = "";
var _local7 = 0;
for ( ; _local7 < _local4 ; _local7++) {
_local6 = _local6 + " ";
}
for (var i in obj) {
trace(((("d " + _local6) + i) + " == ") + obj[i]);
if (_local5 <= MAX_DEPTH) {
dumpToLog(obj[i], _local5);
}
}
}
static function replace(targetText, str, rep, chr) {
var _local6 = ((chr < 0) ? (targetText.substr(chr)) : (targetText.substr(0, chr)));
var _local7 = str.length;
var _local8 = rep.length;
var _local9 = _local6.indexOf(str);
while (_local9 != -1) {
_local6 = (_local6.substr(0, _local9) + rep) + _local6.substr(_local9 + _local7);
_local9 = _local6.indexOf(str, _local9 + _local8);
}
return((chr ? (((chr < 0) ? (targetText.substr(0, targetText.length + chr) + _local6) : (_local6 + targetText.substr(chr)))) : (_local6)));
}
static function randomText(targetLength) {
var _local3 = "";
var _local4 = "0123456789abcdef";
var _local5 = _local4.split("");
var _local6 = 0;
for ( ; _local6 < targetLength ; _local6++) {
_local3 = _local5[Math.floor(Math.random() * _local5.length)] + _local3;
}
return(_local3);
}
static function revString(tmpStr) {
var _local3 = tmpStr.split("");
_local3.reverse();
var _local4 = _local3.join("");
return(_local4);
}
static function getHexValue(target) {
return(target.toString(16));
}
static function zeroPad(number, digits) {
var _local4 = number.toString();
while (_local4.length < digits) {
_local4 = "0" + _local4;
}
return(_local4);
}
static var MAX_DEPTH = 3;
}
Symbol 20697 MovieClip [__Packages.org.as2lib.data.holder.list.ListIterator] Frame 0
class org.as2lib.data.holder.list.ListIterator implements org.as2lib.data.holder.Iterator
{
var target, i;
function ListIterator (target) {
if (!target) {
throw new Error(("Argument 'target' [" + target) + "] must not be 'null' nor 'undefined'.", this, arguments);
}
this.target = target;
i = -1;
}
function hasNext(Void) {
return(i < (target.size() - 1));
}
function next(Void) {
if (!hasNext()) {
throw new Error("There is no more element.", this, arguments);
}
return(target.get(++i));
}
function remove(Void) {
if (i < 0) {
throw new Error("You tried to remove an element before calling the 'next' method. There is thus no element selected to remove.", this, arguments);
}
target.removeByIndex(i);
}
}
Symbol 20698 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.PuzzleSessionStatistics] Frame 0
class com.mindcandy.diablo.puzzle.model.PuzzleSessionStatistics
{
var markedPuzzles, correctCount, incorrectCount, progress;
function PuzzleSessionStatistics () {
markedPuzzles = new org.as2lib.data.holder.list.ArrayList();
correctCount = 0;
incorrectCount = 0;
progress = 0;
}
function addMarkedPuzzle(markedPuzzle) {
if (markedPuzzle.isCorrect()) {
correctCount++;
} else {
incorrectCount++;
}
markedPuzzles.insertByValue(markedPuzzle);
}
function getRightAnswerCount() {
return(correctCount);
}
function getWrongAnswerCount() {
return(incorrectCount);
}
function getMarkedPuzzles() {
return(markedPuzzles);
}
function setMarkedPuzzles(markedPuzzles) {
this.markedPuzzles = markedPuzzles;
}
function setProgress(progress) {
this.progress = progress;
}
function getProgress() {
return(progress);
}
}
Symbol 20699 MovieClip [__Packages.com.mindcandy.diablo.shared.content.graphics.GraphicalAssetMap] Frame 0
class com.mindcandy.diablo.shared.content.graphics.GraphicalAssetMap implements com.mindcandy.diablo.shared.content.AssetMap
{
var environment, dictionary, spatialMap, spatialBucketSize;
function GraphicalAssetMap () {
environment = com.mindcandy.diablo.shared.controller.Environment.getInstance();
dictionary = new com.mindcandy.data.holder.map.HashMap();
spatialMap = new com.mindcandy.data.holder.map.HashMap();
spatialBucketSize = Number(environment.getProperty("game.assetmap.bucketsize"));
}
function put(item) {
putGraphic(com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(item));
}
function putGraphic(asset) {
dictionary.put(asset.getName(), asset);
asset.setMap(this);
}
function lookup(name) {
return(com.mindcandy.diablo.shared.content.Asset(dictionary.get(name)));
}
function lookupGraphic(name) {
return(com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(dictionary.get(name)));
}
function getNames(Void) {
return(dictionary.keyIterator());
}
function getAssets(Void) {
return(dictionary.iterator());
}
function getAssetsSize(Void) {
return(dictionary.size());
}
function remove(asset) {
var _local3 = asset.getViewObject().getX();
var _local4 = asset.getViewObject().getTarget()._width;
var _local5 = findBucketId(_local3, _local4);
var _local6 = findBucketId(_local3 + _local4, _local4);
commitToRemoveFromBucket(asset, _local5);
commitToRemoveFromBucket(asset, _local6);
dictionary.remove(asset.getName());
asset.setMap(null);
asset.destroy();
}
function commitToRemoveFromBucket(asset, targetBucket) {
var _local4 = com.mindcandy.data.holder.map.HashMap(spatialMap.get(targetBucket));
_local4.remove(asset.getName());
checkEmptyRemoveBucket(targetBucket, _local4);
}
function getBucketSelection(x, y) {
var _local4 = new Array();
var _local5 = findBucketId(x, 0);
if (getBucketById(_local5) != null) {
_local4 = _local4.concat(getBucketById(_local5).getValues());
}
if (getBucketById(_local5 + 1) != null) {
_local4 = _local4.concat(getBucketById(_local5 + 1).getValues());
}
if (getBucketById(-1) != null) {
_local4 = _local4.concat(getBucketById(-1).getValues());
}
return(new org.as2lib.data.holder.list.ArrayList(_local4.sort(zSort)));
}
function getDropSelection(asset) {
var _local3 = asset.getViewObject().getX();
var _local4 = asset.getViewObject().getY();
var _local5 = getBucketSelection(_local3, _local4);
var _local6 = _local5.toArray();
_local6.sort(ySort);
return(new org.as2lib.data.holder.list.ArrayList(_local6));
}
function zSort(a, b) {
var _local4 = com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(a);
var _local5 = com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(b);
if (_local4.getViewObject().getZ() < _local5.getViewObject().getZ()) {
return(1);
}
if (_local4.getViewObject().getZ() > _local5.getViewObject().getZ()) {
return(-1);
}
return(0);
}
function ySort(a, b) {
var _local4 = com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(a);
var _local5 = com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(b);
if (_local4.getViewObject().getY() < _local5.getViewObject().getY()) {
return(-1);
}
if (_local4.getViewObject().getY() > _local5.getViewObject().getY()) {
return(1);
}
return(0);
}
function insertAsset(targetAsset) {
var _local5 = targetAsset.getViewObject().getX();
var _local6 = targetAsset.getViewObject().getTarget()._width;
var _local3 = findBucketId(_local5, _local6);
commitToBucket(targetAsset, _local3);
if (_local3 != -1) {
var _local4 = findBucketId(_local5 + _local6, _local6);
if (_local4 != _local3) {
commitToBucket(targetAsset, _local4);
}
}
}
function commitToBucket(targetAsset, targetBucket) {
if (spatialMap.containsKey(targetBucket)) {
var _local4 = com.mindcandy.data.holder.map.HashMap(spatialMap.get(targetBucket));
} else {
var _local4 = spatialMap.put(targetBucket, new com.mindcandy.data.holder.map.HashMap());
}
_local4.put(targetAsset.getName(), targetAsset);
}
function updateAsset(asset, oldX) {
var _local4 = oldX;
var _local5 = asset.getViewObject().getTarget()._width;
var _local6 = findBucketId(_local4, _local5);
var _local7 = findBucketId(_local4 + _local5, _local5);
commitToRemoveFromBucket(asset, _local6);
commitToRemoveFromBucket(asset, _local7);
insertAsset(asset);
}
function findBucketId(targetX, width) {
return(((width > spatialBucketSize) ? -1 : (Math.floor(targetX / spatialBucketSize))));
}
function getBucketById(bucketId) {
if (spatialMap.containsKey(bucketId)) {
return(com.mindcandy.data.holder.map.HashMap(spatialMap.get(bucketId)));
}
return(null);
}
function checkEmptyRemoveBucket(id, bucket) {
if (bucket.size() <= 0) {
spatialMap.remove(id);
}
}
function putAll(map) {
var _local3 = map.dictionary.iterator();
while (_local3.hasNext()) {
put(com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(_local3.next()));
}
}
}
Symbol 20700 MovieClip [__Packages.com.mosesSupposes.fuse.ZManager] Frame 0
class com.mosesSupposes.fuse.ZManager
{
var tweens, now;
function ZManager () {
tweens = {};
numTweens = 0;
}
function addTween(obj, props, endvals, seconds, ease, delay, callback) {
var _local9 = ((callback.skipLevel == undefined) ? 0 : (callback.skipLevel));
var _local10 = ((callback.cycles == undefined) ? 1 : (callback.cycles));
var _local11 = callback.extra1;
var _local12 = callback.extra2;
var _local13 = [];
var _local14 = _global.com.mosesSupposes.fuse.FuseFMP;
var _local15 = String(("|" + _local14.getAllShortcuts().join("|")) + "|");
var _local16 = com.mosesSupposes.fuse.FuseKitCommon._cts();
var _local17 = "";
var _local18 = "";
var _local19 = obj.__zigoID__;
var _local20 = tweens[String(_local19)];
if ((_local20 != undefined) && (com.mosesSupposes.fuse.ZigoEngine.AUTOSTOP == true)) {
if (obj._listeners.length > 0) {
for (var j in _local20.props) {
_local13.unshift(j);
}
}
_local20.numProps = 0;
cleanUp(true);
}
for (var i in props) {
var _local21 = props[i];
var _local22 = endvals[i];
var _local23 = 0;
if (_local21 == "_fade") {
_local21 = "_alpha";
_local23 = ((_local22 < 50) ? -1 : 1);
}
var _local24 = _local16.indexOf(("|" + _local21) + "|") > -1;
var _local25 = _local20.colorProp;
if (_local20 != undefined) {
if ((_local24 == true) && (_local25 != undefined)) {
_local13.unshift(_local25);
delete _local20.props[_local25];
delete _local20.colorProp;
_local20.numProps--;
} else if (_local20.props[_local21] != undefined) {
_local13.unshift(_local21);
delete _local20[_local21];
_local20.numProps--;
}
}
var _local26 = {c:-1, fmp:-1, complex:-1};
var _local27 = ((_local9 == 0) && ((seconds + delay) == 0)) || ((_local9 > 0) && (seconds == 0));
var _local28 = false;
var _local29 = (_local14 != undefined) && (_local15.indexOf(("|" + _local21) + "|") > -1);
var _local30 = (_local21.toLowerCase().indexOf("colors") > -1) && (_local22 instanceof Array);
var _local31 = (_local29 == true) && ((_local21.indexOf("lor") > -1) && (_local21.charAt(2) != "l"));
if (_local29 == true) {
_local26.fmp = _local14;
_local26.ps = _local14.getFilterProp(obj, _local21, true);
_local26.special = true;
}
if ((_local24 == true) || ((_local30 == true) || (_local31 && (_local27 == false)))) {
_local26.complex = 1;
if (_local24 == true) {
_local26.c = new Color(obj);
_local26.ps = Color(_local26.c).getTransform();
var _local32 = (((_local21 == "_tint") || ((_local21 == "_tintPercent") || (_local21 == "_colorReset"))) ? "tint" : (_local21.slice(1)));
var _local33 = null;
var _local34 = null;
if (_local21 != "_colorTransform") {
if (_local32 == "tint") {
if (typeof(_local22) == "object") {
_local34 = _local22.tint;
_local33 = ((_global.isNaN(_local22.percent) == true) ? 100 : (_local22.percent));
} else if ((_local21 == "_tintPercent") || (_local21 == "_colorReset")) {
var _local35 = com.mosesSupposes.fuse.ZigoEngine.getColorKeysObj(obj).tintPercent;
if (_local21 == "_colorReset") {
_local33 = Math.min(_local35, 100 - Math.abs(Number(_local22)));
} else {
_local33 = ((typeof(_local22) == "string") ? ((_local35 || 0) + Number(_local22)) : Number(_local22));
}
_local33 = Math.max(0, Math.min(_local33, 100));
_local34 = com.mosesSupposes.fuse.ZigoEngine.getColorKeysObj(obj).tint || 0;
} else {
_local34 = _local22;
_local33 = 100;
}
} else {
_local33 = ((typeof(_local22) == "string") ? ((com.mosesSupposes.fuse.ZigoEngine.getColorKeysObj(obj)[_local32] || 0) + Number(_local22)) : (_local22));
}
_local22 = com.mosesSupposes.fuse.ZigoEngine.getColorTransObj(_local32, _local33, _local34);
}
if (_local27 == true) {
if (_local21 == "_colorTransform") {
Color(_local26.c).setTransform(_local22);
} else {
com.mosesSupposes.fuse.ZigoEngine.setColorByKey(obj, _local32, _local33, _local34);
}
} else {
var _local36 = getChangeObj(_local26.ps, _local22, false, false);
_local26.ch = _local36.map;
if (_local36.changed == true) {
_local28 = true;
}
}
} else if (_local27 == true) {
_local14.setFilterProp(obj, _local21, _local22);
} else if (_local30 == true) {
_local26.c = 2;
_local26.ch = [];
for (var j in _local22) {
if (_local22[j] != null) {
if (_local26.ps == null) {
_local26.ps = [];
}
_local26.ps[j] = com.mosesSupposes.fuse.ZigoEngine.getColorTransObj("tint", 100, ((_local26.ps[j] == null) ? obj[_local21][j] : _local26.ps[j]));
var _local37 = getChangeObj(_local26.ps[j], com.mosesSupposes.fuse.ZigoEngine.getColorTransObj("tint", 100, _local22[j]), true, false);
_local26.ch[j] = _local37.map;
if (_local37.changed == true) {
_local28 = true;
}
}
}
} else {
_local26.c = 1;
_local26.ps = com.mosesSupposes.fuse.ZigoEngine.getColorTransObj("tint", 100, _local26.ps);
var _local38 = getChangeObj(_local26.ps, com.mosesSupposes.fuse.ZigoEngine.getColorTransObj("tint", 100, _local22), true, false);
_local26.ch = _local38.map;
if (_local38.changed == true) {
_local28 = true;
}
}
} else if (_local21 == "_bezier_") {
removeTween(obj, "_x,_y", true);
if (_local27 == true) {
if ((_local22.x != null) && (_global.isNaN(Number(_local22.x)) == false)) {
obj._x = ((typeof(_local22.x) == "string") ? (obj._x + Number(_local22.x)) : (_local22.x));
}
if ((_local22.y != null) && (_global.isNaN(Number(_local22.y)) == false)) {
obj._y = ((typeof(_local22.y) == "string") ? (obj._y + Number(_local22.y)) : (_local22.y));
}
} else {
_local26.special = true;
_local26.ps = 0;
_local26.ch = 1;
_local26.bz = {sx:obj._x, sy:obj._y};
if ((_local22.x == null) || (_global.isNaN(Number(_local22.x)))) {
_local22.x = _local26.bz.sx;
}
if ((_local22.y == null) || (_global.isNaN(Number(_local22.y)))) {
_local22.y = _local26.bz.sy;
}
_local26.bz.chx = ((typeof(_local22.x) == "string") ? (Number(_local22.x)) : (_local22.x - _local26.bz.sx));
if (_global.isNaN(_local26.bz.chx) == true) {
_local26.bx.chx = 0;
}
_local26.bz.chy = ((typeof(_local22.y) == "string") ? (Number(_local22.y)) : (_local22.y - _local26.bz.sy));
if (_global.isNaN(_local26.bz.chy) == true) {
_local26.bx.chy = 0;
}
if ((_local22.controlX == null) || (_global.isNaN(Number(_local22.controlX)))) {
_local26.bz.ctrlx = _local26.bz.sx + (_local26.bz.chx / 2);
} else {
_local26.bz.ctrlx = ((typeof(_local22.controlX) == "string") ? (_local26.bz.sx + Number(_local22.controlX)) : (_local22.controlX));
}
if ((_local22.controlY == null) || (_global.isNaN(Number(_local22.controlY)))) {
_local26.bz.ctrly = _local26.bz.sy + (_local26.bz.chy / 2);
} else {
_local26.bz.ctrly = ((typeof(_local22.controlY) == "string") ? (_local26.bz.sy + Number(_local22.controlY)) : (_local22.controlY));
}
_local26.bz.ctrlx = _local26.bz.ctrlx - _local26.bz.sx;
_local26.bz.ctrly = _local26.bz.ctrly - _local26.bz.sy;
_local28 = (_local26.bz.chx + _local26.bz.chy) != 0;
}
} else {
if (typeof(_local22) == "object") {
_local26.complex = ((_local22 instanceof Array) ? 0 : 1);
}
if ((_local21 == "_x") || (_local21 == "_y")) {
removeTween(obj, "_bezier_", true);
}
if ((_local21 == "_frame") && (typeof(obj) == "movieclip")) {
_local26.ps = obj._currentframe;
_local26.special = true;
} else if (_local29 == false) {
if (_local26.complex > -1) {
_local26.ps = ((_local26.complex == 0) ? ([]) : ({}));
for (var j in _local22) {
_local26.ps[j] = obj[_local21][j];
}
} else {
_local26.ps = obj[_local21];
}
}
if (_local27 == true) {
if (_local29 == true) {
_local14.setFilterProp(obj, _local21, ((typeof(_local22) == "string") ? (_local26.ps + Number(_local22)) : (_local22)));
} else if (_local26.complex > -1) {
for (var j in _local22) {
if ((_local22[j] != null) && (_global.isNaN(Number(_local22[j])) == false)) {
obj[_local21][j] = ((typeof(_local22[j]) == "string") ? (_local26.ps[j] + Number(_local22[j])) : _local22[j]);
if (_global.isNaN(obj[_local21][j]) == true) {
obj[_local21][j] = 0;
}
}
}
} else {
obj[_local21] = ((typeof(_local22) == "string") ? (_local26.ps + Number(_local22)) : (_local22));
if (_local23 == 1) {
obj._visible = true;
} else if (_local23 == -1) {
obj._visible = false;
}
}
} else if (_local26.complex > -1) {
var _local39 = getChangeObj(_local26.ps, _local22, _local29, _local26.complex == 0);
_local26.ch = _local39.map;
if (_local39.changed == true) {
_local28 = true;
}
} else {
if ((_local22 == null) || (_global.isNaN(Number(_local22)))) {
_local22 = _local26.ps;
}
_local26.ch = ((typeof(_local22) == "string") ? (Number(_local22)) : (Number(_local22) - _local26.ps));
if (_global.isNaN(_local26.ch) == true) {
_local26.ch = 0;
}
_local28 = _local26.ch != 0;
}
}
if (((_local9 == 0) && ((_local28 == true) || (_local27 == false))) || ((_local28 == true) && (_local27 == false))) {
if ((_local26.complex > -1) && (!(_local26.c === 2))) {
_local26.ps = [_local26.ps];
_local26.ch = [_local26.ch];
}
_local26.ts = now + (delay * 1000);
_local26.pt = -1;
_local26.d = seconds * 1000;
_local26.ef = ease;
_local26.sf = false;
_local26.cycles = _local10;
if (_local11 != undefined) {
_local26.e1 = _local11;
}
if (_local12 != undefined) {
_local26.e2 = _local12;
}
_local26.v = _local23;
if (callback.start != undefined) {
_local26.scb = callback.start;
}
if (callback.upd != undefined) {
_local26.ucb = callback.upd;
}
if (callback.end != undefined) {
_local26.ecb = callback.end;
}
if (callback.roundResults != undefined) {
_local26.rr = callback.roundResults;
}
if (tweens[String(_local19)] == undefined) {
_local20 = (tweens[String(_local19)] = {numProps:0, locked:false, targ:obj, targID:String(("\"" + ((obj._name != undefined) ? (obj._name) : (obj.toString()))) + "\""), targZID:_local19, props:{}});
numTweens++;
}
if (_local24 == true) {
_local20.colorProp = _local21;
}
_local20.props[_local21] = _local26;
_local20.numProps++;
_local17 = (_local21 + ",") + _local17;
_local18 = (((typeof(_local22) == "string") ? (("\"" + _local22) + "\"") : (_local22)) + ",") + _local18;
}
_local26 = undefined;
}
if ((_local20 == undefined) || (_local20.numProps <= 0)) {
cleanUp();
}
if ((_local13.length > 0) && (com.mosesSupposes.fuse.ZigoEngine._listeners.length > 0)) {
com.mosesSupposes.fuse.ZigoEngine.broadcastMessage("onTweenInterrupt", {target:obj, props:_local13, __zigoID__:_local19, during:"add"});
}
if (_local17 == "") {
if (_local9 == 2) {
if (com.mosesSupposes.fuse.ZigoEngine.OUTPUT_LEVEL == 2) {
com.mosesSupposes.fuse.FuseKitCommon.error("011", ((obj._name != undefined) ? (obj._name) : (obj.toString())), props.toString());
}
} else {
var _local40 = obj._listeners.length > 0;
if (_local40 == true) {
obj.broadcastMessage("onTweenStart", {target:obj, props:props});
}
if (callback.start != undefined) {
callback.start.f.apply(callback.start.s, callback.start.a);
}
if (_local40 == true) {
obj.broadcastMessage("onTweenUpdate", {target:obj, props:props});
}
if (callback.upd != undefined) {
callback.upd.f.apply(callback.upd.s, callback.upd.a);
}
if (_local40 == true) {
obj.broadcastMessage("onTweenEnd", {target:obj, props:props});
}
if (callback.end != undefined) {
callback.end.f.apply(callback.end.s, callback.end.a);
}
}
cleanUp();
}
if (com.mosesSupposes.fuse.ZigoEngine.OUTPUT_LEVEL == 2) {
if (_local17 == "") {
com.mosesSupposes.fuse.FuseKitCommon.error("012", ((obj._name != undefined) ? (obj._name) : (obj.toString())), props.toString(), endvals.toString());
} else {
com.mosesSupposes.fuse.FuseKitCommon.error("013", ((obj._name != undefined) ? (obj._name) : (obj.toString())), _local17.slice(0, -1), _local18.slice(0, -1));
}
}
return(((_local17 == "") ? null : (_local17.slice(0, -1))));
}
function removeTween(targs, props, noInit) {
var _local5 = {};
var _local6 = paramsObj(targs, props);
if (_local6.none == true) {
return(undefined);
}
var _local7 = _local6.all;
var _local8 = _local6.allprops;
var _local9 = ((_local7 == true) ? (tweens) : (Object(_local6.tg)));
var _local10 = false;
for (var j in _local9) {
var _local11 = ((_local7 == true) ? (j) : (String(_local9[j].__zigoID__)));
var _local12 = tweens[_local11];
var _local13 = ((_local8 == true) ? (_local12.props) : (_local6.props));
for (var i in _local13) {
var _local14 = (i == com.mosesSupposes.fuse.FuseKitCommon.ALLCOLOR) && (_local12.colorProp != undefined);
if ((_local12.props[i] != undefined) || (_local14 == true)) {
if (_local5[_local11] == null) {
_local5[_local11] = [];
}
_local5[_local11].unshift(i);
if ((i == _local12.colorProp) || (_local14 == true)) {
delete _local12.props[_local12.colorProp];
delete _local12.colorProp;
} else {
delete _local12.props[i];
}
_local12.numProps--;
if (_local12.numProps <= 0) {
_local10 = true;
break;
}
}
}
}
if (com.mosesSupposes.fuse.ZigoEngine._listeners.length > 0) {
for (var k in _local5) {
var _local15 = tweens[k].targ;
com.mosesSupposes.fuse.ZigoEngine.broadcastMessage("onTweenInterrupt", {target:((typeof(_local15.addProperty) == "function") ? (_local15) : (("[MISSING(\"" + tweens[k].targID) + "\")]")), props:_local5[k], __zigoID__:tweens[k].targZID, during:((noInit == true) ? "add" : "remove")});
}
}
if (_local10 == true) {
cleanUp(noInit);
}
}
function alterTweens(type, targs, props, pauseFlag, noEvents, skipTo) {
if (type == "lock") {
tweens[String(targs.__zigoID__)].locked = props;
return(undefined);
}
var _local8 = paramsObj(targs, props);
if (_local8.none == true) {
return(undefined);
}
var _local9 = _local8.all;
var _local10 = _local8.allprops;
var _local11 = ((_local9 == true) ? (tweens) : (Object(_local8.tg)));
var _local12 = 0;
for (var j in _local11) {
var _local13 = ((_local9 == true) ? (j) : (String(_local11[j].__zigoID__)));
var _local14 = tweens[_local13];
var _local15 = ((_local10 == true) ? (_local14.props) : (_local8.props));
if (_local15.ALLCOLOR == true) {
_local15[_local14.colorProp] = true;
delete _local15.ALLCOLOR;
}
for (var prop in _local15) {
_local12++;
var _local16 = _local14.props[prop];
if (type == "rewind") {
if (pauseFlag == true) {
_local16.pt = now;
}
_local16.ts = now;
if (noEvents != true) {
_local16.sf = false;
if (_local16.scb != undefined) {
_local16.scb.fired = false;
}
}
} else if (type == "ff") {
if (noEvents == true) {
_local16.suppressEnd = true;
}
_local16.o = true;
_local16.pt = -1;
_local16.ts = now - _local16.d;
} else if (type == "skipTo") {
_local16.ts = Math.min(now, (_local16.ts + (now - _local16.ts)) - (skipTo * 1000));
} else if (type == "pause") {
if (_local16.pt == -1) {
_local16.pt = now;
}
} else if (type == "unpause") {
if (_local16.pt != -1) {
_local16.ts = now - (_local16.pt - _local16.ts);
_local16.pt = -1;
}
}
}
}
if ((type == "ff") && (_local12 > 0)) {
update();
} else if ((type == "rewind") && (_local12 > 0)) {
update(true);
}
}
function getStatus(type, targ, param) {
if (targ == null) {
return(null);
}
var _local5 = String(targ).toUpperCase() == com.mosesSupposes.fuse.FuseKitCommon.ALL;
var _local6 = tweens[String(targ.__zigoID__)];
switch (type) {
case "paused" :
var _local7 = _local6.props;
if (param != null) {
if (_local7[String(param)] == undefined) {
return(false);
}
return(_local7[String(param)].pt != -1);
}
for (var i in _local7) {
if (_local7[i].pt != -1) {
return(true);
}
}
return(false);
case "active" :
if (param == null) {
return(_local6 != undefined);
}
if (String(param).toUpperCase() == com.mosesSupposes.fuse.FuseKitCommon.ALLCOLOR) {
return(_local6.colorProp != undefined);
}
return(_local6.props[String(param)] != undefined);
case "count" :
if (!_local5) {
return(_local6.numProps);
}
var _local8 = 0;
for (var i in tweens) {
_local8 = _local8 + tweens[i].numProps;
}
return(_local8);
case "locked" :
return(_local6.locked);
}
}
function update(force) {
var _local3 = {};
var _local4 = {};
var _local5 = {};
var _local6 = {};
var _local7 = {};
var _local8 = {};
var _local9 = false;
var _local10 = com.mosesSupposes.fuse.ZigoEngine.ROUND_RESULTS;
for (var i in tweens) {
var _local11 = tweens[i];
var _local12 = _local11.targ;
var _local13 = _local11.props;
var _local14 = _local12._listeners.length > 0;
if (_local12.__zigoID__ == undefined) {
_local9 = true;
if (com.mosesSupposes.fuse.ZigoEngine._listeners.length > 0) {
var _local15 = [];
for (var prop in _local13) {
_local15.unshift(prop);
}
com.mosesSupposes.fuse.ZigoEngine.broadcastMessage("onTweenInterrupt", {target:((typeof(_local12.addProperty) == "function") ? (_local12) : (("[MISSING:" + _local11.targID) + "]")), props:_local15, __zigoID__:_local11.targZID, during:"update"});
}
continue;
}
for (var prop in _local13) {
var _local16 = _local13[prop];
if (((_local16.ts > now) || (_local16.pt != -1)) && (force != true)) {
continue;
}
var _local17 = now >= (_local16.ts + _local16.d);
if (_local16.complex == -1) {
if (_local17 == true) {
var _local18 = _local16.ps + _local16.ch;
if ((_local16.cycles > 1) || (_local16.cycles == 0)) {
if (_local16.cycles > 1) {
_local16.cycles--;
}
_local16.ps = _local18;
_local16.ch = -_local16.ch;
_local16.ts = now;
_local17 = false;
}
} else {
var _local18 = _local16.ef(now - _local16.ts, _local16.ps, _local16.ch, _local16.d, _local16.e1, _local16.e2);
}
if (_global.isNaN(_local18) == false) {
if ((prop != "_bezier_") && ((_local16.rr == true) || ((_local10 == true) && (!(_local16.rr === false))))) {
var _local18 = Math.round(Number(_local18));
}
if (_local16.special != true) {
_local12[prop] = _local18;
} else if (_local16.fmp != -1) {
_local16.fmp.setFilterProp(_local12, prop, _local18);
} else if (prop == "_bezier_") {
var _local19 = _local16.bz;
var _local20 = _local19.sx + (_local18 * (((2 * (1 - _local18)) * _local19.ctrlx) + (_local18 * _local19.chx)));
var _local21 = _local19.sy + (_local18 * (((2 * (1 - _local18)) * _local19.ctrly) + (_local18 * _local19.chy)));
if ((_local16.rr == true) || ((_local10 == true) && (!(_local16.rr === false)))) {
_local20 = Math.round(Number(_local20));
_local21 = Math.round(Number(_local21));
}
_local12._x = _local20;
_local12._y = _local21;
} else if (prop == "_frame") {
MovieClip(_local12).gotoAndStop(Math.ceil(_local18));
}
}
} else {
var _local22 = (_local17 == true) && ((_local16.cycles > 1) || (_local16.cycles == 0));
var _local23 = [];
for (var k in _local16.ch) {
var _local24 = ((_local16.complex == 0) ? ([]) : ({}));
for (var j in _local16.ch[k]) {
var _local25 = _local16.ch[k][j];
var _local26 = _local16.ps[k][j];
if (_local17 == true) {
_local24[j] = _local26 + _local25;
if (_local22 == true) {
_local16.ch[k][j] = -_local25;
}
} else {
_local24[j] = _local16.ef(now - _local16.ts, _local26, _local25, _local16.d, _local16.e1, _local16.e2);
}
if (_global.isNaN(_local24[j]) == false) {
if ((_local16.rr == true) || ((_local10 == true) && (!(_local16.rr === false)))) {
_local24[j] = Math.round(_local24[j]);
}
}
if ((_local16.fmp == -1) && (_local16.c == -1)) {
_local12[prop][j] = _local24[j];
}
}
_local23.push(_local24);
if ((_local16.fmp == -1) && (_local16.c == 2)) {
_local12[prop][k] = Number(((_local24.rb << 16) | (_local24.gb << 8)) | _local24.bb);
}
}
if (_local16.fmp != -1) {
if (_local16.c == 1) {
_local16.fmp.setFilterProp(_local12, prop, ((_local23[0].rb << 16) | (_local23[0].gb << 8)) | _local23[0].bb);
} else if (_local16.c == 2) {
var _local27 = [];
for (var j in _local23) {
_local27.unshift(((_local23[j].rb << 16) | (_local23[j].gb << 8)) | _local23[j].bb);
}
_local16.fmp.setFilterProp(_local12, prop, _local27);
}
} else if (_local16.c != -1) {
_local16.c.setTransform(_local23[0]);
}
if (_local22 == true) {
if (_local16.cycles > 1) {
_local16.cycles--;
}
_local17 = false;
_local16.ts = now;
_local16.ps = _local23;
}
}
if (_local16.sf == false) {
if (_local16.v != 0) {
_local12._visible = true;
}
if (_local14 == true) {
if (_local6[i] == undefined) {
_local6[i] = [_local12, []];
}
_local6[i][1].unshift(prop);
}
_local16.sf = true;
}
if (_local16.scb.fired == false) {
_local3[String(_local16.scb.id)] = _local16.scb;
_local16.scb.fired = true;
}
if (_local14 == true) {
if (_local7[i] == undefined) {
_local7[i] = [_local12, []];
}
_local7[i][1].unshift(prop);
}
if (_local16.ucb != undefined) {
_local4[String(_local16.ucb.id)] = _local16.ucb;
}
if (_local17 == true) {
if (_local16.v === -1) {
_local12._visible = false;
}
if (_local16.suppressEnd != true) {
if (_local14 == true) {
if (_local8[i] == undefined) {
_local8[i] = [_local12, []];
}
_local8[i][1].unshift(prop);
}
if (_local16.ecb != undefined) {
_local5[String(_local16.ecb.id)] = _local16.ecb;
}
}
delete _local13[prop];
if (prop == _local11.colorProp) {
delete _local11.colorProp;
}
_local11.numProps--;
if (_local11.numProps <= 0) {
_local9 = true;
}
}
delete _local16.suppressEnd;
}
}
for (var i in _local6) {
_local6[i][0].broadcastMessage("onTweenStart", {target:_local6[i][0], props:_local6[i][1]});
}
for (var i in _local3) {
_local3[i].f.apply(_local3[i].s, _local3[i].a);
}
for (var i in _local7) {
_local7[i][0].broadcastMessage("onTweenUpdate", {target:_local7[i][0], props:_local7[i][1]});
}
for (var i in _local4) {
_local4[i].f.apply(_local4[i].s, _local4[i].a);
}
for (var i in _local8) {
_local8[i][0].broadcastMessage("onTweenEnd", {target:_local8[i][0], props:_local8[i][1]});
}
for (var i in _local5) {
_local5[i].f.apply(_local5[i].s, _local5[i].a);
}
if (_local9) {
cleanUp();
}
now = getTimer();
}
function cleanUp(noInit) {
for (var i in tweens) {
var _local3 = tweens[i].targ;
if ((tweens[i].numProps <= 0) || (_local3.__zigoID__ == undefined)) {
if ((_local3 != undefined) && ((_local3.tween == undefined) && ((noInit != true) && (_local3._listeners.length <= 0)))) {
com.mosesSupposes.fuse.ZigoEngine.deinitializeTargets(_local3);
}
delete tweens[i];
numTweens--;
}
}
if (numTweens <= 0) {
numTweens = 0;
delete tweens;
tweens = {};
if (noInit != true) {
com.mosesSupposes.fuse.ZigoEngine.__mgrRelay(this, "setup", [true]);
}
}
}
function paramsObj(targs, props, endvals, retainFade) {
var _local6 = {};
_local6.all = String(targs).toUpperCase() == com.mosesSupposes.fuse.FuseKitCommon.ALL;
_local6.none = targs == null;
if (_local6.all == true) {
_local6.tg = [null];
} else {
_local6.tg = ((targs instanceof Array) ? (targs) : ([targs]));
for (var i in _local6.tg) {
var _local7 = _local6.tg[i];
if ((_local7 == null) || (!((typeof(_local7) == "object") || (typeof(_local7) == "movieclip")))) {
_local6.tg.splice(Number(i), 1);
}
}
}
_local6.allprops = props == null;
var _local10 = {};
if (_local6.allprops == false) {
if ((typeof(props) == "string") && ((String(props).indexOf(" ") > -1) || (String(props).indexOf(",") > -1))) {
props = String(props.split(" ").join("")).split(",");
}
var _local8 = ((props instanceof Array) ? (props.slice()) : ([props]));
if (endvals != undefined) {
if ((typeof(endvals) == "string") && ((String(endvals).indexOf(" ") > -1) || (String(endvals).indexOf(",") > -1))) {
endvals = String(endvals.split(" ").join("")).split(",");
}
var _local9 = ((endvals instanceof Array) ? (endvals.slice()) : ([endvals]));
while (_local9.length < _local8.length) {
_local9.push(_local9[_local9.length - 1]);
}
_local9.splice(_local8.length, _local9.length - _local8.length);
}
for (var i in _local8) {
var _local11 = Number(i);
if ((_local8[i] != "_scale") && (_local8[i] != "_size")) {
if (_local10[_local8[i]] == undefined) {
if ((_local8[i] == "_fade") && (retainFade != true)) {
_local8[i] = "_alpha";
}
if (String(_local8[i]).toUpperCase() == com.mosesSupposes.fuse.FuseKitCommon.ALLCOLOR) {
_local8[i] = com.mosesSupposes.fuse.FuseKitCommon.ALLCOLOR;
}
_local10[_local8[i]] = true;
} else {
_local8.splice(_local11, 1);
_local9.splice(_local11, 1);
}
} else {
var _local12 = String(_local8.splice(_local11, 1)[0]);
var _local13 = _local9.splice(_local11, 1)[0];
if (_local12 == "_scale") {
if (_local10._xscale == undefined) {
_local8.splice(_local11, 0, "_xscale");
_local9.splice(_local11, 0, _local13);
_local10._xscale = true;
_local11++;
}
if (_local10._yscale == undefined) {
_local8.splice(_local11, 0, "_yscale");
_local9.splice(_local11, 0, _local13);
_local10._yscale = true;
}
}
if (_local12 == "_size") {
if (_local10._width == undefined) {
_local8.splice(_local11, 0, "_width");
_local9.splice(_local11, 0, _local13);
_local10._width = true;
_local11++;
}
if (_local10._yscale == undefined) {
_local8.splice(_local11, 0, "_height");
_local9.splice(_local11, 0, _local13);
_local10._height = true;
}
}
}
}
for (var i in _local8) {
if (((_local8[i] == "_xscale") && (_local10._width == true)) || ((_local8[i] == "_yscale") && (_local10._height == true))) {
_local8.splice(Number(i), 1);
_local9.splice(Number(i), 1);
delete _local10[_local8[i]];
}
}
}
_local6.pa = _local8;
_local6.va = _local9;
_local6.props = _local10;
return(_local6);
}
function getChangeObj(ps, ep, isFMP, useArray) {
var _local6 = {map:((useArray == true) ? ([]) : ({})), changed:false};
for (var j in ep) {
if ((((isFMP == true) && (j.charAt(1) == "b")) || ((ep[j] != ps[j]) || (useArray == true))) && ((ep[j] != null) && (_global.isNaN(Number(ep[j])) == false))) {
_local6.map[j] = ((typeof(ep[j]) == "string") ? (Number(ep[j])) : (ep[j] - ps[j]));
if (_global.isNaN(_local6.map[j]) == true) {
_local6.map[j] = 0;
} else if (_local6.map[j] != 0) {
_local6.changed = true;
}
}
}
return(_local6);
}
var numTweens = 0;
}
Symbol 20701 MovieClip [__Packages.com.mindcandy.diablo.shared.view.dialogues.Dialogue] Frame 0
class com.mindcandy.diablo.shared.view.dialogues.Dialogue
{
function Dialogue () {
}
}
Symbol 20702 MovieClip [__Packages.com.mindcandy.diablo.shared.content.application.ApplicationDetails] Frame 0
class com.mindcandy.diablo.shared.content.application.ApplicationDetails
{
var name, path, x, y, width, height, embedded, aboveFrame, freezeUI, freezeWindow, freezeMonster, freezeHeartbeat, inRoom;
function ApplicationDetails (name, path, width, height, x, y, embed, aboveFrame, freezeUI, freezeWindow, freezeMonster, freezeHeartbeat, inRoom) {
this.name = name;
this.path = path;
this.x = Number(x);
this.y = Number(y);
this.width = Number(width);
this.height = Number(height);
embedded = embed;
this.aboveFrame = aboveFrame;
this.freezeUI = freezeUI;
this.freezeWindow = freezeWindow;
this.freezeMonster = freezeMonster;
this.freezeHeartbeat = freezeHeartbeat;
this.inRoom = inRoom;
}
function getName() {
return(name);
}
function getPath() {
return(path);
}
function toString() {
return(((("Application { name: " + name) + ", path: ") + path) + " }");
}
function getWidth() {
return(width);
}
function getHeight() {
return(height);
}
function getDefaultX() {
return(x);
}
function getDefaultY() {
return(y);
}
function isAboveFrame() {
return(aboveFrame);
}
function requiresPreload() {
return(embedded);
}
}
Symbol 20703 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.mixer.SoundMixer] Frame 0
class com.mindcandy.diablo.shared.content.sound.mixer.SoundMixer
{
function SoundMixer () {
}
}
Symbol 20704 MovieClip [__Packages.com.mindcandy.diablo.shared.content.loaders.QueuedLoadManager] Frame 0
class com.mindcandy.diablo.shared.content.loaders.QueuedLoadManager implements com.mindcandy.diablo.shared.content.AssetLoadManager
{
var bufferSize, buffer, builder, itemsLoaded, currentAssetLoading, assetsToLoad, totalAssetsToLoad;
function QueuedLoadManager (bufferSize) {
this.bufferSize = bufferSize || 5;
buffer = new org.as2lib.data.holder.list.ArrayList();
}
function startLoading(builder) {
var _local3 = new org.as2lib.data.holder.list.ArrayList(builder.getUnloadedAssets());
buffer = new org.as2lib.data.holder.list.ArrayList();
this.builder = builder;
itemsLoaded = 0;
currentAssetLoading = 0;
assetsToLoad = _local3.iterator();
totalAssetsToLoad = builder.getUnloadedAssets().length;
if (totalAssetsToLoad > 0) {
loadNext();
} else {
log("d No assets to load");
allLoadsComplete();
}
}
function loadNext() {
var _local2 = totalAssetsToLoad - itemsLoaded;
if (_local2 > 0) {
log("d Loading next item - total remaining = " + _local2);
if (buffer.size() < bufferSize) {
log((("d Buffer is open: " + buffer.size()) + ":") + bufferSize);
if (assetsToLoad.hasNext()) {
startLoad();
} else {
log("d All items called");
}
} else {
log("d Buffer is full - wait");
}
}
}
function startLoad() {
currentAssetLoading++;
var _local2 = com.mindcandy.diablo.shared.content.Asset(assetsToLoad.next());
var _local3 = createFileLoader(_local2, this);
log((((((("f Loading " + currentAssetLoading) + "/") + totalAssetsToLoad) + " : ") + _local2.getDetails().getFileType()) + " : ") + _local2.getDetails().getPath());
if (_local3 != null) {
_local3.start();
} else {
trace("e Error loading asset, invalid file type: " + _local2.getDetails().getFileType());
}
if (totalAssetsToLoad > 1) {
loadNext();
}
}
function add(loader) {
buffer.insert(loader);
log("d Added new loader to buffer " + typeof(loader));
}
function handleLoadComplete(loader) {
log("d Individual Load Complete");
log("d ------------------------");
itemsLoaded++;
builder.handleLoad(null, itemsLoaded, totalAssetsToLoad - itemsLoaded);
buffer.removeByValue(loader);
loader.destroy();
if (itemsLoaded >= totalAssetsToLoad) {
allLoadsComplete();
} else {
loadNext();
}
}
function handleLoadFailed(loader, reason) {
trace("f Load failiure - " + reason);
loader.destroy();
buffer = null;
builder.handleLoadFailure(reason);
}
function allLoadsComplete() {
trace("i All Loads Complete");
builder.handleAllLoadsComplete();
}
function getCurrentItemLoadPercentage() {
return(0);
}
function getTotalAssetsToLoad() {
return(totalAssetsToLoad);
}
function getCurrentAssetLoading() {
return(currentAssetLoading);
}
function log(text) {
if (LOGGING) {
trace(text);
}
}
function createFileLoader(item) {
switch (item.getDetails().getFileType()) {
case "swf" :
return(new com.mindcandy.diablo.shared.content.loaders.SwfLoader(item, this));
case "jpg" :
return(new com.mindcandy.diablo.shared.content.loaders.ImageLoader(item, this));
case "png" :
return(new com.mindcandy.diablo.shared.content.loaders.ImageLoader(item, this));
case "mp3" :
return(new com.mindcandy.diablo.shared.content.loaders.Mp3Loader(item, this));
case "esl" :
return(new com.mindcandy.diablo.shared.content.loaders.ExternalLibraryLoader(item, this));
}
return(null);
}
static var LOGGING = false;
}
Symbol 20705 MovieClip [__Packages.org.as2lib.data.holder.array.ArrayIterator] Frame 0
class org.as2lib.data.holder.array.ArrayIterator implements org.as2lib.data.holder.Iterator
{
var t, i, __proto__;
function ArrayIterator (target) {
if (!target) {
throw new Error(("Argument 'target' [" + target) + "] must not be 'null' nor 'undefined'.", this, arguments);
}
t = target;
i = -1;
var t = target;
var g = -1;
var p = org.as2lib.data.holder.array.ArrayIterator.prototype;
var s = this;
if ((__proto__ == p) && (t.length > 50)) {
var y = function () {
if (g < (t.length - 1)) {
arguments.callee = p.next;
throw new Error("There is no more element.", this, arguments);
}
return(t[++g]);
};
var x = function () {
s.next = y;
return(t[++g]);
};
var z = function () {
s.next = y;
arguments.callee = p.next;
throw new Error("There is no more element.", this, arguments);
};
next = y;
hasNext = function () {
if (g < (t.length - 1)) {
s.next = x;
return(true);
}
s.next = z;
return(false);
};
remove = function () {
if (g < 0) {
arguments.callee = p.remove;
throw new Error("You tried to remove an element before calling the 'next' method. There is thus no element selected to remove.", this, arguments);
}
t.splice(g--, 1);
};
}
}
function hasNext(Void) {
return(i < (t.length - 1));
}
function next(Void) {
if (!hasNext()) {
throw new Error("There is no more element.", this, arguments);
}
return(t[++i]);
}
function remove(Void) {
if (i < 0) {
throw new Error("You tried to remove an element before calling the 'next' method. There is thus no element selected to remove.", this, arguments);
}
t.splice(i--, 1);
}
}
Symbol 20706 MovieClip [__Packages.com.mindcandy.diablo.shared.model.StructureParallaxItem] Frame 0
class com.mindcandy.diablo.shared.model.StructureParallaxItem extends com.mindcandy.diablo.shared.model.Entity
{
var entityXMLNodeName, structure, velocity;
function StructureParallaxItem (structure, velocity) {
super();
entityXMLNodeName = "structuralparallaxitem";
this.structure = structure;
this.velocity = velocity;
}
function getStructure() {
return(structure);
}
function getVelocity() {
return(velocity);
}
function toString() {
var _local3 = super.toString();
_local3 = _local3 + ((" structure=\"" + structure) + "\"");
_local3 = _local3 + ((" velocity=\"" + velocity) + "\"");
return(_local3);
}
}
Symbol 20707 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.ToggleSound] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.ToggleSound extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand
{
var read, window;
function ToggleSound (manager) {
super(manager, NAME);
}
function execute(args, context, listener, sync) {
read(context);
window.sound.toggleMute();
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.ToggleSound";
}
Symbol 20708 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.state.AppState] Frame 0
class com.mindcandy.diablo.puzzle.controller.state.AppState extends com.mindcandy.diablo.puzzle.controller.state.State
{
function AppState (name) {
super(name);
}
static var IDLE = new com.mindcandy.diablo.puzzle.controller.state.AppState("nothing happening");
static var INITIALISING = new com.mindcandy.diablo.puzzle.controller.state.AppState("initialising");
static var DISPLAYING_INSTRUCTIONS = new com.mindcandy.diablo.puzzle.controller.state.AppState("displaying instructions");
static var DISPLAYING_MONSTERS = new com.mindcandy.diablo.puzzle.controller.state.AppState("displaying monster menu");
static var CANCELLING = new com.mindcandy.diablo.puzzle.controller.state.AppState("cancelling session");
static var STARTING_GAME = new com.mindcandy.diablo.puzzle.controller.state.AppState("starting game");
static var IN_GAME = new com.mindcandy.diablo.puzzle.controller.state.AppState("game on");
static var DISPLAYING_SCORES = new com.mindcandy.diablo.puzzle.controller.state.AppState("displaying scores");
static var QUITTING = new com.mindcandy.diablo.puzzle.controller.state.AppState("quitting");
static var SCORING = new com.mindcandy.diablo.puzzle.controller.state.AppState("scoring session");
static var DISPLAYING_ERROR = new com.mindcandy.diablo.puzzle.controller.state.AppState("displaying error");
}
Symbol 20709 MovieClip [__Packages.com.mindcandy.diablo.shared.events.MulticastingEventManager] Frame 0
class com.mindcandy.diablo.shared.events.MulticastingEventManager implements com.mindcandy.diablo.shared.events.EventManager
{
var listeners;
function MulticastingEventManager () {
listeners = new Array();
}
function register(listener) {
if (!isRegistered(listener)) {
listeners.push(listener);
}
}
function newEvent(id, type, context, source) {
var _local7 = new com.mindcandy.diablo.shared.events.BaseEvent(id, type, context, source);
trace((("f EVENT IS FIRED: " + type) + ", ") + source);
var _local8 = 0;
for ( ; (!_local7.isConsumed()) && (_local8 < listeners.length) ; _local8++) {
var _local6 = com.mindcandy.diablo.shared.events.EventListener(listeners[_local8]);
if (!_local6.getEventFilter().isFiltered(_local7)) {
_local6.notify(_local7);
}
}
}
function remove(listener) {
var _local3 = 0;
for ( ; _local3 < listeners.length ; _local3++) {
if (listeners[_local3] == listener) {
listeners.splice(_local3, 1);
break;
}
}
}
function isRegistered(listener) {
var _local3 = false;
var _local4 = 0;
for ( ; (!_local3) && (_local4 < listeners.length) ; _local4++) {
_local3 = _local3 || (listener == listeners[_local4]);
}
return(_local3);
}
}
Symbol 20710 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.PuzzleSession] Frame 0
class com.mindcandy.diablo.puzzle.model.PuzzleSession
{
var puzzleQueue, statistics, sessionId, puzzleInPlay, timeUp, lastMarkedPuzzle;
function PuzzleSession () {
puzzleQueue = new com.mindcandy.diablo.puzzle.model.PuzzleQueue();
statistics = new com.mindcandy.diablo.puzzle.model.PuzzleSessionStatistics();
}
function getPuzzleQueue() {
return(puzzleQueue);
}
function getSessionId() {
return(sessionId);
}
function getStatistics() {
return(statistics);
}
function setSessionId(sessionId) {
this.sessionId = sessionId;
}
function getPuzzleInPlay() {
return(puzzleInPlay);
}
function isTimeUp() {
return(timeUp);
}
function getLastMarkedPuzzle() {
return(lastMarkedPuzzle);
}
function flagTimeUp() {
timeUp = true;
}
function markPuzzleInPlay(correct) {
var _local3 = new com.mindcandy.diablo.puzzle.model.MarkedPuzzle(puzzleInPlay, correct);
lastMarkedPuzzle = _local3;
statistics.addMarkedPuzzle(_local3);
puzzleInPlay = null;
}
function getNextPuzzleFromQueue() {
puzzleInPlay = puzzleQueue.getNext();
}
function generateMarkingId() {
var _local2 = 0;
var _local3 = puzzleQueue.getOriginalQueue();
var _local4 = 0;
for ( ; _local4 < _local3.length ; _local4++) {
var _local5 = com.mindcandy.diablo.puzzle.model.Puzzle(_local3[_local4]);
var _local6 = _local5.getAnswers();
var _local7 = 0;
for ( ; _local7 < _local6.length ; _local7++) {
_local2 = _local2 + com.mindcandy.diablo.puzzle.model.Answer(_local6[_local7]).getId();
}
}
var _local8 = "";
_local8 = _local8 + _local2;
_local8 = _local8 + statistics.getRightAnswerCount();
_local8 = _local8 + statistics.getWrongAnswerCount();
_local8 = _local8 + com.mindcandy.diablo.shared.controller.Environment.getInstance().getUser().getUserId();
_local8 = _local8 + com.mindcandy.diablo.shared.controller.Environment.getInstance().getProperty("obfuscation.salt");
return(com.mindcandy.utils.encrypt.MD5.doHash(_local8));
}
}
Symbol 20711 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.PuzzleQueue] Frame 0
class com.mindcandy.diablo.puzzle.model.PuzzleQueue
{
var queue, original;
function PuzzleQueue () {
queue = new Array();
original = new Array();
}
function hasItems() {
return(queue.length > 0);
}
function getNext() {
return(com.mindcandy.diablo.puzzle.model.Puzzle(queue.shift()));
}
function add(item) {
queue.push(item);
original.push(item);
}
function peek() {
return(com.mindcandy.diablo.puzzle.model.Puzzle(queue[0]));
}
function generateImageList() {
var _local2 = new org.as2lib.data.holder.list.ArrayList();
var _local3 = 0;
for ( ; _local3 < queue.length ; _local3++) {
_local2.insertByValue(com.mindcandy.diablo.puzzle.model.Puzzle(queue[_local3]).getImage());
}
return(_local2);
}
function getQueue() {
return(queue);
}
function getOriginalQueue() {
return(original);
}
}
Symbol 20712 MovieClip [__Packages.com.mindcandy.diablo.shared.content.application.ApplicationWindow] Frame 0
class com.mindcandy.diablo.shared.content.application.ApplicationWindow
{
function ApplicationWindow () {
}
}
Symbol 20713 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.Puzzle] Frame 0
class com.mindcandy.diablo.puzzle.model.Puzzle
{
var id, category, difficulty, type, text, checksum, answers, image;
function Puzzle (id, category, difficulty, type, imageURL, text, checksum) {
this.id = id;
this.category = category;
this.difficulty = difficulty;
this.type = type;
this.text = text;
this.checksum = checksum;
answers = new Array();
image = new com.mindcandy.diablo.puzzle.model.PuzzleImage(id, imageURL);
}
function getID() {
return(id);
}
function getCategory() {
return(category);
}
function getDifficulty() {
return(difficulty);
}
function getType() {
return(type);
}
function getText() {
return(text);
}
function getAnswers() {
return(answers);
}
function addAnswer(answer) {
answers.push(answer);
}
function mark(answer) {
var _local3 = "";
_local3 = _local3 + "1";
_local3 = _local3 + com.mindcandy.diablo.shared.controller.Environment.getInstance().getProperty("obfuscation.salt");
_local3 = _local3 + answer.getId();
return(com.mindcandy.utils.encrypt.MD5.doHash(_local3) == checksum);
}
function getImage() {
return(image);
}
}
Symbol 20714 MovieClip [__Packages.org.osflash.zeroi.util.XMLUtils] Frame 0
class org.osflash.zeroi.util.XMLUtils
{
function XMLUtils () {
}
static function loadXML(path, callTarget, callFunc) {
var _local2 = new XML();
_local2.ignoreWhite = true;
_local2.onLoad = function (b) {
if (!b) {
trace("e loadXML failed " + path);
} else if (this.status != 0) {
trace((("w xml status not valid " + path) + " status ") + this.status);
}
callFunc.call(callTarget, b, this);
};
_local2.load(path);
}
static function byName(node, nodeName) {
if (node == null) {
return(null);
}
if (node.nodeName == nodeName) {
return(node);
}
return(byName(node.firstChild, nodeName) || (byName(node.nextSibling, nodeName) || null));
}
static function byValue(node, nodeName, attrName, attrValue) {
if (node == null) {
return(null);
}
if ((node.nodeName == nodeName) && (node.attributes[attrName] == attrValue)) {
return(node);
}
return(byValue(node.firstChild, nodeName, attrName, attrValue) || (byValue(node.nextSibling, nodeName, attrName, attrValue) || null));
}
}
Symbol 20715 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.QuestionPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.QuestionPanel extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var parent, questionField, imageHolder, puzzle, currentImage;
function QuestionPanel (target, parent) {
super(target);
this.parent = parent;
questionField = TextField(target.questionField);
imageHolder = target.imageA;
setDisplayText("");
}
function setDisplayText(data) {
questionField.text = com.mindcandy.utils.string.StringUtil.properCase(data);
}
function show(puzzle) {
this.puzzle = puzzle;
setDisplayText(puzzle.getText());
drawImage(parent.getImage(puzzle.getID()));
}
function drawImage(image) {
if (currentImage) {
currentImage.removeMovieClip();
}
currentImage = imageHolder.createEmptyMovieClip("image", 1);
currentImage.beginBitmapFill(image, null, false, true);
com.mindcandy.utils.movieclip.drawing.DrawRect.draw(currentImage, 0, 0, image.width, image.height);
currentImage.endFill();
currentImage._x = 0;
currentImage._y = 0;
imageHolder._visible = true;
currentImage._visible = true;
}
}
Symbol 20716 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.MarkingWidget] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.MarkingWidget extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var checkingClip, correctClip, wrongClip, checkingAnim, correctAnim, wrongAnim;
function MarkingWidget (target) {
super(target);
checkingClip = target.checkingClip;
correctClip = target.correctClip;
wrongClip = target.wrongClip;
checkingAnim = new com.mindcandy.diablo.shared.view.animation.FrameAnimation(checkingClip, -1);
correctAnim = new com.mindcandy.diablo.shared.view.animation.FrameAnimation(correctClip, 0);
wrongAnim = new com.mindcandy.diablo.shared.view.animation.FrameAnimation(wrongClip, 0);
}
function showChecking() {
checkingClip._visible = true;
correctClip._visible = false;
wrongClip._visible = false;
checkingAnim.start(null);
}
function showCorrect(listener) {
checkingClip._visible = false;
checkingAnim.destroy();
correctClip._visible = true;
wrongClip._visible = false;
correctAnim.start(listener);
}
function showWrong(listener) {
checkingClip._visible = false;
checkingAnim.destroy();
correctClip._visible = false;
wrongClip._visible = true;
wrongAnim.start(listener);
}
}
Symbol 20717 MovieClip [__Packages.com.mindcandy.diablo.shared.model.inventory.AssetChangeDetails] Frame 0
class com.mindcandy.diablo.shared.model.inventory.AssetChangeDetails extends com.mindcandy.diablo.shared.model.Entity
{
var id;
function AssetChangeDetails (id) {
super();
this.id = id;
}
function getId() {
return(id);
}
}
Symbol 20718 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.DisplayScores] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.DisplayScores extends com.mindcandy.diablo.puzzle.controller.command.PuzzleServiceCommand
{
var read, window, game, monster, getCurrentSession, env;
function DisplayScores () {
super();
}
function execute(args, context, listener, sync) {
read(context);
window.showScores(game, monster);
setupPromoCode();
setupMenuButtons();
window.clearSpring.trackEvent("Correct Answers in Round", getCurrentSession().getStatistics().getRightAnswerCount().toString());
window.clearSpring.trackEvent("Rounds Played", game.getGameStatistics().getGamesPlayed().toString());
}
function setupPromoCode() {
trace("f - _root[\"forcePromoCode\"] = " + _root.forcePromoCode);
if ((env.getProperty("minigame.puzzlechallenge.config.show_promo_code") == "true") || (_root.forcePromoCode == "true")) {
var _local2 = _root.promoCode;
}
window.scoresPanel.setPromoCode(_local2);
}
function setupMenuButtons() {
setupButton(window.scoresPanel.replayButton, true, com.mindcandy.diablo.puzzle.controller.event.AppEvent.REPLAY_BUTTON_PRESSED);
setupButton(window.scoresPanel.adoptButton, true, com.mindcandy.diablo.puzzle.controller.event.AppEvent.EXTERNAL_LINK_CLICKED);
setupButton(window.scoresPanel.logoButton, true, com.mindcandy.diablo.puzzle.controller.event.AppEvent.EXTERNAL_LINK_CLICKED);
}
function setupButton(button, active, eventName) {
button.setActive(active);
button.setEventName(eventName);
button.setEventType(com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_APP);
button.show();
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.DisplayScores";
}
Symbol 20719 MovieClip [__Packages.org.as2lib.data.holder.list.SubList] Frame 0
class org.as2lib.data.holder.list.SubList extends org.as2lib.data.holder.list.ArrayList
{
var list, offset, length;
function SubList (list, fromIndex, toIndex) {
super();
if (!list) {
throw new Error(("Argument 'list' [" + list) + "] must not be 'null' nor 'undefined'.", this, arguments);
}
if (fromIndex < 0) {
throw new Error(("Argument 'fromIndex' [" + fromIndex) + "] must not be less than 0.", this, arguments);
}
if (toIndex > list.size()) {
throw new Error(((("Argument 'toIndex' [" + toIndex) + "] must not be greater than the size of the passed-in 'list' [") + list.size()) + "].", this, arguments);
}
if (fromIndex > toIndex) {
throw new Error(((("Argument 'fromIndex' [" + fromIndex) + "] must not be greater than argument 'toIndex' [") + toIndex) + "].", this, arguments);
}
this.list = list;
offset = fromIndex;
length = toIndex - fromIndex;
}
function set(index, value) {
if ((index < 0) || (index >= size())) {
throw new Error(((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or equal to or greater than this list's size [") + size()) + "].", this, arguments);
}
return(list.set(offset + index, value));
}
function get(index) {
if ((index < 0) || (index >= size())) {
throw new Error(((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or equal to or greater than this list's size [") + size()) + "].", this, arguments);
}
return(list.get(offset + index));
}
function insertByIndexAndValue(index, value) {
if ((index < 0) || (index > size())) {
throw new Error(((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or greater than this list's size [") + size()) + "].", this, arguments);
}
list.insertByIndexAndValue(offset + index, value);
length++;
}
function removeByIndex(index) {
if ((index < 0) || (index >= size())) {
throw new Error(((("Argument 'index' [" + index) + "] is out of range, this is less than 0 or equal to or greater than this list's size [") + size()) + "].", this, arguments);
}
var _local3 = list.removeByIndex(offset + index);
length--;
return(_local3);
}
function clear(Void) {
do {
list.removeByIndex(offset);
} while ((--length) > 0);
}
function size(Void) {
return(length);
}
function iterator(Void) {
return(new org.as2lib.data.holder.list.ListIterator(this));
}
function toArray(Void) {
return(list.toArray().slice(offset, offset + length));
}
}
Symbol 20720 MovieClip [__Packages.com.mindcandy.diablo.shared.model.InventoryItem] Frame 0
class com.mindcandy.diablo.shared.model.InventoryItem extends com.mindcandy.diablo.shared.model.AssetItem
{
var room, entityXMLNodeName, state, typeStatus, gameDetails;
function InventoryItem (path, id, srcId, name, roomId, state, type, typeStatus, x, y, z, structureId, layer, tiles, animated, replacedefault, happiness, health, level, rocks, rarity, description, handler, args) {
super(path, id, srcId, name, room.getId(), type, x, y, z, structureId, layer, tiles, animated, replacedefault, _local27, args)
var _local27 = handler || "normal";
entityXMLNodeName = "inventoryitem";
roomId = roomId || -1;
trace("f room ID: " + roomId);
room = com.mindcandy.diablo.shared.controller.Environment.getInstance().getUser().getRoomByRoomId(roomId);
this.state = state || "";
this.typeStatus = typeStatus || "";
gameDetails = new com.mindcandy.diablo.shared.model.GameDetails(happiness, health, level, rocks, rarity, description, type);
}
function getRoom() {
return(room);
}
function getState() {
return(state);
}
function getTypeStatus() {
return(typeStatus);
}
function getGameDetails() {
return(gameDetails);
}
function setRoom(room) {
this.room = room;
}
function setTypeStatus(target) {
typeStatus = target;
}
function toString() {
var _local3 = super.toString();
_local3 = _local3 + ((" roomId=\"" + room.getId()) + "\"");
_local3 = _local3 + ((" state=\"" + state) + "\"");
_local3 = _local3 + ((" typeStatus=\"" + typeStatus) + "\"");
return(_local3);
}
}
Symbol 20721 MovieClip [__Packages.com.mindcandy.diablo.shared.model.StructureDetails] Frame 0
class com.mindcandy.diablo.shared.model.StructureDetails extends com.mindcandy.diablo.shared.model.GameElement
{
var entityXMLNodeName, layer, width, height, handler, args;
function StructureDetails (id, type, layer, width, height, x, y, z, handler, args) {
super(id, "structure" + id, 0, type, x, y, z);
entityXMLNodeName = "structuralelement";
this.layer = layer || "background";
this.width = width;
this.height = height;
this.handler = handler || null;
if (hasHandler()) {
this.args = new Object();
var _local13 = args.split("|#|");
var _local15 = 0;
for ( ; _local15 < _local13.length ; _local15++) {
var _local14 = _local13[_local15].split("::");
this.args[_local14[0]] = _local14[1];
}
}
}
function getWidth() {
return(width);
}
function getHeight() {
return(height);
}
function getLayer() {
return(layer);
}
function hasHandler() {
return(handler != null);
}
function getHandler() {
return(handler);
}
function getArgs() {
return(args);
}
function toString() {
var _local3 = super.toString();
_local3 = _local3 + ((" width=\"" + width) + "\"");
_local3 = _local3 + ((" height=\"" + height) + "\"");
_local3 = _local3 + ((" handler=\"" + handler) + "\"");
return(_local3);
}
}
Symbol 20722 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.mixer.GameSoundMixer] Frame 0
class com.mindcandy.diablo.shared.content.sound.mixer.GameSoundMixer implements com.mindcandy.diablo.shared.content.sound.mixer.SoundMixer
{
var mixerClip, listener, muted, channelMap, masterControl;
function GameSoundMixer (holder, listener) {
mixerClip = holder;
this.listener = listener;
muted = false;
channelMap = new com.mindcandy.data.holder.map.HashMap();
masterControl = new Sound();
masterControl.setVolume(FULL);
}
function add(channel) {
channelMap.put(channel.getName(), channel);
}
function getChannel(name) {
return(com.mindcandy.diablo.shared.content.sound.mixer.AudioChannel(channelMap.get(name)));
}
function getChannels() {
return(channelMap.iterator());
}
function getMasterVolume() {
return(masterControl.getVolume());
}
function setMasterVolume(level) {
masterControl.setVolume(level);
}
function toggleMuted() {
muted = !muted;
masterControl.setVolume((muted ? (MUTE) : (FULL)));
}
function stopAllClips() {
var _local2 = channelMap.iterator();
while (_local2.hasNext()) {
com.mindcandy.diablo.shared.content.sound.mixer.AudioChannel(_local2.next()).stopClip();
}
}
function isMuted() {
return(muted);
}
static var FULL = 100;
static var MUTE = 0;
}
Symbol 20723 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.SelectMonsterPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.SelectMonsterPanel extends com.mindcandy.diablo.puzzle.view.panel.LinkedPanel
{
var monsterPortraits, target;
function SelectMonsterPanel () {
super(LINKAGE_ID);
}
function show(listener) {
super.show(listener);
}
function showMonsterPortraits() {
monsterPortraits = new Array();
var _local2 = com.mindcandy.diablo.puzzle.model.MonsterType.getValues();
var _local3 = 0;
for ( ; _local3 < _local2.length ; _local3++) {
var _local4 = com.mindcandy.diablo.puzzle.model.MonsterType(_local2[_local3]);
monsterPortraits.push(new com.mindcandy.diablo.puzzle.view.panel.MonsterPortraitPanel(target, _local4));
}
}
function initHandlers() {
}
function clearHandlers() {
var _local2 = 0;
for ( ; _local2 < monsterPortraits.length ; _local2++) {
com.mindcandy.diablo.puzzle.view.panel.MonsterPortraitPanel(monsterPortraits[_local2]).destroy();
}
}
static var LINKAGE_ID = "lnkMainMenu";
}
Symbol 20724 MovieClip [__Packages.com.mindcandy.diablo.shared.content.graphics.GraphicalDetails] Frame 0
class com.mindcandy.diablo.shared.content.graphics.GraphicalDetails
{
var x, y, z, structureId, layer, tiles, animated, replacedefault, internalPhysics, internalSurfaces;
function GraphicalDetails (x, y, z, structureId, layer, tiles, animated, replacedefault) {
this.x = x || 0;
this.y = y || 0;
this.z = z || 0;
this.structureId = structureId;
this.layer = layer;
this.tiles = tiles;
this.animated = animated;
this.replacedefault = replacedefault;
internalPhysics = new org.as2lib.data.holder.list.ArrayList();
internalSurfaces = new org.as2lib.data.holder.list.ArrayList();
}
function getInternalPhysics() {
return(internalPhysics);
}
function setInternalPhysics(array) {
internalPhysics = new org.as2lib.data.holder.list.ArrayList(array);
}
function getInternalSurfaces() {
return(internalSurfaces);
}
function setInternalSurfaces(array) {
internalSurfaces = new org.as2lib.data.holder.list.ArrayList(array);
}
function getDefaultX() {
return(x);
}
function getDefaultY() {
return(y);
}
function getDefaultZ() {
return(z);
}
function getStructureId() {
return(structureId);
}
function getLayer() {
return(layer);
}
function getTiling() {
return(tiles);
}
function getAnimated() {
return(animated);
}
function getReplaceDefault() {
return(replacedefault);
}
function setDefaultX(target) {
x = target;
}
function setDefaultY(target) {
y = target;
}
function setDefaultZ(target) {
z = target;
}
}
Symbol 20725 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.ProgressBar] Frame 0
class com.mindcandy.diablo.puzzle.view.ProgressBar extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var timerMask, progressMask, colourStrip, barWidth, barColour, rA, gA, bA, rB, gB, bB;
function ProgressBar (target) {
super(target);
timerMask = target.timerMask;
progressMask = target.progressMask;
colourStrip = target.colourStrip;
barWidth = timerMask._width;
barColour = new Color(target);
}
function setColours(startValue, endValue) {
rA = startValue >> 16;
gA = (startValue >> 8) & 255;
bA = startValue & 255;
rB = endValue >> 16;
gB = (endValue >> 8) & 255;
bB = endValue & 255;
}
function update(percentCompleted) {
var _local3 = percentCompleted / 100;
var _local4 = 1 - _local3;
progressMask._x = barWidth * _local4;
colourStrip._x = -progressMask._x;
_global.updateAfterEvent();
}
function updateRGB(propCompleted) {
barColour.setRGB((((rA + ((rB - rA) * propCompleted)) << 16) | ((gA + ((gB - gA) * propCompleted)) << 8)) | (bA + ((bB - bA) * propCompleted)));
}
}
Symbol 20726 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.command.StartGame] Frame 0
class com.mindcandy.diablo.puzzle.controller.command.StartGame extends com.mindcandy.diablo.puzzle.controller.command.PuzzleCommand implements com.mindcandy.diablo.shared.view.animation.AnimationComplete
{
var read, window, fireEvent;
function StartGame (manager) {
super(manager);
}
function execute(args, context, listener, sync) {
read(context);
window.showGame();
window.sound.playGameMusic();
window.gamePanel.answerPanel.setButtonEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.ANSWER_SELECTED, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
window.gamePanel.timer.reset();
window.gamePanel.timer.setPeriod(COUNTDOWN_PERIOD);
window.gamePanel.timer.setEndGamePeriod(ENDGAME_PERIOD);
window.gamePanel.timer.start();
fireEvent(com.mindcandy.diablo.puzzle.controller.event.GameEvent.STARTED, com.mindcandy.diablo.puzzle.controller.event.PuzzleEventType.PUZZLE_GAME);
}
function animFinished(animationDetails) {
}
static var NAME = "com.mindcandy.diablo.puzzle.controller.command.StartGame";
static var COUNTDOWN_PERIOD = 60 * 1000;
static var ENDGAME_PERIOD = 1 * 1000;
}
Symbol 20727 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.SoundLibrary] Frame 0
class com.mindcandy.diablo.shared.content.sound.SoundLibrary implements com.mindcandy.diablo.shared.content.AssetMap
{
var map, holderClip;
function SoundLibrary (holderClip) {
map = new com.mindcandy.data.holder.map.HashMap();
this.holderClip = holderClip;
}
function put(item) {
map.put(item.getName(), item);
}
function putSound(item) {
put(item);
}
function lookup(name) {
return(lookupSound(name));
}
function lookupSound(name) {
return(com.mindcandy.diablo.shared.content.sound.SoundAsset(map.get(name)));
}
function remove(item) {
map.remove(item.getName());
}
function getNames(Void) {
return(map.keyIterator());
}
function getAssets(Void) {
return(map.iterator());
}
}
Symbol 20728 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.LoadingPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.LoadingPanel extends com.mindcandy.diablo.puzzle.view.panel.LinkedPanel
{
var progressBarWidth, progressBar, target, loadingText;
function LoadingPanel () {
super(LINKAGE_ID);
}
function updateProgress(pct) {
progressBar._x = (progressBarWidth * (pct / 100)) - progressBarWidth;
}
function playIntro(listener) {
listener.animFinished();
}
function initHandlers() {
target.gotoAndStop(1);
loadingText = TextField(target.loading.txtStatus);
progressBar = MovieClip(target.preloader.bar);
loadingText.text = LOADING_TEXT;
progressBarWidth = progressBar._width;
}
function clearHandlers() {
loadingText = null;
progressBar = null;
}
static var LINKAGE_ID = "lnkPuzzlesPreloader";
static var READY_TEXT = "Ready!";
static var LOADING_TEXT = "Loading Puzzles...";
}
Symbol 20729 MovieClip [__Packages.com.mindcandy.utils.encrypt.MD5] Frame 0
class com.mindcandy.utils.encrypt.MD5
{
function MD5 () {
}
static function bitAND(a, b) {
if ((a < 0) && (b < 0)) {
var _local4 = (a & 1) & (b & 1);
var _local5 = (a >>> 1) & (b >>> 1);
return((_local5 << 1) | _local4);
}
return(a & b);
}
static function rhex(num) {
var _local3 = "";
var _local4 = 0;
for ( ; _local4 <= 3 ; _local4++) {
_local3 = _local3 + (hex_chr.charAt(bitAND(num >> ((_local4 * 8) + 4), 15)) + hex_chr.charAt(bitAND(num >> (_local4 * 8), 15)));
}
return(_local3);
}
static function str2blks_MD5(str) {
var _local3 = ((str.length + 8) >> 6) + 1;
var _local4 = new Array(_local3 * 16);
var _local5 = 0;
for ( ; _local5 < (_local3 * 16) ; _local5++) {
_local4[_local5] = 0;
}
_local5 = 0;
for ( ; _local5 < str.length ; _local5++) {
_local4[_local5 >> 2] = _local4[_local5 >> 2] | (str.charCodeAt(_local5) << ((_local5 % 4) * 8));
}
_local4[_local5 >> 2] = _local4[_local5 >> 2] | (128 << ((_local5 % 4) * 8));
_local4[(_local3 * 16) - 2] = str.length * 8;
return(_local4);
}
static function addme(x, y) {
var _local4 = bitAND(x, 65535) + bitAND(y, 65535);
var _local5 = ((x >> 16) + (y >> 16)) + (_local4 >> 16);
return((_local5 << 16) | bitAND(_local4, 65535));
}
static function rol(num, cnt) {
return((num << cnt) | (num >>> (32 - cnt)));
}
static function cmn(q, a, b, x, s, t) {
return(addme(rol(addme(addme(a, q), addme(x, t)), s), b));
}
static function ff(a, b, c, d, x, s, t) {
return(cmn(bitAND(b, c) | bitAND(b ^ -1, d), a, b, x, s, t));
}
static function gg(a, b, c, d, x, s, t) {
return(cmn(bitAND(b, d) | bitAND(c, d ^ -1), a, b, x, s, t));
}
static function hh(a, b, c, d, x, s, t) {
return(cmn((b ^ c) ^ d, a, b, x, s, t));
}
static function ii(a, b, c, d, x, s, t) {
return(cmn(c ^ (b | (d ^ -1)), a, b, x, s, t));
}
static function doHash(targetString) {
var _local3 = targetString;
var _local4 = str2blks_MD5(_local3);
var _local5 = 1732584193 /* 0x67452301 */;
var _local6 = -271733879;
var _local7 = -1732584194;
var _local8 = 271733878 /* 0x10325476 */;
var _local9 = 0;
for ( ; _local9 < _local4.length ; _local9 = _local9 + 16) {
var _local10 = _local5;
var _local11 = _local6;
var _local12 = _local7;
var _local13 = _local8;
_local5 = ff(_local5, _local6, _local7, _local8, _local4[_local9 + 0], 7, -680876936);
_local8 = ff(_local8, _local5, _local6, _local7, _local4[_local9 + 1], 12, -389564586);
_local7 = ff(_local7, _local8, _local5, _local6, _local4[_local9 + 2], 17, 606105819);
_local6 = ff(_local6, _local7, _local8, _local5, _local4[_local9 + 3], 22, -1044525330);
_local5 = ff(_local5, _local6, _local7, _local8, _local4[_local9 + 4], 7, -176418897);
_local8 = ff(_local8, _local5, _local6, _local7, _local4[_local9 + 5], 12, 1200080426);
_local7 = ff(_local7, _local8, _local5, _local6, _local4[_local9 + 6], 17, -1473231341);
_local6 = ff(_local6, _local7, _local8, _local5, _local4[_local9 + 7], 22, -45705983);
_local5 = ff(_local5, _local6, _local7, _local8, _local4[_local9 + 8], 7, 1770035416);
_local8 = ff(_local8, _local5, _local6, _local7, _local4[_local9 + 9], 12, -1958414417);
_local7 = ff(_local7, _local8, _local5, _local6, _local4[_local9 + 10], 17, -42063);
_local6 = ff(_local6, _local7, _local8, _local5, _local4[_local9 + 11], 22, -1990404162);
_local5 = ff(_local5, _local6, _local7, _local8, _local4[_local9 + 12], 7, 1804603682);
_local8 = ff(_local8, _local5, _local6, _local7, _local4[_local9 + 13], 12, -40341101);
_local7 = ff(_local7, _local8, _local5, _local6, _local4[_local9 + 14], 17, -1502002290);
_local6 = ff(_local6, _local7, _local8, _local5, _local4[_local9 + 15], 22, 1236535329);
_local5 = gg(_local5, _local6, _local7, _local8, _local4[_local9 + 1], 5, -165796510);
_local8 = gg(_local8, _local5, _local6, _local7, _local4[_local9 + 6], 9, -1069501632);
_local7 = gg(_local7, _local8, _local5, _local6, _local4[_local9 + 11], 14, 643717713);
_local6 = gg(_local6, _local7, _local8, _local5, _local4[_local9 + 0], 20, -373897302);
_local5 = gg(_local5, _local6, _local7, _local8, _local4[_local9 + 5], 5, -701558691);
_local8 = gg(_local8, _local5, _local6, _local7, _local4[_local9 + 10], 9, 38016083);
_local7 = gg(_local7, _local8, _local5, _local6, _local4[_local9 + 15], 14, -660478335);
_local6 = gg(_local6, _local7, _local8, _local5, _local4[_local9 + 4], 20, -405537848);
_local5 = gg(_local5, _local6, _local7, _local8, _local4[_local9 + 9], 5, 568446438);
_local8 = gg(_local8, _local5, _local6, _local7, _local4[_local9 + 14], 9, -1019803690);
_local7 = gg(_local7, _local8, _local5, _local6, _local4[_local9 + 3], 14, -187363961);
_local6 = gg(_local6, _local7, _local8, _local5, _local4[_local9 + 8], 20, 1163531501);
_local5 = gg(_local5, _local6, _local7, _local8, _local4[_local9 + 13], 5, -1444681467);
_local8 = gg(_local8, _local5, _local6, _local7, _local4[_local9 + 2], 9, -51403784);
_local7 = gg(_local7, _local8, _local5, _local6, _local4[_local9 + 7], 14, 1735328473);
_local6 = gg(_local6, _local7, _local8, _local5, _local4[_local9 + 12], 20, -1926607734);
_local5 = hh(_local5, _local6, _local7, _local8, _local4[_local9 + 5], 4, -378558);
_local8 = hh(_local8, _local5, _local6, _local7, _local4[_local9 + 8], 11, -2022574463);
_local7 = hh(_local7, _local8, _local5, _local6, _local4[_local9 + 11], 16, 1839030562);
_local6 = hh(_local6, _local7, _local8, _local5, _local4[_local9 + 14], 23, -35309556);
_local5 = hh(_local5, _local6, _local7, _local8, _local4[_local9 + 1], 4, -1530992060);
_local8 = hh(_local8, _local5, _local6, _local7, _local4[_local9 + 4], 11, 1272893353);
_local7 = hh(_local7, _local8, _local5, _local6, _local4[_local9 + 7], 16, -155497632);
_local6 = hh(_local6, _local7, _local8, _local5, _local4[_local9 + 10], 23, -1094730640);
_local5 = hh(_local5, _local6, _local7, _local8, _local4[_local9 + 13], 4, 681279174);
_local8 = hh(_local8, _local5, _local6, _local7, _local4[_local9 + 0], 11, -358537222);
_local7 = hh(_local7, _local8, _local5, _local6, _local4[_local9 + 3], 16, -722521979);
_local6 = hh(_local6, _local7, _local8, _local5, _local4[_local9 + 6], 23, 76029189);
_local5 = hh(_local5, _local6, _local7, _local8, _local4[_local9 + 9], 4, -640364487);
_local8 = hh(_local8, _local5, _local6, _local7, _local4[_local9 + 12], 11, -421815835);
_local7 = hh(_local7, _local8, _local5, _local6, _local4[_local9 + 15], 16, 530742520);
_local6 = hh(_local6, _local7, _local8, _local5, _local4[_local9 + 2], 23, -995338651);
_local5 = ii(_local5, _local6, _local7, _local8, _local4[_local9 + 0], 6, -198630844);
_local8 = ii(_local8, _local5, _local6, _local7, _local4[_local9 + 7], 10, 1126891415);
_local7 = ii(_local7, _local8, _local5, _local6, _local4[_local9 + 14], 15, -1416354905);
_local6 = ii(_local6, _local7, _local8, _local5, _local4[_local9 + 5], 21, -57434055);
_local5 = ii(_local5, _local6, _local7, _local8, _local4[_local9 + 12], 6, 1700485571);
_local8 = ii(_local8, _local5, _local6, _local7, _local4[_local9 + 3], 10, -1894986606);
_local7 = ii(_local7, _local8, _local5, _local6, _local4[_local9 + 10], 15, -1051523);
_local6 = ii(_local6, _local7, _local8, _local5, _local4[_local9 + 1], 21, -2054922799);
_local5 = ii(_local5, _local6, _local7, _local8, _local4[_local9 + 8], 6, 1873313359);
_local8 = ii(_local8, _local5, _local6, _local7, _local4[_local9 + 15], 10, -30611744);
_local7 = ii(_local7, _local8, _local5, _local6, _local4[_local9 + 6], 15, -1560198380);
_local6 = ii(_local6, _local7, _local8, _local5, _local4[_local9 + 13], 21, 1309151649);
_local5 = ii(_local5, _local6, _local7, _local8, _local4[_local9 + 4], 6, -145523070);
_local8 = ii(_local8, _local5, _local6, _local7, _local4[_local9 + 11], 10, -1120210379);
_local7 = ii(_local7, _local8, _local5, _local6, _local4[_local9 + 2], 15, 718787259);
_local6 = ii(_local6, _local7, _local8, _local5, _local4[_local9 + 9], 21, -343485551);
_local5 = addme(_local5, _local10);
_local6 = addme(_local6, _local11);
_local7 = addme(_local7, _local12);
_local8 = addme(_local8, _local13);
}
return(((rhex(_local5) + rhex(_local6)) + rhex(_local7)) + rhex(_local8));
}
static var hex_chr = "0123456789abcdef";
}
Symbol 20730 MovieClip [__Packages.com.mindcandy.diablo.shared.xml.ContextSensitiveXML] Frame 0
class com.mindcandy.diablo.shared.xml.ContextSensitiveXML extends XML
{
var context;
function ContextSensitiveXML (text) {
super(text);
}
function getContext() {
return(context);
}
function setContext(data) {
context = data;
}
}
Symbol 20731 MovieClip [__Packages.com.mindcandy.diablo.shared.content.ExternalLibrary] Frame 0
class com.mindcandy.diablo.shared.content.ExternalLibrary implements com.mindcandy.diablo.shared.content.Asset
{
var libraryClip, assetDetails, loaded;
function ExternalLibrary (holderClip, url, loaded) {
var _local5 = "ExternalLibrary" + (++libraryId);
libraryClip = holderClip.createEmptyMovieClip(_local5, holderClip.getNextHighestDepth());
assetDetails = new com.mindcandy.diablo.shared.content.AssetDetails(_local5, -1, url, "esl");
this.loaded = loaded;
}
function getClip() {
return(libraryClip);
}
function isLoaded() {
return(loaded);
}
function setLoaded(complete) {
loaded = complete;
}
function getName() {
return(assetDetails.getId());
}
function getDetails() {
return(assetDetails);
}
function destroy() {
libraryClip.removeMovieClip();
}
static var libraryId = 0;
}
Symbol 20732 MovieClip [__Packages.com.mindcandy.utils.delegate.Delegate] Frame 0
class com.mindcandy.utils.delegate.Delegate extends Object
{
function Delegate () {
super();
}
static function create(obj, _func) {
stack[_i] = function () {
var _local2 = arguments.callee;
var _local3 = _local2._scope;
_func = _local2._func;
var _local4 = _local2._arg;
return(_func.apply(_local3, arguments.concat(_local4)));
};
var _local3 = stack[_i];
stack[_i]._scope = obj;
stack[_i]._func = _func;
stack[_i]._arg = arguments.splice(2);
stack[_i]._i = _i;
_i++;
return(_local3);
}
static function destroy(f) {
if ((!f) || (f._i == undefined)) {
return(undefined);
}
delete f._scope;
delete f._func;
delete f._arg;
delete stack[f._i];
delete f._i;
}
static var stack = {};
static var _i = 0;
}
Symbol 20733 MovieClip [__Packages.com.mindcandy.diablo.shared.model.User] Frame 0
class com.mindcandy.diablo.shared.model.User extends com.mindcandy.diablo.shared.model.Entity
{
var userid, username, age, gender, country, difficulty, entityXMLNodeName, friendCount, friendRequestCount, friendStatus, monster, rooms, setProp, commentCount, commentPendingCount;
function User (userid, username, age, gender, country) {
super();
this.userid = userid || 0;
this.username = username || "anonymous";
this.age = age || 0;
this.gender = gender || (GENDER_MALE);
this.country = country || "GB";
difficulty = 0;
entityXMLNodeName = "User";
friendCount = 0;
friendRequestCount = 0;
friendStatus = STATUS_NOT_FRIEND;
monster = new com.mindcandy.diablo.shared.model.Monster();
rooms = new com.mindcandy.data.holder.map.HashMap();
rooms.put(com.mindcandy.diablo.shared.model.Room.INVENTORY, new com.mindcandy.diablo.shared.model.Room(-1, "inventory"));
setProp("canPlayPuzzles", false);
}
function isFriends() {
return(friendStatus == STATUS_FRIEND);
}
function getUsername() {
return(username);
}
function getAge() {
return(age);
}
function getGender() {
return(gender);
}
function getCountry() {
return(country);
}
function getDifficulty() {
return(difficulty);
}
function setDifficulty(difficulty) {
this.difficulty = difficulty;
}
function getUserId() {
return(userid);
}
function getFriendCount() {
return(friendCount);
}
function getFriendRequestCount() {
return(friendRequestCount);
}
function setFriendCount(count) {
friendCount = count;
}
function setFriendRequestCount(count) {
friendRequestCount = count;
}
function getFriendStatus() {
return(friendStatus);
}
function setFriendStatus(friendStatus) {
this.friendStatus = friendStatus;
}
function getCommentCount() {
return(commentCount);
}
function getCommentPendingCount() {
return(commentPendingCount);
}
function setCommentCount(commentCount) {
this.commentCount = commentCount;
}
function setCommentPendingCount(commentPendingCount) {
this.commentPendingCount = commentPendingCount;
}
function setUserId(userid) {
this.userid = userid;
}
function setUsername(username) {
this.username = username;
}
function setAge(age) {
this.age = age;
}
function setGender(gender) {
this.gender = gender;
}
function setCountry(country) {
this.country = country;
}
function getRoom(type) {
return(rooms.get(type));
}
function addRoom(type, room) {
rooms.put(type, room);
}
function getRoomByRoomId(roomId) {
var _local3 = rooms.valueIterator();
while (_local3.hasNext()) {
var _local4 = com.mindcandy.diablo.shared.model.Room(_local3.next());
if (_local4.getId() == roomId) {
return(_local4);
}
}
}
function getMonster() {
return(monster);
}
function setMonster(monster) {
this.monster = monster;
}
static var STATUS_NOT_FRIEND = 0;
static var STATUS_REQUESTER = 1;
static var STATUS_REQUESTEE = 2;
static var STATUS_FRIEND = 3;
static var GENDER_MALE = "M";
static var GENDER_FEMALE = "F";
}
Symbol 20734 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.commands.DefaultCommandManager] Frame 0
class com.mindcandy.diablo.shared.controller.commands.DefaultCommandManager implements com.mindcandy.diablo.shared.controller.commands.CommandManager
{
var commandMap;
function DefaultCommandManager () {
commandMap = new com.mindcandy.data.holder.map.HashMap();
}
function register(name, commandClass) {
if (createInstance(commandClass) != null) {
commandMap.put(name, commandClass);
} else {
trace("f failed to register commmand " + name);
}
}
function create(className) {
var _local3 = Function(commandMap.get(className));
return(((_local3 != null) ? (createInstance(_local3)) : null));
}
function fire(name, args, context, listener, sync) {
var _local7 = create(name);
_local7.execute(args, context, listener, sync);
return(_local7);
}
function getCommandMap() {
return(commandMap);
}
function handleCommandComplete(command) {
}
function handleCommandFailed(command, reason) {
}
function createInstance(commandClass) {
if (!commandClass) {
return(null);
}
var _local3 = new Object();
_local3.__proto__ = commandClass.prototype;
_local3.__constructor__ = commandClass;
commandClass.apply(_local3, [this]);
return(((_local3 instanceof com.mindcandy.diablo.shared.controller.commands.Command) ? (com.mindcandy.diablo.shared.controller.commands.Command(_local3)) : null));
}
function remove(commandName) {
commandMap.remove(commandName);
}
}
Symbol 20735 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.GameWindow] Frame 0
class com.mindcandy.diablo.puzzle.view.GameWindow extends com.mindcandy.diablo.shared.view.BaseViewObject implements com.mindcandy.diablo.shared.view.dialogues.DialogueListener
{
var target, panelGuide, imageHolder, dialoguePanel, glassPanel, monsterCliff, clearSpring, selectMonsterPanel, loadPanel, instructionsPanel, countPanel, gamePanel, scoresPanel, scoringPanel, sound, slime, background, selectedPanel, imageCache, thumbCache, listener, errorDialogue;
function GameWindow (timeline, env) {
super();
target = timeline.attachMovie("PuzzlePalace", "puzzlePalace", timeline.getNextHighestDepth());
panelGuide = target.panelGuide;
imageHolder = target.createEmptyMovieClip("imageHolder", target.getNextHighestDepth());
imageHolder._visible = false;
dialoguePanel = timeline.createEmptyMovieClip("dialoguePanel", timeline.getNextHighestDepth());
glassPanel = new com.mindcandy.diablo.shared.view.GlassPanel(target.glassPanel);
monsterCliff = new com.mindcandy.diablo.puzzle.view.panel.MonsterCliffPannel(target);
clearSpring = new com.mindcandy.diablo.puzzle.view.ClearSpringAnalytics();
selectMonsterPanel = new com.mindcandy.diablo.puzzle.view.panel.SelectMonsterPanel();
loadPanel = new com.mindcandy.diablo.puzzle.view.panel.LoadingPanel();
instructionsPanel = new com.mindcandy.diablo.puzzle.view.panel.InstructionsPanel();
countPanel = new com.mindcandy.diablo.puzzle.view.panel.CountdownPanel();
gamePanel = new com.mindcandy.diablo.puzzle.view.panel.GamePanel(this);
scoresPanel = new com.mindcandy.diablo.puzzle.view.panel.ScoresPanel();
scoringPanel = new com.mindcandy.diablo.puzzle.view.panel.ScoringPanel();
sound = new com.mindcandy.diablo.puzzle.view.GhettoBlaster(timeline, env);
slime = new com.mindcandy.diablo.puzzle.view.SlimeCurtain(timeline, glassPanel);
background = new com.mindcandy.diablo.puzzle.view.Background(timeline.backgroundHolder);
}
function showMonsterMenu(listener, palace) {
switchTo(selectMonsterPanel);
selectMonsterPanel.showMonsterPortraits(palace);
listener.animFinished();
}
function showLoad(listener) {
switchTo(loadPanel, listener);
}
function showInstructions(listener) {
background.switchTo("lnkGameBackground");
switchTo(instructionsPanel, listener);
}
function showCountdown(listener) {
switchTo(countPanel, listener);
}
function showGame(listener) {
switchTo(gamePanel, listener);
}
function showResult(markedPuzzle, listener) {
sound.playResultSound(markedPuzzle.isCorrect());
gamePanel.showResult(markedPuzzle, listener);
}
function showScoring() {
switchTo(scoringPanel);
}
function showScores(palace, monster, listener) {
switchTo(scoresPanel, listener);
scoresPanel.showScores(palace, monster);
}
function clear() {
switchTo(null);
clearImageCache();
clearThumbCache();
}
function switchTo(panel, listener) {
if (panel != selectedPanel) {
selectedPanel.remove();
panel.attach(panelGuide);
panel.show(listener);
selectedPanel = panel;
}
}
function getImageHolder() {
return(imageHolder);
}
function getImage(id) {
return(imageCache.get(id));
}
function setImageCache(newImages) {
clearImageCache();
imageCache = newImages;
}
function clearImageCache() {
if (imageCache && (imageCache.size() > 0)) {
imageCache.clear();
}
}
function getThumb(id) {
return(thumbCache.get(id));
}
function setThumbCache(newThumbs) {
clearThumbCache();
thumbCache = newThumbs;
}
function clearThumbCache() {
if (thumbCache && (thumbCache.size() > 0)) {
thumbCache.clear();
}
}
function showError(title, message, terminal, listener) {
this.listener = listener;
glassPanel.activateGlassPanel();
if (errorDialogue) {
errorDialogue.destroy();
}
errorDialogue = new com.mindcandy.diablo.shared.view.dialogues.ErrorBox(dialoguePanel, !terminal, this);
errorDialogue.create(title, message, getMidpoint());
}
function getMidpoint() {
return(new flash.geom.Point((Stage.width / 2) - 130, (Stage.height / 2) - 30));
}
function getDialoguePanel() {
return(dialoguePanel);
}
function destroy() {
clear();
sound.destroy();
super.destroy();
}
function handleDialogueResponse(response, dialogue) {
errorDialogue.destroy();
glassPanel.disableGlassPanel();
listener.handleDialogueResponse(response, dialogue);
}
}
Symbol 20736 MovieClip [__Packages.com.mindcandy.diablo.shared.content.loaders.ImageLoader] Frame 0
class com.mindcandy.diablo.shared.content.loaders.ImageLoader extends com.mindcandy.diablo.shared.content.loaders.GraphicsLoader implements com.mindcandy.diablo.shared.content.AssetFileLoader
{
var imageAssetLoader, imageAssetLoadListener, targetURL, targetClip, manager;
function ImageLoader (loadItem, assetLoader) {
super(com.mindcandy.diablo.shared.content.graphics.GraphicalAsset(loadItem), assetLoader, "movieclip");
}
function startLoad() {
var scope = this;
imageAssetLoader = new MovieClipLoader();
imageAssetLoadListener = new Object();
imageAssetLoadListener.onLoadProgress = function (target_mc, bytesLoaded, bytesTotal) {
scope.percentageLoaded = (bytesLoaded / bytesTotal) * 100;
};
imageAssetLoadListener.onLoadStart = function (target_mc) {
target_mc._visible = false;
};
imageAssetLoadListener.onLoadComplete = function (target_mc) {
};
imageAssetLoadListener.onLoadInit = function (target_mc) {
scope.loadComplete();
};
imageAssetLoadListener.onLoadError = function (target_mc, errorCode, httpStatus) {
scope.loadFailed("Could not load image file:\n " + scope.targetURL);
};
imageAssetLoader.addListener(imageAssetLoadListener);
imageAssetLoader.loadClip(targetURL, targetClip);
}
function loadComplete() {
manager.handleLoadComplete(this);
destroy();
}
function destroy() {
imageAssetLoader.removeListener(imageAssetLoadListener);
imageAssetLoader = null;
imageAssetLoadListener = null;
super.destroy();
}
}
Symbol 20737 MovieClip [__Packages.com.mindcandy.diablo.puzzle.controller.MonsterAnimController] Frame 0
class com.mindcandy.diablo.puzzle.controller.MonsterAnimController implements com.mindcandy.diablo.shared.view.animation.AnimationListener
{
var monster, panel, animMap, activeAnim;
function MonsterAnimController (monster, panel) {
this.monster = monster;
this.panel = panel;
setupAnimMap();
}
function play(mood, listener) {
stop();
var _local4 = com.mindcandy.diablo.shared.view.animation.Animation(animMap.get(getLinkageNameFor(mood)));
if (_local4 == null) {
trace((("f Failed to retrieve LinkageAnimation for MonsterType: " + monster.getName()) + ", mood: ") + mood.getName());
return(undefined);
}
_local4.addListener(listener);
_local4.addListener(this);
_local4.play(getNumberOfLoopsRequiredFor(mood));
activeAnim = _local4;
}
function stop() {
if (activeAnim != null) {
activeAnim.destroy();
}
}
function setupAnimMap() {
animMap = new com.mindcandy.data.holder.map.HashMap();
var _local2 = com.mindcandy.diablo.puzzle.model.MonsterMoodType.getValues();
var _local3 = 0;
for ( ; _local3 < _local2.length ; _local3++) {
var _local4 = com.mindcandy.diablo.puzzle.model.MonsterMoodType(_local2[_local3]);
var _local5 = new com.mindcandy.diablo.shared.view.animation.LinkedAnimation(panel, getLinkageNameFor(_local4));
animMap.put(_local5.getKey(), _local5);
}
}
function getLinkageNameFor(mood) {
return(("lnk" + monster.getName()) + mood.getName());
}
function getActiveAnim() {
return(activeAnim);
}
function getNumberOfLoopsRequiredFor(mood) {
return(((mood == com.mindcandy.diablo.puzzle.model.MonsterMoodType.IDLE) ? (com.mindcandy.diablo.shared.view.animation.LinkedAnimation.INFINITE) : 0));
}
function handleComplete(anim) {
}
function handleInterrupt(anim) {
trace("d Animation Interrupted: " + anim.getClip());
}
function handleSetup(anim, clip) {
com.mindcandy.diablo.shared.view.animation.LinkedAnimation(anim).setTotalFrames(MovieClip(clip.anim)._totalframes);
}
function destroy() {
var _local2 = animMap.valueIterator();
while (_local2.hasNext()) {
com.mindcandy.diablo.shared.view.animation.Animation(_local2).destroy();
_local2.next();
}
animMap.clear();
}
}
Symbol 20738 MovieClip [__Packages.com.mindcandy.diablo.shared.content.sound.SoundType] Frame 0
class com.mindcandy.diablo.shared.content.sound.SoundType
{
var name;
function SoundType (name) {
this.name = name;
typeMap.put(name, this);
}
function toString() {
return(name);
}
static function valueOf(name) {
return((typeMap.containsKey(name) ? (typeMap.get(name)) : null));
}
static var typeMap = new com.mindcandy.data.holder.map.HashMap();
static var MUSIC = new com.mindcandy.diablo.shared.content.sound.SoundType("music");
static var FX = new com.mindcandy.diablo.shared.content.sound.SoundType("fx");
static var SPEECH = new com.mindcandy.diablo.shared.content.sound.SoundType("speech");
}
Symbol 20739 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.Background] Frame 0
class com.mindcandy.diablo.puzzle.view.Background extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var target, holder;
function Background (target) {
super();
this.target = target;
holder = target.background;
}
function switchTo(newBackground) {
holder.unloadMovie();
holder = target.attachMovie(newBackground, "background", target.getNextHighestDepth());
holder.stop();
}
}
Symbol 20740 MovieClip [__Packages.com.mindcandy.diablo.shared.controller.scripting.FunctionManager] Frame 0
class com.mindcandy.diablo.shared.controller.scripting.FunctionManager
{
function FunctionManager () {
}
}
Symbol 20741 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.ScoresPanel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.ScoresPanel extends com.mindcandy.diablo.puzzle.view.panel.LinkedPanel
{
var target, feedbackText, promocode, replayButton, adoptButton, logoButton;
function ScoresPanel () {
super(LINKAGE_ID);
}
function showScores(game, monster) {
TextField(target.scoreHolder.score.txtScore).text = game.getCurrentSession().getStatistics().getRightAnswerCount().toString();
TextField(target.bestHolder.best.txtBest).text = game.getGameStatistics().getHighScore().toString();
displayMonsterComment(monster, game.getCurrentSession().getStatistics().getRightAnswerCount());
}
function setPromoCode(code) {
if ((code == undefined) || (code == "")) {
target.promocodeHolder._visible = false;
feedbackText.text = TEXT_NO_PROMO_CODE;
} else {
target.promocodeHolder._visible = true;
promocode.text = code;
feedbackText.text = TEXT_PROMO_CODE;
}
}
function displayMonsterComment(monster, score) {
if (score < 3) {
var _local4 = "RAAAARGH!";
} else if (score < 6) {
var _local4 = "Yikes! You\ncan do better!";
} else if (score < 9) {
var _local4 = "Oh yeah!\nGood work.";
} else if (score < 12) {
var _local4 = "WOO WOO!\nCheck you out!";
} else if (score < 18) {
var _local4 = "FANGTASTIC!";
} else {
var _local4 = "Wow, you are\nthe puzzlemeister!";
}
monster.talk(_local4, true);
if (score < 6) {
monster.react(com.mindcandy.diablo.puzzle.model.MonsterMoodType.SAD);
} else {
monster.react(com.mindcandy.diablo.puzzle.model.MonsterMoodType.HAPPY);
}
}
function initHandlers() {
target.gotoAndStop(1);
replayButton = new com.mindcandy.diablo.puzzle.view.button.ReplayButton(target.btnReplay);
feedbackText = TextField(target.feedbackHolder.feedback.txtFeedback);
promocode = TextField(target.promocodeHolder.promocode.txtPromocode);
adoptButton = new com.mindcandy.diablo.puzzle.view.button.PuzzleMenuButton(target.adopt.btnAdopt);
adoptButton.setProperty("url", "http://www.moshimonsters.com/");
logoButton = new com.mindcandy.diablo.puzzle.view.button.PuzzleMenuButton(target.adopt.btnLogo);
logoButton.setProperty("url", "http://www.moshimonsters.com/");
}
function clearHandlers() {
replayButton.destroy();
adoptButton.destroy();
}
static var LINKAGE_ID = "lnkEndScreen";
static var TEXT_NO_PROMO_CODE = "Congratulations!\n\nIf you'd like to play more, why not adopt a monster of your very own, then you can play every day!";
static var TEXT_PROMO_CODE = "Congratulations! Use the code below to collect an EXCLUSIVE item when you adopt your pet monster.";
}
Symbol 20742 MovieClip [__Packages.com.mindcandy.diablo.puzzle.model.Game] Frame 0
class com.mindcandy.diablo.puzzle.model.Game extends com.mindcandy.diablo.shared.model.Entity
{
var monster, gameStatistics, puzzleSet, currentSession;
function Game (monster) {
super();
this.monster = monster;
gameStatistics = new com.mindcandy.diablo.puzzle.model.GameStatistics();
puzzleSet = Math.floor(Math.random() * AVALIALBE_PUZZLE_SESSIONS) + 1;
}
function getCurrentSession() {
return(currentSession);
}
function setCurrentSession(currentSession) {
this.currentSession = currentSession;
}
function getMonster() {
trace("Monster: " + monster.getName());
return(monster);
}
function getPuzzleSet() {
return(((puzzleSet >= AVALIALBE_PUZZLE_SESSIONS) ? 1 : (puzzleSet++)));
}
function getGameStatistics() {
return(gameStatistics);
}
function userBeatHighScore() {
trace((((("i - Games Played: " + gameStatistics.getGamesPlayed()) + ", highScore: ") + gameStatistics.getHighScore()) + ", first score: ") + gameStatistics.getScores()[0]);
if ((gameStatistics.getGamesPlayed() > 1) && (gameStatistics.getHighScore() > gameStatistics.getScores()[0])) {
return(true);
}
return(false);
}
static var AVALIALBE_PUZZLE_SESSIONS = 30;
}
Symbol 20743 MovieClip [__Packages.com.mindcandy.diablo.shared.content.AssetDetails] Frame 0
class com.mindcandy.diablo.shared.content.AssetDetails
{
var id, srcId, path, type;
function AssetDetails (id, srcId, path, type) {
this.id = id;
this.srcId = srcId || -1;
this.path = path;
this.type = type;
}
function getId() {
return(id);
}
function getPath() {
return(path);
}
function getFileType() {
return(type);
}
function toString() {
return((((("id: " + id) + " path: ") + path) + " type: ") + type);
}
function setPath(path) {
this.path = path;
}
function getSrcId() {
return(srcId);
}
function setFileType(type) {
this.type = type;
}
}
Symbol 20744 MovieClip [__Packages.com.mindcandy.diablo.puzzle.view.panel.MonsterCliffPannel] Frame 0
class com.mindcandy.diablo.puzzle.view.panel.MonsterCliffPannel extends com.mindcandy.diablo.shared.view.BaseViewObject
{
var cliffAnimation, target, monsterClip;
function MonsterCliffPannel (target) {
super();
cliffAnimation = new com.mindcandy.diablo.shared.view.animation.LinkedAnimation(target, CLIFF_LINKAGE_NAME);
}
function animate(listener) {
cliffAnimation.addListener(listener);
cliffAnimation.play(0);
target = cliffAnimation.getClip();
monsterClip = target.guideMonster;
}
function destroy() {
cliffAnimation.destroy();
super.destroy();
}
static var CLIFF_LINKAGE_NAME = "lnkCliff";
}