You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
AdLike2048/docs/方案-局内Battlebuff三选一.md

47 lines
2.0 KiB

# 方案:局内 Battlebuff 三选一
> 日期:2026-10-13
> 决策:局外 DailyShop 拆除;地图解锁次数触发;玩家弹窗 / AI 同规则自动选;单局有效。
## 1. 获取与生命周期
| 项 | 说明 |
|----|------|
| 触发 | Const **27** `para1` 解锁次数列表(如 `2,4,6,8,10`) |
| 钩子 | `BattleBagSession._dragUnlockArea` 成功后 `completedCount ∈ Const27` |
| 玩家 | `UIID.PopSelect`(`pauseBattle`) |
| AI | `BattleBuffSelectService.autoPickOne`(无 UI) |
| 携带 | `BattleBuffCarryStore`(开战 clear,不写跨天存档) |
| box | 格子锁 tip 子节点 `box`:下一次解锁次数在 Const27 时显示 |
## 2. 抽取
1. **自动刷新**(弹窗打开):Const 30 + 弹窗序号 ≥ Const31/32 次数时紫/橙加值。
2. **主动刷新**(点按钮):Const 33 + Const34/35;先扣免费(Const36.`para`)再广告(Const37.`para`)。
3. 独立抽 3 次品质 → 按 `quality` + `weight` + `limit`(本局获得次数)子池抽具体行;同批去重。
## 3. 新 functiontype(101~104)
| ft | 效果 | 属性 |
|----|------|------|
| 101 | 伤害 | Attack Mul(万分比) |
| 102 | 暴击 | CritRate Add |
| 103 | 爆伤 | CritDamage Add |
| 104 | 攻速 | aspd_add |
过滤:`target`(0 全局 / 1~5 五行 / 99 全五行)+ `targetpar` 类型1 等级区间。实现类:`BattleBuffDigitStatHost`。
## 4. 关键文件
- `manager/battleBuff/BattleBuffSelectService.ts`
- `battle/combat/BattleBuffDigitStatHost.ts`(含 `BattleBuffInGameRefresh`)
- `ui/PopSelect/UIPopSelect.ts`
- `DailyShopDataManager.ts` 降为空壳;结算商店 UIID 配置已移除
## 5. 验收
- [ ] 第 2/4/6/8/10 次地图解锁弹出三选一;格子锁 box 预告正确
- [ ] 免费/广告刷新次数与品质权重符合 Const 30~37
- [ ] 选中后被动栏刷新;101~104 对匹配五行等级塔生效
- [ ] AI 同次数自动获得;赛前不再灌商店携带
- [ ] 结算不再弹 DailyShop