外观
天道法则 · 技术实现
「玩家设定 →」
1. 代码位置
| 层 | 类 | 职责 |
|---|---|---|
| Controller | controller/LawController(/api/player/law) | overview / upgrade(count 连升)/ activate / deactivate / essence/use(精粹直升) |
| Service | service/LawService | 法则升级(连升、部分成功、行锁 + 单条 SQL 落库)、激活/取消(槽位校验 + 600s 冷却)、真伤聚合 |
| domain | domain/LawType | 六法则定义:毁灭 +1000 真伤/级(全局);空间 +1% 真伤、时空 +1% 命中、生命每 10 级 +1% 转化、因果 +1% 破甲、混沌 +0.5% 格挡(均仅真伤副本);MAX_LEVEL=100、UPGRADE_STONE_COST=50;三色石头 9111/9112/9113 与法则绑定;碎片 9106 停产;精粹 9107/9108/9109 |
| domain | domain/LawRules | 6 卡槽(槽 1 免费,槽 k = k−1 个满级法则解锁)、平价升级 upgradeCost、切换冷却 600s、六槽全激活聚合、真伤副本聚合器(trueDamageAmplifier 等) |
| domain | domain/LawResonance | 三组小共鸣:灭空归一(毁灭+空间 → 面板真伤 +20%,全局)、时生命轮(时空+生命 → 转化 +20%)、因混沌壁(因果+混沌 → 免伤 +30%),后两者仅真伤副本 |
| domain | domain/LawEnlightenmentRules | 悟道规则常量(未接线:当前无 Service/Controller 引用) |
| 已删除 | LawStage / LawSynergy | 阶段体系与 10 条两两相生已在六法则改版中移除,由卡槽 + 三组小共鸣接管 |
2. 数据表
| 表 | 关键列 | 说明 |
|---|---|---|
player_law | player_id、law_type、law_level、is_active、slot_index | 法则状态(V73;V136 为所有活跃玩家插入 SPACE 1 级建行) |
player_law_enlightenment | player_id、law_type、enlightenment_level | 悟道等级(V75,未接线) |
player_law_perfection | player_id、law_type、perfection_level | 法则圆满等级(V75,飞升遗留,代码零引用) |
3. 配置与常量
- 六法则定义与三色石头绑定:emberfall-server/src/main/java/com/emberfall/domain/LawType.java:11源码读取失败,片段不可用
- 法则规则(卡槽/冷却/全激活/聚合):
名称 数值 说明 baseMaxSlotBASE_MAX_SLOT 1 — maxSlotMAX_SLOT 6 — switchCooldownSecondsSWITCH_COOLDOWN_SECONDS 600L — mortalEssenceLevelBonusMORTAL_ESSENCE_LEVEL_BONUS 1 — spiritEssenceLevelBonusSPIRIT_ESSENCE_LEVEL_BONUS 3 — immortalEssenceLevelBonusIMMORTAL_ESSENCE_LEVEL_BONUS 5 — maxAbyssBreakValueMAX_ABYSS_BREAK_VALUE 220_000L 破界值满值(docs/50 §5 原始意图 + docs/61 §2.2 v3): 法则1(毁灭)满级 100,000 × 法则2(空间)满级 +100% × 灭空归一共鸣 +20% = <b>220,000(22W)</b>。 <p>破界值就是破界深渊内玩家实际生效的真伤,<b>1 点破界值 = 1 点伤害</b>。 与真伤塔通道基准 {@code ChallengeBalanceConfig.trueChannelD}(固定 200,000,不含灭空归一) 已是两个独立概念。</p> unlockGroupsUNLOCK_GROUPS List.of( List.of(LawType.DESTRUCTION, LawType.SPACE), List.of(LawType.SPACETIME, LawType.LIFE), List.of(LawType.KARMA, LawType.CHAOS)) 法则解锁分组(顺序分组):组 1 = 毁灭 + 空间;组 2 = 时空 + 生命;组 3 = 因果 + 混沌。 <p><b>解锁链</b>:组内两条法则<b>全部满级({@link LawType#MAX_LEVEL})</b>后,下一组的两条法则 才可开始升级;组 1 无前置。即「升满 1+2 才可升 3+4,升满 3+4 才可升 5+6」。 与三色石分组同构(晶石 / 灵石 / 仙石),使仙品石的升级天然被前置组锁住。</p> 来源:emberfall-server/src/main/java/com/emberfall/domain/LawRules.java· commit22d062aff99fabdc373f3b1c82b2a6eff4a034d3 - 悟道规则(未接线):
名称 数值 说明 basePointsBASE_POINTS 10 — pointsPerAbyssDepthPOINTS_PER_ABYSS_DEPTH 2 — mortalEssenceCostMORTAL_ESSENCE_COST 100 — spiritEssenceCostSPIRIT_ESSENCE_COST 500 — 来源:emberfall-server/src/main/java/com/emberfall/domain/LawEnlightenmentRules.java· commit22d062aff99fabdc373f3b1c82b2a6eff4a034d3 - yml 键:无
4. 数据流简述
POST /api/player/law/upgrade(count 单次连升上限 50 级,50 石/级平价,石头不足按可负担级数部分成功,行锁内单条 SQL 加级);POST /activate 免费(要求法则 ≥1 级且槽位已解锁:槽 k 需 k−1 个满级法则),换槽/取消触发 600s 冷却;POST /essence/use 消耗精粹直升(+1/+3/+5)。结算侧:全局仅 sumTrueDamage(毁灭固定真伤)+ 灭空归一面板乘区;真伤副本内走 trueDamageAmplifier = 1 + 空间% ×(六槽?×2:1)+ 灭空归一 20%,免伤/转化/破甲分别由 trueInstanceDamageReduction / trueInstanceLifeConvert / trueInstanceArmorBreak 聚合。主世界 combatEffects 返回中性 profile(百分比效果刻意不进主世界)。
法则的副本内落点(2026-09 补齐,LawInstanceProfile → CombatService)
| 法则 | 副本内效果 | 引擎落点 |
|---|---|---|
| 毁灭 | 固定真伤(全局 + 副本放大) | sumTrueDamage × 六槽① × 灭空归一 |
| 空间 | 真伤输出乘区 | LawInstanceProfile.trueDamageAmplifier |
| 时空 | 命中 +1%/级(满级 +100%) | LawInstanceProfile.hitChance → CombatService.applyMonsterDodge:effectiveDodge = clamp(怪物闪避 − 玩家命中, 0, 0.95)(1% 命中抵 1% 闪避) |
| 生命 | 真伤转生命 | LawInstanceProfile.lifeConvert → CombatService.addLawLifeConvert |
| 因果 | 破甲 +1%/级 | LawInstanceProfile.armorBreak → 只压 effectiveMonsterDefense(破界普攻被压为 1,故当前该乘区在破界无实际数值落点,属已知待办) |
| 混沌 | 格挡 +0.5%/级(满级 +50%) | LawInstanceProfile.damageReduction(玩家侧百分比免伤,与「因混沌壁 +30%」同池、封顶 90%)——注意:这只是玩家减免;「怪物格挡」是另一套独立机制(见下) |
怪物侧法则加成(破界深渊 11 层起):TribulationCloudRules.abyssMonsterDodge/Block/DamageBonus(L) 写入 CloudSpec,由 cloudMonster 写入 MonsterCombatProfile.dodgeRate;其中格挡是离散事件——命中则本次玩家伤害 ×0.5(ABYSS_BLOCK_DAMAGE_TAKEN),不是全场百分比免伤。玩家「命中」1:1 抵消怪物闪避。
5. 已知差异
(新增顺序分组解锁链:LawRules.UNLOCK_GROUPS = (毁灭,空间) → (时空,生命) → (因果,混沌);组内两条全部满级才解锁下一组,升级/精粹双校验抛 7641;LawOverviewDto.LawInfo 增 unlocked / unlockRequirement)(2026-09:时空「命中」由纯展示变为真实战斗属性(1% 抵 1% 怪物闪避);破界深渊高层怪新增闪避/格挡/伤害加成;「格挡」一词现在指两套不同机制——玩家的 LawInstanceProfile.damageReduction(连续百分比免伤)与怪物的离散格挡(只挡该次 50%)。)6. 相关代码
- 磐石之力(
StoneStrengthRules:固伤/真伤双轨的另一轨) - 飞升:已下线移除(见 飞升,原「五法则圆满」前置已随系统删除)
- 无尽试炼(
EndlessTrialRules:21 层起灵品精粹、31 层起仙品精粹分层产出) - 破界深渊(
RealmAbyssRules:三色石头掉落表 + 精粹 roll) - 悟道(
LawEnlightenmentRules:常量已定义,未接线)