1. 重构怪物挂载逻辑,按Boss/小怪分别挂载到对应场景层 2. 调整怪物出生落点逻辑,移除额外Y轴偏移 3. 优化场景节点清理范围,新增MON/BOSS层清理 4. 重构渲染排序逻辑,分层管理怪物渲染层级 5. 新增5套攻击技能预制体与动画资源 6. 修复技能配置参数冗余注释与类型错误
523 lines
33 KiB
TypeScript
523 lines
33 KiB
TypeScript
// ========== 从 HeroAttrs.ts 导入属性相关定义 ==========
|
||
import { Attrs } from "./HeroAttrs";
|
||
|
||
export enum HSSet {
|
||
atk = 0, // 普通攻击
|
||
skill = 1, // 一般技能
|
||
max = 2, // 必杀技
|
||
}
|
||
|
||
export enum TGroup {
|
||
Self = 0, // 自身
|
||
Ally = 1, // 所有友方,包括自己
|
||
Team = 2, // 所有友方
|
||
Enemy = 3, // 敌方单位
|
||
All = 4 // 所有单位
|
||
}
|
||
|
||
export enum DTType {
|
||
single = 0,
|
||
range = 1,
|
||
aoe_grid = 2, // 3*3 网格范围攻击,以中路第2、3列为目标
|
||
}
|
||
|
||
export enum SkillKind {
|
||
Damage = 0,
|
||
Heal = 1,
|
||
Shield = 2,
|
||
Support = 3,
|
||
Gold = 4
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
//受伤动画名称
|
||
export enum AtkedName {
|
||
atked = "atked",
|
||
ice = "atked_ice",
|
||
fire = "atked_fire",
|
||
wind = "atked_wind",
|
||
crit = "atked_crit",
|
||
}
|
||
|
||
|
||
export enum RType {
|
||
linear = 0, //直线
|
||
bezier = 1, //贝塞尔
|
||
fixed = 2, //固定起点
|
||
fixedEnd = 3, //固定终点
|
||
}
|
||
//EType 只负责动画什么时候结束,碰撞体什么时候消失不管,但是消失前一定要关闭碰撞体
|
||
export enum EType {
|
||
animationEnd = 0, //碰撞够也不消失,动画结束才消失
|
||
timeEnd = 1, //碰撞够也不消失,时间到才消失
|
||
collision = 2, //碰撞次数够就消失
|
||
}
|
||
//debuff类型
|
||
|
||
|
||
/*
|
||
=== 技能配置系统使用说明 ===
|
||
|
||
1. 基础属性:
|
||
- uuid: 技能唯一ID
|
||
- name: 技能名称
|
||
- sp_name: 特效名称
|
||
- AtkedName: 攻击类型
|
||
- path: 图片资源路径
|
||
|
||
2. 目标和效果:
|
||
- TGroup: 目标群体 (敌方、友方等)
|
||
- SType: 技能类型 (伤害、治疗、护盾等)
|
||
|
||
3. 执行参数:
|
||
- act: 角色执行的动画
|
||
- DTType: 伤害类型 (单体、范围)
|
||
- EType: 结束条件
|
||
- fname: 特效文件名
|
||
- with: 暂时无用
|
||
|
||
4. 数值参数:
|
||
- ap: 攻击力百分比
|
||
- cd: 冷却时间
|
||
- hit_count: 可命中次数
|
||
- t_num: 目标数量
|
||
- hitcd: 持续伤害的伤害间隔
|
||
- speed: 移动速度
|
||
- cost: 消耗值
|
||
*/
|
||
export enum DType {
|
||
ATK = 0, // 物理
|
||
ICE = 1, // 冰元素
|
||
FIRE = 2, // 火元素
|
||
WIND = 3, // 风元素
|
||
}
|
||
|
||
export enum IType {
|
||
Melee = 0, // 近战
|
||
remote = 1, // 远程
|
||
support = 2, // 辅助
|
||
}
|
||
export const HeroSkillList = [6001, 6001, 6001, 6001, 6001, 6001]
|
||
|
||
// Debuff配置接口
|
||
// (已被废弃,采用平铺字段 buff_type 和 buff_value 代替)
|
||
|
||
interface IReady {
|
||
uuid: number,
|
||
loop: boolean,
|
||
SkillTime: number,// 技能控制存续时间时间
|
||
ReadyTime: number,// 技能前摇时间
|
||
RType: number, //技能运行类型 0-线性 1-贝塞尔 2-开始位置固定 3-目标位置固定
|
||
ready_y: number,
|
||
path: string,
|
||
}
|
||
|
||
interface IEndAnm {
|
||
uuid: number,
|
||
path: string,
|
||
loop: boolean,
|
||
time: number,
|
||
}
|
||
// 技能配置接口 - 按照6001格式排列
|
||
export interface SkillConfig {
|
||
uuid: number, // 技能唯一ID
|
||
name: string, // 技能名称
|
||
sp_name: string, // 特效名称
|
||
icon: string, // 图标ID
|
||
TGroup: TGroup, // 目标群体(敌方/友方/自身等)
|
||
act: string, // 角色执行的动画
|
||
DTType: DTType, // 伤害类型(单体/范围)
|
||
ap: number, // 伤害/治疗技能为攻击百分比,护盾技能为免疫次数
|
||
gold?: number, // 获取金币技能的金币值
|
||
hit_count: number, // 可命中次数
|
||
hitcd: number, // 持续伤害的伤害间隔(秒)
|
||
speed: number, // 移动速度
|
||
with: number, // 宽度(暂时无用)
|
||
ready: number, // 前摇时间
|
||
readyAnm: string, // 前摇动画名称
|
||
endAnm: string, // 结束动画名称
|
||
EAnm: number, // 结束动画ID
|
||
DAnm: string, // 命中后动画ID
|
||
IType: IType, // 技能类型(近战/远程/辅助)
|
||
RType: RType, // 技能运行类型(直线/贝塞尔/固定起点/固定终点)
|
||
EType: EType, // 结束条件(动画结束/时间结束/距离结束/碰撞/次数结束)
|
||
bezier_start_y?: number, // 贝塞尔起始抬升高度
|
||
bezier_mid_y?: number, // 贝塞尔中间高度增量
|
||
bezier_arc?: number, // 贝塞尔弧度系数
|
||
time?: number, // timeEnd 持续时间(秒)
|
||
kind?: SkillKind, // 主效果类型
|
||
crt?: number, // 额外暴击率
|
||
frz?: number, // 额外冰冻概率
|
||
stun?: number, // 额外击晕概率
|
||
bck?: number, // 额外击退强化(击退距离增量)
|
||
buff_type?: Attrs, // Buff 类型 (单一职责)
|
||
timed_buff_id?: number, // 计时性 buff 配置 id(指向 BuffList),存在时走 buffManager 而非永久 add_*
|
||
buff_value?: number, // 覆写计时 buff 的修饰数值(modifiers.value / tick.damage_or_heal),由药水卡自定义档位
|
||
buff_duration?: number, // 覆写计时 buff 的持续时间(秒),不配置则用 BuffList 默认值
|
||
call_hero?: number, // 召唤技能召唤英雄id(可选)
|
||
is_accel?: boolean, // 是否逐渐加速飞行
|
||
info: string, // 技能描述
|
||
}
|
||
|
||
export interface SkillOverrides {
|
||
TGroup?: TGroup;
|
||
ap?: number;
|
||
gold?: number;
|
||
hit_count?: number;
|
||
hitcd?: number;
|
||
crt?: number;
|
||
frz?: number;
|
||
stun?: number;
|
||
bck?: number;
|
||
buff_type?: Attrs;
|
||
timed_buff_id?: number;
|
||
buff_value?: number;
|
||
buff_duration?: number;
|
||
call_hero?: number;
|
||
is_accel?: boolean;
|
||
/** 单次施法额外释放次数(0=单次,1=双发,2=三发;弹道由 resolveRepeatCastTargetPos 分散上/中/下三路) */
|
||
num?: number;
|
||
}
|
||
|
||
/**
|
||
* 将覆盖参数合并到基础技能配置中
|
||
* @param config 基础技能配置
|
||
* @param overrides 技能覆盖参数
|
||
* @returns 合并后的新技能配置
|
||
*/
|
||
export function mergeSkillParams(config: SkillConfig, overrides?: SkillOverrides): SkillConfig {
|
||
if (!overrides) return config;
|
||
return {
|
||
...config,
|
||
...overrides
|
||
};
|
||
}
|
||
|
||
/******
|
||
*
|
||
* 射箭类技能 带暴击属性
|
||
* 火法技能
|
||
* 冰法技能 带冰冻属性
|
||
*
|
||
*/
|
||
export const SkillSet: Record<number, SkillConfig> = {
|
||
/** ========== 单体攻击基础技能 ========== 升级方向是 最多向 3 个目标发射技能实体
|
||
* 6001 火球 基础攻击 暴击取向
|
||
* 6002 紫球 怪物法师类攻击样式
|
||
* 6003 白球 击晕取向
|
||
* 6004 水球 溅射 分裂取向,一定概率分裂多个
|
||
* 6008 箭矢 单体攻击,
|
||
* 6009 箭矢蓝 溅射,分裂取向,一定概率分裂多个
|
||
* 6010 箭矢黄 击晕取向
|
||
**/
|
||
6001: {
|
||
uuid: 6001, name: "飞剑", sp_name: "a1", icon: "Sword-FA_WP_Main_Sword_003_PurpleSilver", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6002: {
|
||
uuid: 6002, name: "飞刀", sp_name: "a2", icon: "Sword-FA_WP_Main_Sword_009_GraySilver", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6003: {
|
||
uuid: 6003, name: "匕首", sp_name: "a3", icon: "Sword-FA_WP_Main_Sword_019_WoodSilver", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6004: {
|
||
uuid: 6004, name: "飞斧", sp_name: "a4", icon: "Axe-FA_WP_Main_Axe_004_WoodGray", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6005: {
|
||
uuid: 6005, name: "飞枪", sp_name: "a5", icon: "Spear-FA_WP_Main_Spear_010_MetalBlue", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6006: {
|
||
uuid: 6006, name: "攻击", sp_name: "atk", icon: "Stat_Attack_01", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6007: {
|
||
uuid: 6007, name: "飞棒", sp_name: "b1", icon: "Blunt-FA_WP_Main_Blunt_002_Wood", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6008: {
|
||
uuid: 6008, name: "射击", sp_name: "aw2", icon: "Stat_RangedAttack", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
|
||
RType: RType.bezier, EType: EType.collision, bezier_start_y: 20, bezier_mid_y: 140, bezier_arc: 1.05, info: "造成攻击力100%的伤害",
|
||
},
|
||
6009: {
|
||
uuid: 6009, name: "蓝箭", sp_name: "aw1", icon: "Stat_RangedAttack", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
|
||
RType: RType.bezier, EType: EType.collision, bezier_start_y: 20, bezier_mid_y: 140, bezier_arc: 1.05, info: "造成攻击力100%的伤害",
|
||
},
|
||
6010: {
|
||
uuid: 6010, name: "火箭", sp_name: "aw3", icon: "Stat_RangedAttack", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
|
||
RType: RType.bezier, EType: EType.collision, bezier_start_y: 20, bezier_mid_y: 140, bezier_arc: 1.05, info: "造成攻击力100%的伤害",
|
||
},
|
||
6011: {
|
||
uuid: 6011, name: "飞锤", sp_name: "b2", icon: "Blunt-FA_WP_Main_Blunt_005_Gray", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6012: {
|
||
uuid: 6012, name: "飞斧", sp_name: "b2", icon: "Axe-FA_WP_Main_Axe_002_WoodGray", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6013: {
|
||
uuid: 6013, name: "蓝魔球", sp_name: "m1", icon: "Sub_Item-FA_WP_Sub_MagicBall_001_Blue", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6014: {
|
||
uuid: 6014, name: "紫魔球", sp_name: "m2", icon: " Sub_Item-FA_WP_Sub_MagicBall_001_Purple", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6015: {
|
||
uuid: 6015, name: "绿药瓶", sp_name: "h1", icon: "Sub_Item-FA_WP_Sub_Potion_001_Green", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
6016: {
|
||
uuid: 6016, name: "红药瓶", sp_name: "h2", icon: "Sub_Item-FA_WP_Sub_Potion_001_Red", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
|
||
},
|
||
/*** ======中阶范围攻击技能 ====
|
||
* 都带有穿刺属性,至少穿透1 个目标 攻击2 个目标, 升级方向是 最多 穿透3 个攻击 4 个目标
|
||
* 6101 火球 基础属性,暴击取向
|
||
* 6102 暗影球 怪物法师类攻击样式
|
||
* 6103 光球 击晕取向
|
||
* 6104 水球 溅射:分裂多个
|
||
**/
|
||
6101: {
|
||
uuid: 6101, name: "火球", sp_name: "fb-1", icon: "Stat_FireDamage", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, stun: 0, ap: 100, hit_count: 2, hitcd: 0.3, speed: 720, with: 90, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
|
||
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害, 一定几率暴击, 高阶技能",
|
||
},
|
||
//怪物法师统一使用 暗影球
|
||
6102: {
|
||
uuid: 6102, name: "飓风", sp_name: "fb-2", icon: "Stat_Mana", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
|
||
DTType: DTType.single, ap: 100, hit_count: 2, hitcd: 0.3, speed: 720, with: 90, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
|
||
RType: RType.linear, EType: EType.collision, info: "造成攻击力100%的伤害, 高阶技能",
|
||
},
|
||
6201: {
|
||
uuid: 6201, name: "陨石术", sp_name: "fb-3", icon: "Stat_Tripleshot", TGroup: TGroup.Enemy, readyAnm: "blues", endAnm: "", act: "max",
|
||
DTType: DTType.aoe_grid, stun: 0, ap: 150, 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: "召唤陨石范围攻击敌人, 有概率击晕",
|
||
},
|
||
|
||
//============================= ====== 辅助技能 技能卡牌 1 回合技能 ====== ==========================
|
||
6301: {
|
||
uuid: 6301, name: "护盾", sp_name: "buff_wind", icon: "Stat_Defense", TGroup: TGroup.Self, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Shield, ap: 3, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, info: "为伙伴/自己添加护盾, 可抵挡3次伤害",
|
||
},
|
||
6302: {
|
||
uuid: 6302, name: "治疗", sp_name: "buff_wind", icon: "Stat_Hp_01", TGroup: TGroup.Team, readyAnm: "up_green", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Heal, ap: 300, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, info: "治疗伙伴/自己",
|
||
},
|
||
//==========================buff 技能 也是 技能卡牌 5 回合技能
|
||
6303: {
|
||
uuid: 6303, name: "获取金币", sp_name: "buff_wind", icon: "Stat_GoldGainIncrease_01", TGroup: TGroup.Self, readyAnm: "up_blue", endAnm: "gold", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Gold, ap: 0, gold: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, info: "增加一定数量的金币",
|
||
},
|
||
//==========================buff 技能=====================
|
||
6401: {
|
||
uuid: 6401, name: "攻击强化", sp_name: "buff_wind", icon: "Stat_Attack_03", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 5, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.ap, info: "全体友方攻击力提升5点, 持续1次",
|
||
},
|
||
6402: {
|
||
uuid: 6402, name: "生命强化", sp_name: "buff_wind", icon: "Stat_Hp_02", TGroup: TGroup.Team, readyAnm: "up_hp", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 20, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.hp_max, info: "全体友方最大生命值提升20点, 持续1次",
|
||
},
|
||
6403: {
|
||
uuid: 6403, name: "暴击强化", sp_name: "buff_wind", icon: "Stat_CriticalChance_02", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.critical, timed_buff_id: 7012, info: "全体友方暴击率限时提升, 持续5秒",
|
||
},
|
||
6404: {
|
||
uuid: 6404, name: "暴伤强化", sp_name: "buff_wind", icon: "Stat_Critical_01", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.critical_damage, timed_buff_id: 7020, info: "全体友方暴击伤害限时提升, 持续5秒",
|
||
},
|
||
6405: {
|
||
uuid: 6405, name: "击晕强化", sp_name: "buff_wind", icon: "Stat_Stun_01", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.stun_chance, timed_buff_id: 7017, info: "全体友方击晕概率限时提升, 持续5秒",
|
||
},
|
||
6406: {
|
||
uuid: 6406, name: "击退强化", sp_name: "buff_wind", icon: "Stat_Stun_01", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.knockback_chance, timed_buff_id: 7013, info: "全体友方击退距离限时提升, 持续5秒",
|
||
},
|
||
6407: {
|
||
uuid: 6407, name: "距推强化", sp_name: "buff_wind", icon: "Stat_Stun_01", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, info: "暂未使用",
|
||
},
|
||
6408: {
|
||
uuid: 6408, name: "穿刺强化", sp_name: "buff_wind", icon: "Stat_Tripleshot", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 20, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.puncture_chance, timed_buff_id: 7014, info: "全体友方穿透概率限时提升, 持续5秒",
|
||
},
|
||
6409: {
|
||
uuid: 6409, name: "风怒强化", sp_name: "buff_wind", icon: "Stat_CriticalComboChance", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.wfuny, timed_buff_id: 7016, info: "全体友方风怒概率限时提升, 持续5秒",
|
||
},
|
||
6410: {
|
||
uuid: 6410, name: "冰冻强化", sp_name: "buff_wind", icon: "Stat_Freeze", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.freeze_chance, timed_buff_id: 7021, info: "全体友方冰冻概率限时提升, 持续5秒",
|
||
},
|
||
6411: {
|
||
uuid: 6411, name: "穿透伤害强化", sp_name: "buff_wind", icon: "Stat_Tripleshot", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 10, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.puncture_dmg_bonus, info: "全体友方穿透后伤害提升10%(百分点), 永久生效",
|
||
},
|
||
6501: {
|
||
uuid: 6501, name: "复活", sp_name: "buff_wind", icon: "Stat_HolyDamage", TGroup: TGroup.Self, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 50, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, info: "ap 代表复活的生命值百分比",
|
||
},
|
||
|
||
// ==================== 计时性强化技能(药水底座,统一 5s,走 timed_buff_id) ====================
|
||
// 注:ap 字段在此类技能中无意义,修饰数值由 BuffList 配置;hit_count=99 确保覆盖全队。
|
||
6502: {
|
||
uuid: 6502, name: "计时回血", sp_name: "buff_wind", icon: "Stat_PotionBoost", TGroup: TGroup.Team, readyAnm: "up_green", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.hp, timed_buff_id: 7010, info: "全体友方每秒回复生命, 持续5秒",
|
||
},
|
||
6503: {
|
||
uuid: 6503, name: "攻击爆发", sp_name: "buff_wind", icon: "Stat_Attack_03", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.ap, timed_buff_id: 7011, info: "全体友方攻击力提升50%, 持续5秒",
|
||
},
|
||
6504: {
|
||
uuid: 6504, name: "暴击爆发", sp_name: "buff_wind", icon: "Stat_CriticalChance_02", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.critical, timed_buff_id: 7012, info: "全体友方暴击率提升30%, 持续5秒",
|
||
},
|
||
6505: {
|
||
uuid: 6505, name: "击退爆发", sp_name: "buff_wind", icon: "Stat_Stun_01", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.knockback_chance, timed_buff_id: 7013, info: "全体友方击退距离提升30, 持续5秒",
|
||
},
|
||
6506: {
|
||
uuid: 6506, name: "穿透爆发", sp_name: "buff_wind", icon: "Stat_Tripleshot", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.puncture_chance, timed_buff_id: 7014, info: "全体友方穿透概率提升30%, 持续5秒",
|
||
},
|
||
6507: {
|
||
uuid: 6507, name: "攻速爆发", sp_name: "buff_wind", icon: "Stat_AttackSpeed_02", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.speed, timed_buff_id: 7015, info: "全体友方攻击速度提升40%, 持续5秒",
|
||
},
|
||
6508: {
|
||
uuid: 6508, name: "风怒爆发", sp_name: "buff_wind", icon: "Stat_CriticalComboChance", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.wfuny, timed_buff_id: 7016, info: "全体友方风怒概率提升20%, 持续5秒",
|
||
},
|
||
6509: {
|
||
uuid: 6509, name: "击晕爆发", sp_name: "buff_wind", icon: "Stat_Stun_01", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.stun_chance, timed_buff_id: 7017, info: "全体友方击晕概率提升30%, 持续5秒",
|
||
},
|
||
6510: {
|
||
uuid: 6510, name: "击晕抗性", sp_name: "buff_wind", icon: "Stat_Armor_01", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.stun_res, timed_buff_id: 7018, info: "全体友方击晕抗性提升50%, 持续5秒",
|
||
},
|
||
6511: {
|
||
uuid: 6511, name: "冰冻抗性", sp_name: "buff_wind", icon: "Stat_Freeze", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.freeze_res, timed_buff_id: 7019, info: "全体友方冰冻抗性提升50%, 持续5秒",
|
||
},
|
||
6512: {
|
||
uuid: 6512, name: "穿透伤害爆发", sp_name: "buff_wind", icon: "Stat_Tripleshot", TGroup: TGroup.Team, readyAnm: "up_ap", endAnm: "", act: "atk",
|
||
DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||
RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.puncture_dmg_bonus, timed_buff_id: 7022, info: "全体友方穿透后伤害提升30%, 持续5秒",
|
||
}
|
||
|
||
};
|
||
//***************驻场技能配置***************
|
||
export enum FieldSkillType {
|
||
SummonCount = 1, // 召唤触发技能次数提升
|
||
DeadCount = 2, // 死亡触发技能次数提升
|
||
StartCount = 3, // 战斗开始触发技能次数提升
|
||
EndCount = 4, // 战斗结束触发技能次数提升
|
||
WaveGold = 5, // 每回合金币收益提升
|
||
SellGold = 6, // 卖出英雄金币提升
|
||
WaveHeal = 7, // 战斗结束生命回复量提升
|
||
HeroAtk = 8, // 英雄攻击力加成
|
||
HeroStun = 9, // 英雄击晕光环
|
||
HeroCrit = 10, // 英雄暴击光环
|
||
HeroCritDamage = 11, // 英雄暴击伤害加成
|
||
HeroSpeed = 12, // 英雄攻击速度加成
|
||
// ---- 13~18 由 TalentSet 迁移而来,统一为驻场口径 ----
|
||
// 备注:SellGold 已原生覆盖"出售返还"语义,故 TalentSet 中的 SellBonus 不再单独保留
|
||
BuyDiscount = 13, // 购买卡牌费用减免(金币)
|
||
RefreshDiscount = 14, // 刷新卡牌费用减免(金币)
|
||
HeroHp = 16, // 英雄最大生命光环
|
||
HeroWindFury = 17, // 英雄风怒概率加成
|
||
HeroPuncture = 18, // 英雄穿刺概率加成
|
||
AtkCount = 19, // 攻击触发技能次数提升
|
||
BeAtkCount = 20, // 被攻击触发技能次数提升
|
||
HeroPunctureDmg = 21, // 英雄穿透后伤害加成(百分点;乘算:PUNCTURE_DMG_RATIO * (1 + bonus/100))
|
||
}
|
||
|
||
export interface FieldSkillConfig {
|
||
uuid: number;
|
||
name: string;
|
||
icon: string; // 新增图标字段
|
||
type: FieldSkillType;
|
||
info: string; // 描述模板(不含具体数值,数值由配置处携带)
|
||
}
|
||
|
||
/**
|
||
* 驻场光环底座表:每个 FieldSkillType 仅保留一条基础配置。
|
||
*
|
||
* Why: 同一光环因数值不同拆成多个 uuid(7002/7202/7402)会造成大量重复条目。
|
||
* 合并后数值由配置处(heroSet/EquipSet 的 field 条目)携带,此处只维护
|
||
* 类型/图标/名称等元数据。所有光环 uuid 统一使用 7001~7020 基础段。
|
||
*/
|
||
export const FieldSkillSet: Record<number, FieldSkillConfig> = {
|
||
7001: { uuid: 7001, name: "战后恢复", icon: "Stat_PotionBoost", type: FieldSkillType.WaveHeal, info: "战斗结束生命回复量提升" },
|
||
7002: { uuid: 7002, name: "攻击光环", icon: "Stat_Attack_03", type: FieldSkillType.HeroAtk, info: "英雄攻击力提升" },
|
||
7003: { uuid: 7003, name: "击晕光环", icon: "Stat_Stun_01", type: FieldSkillType.HeroStun, info: "英雄击晕概率提升" },
|
||
7004: { uuid: 7004, name: "暴击光环", icon: "Stat_CriticalChance_02", type: FieldSkillType.HeroCrit, info: "英雄暴击率提升" },
|
||
7005: { uuid: 7005, name: "暴伤光环", icon: "Stat_Critical_01", type: FieldSkillType.HeroCritDamage, info: "英雄暴击伤害提升" },
|
||
7006: { uuid: 7006, name: "攻速光环", icon: "Stat_AttackSpeed_02", type: FieldSkillType.HeroSpeed, info: "英雄攻击速度提升" },
|
||
7007: { uuid: 7007, name: "生命光环", icon: "Stat_Hp_02", type: FieldSkillType.HeroHp, info: "英雄最大生命提升" },
|
||
7008: { uuid: 7008, name: "风怒光环", icon: "Stat_CriticalComboChance", type: FieldSkillType.HeroWindFury, info: "英雄风怒概率提升" },
|
||
7009: { uuid: 7009, name: "穿刺光环", icon: "Stat_Tripleshot", type: FieldSkillType.HeroPuncture, info: "英雄穿刺概率提升" },
|
||
|
||
7010: { uuid: 7010, name: "金币收益", icon: "Stat_InventorySlotIncrease", type: FieldSkillType.WaveGold, info: "每回合金币收益提升" },
|
||
7011: { uuid: 7011, name: "出售强化", icon: "Stat_GoldGainIncrease_01", type: FieldSkillType.SellGold, info: "卖出英雄金币提升" },
|
||
7012: { uuid: 7012, name: "购买优惠", icon: "Stat_KeyCapacityIncrease", type: FieldSkillType.BuyDiscount, info: "购买卡牌费用减免" },
|
||
7013: { uuid: 7013, name: "刷新优惠", icon: "Stat_RandomBonus", type: FieldSkillType.RefreshDiscount, info: "刷新卡牌费用减免" },
|
||
|
||
7014: { uuid: 7014, name: "召唤强化", icon: "Stat_UnitSummonIncrease_02", type: FieldSkillType.SummonCount, info: "召唤触发技能次数提升" },
|
||
7015: { uuid: 7015, name: "死亡强化", icon: "Stat_PoisonChanceIncrease", type: FieldSkillType.DeadCount, info: "死亡触发技能次数提升" },
|
||
7016: { uuid: 7016, name: "开场强化", icon: "Stat_AttackRangeIncrease_01", type: FieldSkillType.StartCount, info: "战斗开始触发技能次数提升" },
|
||
7017: { uuid: 7017, name: "结束强化", icon: "Stat_UnitSummonIncrease_01", type: FieldSkillType.EndCount, info: "战斗结束触发技能次数提升" },
|
||
7018: { uuid: 7018, name: "攻击强化", icon: "Stat_Attack_03", type: FieldSkillType.AtkCount, info: "攻击触发技能次数提升" },
|
||
7019: { uuid: 7019, name: "受击强化", icon: "Stat_Armor_01", type: FieldSkillType.BeAtkCount, info: "被攻击触发技能次数提升" },
|
||
7020: { uuid: 7020, name: "穿透强化", icon: "Stat_Tripleshot", type: FieldSkillType.HeroPunctureDmg, info: "英雄穿透后伤害提升(百分点)" },
|
||
};
|