# 方案:局内 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 时显示;有 box 时 `lock.y=-15`,否则 `0` | | five | 格子锁 tip 子节点 `five`:解锁条件有五行时显示对应金木水火土图标,无则隐藏 | ## 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