Frame 2
if ((this.getBytesLoaded() / this.getBytesTotal()) < 1) {
gotoAndPlay (1);
}
Frame 3
Stage.showMenu = false;
_lockroot = true;
MochiAd.showPreGameAd({id:"5956c7307d045a6a", res:"550x400", background:16777161, color:746560, outline:9099141, no_bg:true});
stop();
Frame 5
var gameUI = (new klondike.cSolitaireUI(this));
stop();
Frame 10
gotoAndStop (6);
Symbol 58 MovieClip Frame 1
stop();
Symbol 60 MovieClip Frame 1
stop();
Symbol 60 MovieClip Frame 2
stop();
Symbol 63 MovieClip [deckSymbol] Frame 1
stop();
Symbol 63 MovieClip [deckSymbol] Frame 8
stop();
Symbol 63 MovieClip [deckSymbol] Frame 9
stop();
Symbol 75 MovieClip Frame 1
stop();
Symbol 112 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("2.1");
}
static function showPreGameAd(options) {
var _local27 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local27);
var clip = options.clip;
var _local23 = 11000;
var _local26 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local7._x = 10;
_local7._y = _local13 - 20;
var _local22 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local7.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local7.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local6 = _local7.createEmptyMovieClip("_outline", 3);
_local6.lineStyle(0, _local24, 100);
_local6.moveTo(0, 0);
_local6.lineTo(_local4 - 20, 0);
_local6.lineTo(_local4 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local26;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showInterLevelAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showTimedAd(options) {
showInterLevelAd(options);
}
static function showPreloaderAd(options) {
showPreGameAd(options);
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function _loadCommunicator(options) {
var _local26 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = _parseOptions(options, _local26);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local18 = options.clip;
var _local20 = "_mochiad_com_" + options.id;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local18[_local20]) {
return(_local18[_local20].lc);
}
var _local21 = options.com_server + options.id;
_allowDomains(_local21);
delete options.id;
delete options.com_server;
var _local25 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local25);
var _local11 = _local17.createEmptyMovieClip("_mochiad_com", 1);
for (var _local15 in options) {
_local11[_local15] = options[_local15];
}
var _local6 = new LocalConnection();
var _local16 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local6.mc = _local17;
_local6.name = _local16;
_local6.allowDomain = function (d) {
return(true);
};
_local6.allowInsecureDomain = _local6.allowDomain;
_local6.connect(_local16);
_local17.lc = _local6;
_local11.lc = _local16;
_local6._id = 0;
_local6._queue = [];
_local6.rpcResult = function (cb_arg) {
var _local8 = parseInt(cb_arg);
var _local4 = this._callbacks[_local8];
if (!_local4) {
return(undefined);
}
delete this._callbacks[_local8];
var _local5 = [];
var _local3 = 2;
while (_local3 < _local4.length) {
_local5.push(_local4[_local3]);
_local3++;
}
_local3 = 1;
while (_local3 < arguments.length) {
_local5.push(arguments[_local3]);
_local3++;
}
var _local6 = _local4[1];
var _local7 = _local4[0];
if (_local7 && (typeof(_local6) == "string")) {
_local6 = _local7[_local6];
}
if (_local6) {
_local6.apply(_local7, _local5);
}
};
_local6._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local4 = this._queue;
delete this._queue;
var _local5 = this.doSend;
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2];
_local5.apply(this, _local3);
_local2++;
}
};
_local6.doSend = function (args, cbobj, cbfn) {
if (this._endpoint == null) {
var _local4 = [];
var _local3 = 0;
while (_local3 < arguments.length) {
_local4.push(arguments[_local3]);
_local3++;
}
this._queue.push(_local4);
return(undefined);
}
this._id = this._id + 1;
var _local5 = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[_local5] = [cbobj, cbfn];
var _local7 = new LocalConnection();
var _local9 = _local7.send(this._endpoint, "rpc", _local5, args);
};
_local6._callbacks = {};
_local6._callbacks[0] = [_local6, "_didConnect"];
_local11.st = getTimer();
_local11.loadMovie(_local21 + ".swf", "POST");
return(_local6);
}
static function fetchHighScores(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["fetchHighScores", options];
_local1.doSend(["fetchHighScores", options], callbackObj, callbackMethod);
return(true);
}
static function sendHighScore(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["sendHighScore", options];
_local1.doSend(["sendHighScore", options], callbackObj, callbackMethod);
return(true);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local9 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local9._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local9.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local9._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local7 in options) {
_local4[_local7] = options[_local7];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local8 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local8;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local8);
_local6.lc = _local5;
_local4.lc = _local8;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local4);
}
}
Symbol 113 MovieClip [__Packages.klondike.cSolitaireUI] Frame 0
class klondike.cSolitaireUI
{
var scene, columnsArr, homeStackArr, suits, values, cardsStack, cardsDeck, dynamicDepth, isStartingGame, ScoreAPI, gameScore, gameTimer, score_tf, clickIsAllowed;
function cSolitaireUI (_scene) {
scene = _scene;
columnsArr = new Array();
homeStackArr = new Array();
suits = new Array("c", "d", "h", "s");
values = new Array("A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K");
var _local8 = scene.createEmptyMovieClip("mask_mc", 888);
_local8.beginFill(16711680);
_local8.moveTo(0, 0);
_local8.lineTo(scene._width, 0);
_local8.lineTo(scene._width, scene._height);
_local8.lineTo(0, scene._height);
_local8.lineTo(0, 0);
_local8.endFill();
var _local10 = scene.createEmptyMovieClip("stack", 100);
_local10.setMask(_local8);
_local10._x = 50;
_local10._y = 150;
var _local9 = scene.createEmptyMovieClip("deck_mc", 90);
_local9._x = 65;
_local9._y = 56;
_local9.attachMovie("deckBgSymbol2", "bg_mc", 0, {_x:0, _y:0});
cardsStack = new cDraggableStack(this, _local10);
cardsDeck = new cDeck(this, _local9, ID_CARD_DECK);
cardsDeck.setter(1, -1);
var _local2 = 0;
while (_local2 <= 6) {
var _local5 = new klondike.cColumn(this, scene["column" + _local2], _local2);
columnsArr.push(_local5);
_local2++;
}
_local2 = 0;
while (_local2 <= 3) {
var _local3 = scene.createEmptyMovieClip("homeStack_mc" + _local2, 80 + _local2);
_local3._x = 275 + (70 * _local2);
_local3._y = 56;
_local3.attachMovie("deckBgSymbol", "bg_mc", 0, {_x:0, _y:0});
var _local4 = new cHomeStack(this, _local3, 20 + _local2);
homeStackArr.push(_local4);
_local2++;
}
trace("cSolitaireUI");
trayInit();
init();
}
function shuffleDeck() {
var _local4 = new Array();
var _local5 = "";
var _local6;
var _local3 = 0;
while (_local3 < suits.length) {
var _local2 = 0;
while (_local2 < values.length) {
_local5 = values[_local2] + suits[_local3];
_local6 = Math.floor(Math.random() * (_local4.length + 1));
_local4.splice(_local6, 0, _local5);
_local2++;
}
_local3++;
}
return(_local4);
}
function init(Void) {
dynamicDepth = 1000;
isStartingGame = true;
activateGameOverBtn(false);
setRulesPanelVisible(false);
var _local5 = shuffleDeck();
ScoreAPI = new LocalConnection();
var _local4 = 0;
var _local7;
var _local6 = 0;
var _local3 = 0;
while (_local3 <= 6) {
_local4++;
var _local2 = 1;
while (_local2 <= _local4) {
_local7 = Math.floor(Math.random() * _local5.length);
_local6++;
createMovingCards(_local3, _local2 - 1, _local5.splice(_local7, 1)[0], ((_local4 == _local2) ? true : false), _local6 * 100);
_local2++;
}
_local3++;
}
scene.tray.logo.onPress = cCallBack.point(this, openSolMasters, null);
cardsDeck.addCards(_local5);
setClickIsAllowed(true);
isStartingGame = false;
dynamicDepth = 1000;
gameScore = 0;
gameTimer = 0;
addScore(0);
cTimer.delay(this, activateGameOverBtn, 3000, [true]);
}
function openSolMasters(Void) {
getURL ("http://www.solitairemasters.com/", "_blank");
}
function createMovingCards(column, index, value, open, delay) {
addCardToControl(column, value, open);
var _local2 = columnsArr[column].getLastCard();
_local2._visible = false;
var _local6 = cCallBack.point(this, showCard, [column, index]);
var _local3 = {x:0, y:0};
var _local5 = {x:_local2._x, y:_local2._y};
columnsArr[column].getUI().localToGlobal(_local5);
scene.deck_mc.localToGlobal(_local3);
cTimer.delay(this, moveCard, delay, [value, open, _local6, _local3, _local5, getDynamicDepth()]);
}
function moveCard(val, open, cbk, start, end, depth_) {
new cFlyingCard(scene, val, open, cbk, start, end, depth_);
}
function showCard(column, index) {
columnsArr[column].setCardVisible(index);
}
function addCardToControl(targetID, cardValue, isOpen) {
if (targetID >= 20) {
homeStackArr[targetID - 20].addCard(cardValue, isOpen);
} else {
columnsArr[targetID].addCard(cardValue, isOpen);
}
}
function gameOver(Void) {
var _local3 = scene.attachMovie("gameOverSymbol", "gameOverPanel", 200, {_x:196, _y:125});
var _local9 = 8;
var _local5 = 45;
var _local8 = 0;
var _local16 = 1;
var _local12 = 5;
var _local11 = 5;
var _local14 = 0.5;
var _local6 = 3;
var _local10 = false;
var _local15 = false;
var _local13 = false;
var _local7 = new flash.filters.DropShadowFilter(_local9, _local5, _local8, _local16, _local12, _local11, _local14, _local6, _local10, _local15, _local13);
var _local4 = new Array();
_local4.push(_local7);
_local3.filters = _local4;
activateGameOverBtn(false);
setClickIsAllowed(false);
setPopUpGameOverBtn(true);
createText(_local3);
ScoreAPI.send(_root.com_mindjolt_api, "submitScore", gameScore);
}
function setPopUpGameOverBtn(state) {
var _local2 = scene.gameOverPanel;
evMouseRoll(scene.tray, 1);
if (state) {
_local2.btn._alpha = 100;
_local2.btn.onRollOver = cCallBack.point(this, evMouseRoll, [_local2, 2]);
_local2.btn.onRollOut = cCallBack.point(this, evMouseRoll, [_local2, 1]);
_local2.btn.onRelease = cCallBack.point(this, evMouseRelease, [_local2]);
} else {
_local2.btn._alpha = 50;
}
}
function activateGameOverBtn(state) {
if (state) {
scene.tray.btn.onRollOver = cCallBack.point(this, evMouseRoll, [scene.tray, 2]);
scene.tray.btn.onRollOut = cCallBack.point(this, evMouseRoll, [scene.tray, 1]);
scene.tray.btn.onPress = cCallBack.point(this, gameOver, null);
scene.infoBtn.onRollOver = cCallBack.point(this, setRulesPanelVisible, [true]);
scene.infoBtn.onRollOut = cCallBack.point(this, setRulesPanelVisible, [false]);
scene.infoBtn.onDragOut = cCallBack.point(this, setRulesPanelVisible, [false]);
} else {
delete scene.tray.btn.onRollOver;
delete scene.tray.btn.onRollOut;
delete scene.tray.btn.onPress;
delete scene.infoBtn.onRollOver;
delete scene.infoBtn.onRollOut;
delete scene.infoBtn.onDragOut;
}
}
function createText(mc) {
var _local3 = new TextFormat();
var _local2 = mc.createTextField("score_txt", 1, 51, 34, 90, 18);
_local3.bold = true;
_local3.font = "Arial";
_local3.align = "right";
_local2.text = getGameScore();
_local2.selectable = false;
_local2.embedFonts = true;
_local2.antiAliasType = "advanced";
_local2.setTextFormat(_local3);
}
function getGameScore(Void) {
if (gameScore == undefined) {
gameScore = 0;
}
var _local2 = gameScore.toString(10);
while (_local2.length < 4) {
_local2 = "0" + _local2;
}
return(_local2);
}
function getGameTimer(Void) {
if (gameTimer == undefined) {
gameTimer = 0;
}
var _local3;
var _local2 = Math.floor(gameTimer / 60);
var _local4 = gameTimer - (_local2 * 60);
_local3 = ((_local2 < 10) ? ("0" + _local2.toString(10)) : (_local2.toString(10)));
_local3 = _local3 + " : ";
_local3 = _local3 + ((_local4 < 10) ? ("0" + _local4.toString(10)) : (_local4.toString(10)));
return(_local3);
}
function evMouseRoll(mc, frame) {
mc.btn.gotoAndStop(frame);
}
function evMouseRelease(mc) {
delete mc.btn.onRollOver;
delete mc.btn.onRollOut;
delete mc.btn.onRelease;
mc.removeMovieClip();
clearControls();
}
function addScore(score) {
if (!isStartingGame) {
gameScore = gameScore + score;
if (gameScore < 0) {
gameScore = 0;
}
score_tf.text = getGameScore();
score_tf.setTextFormat(getTextFormat());
}
}
function checkColumn(id) {
var _local4 = true;
var _local2 = cardsStack.getFirstCard();
var _local3 = columnsArr[id].getLastCard();
if (_local2 == undefined) {
return(false);
}
if ((_local3 == undefined) && (_local2.getBasicValue() == "K")) {
return(true);
}
if (!_local3.getCardIsOpen()) {
return(false);
}
_local4 = isMoveLegal(_local3, _local2, CHECK_COLUMN);
return(_local4);
}
function checkHomeStack(id, card) {
var _local3 = true;
var _local2 = card;
var _local4 = homeStackArr[id].getLastCard();
var _local6 = homeStackArr[id].getSuit();
if ((_local2 == undefined) || (cardsStack.getStackLength() != 1)) {
return(false);
}
if (((_local4 == undefined) && (_local2.getBasicValue() == "A")) && (_local6 == undefined)) {
homeStackArr[id].setSuit(_local2.getSuit());
return(true);
}
_local3 = isMoveLegal(_local4, _local2, CHECK_HOMESTACK);
return(_local3);
}
function isMoveLegal(card1, card2, checkSource) {
var _local2 = false;
if (checkSource == CHECK_COLUMN) {
if (card1.getColor() == card2.getColor()) {
return(false);
}
if ((getValueIndex(card1.getBasicValue()) - 1) == getValueIndex(card2.getBasicValue())) {
_local2 = true;
}
} else if (checkSource == CHECK_HOMESTACK) {
if (card1.getSuit() != card2.getSuit()) {
return(false);
}
if ((getValueIndex(card1.getBasicValue()) + 1) == getValueIndex(card2.getBasicValue())) {
return(true);
}
}
return(_local2);
}
function getValueIndex(val) {
var _local2 = 0;
while (_local2 < values.length) {
if (values[_local2] == val) {
return(_local2);
}
_local2++;
}
return(-10);
}
function trayInit(Void) {
scene.tray.swapDepths(1200);
score_tf = scene.tray.createTextField("score_txt", 1, 98, 5, 73, 18);
score_tf.text = getGameScore();
score_tf.selectable = false;
score_tf.embedFonts = true;
score_tf.antiAliasType = "advanced";
score_tf.setTextFormat(getTextFormat());
}
function getTextFormat(Void) {
var _local1 = new TextFormat();
_local1.bold = true;
_local1.font = "Arial";
_local1.align = "left";
_local1.color = 13421772 /* 0xCCCCCC */;
return(_local1);
}
function countScore(source, target) {
if (source == ID_CARD_DECK) {
if (target < ID_CARD_DECK) {
addScore(SCORE_ROW_STACK);
} else if (target >= 20) {
addScore(SCORE_SUIT_STACK);
}
} else if ((source < ID_CARD_DECK) && (target >= 20)) {
addScore(SCORE_SUIT_STACK);
} else if ((source >= 20) && (target < ID_CARD_DECK)) {
addScore(SCORE_PENALTY_SUIT);
}
}
function clearControls(Void) {
var _local2 = 0;
while (_local2 <= 6) {
columnsArr[_local2].clearControl();
_local2++;
}
_local2 = 0;
while (_local2 <= 3) {
homeStackArr[_local2].clearControl();
_local2++;
}
cardsDeck.clearControl();
gameScore = 0;
init();
}
function setRulesPanelVisible(state) {
scene.rulesPanel._visible = state;
scene.infoBtn.gotoAndStop((state ? 2 : 1));
}
function notifyAddCardsToStack(cardsArr, pointsArr, targetInfo) {
cardsStack.setPosition(targetInfo);
cardsStack.addCards(cardsArr, pointsArr);
}
function notifyTransferSuccessfull(state, targetID) {
if (targetID == ID_CARD_DECK) {
cardsDeck.transferIsSuccessfull(state);
} else if (targetID < ID_CARD_DECK) {
columnsArr[targetID].transferIsSuccessfull(state);
} else if (targetID >= 20) {
homeStackArr[targetID - 20].transferIsSuccessfull(state);
}
}
function getStackReleaseTarget(targetID) {
var _local2 = 0;
while (_local2 <= 3) {
if (cardsStack.getUI().hitTest(scene["homeStack_mc" + _local2]) && ((20 + _local2) != targetID)) {
if (checkHomeStack(_local2, cardsStack.getFirstCard())) {
countScore(targetID, 20 + _local2);
return(20 + _local2);
}
}
_local2++;
}
_local2 = 0;
while (_local2 <= 6) {
if (cardsStack.getUI().hitTest(scene["column" + _local2]) && (_local2 != targetID)) {
if (checkColumn(_local2)) {
countScore(targetID, _local2);
return(_local2);
}
}
_local2++;
}
return(-1);
}
function notifyAddCardsFromStack(cards, targetID) {
var _local2 = 0;
while (_local2 < cards.length) {
addCardToControl(targetID, cards[_local2], true);
_local2++;
}
}
function notifyAddCardToHomeStack(card) {
var _local2 = 0;
while (_local2 <= 3) {
if (checkHomeStack(_local2, card)) {
var _local6 = cCallBack.point(homeStackArr[_local2], homeStackArr[_local2].addCard, null);
var _local3 = {x:0, y:0};
var _local4 = homeStackArr[_local2].getPointForNewCard();
card.localToGlobal(_local3);
homeStackArr[_local2].localToGlobal(_local4);
new cFlyingCard(scene, card.getCardValue(), true, _local6, _local3, _local4, getDynamicDepth());
addScore(SCORE_SUIT_STACK);
return(true);
}
_local2++;
}
return(false);
}
function getPointForStack(targetID) {
var _local2 = new Object();
if (targetID >= 20) {
_local2 = homeStackArr[targetID - 20].getPointForNewCard();
} else {
_local2 = columnsArr[targetID].getPointForNewCard();
}
return(_local2);
}
function setClickIsAllowed(state) {
clickIsAllowed = state;
}
function getClickIsAllowed(Void) {
return(clickIsAllowed);
}
function getUI(Void) {
return(scene);
}
function getDynamicDepth(Void) {
return(dynamicDepth++);
}
function getIsStartGame(Void) {
return(isStartingGame);
}
function checkForGameOver(Void) {
var _local3 = true;
var _local2 = 0;
while (_local2 <= 3) {
if (homeStackArr[_local2].getCardsCount() != 13) {
_local3 = false;
break;
}
_local2++;
}
if (_local3) {
gameOver();
}
}
function notifyColumnCardOpen(Void) {
addScore(SCORE_ROW_OPEN);
}
function notifyRevertDeck(type) {
if (type == 1) {
addScore(SCORE_DECK_OVER_ONE);
} else {
addScore(SCORE_DECK_OVER_TREE);
}
}
var CHECK_COLUMN = 1;
var CHECK_HOMESTACK = 2;
var ID_CARD_DECK = 10;
static var SCORE_SUIT_STACK = 10;
static var SCORE_ROW_STACK = 5;
static var SCORE_ROW_OPEN = 5;
static var SCORE_PENALTY_SUIT = -15;
static var SCORE_DECK_OVER_ONE = -100;
static var SCORE_DECK_OVER_TREE = -20;
static var SCORE_TIME_LOSE = -2;
static var SCORE_TIME_BONUS = 1;
}
Symbol 114 MovieClip [__Packages.cBroadcaster] Frame 0
class cBroadcaster
{
var listeners;
function cBroadcaster (Void) {
listeners = new Array();
}
function addListener(listener_) {
for (var _local3 in listeners) {
if (listeners[_local3] === listener_) {
return(false);
}
}
listeners.push(listener_);
return(true);
}
function removeListener(listener_) {
for (var _local3 in listeners) {
if (listeners[_local3] === listener_) {
listeners.splice(Number(_local3), 1);
return(true);
}
}
return(false);
}
function broadcast(message, args) {
if (args.length == null) {
args = [args];
}
var _local4 = false;
for (var _local5 in listeners) {
if (applyToFunction(listeners[_local5][message], listeners[_local5], args)) {
_local4 = true;
}
}
if (!_local4) {
return(false);
}
for (var _local5 in listeners) {
applyToFunction(listeners[_local5][message + END_SUFIX], listeners[_local5], null);
}
return(true);
}
function applyToFunction(fn, sc, ar) {
if (fn != undefined) {
fn.apply(sc, ar);
return(true);
}
return(false);
}
static var END_SUFIX = "_END";
}
Symbol 115 MovieClip [__Packages.cDraggableStack] Frame 0
class cDraggableStack
{
var UI, listener, offsetY, cardNr, targetID, points, cards;
function cDraggableStack (mainUI, UI_) {
UI = UI_;
listener = mainUI;
offsetY = 20;
cardNr = 0;
targetID = -1;
points = new Object();
UI._visible = false;
cards = new Array();
}
function onMouseUpHandler(Void) {
var _local4 = listener.getStackReleaseTarget(targetID);
delete UI.onMouseUp;
UI.stopDrag();
listener.setClickIsAllowed(false);
if (_local4 == -1) {
UI.onEnterFrame = cCallBack.point(this, moveUI, [points.x, points.y, false, 0]);
} else {
listener.notifyTransferSuccessfull(true, targetID);
points = listener.getPointForStack(_local4);
var _local3 = {x:getFirstCard()._x, y:getFirstCard()._y};
UI.localToGlobal(_local3);
var _local2 = {};
_local2.x = UI._x - (_local3.x - points.x);
_local2.y = UI._y - (_local3.y - points.y);
UI.onEnterFrame = cCallBack.point(this, moveUI, [_local2.x, _local2.y, true, _local4]);
}
}
function moveUI(x, y, result, newTarget) {
var _local4 = Math.abs(0.6 * (UI._x - x));
var _local3 = Math.abs(0.6 * (UI._y - y));
((UI._x > x) ? ((UI._x = UI._x - _local4)) : ((UI._x = UI._x + _local4)));
((UI._y > y) ? ((UI._y = UI._y - _local3)) : ((UI._y = UI._y + _local3)));
if ((_local4 < 0.4) && (_local3 < 0.4)) {
delete UI.onEnterFrame;
if (result) {
listener.notifyAddCardsFromStack(getCardsValues(), newTarget);
} else {
listener.notifyTransferSuccessfull(false, targetID);
}
var _local2 = 0;
while (_local2 < cards.length) {
cards[_local2].removeMovieClip();
_local2++;
}
listener.setClickIsAllowed(true);
}
}
function getCardsValues() {
var _local3 = new Array();
var _local2 = 0;
while (_local2 < cards.length) {
_local3.push(cards[_local2].getCardValue());
_local2++;
}
return(_local3);
}
function addCards(cardsArr, pointsArr) {
cards = new Array();
var _local2 = 0;
while (_local2 < cardsArr.length) {
addCard(cardsArr[_local2], pointsArr[_local2], true);
_local2++;
}
points = {x:UI._x, y:UI._y};
}
function addCard(value, points, opened) {
var _local2 = cCard.create(UI, "card_mc" + cardNr, cardNr, {_x:points.x, _y:points.y, cardValue:value, isOpen:opened});
cards.push(_local2);
cardNr++;
UI._visible = true;
}
function setPosition(targetInfo) {
UI._x = targetInfo.x;
UI._y = targetInfo.y;
targetID = targetInfo.id;
UI.onMouseUp = cCallBack.point(this, onMouseUpHandler, null);
UI.startDrag(false);
}
function getUI(Void) {
return(UI);
}
function getFirstCard(Void) {
return(cards[0]);
}
function getStackLength(Void) {
return(cards.length);
}
}
Symbol 116 MovieClip [__Packages.cCallBack] Frame 0
class cCallBack
{
function cCallBack () {
}
static function point(scope, notify, predefinedArguments) {
return(function () {
return(notify.apply(scope, ((predefinedArguments.length > 0) ? (predefinedArguments.concat(arguments)) : arguments)));
});
}
}
Symbol 117 MovieClip [__Packages.cCard] Frame 0
class cCard extends MovieClip
{
var isOpen, cardface, cardValue, gotoAndStop;
function cCard (Void) {
super();
}
static function create(this_mc, name, depth, init_obj) {
var _local2 = this_mc.attachMovie("deckSymbol", name, depth);
var _local4 = cCard;
_local2.__proto__ = _local4.prototype;
for (var _local3 in init_obj) {
_local2[_local3] = init_obj[_local3];
}
_local4.call(_local2);
_local2.initMovie();
return(cCard(_local2));
}
function initMovie(Void) {
var _local5 = new Array("c", "d", "h", "s");
var _local6 = new Array("A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K");
var _local8 = -1;
var _local7 = -1;
setOpen(isOpen);
var _local2 = 0;
while (_local2 < _local6.length) {
var _local4 = getBasicValue();
if (_local6[_local2] == _local4) {
_local8 = _local2;
break;
}
_local2++;
}
_local2 = 0;
while (_local2 < _local5.length) {
var _local3 = getSuit();
if (_local5[_local2] == _local3) {
_local7 = _local2;
break;
}
_local2++;
}
cardface.gotoAndStop(((_local8 * 4) + _local7) + 1);
}
function getCardValue(Void) {
return(cardValue);
}
function getSuit(Void) {
return(cardValue.substr(1));
}
function getBasicValue(Void) {
return(cardValue.substr(0, 1));
}
function getColor(Void) {
if ((getSuit() == "c") || (getSuit() == "s")) {
return("b");
}
return("r");
}
function setOpen(val) {
isOpen = val;
if (!isOpen) {
gotoAndStop("back");
} else {
gotoAndStop("normal");
}
}
function getCardIsOpen(Void) {
return(isOpen);
}
}
Symbol 118 MovieClip [__Packages.cDeck] Frame 0
class cDeck
{
var UI, mainUI, ID, cards, showingCards, processedCards, offsetY, cardNr, clickTime, DBL_CLICK_DELAY, revertCnt, showCards, stakeIndex;
function cDeck (mainUI_, UI_, id) {
UI = UI_;
mainUI = mainUI_;
ID = id;
UI.bg_mc.mc1._visible = false;
UI.bg_mc.mc2._visible = false;
cards = new Array();
showingCards = new Array();
processedCards = new Array();
offsetY = 0;
cardNr = 1;
clickTime = getTimer();
DBL_CLICK_DELAY = 400;
}
function addCard(value, opened) {
var _local2 = cCard.create(UI, "card_mc" + cardNr, cardNr, {_x:0, _y:0, cardValue:value, isOpen:opened});
cards.push(_local2);
cardNr++;
}
function setDeckCardMouseHandler() {
if (cards.length == 0) {
if (((revertCnt == -1) || (revertCnt > 0)) && (processedCards.length > 0)) {
UI.bg_mc.onPress = cCallBack.point(this, revertDeck, null);
UI.bg_mc.useHandCursor = false;
}
return(undefined);
}
cards[cards.length - 1].onPress = cCallBack.point(this, onDeckPressHandler, null);
cards[cards.length - 1].useHandCursor = false;
}
function revertDeck(Void) {
if (revertCnt > 0) {
revertCnt--;
}
if (showingCards.length > 0) {
clearShowStack(false);
}
delete UI.bg_mc.onPress;
cardNr = 1;
var _local2 = processedCards.length - 1;
while (_local2 >= 0) {
addCard(processedCards[_local2], false);
_local2--;
}
processedCards = new Array();
setDeckCardMouseHandler();
mainUI.notifyRevertDeck(showCards);
if (revertCnt == 0) {
UI.bg_mc.mc1._visible = false;
UI.bg_mc.mc2._visible = true;
}
}
function onDeckPressHandler() {
var _local2 = true;
var _local4 = 0;
var _local3;
if (!mainUI.getClickIsAllowed()) {
return(undefined);
}
delete cards[cards.length - 1].onPress;
if (showingCards.length > 0) {
clearShowStack(true);
}
while (_local2) {
if (cards.length > 0) {
_local3 = cards.pop();
showingCards.splice(0, 0, _local3.getCardValue());
_local3.removeMovieClip();
_local4++;
if (_local4 == showCards) {
_local2 = false;
}
} else {
_local2 = false;
}
}
populateShowCards(true);
}
function clearShowStack(makeCopies) {
if (showingCards.length == 1) {
makeCopies = false;
}
var _local2 = 0;
while (_local2 < 3) {
if (UI["copyCard_mc" + _local2] != undefined) {
UI["copyCard_mc" + _local2].removeMovieClip();
}
_local2++;
}
_local2 = showingCards.length - 1;
while (_local2 >= 0) {
if (makeCopies) {
if ((cards.length - 1) >= _local2) {
cCard.create(UI, "copyCard_mc" + _local2, 995 + _local2, {_x:UI["showCard_mc" + _local2]._x, _y:UI["showCard_mc" + _local2]._y, cardValue:showingCards[_local2], isOpen:true});
}
}
UI["showCard_mc" + _local2].removeMovieClip();
processedCards.push(showingCards[_local2]);
_local2--;
}
UI.processedCard_mc.removeMovieClip();
showingCards = new Array();
}
function populateShowCards(animate) {
var _local13 = 100;
var _local15 = 70;
var _local8;
var _local14 = offsetY;
var _local6 = mainUI.getDynamicDepth() + 3;
var _local7 = _local13 * (showingCards.length - 1);
var _local2 = showingCards.length - 1;
while (_local2 >= 0) {
_local8 = _local15 + (15 * _local2);
cCard.create(UI, "showCard_mc" + _local2, 1000 + _local2, {_x:_local8, _y:_local14, cardValue:showingCards[_local2], isOpen:true, _visible:!animate});
if (animate) {
var _local5 = cCallBack.point(this, showCard, [_local2]);
var _local3 = {x:0, y:0};
var _local4 = {x:0, y:0};
UI.localToGlobal(_local3);
UI["showCard_mc" + _local2].localToGlobal(_local4);
cTimer.delay(this, moveCard, _local7, [mainUI.getUI(), showingCards[_local2], true, _local5, _local3, _local4, _local6]);
_local7 = _local7 - _local13;
_local6--;
}
_local2--;
}
if (processedCards.length > 0) {
cCard.create(UI, "processedCard_mc", 990, {_x:_local15, _y:_local14, cardValue:processedCards[processedCards.length - 1], isOpen:true});
} else if (UI.processedCard_mc != undefined) {
UI.processedCard_mc.removeMovieClip();
}
setShowCardClickHandler();
}
function moveCard(UI, val, open, cbk, start, end, depth_) {
new cFlyingCard(UI, val, open, cbk, start, end, depth_);
}
function showCard(index) {
UI["showCard_mc" + index]._visible = true;
UI["copyCard_mc" + index].removeMovieClip();
if (index == (showingCards.length - 1)) {
setDeckCardMouseHandler();
}
}
function setShowCardClickHandler() {
if (showingCards.length == 0) {
if (processedCards.length == 0) {
return(undefined);
}
showingCards.push(processedCards.pop());
populateShowCards(false);
}
if (showingCards.length > 0) {
var _local2 = showingCards.length - 1;
UI["showCard_mc" + _local2].onPress = cCallBack.point(this, onShowCardPressHandler, [_local2]);
UI["showCard_mc" + _local2].useHandCursor = false;
}
}
function onShowCardPressHandler(index) {
if (!mainUI.getClickIsAllowed()) {
return(undefined);
}
var _local2 = UI["showCard_mc" + index];
if ((getTimer() - clickTime) <= DBL_CLICK_DELAY) {
moveCardToHomeStack(_local2, index);
return(undefined);
}
clickTime = getTimer();
var _local3 = new Array();
var _local4 = new Array();
stakeIndex = index;
_local2._visible = false;
_local3.push(_local2.getCardValue());
var _local5 = {x:_local2._x, y:_local2._y};
_local4.push(_local5);
var _local7 = {x:UI._x, y:UI._y, id:ID};
if (_local3.length > 0) {
mainUI.notifyAddCardsToStack(_local3, _local4, _local7);
if (cards.length == 0) {
delete UI.bg_mc.onPress;
setDeckCardMouseHandler();
}
}
}
function moveCardToHomeStack(card, index) {
if ((card == null) && (card == undefined)) {
return(undefined);
}
if (mainUI.notifyAddCardToHomeStack(card)) {
stakeIndex = index;
transferIsSuccessfull(true);
}
}
function setter(val1, val2) {
showCards = val1;
revertCnt = val2;
if (revertCnt != 0) {
UI.bg_mc.mc1._visible = true;
} else {
UI.bg_mc.mc2._visible = true;
}
}
function addCards(deck) {
var _local3;
while (deck.length > 0) {
_local3 = Math.floor(Math.random() * deck.length);
addCard(deck.splice(_local3, 1)[0], false);
}
setDeckCardMouseHandler();
}
function transferIsSuccessfull(state) {
if (!state) {
UI["showCard_mc" + stakeIndex]._visible = true;
} else {
showingCards.splice(stakeIndex, 1);
delete UI["showCard_mc" + stakeIndex].onPress;
UI["showCard_mc" + stakeIndex].removeMovieClip();
setShowCardClickHandler();
}
}
function clearControl(Void) {
var _local2 = 0;
while (_local2 < cards.length) {
cards[_local2].removeMovieClip();
_local2++;
}
_local2 = 0;
while (_local2 < 3) {
if (UI["copyCard_mc" + _local2] != undefined) {
UI["copyCard_mc" + _local2].removeMovieClip();
}
_local2++;
}
_local2 = 0;
while (_local2 < showingCards.length) {
UI["showCard_mc" + _local2].removeMovieClip();
_local2++;
}
UI.processedCard_mc.removeMovieClip();
cards = new Array();
showingCards = new Array();
processedCards = new Array();
cardNr = 1;
}
}
Symbol 119 MovieClip [__Packages.cTimer] Frame 0
class cTimer
{
function cTimer () {
}
static function delay(scope, notify, ms, predefinedArguments) {
var _local2 = function () {
clearInterval(arguments.callee.iRef);
return(notify.apply(scope, predefinedArguments));
};
var ih = setInterval(_local2, ms);
_local2.iRef = ih;
return(function () {
clearInterval(ih);
});
}
static function repeat(scope, notify, repeats, ms, predefinedArguments, counter) {
var no = 0;
if (counter) {
if (predefinedArguments.length > 0) {
predefinedArguments.push(no);
} else {
predefinedArguments = [no];
}
}
var _local2 = function () {
if (repeats > no) {
if (counter) {
predefinedArguments[predefinedArguments.length - 1] = no;
}
no++;
return(notify.apply(scope, predefinedArguments));
}
clearInterval(arguments.callee.iRef);
};
var ih = setInterval(_local2, ms);
_local2.iRef = ih;
return(function () {
clearInterval(ih);
});
}
}
Symbol 120 MovieClip [__Packages.cFlyingCard] Frame 0
class cFlyingCard
{
var UI, fnCallBack, endPoint;
function cFlyingCard (scene, val, isOpen_, cbk, start, end, depth) {
UI = cCard.create(scene, "flyingCard_mc" + depth, depth, {_x:start.x, _y:start.y, cardValue:val, isOpen:isOpen_});
fnCallBack = cbk;
endPoint = {x:end.x, y:end.y};
UI.onEnterFrame = cCallBack.point(this, moveUI, null);
}
function moveUI(Void) {
var _local3 = Math.abs(0.6 * (UI._x - endPoint.x));
var _local2 = Math.abs(0.6 * (UI._y - endPoint.y));
var _local5 = Math.max(_local3, _local2);
var _local4 = 0;
if (_local5 > 50) {
_local4 = _local5 / 50;
_local3 = _local3 / _local4;
_local2 = _local2 / _local4;
}
((UI._x > endPoint.x) ? ((UI._x = UI._x - _local3)) : ((UI._x = UI._x + _local3)));
((UI._y > endPoint.y) ? ((UI._y = UI._y - _local2)) : ((UI._y = UI._y + _local2)));
if ((_local3 < 0.4) && (_local2 < 0.4)) {
delete UI.onEnterFrame;
fnCallBack(UI.getCardValue(), UI.getCardIsOpen());
UI.removeMovieClip();
}
}
}
Symbol 121 MovieClip [__Packages.klondike.cColumn] Frame 0
class klondike.cColumn
{
var UI, listener, cards, offsetY, cardNr, clickTime, ID, DBL_CLICK_DELAY, stakeIndex;
function cColumn (mainUI, UI_, id) {
UI = UI_;
listener = mainUI;
cards = new Array();
offsetY = 18;
cardNr = 0;
clickTime = -400;
ID = id;
DBL_CLICK_DELAY = 400;
UI.onPress = cCallBack.point(this, onPressHandler, null);
UI.useHandCursor = false;
}
function onPressHandler() {
if ((cards.length > 0) && (!cards[cards.length - 1].getCardIsOpen())) {
cards[cards.length - 1].setOpen(true);
listener.notifyColumnCardOpen();
return(undefined);
}
if ((getTimer() - clickTime) <= DBL_CLICK_DELAY) {
clickTime = clickTime - 2000;
moveCardToHomeStack();
return(undefined);
}
if (!listener.getClickIsAllowed()) {
return(undefined);
}
clickTime = getTimer();
var _local4 = -1;
var _local3 = {x:UI._xmouse, y:UI._ymouse};
UI.localToGlobal(_local3);
var _local2 = cards.length - 1;
while (_local2 >= 0) {
if (cards[_local2].getCardIsOpen()) {
if (cards[_local2].hitTest(_local3.x, _local3.y, true)) {
_local4 = _local2;
break;
}
}
_local2--;
}
if (_local4 != -1) {
makeCardStack(_local4);
}
}
function makeCardStack(index) {
var _local4 = new Array();
var _local5 = new Array();
stakeIndex = index;
var _local2 = index;
while (_local2 < cards.length) {
cards[_local2]._visible = false;
_local4.push(cards[_local2].getCardValue());
var _local3 = {x:cards[_local2]._x, y:cards[_local2]._y};
_local5.push(_local3);
_local2++;
}
var _local7 = {x:UI._x, y:UI._y, id:ID};
if (_local4.length > 0) {
listener.notifyAddCardsToStack(_local4, _local5, _local7);
}
}
function getNextPosY() {
var _local2 = getLastCard();
var _local3 = 47;
if ((_local2 != null) && (_local2 != undefined)) {
_local3 = _local2._y + (_local2.getCardIsOpen() ? (offsetY) : 3);
}
return(_local3);
}
function moveCardToHomeStack() {
var _local2 = getLastCard();
if ((_local2 == null) && (_local2 == undefined)) {
return(undefined);
}
if (listener.notifyAddCardToHomeStack(_local2)) {
stakeIndex = cards.length - 1;
transferIsSuccessfull(true);
}
}
function addCard(value, opened) {
var _local2 = true;
if (listener.getIsStartGame()) {
_local2 = false;
}
var _local3 = getNextPosY();
var _local4 = cCard.create(UI, "card_mc" + cardNr, cardNr, {_x:posX, _y:_local3, cardValue:value, isOpen:opened, _visible:_local2});
cards.push(_local4);
cardNr++;
}
function transferIsSuccessfull(state) {
if (!state) {
var _local2 = stakeIndex;
while (_local2 < cards.length) {
cards[_local2]._visible = true;
_local2++;
}
} else {
var _local3 = cards.splice(stakeIndex);
var _local2 = 0;
while (_local2 < _local3.length) {
_local3[_local2].removeMovieClip();
_local2++;
}
}
}
function getUI() {
return(UI);
}
function getLastCard(Void) {
if (cards.length == 0) {
return(null);
}
var _local2 = cards[cards.length - 1];
return(_local2);
}
function getPointForNewCard() {
var _local2 = {x:posX, y:getNextPosY()};
UI.localToGlobal(_local2);
return(_local2);
}
function setCardVisible(index) {
cards[index]._visible = true;
}
function clearControl(Void) {
var _local2 = 0;
while (_local2 < cards.length) {
cards[_local2].removeMovieClip();
_local2++;
}
cards = new Array();
cardNr = 0;
clickTime = -400;
}
var posX = 34;
}
Symbol 122 MovieClip [__Packages.cHomeStack] Frame 0
class cHomeStack
{
var UI, mainUI, ID, cards, cardNr, suit;
function cHomeStack (mainUI_, UI_, id) {
UI = UI_;
mainUI = mainUI_;
ID = id;
cards = new Array();
cardNr = 1;
}
function removeOnPressHandler() {
var _local2 = getLastCard();
if ((_local2 != null) && (_local2 != undefined)) {
delete _local2.onPress;
}
}
function setOnPressHandler() {
var _local2 = getLastCard();
if ((_local2 != null) && (_local2 != undefined)) {
_local2.onPress = cCallBack.point(this, onPressHandler, null);
_local2.useHandCursor = false;
} else {
suit = undefined;
}
}
function onPressHandler() {
if (!mainUI.getClickIsAllowed()) {
return(undefined);
}
var _local3 = new Array();
var _local4 = new Array();
var _local2 = getLastCard();
_local2._visible = false;
_local3.push(_local2.getCardValue());
var _local5 = {x:_local2._x, y:_local2._y};
_local4.push(_local5);
var _local6 = {x:UI._x, y:UI._y, id:ID};
if (_local3.length > 0) {
mainUI.notifyAddCardsToStack(_local3, _local4, _local6);
}
}
function addCard(value, opened) {
removeOnPressHandler();
var _local2 = 0;
var _local3 = 0;
var _local4 = cCard.create(UI, "card_mc" + cardNr, cardNr, {_x:_local3, _y:_local2, cardValue:value, isOpen:opened});
cards.push(_local4);
cardNr++;
setOnPressHandler();
if (cards.length == 13) {
mainUI.checkForGameOver();
}
}
function getLastCard(Void) {
if (cards.length == 0) {
return(null);
}
var _local2 = cards[cards.length - 1];
return(_local2);
}
function getUI(Void) {
return(UI);
}
function transferIsSuccessfull(state) {
if (!state) {
getLastCard()._visible = true;
} else {
removeOnPressHandler();
cards.pop().removeMovieClip();
setOnPressHandler();
}
}
function getPointForNewCard() {
var _local2 = {x:0, y:0};
UI.localToGlobal(_local2);
return(_local2);
}
function setSuit(suit_) {
suit = suit_;
}
function getSuit(Void) {
return(suit);
}
function getCardsCount(Void) {
return(cards.length);
}
function clearControl(Void) {
var _local2 = 0;
while (_local2 < cards.length) {
cards[_local2].removeMovieClip();
_local2++;
}
cards = new Array();
cardNr = 1;
suit = undefined;
}
}
Symbol 99 MovieClip Frame 1
stop();
Symbol 109 MovieClip Frame 1
stop();