外观
世界 BOSS · 技术实现
「玩家设定 →」
1. 代码位置
| 层 | 类 | 职责 |
|---|---|---|
| Controller | controller/WorldBossController(/api/world-boss) | 总览/挑战/结算查询 |
| Service | service/WorldBossService | 挑战结算、按日最高伤害排名 |
| Service | service/WorldBossScheduler | 每日 20:00 结算调度 |
| Service | service/WorldBossTheaterBuilder | 60 秒战斗演出时间线(三阶段:常态/狂暴/绝杀) |
| domain | domain/WorldBossRules | 规则:开放 0:00-19:30、20:00 结算、60 秒/次、基准血 450 亿、每日 +2%(基准日 2026-01-01)、血量下限 5%、排名奖励分段 10/8/6/5/5/5/4/4/4/4/3…(rewardForRank:153-176)绑定五彩神石 |
| domain | domain/BossPhaseRules、domain/BossAffixRules、domain/BossRhythm | BOSS 阶段/词缀/节奏 |
2. 数据表
| 表 | 关键列 | 说明 |
|---|---|---|
world_boss_day | boss_key、boss_date、max_health、defense、boss_name | 当日 BOSS 确定性生成(V30) |
world_boss_player_record | player_id、boss_key、damage、rank | 玩家挑战记录与结算排名(V30) |
3. 配置与常量
- BOSS 规则:
名称 数值 说明 gameZoneGAME_ZONE ZoneId.of("Asia/Shanghai") — openStartHourOPEN_START_HOUR 0 — openEndHourOPEN_END_HOUR 19 — openEndMinuteOPEN_END_MINUTE 30 — settleHourSETTLE_HOUR 20 — challengeTimeSecondsCHALLENGE_TIME_SECONDS 60 — bossHealthFloorRatioBOSS_HEALTH_FLOOR_RATIO 0.05D BOSS 血量展示下限比例:结算前 BOSS 不会被击杀,剩余血量不低于最大血量的 5%。 作用于 overview 当前血量、挑战结果剩余血量、演出时间线中的 BOSS 血量。 bossBaseHealthBOSS_BASE_HEALTH 45_000_000_000L — bossBaseDefenseBOSS_BASE_DEFENSE 0L — growthBaseDateGROWTH_BASE_DATE LocalDate.of(2026, 1, 1) — dailyGrowthRateDAILY_GROWTH_RATE 0.02D — theaterPhase1EndSecondTHEATER_PHASE1_END_SECOND 20 — theaterPhase2EndSecondTHEATER_PHASE2_END_SECOND 40 — bindingRainbowStoneIdBINDING_RAINBOW_STONE_ID ShopBalanceRules.RAINBOW_STONE_ID — bindingRainbowStoneNameBINDING_RAINBOW_STONE_NAME ShopBalanceRules.RAINBOW_STONE_NAME — bossNamePoolBOSS_NAME_POOL { "九幽魔尊", "万古邪神", "天外魔龙", "太虚古皇", "九霄雷帝", "冥河老祖", "万年蛟王", "血海修罗", "混沌魔猿", "枯骨大帝" } — 来源:emberfall-server/src/main/java/com/emberfall/domain/WorldBossRules.java· commit5916da43b88f343400acfdb20c97a5cc7927fdbd - 确定性生成与成长:emberfall-server/src/main/java/com/emberfall/domain/WorldBossRules.java:22源码读取失败,片段不可用
- yml 键:无(时间与数值全部常量类;管理端
AdminWorldBossController可查)
4. 数据流简述
每日按 GROWTH_BASE_DATE(2026-01-01) 起线性成长生成当日 BOSS(同服所有人同一只),开放期内 POST /api/world-boss/challenge 进行 60 秒输出比拼,取当日最高单次伤害记入 world_boss_player_record(BOSS 血量下限 5% 保证后续玩家可参与)。WorldBossScheduler 每日 20:00 结算,按伤害排名发放绑定五彩神石(WorldBossRules.rewardForRank:第 1 名 10、第 2 名 8、第 3 名 6、4~6 名 5、7~10 名 4、11~100 名 3、其余 2)。
5. 已知差异
无
6. 相关代码
- 排行榜(
RankingService:战力排行并行) - 战斗演出(
WorldBossTheaterBuilder、CombatTimelineBuilder) - 商城(五彩神石 4002 兑换体系)
- 管理端(
admin/controller/AdminWorldBossController)