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.
2.0 KiB
2.0 KiB
方案:英雄等级上限与经验升级
已废弃(2026-10-13):战斗内塔经验升级(
TowerExpHost)已从代码移除;等级仍由合成与主动 buff 直接改盘。下文仅作历史参考。
状态:已落地(2026-09-03)
1. 等级上限
- 上限读
Hero.level_limit,经WeaponComposeConfigProvider.getMaxWeaponLevel。 - 拖动合成、封神榜/授仙箓、经验升级、棋盘降级回升,一律
min(上限, 新等级),禁止突破。 level_limit缺失或 ≤0:warn后按 1,不静默当成无上限。
2. 经验升级
Hero.exp[i]:从等级i+1升到i+2所需经验。例:哪吒10,35,75,130对应 1→2 … 4→5。exp为空(基础字刀枪棍弓等)不能靠经验升级,仍可拖字合成。- 仅已部署且有塔装载的攻击单位吃经验;背包未上场的字不吃。
- 经验可结余,循环升级直到不够或已达上限。
3. 击杀 / 助攻
| 条件 | 经验 |
|---|---|
| 该英雄任意伤害打出致命一击 | Monster.exp |
| 对该怪造成过伤害但未拿击杀 | 常量表 id=9(ConstNumType.AssistExp,para) |
- 伤害来源以
DamageDealt.caster为准(普攻、技能、毒、火龙、哪吒冲锋等)。 - 无塔装载的召唤物/机制体不记击杀或助攻。
- 怪物表 id 由
UnitMetaComp.unitDefId解析。
4. 实现
| 模块 | 职责 |
|---|---|
TowerExpHost |
伤害归属、杀/助加经验、连升 |
MergeSession.applyBattleBuffUnitLevelUp |
写 tile / composition.level,受上限截断 |
setupTowerCombat |
升级后重建战斗数值与技能 |
DeploySync |
MapUpgraded 后对账等级与 HeroActor |
5. 验收
- 悟能/悟净/木吒等
level_limit=3的英雄,任意升级方式不能到 4。 - 悟空等上限 5 的英雄经验按
exp数组逐级消耗,满级后经验不再涨、等级不再变。 - 一塔最后一刀拿击杀经验;其它打过该怪的塔拿助攻经验。