LRV43H7ODCGYQ3BU35TUM7VBVJ7NKABPKOQ4PMLW7VF7DVHVAAEQC VQEUCK4ML64KFD5MJSKO7MUGURAZMHY63UYB6ZXIDGZTCBOQ4Z4AC 7GL5NEY3BNWG6KHT427VSMER4AAR7ZVJGBNRH6ON2MY2QFPDV4HQC 2Z6JSPLRIESWB5QEFINQTE6RSJTGEOQ6ARLHCJ4YQ5XW6I5JWTDAC OPI6W7BO4V3R5WGEVN4USOHVPUV5PVWGKYBMCRU4VQOI7F7RCF5QC J6J74CCDLZIY2SBU6O7DCX7QUO7LVNBFOZJ7F3VW4OPRPHKQ62OAC XAKVBFNCOTJQDRXBAP7ATSPIWYTEROYW3DCJYIGTYFVVLET2RU6QC D5XJXJK472U7GYOBKYYGEMO5B3QM2OBDM5NWMYRNCZ2A7Z2HNFVAC JPHC6PBQJCGZ3B4LKX7C3XZOYP6UTHWV5PU5EXZ27TTXYZY3AG4AC 5I4UCQOTFNIXNO3IEJBPOHAHI63WOS7ZCOGHWJ47IK6MDJ6CBW6AC BCFDL2CONSV2PJRVIS44ZWANGZYGWBJPIPTKO2IYS75K7JRXWQTAC ISWDRBPZCEGJSXNXHML7D7XDW4N3Z7MXOF4OS7UHC6U2GVXFHYZQC MYLF7NEGFT6YYO6OEK22FLAS6Y2V3YGU4CQIMBE6APOLGLTOFNRQC // The VP markers (1st case, 2nd case, 3rd case)array('key' => 'vp_blue_{INDEX}', 'nbr' => 3),array('key' => 'vp_green_{INDEX}', 'nbr' => 3),array('key' => 'vp_purple_{INDEX}', 'nbr' => 3),array('key' => 'vp_red_{INDEX}', 'nbr' => 3),array('key' => 'vp_yellow_{INDEX}', 'nbr' => 3),// The penalty tokensarray('key' => 'penalty_red'),array('key' => 'penalty_blue'),array('key' => 'penalty_yellow'),array('key' => 'penalty_green'),array('key' => 'penalty_purple'),
}.penaltybox {position: absolute;bottom:25px;height:80px;width:64px;}#penalty_0 { left: 24px; }#penalty_2 { left: 92px; }#penalty_4 { left: 164px; bottom:20px; }#penalty_6 { left: 758px; bottom:20px; }#penalty_8 { left: 830px; }#penalty_10 { left: 898px; }.token.penalty {z-index:100;position: relative;height:32px;width:32px;background-image: url("img/vptoken.jpg");background-size:352px;border-radius: 3px;box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.75);}.token.penalty_red { background-position: -192px 32px }.token.penalty_blue { background-position: -224px 32px }.token.penalty_yellow { background-position: -256px 32px }.token.penalty_green { background-position: -288px 32px }.token.penalty_purple { background-position: -320px 32px }.penaltybox .token.penalty {position: absolute;top:0;left:0;
.penaltybox .token:nth-of-type(1) { left: 5px; top: 0px }.penaltybox .token:nth-of-type(2) { left: 30px; top: 4px }.penaltybox .token:nth-of-type(3) { left: 0px; top: 26px }.penaltybox .token:nth-of-type(4) { left: 24px; top: 30px }.penaltybox .token:nth-of-type(5) { left: 10px; top: 54px }
// Move token to appropriate penalty slot. Note: the max here is// -10. To be discussed: is -10 the max penalty we can give; or is// it just a UI thing. The rules say nothing about it.$total_pen = self::getUniqueValueFromDB("SELECT player_penalty FROM player WHERE player_id = $player_id");$this->tokens->moveToken("penalty_{$color}", "penalty_" . min(abs($total_pen), 10));
var html;if (ttype == 'cube') {var html = '<div id="' + key + '" class="token cube20 cube20_' + color + '"></div>';} else if (ttype == 'disc') {var html = '<div id="' + key + '" class="token disc30 disc30_' + color + '"></div>';} else {var html = '<div id="' + key + '" class="token investigator investigator_' + color + '"></div>';}
var html = this.format_block('jstpl_token_' + ttype, {key: key, color: color});
var jstpl_token_cube = '<div id="${key}" class="token cube20 cube20_${color}"></div>';var jstpl_token_disc = '<div id="${key}" class="token disc30 disc30_${color}"></div>';var jstpl_token_penalty = '<div id="${key}" class="token penalty penalty_${color}"></div>';var jstpl_token_pi = '<div id="${key}" class="token investigator investigator_${color}"></div>';