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,越小越快) */ export enum AtkSpeedLv { VeryFast1 = 1, VeryFast2 = 2, Fast1 = 3, Fast2 = 4, Normal1 = 5, Normal2 = 6, Slow1 = 7, Slow2 = 8, VerySlow1 = 9, VerySlow2 = 10, } export const AtkSpeedSet = { [AtkSpeedLv.VeryFast1]: { name: "极速+", cd: 0.15 }, [AtkSpeedLv.VeryFast2]: { name: "极速", cd: 0.30 }, [AtkSpeedLv.Fast1]: { name: "快速+", cd: 0.50 }, [AtkSpeedLv.Fast2]: { name: "快速", cd: 0.70 }, [AtkSpeedLv.Normal1]: { name: "普通+", cd: 0.90 }, [AtkSpeedLv.Normal2]: { name: "普通", cd: 1.10 }, [AtkSpeedLv.Slow1]: { name: "慢+", cd: 1.50 }, [AtkSpeedLv.Slow2]: { name: "慢", cd: 1.80 }, [AtkSpeedLv.VerySlow1]: { name: "很慢+", cd: 2.30 }, [AtkSpeedLv.VerySlow2]: { 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 interface heroInfo { uuid: number; // 唯一标识(英雄5000段,怪物5200段) name: string; // 显示名称 icon?: string; // 图标名称(对应美术资源名) path: string; // 资源路径(对应美术资源名) fac: FacSet; // 阵营(FacSet.HERO 或 FacSet.MON) kind?: number; // 未使用 lv: number; // 英雄等级 cards_lv?: number; // 卡片等级 type: HType; // 攻击定位(近战/中程/远程) hp: number; // 生命值上限 ap: number; // 攻击力 call?:{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}[]; // 战斗结束时释放的技能配置 field?:number[]; // 驻场技能uuid列表,英雄在场时对全局生效 atking?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 普通攻击后触发的技能配置,s_uuid: 技能id, t_num: 触发所需的普攻次数 atked?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 受击后触发的技能配置,s_uuid: 技能id, t_num: 触发所需的受击次数 revive?:{s_uuid:number,r_num:number,upr:number}; // 复活技能配置,s_uuid: 技能id, r_num: 触发所需的复活次数, upr 等级对复活次数的影响 dis?: number; // 攻击距离(像素) speed?: number; // 移动速度(像素/秒) skills: Record ; // 携带技能ID列表 info: string; // 描述文案 } /** * 技能基础信息接口 */ export interface HSkillInfo { uuid: number; // 唯一标识(技能6000段等) lv:number; // 技能等级 cd:number; // 技能cd ccd:number; // 占位当前cd,用于cd计时 overrides?: SkillOverrides; // 角色专属参数覆盖 } /* *=============英雄配置列表================ * 英雄规则设定 * 战士 专注 受攻击触发技能 * 射手 专注 施法触发技能 * 法师 专注 战斗开始触发技能 * 辅助 专注 战斗结束触发技能 * * 设定中的英雄都是1级,最高可以升级到3级(不在列表内提现,升级在游戏内进行) * skills[0]是普通攻击技能 * skills[1]是等级2时的技能,skills[2]是等级3时的技能 * * 属性基准(cards_lv:1,lv:1) : SPEED:800, AP:30 | HP:300 | skills[0].cd = 1.0 (普通) * 坦克(cards_lv:1,lv:1) : SPEED:800, AP:25 | HP:450 | skills[0].cd = 2.3 或 2.8 (很慢+/很慢) - 突出沉重感与承伤定位 * 近战dps(cards_lv:1,lv:1) : SPEED:800, AP:50 | HP:250 | skills[0].cd = 0.3 或 0.5 (极速/快速+) - 强化割草连击爽感 * 远程dps(cards_lv:1,lv:1) : SPEED:800, AP:60 | HP:150 | skills[0].cd = 0.7 或 0.9 (快速/普通+) - 稳定持续的物理输出节奏 *远程法dps(cards_lv:1,lv:1) : SPEED:800, AP:60 | HP:150 | skills[0].cd = 1.5 或 1.8 (慢+/慢) - 强调施法前摇与单发爆发 * 远程辅助(cards_lv:1,lv:1) : SPEED:800, AP:20 | HP:150 | skills[0].cd = 1.1 (普通) - 贴近基准,动作不急不躁,侧重技能 */ export const HeroInfo: Record = { // ========== 近战英雄 ========== 5001:{uuid:5001,name:"见习战士",path:"hk2", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Melee,hp:150,ap:25, skills:{6002:{uuid:6002,lv:1,cd:1.5,ccd:0}},atked:[{s_uuid:6301,t_num:2}],info:" "}, 5002:{uuid:5002,name:"盾骑士",path:"hk1", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Melee,hp:150,ap:75, skills:{6002:{uuid:6002,lv:1,cd:1.5,ccd:0}},atked:[{s_uuid:6301,t_num:2,overrides:{TGroup:TGroup.Team,ap:2,hit_count:3}}],info:" "}, 5003:{uuid:5003,name:"战士3",path:"hk3", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Melee,hp:100,ap:100, skills:{6002:{uuid:6002,lv:1,cd:1.5,ccd:0}},info:" "}, 5004:{uuid:5004,name:"战士4",path:"hk4", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:100,ap:200, skills:{6002:{uuid:6002,lv:1,cd:0.7,ccd:0}},info:" "}, 5005:{uuid:5005,name:"战士5",path:"hk5", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:100,ap:200, skills:{6002:{uuid:6002,lv:1,cd:1.5,ccd:0}},info:" "}, // ========== 法师英雄 ========== 5101:{uuid:5101,name:"奥术法师",path:"hm2", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:150,ap:60, skills:{6003:{uuid:6003,lv:1,cd:1,ccd:0}},revive:{s_uuid:6501,r_num:1,upr:0.5},info:""}, 5102:{uuid:5102,name:"火焰法师",path:"hm1", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:130,ap:120, skills:{6003:{uuid:6003,lv:1,cd:1,ccd:0}},info:""}, 5103:{uuid:5103,name:"冰法法师",path:"hm3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180, skills:{6003:{uuid:6003,lv:1,cd:1,ccd:0}},info:""}, 5104:{uuid:5104,name:"寒霜术士",path:"hm5", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Long,hp:160,ap:240, skills:{6003:{uuid:6003,lv:1,cd:1,ccd:0}},info:""}, 5105:{uuid:5105,name:"炎爆法师",path:"hm4", fac:FacSet.HERO,cards_lv:5,lv:1,type:HType.Long,hp:175,ap:300, skills:{6003:{uuid:6003,lv:1,cd:1,ccd:0}},info:"" }, // ========== 远程英雄 ========== 5201:{uuid:5201,name:"射手",path:"ha1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:115,ap:60, skills:{6005:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:""}, 5202:{uuid:5202,name:"游侠2",path:"ha2", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180, skills:{6005:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:""}, 5203:{uuid:5203,name:"游侠3",path:"ha3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180, skills:{6005:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:""}, 5204:{uuid:5204,name:"游侠4",path:"ha4", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180, skills:{6005:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:""}, // ========== 辅助英雄 ========== 5301:{uuid:5301,name:"牧师",path:"hh1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:115,ap:50, skills:{6004:{uuid:6004,lv:1,cd:1.2,ccd:0}},atking:[{s_uuid:6302,t_num:2}],info:"" }, 5302:{uuid:5302,name:"医师",path:"hh2", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:130,ap:50, skills:{6004:{uuid:6004,lv:1,cd:1.2,ccd:0}}, atking:[{s_uuid:6302,t_num:2,overrides:{hit_count:3,ap:200}}],info:""}, // ========== 辅助英雄 ========== 5401:{uuid:5401,name:"刺客1",path:"hc1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:115,ap:50, skills:{6006:{uuid:6006,lv:1,cd:1.2,ccd:0}},atking:[{s_uuid:6302,t_num:2}],info:"" }, 5402:{uuid:5402,name:"刺客2",path:"hc2", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:130,ap:50, skills:{6006:{uuid:6006,lv:1,cd:1.2,ccd:0}},atking:[{s_uuid:6304,t_num:2}],info:""}, /* *=============怪物配置列表================ * 基础近战型(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 */ // 基础怪物 6001:{uuid:6001,name:"兽人初阶战士",path:"m1", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,dis:360,hp:360,ap:12,speed:100, skills:{6005:{uuid:6005,lv:1,cd:0.65,ccd:0}},info:""}, 6002:{uuid:6002,name:"兽人高阶战士",path:"m2", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,dis:360,hp:360,ap:12,speed:100, skills:{6005:{uuid:6005,lv:1,cd:0.65,ccd:0}},info:""}, 6003:{uuid:6003,name:"兽人初阶射手",path:"m3", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,dis:360,hp:1050,ap:30,speed:100, skills:{6008:{uuid:6008,lv:1,cd:2,ccd:0}},info:""}, 6004:{uuid:6004,name:"兽人高阶射手",path:"m4", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:720,ap:45,speed:100, skills:{6008:{uuid:6008,lv:1,cd:1.5,ccd:0}},info:""}, 6005:{uuid:6005,name:"兽人刺客",path:"m5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:720,ap:20,speed:100, skills:{6103:{uuid:6103,lv:1,cd:1.5,ccd:0}},info:""}, 6006:{uuid:6006,name:"骷髅高阶战士",path:"m6", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,dis:360,hp:4500,ap:20,speed:100, skills:{6005:{uuid:6005,lv:1,cd:2,ccd:0}},info:""}, 6007:{uuid:6007,name:"兽人蓝色法师",path:"m7", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,dis:360,hp:4500,ap:20,speed:100, skills:{6103:{uuid:6103,lv:1,cd:2,ccd:0}},info:""}, 6008:{uuid:6008,name:"兽人红色法师",path:"m8", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,dis:360,hp:4500,ap:20,speed:100, skills:{6103:{uuid:6103,lv:1,cd:2,ccd:0}},info:""}, // BOSS怪物 6101:{uuid:6101,name:"兽人首领-双刀战士-蓝边",path:"mb1", fac:FacSet.MON,cards_lv:1,lv:6,type:HType.Long,hp:720,ap:30,speed:100, skills:{6103:{uuid:6103,lv:1,cd:2,ccd:0},6206:{uuid:6206,lv:1,cd:10,ccd:0}},info:""}, 6102:{uuid:6102,name:"兽人首领-斧头战士-绿边",path:"mb2", fac:FacSet.MON,cards_lv:1,lv:6,type:HType.Melee,dis:360,hp:4500,ap:20,speed:100, skills:{6005:{uuid:6005,lv:1,cd:2,ccd:0},},info:""}, 6103:{uuid:6103,name:"兽人首领-魔法师-紫边",path:"mb3", fac:FacSet.MON,cards_lv:1,lv:6,type:HType.Long,hp:720,ap:30,speed:100, skills:{6103:{uuid:6103,lv:1,cd:2,ccd:0},6206:{uuid:6206,lv:1,cd:10,ccd:0}},info:""}, 6104:{uuid:6104,name:"兽人首领-射手-黄边",path:"mb4", fac:FacSet.MON,cards_lv:1,lv:6,type:HType.Melee,dis:360,hp:4500,ap:20,speed:100, skills:{6005:{uuid:6005,lv:1,cd:2,ccd:0},},info:""}, 6105:{uuid:6105,name:"亡灵首领-法师-红边",path:"mb5", fac:FacSet.MON,cards_lv:1,lv:6,type:HType.Long,hp:720,ap:30,speed:100, skills:{6103:{uuid:6103,lv:1,cd:2,ccd:0},6206:{uuid:6206,lv:1,cd:10,ccd:0}},info:""}, 6106:{uuid:6106,name:"亡灵首领-骑马战士-红边",path:"mb6", fac:FacSet.MON,cards_lv:1,lv:6,type:HType.Melee,dis:360,hp:4500,ap:20,speed:100, skills:{6005:{uuid:6005,lv:1,cd:2,ccd:0},},info:""}, }; export const HeroList: number[] = [ 5001, 5002, 5003, 5004, 5005, 5101, 5102, 5103, 5104, 5105, 5201, 5202,5203,5204, 5301, 5302, 5401, 5402, ];