此次提交全面清理了所有与战斗结束(FEnd)相关的代码: 1. 移除了Hero、Monster等实体中的fend属性与运行时处理 2. 删除了SkillTriggerHelper中的FEnd触发分支 3. 移除了GameEvent中的FightEnd事件与相关监听 4. 清理了配置文件中的FEnd相关枚举、字段与装备 5. 重构了MissionComp的回合逻辑,不再触发战后技能 6. 更新了注释与文档,移除过时的FEnd相关说明 彻底移除了已不再使用的战斗结束触发机制,简化了代码架构。
362 lines
14 KiB
Markdown
362 lines
14 KiB
Markdown
# 几何王国技能复刻设计文档
|
||
|
||
> **目的**:基于《几何王国》热门英雄技能,分析哪些可以**零代码改动**或**最小改动**复刻到本系统(1 回合定生死机制)。
|
||
>
|
||
> **前置约束**(已确认的设计原则):
|
||
> - 局内固定 lv=1,等级成长移交局外
|
||
> - 单场战斗 30 秒
|
||
> - card_lv 纯技能数量差异(1~5 个技能槽)
|
||
> - 技能触发极简(`t_num=1`),高频高数值
|
||
> - 无相同能力英雄,无阵容限制
|
||
|
||
---
|
||
|
||
## 一、本系统可复用的"触发骨架"
|
||
|
||
| 触发类型 | 枚举 | 语义 | 几何王国对应场景 |
|
||
|---|---|---|---|
|
||
| 战斗开始 | `SkillTriggerType.FStart` | 入场时触发 1 次 | 战吼、入场护盾 |
|
||
| 战斗结束 | `SkillTriggerType.FEnd` | 战斗胜利后触发 | (30s 短局意义弱) |
|
||
| 召唤入场 | `SkillTriggerType.Call` | 落地触发 1 次 | 登场技 |
|
||
| 死亡触发 | `SkillTriggerType.Dead` | 死亡时触发 1 次 | 亡语、遗志 |
|
||
| 攻击触发 | `SkillTriggerType.Atking` | 普攻 N 次触发 | 概率普攻特效(t_num 模拟概率) |
|
||
| 受击触发 | `SkillTriggerType.Atked` | 被击 N 次触发 | 受击反击、叠甲 |
|
||
| 驻场光环 | `SkillTriggerType.Field` | 存活期间全局生效 | 光环类(移速/攻击/回血) |
|
||
| 复活 | `SkillTriggerType.Revive` | 死亡后复活 | 凤凰涅槃、尸骸存活 |
|
||
|
||
> **概率模拟技巧**:本系统无"概率触发"概念,用 `t_num` 计数模拟。
|
||
> - `t_num=1`:每次普攻都触发(最高频)
|
||
> - `t_num=3`:≈33% 概率
|
||
> - `t_num=4`:≈25% 概率(对应几何王国的"30% 概率")
|
||
|
||
---
|
||
|
||
## 二、本系统可复用的"效果骨架"
|
||
|
||
### 2.1 SkillKind(技能主效果)
|
||
|
||
| 类型 | 字段 | 几何王国对应 |
|
||
|---|---|---|
|
||
| `SkillKind.Damage` | `ap` 百分比伤害 | 大招、战技伤害 |
|
||
| `SkillKind.Heal` | `ap` 治疗量 | 治疗、吸血 |
|
||
| `SkillKind.Shield` | `ap` 护盾层数(数值减免) | 暗光之盾、守护壁垒 |
|
||
| `SkillKind.Support` | `buff_type` + `timed_buff_id` | 属性强化、限时增益 |
|
||
| `SkillKind.Gold` | `gold` 金币数 | (本局不适用) |
|
||
|
||
### 2.2 击杀特效字段
|
||
|
||
| 字段 | 含义 | 几何王国对应 |
|
||
|---|---|---|
|
||
| `crt` | 额外暴击率 | 致命一击 |
|
||
| `frz` | 额外冰冻概率 | 寒冰攻击 |
|
||
| `stun` | 额外击晕概率 | 眩晕 |
|
||
| `bck` | 击退距离增量 | 击退(雷霆一击、剑刃风暴) |
|
||
| `hit_count` | 命中目标数 | 多段攻击(乱棍、剑刃风暴) |
|
||
| `puncture_chance` | 穿透概率 | 穿透(暗器大师) |
|
||
|
||
### 2.3 BuffList 已有 DoT / HoT / 控制
|
||
|
||
| Buff ID | 名称 | 类型 | 几何王国对应 |
|
||
|---|---|---|---|
|
||
| 7002 | 灼烧 | Debuff DoT(-10 伤害/0.5s,吃 30% 攻击加成) | 剧毒利刃、火系持续伤害 |
|
||
| 7003 | 冰冻 | Control(2s) | 冰冻 |
|
||
| 7004 | 击晕 | Control(2s) | 眩晕、沉默(替代) |
|
||
| 7010 | 再生 | Buff HoT(+10 治疗/0.5s) | 持续回血 |
|
||
| 7011 | 攻击爆发 | Buff(+50% 攻击 5s) | 大圣归来、剑圣 1 觉 |
|
||
| 7012 | 暴击爆发 | Buff(+30% 暴击 5s) | 暴击强化 |
|
||
| 7017 | 击晕爆发 | Buff(+30% 击晕 5s) | 群体眩晕强化 |
|
||
| 7111 | 战前强攻 | Buff(+30 攻击 5s) | 开场增益 |
|
||
|
||
### 2.4 FieldSkillType 已有光环
|
||
|
||
| 类型 | 几何王国对应 |
|
||
|---|---|
|
||
| `HeroAtk` | 攻击光环(人鱼公主、邪恶光环) |
|
||
| `HeroCrit` / `HeroCritDamage` | 暴击光环 |
|
||
| `HeroSpeed` | 攻速光环 |
|
||
| `HeroHp` | 生命光环 |
|
||
| `HeroStun` / `HeroWindFury` / `HeroPuncture` | 特殊光环 |
|
||
| `WaveHeal` | 战后回血(30s 短局可改为局内 HoT) |
|
||
|
||
---
|
||
|
||
## 三、可直接复刻(零代码改动)
|
||
|
||
> 仅通过 `heroSet.ts` 配置 + 复用现有 SkillSet / BuffList 即可实现。
|
||
|
||
### 3.1 剧毒女王(Mage,复刻"深渊女王·剧毒利刃")
|
||
|
||
**核心机制**:普攻触发灼烧 DoT,叠加毒伤害。
|
||
|
||
```typescript
|
||
[SkillTriggerType.Atking]: {
|
||
// 每次普攻上灼烧 DoT(已存在 BuffList 7002)
|
||
6101: [{ lv: 1, t_num: 1, overrides: { timed_buff_id: 7002, buff_duration: 5 } }],
|
||
},
|
||
```
|
||
|
||
**复刻自**:深渊女王·剧毒利刃(普攻 30% 概率 200% 法伤 + 减益)。
|
||
**适配调整**:30s 战斗节奏快,`t_num=1` 100% 触发,但单层 DoT 数值调低以平衡。
|
||
|
||
---
|
||
|
||
### 3.2 猴王·乱棍(Assassin,复刻"至尊宝·大圣归来")
|
||
|
||
**核心机制**:普攻触发多段伤害+击晕。
|
||
|
||
```typescript
|
||
[SkillTriggerType.Atking]: {
|
||
// 每次普攻触发 4 段 30% 伤害 + 高击晕
|
||
6006: [{ lv: 1, t_num: 1, overrides: { ap: 30, hit_count: 4, stun: 30 } }],
|
||
},
|
||
```
|
||
|
||
**复刻自**:至尊宝·大圣归来(乱棍 4 次 ×30% 物伤 + 眩晕)。
|
||
**适配调整**:去除"召唤虚影+攻击+25%"(与本系统能量体系冲突),保留多段+击晕核心。
|
||
|
||
---
|
||
|
||
### 3.3 剑圣·疾风(Warrior,复刻"剑圣·剑刃风暴+吸血面罩")
|
||
|
||
**核心机制**:高伤范围 + 击退 + 普攻吸血。
|
||
|
||
```typescript
|
||
[SkillTriggerType.Atking]: {
|
||
// 普攻触发 360% 范围伤害 + 击退
|
||
6201: [{ lv: 1, t_num: 1, overrides: { ap: 150, bck: 30 } }],
|
||
// 普攻吸血 35%
|
||
6302: [{ lv: 1, t_num: 1, overrides: { TGroup: TGroup.Self, ap: 35 } }],
|
||
},
|
||
```
|
||
|
||
**复刻自**:剑圣·剑刃风暴(360% 物伤 + 击退) + 吸血面罩(普攻 35% 吸血)。
|
||
**适配调整**:`t_num=1` 高频触发,单场 30s 内吸血量需调平衡。
|
||
|
||
---
|
||
|
||
### 3.4 壁垒贤者(Support,复刻"哀木涕·守护壁垒")
|
||
|
||
**核心机制**:开场全队护盾 + 驻场生命光环。
|
||
|
||
```typescript
|
||
[SkillTriggerType.FStart]: {
|
||
// 开场全队护盾(数值减免型)
|
||
6301: [{ lv: 1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 5 } }],
|
||
},
|
||
[SkillTriggerType.Field]: [
|
||
// 驻场生命光环
|
||
{ lv: 1, s_uuid: 7007, value: 15 }, // +15% 最大生命
|
||
],
|
||
```
|
||
|
||
**复刻自**:哀木涕·守护壁垒(开场 10% 最大生命护盾 + 防御光环)。
|
||
**适配调整**:本系统护盾是"数值减免"非"层数",ap 字段意义不同,需重新校准数值。
|
||
|
||
---
|
||
|
||
### 3.5 凤凰祭司(Warrior,复刻"死亡守护 + 复活")
|
||
|
||
**核心机制**:死亡时为最低血友军回血 + 自身可复活。
|
||
|
||
```typescript
|
||
[SkillTriggerType.Dead]: {
|
||
// 死亡守护:死亡时为最低血友军回血
|
||
6302: [{ lv: 1, t_num: 1, overrides: { ap: 50 } }],
|
||
},
|
||
[SkillTriggerType.Revive]: [
|
||
// 复活:死亡后 1 次 50% 血复活
|
||
{ lv: 1, s_uuid: 6501, r_num: 1, upr: 50 },
|
||
],
|
||
```
|
||
|
||
**复刻自**:通用觉醒·死亡守护(10% 最大生命回血) + 黑暗骑士 3 觉(尸骸存活)。
|
||
**适配调整**:30s 战斗中复活价值高,`r_num=1` 限定 1 次。
|
||
|
||
---
|
||
|
||
### 3.6 暗影骑士(Tank,复刻"黑暗骑士·死亡缠绕")
|
||
|
||
**核心机制**:普攻治疗血少友军 + 受击反击自盾。
|
||
|
||
```typescript
|
||
[SkillTriggerType.Atking]: {
|
||
// 普攻触发治疗(自动选血量最低友方,引擎已支持)
|
||
6302: [{ lv: 1, t_num: 1, overrides: { ap: 220 } }],
|
||
},
|
||
[SkillTriggerType.Atked]: {
|
||
// 受击触发自身护盾
|
||
6301: [{ lv: 1, t_num: 1, overrides: { TGroup: TGroup.Self, ap: 3 } }],
|
||
},
|
||
```
|
||
|
||
**复刻自**:黑暗骑士·死亡缠绕(普攻 25% 概率 220% 真伤/治疗友方)。
|
||
**适配调整**:本系统暂无"真伤",用高治疗量替代。
|
||
|
||
---
|
||
|
||
### 3.7 风暴歌者(Mage,复刻"深渊女王·超声波")
|
||
|
||
**核心机制**:范围伤害 + 群体击退。
|
||
|
||
```typescript
|
||
[SkillTriggerType.Atking]: {
|
||
// 范围伤害 + 群体击退
|
||
6201: [{ lv: 1, t_num: 1, overrides: { ap: 200, bck: 50, hit_count: 6 } }],
|
||
},
|
||
```
|
||
|
||
**复刻自**:深渊女王·超声波(伤害 + 击退控制)。
|
||
**适配调整**:`bck` 字段直接对应击退距离增量,无需新增机制。
|
||
|
||
---
|
||
|
||
### 3.8 战吼先锋(Warrior,复刻"光明骑士·光明守护")
|
||
|
||
**核心机制**:开场全队增益 + 持续回血。
|
||
|
||
```typescript
|
||
[SkillTriggerType.FStart]: {
|
||
// 开场全队攻击强化
|
||
6401: [{ lv: 1, t_num: 1, overrides: { ap: 30 } }],
|
||
// 开场全队持续回血
|
||
6502: [{ lv: 1, t_num: 1, overrides: { timed_buff_id: 7010, buff_duration: 10 } }],
|
||
},
|
||
```
|
||
|
||
**复刻自**:光明骑士·光明守护(清异常 + 加防 + 持续治疗)。
|
||
**适配调整**:本系统无"解控"概念,30s 战斗也不需要,改为纯增益 + HoT。
|
||
|
||
---
|
||
|
||
## 四、需要小幅扩展即可复刻
|
||
|
||
### 4.1 反伤罗刹(Tank,复刻"剑豪·罗生门")
|
||
|
||
**缺失机制**:本系统无"反伤"属性。
|
||
|
||
**扩展方案**:
|
||
1. `HeroAttrs.ts` 的 `Attrs` 枚举新增 `thorns = "thorns"`(反伤数值)
|
||
2. `HeroAttrsComp.ts` 新增字段 `thorns: number = 0`
|
||
3. 战斗结算时,受击方对攻击者造成 `thorns` 点固定伤害
|
||
4. `SkillConfig` 新增 `thorns?: number` 用于 Support 技能附加反伤 buff
|
||
|
||
**复刻配置**:
|
||
```typescript
|
||
[SkillTriggerType.Atked]: {
|
||
// 受击触发护盾 + 反伤 buff(5s 内反伤 30 点)
|
||
6301: [{ lv: 1, t_num: 1, overrides: { ap: 5 } }],
|
||
6401: [{ lv: 1, t_num: 1, overrides: { buff_type: Attrs.thorns, timed_buff_id: 7030 } }],
|
||
},
|
||
```
|
||
|
||
---
|
||
|
||
### 4.2 真伤刺客(Assassin,复刻"玉面狐妖·真伤")
|
||
|
||
**缺失机制**:本系统伤害公式只支持 `ap × 系数`,无"按目标最大生命百分比伤害"。
|
||
|
||
**扩展方案**:
|
||
1. `SkillConfig` 新增 `target_hp_pct?: number`(按目标最大生命百分比扣血)
|
||
2. 伤害结算时,若技能含此字段,额外造成 `target.hp_max × target_hp_pct / 100` 伤害
|
||
|
||
**复刻配置**:
|
||
```typescript
|
||
[SkillTriggerType.Atking]: {
|
||
// 普攻附带 3% 目标最大生命真伤
|
||
6001: [{ lv: 1, t_num: 1, overrides: { ap: 100, /* 需新增 target_hp_pct: 3 */ } }],
|
||
},
|
||
```
|
||
|
||
---
|
||
|
||
### 4.3 重伤诅咒(Mage,复刻"巫妖王·重伤")
|
||
|
||
**缺失机制**:本系统无"降低治疗效果"属性。
|
||
|
||
**扩展方案**:
|
||
1. `Attrs` 新增 `heal_reduce = "heal_reduce"`(百分比降低受治疗)
|
||
2. 治疗结算时,实际治疗量 = 原治疗量 × (1 - heal_reduce/100)
|
||
|
||
**复刻配置**:
|
||
```typescript
|
||
[SkillTriggerType.Atking]: {
|
||
// 普攻附带重伤 debuff(敌方受治疗 -50%)
|
||
6101: [{ lv: 1, t_num: 1, overrides: { /* 需新增 heal_reduce 机制 */ } }],
|
||
},
|
||
```
|
||
|
||
---
|
||
|
||
## 五、不建议复刻
|
||
|
||
| 类型 | 代表技能 | 原因 |
|
||
|---|---|---|
|
||
| **能量/大招系统** | 所有英雄的"大招" | 本系统无能量条,技能全靠触发器,无法承载"释放大招"概念 |
|
||
| **解控** | 光明洗礼、暗黑盾解控 | 30s 战斗节奏快,控制时间仅 2~3s,解控价值极低 |
|
||
| **多段位移/分身** | 炼狱鬼斩、大圣虚影 | 视觉表现层复杂,ECS 弹道模型难承载"幻影穿梭" |
|
||
| **沉默 / 减能** | 潮壮壮、海拉 | 本系统无主动技能,沉默无目标可作用 |
|
||
| **长期叠层** | 剑圣 1 觉(30% 防御转攻击,永久) | 30s 战斗内永久叠层易失衡 |
|
||
| **按当前生命%伤害** | 女王尖啸(18% 当前生命) | 与"按最大生命%"相比,30s 短局内波动过大,难平衡 |
|
||
| **击退抗性 / 减速抗性** | 剑豪红武、酒仙 | 本系统已有 `knockback_res`,但减速概念不存在 |
|
||
|
||
---
|
||
|
||
## 六、复刻优先级矩阵
|
||
|
||
| 优先级 | 英雄 | 复刻难度 | 设计价值 |
|
||
|---|---|---|---|
|
||
| **P0(必做)** | 剧毒女王 | ✅ 零代码 | 引入 DoT 体系,丰富伤害维度 |
|
||
| **P0** | 猴王·乱棍 | ✅ 零代码 | 多段伤害+击晕,近战核心 |
|
||
| **P0** | 剑圣·疾风 | ✅ 零代码 | 范围+击退+吸血,全能战士 |
|
||
| **P1(推荐)** | 壁垒贤者 | ✅ 零代码 | 团队防御核心 |
|
||
| **P1** | 凤凰祭司 | ✅ 零代码 | 复活机制已有,强化死亡触发 |
|
||
| **P1** | 暗影骑士 | ✅ 零代码 | 治疗型坦克,差异化定位 |
|
||
| **P2(可选)** | 风暴歌者 | ✅ 零代码 | 范围控制,与剧毒女王互补 |
|
||
| **P2** | 战吼先锋 | ✅ 零代码 | 开场增益,节奏型辅助 |
|
||
| **P3(扩展后做)** | 反伤罗刹 | ⚙️ 需新增 thorns | 反伤 META,针对高攻速敌人 |
|
||
| **P3** | 真伤刺客 | ⚙️ 需新增 target_hp_pct | 针对高血量 Boss |
|
||
| **P3** | 重伤诅咒 | ⚙️ 需新增 heal_reduce | 针对治疗队 |
|
||
|
||
---
|
||
|
||
## 七、新增机制工作量评估
|
||
|
||
| 机制 | 改动文件 | 改动量 | 风险 |
|
||
|---|---|---|---|
|
||
| **反伤 thorns** | HeroAttrs.ts + HeroAttrsComp.ts + 战斗结算 | ~50 行 | 低(独立属性) |
|
||
| **按最大生命%伤害** | SkillSet.ts + 伤害结算 | ~30 行 | 低(额外乘区) |
|
||
| **减疗 heal_reduce** | HeroAttrs.ts + HeroAttrsComp.ts + 治疗结算 | ~40 行 | 低(独立乘区) |
|
||
| **敌方 Support 技能** | SCastSystem.ts | ~20 行 | 中(需测试目标选择) |
|
||
|
||
---
|
||
|
||
## 八、与原"20 回合制"的兼容性
|
||
|
||
本设计文档基于 **1 回合定生死** 机制,所有数值均按 **30 秒战斗窗口** 校准:
|
||
|
||
- `t_num=1` 触发:30s 内普攻 30~50 次,技能触发 30~50 次
|
||
- DoT/HoT 持续 5s:覆盖 1/6 战斗时长,效果显著但不至于"挂上就赢"
|
||
- 复活 `r_num=1`:单场战斗最多 1 次,价值极高但可控
|
||
- 驻场光环 `value=15%`:30s 内持续生效,等价于"永久"(单场)
|
||
|
||
若未来回归多回合制,需重新校准:
|
||
- `t_num` 提高到 2~4(降低触发频率)
|
||
- DoT/HoT 持续时间延长至 10~15s
|
||
- 复活次数可放开到 2~3 次
|
||
|
||
---
|
||
|
||
## 九、下一步行动
|
||
|
||
1. **确认 P0 英雄清单**:是否按本方案复刻 8 个英雄?
|
||
2. **数值校准**:是否需要先用 `calcHeroPower` 公式推导每个英雄的目标强度锚点?
|
||
3. **新增机制决策**:是否在第 1 阶段引入反伤/真伤/减疗?还是先纯配置复刻?
|
||
4. **编写 heroSet.ts 配置**:确认后我可以直接输出可粘贴的 TypeScript 配置代码。
|
||
|
||
---
|
||
|
||
**文档版本**:v1.0
|
||
**创建日期**:2026-08-14
|
||
**作者**:AI Assistant
|
||
**关联文档**:[heroSet.ts](./heroSet.ts) / [SkillSet.ts](./SkillSet.ts) / [BuffSet.ts](./BuffSet.ts) / [几何王国英雄技能汇总.md](./几何王国英雄技能汇总.md)
|