外观
炼体秘境 · 技术实现
「玩家设定 →」
1. 代码位置
| 层 | 类 | 职责 |
|---|---|---|
| Controller | controller/BodyTemperingController(/api/dungeon/body-tempering) | 炼体总览/挑战/扫荡 |
| Service | service/BodyTemperingService | 挑战结算、评级、奖励(妖兽精血/五彩神石) |
| Service | service/LongBattleService、service/LongBattleEngine | 墙钟长线战斗(LongBattleType.BODY_TEMPERING) |
| domain | domain/BodyTemperingRules | 规则:MAX_LAYER=10、DEFENSE_RATIO=1.9(防御=攻击×1.9,普攻压制为 1,固伤唯一有效输出)、TARGET_CLEAR_SECONDS=7200、评级 S≤50%/A≤75%/B≤100%、RAINBOW_STONE_BASE=1、BLOOD_ESSENCE_ITEM_ID=5001 |
| domain | domain/BodyTemperingLayer | 每层 targetFixedDps 500~320,000 |
| domain | domain/BossAffixRules、domain/DynamicHpScaling | 血量动态缩放(1/4 次方收敛)、7 层起 3% 闪避 HP 补偿 |
2. 数据表
| 表 | 关键列 | 说明 |
|---|---|---|
player_body_tempering_progress | player_id、layer、best_rating、claimed | 炼体进度与评级(V73) |
player_long_battle_session | player_id、battle_type、started_at、deadline、state | 长线战斗会话(V74) |
3. 配置与常量
- 炼体规则:
名称 数值 说明 maxLayerMAX_LAYER 10 — bloodEssenceItemIdBLOOD_ESSENCE_ITEM_ID 5001L — bloodEssenceItemNameBLOOD_ESSENCE_ITEM_NAME "妖兽精血" — defenseRatioDEFENSE_RATIO 1.9D 怪物防御 = 玩家攻击 × 1.9。炼体秘境同时启用 normalDamageSuppressed, 普攻被压制为 1,固伤是唯一有效输出(对齐 docs/32 §5.2)。 targetClearSecondsTARGET_CLEAR_SECONDS 7_200 — playerSurvivalSecondsPLAYER_SURVIVAL_SECONDS 14_400 — ratingSThresholdRATING_S_THRESHOLD 0.50D — ratingAThresholdRATING_A_THRESHOLD 0.75D — ratingBThresholdRATING_B_THRESHOLD 1.00D — rainbowStoneBaseRAINBOW_STONE_BASE 1 — rainbowStoneSBonusRAINBOW_STONE_S_BONUS 1 — rainbowStoneFirstClearBonusRAINBOW_STONE_FIRST_CLEAR_BONUS 2 — 来源:emberfall-server/src/main/java/com/emberfall/domain/BodyTemperingRules.java· commit5916da43b88f343400acfdb20c97a5cc7927fdbd - 怪物生成(固伤锚点 + 动态血量):emberfall-server/src/main/java/com/emberfall/domain/BodyTemperingRules.java:41源码读取失败,片段不可用
- yml 键:
emberfall.long-battle.time-scale(生产必须为 1)
4. 数据流简述
POST /api/dungeon/body-tempering/challenge 创建长线战斗会话,BodyTemperingRules.encounterStats 以玩家有效固伤 DPS 为锚点生成怪物(防御=攻击×1.9、血量动态收敛),LongBattleEngine 按墙钟推进。结算时按通关时间/目标时间比例评级(S/A/B/C),发放妖兽精血(5001)与五彩神石(基础 1 + S 加成 1 + 首通 2),进度与评级写 player_body_tempering_progress。
5. 已知差异
无(前端 /damage-trial 路由已重定向至 /body-tempering,见 router:67)
6. 相关代码
- 破界深渊(
RealmAbyssRules:真伤版同构玩法) - 磐石之力(
StoneStrengthRules:固伤来源) - 长线战斗引擎(
LongBattleService、LongBattleType) - 装备淬炼(固伤灵砂 9101 产自固伤试炼)