外观
磐石之力 · 技术实现
「玩家设定 →」
1. 代码位置
| 层 | 类 | 职责 |
|---|---|---|
| Controller | controller/StoneStrengthController(/api/player/stone-strength) | 磐石总览、节点激活 |
| Service | service/StoneStrengthService | 节点激活校验与结算 |
| domain | domain/StoneStrengthRules | 静态天赋树:3 分支(POWER/TENACITY/FRENZY)× 10 层 = 30 节点;总固伤 103,150、总消耗 12,000 磐石精华;激活前置 = 前 N-1 层全激活 或 肉身阶 ≥ N;STONE_ESSENCE_ITEM_ID=9105 |
| domain | domain/StoneStrengthBranch、domain/StoneStrengthNode、domain/StoneStage、domain/StoneResonance | 分支/节点/阶段/共鸣模型 |
| repository | repository/StoneStrengthRepository | 玩家已激活节点持久化 |
2. 数据表
| 表 | 关键列 | 说明 |
|---|---|---|
player_stone_strength | player_id、branch、tier、activated | 已激活节点(V73,仅存激活状态,节点定义在代码) |
stone_source_config | source_type、daily_limit、target | 磐石精华(9105)来源与每日限额(V47) |
3. 配置与常量
- 三分支节点定义与数值:
名称 数值 说明 maxTierMAX_TIER 10 — stoneEssenceItemIdSTONE_ESSENCE_ITEM_ID 9105L — stoneEssenceItemNameSTONE_ESSENCE_ITEM_NAME "磐石精华" — nodesNODES new EnumMap<>(StoneStrengthBranch.class) — 来源:emberfall-server/src/main/java/com/emberfall/domain/StoneStrengthRules.java· commit5916da43b88f343400acfdb20c97a5cc7927fdbd - 来源配置:
version_key source_key display_name free_daily_cap paid_daily_cap stable_source counts_toward_pressure 300D_V1 WELFARE 福利点券兑换 10 50 1 1 300D_V1 GOLD 打金兑换 7 7 1 1 300D_V1 TRADE 交易净买入 0 0 0 1 300D_V1 ADMIN 管理员发放 0 0 0 1 300D_V1 COMPENSATION 补偿 0 0 0 1 300D_V1 ACTIVITY 活动 0 0 0 1 300D_V1 WORLD_BOSS 世界Boss 0 0 0 1 300D_V1 GROWTH_TOWER 成长塔首通 0 0 0 1 300D_V1 WEEKLY_PACK 周礼包 0 0 0 1 来源:sql/stone_source_config - 激活规则:emberfall-server/src/main/java/com/emberfall/domain/StoneStrengthRules.java:10源码读取失败,片段不可用
- yml 键:无
4. 数据流简述
GET /api/player/stone-strength 返回 30 节点激活状态与固伤汇总。POST /api/player/stone-strength/activate 校验前置(同分支前 N-1 层全激活,或 BodyRefineStage 阶位 ≥ N)与磐石精华(9105)余额,扣材料并写入 player_stone_strength。所有已激活节点固伤累加进 DamageBreakdown 的固定伤害输出。stone_source_config 控制精华每日产出上限。
5. 已知差异
无
6. 相关代码
- 肉身淬炼(
BodyRefineStage:阶位替代前置激活) - 天道法则(
LawRules:固伤/真伤双轨并行) - 飞升(
AscensionRules:30 节点全激活为磐石飞升解锁条件,未开放) - 固伤输出链路(
DamageBreakdown、CombatService)