BOSS挑战:轮换、伤害、宝箱与跳过
本页于 2026-10-15 整合现有功能稿、飞书内容及客户端 origin/develop@7f0636c9 的功能资料。原 draft/unknown 不因整理自动变为批准;设计规则、源配置与运行结果分别说明。本次只做文档及源码审阅,没有执行游戏功能测试。
入口与战斗规则
副本挑战页进入当天BOSS详情,展示名字、立绘、特性、当前难度、奖励、次数、宝箱和排名。开放等级由配置决定(设计例主角9级)。每天按服务器UTC+0的0点全服轮换,重置前10分钟停止挑战并提示“挑战即将重置,请稍后”。已选择英雄的专属牌在战前连续5轮4选2,允许同轮同英雄重复;选择确认即进化,隐藏手牌出牌区。人数“最少5名”是早期设计,客户端阵容具体准入需独立核实。
当前是180秒、单BOSS、无波次刷怪;进入后先展示英雄站位待机与选卡,选完才启动战斗/自动/计时。BOSS战前选卡保持角色表现但不触发战斗暂停,面板抬高与平台锚点对齐;主线/材料的波次选卡仍暂停战斗。BOSS死亡正常胜利、城墙0失败;计时归零代码当前走胜利请求,是否只有最终难度应这样判定尚待产品确认。
完整局外与奖励规则
挑战副本
挑战副本详细设计
挑战副本包含以下几类关卡
1、BOSS挑战
后续还可增加
BOSS挑战详细设计
关卡机制详细设计(待定)
1、玩法概述
-
考验玩家英雄的养成练度,仅针对英雄的输出能力
-
BOSS预设特性,并在战前告知,玩家需要开始前就选择英雄上阵
-
开局提供英雄牌进行前置升级,仅提供已选择的英雄牌,不提供其他效果牌,靠英雄练度进行输出
2、玩法流程
- 设置上阵英雄——进入挑战——选择英雄牌升级——战斗——结算
设置上阵:
战前设置,沿用之前的英雄上阵功能
- 上阵人数:需最少上阵5名英雄(界面增加相关功能入口)
战斗相关:
战斗时间:180秒左右
开局选择英雄升级:
-
战斗开始前选5次,每次4选2,根据具体配置
-
仅筛选出已上阵的英雄牌提供选择,允许一轮里出现多个相同的英雄
-
拿牌用牌操作调整为,每轮选择确认后,被选英雄即可升级,无需再手动出牌操作,并屏蔽手牌出牌区
结算:
-
非最后一关boss,boss死亡即为胜利
-
最后一关boss,时间结束则关卡胜利
-
失败:城墙血量为0则失败
-
胜利或失败都退出关卡,且只显示为胜利结算,并发放本次挑战奖励
倍速:可开2倍速,3倍速
-
数据记录:无论胜负,都需记录对boss造成的有效伤害(含英雄召唤物伤害),对其他怪物伤害不计入
-
非最后一关boss,可通过记录boss剩余血量,获得本场对boss造成的有效伤害
-
最后一关boss,则需一直记录对boss造成的伤害,直到关卡结束
-
结算界面中需显示本场有效伤害
-
自动:自动功能需开启,玩家可自动拿牌,用牌,放大招
-
跳过:选择完毕后,开战一段时间(视客户端模拟整个战斗需多长时间)后即可跳过战斗,直接获得最终结果
3、地图和BOSS设计
场景:使用常规主线关的地图
BOSS
BOSS特性示例
| 名字 | 形象 | 特性 | 技能1 | 技能2 |
|---|---|---|---|---|
| 新增1 | 抗火 | |||
| 新增2 | 抗电 | |||
| 新增3 | 抗冰 | |||
| 原有大炮 | 抗火 | 三连 | ||
| 原有巨兔 | 抗电 | 召唤 | ||
| 原有护士 | 抗冰 | 治疗 |
战斗界面,结算界面
关卡规则详细设计
- BOSS挑战关以每日挑战1个boss的形式轮换,按周日期数全服同步
每日BOSS示例
| 关卡数 | 关卡id | BOSS名 | boss图 | BOSS介绍 | 挑战次数 | 挑战奖励 | 宝箱奖励 |
|---|---|---|---|---|---|---|---|
| 1 | 10001 | 猪王 | zhuwabg | zhuwabg | 3 | 钻石1100 | 金币10000 |
| 2 | 10002 | 鱼王 | zhuwabg | zhuwabg | 3 | 钻石1100 | 金币10000 |
| 3 | 10003 | 狗王 | zhuwabg | zhuwabg | 3 | 钻石1100 | 金币10000 |
| 4 | 10004 | 猪王 | zhuwabg | zhuwabg | 3 | 钻石1100 | 金币10000 |
| 5 | 10005 | 鱼王 | zhuwabg | zhuwabg | 3 | 钻石1100 | 金币10000 |
| 6 | 10006 | 狗王 | zhuwabg | zhuwabg | 3 | 钻石1100 | 金币10000 |
示例
-
由服务器根据配置表,每日开放对应的BOSS关卡给全服玩家进行挑战,BOSS难度由玩家历史决定,初始为难度1
-
1、功能开放:按玩家主角等级,开放后,玩家可挑战本日开放的BOSS关卡
-
主角9级(配置)
-
2、每日重置时间点:UTC+0(服务器时间) 0点
-
重置截止前10分钟限制玩家挑战,避免出现跨时间问题。此时间内点击【挑战】提示【挑战即将重置,请稍后】
-
3、挑战次数:3,默认3,(配置)可被其他功能增加(如周月卡特权)
-
次数不累计,每日0点重置回最大次数
-
每挑战或扫荡一次扣除1次次数,进入关卡时就扣,不返还
-
玩家进入新的BOSS难度时,挑战次数也会重置
-
挑战次数=0时,点击【挑战】或【扫荡】提示【挑战次数不足】
-
4、关卡挑战:功能开放后,且本日有挑战次数,即可挑战
-
挑战胜利处理:
-
获得1次挑战奖励,并记录当前伤害记录
-
退出关卡后,挑战界面刷新出下一难度的BOSS挑战,且挑战次数重置
-
如果最后一个难度的BOSS也被胜利,则挑战界面停留在此难度
-
挑战失败处理:
-
获得1次挑战奖励,并记录当前伤害记录
-
退出关卡后,挑战界面维持在此难度,挑战次数-1
-
5、伤害记录:每次挑战,记录对当前难度boss造成的有效伤害值(对boss外的其他怪物造成的伤害不统计)
-
伤害值需由服务器验证,超过一定阈值时作废为0
-
当前接入分开记录:累计DamagePercent用于宝箱,单场TodayMaxDamage用于今日纪录;旧设计将两者混为最高伤害,已在实现差异中明确
-
伤害值只记录本日造成最高的值,有新的最高值时,需覆盖之前的值
-
每日0点发放排行榜奖励后重置
-
6、挑战宝箱奖励:每个难度的BOSS预设若干宝箱奖励,按最高伤害值是否达到条件开启
宝箱阈值示例
| 宝箱奖励 | 伤害百比 | 奖励内容 |
|---|---|---|
| 1 | 0.1 | 金币1000;钻石100 |
| 2 | 0.2 | 金币1000;钻石100 |
| 3 | 0.3 | 金币1000;钻石100 |
| 4 | 0.4 | 金币1000;钻石100 |
| 5 | 0.5 | 金币1000;钻石100 |
| 6 | 0.6 | 金币1000;钻石100 |
| 7 | 0.7 | 金币1000;钻石100 |
| 8 | 0.8 | 金币1000;钻石100 |
| 9 | 0.9 | 金币1000;钻石100 |
| 10 | 1 | 金币1000;钻石100 |
示例
-
伤害百比=造成的伤害/BOSS血量
-
如果一次挑战就达到了最高伤害值的条件,则可拿完全部的宝箱奖励内容
-
每个宝箱只可领取一次,进入新的难度后宝箱重置
-
如果BOSS未被击杀,则每个宝箱奖励需玩家手动领取;如果被击杀,退出关卡后,自动领取所有可领的宝箱奖励
-
未达成领取条件时,为不可领取状态
-
达成条件后,为可领取状态
-
手动领取后,为已领取状态
-
7、挑战奖励:每次挑战,无论胜负无论伤害多少,都会发放一次奖励
8、boss难度
-
每个BOSS都有100个难度(配置),每个难度有不同的宝箱奖励和挑战奖励(配置)
-
每个难度的BOSS被击杀后,即可开启下个难度
-
BOSS难度只能持续向后挑战,不可返回前一难度
-
不同难度的boss属性不同,用难度系数控制也可(配置)
-
如果当日玩家击杀了某个难度的BOSS,退出关卡后,宝箱奖励自动领取,领取后关卡界面会刷新出该BOSS的下一难度,挑战奖励、宝箱奖励也随之刷新,挑战次数重置
-
如果当日玩家未能完成击杀,下次再刷出同一BOSS(血量重置),继承之前的难度和宝箱进度和状态,之前未领取的宝箱可以继续领取
-
最终难度boss:
-
当boss是最终难度时,血量无限不死亡,只记录有效伤害进行排名或发奖
-
boss宝箱奖励全部拿完后,根据伤害,每增加N发放一次循环奖励 (配置)
9、排行榜展示
-
设立boss挑战排行榜,副本解锁后才显示入口
-
按玩家本日挑战的难度和造成的伤害(最终boss则为具体值),一起进行排名
-
挑战难度越高的玩家排名越前,同难度下伤害越高的排名越前,同难度同伤害的以挑战时间排序,时间早的排前
20260920补充
-
如果玩家本日击杀了BOOS难度1,未能击杀BOSS难度2,排行榜只显示难度2的伤害值
-
排行榜的伤害数值显示,超过千的使用K缩写;超过百万的用M缩写,超过十亿的用B缩写;小数点后最多保留2位(四舍五入)
-
未参与的玩家显示为无排名,难度1,伤害0
-
每日0点重置排名,并按排名发放一次排名奖励
20260923补充
- 如果主界面排行榜开了,BOSS还没开,不显示BOSS的页签入口
10、排行榜奖励
-
每日0点,排名前50的玩家可通过系统邮件获得BOSS挑战排行榜奖励
-
前3名奖励最好,每个名次分别有不同奖励
-
第4名~第10名
-
奖励较好,各名次奖励内容相同
-
第11~第30名
-
奖励一般,各名次奖励内容相同
-
第31~第50名
-
奖励较差,各名次奖励内容相同
11、扫荡:
-
需玩家本日挑战过一次后可用,未挑战时,界面只显示【挑战】按钮
-
扫荡扣减挑战次数,无次数则不可扫荡,提示【挑战次数不足】
-
扫荡必然成功,发放一次挑战奖励
-
扫荡不会改变本日最高伤害
UI界面
阵型编队弹窗
排行榜
数据结构
副本列表界面配置
- raid_list.csv
副本类型配置
| ID | RaidType | MissionType | ChallengeCount | UnlockLevel | Name | BackgroundPic | Reward |
|---|---|---|---|---|---|---|---|
| int | RaidType | MissionType | int | int | string | string | (list#sep=|),int |
| c,s | c | c,s | c,s | c | c | c | c |
| 自增ID | 玩法类型 | 关卡类型 | 扫荡(挑战)次数 | 解锁等级 | 名称 | 展示背景图 | 展示奖励 |
| 1 | 材料关 | 金币猎场 | 3 | 3 | mission_name_1 | liechang02 | 212|213|214 |
| 2 | 挑战关 | BOSS挑战 | 3 | 3 | mission_name_2 | liechang03 | 212|213|215 |
BOSS挑战关卡配置
- raid_mission.csv
BOSS关卡配置
| MissionID | MissionType | FrontMissionID | Reward | FirstReward | SuggestPower | BackgroundPic | BossName | BossDesc | BOSSSpine |
|---|---|---|---|---|---|---|---|---|---|
| int | MissionType | int | (list#sep=;),ItemSub | (list#sep=;),ItemSub | int | string | string | string | string |
| c,s | c,s | c,s | c,s | c,s | c | c | c | c | c |
| 关卡ID | 关卡类型 | 前置关卡ID | 扫荡奖励 | 首杀奖励 | 推荐战力 | BOSS背景图 | BOSS名字 | BOSS描述 | BOSS立绘 |
| 201 | boss挑战 | 1|500;211|50;212|15;213|5 | liechang02 | liechang02 | liechang02 | liechang02 | |||
| 202 | boss挑战 | 1|1000;211|100;212|30;213|10 | liechang03 | liechang03 | liechang03 | liechang03 | |||
| 203 | boss挑战 | 1|1500;211|150;212|45;213|15 | liechang04 | liechang04 | liechang04 | liechang04 | |||
| 204 | boss挑战 | 1|500;211|50;212|15;213|5 | liechang05 | liechang05 | liechang05 | liechang05 | |||
| 205 | boss挑战 | 1|1000;211|100;212|30;213|10 | liechang06 | liechang06 | liechang06 | liechang06 | |||
| 206 | boss挑战 | 1|500;211|50;212|15;213|5 | liechang07 | liechang07 | liechang07 | liechang07 |
-
207
-
boss挑战
-
1|1000;211|100;212|30;213|10
-
liechang08
-
liechang08
-
liechang08
-
liechang08
BOSS难度奖励
- raid_bossbox.csv
BOSS难度宝箱配置
| MissionID | BOSSid | HardLevel | BOXID | Box1value | Box1Reward |
|---|---|---|---|---|---|
| int | int | int | int | int | (list#sep=;),ItemSub |
| c,s | c | c | c | c,s | c,s |
| 关卡ID | BOSSID | 难度等级 | 宝箱ID | 宝箱所需伤害百比 | 宝箱奖励 |
| 201 | 1011 | 1 | 1 | 1000 | 1|500;211|50;212|15;213|5 |
| 201 | 1011 | 1 | 2 | 2000 | 1|1000;211|100;212|30;213|10 |
| 201 | 1011 | 1 | 3 | 3000 | 1|1500;211|150;212|45;213|15 |
| 201 | 1011 | 1 | 4 | 4000 | 1|500;211|50;212|15;213|5 |
| 201 | 1011 | 1 | 5 | 5000 | 1|1000;211|100;212|30;213|10 |
BOSS伤害排行
- rank.csv
伤害榜配置
| RankId | RankType | RankLimit | RefreshNum |
|---|---|---|---|
| int | RankType | int | int |
| c,s | c,s | c,s | c,s |
| ID | 排行榜类型 | 排名上限 | 下拉刷新个数 |
| 1 | BOSS挑战排行 | 999 | 20 |
排行榜邮件格式
- mail_type.csv
排行邮件字段
| MailId | Mailtype | MailTitle | MailText | RewardOrNot |
|---|---|---|---|---|
| int | Mailtype | string | string | bool |
| c,s | c,s | c | c | c,s |
| ID | 邮件类型 | 邮件标题 | 邮件正文 | 是否有奖励 |
| 1 | BOSS挑战排行 | liechang02 | liechang02 | 1 |
BOSS排行榜奖励
- boss_challenge_rank_reward
排名奖励配置
| BOSSid | Mailtype | RankMin | RankMax | RankReward |
|---|---|---|---|---|
| int | Mailtype | int | int | (list#sep=;),ItemSub |
| c | c,s | c | c | c,s |
| BOSSid | 邮件类型 | 最低名次 | 最高名次 | 奖励内容 |
| 1011 | BOSS挑战排行 | 1 | 1 | 212|213|214 |
| 1011 | BOSS挑战排行 | 2 | 2 | 212|213|214 |
| 1011 | BOSS挑战排行 | 3 | 3 | 212|213|214 |
| 1011 | BOSS挑战排行 | 4 | 10 | 212|213|214 |
| 1011 | BOSS挑战排行 | 11 | 30 | 212|213|214 |
BOSS终极难度下循环伤害的奖励配置
- public.csv
最终难度循环奖励配置
| 参数 | 类型 | 读取端 | 描述 | 具体参数 |
|---|---|---|---|---|
| BOSSChallengeDamageGradient | int | c,s | BOSS挑战终极难度伤害增长的奖励梯度 | 1000 |
| BOSSChallengeDamageReward | (list#sep=;),ItemSub | c,s | BOSS挑战终极难度伤害增长的奖励 | 1|1000;2|500 |
当前结算与伤害语义
有效伤害只计算BOSS实际HurtAmount,包含英雄召唤物,对其他怪物不计;百分比基于BOSS最大生命。damage_percent是宝箱累计进度,today_max_damage是单场最高纪录并用于排名/扫荡显示;不能用一个数值同时替代两者。胜负共用WIN样式结果页,展示MVP、有效伤害与服务端奖励,退出回BOSS详情。已有待结算mission时客户端提示但不本地擅自清账,由服务端决定。
最终难度当前按对应mission没有宝箱配置行判断,而非本地常量难度100;数据维护遗漏宝箱行会误判,必须说明这个实际触发条件。最终难度展示累计有效伤害,隐藏普通宝箱区;设计中的无限生命/循环奖励需配置与服务端共同支撑,不能凭UI隐藏推断已完成。
血条与界面
当前顶部专用BOSS栏展示头像、类型及分层血条;普通难度默认10层,当前层耗尽剥离并展示下一层预览,色序红EC2020、黄FFEF32、紫D739FF、青2DFCE1循环。普通条不显示生命数字/百分比。最终难度保持满条,仅显示累计伤害。10月14日调整已移除世界BOSS条,旧稿要求头顶条不能继续当当前要求。隐藏波次、军师条、手牌等由LevelRuleConfig明确控制,倒计时显示剩余秒。
跳过战斗
跳过是在同一个ECS世界推进本局剩余战斗:固定步长1/30秒,每渲染帧预算90步;暂停/倍速不改变模拟步长。期间关闭表现创建与播放,保留真实战斗逻辑、随机和胜负事件,不以估算伤害代替模拟。20分钟模拟兜底会落既有胜利路径,这是当前实现边界而非已认可的胜负设计。模拟时按钮不可重复启动,点击反馈“模拟中”;新表现仅图标,无旧百分比进度。结束先恢复表现状态再进入原结算链路,WasBattleSkipped只记录客户端日志不新增上报字段。
游戏时钟统一GameplayClockService,正常卡顿delta最大0.05秒。关卡随机种子覆盖技能/选卡/刷怪,掉落仍有UnityEngine.Random旧消费点;没有建立位级确定性或服务端重放校验,不能宣称跳过与逐帧播放在所有环境逐位相同。
实现证据与待确认
客户端ChallengeLevelController/ChallengeLevelSettlementFlow/RequestBattleSkipCommand/LevelRuleConfig已具备对应流程;历史交接有策划实测记录,但本次没有重跑,不能继承为当前环境测试通过。旧客户端因空进度曾逐个候选尝试并缓存;当前后端88b24abe的Snapshot通过appendMissingBossTypes补齐空进度,NormalizeView按开服日CurrentMission重算pass_mission_id及宝箱。旧“后端不下发missionId”不再作为现状;前端是否还消费旧候选流程须继续核实。InstanceStart返回NullResponse,BOSS校验后CommitStart扣次数,客户端等ack后进入。榜奖励、宝箱与循环奖励都由服务端裁决,客户端不能重复发放。
设计原型


















来源
旧instance;飞书Lyawbgfw3oO4lWxpUXqcOr6pnrd挑战部分完整规则/表格/原型;客户端boss-challenge-design.md后续§10、boss-challenge-handoff.md与DailyDungeon/frontend-brief.md。旧本地编译指引、临时假数据和过期实施计划不再保留。
后端证据:model/instance/view.go、handler/instance/{instance,boss}.go、gameconfig/instancecfg/boss.go(88b24abe)。OnChallenge本场damage_percent万分比累加且封顶100%;OnBoxClaim比较累计DamagePercent与BoxPoint。bossRankUpdate只写本场难度和本场伤害,难度优先、同难度最高伤害、同分更早;隔天提交不入当日榜。