import { v3 } from "cc" import { BoxSet, FacSet } from "./GameSet" import { SkillOverrides, TGroup } from "./SkillSet" export enum HType { Melee = 0, Mid = 1, Long = 2, } export const HTypeName ={ 0:"近战", 1:"中程", 2:"远程", } /** * 英雄攻击速度分级配置 (数值为攻击间隔cd,越小越快) * 每档3个速度级别:Lv1(最快) → Lv2(中间) → Lv3(最慢) * 6档共18级,覆盖所有英雄/怪物的攻击间隔 */ export enum AtkSpeedLv { VeryFast1 = 1, VeryFast2 = 2, VeryFast3 = 3, Fast1 = 4, Fast2 = 5, Fast3 = 6, Normal1 = 7, Normal2 = 8, Normal3 = 9, Mid1 = 10, Mid2 = 11, Mid3 = 12, Slow1 = 13, Slow2 = 14, Slow3 = 15, VerySlow1 = 16,VerySlow2 = 17,VerySlow3 = 18, } export const AtkSpeedSet = { [AtkSpeedLv.VeryFast1]: { name: "极速++", cd: 0.15 }, [AtkSpeedLv.VeryFast2]: { name: "极速+", cd: 0.20 }, [AtkSpeedLv.VeryFast3]: { name: "极速", cd: 0.30 }, [AtkSpeedLv.Fast1]: { name: "快速++", cd: 0.40 }, [AtkSpeedLv.Fast2]: { name: "快速+", cd: 0.50 }, [AtkSpeedLv.Fast3]: { name: "快速", cd: 0.70 }, [AtkSpeedLv.Normal1]: { name: "中速++", cd: 0.80 }, [AtkSpeedLv.Normal2]: { name: "中速+", cd: 0.90 }, [AtkSpeedLv.Normal3]: { name: "中速", cd: 1.00 }, [AtkSpeedLv.Mid1]: { name: "一般+", cd: 1.10 }, [AtkSpeedLv.Mid2]: { name: "一般", cd: 1.20 }, [AtkSpeedLv.Mid3]: { name: "一般-", cd: 1.30 }, [AtkSpeedLv.Slow1]: { name: "慢", cd: 1.50 }, [AtkSpeedLv.Slow2]: { name: "慢+", cd: 1.60 }, [AtkSpeedLv.Slow3]: { name: "慢++", cd: 1.80 }, [AtkSpeedLv.VerySlow1]: { name: "很慢", cd: 2.30 }, [AtkSpeedLv.VerySlow2]: { name: "很慢+", cd: 2.50 }, [AtkSpeedLv.VerySlow3]: { name: "很慢++", cd: 2.80 }, }; export const HeroPos={ 0:{pos:v3(-320,BoxSet.GAME_LINE,0)}, 1:{pos:v3(0,BoxSet.GAME_LINE,0)}, 2:{pos:v3(0,BoxSet.GAME_LINE,0)}, } export const FormationPointX = { [HType.Melee]: -20, [HType.Mid]: 100, [HType.Long]: 100, } as const; export const HeroDisVal: Record = { [HType.Melee]: 120, [HType.Mid]: 720, [HType.Long]: 720, } export const resolveFormationTargetX = (fac: FacSet, type: HType): number => { const resolvedRangeType = type as HType.Melee | HType.Mid | HType.Long; const side = fac === FacSet.MON ? 1 : -1; return FormationPointX[resolvedRangeType] * side; } export enum MonStart { SLINE_1=140, //上线y SLINE_2=100, //下线y SLINE_3=180, //下线y SLINE_4=60, //y起始点 START_X=320, //x起始点 START_I=90, //x轴间隔 } /** * 特殊触发技能类型 */ export enum SkillTriggerType { Call = "call", // 召唤后触发 降临 Dead = "dead", // 死亡后触发 遗志 FStart = "fstart", // 战斗开始 先手 FEnd = "fend", // 战斗结束 终战 Field = "field", // 驻场 光环 Atking = "atking", // 攻击后触发 追击 Atked = "atked", // 受击后触发 反击 Revive = "revive", // 复活触发 涅槃 } export const SkillTriggerName = { [SkillTriggerType.Call]: "降临", [SkillTriggerType.Dead]: "遗志", [SkillTriggerType.FStart]: "先手", [SkillTriggerType.FEnd]: "终战", [SkillTriggerType.Field]: "光环", [SkillTriggerType.Atking]: "追击", [SkillTriggerType.Atked]: "反击", [SkillTriggerType.Revive]: "涅槃", } export const SkillTriggerDesc = { [SkillTriggerType.Call]: "召唤时", [SkillTriggerType.Dead]: "死亡时", [SkillTriggerType.FStart]: "战斗开始时", [SkillTriggerType.FEnd]: "战斗结束时", [SkillTriggerType.Field]: "场上存活", [SkillTriggerType.Atking]: "攻击n次", [SkillTriggerType.Atked]: "受击n次", [SkillTriggerType.Revive]: "复活时", } /** * 英雄/怪物基础信息接口 */ export interface heroInfo { uuid: number; // 唯一标识(英雄5000段,怪物5200段) name: string; // 显示名称 icon?: string; // 图标名称(对应美术资源名) path: string; // 资源路径(对应美术资源名) fac: FacSet; // 阵营(FacSet.HERO 或 FacSet.MON) kind?: number; // 未使用 lv: number; // 英雄等级 pool_lv?: number; // 卡片等级 type: HType; // 攻击定位(近战/中程/远程) hp: number; // 生命值上限 ap: number; // 攻击力 [SkillTriggerType.Call]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 召唤后触发的技能配置 [SkillTriggerType.Dead]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 死亡后触发的技能配置 [SkillTriggerType.FStart]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 战斗开始时释放的技能配置 [SkillTriggerType.FEnd]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 战斗结束时释放的技能配置 [SkillTriggerType.Field]?:number[]; // 驻场技能uuid列表,英雄在场时对全局生效 [SkillTriggerType.Atking]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 普通攻击后触发的技能配置,s_uuid: 技能id, t_num: 触发所需的普攻次数 [SkillTriggerType.Atked]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 受击后触发的技能配置,s_uuid: 技能id, t_num: 触发所需的受击次数 [SkillTriggerType.Revive]?:{s_uuid:number,r_num:number,upr:number}; // 复活技能配置,s_uuid: 技能id, r_num: 触发所需的复活次数, upr 等级对复活次数的影响 dis?: number; // 攻击距离(像素) speed?: number; // 移动速度(像素/秒) skills: Record ; // 携带技能ID列表 evolve?: Record; // 等级进化配置,key=等级(2,3,...) info: string; // 描述文案 } /** * 技能基础信息接口 */ export interface HSkillInfo { uuid: number; // 唯一标识(技能6000段等) lv:number; // 技能等级 cd:number; // 技能cd ccd:number; // 占位当前cd,用于cd计时 overrides?: SkillOverrides; // 角色专属参数覆盖 } /** * 英雄等级进化配置 * 定义英雄在某等级时技能/属性的变化 */ export interface HeroEvolve { /** 替换普攻技能(清除旧技能,添加新技能) */ skill?: { s_uuid: number; cd?: number; overrides?: SkillOverrides }; /** 覆盖触发技能(完全替换该类型的触发配置) */ atking?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; atked?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; dead?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; fstart?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; fend?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; revive?: { s_uuid: number; r_num: number; upr: number }; /** 额外属性加成(在等级倍率基础上叠加) */ ap_bonus?: number; hp_bonus?: number; } /* *=============英雄配置列表================ * 职业触发规则 (v3) * 战士 专注 atked(受击) + dead(死亡) 触发 — 承伤坦克定位 * 刺客 专注 atking(攻击) + dead(死亡) 触发 — 高风险高回报近战 * 射手 专注 atking(攻击) + fstart(战前) 触发 — 稳定远程输出 * 法师 专注 atking(攻击) + field(驻场) 触发 — 魔法输出+被动光环 * 辅助 专注 atking(攻击) + revive(复活) 触发 — 战斗支援 * * 设定中的英雄都是1级,最高可以升级到3级(不在列表内提现,升级在游戏内进行) * skills[0]是普通攻击技能 * skills[1]是等级2时的技能,skills[2]是等级3时的技能 * * 属性基准(pool_lv:1,lv:1) : SPEED:800, AP:30 | HP:300 | skills[0].cd = 1.0 (普通) * 坦克(pool_lv:1,lv:1) : SPEED:800, AP:25 | HP:450 | skills[0].cd = 2.3 或 2.8 (很慢+/很慢) - 突出沉重感与承伤定位 * 近战dps(pool_lv:1,lv:1) : SPEED:800, AP:50 | HP:250 | skills[0].cd = 0.3 或 0.5 (极速/快速+) - 强化割草连击爽感 * 远程dps(pool_lv:1,lv:1) : SPEED:800, AP:60 | HP:150 | skills[0].cd = 0.7 或 0.9 (快速/普通+) - 稳定持续的物理输出节奏 *远程法dps(pool_lv:1,lv:1) : SPEED:800, AP:60 | HP:150 | skills[0].cd = 1.5 或 1.8 (慢+/慢) - 强调施法前摇与单发爆发 * 远程辅助(pool_lv:1,lv:1) : SPEED:800, AP:20 | HP:150 | skills[0].cd = 1.1 (普通) - 贴近基准,动作不急不躁,侧重技能 */ export const HeroInfo: Record = { // ========== 基础九大英雄 ========== 5001:{uuid:5001,name:"见习战士",path:"hk1", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Melee,hp:300,ap:30, skills:{6001:{uuid:6001,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Normal1].cd,ccd:0}}, atked:[{s_uuid:6301,t_num:3}], info:"基础近战,受击3次加护盾"}, 5002:{uuid:5002,name:"见习骑士",path:"hk2", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Melee,hp:350,ap:25, skills:{6003:{uuid:6003,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Normal2].cd,ccd:0}}, atked:[{s_uuid:6402,t_num:3}], info:"基础近战,受击3次提升生命"}, 5003:{uuid:5003,name:"见习刺客",path:"hk3", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Melee,hp:250,ap:40, skills:{6004:{uuid:6004,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Fast3].cd,ccd:0}}, atking:[{s_uuid:6401,t_num:3}], info:"基础近战,攻击3次提升攻击"}, 5004:{uuid:5004,name:"见习法师",path:"hm1", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Mid,hp:200,ap:45, skills:{6101:{uuid:6101,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow1].cd,ccd:0}}, atking:[{s_uuid:6403,t_num:3}], info:"基础中程,攻击3次提升暴击"}, 5005:{uuid:5005,name:"见习术士",path:"hm2", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Mid,hp:200,ap:45, skills:{6103:{uuid:6103,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow2].cd,ccd:0}}, atking:[{s_uuid:6404,t_num:3}], info:"基础中程,攻击3次提升暴伤"}, 5006:{uuid:5006,name:"见习巫师",path:"hm3", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Mid,hp:200,ap:45, skills:{6104:{uuid:6104,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow1].cd,ccd:0}}, atking:[{s_uuid:6405,t_num:3}], info:"基础中程,攻击3次提升击晕"}, 5007:{uuid:5007,name:"见习射手",path:"ha1", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Long,hp:180,ap:50, skills:{6008:{uuid:6008,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Normal3].cd,ccd:0}}, atking:[{s_uuid:6303,t_num:3}], info:"基础远程,攻击3次获得金币"}, 5008:{uuid:5008,name:"见习游侠",path:"ha2", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Long,hp:180,ap:50, skills:{6009:{uuid:6009,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Normal3].cd,ccd:0}}, atking:[{s_uuid:6302,t_num:3}], info:"基础远程,攻击3次治疗"}, 5009:{uuid:5009,name:"见习弩手",path:"ha3", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Long,hp:180,ap:50, skills:{6010:{uuid:6010,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Normal3].cd,ccd:0}}, atking:[{s_uuid:6401,t_num:3}], info:"基础远程,攻击3次提升攻击"}, /* *=============怪物配置列表================ * 基础近战型(lv:1) : SPEED:800 |AP:12 | HP:360 | skills[0].cd=0.65 * 重型坦克型(lv:1) : SPEED:800 |AP:30 | HP:1050 | skills[0].cd=2 * 远程dps(lv:1) : SPEED:800 |AP:45 | HP:240 | skills[0].cd=1.5 * 远程辅助(lv:1) : SPEED:800 |AP:20 | HP:240 | skills[0].cd=1 * 精英 (lv:1) : SPEED:800 |AP:20 | HP:4500 | skills[0].cd=1 */ // 基础怪物 (全部远程攻击,HType仅决定站位) // 近战位怪物 (站在前排,承受更多伤害) — v5: TD节奏CD,多而弱爽感设计 6001:{uuid:6001,name:"兽人战士",path:"m1", fac:FacSet.MON,lv:1,type:HType.Melee,hp:220,ap:10,speed:70, skills:{6005:{uuid:6005,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow1].cd,ccd:0}},info:"基础近战位怪"}, 6002:{uuid:6002,name:"兽人精锐战士",path:"m2", fac:FacSet.MON,lv:1,type:HType.Melee,hp:300,ap:14,speed:110, skills:{6005:{uuid:6005,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow2].cd,ccd:0}},info:"进阶近战位怪,更快更痛"}, 6003:{uuid:6003,name:"兽人重装兵",path:"m3", fac:FacSet.MON,lv:1,type:HType.Melee,hp:850,ap:20,speed:50, skills:{6005:{uuid:6005,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow3].cd,ccd:0}},info:"重型坦克怪,高HP慢攻"}, // 远程位怪物 (站在后排,输出更高) 6004:{uuid:6004,name:"兽人射手",path:"m4", fac:FacSet.MON,lv:1,type:HType.Long,hp:190,ap:35,speed:70, skills:{6008:{uuid:6008,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow1].cd,ccd:0}},info:"远程高DPS怪"}, 6005:{uuid:6005,name:"兽人刺客",path:"m5", fac:FacSet.MON,lv:1,type:HType.Long,hp:210,ap:38,speed:130, skills:{6103:{uuid:6103,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow2].cd,ccd:0}},info:"高AP快速攻击刺客"}, // 特殊位怪物 6006:{uuid:6006,name:"骷髅领主",path:"m6", fac:FacSet.MON,lv:1,type:HType.Melee,hp:5000,ap:20,speed:60, skills:{6005:{uuid:6005,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow3].cd,ccd:0}},info:"MiniBoss级坦克"}, 6007:{uuid:6007,name:"兽人术士",path:"m7", fac:FacSet.MON,lv:1,type:HType.Melee,hp:300,ap:24,speed:70, skills:{6103:{uuid:6103,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow1].cd,ccd:0}},info:"法师怪,远程魔法攻击"}, 6008:{uuid:6008,name:"兽人火法",path:"m8", fac:FacSet.MON,lv:1,type:HType.Melee,hp:270,ap:32,speed:70, skills:{6103:{uuid:6103,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow2].cd,ccd:0}},info:"高输出法师怪"}, // BOSS怪物 — Boss节奏1.2-1.5s,删除不存在的6206技能 6101:{uuid:6101,name:"兽人首领-双刀战士",path:"mb1", fac:FacSet.MON,lv:6,type:HType.Long,hp:1900,ap:30,speed:120, skills:{6103:{uuid:6103,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow3].cd,ccd:0}},info:"远程Boss,高攻速"}, 6102:{uuid:6102,name:"兽人首领-斧头战士",path:"mb2", fac:FacSet.MON,lv:6,type:HType.Melee,hp:7500,ap:26,speed:60, skills:{6005:{uuid:6005,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow1].cd,ccd:0}},info:"近战Boss,超高HP"}, 6103:{uuid:6103,name:"兽人首领-魔法师",path:"mb3", fac:FacSet.MON,lv:6,type:HType.Long,hp:2250,ap:38,speed:110, skills:{6103:{uuid:6103,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow2].cd,ccd:0}},info:"远程法系Boss,高AP"}, 6104:{uuid:6104,name:"兽人首领-射手",path:"mb4", fac:FacSet.MON,lv:6,type:HType.Melee,hp:6800,ap:30,speed:70, skills:{6005:{uuid:6005,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow3].cd,ccd:0}},info:"近战位Boss,均衡型"}, 6105:{uuid:6105,name:"亡灵首领-法师",path:"mb5", fac:FacSet.MON,lv:6,type:HType.Long,hp:2600,ap:42,speed:110, skills:{6103:{uuid:6103,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow1].cd,ccd:0}},info:"远程高AP Boss"}, 6106:{uuid:6106,name:"亡灵首领-骑马战士",path:"mb6", fac:FacSet.MON,lv:6,type:HType.Melee,hp:9000,ap:26,speed:130, skills:{6005:{uuid:6005,lv:1,cd:AtkSpeedSet[AtkSpeedLv.VerySlow3].cd,ccd:0}},info:"终极Boss,最高HP+高速"}, }; export const HeroList: number[] = [ // 铁壁反伤流 5001, 5002, 5007, 5008, 5009, // 攻速叠伤流 5006, 5205, 5403, // 冰冻控制流 5101, 5106, 5107, 5108, // 治疗续航流 5301, 5302, 5303, 5304, 5305, // 穿刺风怒流 5209, 5210, 5404, // 暴击爆发流 5211, 5212, 5405, // 经济滚雪球流 5109, 5306, 5213, // 献祭亡语流 5010, 5110, 5111, ];