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 tokens
array('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>';