315 lines
16 KiB
TypeScript
315 lines
16 KiB
TypeScript
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 | HType.Mid | HType.Long, number> = {
|
||
[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<number, HSkillInfo> ; // 携带技能ID列表
|
||
evolve?: Record<number, HeroEvolve>; // 等级进化配置,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<number, heroInfo> = {
|
||
// ========== 基础九大英雄 ==========
|
||
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,
|
||
];
|
||
|
||
|
||
|
||
|
||
|