.*): (?.*) \/ (?.*)/m", $progress, $tmp);
for($i = 0; $i < count($tmp[0]); $i++) {
if(preg_match('/XP\:/', $tmp['task'][$i]))
continue;
$list[$i] = (object)[
'task' => trim($tmp['task'][$i]),
'act' => (int)str_replace('.', '', $tmp['act'][$i]),
'max' => (int)str_replace('.', '', $tmp['max'][$i])
];
$list[$i]->percent = round($list[$i]->act / $list[$i]->max * 100, 2);
$list[$i]->left = $list[$i]->max - $list[$i]->act;
}
usort($list, function($a, $b) { return $b->percent <=> $a->percent; });
$act = $max = $avg = 0;
for($i = 0; $i < 5; $i++) {
$act += $list[$i]->act;
$max += $list[$i]->max;
$avg += $list[$i]->percent;
}
$percent = round($act / $max * 100, 2);
$tpl['data'] = [
'progress' => $progress,
'list' => $list,
'percent' => $percent,
'avg' => round($avg / 5, 2)
];
}
else {
$tpl['data'] = [
'progress' => ''
];
}