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.
1.5 KiB
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 |
施放后写回绑定;卖塔只清实体层 |