refactor(config): 统一技能范围类型命名与逻辑

1. 移除废弃的aoe_grid范围类型,统一使用range类型
2. 更新文档、配置表和代码中的相关描述与枚举定义
3. 清理技能目标选择逻辑中针对aoe_grid的冗余代码
This commit is contained in:
panFD
2026-08-21 19:28:04 +08:00
parent 9c226fa2be
commit 5c731b61a7
5 changed files with 4 additions and 24 deletions

View File

@@ -18,7 +18,6 @@ export enum TGroup {
export enum DTType {
single = 0,
range = 1,
aoe_grid = 2, // 3*3 网格范围攻击以中路第2、3列为目标
}
export enum SkillKind {
@@ -293,7 +292,7 @@ export const SkillSet: Record<number, SkillConfig> = {
},
6104: {
uuid: 6104, name: "开山斧", sp_name: "range2", icon: "Stat_Tripleshot", TGroup: TGroup.Enemy, readyAnm: "blues", endAnm: "", act: "max0",
DTType: DTType.aoe_grid, stun: 0, ap: 300, hit_count: 6, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
DTType: DTType.range, stun: 0, ap: 300, hit_count: 6, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
RType: RType.fixed, EType: EType.animationEnd, info: "召唤巨斧劈向前方敌人",//可以附加击晕增强
},
// 刺客/射手群体攻击大招

View File

@@ -94,7 +94,7 @@
| 英雄 | 缺失机制 | 缺口说明 |
|---|---|---|
| 复仇者(流血穿后排) | 目标选择"后排"逻辑 | 本系统 DTType 仅 single/range/aoe_grid,无"优先后排";流血可用 7007 出血替代,但穿透定位失效 |
| 复仇者(流血穿后排) | 目标选择"后排"逻辑 | 本系统 DTType 仅 single/range无"优先后排";流血可用 7007 出血替代,但穿透定位失效 |
| 玉面狐妖 / 神罗战士 / 李白 | 真实伤害 | 无无视防御的伤害类型;可用破甲 7008 + 高 ap 近似,但失去"真伤"特色 |
| 潮壮壮 / 海拉 / 沉默 / 疾风忍者 | 沉默、减能 | 无沉默与能量系统 |
| 术士 / 爷爷(葫芦爷爷) | 回能、减能、减疗 | 无能量系统与减疗机制 |

View File

@@ -245,7 +245,7 @@ apwarrior+20
hpwarrior+5
defwarrior+0
skill[0]6004 攻击ap100近战系
skill[1]_lv16104 开山斧ap300aoe_grid 6段
skill[1]_lv16104 开山斧ap300range 6段
skill[1]_lv3开山斧 +击晕概率ap300stun20
skill[1]_lv5开山斧 击晕强化+多段ap350stun35hit_count 8
skill[1]_lv7开山斧 定海神针·必晕ap400debuff 7004 击晕)

View File

@@ -15,7 +15,6 @@ import { SkillTriggerType } from "../common/config/heroSet";
import { SkillTriggerHelper } from "./SkillTriggerHelper";
import { MissionEconomy } from "../map/MissionEconomy";
import { mLogger } from "../common/Logger";
import { MissionHeroComp } from "../map/MissionHeroComp";
import { buffManager } from "./BuffManager";
/**
@@ -759,26 +758,8 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
* 解析对敌技能目标点:
* - 非范围技能:按施法方向生成目标点
* - range 范围技能:优先前排敌人位置
* - aoe_grid 范围技能以中路第2或第3列为目标若存在敌人优先第2列否则第3列这里简化为直接返回第2列中路的固定坐标或者根据情况处理
*/
private resolveEnemyCastTargetPos(config: SkillConfig, heroAttrs: HeroAttrsComp, heroView: HeroViewComp, nearestEnemy: HeroViewComp, maxRange: number): Vec3 | null {
if (config.DTType === DTType.aoe_grid) {
const isHero = heroAttrs.fac === FacSet.HERO;
if (isHero) {
// 怪物已改为从 X=400 出生后动态向左推进,不再有固定列阵型。
// aoe_grid 直接以最近敌人的真实位置作为目标点,
// 由技能自身的范围半径负责命中附近的怪物集群。
if (nearestEnemy?.node) {
return nearestEnemy.node.position.clone();
}
return null;
} else {
// 怪物打英雄:以英雄编队中排基准点为 AOE 目标
// (英雄已改为按职业优先级从最右向左排队,中排 -260 即队伍中部)
return MissionHeroComp.HERO_ROW_MID.clone();
}
}
if (config.RType === RType.bezier) {
return nearestEnemy.node?.position.clone() ?? null;
}

View File

@@ -254,7 +254,7 @@ export const ENUMS: Record<string, EnumDef> = {
{ label: '自身 Self', value: 0 }, { label: '友方含己 Ally', value: 1 },
{ label: '友方 Team', value: 2 }, { label: '敌方 Enemy', value: 3 }, { label: '全体 All', value: 4 } ] },
DTType: { qualifier: 'DTType', members: [
{ label: '单体 single', value: 0 }, { label: '范围 range', value: 1 }, { label: '3x3 aoe_grid', value: 2 } ] },
{ label: '单体 single', value: 0 }, { label: '范围 range', value: 1 } ] },
SkillKind: { qualifier: 'SkillKind', members: [
{ label: '伤害 Damage', value: 0 }, { label: '治疗 Heal', value: 1 }, { label: '护盾 Shield', value: 2 },
{ label: '辅助 Support', value: 3 }, { label: '金币 Gold', value: 4 } ] },