public function __construct(Character $character, array $stats, array $checklist)
{
$this->character = $character;
if (count($checklist) === 0) {
return;
}
$advisors = new Advisors($checklist);
// stats grouped by activity hash
$statsArray = [];
foreach ($stats as $k => $stat) {
$activityHash = (string) $stat['activityHash'];
$statsArray[$activityHash] = new StatisticsCollection($stat['values']);
}
// Weekly Nightfall
$nightfall = $advisors->nightfall->toActivity($character, $statsArray);
$this->put('NIGHTFALL', $nightfall);
// Daily PVE/PVP
$dailyChapter = $advisors->dailychapter->toActivity($character, $statsArray);
$this->put('DAILY_PVE', $dailyChapter);
$dailyCrucible = $advisors->dailycrucible->toActivity($character, $statsArray);
$this->put('DAILY_PVP', $dailyCrucible);
/** @var ActivityTier $activityTier */
foreach ($advisors->vaultofglass->activityTiers as $activityTier) {
/** @var ActivityTier $activity */
$activity = $activityTier->toActivity($character, $statsArray);
$activity->activityMode = $activityTier->tierDisplayName;
$this->put('RAID_' . $activity->activityHash, $activity);
}
foreach ($advisors->crota->activityTiers as $activityTier) {
/** @var Activity $activity */
$activity = $activityTier->toActivity($character, $statsArray);
$activity->activityMode = $activityTier->tierDisplayName;
$this->put('RAID_' . $activity->activityHash, $activity);
}
foreach ($advisors->kingsfall->activityTiers as $activityTier) {
/** @var Activity $activity */
$activity = $activityTier->toActivity($character, $statsArray);
$activity->activityMode = $activityTier->tierDisplayName;
$this->put('RAID_' . $activity->activityHash, $activity);
}
foreach ($advisors->wrathofthemachine->activityTiers as $activityTier) {
/** @var Activity $activity */
$activity = $activityTier->toActivity($character, $statsArray);
$activity->activityMode = $activityTier->tierDisplayName;
$this->put('RAID_' . $activity->activityHash, $activity);
}
foreach ($advisors->elderchallenge->activityTiers as $activityTier) {
/** @var Activity $activity */
$activity = $activityTier->toActivity($character, $statsArray);
$this->put('ARENA_' . $activity->activityHash, $activity);
}
foreach ($advisors->prisonofelders->activityTiers as $activityTier) {
/** @var Activity $activity */
$activity = $activityTier->toActivity($character, $statsArray);
$this->put('ARENA_' . $activity->activityHash, $activity);
}
}