FastThenVerySlowGrowthRateCalculator.kt

package io.github.lishangbu.avalon.game.calculator.growthrate

import org.springframework.stereotype.Service

/**
 * 最慢组成长速率计算器
 *
 * @author lishangbu
 * @since 2026/2/25
 */
@Service
class FastThenVerySlowGrowthRateCalculator : AbstractGrowthRateCalculator() {
    /** 获取成长速率内部名称 */
    override fun getGrowthRateInternalName(): String = "fast-then-very-slow"

    /**
     * 计算最慢组在指定等级下的经验值
     *
     * 使用官方分段函数实现
     */
    override fun tryCalculateGrowthRate(level: Int): Int {
        val cubedLevel = level * level * level
        return if (level <= 15) {
            val term = 24 + ((level + 1) / 3)
            cubedLevel * term / 50
        } else if (level <= 35) {
            val term = 14 + level
            cubedLevel * term / 50
        } else {
            val term = 32 + (level / 2)
            cubedLevel * term / 50
        }
    }
}