4LMTBPV7JT446YP5RLF6HT7246BY75U5V35JTEIK4PT5NEPKNNKAC
background-color: rgba(255, 255, 255, 0.33);
height:45px;
width:45px;
height:50px;
width:50px;
background-color: darkred;
border: solid 0 rgba(0, 0, 0, 0.33);
border-width: 0 1px 1px 0;
border-radius: 4px;
box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
.investigator-placeholder:hover {
background-image: url('img/tokens.jpg');
background-position: 380px 400px;
.location_slot {
position: absolute;
height:72px;
width:72px;
box-shadow: 0 0 3px 3px hsla(0, 0%, 100%, 0.75);
}
.loc_tokens {
position: absolute;
height:50px;
width:272px;
text-align: center;
background-color: #ffffff33;
}
.loc_tokens.loc_chinatown {
top: 394px;
left: 30px;
}
.loc_tokens.loc_forestpark {
top: 52px;
left: 596px;
transform: rotate(2.5deg);
}
.loc_tokens.loc_trocadero {
top:220px;
left:452px;
transform: rotate(1deg);
}
.loc_tokens .investigator {
position:relative;
display:inline-block;
}
.loc_tokens .investigator:last-of-type {
margin-right:0;
$cards = array ();
foreach ( $this->evidence_cards as $card_id => $card ) {
$cards [] = array ('type' => 'evidence', 'type_arg' => $card['name'], 'nbr' => 1 );
$cards = array();
foreach ( $this->evidence_cards as $card_id => $card) {
$cards[] = array('type' => 'evidence', 'type_arg' => $card_id, 'nbr' => 1);
// Reset evidence cards
$this->cards->moveAllCardsInLocation(null, "deck");
$this->cards->shuffle('deck');
$this->cards->pickCardsForLocation($this->constants['EVIDENCE_DISPLAY_SIZE'], 'deck', 'evidence_display');
// TODO
// Select a new first player. In minigame 1 it's player_no 1, minigame 2 player_no 2 etc.
$this->activeNextPlayer();
}
$this->cards->insertCardOnExtremePosition( $card_id, "discard", true );
} else {
$this->cards->insertCardOnExtremePosition($card_id, "discard", true);
self::notifyAllPlayers(
'evidenceSelected',
clienttranslate('${player_name} found a useful evidence: ${card_name}'), array (
'i18n' => array ('card_name'),
'card_id' => $card_id,
'useful' => true,
'player_id' => $player_id,
'player_name' => self::getActivePlayerName(),
'value' => $currentCard['type_arg'],
'card_name' => $currentCard['type_arg'],
));
} else {
// $this->cards->moveCard($card_id, "discard");
}
$currentCard = $this->cards->getCard($card_id);
self::notifyAllPlayers(
'evidenceSelected',
clienttranslate('${player_name} plays evidence ${card_name}'), array (
'i18n' => array ('card_name'),
'card_id' => $card_id,
'player_id' => $player_id,
'player_name' => self::getActivePlayerName(),
'value' => $currentCard['type_arg'],
'card_name' => $currentCard['type_arg'],
));
$this->cards->moveCard($card_id, "player_display", $player_id);
self::notifyAllPlayers(
'evidenceSelected',
clienttranslate('${player_name} had no luck following evidence ${card_name}'), array (
'i18n' => array ('card_name'),
'useful' => false,
'card_id' => $card_id,
'player_id' => $player_id,
'player_name' => self::getActivePlayerName(),
'value' => $currentCard['type_arg'],
'card_name' => $currentCard['type_arg'],
));
}
// // Build card type id
var card_type_id = value;
// var card_type_id = this.getCardUniqueId(color, value);
// this.playerHand.addItemType(card_type_id, card_type_id, g_gamethemeurl + 'img/cards.jpg', card_type_id);
this.evidenceDisplay.addItemType(card_type_id, card_type_id, g_gamethemeurl + 'img/cards.jpg', card_type_id);
var pos_in_img = value - 1; // it's zero-based
this.evidenceDisplay.addItemType(value, value, g_gamethemeurl + 'img/evidencecards.jpg', pos_in_img);
this.evidenceDisplay.addToStockWithId(card.id, card.id);
this.addTooltip('evidence_item_' + card.id, _('Evidence') + card.type_arg, _('Follow this evidence…'))
this.evidenceDisplay.addToStockWithId(card.type_arg, card.id);
this.addTooltip('evidence_item_' + card.id, _(this.gamedatas.evidence_cards[card.type_arg].name), _('Follow this evidence…'));
console.log( 'notif_cardPlayed' );
console.log( notif );
this.evidenceDisplay.removeFromStock(notif.args.card_id);
// TODO: move to player if applicable
if (notif.args.useful) {
this.evidenceDisplay.removeFromStock(notif.args.card_id, 'evidence_discard');
} else {
this.evidenceDisplay.removeFromStock(notif.args.card_id, 'evidence_discard');
}
<div class="disc yellow" style="top:200px; left:200px"></div>
<div class="disc yellow" style="top:240px; left:223px"></div>
<div class="disc yellow" style="top:230px; left:223px"></div>
<div class="disc yellow" style="top:220px; left:223px"></div>
<div class="investigator-placeholder yellow" style="top:300px; left:500px"></div>
<div class="location_slot" style="top:282px; left:348px; transform:rotate(2.5deg);"></div>
<div class="investigator" style="background: red; top:218px; left:160px"></div>
<div class="investigator" style="background: gold; top:218px; left:220px"></div>
<div class="investigator" style="background: lime; top:218px; left:280px"></div>
<div class="investigator" style="background: magenta; top:218px; left:340px"></div>
<div class="investigator" style="background: blue; top:218px; left:400px"></div>
<div class="loc_tokens loc_forestpark" style="">
<div class="investigator" style="background: gold;"></div>
<div class="investigator" style="background: magenta;"></div>
<div class="investigator" style="background: red;"></div>
<div class="investigator" style="background: lime;"></div>
<div class="investigator" style="background: blue;"></div>
</div>
<div class="loc_tokens loc_chinatown" style="">
<div class="investigator" style="background: red;"></div>
<div class="investigator" style="background: blue;"></div>
</div>
<div class="loc_tokens loc_trocadero" style="">
<div class="investigator" style="background: red;"></div>
<div class="investigator" style="background: blue;"></div>
</div>
1 => array( 'name' => clienttranslate('Shorty'), 'nametr' => self::_('Shorty') ),
2 => array( 'name' => clienttranslate('Queeny'), 'nametr' => self::_('Queeny') ),
3 => array( 'name' => clienttranslate('Maurice'), 'nametr' => self::_('Maurice') ),
1 => array('name' => clienttranslate('Murder'), 'nametr' => self::_('Murder')),
2 => array('name' => clienttranslate('Shorty'), 'nametr' => self::_('Shorty')),
3 => array('name' => clienttranslate('Doc'), 'nametr' => self::_('Doc')),
4 => array('name' => clienttranslate('Rusty'), 'nametr' => self::_('Rusty')),
5 => array('name' => clienttranslate('Bubbles'), 'nametr' => self::_('Bubbles')),
6 => array('name' => clienttranslate('Frenchy'), 'nametr' => self::_('Frenchy')),
7 => array('name' => clienttranslate('Maurice'), 'nametr' => self::_('Maurice')),
8 => array('name' => clienttranslate('Main Street'), 'nametr' => self::_('Main Street')),
9 => array('name' => clienttranslate('Waterfront'), 'nametr' => self::_('Waterfront')),
10 => array('name' => clienttranslate('Mob Killing'), 'nametr' => self::_('Mob Killing')),
11 => array('name' => clienttranslate('Pop'), 'nametr' => self::_('Pop')),
12 => array('name' => clienttranslate('Dutch'), 'nametr' => self::_('Dutch')),
13 => array('name' => clienttranslate('Knuckles'), 'nametr' => self::_('Knuckles')),
14 => array('name' => clienttranslate('Pinky'), 'nametr' => self::_('Pinky')),
15 => array('name' => clienttranslate('Queenie'), 'nametr' => self::_('Queenie')),
16 => array('name' => clienttranslate('Earl'), 'nametr' => self::_('Earl')),
17 => array('name' => clienttranslate('Ocean Drive'), 'nametr' => self::_('Ocean Drive')),
18 => array('name' => clienttranslate('Union Square'), 'nametr' => self::_('Union Square')),
19 => array('name' => clienttranslate('Little Italy'), 'nametr' => self::_('Little Italy')),
20 => array('name' => clienttranslate('Bank Job'), 'nametr' => self::_('Bank Job')),
21 => array('name' => clienttranslate('Blackmail'), 'nametr' => self::_('Blackmail')),
22 => array('name' => clienttranslate('Police Corruption'), 'nametr' => self::_('Police Corruption')),
23 => array('name' => clienttranslate('Forgery'), 'nametr' => self::_('Forgery')),
24 => array('name' => clienttranslate('Downtown'), 'nametr' => self::_('Downtown')),
25 => array('name' => clienttranslate('China Town'), 'nametr' => self::_('China Town')),
26 => array('name' => clienttranslate('Forest Park'), 'nametr' => self::_('Forest Park')),
27 => array('name' => clienttranslate('Central Station'), 'nametr' => self::_('Central Station')),
28 => array('name' => clienttranslate('Rick’s Cafe'), 'nametr' => self::_('Rick’s Cafe')),
29 => array('name' => clienttranslate('Kidnapping'), 'nametr' => self::_('Kidnapping')),
30 => array('name' => clienttranslate('Jewellery Heist'), 'nametr' => self::_('Jewellery Heist')),
31 => array('name' => clienttranslate('Smuggling'), 'nametr' => self::_('Smuggling')),
32 => array('name' => clienttranslate('Protection Racket'), 'nametr' => self::_('Protection Racket')),
33 => array('name' => clienttranslate('Roadhouse'), 'nametr' => self::_('Roadhouse')),
34 => array('name' => clienttranslate('Trocadero'), 'nametr' => self::_('Trocadero')),
35 => array('name' => clienttranslate('Skid Row'), 'nametr' => self::_('Skid Row')),
36 => array('name' => clienttranslate('Lakeside'), 'nametr' => self::_('Lakeside')),