XAKVBFNCOTJQDRXBAP7ATSPIWYTEROYW3DCJYIGTYFVVLET2RU6QC UZZYGXBFK5ZYVBMM6PO4EIHWHNGUUIVCFCL6HM5ODICHEFGCV4RQC OPI6W7BO4V3R5WGEVN4USOHVPUV5PVWGKYBMCRU4VQOI7F7RCF5QC JGGVCPUZDY2ZU6EZ72YHJSQKBIOYZPLGWHAJIMSH5ZN3WBWDKJWQC HTIL7GWVKJ6WRRRQEEFGMQL6GWTFW2TP7FI34DLXI4DK4QS4HXSAC MYLF7NEGFT6YYO6OEK22FLAS6Y2V3YGU4CQIMBE6APOLGLTOFNRQC D5XJXJK472U7GYOBKYYGEMO5B3QM2OBDM5NWMYRNCZ2A7Z2HNFVAC ZXBDOUETFSXTFY6J5LIMXBCNMDW6NTUTZ7HZZ6ND7BNUKISR74FAC GM4D5JXIKKI7N3HG5NFHPKQ2BRSXCV2XFENRCAT2YZZMRUYQ7KZQC EZYBNJFUNOS3LIU6ILXN7MFKLVW4SDXW6K5T4YFKFZ2R4UWSFUXAC JPHC6PBQJCGZ3B4LKX7C3XZOYP6UTHWV5PU5EXZ27TTXYZY3AG4AC 5I4UCQOTFNIXNO3IEJBPOHAHI63WOS7ZCOGHWJ47IK6MDJ6CBW6AC ISWDRBPZCEGJSXNXHML7D7XDW4N3Z7MXOF4OS7UHC6U2GVXFHYZQC V5OW3Q4IOFG5YIRAWE7J3HDTEBOX2EW7AHVHKFH2XG7I2XXH6SMAC J6J74CCDLZIY2SBU6O7DCX7QUO7LVNBFOZJ7F3VW4OPRPHKQ62OAC .locslot .cube20:nth-of-type(1) { bottom:0; z-index:200; }.locslot .cube20:nth-of-type(2) { bottom:0; left:17px; z-index:200; }.locslot .cube20:nth-of-type(3) { bottom:13px; z-index:201; }.locslot .cube20:nth-of-type(4) { bottom:13px; left:17px; z-index:201; }.locslot .cube20:nth-of-type(5) { bottom:26px; z-index:203; }
/*Cubes and disc on a tile:Closest to the middle looks best, so we start there.------------| d || 4 3 ddd || 2 1 d || 6 5 |------------*/.locslot .cube20:nth-of-type(1) { bottom:13px; left:17px; z-index:201; }.locslot .cube20:nth-of-type(2) { bottom:13px; left: 0px; z-index:201; }.locslot .cube20:nth-of-type(3) { bottom:26px; left:17px; z-index:203; }.locslot .cube20:nth-of-type(4) { bottom:26px; left:0px; z-index:203; }.locslot .cube20:nth-of-type(5) { bottom:0; left:17px; z-index:200; }.locslot .cube20:nth-of-type(6) { bottom:0; left: 0px; z-index:200; }
bottom:-1px;right:-2px;}.investigator > div:nth-of-type(1) { left: -5px; bottom:-2px; z-index:200; }.investigator > div:nth-of-type(2) { right: -5px; bottom:-2px; left:17px; z-index:200; }.investigator > div:nth-of-type(3) { left: -5px; bottom:13px; z-index:201; }
bottom:-4px;}.investigator > div:nth-of-type(1) { left:-3px; z-index:200; }.investigator > div:nth-of-type(2) { left:8px;z-index:201; }.investigator > div:nth-of-type(3) { left:19px; z-index:202; }
/* Correct the rotation of the location containers for the tokens.The tokens look better when they are not rotated.*/#loccont_1 div:not(.token) > .token {transform:rotate(-0deg);}#loccont_2 div:not(.token) > .token {transform:rotate(-2.5deg);}#loccont_3 div:not(.token) > .token {transform:rotate(-2.0deg);}#loccont_4 div:not(.token) > .token {transform:rotate(-0deg);}#loccont_5 div:not(.token) > .token {transform:rotate(-1.3deg);}#loccont_6 div:not(.token) > .token {transform:rotate(-0deg);}#loccont_7 div:not(.token) > .token {transform:rotate(-1.15deg);}#loccont_8 div:not(.token) > .token {transform:rotate(-0deg);}#loccont_9 div:not(.token) > .token {transform:rotate(-1.7deg);}#loccont_10 div:not(.token) > .token {transform:rotate(1.5deg);}#loccont_11 div:not(.token) > .token {transform:rotate(-0deg);}#loccont_12 div:not(.token) > .token {transform:rotate(-0deg);}#loccont_13 div:not(.token) > .token {transform:rotate(-1.5deg);}#loccont_14 div:not(.token) > .token {transform:rotate(-0deg);}
$current_player_id = self::getCurrentPlayerId(); // !! We must only return informations visible by this player !!$minigame = self::getGameStateValue("minigame");// Get information about players$sql = "SELECTplayer_id as id,player_score as score,player_solved_in_round as solved_in_round,player_no = $minigame as is_startplayerFROM player";$result['players'] = self::getCollectionFromDb($sql);// Gather all information about current game situation (visible by player $current_player_id).
$minigame = self::getGameStateValue("minigame");// Get information about players$sql = "SELECTplayer_id as id,player_color as color,player_score as score,player_solved_in_round as solved_in_round,player_no = $minigame as is_startplayerFROM player";$players = self::getCollectionFromDb($sql);foreach ($players as $idx => $player) {$players[$idx]['colorname'] = $this->constants['HEX2COLORNAME'][$player['color']];}
dojo.fx.wipeIn({node: $('carddisplay')}).play();// "bug fix": if window was resized during this cards are in wrong// positions; reset.this.evidenceDisplay.resetItemsPosition();this.evidenceDiscard.resetItemsPosition();
// dojo.fx.wipeIn({node: $('carddisplay')}).play();// // "bug fix": if window was resized during this cards are in wrong// // positions; reset.// this.evidenceDisplay.resetItemsPosition();// this.evidenceDiscard.resetItemsPosition();
if (!target_id) {// No target id given. Then derive it from the type by some easy rules.// TODO: explain rulestarget_id = token.location;if (ttype == 'cube' && target_id.startsWith('locslot_')) {target_id += '_' + ttype + 's'; // "locslot_xxx_(cube|disc)s"}}
// If no explicit target given; use the location from the DB.target_id = target_id || token.location;
this.slideToObject(key, target_id).play();
// HACKvar html = $(key).outerHTML;var duration = 500;delay = delay || 500;this.slideToObjectAndDestroy(key, target_id, duration, delay);window.setTimeout(dojo.hitch(this, function () {dojo.place(html, target_id);}), delay + duration);
var jstpl_player_board = '<div class="cp_board"><span class="sp_marker" id="sp_marker_${id}">➊</span></div>';
var jstpl_player_board = '<div class="cp_board">' +'<div class="sp_marker" id="sp_marker_${id}"></div>' +'<div class="investigator investigator_${colorname}"></div>x99' +'<div class="cube_supply" id="cubes_${id}"></div>' +'<div class="disc_supply" id="discs_${id}"></div>' +'</div>';