<?php
$this->constants = array(
"EVIDENCE_DECK_SIZE" => 36,
"EVIDENCE_DISPLAY_SIZE" => 9,
"MINIGAMES" => 3,
"DISCS_PER_PLAYER" => 3,
"CUBES_PER_PLAYER" => 10,
"PIS_PER_PLAYER" => 5,
"BOARD_H" => 740,
"BOARD_W" => 980,
"CASETYPES" => array(
'crime' => clienttranslate('crime'),
'location' => clienttranslate('location'),
'suspect' => clienttranslate('suspect')
),
"HEX2COLORNAME" => array(
"0000ff" => 'blue',
"008000" => 'green',
"ff0000" => 'red',
"ff00ff" => 'purple',
"ffa500" => 'yellow',
),
"AVG_LOCATION_NEIGHBORS" => 58.0/14, );
if (!defined('LOC_LAKESIDE')) { define("LOC_LAKESIDE", 1);
define("LOC_FORESTPARK", 2);
define('LOC_LITTLEITALY', 3);
define('LOC_TROCADERO', 4);
define('LOC_OCEANDRIVE', 5);
define('LOC_CHINATOWN', 6);
define('LOC_CENTRALSTATION', 7);
define('LOC_MAINSTREET', 8);
define('LOC_ROADHOUSE', 9);
define('LOC_UNIONSQUARE', 10);
define('LOC_DOWNTOWN', 11);
define('LOC_RICKSCAFE', 12);
define('LOC_WATERFRONT', 13);
define('LOC_SKIDROW', 14);
}
$this->locations = array(
LOC_LAKESIDE => array(
'name' => clienttranslate('Lakeside'),
'neighbors' => array(LOC_FORESTPARK, LOC_TROCADERO, LOC_LITTLEITALY),
'coords' => array(4.2, 27.8, 0),
),
LOC_FORESTPARK => array(
'name' => clienttranslate('Forest Park'),
'neighbors' => array(LOC_OCEANDRIVE, LOC_TROCADERO, LOC_LAKESIDE),
'coords' => array(3.8, 51.9, 2.5),
),
LOC_LITTLEITALY => array(
'name' => clienttranslate('Little Italy'),
'neighbors' => array(LOC_LAKESIDE, LOC_TROCADERO, LOC_CENTRALSTATION, LOC_CHINATOWN),
'coords' => array(23.5, 15.0, 2.0),
),
LOC_TROCADERO => array(
'name' => clienttranslate('Trocadero'),
'neighbors' => array(LOC_LAKESIDE, LOC_FORESTPARK, LOC_OCEANDRIVE, LOC_MAINSTREET, LOC_CENTRALSTATION, LOC_LITTLEITALY),
'coords' => array(23.2, 39.7, 0),
),
LOC_OCEANDRIVE => array(
'name' => clienttranslate('Ocean Drive'),
'neighbors' => array(LOC_FORESTPARK, LOC_ROADHOUSE, LOC_MAINSTREET, LOC_TROCADERO),
'coords' => array(23.9, 64.2, 1.3),
),
LOC_CHINATOWN => array(
'name' => clienttranslate('China Town'),
'neighbors' => array(LOC_LITTLEITALY, LOC_CENTRALSTATION, LOC_UNIONSQUARE),
'coords' => array(43.2, 2.8, 0),
),
LOC_CENTRALSTATION => array(
'name' => clienttranslate('Central Station'),
'neighbors' => array(LOC_LITTLEITALY, LOC_TROCADERO, LOC_MAINSTREET, LOC_DOWNTOWN, LOC_UNIONSQUARE, LOC_CHINATOWN),
'coords' => array(43.2, 27.5, 1.15),
),
LOC_MAINSTREET => array(
'name' => clienttranslate('Main Street'),
'neighbors' => array(LOC_TROCADERO, LOC_OCEANDRIVE, LOC_ROADHOUSE, LOC_RICKSCAFE, LOC_DOWNTOWN, LOC_CENTRALSTATION),
'coords' => array(42.5, 51.8, 0),
),
LOC_ROADHOUSE => array(
'name' => clienttranslate('Road House'),
'neighbors' => array(LOC_OCEANDRIVE, LOC_RICKSCAFE, LOC_MAINSTREET),
'coords' => array(43.4, 76.2, 1.7),
),
LOC_UNIONSQUARE => array(
'name' => clienttranslate('Union Square'),
'neighbors' => array(LOC_CHINATOWN, LOC_CENTRALSTATION, LOC_DOWNTOWN, LOC_WATERFRONT),
'coords' => array(63.0, 15.3, -1.5),
),
LOC_DOWNTOWN => array(
'name' => clienttranslate('Downtown'),
'neighbors' => array(LOC_CENTRALSTATION, LOC_MAINSTREET, LOC_RICKSCAFE, LOC_SKIDROW, LOC_WATERFRONT, LOC_UNIONSQUARE),
'coords' => array(63.1, 39.4, 0),
),
LOC_RICKSCAFE => array(
'name' => clienttranslate('Rick’s Café'),
'neighbors' => array(LOC_MAINSTREET, LOC_ROADHOUSE, LOC_SKIDROW, LOC_DOWNTOWN),
'coords' => array(63.1, 64.1, 0),
),
LOC_WATERFRONT => array(
'name' => clienttranslate('Waterfront'),
'neighbors' => array(LOC_UNIONSQUARE, LOC_DOWNTOWN, LOC_SKIDROW),
'coords' => array(82.3, 27.4, 1.5),
),
LOC_SKIDROW => array(
'name' => clienttranslate('Skid Row'),
'neighbors' => array(LOC_DOWNTOWN, LOC_RICKSCAFE, LOC_WATERFRONT),
'coords' => array(82.5, 51.7, 0),
),
);
foreach ($this->locations as $loc_id => $loc) {
$this->locations[$loc_id]['slots'] = array(
'crime' => array('id' => $loc_id * 100 + 1),
'location' => array('id' => $loc_id * 100 + 2),
'suspect' => array('id' => $loc_id * 100 + 3),
);
}
$this->cardBasis = array(
1 => array('name' => clienttranslate('Murder'),
'nametr' => self::_('Murder'),
'casetype' => 'crime',
),
2 => array('name' => clienttranslate('Shorty'),
'nametr' => self::_('Shorty'),
'casetype' => 'suspect',
),
3 => array('name' => clienttranslate('Doc'),
'nametr' => self::_('Doc'),
'casetype' => 'suspect',
),
4 => array('name' => clienttranslate('Rusty'),
'nametr' => self::_('Rusty'),
'casetype' => 'suspect',
),
5 => array('name' => clienttranslate('Bubbles'),
'nametr' => self::_('Bubbles'),
'casetype' => 'suspect',
),
6 => array('name' => clienttranslate('Frenchy'),
'nametr' => self::_('Frenchy'),
'casetype' => 'suspect',
),
7 => array('name' => clienttranslate('Maurice'),
'nametr' => self::_('Maurice'),
'casetype' => 'suspect',
),
8 => array('name' => clienttranslate('Main Street'),
'nametr' => self::_('Main Street'),
'casetype' => 'location',
),
9 => array('name' => clienttranslate('Waterfront'),
'nametr' => self::_('Waterfront'),
'casetype' => 'location',
),
10 => array('name' => clienttranslate('Mob Killing'),
'nametr' => self::_('Mob Killing'),
'casetype' => 'crime',
),
11 => array('name' => clienttranslate('Pop'),
'nametr' => self::_('Pop'),
'casetype' => 'suspect',
),
12 => array('name' => clienttranslate('Dutch'),
'nametr' => self::_('Dutch'),
'casetype' => 'suspect',
),
13 => array('name' => clienttranslate('Knuckles'),
'nametr' => self::_('Knuckles'),
'casetype' => 'suspect',
),
14 => array('name' => clienttranslate('Pinky'),
'nametr' => self::_('Pinky'),
'casetype' => 'suspect',
),
15 => array('name' => clienttranslate('Queenie'),
'nametr' => self::_('Queenie'),
'casetype' => 'suspect',
),
16 => array('name' => clienttranslate('Earl'),
'nametr' => self::_('Earl'),
'casetype' => 'suspect',
),
17 => array('name' => clienttranslate('Ocean Drive'),
'nametr' => self::_('Ocean Drive'),
'casetype' => 'location',
),
18 => array('name' => clienttranslate('Union Square'),
'nametr' => self::_('Union Square'),
'casetype' => 'location',
),
19 => array('name' => clienttranslate('Little Italy'),
'nametr' => self::_('Little Italy'),
'casetype' => 'location',
),
20 => array('name' => clienttranslate('Bank Job'),
'nametr' => self::_('Bank Job'),
'casetype' => 'crime',
),
21 => array('name' => clienttranslate('Blackmail'),
'nametr' => self::_('Blackmail'),
'casetype' => 'crime',
),
22 => array('name' => clienttranslate('Police Corruption'),
'nametr' => self::_('Police Corruption'),
'casetype' => 'crime',
),
23 => array('name' => clienttranslate('Forgery'),
'nametr' => self::_('Forgery'),
'casetype' => 'crime',
),
24 => array('name' => clienttranslate('Downtown'),
'nametr' => self::_('Downtown'),
'casetype' => 'location',
),
25 => array('name' => clienttranslate('China Town'),
'nametr' => self::_('China Town'),
'casetype' => 'location',
),
26 => array('name' => clienttranslate('Forest Park'),
'nametr' => self::_('Forest Park'),
'casetype' => 'location',
),
27 => array('name' => clienttranslate('Central Station'),
'nametr' => self::_('Central Station'),
'casetype' => 'location',
),
28 => array('name' => clienttranslate('Rick’s Café'),
'nametr' => self::_('Rick’s Café'),
'casetype' => 'location',
),
29 => array('name' => clienttranslate('Kidnapping'),
'nametr' => self::_('Kidnapping'),
'casetype' => 'crime',
),
30 => array('name' => clienttranslate('Jewellery Heist'),
'nametr' => self::_('Jewellery Heist'),
'casetype' => 'crime',
),
31 => array('name' => clienttranslate('Smuggling'),
'nametr' => self::_('Smuggling'),
'casetype' => 'crime',
),
32 => array('name' => clienttranslate('Protection Racket'),
'nametr' => self::_('Protection Racket'),
'casetype' => 'crime',
),
33 => array('name' => clienttranslate('Road House'),
'nametr' => self::_('Road House'),
'casetype' => 'location',
),
34 => array('name' => clienttranslate('Trocadero'),
'nametr' => self::_('Trocadero'),
'casetype' => 'location',
),
35 => array('name' => clienttranslate('Skid Row'),
'nametr' => self::_('Skid Row'),
'casetype' => 'location',
),
36 => array('name' => clienttranslate('Lakeside'),
'nametr' => self::_('Lakeside'),
'casetype' => 'location',
),
);
for ($i=1; $i<=36; $i++) {
$this->cardBasis[36 + $i] = $this->cardBasis[$i];
}
$this->tiles = array(
1 => array('name' => clienttranslate('NO CRIME'), 'nametr' => self::_('NO CRIME'), 'tiletype' => 'crime'),
2 => array('name' => clienttranslate('NO CRIME'), 'nametr' => self::_('NO CRIME'), 'tiletype' => 'crime'),
3 => array('name' => clienttranslate('NO CRIME'), 'nametr' => self::_('NO CRIME'), 'tiletype' => 'crime'),
4 => array('name' => clienttranslate('NO CRIME'), 'nametr' => self::_('NO CRIME'), 'tiletype' => 'crime'),
5 => array('name' => clienttranslate('NO SUSPECT'), 'nametr' => self::_('NO SUSPECT'), 'tiletype' => 'suspect'),
6 => array('name' => clienttranslate('NO SUSPECT'), 'nametr' => self::_('NO SUSPECT'), 'tiletype' => 'suspect'),
7 => array('name' => clienttranslate('Forgery'), 'nametr' => self::_('Forgery'), 'tiletype' => 'crime'),
8 => array('name' => clienttranslate('Jewellery Heist'), 'nametr' => self::_('Jewellery Heist'), 'tiletype' => 'crime'),
9 => array('name' => clienttranslate('Kidnapping'), 'nametr' => self::_('Kidnapping'), 'tiletype' => 'crime'),
10 => array('name' => clienttranslate('Police Corruption'), 'nametr' => self::_('Police Corruption'), 'tiletype' => 'crime'),
11 => array('name' => clienttranslate('Mob Killing'), 'nametr' => self::_('Mob Killing'), 'tiletype' => 'crime'),
12 => array('name' => clienttranslate('Protection Racket'), 'nametr' => self::_('Protection Racket'), 'tiletype' => 'crime'),
13 => array('name' => clienttranslate('Murder'), 'nametr' => self::_('Murder'), 'tiletype' => 'crime'),
14 => array('name' => clienttranslate('Blackmail'), 'nametr' => self::_('Blackmail'), 'tiletype' => 'crime'),
15 => array('name' => clienttranslate('Smuggling'), 'nametr' => self::_('Smuggling'), 'tiletype' => 'crime'),
16 => array('name' => clienttranslate('Bank Job'), 'nametr' => self::_('Bank Job'), 'tiletype' => 'crime'),
17 => array('name' => clienttranslate('Rusty'), 'nametr' => self::_('Rusty'), 'tiletype' => 'suspect'),
18 => array('name' => clienttranslate('Dutch'), 'nametr' => self::_('Dutch'), 'tiletype' => 'suspect'),
19 => array('name' => clienttranslate('Doc'), 'nametr' => self::_('Doc'), 'tiletype' => 'suspect'),
20 => array('name' => clienttranslate('Earl'), 'nametr' => self::_('Earl'), 'tiletype' => 'suspect'),
21 => array('name' => clienttranslate('Pop'), 'nametr' => self::_('Pop'), 'tiletype' => 'suspect'),
22 => array('name' => clienttranslate('Knuckles'), 'nametr' => self::_('Knuckles'), 'tiletype' => 'suspect'),
23 => array('name' => clienttranslate('Queenie'), 'nametr' => self::_('Queenie'), 'tiletype' => 'suspect'),
24 => array('name' => clienttranslate('Bubbles'), 'nametr' => self::_('Bubbles'), 'tiletype' => 'suspect'),
25 => array('name' => clienttranslate('Maurice'), 'nametr' => self::_('Maurice'), 'tiletype' => 'suspect'),
26 => array('name' => clienttranslate('Pinky'), 'nametr' => self::_('Pinky'), 'tiletype' => 'suspect'),
27 => array('name' => clienttranslate('Frenchy'), 'nametr' => self::_('Frenchy'), 'tiletype' => 'suspect'),
28 => array('name' => clienttranslate('Shorty'), 'nametr' => self::_('Shorty'), 'tiletype' => 'suspect'),
29 => array('name' => $this->locations[LOC_LAKESIDE]['name'], 'nametr' => self::_('Lakeside'), 'tiletype' => 'location'),
30 => array('name' => $this->locations[LOC_FORESTPARK]['name'], 'nametr' => self::_('Forest Park'), 'tiletype' => 'location'),
31 => array('name' => $this->locations[LOC_LITTLEITALY]['name'], 'nametr' => self::_('Little Italy'), 'tiletype' => 'location'),
32 => array('name' => $this->locations[LOC_TROCADERO]['name'], 'nametr' => self::_('Trocadero'), 'tiletype' => 'location'),
33 => array('name' => $this->locations[LOC_OCEANDRIVE]['name'], 'nametr' => self::_('Ocean Drive'), 'tiletype' => 'location'),
34 => array('name' => $this->locations[LOC_CHINATOWN]['name'], 'nametr' => self::_('China Town'), 'tiletype' => 'location'),
35 => array('name' => $this->locations[LOC_CENTRALSTATION]['name'], 'nametr' => self::_('Central Station'), 'tiletype' => 'location'),
36 => array('name' => $this->locations[LOC_MAINSTREET]['name'], 'nametr' => self::_('Main Street'), 'tiletype' => 'location'),
37 => array('name' => $this->locations[LOC_ROADHOUSE]['name'], 'nametr' => self::_('Road House'), 'tiletype' => 'location'),
38 => array('name' => $this->locations[LOC_UNIONSQUARE]['name'], 'nametr' => self::_('Union Square'), 'tiletype' => 'location'),
39 => array('name' => $this->locations[LOC_DOWNTOWN]['name'], 'nametr' => self::_('Downtown'), 'tiletype' => 'location'),
40 => array('name' => $this->locations[LOC_RICKSCAFE]['name'], 'nametr' => self::_('Rick’s Café'), 'tiletype' => 'location'),
41 => array('name' => $this->locations[LOC_WATERFRONT]['name'], 'nametr' => self::_('Waterfront'), 'tiletype' => 'location'),
42 => array('name' => $this->locations[LOC_SKIDROW]['name'], 'nametr' => self::_('Skid Row'), 'tiletype' => 'location'),
);
$this->tokeninfos = array(
array('key' => 'cube_blue_{INDEX}', 'nbr' => $this->constants["CUBES_PER_PLAYER"]),
array('key' => 'cube_green_{INDEX}', 'nbr' => $this->constants["CUBES_PER_PLAYER"]),
array('key' => 'cube_purple_{INDEX}', 'nbr' => $this->constants["CUBES_PER_PLAYER"]),
array('key' => 'cube_red_{INDEX}', 'nbr' => $this->constants["CUBES_PER_PLAYER"]),
array('key' => 'cube_yellow_{INDEX}', 'nbr' => $this->constants["CUBES_PER_PLAYER"]),
array('key' => 'disc_blue_{INDEX}', 'nbr' => $this->constants["DISCS_PER_PLAYER"]),
array('key' => 'disc_green_{INDEX}', 'nbr' => $this->constants["DISCS_PER_PLAYER"]),
array('key' => 'disc_purple_{INDEX}', 'nbr' => $this->constants["DISCS_PER_PLAYER"]),
array('key' => 'disc_red_{INDEX}', 'nbr' => $this->constants["DISCS_PER_PLAYER"]),
array('key' => 'disc_yellow_{INDEX}', 'nbr' => $this->constants["DISCS_PER_PLAYER"]),
array('key' => 'pi_blue_{INDEX}', 'nbr' => $this->constants["PIS_PER_PLAYER"]),
array('key' => 'pi_green_{INDEX}', 'nbr' => $this->constants["PIS_PER_PLAYER"]),
array('key' => 'pi_purple_{INDEX}', 'nbr' => $this->constants["PIS_PER_PLAYER"]),
array('key' => 'pi_red_{INDEX}', 'nbr' => $this->constants["PIS_PER_PLAYER"]),
array('key' => 'pi_yellow_{INDEX}', 'nbr' => $this->constants["PIS_PER_PLAYER"]),
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),
array('key' => 'penalty_red'),
array('key' => 'penalty_blue'),
array('key' => 'penalty_yellow'),
array('key' => 'penalty_green'),
array('key' => 'penalty_purple'),
);