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/需求-组合英雄绑定.md

29 lines
1.5 KiB

# 需求:组合英雄 / 基础单字绑定
> 状态:已落地
> 日期:2026-09-16
## 规则
英雄**激活**后,当前状态绑定到占用的**每一个字**(跟字走:地图 / 背包 / 改字 / 偷取)。
**组合英雄**拆开后再组合:
- 看新组合两个字各自绑定的英雄,**等级更高**的一方整份继承(同级比经验)
- 继承内容:等级、经验、攻速符、千里眼
- **不必是原来的那一对字**;新两字里谁绑定等级高,就按谁重新绑定到这一对
**基础单字**(刀/枪/棍/弓)拖进背包再放回地图:等级、经验、攻速符、千里眼全部恢复。进背包时先把当前实体状态写到字上,避免只进一次背包就丢 Buff。
等级受新英雄 `level_limit` 截断。字被回收/吃掉则该字绑定消失。
## 实现
| 层 | 位置 | 行为 |
|---|---|---|
| 字块数据 | `MapTileRecord.heroBind` / `BagSlotRecord.heroBind` | 快照跟字走 |
| 重组继承 | `MergeSession._recompose` | 组合英雄按两字绑定最高等级写回整组 |
| 进背包快照 | `BattleBagSession._snapshotHeroBindIfMapSource` | 离图前把实体状态写到字上 |
| 激活快照 | `DeploySync` + `TowerExpHost` | 部署/升级/加经验后把实体状态写到字上 |
| 上场恢复 | `DeploySync._restoreAndSnapshotHeroBind` | 新实体按字绑定恢复经验与 Buff |
| Buff | `BattleGameGlobalAttackSpeedHost` / `AttackRangeHost` | 施放后写回绑定;卖塔只清实体层 |