// Move cubes back to player supply; puts discs on solution.
$color = $this->constants['HEX2COLORNAME'][self::getCurrentPlayerColor()];
$this->tokens->moveTokens(
array_pluck($this->tokens->getTokensOfTypeInLocation("cube_{$color}_%"), 'key'),
"cubes_{$player_id}");
$locslot_ids = array_pluck($tiles, 'location_arg');
foreach ($locslot_ids as $i => $locslot_id) {
$this->tokens->moveToken("disc_{$color}_{$i}", "locslot_{$locslot_id}");
}
// Also investigators that have been used go back to the box.
$used_investigators = $this->tokens->getTokensOfTypeInLocation("pi_{$color}_%", 'agentarea_%');
if ($used_investigators) {
$this->tokens->moveTokens(array_pluck($used_investigators, 'key'), 'box');
}
self::notifyAllPlayers(
'placeTokens', '',
array('tokens' => array_merge(
array(),
$this->tokens->getTokensOfTypeInLocation("cube_{$color}_%"),
$this->tokens->getTokensOfTypeInLocation("disc_{$color}_%"),
$this->tokens->getTokensOfTypeInLocation("pi_{$color}_%")
))
);