更新
This commit is contained in:
@@ -148,14 +148,33 @@ class DailyGamifyLogic
|
||||
return $list;
|
||||
}
|
||||
|
||||
/** 与前端 tongji/utils/treeLevels.js 保持一致 */
|
||||
protected const TREE_MAX_LEVEL = 9;
|
||||
protected const TREE_XP_PER_LEVEL = 50;
|
||||
|
||||
protected static function treeMeta(int $points): array
|
||||
{
|
||||
$level = min(4, (int) floor($points / 100));
|
||||
$names = ['嫩芽期', '成长雏形', '枝繁叶茂', '含苞待放', '花开稳糖'];
|
||||
$points = max(0, (int) $points);
|
||||
$level = min(self::TREE_MAX_LEVEL, (int) floor($points / self::TREE_XP_PER_LEVEL));
|
||||
$names = ['种子眠', '破土芽', '展两叶', '小树苗', '青枝繁', '拔节高', '稳糖冠', '初绽香', '漫开花', '圆满树'];
|
||||
$xpIn = $level >= self::TREE_MAX_LEVEL ? self::TREE_XP_PER_LEVEL : ($points % self::TREE_XP_PER_LEVEL);
|
||||
$progress = $level >= self::TREE_MAX_LEVEL
|
||||
? 100
|
||||
: (int) round(($xpIn / self::TREE_XP_PER_LEVEL) * 100);
|
||||
$nextName = $level < self::TREE_MAX_LEVEL ? ($names[$level + 1] ?? '') : '';
|
||||
$pointsToNext = $level >= self::TREE_MAX_LEVEL
|
||||
? 0
|
||||
: (self::TREE_XP_PER_LEVEL - $xpIn);
|
||||
|
||||
return [
|
||||
'tree_level' => $level,
|
||||
'tree_progress' => $level >= 4 ? 100 : ($points % 100),
|
||||
'tree_level_name' => $names[$level] ?? '嫩芽期',
|
||||
'tree_level' => $level,
|
||||
'tree_progress' => $progress,
|
||||
'tree_level_name' => $names[$level] ?? '种子眠',
|
||||
'tree_xp_in_level' => $xpIn,
|
||||
'tree_xp_need' => self::TREE_XP_PER_LEVEL,
|
||||
'tree_points_next' => $pointsToNext,
|
||||
'tree_next_name' => $nextName,
|
||||
'tree_is_max' => $level >= self::TREE_MAX_LEVEL,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user