外观
装备淬炼 · 技术实现
「玩家设定 →」
1. 代码位置
| 层 | 类 | 职责 |
|---|---|---|
| Controller | controller/EquipmentController(/api/equipment) | 淬炼升级、淬炼上限突破接口 |
| Service | service/EquipmentRefineService | 淬炼结算:词条升级、材料消耗、上限突破(player_refine_cap) |
| domain | domain/EquipmentRefineEntryType | 三条词条:主属性每级 +1%(MAIN_ATTRIBUTE_PERCENT);固定伤害/真实伤害 damageValueAtLevel 固定点数分段(CAP_SEGMENT_PER_TIER=1000 级/段、BASE_DAMAGE_PER_LEVEL=100,第 n 段每级 +100n,满 10,000 级 = 5,500,000);pctBonusAtLevel 已 @Deprecated 恒返回 0 |
| domain | domain/EquipmentRefineStats、domain/EquipmentRefineEntryDto | 淬炼状态与展示 DTO |
| domain | domain/TitleRules | 淬炼上限突破跟随称号阶数(MAX_TIER=10),突破消耗与称号进阶石公式一致(advanceStoneCost) |
| balance | balance/BalanceConfigRegistry | BalanceTrack.REFINE_FOUR_DIM / REFINE_FIXED / REFINE_TRUE 三条轨道闭合校验 |
2. 数据表
| 表 | 关键列 | 说明 |
|---|---|---|
equipment | player_id、slot、refine_* | 装备淬炼等级(V1 扩展列) |
player_refine_cap | player_id、slot、entry_type、cap_tier | 固伤/真伤淬炼上限突破阶(V52 equipment_refine_specialization) |
system_growth_config | track=REFINE_FOUR_DIM/REFINE_FIXED/REFINE_TRUE、unit_cost | 淬炼材料消耗(V47,V69/V70/V71 调整) |
3. 配置与常量
- 淬炼词条定义与上限材料:emberfall-server/src/main/java/com/emberfall/domain/EquipmentRefineEntryType.java:16源码读取失败,片段不可用
- 上限突破规则(docs/48 D2 小阶化):
CAP_STEP=100(90 次小阶 × 100 级 = 10000 级上限)、CAP_SEGMENT_PER_TIER=1000(千级区间,titleTierForCap = ceil(cap/1000)供门槛/称谓换算)、requiredChallengeLevel(currentCap)(千级区间序号语义 2~10,同一区间内 10 小阶共享;扩层后与最高已通关全局层折算的境界块序号比较)、INITIAL_FIXED_DAMAGE_CAP=1000;突破消耗capUnlockCost(k) = 100 + 20k(k=0 基,90 次合计 89,100,V143 存量 unlock_count ×10 迁移、不追溯补差) - 材料:
REFINE_MATERIAL_ITEM_ID=9001(淬炼精魄,产自万象蕴灵境)、FIXED_DAMAGE_CAP_MATERIAL_ITEM_ID=9101(固伤灵砂)、TRUE_DAMAGE_CAP_MATERIAL_ITEM_ID=9102(真伤灵砂) - yml 键:无(数值全部走常量类与
system_growth_config)
4. 数据流简述
POST /api/equipment/refine 选择词条(主属性/固伤/真伤)与次数,EquipmentRefineService 校验材料(淬炼精魄)与等级上限,按 valuePerLevel 累计属性并扣材料写回 equipment。固伤/真伤达到当前阶上限后,POST /api/equipment/refine/cap-unlock 校验对应灵砂、称号阶数,以及炼体秘境/破界深渊的同境通关记录(requiredChallengeLevel 千级区间序号语义,最高已通关全局层 → 境界块序号折算,docs/37 §5.3 扩层后),写入 player_refine_cap。灵砂(9101/9102)由真伤塔 / 固伤塔供给(炼体/深渊已去灵砂化)。
通道出口装配(PlayerService):固伤/真伤词条以固定点数加算进对应通道出口,不再作为乘区—— calculateFinalFixedDamage = (金刚体魄扁平 × (1+圆满) + sumRefineFlatBonus(FIXED))× (1 + 称谓%); calculateFinalTrueDamage = (毁灭真伤 × 六槽① × 灭空归一 + sumRefineFlatBonus(TRUE))× (1 + 称谓%)。 装备详情 DTO 的固伤/真伤字段(Equipment.getFixedDamageFlat/getTrueDamageFlat)与战斗口径一致。
5. 已知差异
- 固伤/真伤口径(2026-09,docs/53):旧实现生效的是
pctBonusAtLevel(每级 +0.1%、满级 +1000% 乘区),而展示(EquipmentService.effectValue→valueAtLevel扁平值)走的是另一条口径——同一词条「面板显示扁平、战斗按百分比」,且乘区把金刚体魄的 99,000 底值放大到 6,058,800,使「每级 +100」的设计口径彻底失效。现统一回归damageValueAtLevel固定点数分段并改为加算。
6. 相关代码
- 称号系统(
TitleRules:淬炼上限与称号阶数联动) - 装备强化(
EnhancementService:强化与淬炼属性独立叠加) - 余烬试炼场(固伤/真伤输出在试炼 DPS 结算中生效,见
EmberTrialDamageService) - 炼体秘境 / 破界深渊(固伤/真伤对应挑战场景;扩层后挑战进度按境界块序号折算)
- 真伤塔 / 固伤塔(灵砂 9101/9102 供给来源)