5 Commits

Author SHA1 Message Date
pan
d759689269 docs: 新增《几何王国》英雄技能汇总配置文档
该文档收录了游戏主流热门英雄的技能、养成解锁条件、觉醒技能、强度排行等内容,整理自多个公开玩家攻略资源,方便团队查阅参考。
2026-08-14 10:58:25 +08:00
pan
e78f4365e7 refactor(heroSet): 重构英雄攻速配置体系
将原有的18级3档攻速配置简化为5档统一配置,更新所有英雄和怪物的技能攻速引用,调整怪物基准属性说明以匹配新的攻速配置。
2026-08-14 10:18:35 +08:00
pan
34a62f0a87 fix(config): adjust map boundary values
modify LEFT_END and RIGHT_END from ±360 to ±320 to correct map border range
2026-08-14 10:00:32 +08:00
pan
1988ae5ef1 refactor(hero): 统一击退位移逻辑到MoveSystem
将英雄后退的视图层位移操作迁移到MoveSystem统一处理,
通过knockbackVelocity组件属性实现平滑的击退位移衰减与边界钳制,
移除HeroViewComp中直接操作节点位置的代码,解耦视图与战斗逻辑。
2026-08-14 09:53:05 +08:00
panFD
df0dedba75 refactor: 整理技能与战斗相关的配置与逻辑
1.  新增技能飞行距离配置项,支持自定义直线技能飞行距离
2.  调整英雄后退击退范围从30改为20
3.  重构击退逻辑,统一敌我双方的边界钳制处理
4.  优化Boss数值配置,固定基础面板为初始英雄2倍强度
5.  修正技能6006的动画资源引用为atk1
6.  调整近战英雄默认停火距离从80改为60
7.  更新注释文档与配置注释,优化代码可读性
2026-08-14 00:36:26 +08:00
14 changed files with 572 additions and 135 deletions

View File

@@ -11,9 +11,13 @@
"speed": 1,
"wrapMode": 1,
"enableTrsBlending": false,
"_duration": 0,
"_duration": 0.125,
"_hash": 500763545,
"_tracks": [],
"_tracks": [
{
"__id__": 1
}
],
"_exoticAnimation": null,
"_events": [
{
@@ -29,10 +33,229 @@
],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 1
"__id__": 12
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channels": [
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"scale"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Node"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 5
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.08333333333333333,
0.125
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.2999999523162842,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.2999999523162842,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.2999999523162842,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 7
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.08333333333333333,
0.125
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.100000023841858,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.100000023841858,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.100000023841858,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 9
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.08333333333333333,
0.125
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 11
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.AnimationClipAdditiveSettings",
"enabled": false,

View File

@@ -254,6 +254,7 @@
"endType": 0,
"speed": 720,
"time": 0,
"distance": 100,
"_id": ""
},
{

View File

@@ -10,8 +10,8 @@ export enum BoxSet {
MONSTER = 2,
HERO = 4,
//地图边界
LETF_END = -360,
RIGHT_END = 360,
LETF_END = -320,
RIGHT_END = 320,
//游戏地平线
GAME_LINE = 10,
/** 技能/装备各自独立的上限 */
@@ -37,7 +37,7 @@ export enum FightSet {
/** 英雄属性随等级成长的倍率ap/hp = base * MULTIPLIER^(lv-1) */
HERO_LV_MULTIPLIER = 2,
// BACK_RANG=30,//后退范围
BACK_RANG = 30,//后退范围
BACK_RANG = 20,//后退范围
FiIGHT_TIME = 30,//战斗时间
FROST_TIME = 3,//冰冻时间
STUN_TIME = 2,//击晕时间

View File

@@ -239,7 +239,7 @@ export const SkillSet: Record<number, SkillConfig> = {
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",
uuid: 6006, name: "攻击", sp_name: "atk1", 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%的伤害",
},

View File

@@ -40,38 +40,22 @@ export const MonTypeName: Record<number, string> = {
/**
* 英雄攻击速度分级配置 (数值为攻击间隔cd越小越快)
* 每档3个速度级别Lv1(最快) → Lv2(中间) → Lv3(最慢)
* 6档共18级覆盖所有英雄/怪物的攻击间隔
* 注:最慢档 Slow3/VerySlow 系列上限 1.10s,保证战斗节奏紧凑
* 5 档速度:最快 VeryFast 0.75s → 最慢 VerySlow 1.50s
*/
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,
VeryFast = 1,
Fast = 2,
Normal = 3,
Slow = 4,
VerySlow = 5,
}
export const AtkSpeedSet = {
[AtkSpeedLv.VeryFast1]: { name: "极速++", cd: 0.15 },
[AtkSpeedLv.VeryFast2]: { name: "极速+", cd: 0.20 },
[AtkSpeedLv.VeryFast3]: { name: "速", cd: 0.28 },
[AtkSpeedLv.Fast1]: { name: "快速++", cd: 0.36 },
[AtkSpeedLv.Fast2]: { name: "快速+", cd: 0.44 },
[AtkSpeedLv.Fast3]: { name: "快速", cd: 0.52 },
[AtkSpeedLv.Normal1]: { name: "中速++", cd: 0.60 },
[AtkSpeedLv.Normal2]: { name: "中速+", cd: 0.68 },
[AtkSpeedLv.Normal3]: { name: "中速", cd: 0.76 },
[AtkSpeedLv.Mid1]: { name: "一般+", cd: 0.84 },
[AtkSpeedLv.Mid2]: { name: "一般", cd: 0.92 },
[AtkSpeedLv.Mid3]: { name: "一般-", cd: 1.00 },
[AtkSpeedLv.Slow1]: { name: "慢", cd: 1.05 },
[AtkSpeedLv.Slow2]: { name: "慢+", cd: 1.08 },
[AtkSpeedLv.Slow3]: { name: "慢++", cd: 1.10 },
[AtkSpeedLv.VerySlow1]: { name: "很慢", cd: 1.10 },
[AtkSpeedLv.VerySlow2]: { name: "很慢+", cd: 1.10 },
[AtkSpeedLv.VerySlow3]: { name: "很慢++", cd: 1.10 },
[AtkSpeedLv.VeryFast]: { name: "极速", cd: 0.75 },
[AtkSpeedLv.Fast]: { name: "快速", cd: 0.90 },
[AtkSpeedLv.Normal]: { name: "速", cd: 1.05 },
[AtkSpeedLv.Slow]: { name: "慢速", cd: 1.20 },
[AtkSpeedLv.VerySlow]: { name: "极慢", cd: 1.50 },
};
export const HeroPos = {
@@ -405,7 +389,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5001 铁壁战士 — atked 护盾标杆原5011
5001: {
uuid: 5001, name: "铁壁战士", path: "hk1", fac: FacSet.HERO, card_lv: 1, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: 300, ap: 22,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
atked: {
6301: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Self, ap: 2 } },
@@ -418,7 +402,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5002 影袭刺客 — atking 自身攻击
5002: {
uuid: 5002, name: "影袭刺客", path: "hc1", fac: FacSet.HERO, card_lv: 1, lv: 1, type: HType.Melee, grow_type: HGrowType.Assassin, role: HRole.Assassin, hp: 300, ap: 22,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0 } },
atking: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Self, ap: 1 } },
@@ -431,7 +415,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5003 遗志将军 — dead 全队攻击
5003: {
uuid: 5003, name: "遗志将军", path: "hk2", fac: FacSet.HERO, card_lv: 1, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: 300, ap: 22,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
dead: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 3 } },
@@ -444,7 +428,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5004 破晓先知 — fstart 全队攻击
5004: {
uuid: 5004, name: "破晓先知", path: "hm1", fac: FacSet.HERO, card_lv: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 143, ap: 32,
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid1].cd, ccd: 0 } },
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
fstart: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 3 } },
@@ -457,7 +441,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5005 战歌法师 — field 攻击光环
5005: {
uuid: 5005, name: "战歌法师", path: "hm2", fac: FacSet.HERO, card_lv: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Support, hp: 143, ap: 32,
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
field: [
{ lv: 1, uuids: [{ uuid: 7002, value: 0.1 }] },
{ lv: 3, uuids: [{ uuid: 7002, value: 0.2 }] },
@@ -471,7 +455,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5101 不死斗士 — atked 回血(更高数值)
5101: {
uuid: 5101, name: "不死斗士", path: "hk3", fac: FacSet.HERO, card_lv: 2, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: 600, ap: 46,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
atked: {
6302: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Self, ap: 200 } },
@@ -484,7 +468,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5102 致命杀手 — atking 暴击(更高数值)
5102: {
uuid: 5102, name: "致命杀手", path: "hc2", fac: FacSet.HERO, card_lv: 2, lv: 1, type: HType.Melee, grow_type: HGrowType.Assassin, role: HRole.Assassin, hp: 600, ap: 46,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0 } },
atking: {
6403: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Self, timed_buff_id: 7012, buff_value: 5, buff_duration: 5 } },
@@ -497,7 +481,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5103 殉道勇士 — dead 全队护盾(更高数值)
5103: {
uuid: 5103, name: "殉道勇士", path: "hk4", fac: FacSet.HERO, card_lv: 2, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: 600, ap: 46,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
dead: {
6301: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 3 } },
@@ -510,7 +494,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5104 圣光祭司 — fstart 全队护盾(更高数值)
5104: {
uuid: 5104, name: "圣光祭司", path: "hm3", fac: FacSet.HERO, card_lv: 2, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 287, ap: 64,
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid1].cd, ccd: 0 } },
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
fstart: {
6301: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 3 } },
@@ -523,7 +507,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5105 风怒先知 — field 攻速光环
5105: {
uuid: 5105, name: "风怒先知", path: "hm1", fac: FacSet.HERO, card_lv: 2, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Support, hp: 287, ap: 64,
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
field: [
{ lv: 1, uuids: [{ uuid: 7006, value: 0.1 }] },
{ lv: 3, uuids: [{ uuid: 7006, value: 0.2 }] },
@@ -534,7 +518,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5106 破甲射手 — atking 自身穿透伤害计时buff增强
5106: {
uuid: 5106, name: "破甲射手", path: "ha1", fac: FacSet.HERO, card_lv: 2, lv: 1, type: HType.Long, grow_type: HGrowType.Assassin, role: HRole.Archer, hp: 287, ap: 64,
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal2].cd, ccd: 0 } },
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0 } },
atking: {
6512: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Self, timed_buff_id: 7022, buff_value: 5, buff_duration: 5 } },
@@ -550,7 +534,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5201 怒血勇士 — atked 全队攻击(范围扩大)
5201: {
uuid: 5201, name: "怒血勇士", path: "hk5", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: 900, ap: 68,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
atked: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Team, ap: 1 } },
@@ -563,7 +547,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5202 援护射手 — atking 队友攻击(范围扩大)
5202: {
uuid: 5202, name: "援护射手", path: "ha1", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Long, grow_type: HGrowType.Assassin, role: HRole.Archer, hp: 430, ap: 96,
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal2].cd, ccd: 0 } },
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0 } },
atking: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Team, hit_count: 1, ap: 1 } },
@@ -576,7 +560,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5203 传承卫士 — dead 全队生命(范围扩大)
5203: {
uuid: 5203, name: "传承卫士", path: "hk1", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: 900, ap: 68,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
dead: {
6402: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 10 } },
@@ -589,7 +573,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5204 晨光贤者 — fstart 全队暴击(范围扩大)
5204: {
uuid: 5204, name: "晨光贤者", path: "hm2", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 430, ap: 96,
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid1].cd, ccd: 0 } },
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
fstart: {
6403: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, timed_buff_id: 7012, buff_value: 5, buff_duration: 5 } },
@@ -602,7 +586,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5205 精准术士 — field 暴击光环(范围扩大)
5205: {
uuid: 5205, name: "精准术士", path: "hm3", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Support, hp: 430, ap: 96,
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
field: [
{ lv: 1, uuids: [{ uuid: 7004, value: 0.1 }] },
{ lv: 3, uuids: [{ uuid: 7004, value: 0.2 }] },
@@ -616,7 +600,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5301 复仇守护者 — atked 全队暴击(范围+数值)
5301: {
uuid: 5301, name: "复仇守护者", path: "hk2", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: 1200, ap: 90,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
atked: {
6403: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Team, timed_buff_id: 7012, buff_value: 5, buff_duration: 5 } },
@@ -629,7 +613,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5302 破灭游侠 — atking 队友暴伤(范围+数值)
5302: {
uuid: 5302, name: "破灭游侠", path: "ha2", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Assassin, role: HRole.Archer, hp: 573, ap: 128,
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal2].cd, ccd: 0 } },
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0 } },
atking: {
6404: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Team, hit_count: 2, timed_buff_id: 7020, buff_value: 5, buff_duration: 5 } },
@@ -642,7 +626,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5303 亡语刺客 — dead 全队暴击+暴伤(双效果)
5303: {
uuid: 5303, name: "亡语刺客", path: "hc3", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Melee, grow_type: HGrowType.Assassin, role: HRole.Assassin, hp: 1200, ap: 90,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0 } },
dead: {
6403: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, timed_buff_id: 7012, buff_value: 5, buff_duration: 5 } },
@@ -660,7 +644,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5304 战吼术士 — fstart 全队攻击+生命(双效果)
5304: {
uuid: 5304, name: "战吼术士", path: "hm1", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 573, ap: 128,
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid1].cd, ccd: 0 } },
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
fstart: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 5 } },
@@ -678,7 +662,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5305 领域贤者 — field 暴伤+攻速光环(双效果)
5305: {
uuid: 5305, name: "领域贤者", path: "hm2", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Support, hp: 573, ap: 128,
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
field: [
{ lv: 1, uuids: [{ uuid: 7005, value: 0.2 }, { uuid: 7006, value: 0.1 }] },
{ lv: 3, uuids: [{ uuid: 7005, value: 0.4 }, { uuid: 7006, value: 0.2 }] },
@@ -692,7 +676,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5401 不灭战魂 — atked 攻击 + revive双技能
5401: {
uuid: 5401, name: "不灭战魂", path: "hk3", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: 1500, ap: 114,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
atked: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Self, ap: 2 } },
@@ -710,7 +694,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5402 战歌游侠 — atking 攻击 + field 攻速光环(双技能)
5402: {
uuid: 5402, name: "战歌游侠", path: "ha3", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Long, grow_type: HGrowType.Assassin, role: HRole.Archer, hp: 717, ap: 160,
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast3].cd, ccd: 0 } },
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0 } },
atking: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Self, ap: 2 } },
@@ -728,7 +712,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5403 凤凰祭司 — dead 攻击+护盾 + revive双技能
5403: {
uuid: 5403, name: "凤凰祭司", path: "hk4", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: 1500, ap: 114,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } },
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
dead: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 5 } },
@@ -751,7 +735,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5404 涅槃贤者 — fstart 护盾+攻击 + revive双技能
5404: {
uuid: 5404, name: "涅槃贤者", path: "hm3", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 717, ap: 160,
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid1].cd, ccd: 0 } },
skills: { 6013: { uuid: 6013, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
fstart: {
6301: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 5 } },
@@ -774,7 +758,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5405 圣言诗人 — atking 治疗 + field 生命光环(双技能)
5405: {
uuid: 5405, name: "圣言诗人", path: "hh1", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Long, grow_type: HGrowType.Support, role: HRole.Support, hp: 717, ap: 160,
skills: { 6015: { uuid: 6015, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal2].cd, ccd: 0 } },
skills: { 6015: { uuid: 6015, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0 } },
atking: {
6302: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 5, overrides: { TGroup: TGroup.Team, ap: 200 } },
@@ -793,7 +777,7 @@ export const HeroInfo: Record<number, heroInfo> = {
/*
*=============怪物配置列表================
* 性能基准1 级怪物与 1 级英雄card_lv=1单体性能持平 ——
* 近战怪镜像 5001hp300/ap22/cd0.92),远程怪镜像 5004hp160/ap28/cd0.84
* 近战怪镜像 5001hp300/ap22/cd1.20),远程怪镜像 5004hp160/ap28/cd1.20
* 重型/Boss 以更高 hp 换取更低 DPS承担"墙"与"压场"定位。
* 运行时最终属性 = 本表基础值 × RogueConfig.MON_HP_MUL / MON_AP_MUL
* Boss 额外 × BOSS_HP_BONUS_MUL校准目标整场战斗双方对砍 ≈ 30s。
@@ -801,66 +785,67 @@ export const HeroInfo: Record<number, heroInfo> = {
// 基础怪物 (全部固定点位站桩攻击HType仅决定是前排还是后排)
// 前排怪物 — 近战镜像 1 级英雄基准hp300/ap22/cd0.92),变体微分定位
// 前排怪物 — 近战镜像 1 级英雄基准hp300/ap22/cd1.20),变体微分定位
6001: {
uuid: 6001, name: "兽人战士", path: "m1", fac: FacSet.MON, lv: 1, type: HType.Melee, monType: MonType.Melee, hp: 300, ap: 22, speed: 70,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } }, info: "基础前排怪, 与1级近战英雄持平"
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "基础前排怪, 与1级近战英雄持平"
},
6002: {
uuid: 6002, name: "兽人精锐战士", path: "m2", fac: FacSet.MON, lv: 1, type: HType.Melee, monType: MonType.Melee, hp: 340, ap: 26, speed: 110,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid1].cd, ccd: 0 } }, info: "进阶前排怪, 更快更痛"
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "进阶前排怪, 更快更痛"
},
6003: {
uuid: 6003, name: "兽人重装兵", path: "m3", fac: FacSet.MON, lv: 1, type: HType.Melee, monType: MonType.Heavy, hp: 800, ap: 14, speed: 50,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow3].cd, ccd: 0 } }, info: "重型坦克怪, 高HP低攻承伤位"
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.VerySlow].cd, ccd: 0 } }, info: "重型坦克怪, 高HP低攻承伤位"
},
// 后排怪物 — 远程镜像 1 级法师基准hp160/ap28/cd0.84),变体微分定位
// 后排怪物 — 远程镜像 1 级法师基准hp160/ap28/cd1.20),变体微分定位
6004: {
uuid: 6004, name: "兽人射手", path: "m4", fac: FacSet.MON, lv: 1, type: HType.Long, monType: MonType.Long, hp: 160, ap: 28, speed: 70,
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid1].cd, ccd: 0 } }, info: "后排输出怪, 与1级远程英雄持平"
skills: { 6008: { uuid: 6008, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "后排输出怪, 与1级远程英雄持平"
},
6005: {
uuid: 6005, name: "兽人刺客", path: "m5", fac: FacSet.MON, lv: 1, type: HType.Long, monType: MonType.Assassin, hp: 130, ap: 26, speed: 130,
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal3].cd, ccd: 0 } }, info: "高攻速低HP刺客"
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0 } }, info: "高攻速低HP刺客"
},
// 特殊位怪物
6006: {
uuid: 6006, name: "骷髅领主", path: "m6", fac: FacSet.MON, lv: 1, type: HType.Melee, monType: MonType.MeleeBoss, hp: 900, ap: 20, speed: 60,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow3].cd, ccd: 0 } }, info: "前排MiniBoss级坦克"
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.VerySlow].cd, ccd: 0 } }, info: "前排MiniBoss级坦克"
},
6007: {
uuid: 6007, name: "兽人术士", path: "m7", fac: FacSet.MON, lv: 1, type: HType.Long, monType: MonType.Support, hp: 240, ap: 18, speed: 70,
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid3].cd, ccd: 0 } }, info: "后排辅助法师怪"
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "后排辅助法师怪"
},
6008: {
uuid: 6008, name: "兽人火法", path: "m8", fac: FacSet.MON, lv: 1, type: HType.Long, monType: MonType.Summoner, hp: 220, ap: 24, speed: 70,
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } }, info: "后排召唤系法师怪"
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "后排召唤系法师怪"
},
// BOSS怪物 — 与6006同基准以高HP压场血量经 BOSS_HP_BONUS_MUL 单独放大
// BOSS怪物 — 本表 hp/ap 仅作外观/技能档位参考,运行时面板由 RogueConfig 的
// BOSS_BASE_HP / BOSS_BASE_AP初始英雄 2 倍强度)统一决定,不读取本表数值
6101: {
uuid: 6101, name: "兽人首领-双刀战士", path: "mb1", fac: FacSet.MON, lv: 6, type: HType.Melee, monType: MonType.MeleeBoss, hp: 1200, ap: 24, speed: 120,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid3].cd, ccd: 0 } }, info: "前排Boss, 攻速型"
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "前排Boss, 攻速型"
},
6102: {
uuid: 6102, name: "兽人首领-斧头战士", path: "mb2", fac: FacSet.MON, lv: 6, type: HType.Melee, monType: MonType.MeleeBoss, hp: 1500, ap: 18, speed: 60,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow3].cd, ccd: 0 } }, info: "前排Boss, 超高HP"
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.VerySlow].cd, ccd: 0 } }, info: "前排Boss, 超高HP"
},
6103: {
uuid: 6103, name: "兽人首领-魔法师", path: "mb3", fac: FacSet.MON, lv: 6, type: HType.Long, monType: MonType.LongBoss, hp: 1000, ap: 28, speed: 110,
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } }, info: "后排法系Boss"
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "后排法系Boss"
},
6104: {
uuid: 6104, name: "兽人首领-射手", path: "mb4", fac: FacSet.MON, lv: 6, type: HType.Long, monType: MonType.LongBoss, hp: 1100, ap: 24, speed: 70,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid3].cd, ccd: 0 } }, info: "后排位Boss, 均衡型"
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "后排位Boss, 均衡型"
},
6105: {
uuid: 6105, name: "亡灵首领-法师", path: "mb5", fac: FacSet.MON, lv: 6, type: HType.Long, monType: MonType.LongBoss, hp: 1000, ap: 30, speed: 110,
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid2].cd, ccd: 0 } }, info: "后排高AP Boss"
skills: { 6103: { uuid: 6103, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "后排高AP Boss"
},
6106: {
uuid: 6106, name: "亡灵首领-骑马战士", path: "mb6", fac: FacSet.MON, lv: 6, type: HType.Melee, monType: MonType.MeleeBoss, hp: 1800, ap: 20, speed: 130,
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow3].cd, ccd: 0 } }, info: "前排终极Boss, 最高HP+高速"
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.VerySlow].cd, ccd: 0 } }, info: "前排终极Boss, 最高HP+高速"
},

View File

@@ -0,0 +1,199 @@
# 《几何王国》(微信小游戏)英雄技能汇总
> **资料说明**:本作暂无官方公开的完整技能数据库,以下内容整理自玩家攻略站、公众号「英雄解析」系列、社区讨论等公开资料(来源见文末)。技能数值可能随版本更新调整,请以游戏内实际为准。游戏现有 45+ 英雄,本文收录主流热门英雄。
---
## 一、技能体系说明
每个英雄的技能按养成线逐步解锁 [^7^][^27^]
| 解锁节点 | 技能类型 |
|---|---|
| 初始 | 大招(主动技能) |
| 2 星 | 战技技能 |
| 5 星 | 强化技能 |
| 8 星 | 特技技能 |
| 12 星 | 属性技能 |
| 16 星 | 强化技能 |
| 觉醒 | 一觉 ~ 四觉(部分为通用技能池) |
| 神器 | 紫 / 黄 / 红 / 彩 四档神器加成 |
---
## 二、热门英雄详细技能
### 1. 黑暗骑士(神话 · 前排主坦,版本必备)
- **大招「暗光之盾」**:释放无视控制;获得 8% 最大生命值的护盾并转化为生命(持续 7 秒),其中 5% 作用于队友;提供 20% 减速抗性 [^18^]
- **缠绕(死亡缠绕)**:普攻有 25% 几率对全场血量最低的目标施放——敌方目标受到 220%+10% 神器增强)真实伤害,友方目标回复等量生命 [^18^][^75^]
- **暗黑盾**:解除控制,且附带击退效果 [^18^]
- **神器「霜之暗斧」**:叠加 3 层可沉默敌方前排并减速 [^18^]
- **彩色神器「邪恶光环」**+8% 移动速度光环 + 少量回复 [^18^]
- **觉醒**1 觉全队 +10% 魔抗3 觉阵亡后以尸体状态存活 3.5 秒,为后排争取输出时间 [^18^]
- **定位评价**:目前版本最全面的前排,治疗、推进、解控兼具,基本是必备品 [^18^]
### 2. 光明骑士(神话 · 前排辅助)
- **大招「光明守护」**:释放无视控制,清除全队异常状态;全队 +30% 防御、+10% 能量回复速度;每秒 35% 攻击力的治疗,持续 7 秒 [^18^]
- **圣洁之锤**120% 真实伤害,伤害的 70% 转化为自身治疗 [^18^]
- **光明洗礼**:每 6 秒触发一次,为 2 名队友解除异常状态(可解沉默、控制、减攻等)[^18^]
- **彩色神器「圣域守护」**:减少敌方 20% 攻速、10% 移速;每 10 秒给队友单体释放光明守护 [^18^]
### 3. 剑圣(神话 · 前排输出)
- **大招「剑刃风暴」**360% 物理伤害,击退所有角色,附带 6 秒 20% 重伤 [^68^]
- **战技「致命一击」**:普攻 35% 几率造成 1.5~2.2 倍真实伤害 [^68^]
- **分身斩**:每隔一段时间造成 5 次伤害 [^68^]
- **觉醒**1 觉将 30% 防御转换为攻击3 觉普攻随机降低对方攻击 [^68^]
- **评价**:免疫技能、群体击退,能聚集敌方后排利于己方 AOE但伤害多为打前排的"无效输出",定位偏功能性抗伤 + 击退 [^68^]
### 4. 酒仙(神话 · 为推进而生)
- **风暴战士**:清除负面效果,击退抗性 +100%,伤害减免 30%无法减免真伤75% 免控 [^68^]
- **雷霆一击**:普攻 30% 概率使范围内敌人全体减速并强力击退 [^68^]
- **酒雾火焰**:每隔一段时间造成伤害并附加 5 秒 50% 重伤效果 [^68^]
- **觉醒**1 觉普攻随机降低目标 6% 攻击或 10% 防御3 觉血量低于 50% 时5 秒免疫魔法或物理伤害 [^68^]
### 5. 剑豪(前排战士 · 针对射手/物理队)
作用:输出 + 沉默 + 减攻 + 减退抗 + 反伤BUFF/DEBUFF 全面,进可攻退可守,缺点是缺少硬控 [^7^]
- **大招「炼狱鬼斩」**:制造幻影在战场穿梭发动 6 次斩击,每次 360% 攻击的物理伤害并附带击退,每个目标至多承受 3 次,优先斩击物理伤害单位 [^7^]
- **2 星战技「三十六烦恼凤」**:每 10 秒释放剑气攻击敌方能量最高单位500% 物理伤害 + 沉默 1.5 秒(可抢第一波大招先手)[^7^]
- **5 星强化「强化斩击」**:大招命中攻击高于自己的目标时,降低其 15% 攻击 6 秒 [^7^]
- **8 星特技「罗生门」**:每累计损失 25% 最大生命,生成剑门屏障,抵消 18% 伤害 + 25% 反伤,持续 4 秒,无冷却(核心技能)[^7^]
- **12 星「武装色霸气」**:攻击 +10%、生命 +15% [^7^]
- **16 星「修罗之道」**:大招每次斩击额外造成 100% 真实伤害,并降目标 15% 击退抗性 5 秒 [^7^]
- **神器**:紫武(战技沉默结束后降目标 30% 回能 5 秒);黄武(罗生门反伤增至 55%、持续增至 6 秒);**红武「三千世界」**(入场 13 秒后目标承受伤害 +27%,自身受沉默时间 -60%);彩武(罗生门释放时立即回复 11% 最大生命 + 回能/回血加成)[^7^]
- **觉醒「空手接白刃」**:生命低于 55% 时,永久降低敌方全体 15% 物理伤害直至阵亡 [^7^]
- **培养建议**:神器最低门槛红色,推荐彩色,优先级高 [^7^]
### 6. 至尊宝(前排战士 · 功能性工具人)
作用:击退 + 眩晕 + 减防 + 受伤回血 + 扛伤;能抗能解控,劣势局有反打之力,但输出低 [^27^]
- **大招「大圣归来」**:召唤大圣虚影,期间自身攻击 +25%;乱棍打击 4 次 ×30% 物理伤害并击退,收尾一击 160% 物理伤害 + 2 秒眩晕 [^27^]
- **2 星战技「七伤拳」**:普攻 30% 概率降低目标 30% 防御,但 20% 概率降低自身 10% 防御 [^27^]
- **5 星强化「大圣之力」**:放大招时自身 +15% 击退效果 3 秒 [^27^]
- **8 星特技「般若波罗蜜」**:每 12 秒引导时空之力3 秒内受到伤害的 60% 转化为自身生命(不受重伤影响,转化总量不超过 12% 最大生命)[^27^]
- **12 星「五岳之尊」**:防御 +10%、生命 +15%**16 星「大圣之御」**:放大招时受伤 -30% 持续 6 秒 [^27^]
- **神器**:紫武(七伤拳触发概率 +10%);黄武(般若波罗蜜可作用于所有近战友军)[^27^]
### 7. 齐天大圣(神话 · T0 全能战士,人气主 C
- **主动技能「定海神针」**:对敌方前排造成范围眩晕效果,打乱敌方阵型 [^35^]
- 技能与普攻均可造成高额暴击伤害,后期伤害依然可观 [^35^][^33^]
- 强度榜长期位居 T0获取与培养成本低新手友好 [^33^][^37^]
### 8. 复仇者(神话 · T0 后排杀手)
- **「暗影突袭」**:可穿透威胁敌方后排关键目标 [^2^]
- 攻击敌人附加流血效果;获取成本较低,性价比极高 [^33^][^1^]
- 阵容中可搭配火枪,用斩击 + 狙击双重伤害秒杀敌方后排 [^14^]
### 9. 深渊女王 / 深渊女巫(法师 · 群体输出 + 控制)
- **大招「超声波」**:主力伤害 + 击退控制技能 [^60^]
- **2 星战技「剧毒利刃」**:普攻 30% 几率射出淬毒匕首200% 魔法伤害3 秒内降低目标 20% 击退抗性 [^28^]
- **5 星强化「强化声波」**:超声波击退效果 +30% [^28^]
- **8 星特技「女王尖啸」**:战斗第 20 秒发出尖啸,使所有敌方目标失去 18% 当前生命并眩晕 2 秒(每场仅 1 次,上限 350% 攻击)[^28^]
- **12 星「攻击增强」**:攻击 +25%**16 星「超级声波」**:超声波魔法伤害 +65%,被击中目标 5 秒内伤害结果 -25% [^28^]
### 10. 巫妖王(法师 · 当前版本核心)
- **核心能力是红武提供的"重伤"**——这种能力全英雄中稀缺,在爷爷、光明骑士遍地走的环境下接近必需品 [^3^]
- 彩神具有**多段控制**(连环霜冻,黑暗骑士与光明骑士都解控不过来)[^3^]
- 自带**减速和冰冻能力**,利于推进甚至壁咚,集控制、输出、重伤、推力于一体 [^3^]
- 常见搭配:巫妖王 + 黑暗骑士 + 光明骑士 + 战士(复仇者/哪吒/剑圣/船长)+ 暗器大师或影魔 [^3^]
### 11. 玉面狐妖(法师 · 真伤输出)
- 前排杀手队核心之一:真实伤害无视防御,配合爷爷的攻击与回能增益可快速消灭敌方前排 [^14^]
- 后期值得培养的法师主 C 之一 [^1^]
---
## 三、英雄觉醒技能表
以下为各英雄觉醒技能(一觉~四觉,含通用技能池)[^4^]
| 英雄 | 觉醒技能 |
|---|---|
| **斧小王** | 坚硬皮肤(受伤 +1.5% 防御,最多 12 层);梦魇肩甲;死亡守护;嗜血战斧(每次释放「淘汰之斧」回复 15% 已损生命) |
| **剑圣** | 吸血面罩(普攻伤害的 35% 转化为自身生命攻防转换30% 防御转攻击50% 几率降敌 5% 攻击 5 秒);梦魇肩甲;死亡守护 |
| **剑豪** | 空手接白刃(生命低于 55% 时永久降敌方全体 15% 物理伤害);梦魇肩甲;死亡守护;见闻色霸气(己方半场 +22% 击退抗性 / 敌方半场 +22% 控制抗性) |
| **酒仙** | 重拳(普攻随机降 6% 攻击或降 10% 防御 5 秒);元素抗性(血量首次低于 50%5 秒免疫物理或魔法伤害) |
| **哪吒** | 三味真火(攻击附加 3% 最大生命伤害,上限 150% 攻击);莲花护体(每损失 10% 生命 +10% 受伤回能) |
| **八神** | 狂暴之怒15% 伤害转化为自身生命);疯狂之血(血量低于 50%+5% 攻击 +5% 破甲) |
| **哀木涕** | 守护壁垒(开场获得 10% 最大生命护盾,自身与身后友军防御 +6%);战斗意志(每累计损失 20% 生命 +10% 受伤回能 +5% 格挡,最多 6 层) |
**通用觉醒技能**
- **梦魇肩甲**:受到攻击时,使攻击者 6 秒内对自己造成的伤害降低 2%(最多 3 层)[^4^]
- **死亡守护**:自身死亡时,为血量最低的友军回复 10% 最大生命值 [^4^]
---
## 四、其他英雄技能速览
| 英雄 | 定位 | 技能特点 |
|---|---|---|
| 骷髅王 | 前排/输出 | 大招对敌方全体施加诅咒 + 暴击伤害,通用性强 [^33^] |
| 月之女 | 输出 | 爆发能力极强,技能持续叠加伤害,每次释放输出更高 [^33^][^47^] |
| 潮壮壮 | 前排/控制 | 技能命中造成沉默让敌人无法放技能攻防兼备泛用性强PVP 必备且不太吃练度 [^33^][^47^] |
| 火枪 | 射手 | 「狙击」致命打击敌方后排,与复仇者斩击配合可双重秒杀后排 [^14^] |
| 船长 | 战士 | 幽灵船、舰船突袭:高额伤害 + 大幅击退,暴力推进队核心 [^14^] |
| 术士 | 辅助 | 地狱火有强大推进能力并可作前排分摊伤害;技能带减能、减疗、减速 [^14^] |
| 海拉 | 法师 | 技能带减能、减疗、沉默,控制折磨队核心 [^14^] |
| 沉默 | 辅助 | 技能带减能、沉默效果 [^14^] |
| 疾风忍者 | 前排 | 技能带减能、沉默效果 [^14^] |
| 铁扇公主 | 法师 | 推进 + 以自身为中心约 2 个人物身位的光环 [^68^] |
| 神罗战士 / 李白 | 战士 | 带真实伤害,无视防御,前排杀手 [^14^] |
| 人鱼公主 | 辅助 | 提供控制,并为全队增加攻击力加成,提升队伍输出 [^1^][^39^] |
| 莫莫 | 辅助 | 为队友提供减防支持,提升队伍生存与输出 [^1^] |
| 月光使者 | 辅助 | 黄武可用,开荒期过渡英雄 [^3^] |
| 爷爷(葫芦爷爷) | 辅助 | 为队友回能 + 加攻击,强化核心输出伤害 [^14^] |
| 暗器大师 / 影魔 | 射手 | 巫妖王体系最推荐的射手位 [^3^] |
---
## 五、英雄强度榜(参考)
综合多个攻略站的强度评价 [^33^][^37^][^34^]
- **T0**:复仇者、齐天大圣(另有榜单列入影刃、月之女)
- **T1**:骷髅王、月之女、绿巨人
- **T1.5**:剑圣
- **T2**:潮壮壮、暗器大师、矮人飞机、双头龙
- **T3**:光明骑士、术士(注:此榜为旧版评价,当前版本光明骑士、术士在特色阵容中仍有重要地位 [^14^]
**后期值得培养的主 C 推荐** [^1^]
- 战士:船长、黑暗骑士、复仇者、剑圣、神罗战士、白牛
- 辅助:冰女、小鹿、光明骑士、琴音仙女、术士、月光使者、沉默
- 射手:火枪、影魔、骷髅射手、暗器大师
- 法师:巫妖王、玉面狐妖、海拉、铁扇公主、深渊女王
---
## 参考来源
[^1^]: [几何王国游戏攻略/钓鱼/鱼缸搭配/英雄推荐 — 灯塔码铺](https://blog.share888.top/note/game/jihewangguo/index.html)
[^2^]: [《几何王国》——快速养成,满满成就!— 小米游戏中心](https://game.xiaomi.com/viewpoint/1585024444_1751347565577_100)
[^3^]: [《几何王国》该如何确定"终极"阵容和一些杂谈 — 雷电模拟器](https://www.ldmnq.com/0/zixun/1028749.html)
[^4^]: [几何王国英雄觉醒技能表 — 7724游戏](http://www.7724.com/jhwg/news/188085.html)
[^7^]: [【几何王国】英雄解析--剑豪 — 微信公众号](http://mp.weixin.qq.com/s?__biz=MzkxMjU1NTA2NA==&mid=2247485616&idx=1&sn=50f23d36776ee8d25f5916dee600caf7)
[^14^]: [《几何王国》新英雄与新玩法背景下,如何搭配适应版本的多样阵容 — 雷电模拟器](https://m.ldmnq.com/0/zixun/1028757.html)
[^18^]: [觉醒后英雄强度分析-前排篇I— 4399](https://a.4399.cn/gl/50173882_361641.html)
[^27^]: [【几何王国】英雄解析--至尊宝 — 微信公众号](http://mp.weixin.qq.com/s?__biz=MzkxMjU1NTA2NA==&mid=2247485630&idx=1&sn=5df2e8c053ab873e78ecfae5db7dfcb3)
[^28^]: [《几何王国》英雄攻略深渊女巫 — 百度贴吧](https://tieba.baidu.com/p/9105304613)
[^33^]: [几何王国角色强度排行 — 3DM手游](https://shouyou.3dmgame.com/gl/517771.html)
[^34^]: [几何王国角色排行表大全2025英雄强度排名 — 7724游戏](http://m.7724.com/jhwg/news/183870.html)
[^35^]: [几何王国社区 — 小米游戏中心](https://game.xiaomi.com/gamePost/62405456)
[^37^]: [几何王国角色强度排行 — 游侠手游](https://m.ali213.net/news/gl2404/1370787.html)
[^39^]: [《几何王国》新手进阶全攻略 — 百度文库](https://word.baidu.com/view/e9324c26b8d126fff705cc1755270722192e5990.html)
[^47^]: [几何王国最强英雄推荐 t0英雄强度排行 — 16手游网](http://www.16shouyou.com/gl/34278.html)
[^60^]: [深渊女王的三个阶段分别是什么?— 百度贴吧·几何王国吧](https://tieba.baidu.com/p/9646144609)
[^68^]: [《几何王国》觉醒后英雄强度分析-前排篇I— 雷电模拟器](https://m.ldmnq.com/0/zixun/1028753.html)
[^75^]: [几何王国绝顶英雄主推2024 — 悟极手游网](https://www.wjmplastics.com/article/223.html)

View File

@@ -17,6 +17,7 @@ import { mLogger } from "../common/Logger";
import { SkillTriggerHelper } from "./SkillTriggerHelper";
import { getMonsterGoldDrop } from "../map/RogueConfig";
import { MissionEconomy } from "../map/MissionEconomy";
import { MoveComp } from "./MoveComp";
/** 最终伤害数据接口
* 用于封装一次攻击计算的所有结果数据
@@ -194,6 +195,17 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
if (targetView) {
targetView.do_atked(damage, isCrit, damageEvent.s_uuid, knockbackExtra);
targetView.playEnd(skillConf.endAnm);
// 击退位移下沉到 MoveSystem直接写入 knockbackVelocity由 MoveSystem 每帧衰减并叠加位移
const moveComp = target.get(MoveComp);
if (moveComp) {
const dist = FightSet.BACK_RANG + knockbackExtra;
const isHero = TAttrsComp.fac === FacSet.HERO;
// 击退初速度0.1 秒时间常数衰减,总位移约等于 dist
const knockbackSpeed = dist * 16;
moveComp.knockbackVelocity = isHero ? -knockbackSpeed : knockbackSpeed;
}
if (isFrost) {
TAttrsComp.toFrost();
targetView.in_iced(FightSet.FROST_TIME);

View File

@@ -415,38 +415,10 @@ export class HeroViewComp extends CCComp {
this.showDamage(damage, isCrit);
}
private isBackingUp: boolean = false; // 🔥 添加后退状态标记
//后退
back(distance: number = 0) {
// 🔥 防止重复调用后退动画
if (this.isBackingUp) return;
this.isBackingUp = true; // 🔥 设置后退状态
if (this.model.fac == FacSet.MON) {
// 基础击退距离,加上额外的距离强化
let dist = FightSet.BACK_RANG + distance;
let tx = this.node.position.x + dist;
if (tx > 320) tx = 320;
tween(this.node)
.to(0.1, { position: v3(tx, this.node.position.y, 0) })
.call(() => {
this.isBackingUp = false; // 🔥 动画完成后重置状态
})
.start();
}
if (this.model.fac == FacSet.HERO) {
let dist = 5 + distance;
let tx = this.node.position.x - dist;
if (tx < -320) tx = -320;
tween(this.node)
.to(0.1, { position: v3(tx, this.node.position.y, 0) })
.call(() => {
this.isBackingUp = false; // 🔥 动画完成后重置状态
})
.start();
}
// 击退位移由 MoveSystem 统一处理,视图层只负责触发,不直接操作 position
// 具体击退速度由 HeroAtkSystem 在伤害结算后写入 MoveComp.knockbackVelocity
}
// 伤害计算和战斗逻辑已迁移到 HeroBattleSystem

View File

@@ -28,6 +28,8 @@ export class MoveComp extends ecs.Comp {
baseY: number = 0;
/** 出生序,用于同条件渲染排序稳定 */
spawnOrder: number = 0;
/** 击退速度(像素/秒),受击瞬间由 HeroAtkSystem 赋值MoveSystem 每帧指数衰减至 0 */
knockbackVelocity: number = 0;
reset() {
this.direction = 1;
@@ -35,6 +37,7 @@ export class MoveComp extends ecs.Comp {
this.moving = true;
this.baseY = 0;
this.spawnOrder = 0;
this.knockbackVelocity = 0;
}
}
@@ -82,11 +85,25 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
return;
}
/** 所有移动都锁定在 baseY避免出现漂移 */
/** 所有移动都锁定在 baseY避免出现"漂移" */
if (view.node.position.y !== move.baseY) {
view.node.setPosition(view.node.position.x, move.baseY, 0);
}
/** 击退位移:每帧叠加 knockbackVelocity 并指数衰减,与推进解耦 */
if (Math.abs(move.knockbackVelocity) > 0.01) {
const newX = view.node.position.x + move.knockbackVelocity * this.dt;
const clampedX = this.clampByFacBoundary(newX, model.fac);
if (Math.abs(clampedX - view.node.position.x) > 0.01) {
view.node.setPosition(clampedX, view.node.position.y, 0);
}
// 时间常数 τ=0.1s0.1 秒衰减到约 37%0.3 秒衰减到约 5%,总位移 ≈ v0 * 0.0632
move.knockbackVelocity *= Math.exp(-10 * this.dt);
if (Math.abs(move.knockbackVelocity) < 0.01) {
move.knockbackVelocity = 0;
}
}
/** 准备阶段:双方原地待命,不推进不索敌 */
if (!smc.mission.in_fight) {
this.clearCombatTarget(model);
@@ -146,7 +163,7 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
const dist = Math.abs(selfX - enemyX);
const attackRange = model.dis;
/** 近战贴身作战:攻击距离 dis(100) 大于技能范围(60),推进到与敌人相隔 60 才停下,保证技能可命中且不过度贴身 */
const stopRange = model.type === 0 ? 80 : attackRange;
const stopRange = model.type === 0 ? 60 : attackRange;
const inRange = dist <= stopRange;
if (inRange) {

View File

@@ -14,9 +14,10 @@
* 3. RogueSpawningEngine - 生成引擎(基础属性 × 可调系数)
*
* 核心公式(基础属性 × 可调系数):
* 怪 hp = HeroInfo 基础hp × MON_HP_MULBoss 额外 × BOSS_HP_BONUS_MUL
* 怪物 ap = HeroInfo 基础ap × MON_AP_MUL
* 怪物基础面板与 1 级英雄持平(近战镜像 hp300/ap22/cd1.8),默认系数校准为
* 怪 hp = HeroInfo 基础hp × MON_HP_MUL,小怪 ap = HeroInfo 基础ap × MON_AP_MUL
* Boss 基础面板固定为初始英雄 2 倍强度BOSS_BASE_HP/BOSS_BASE_AP与小怪共用同一套系数
* 场上 Boss 恰好为小怪 2 倍强度(如需额外压场可调 BOSS_HP_BONUS_MUL
* 小怪基础面板与 1 级英雄持平(近战镜像 hp300/ap22/cd1.8),默认系数校准为
* 整场战斗3 英雄 vs 4 小怪 + 1 Boss双方对砍 ≈ WAVE_DURATION(30s)。
* 手感微调只改 MON_HP_MUL / MON_AP_MUL / BOSS_HP_BONUS_MUL 三个系数即可。
*/
@@ -40,8 +41,14 @@ export const MON_HP_MUL = 2.6;
/** 怪物攻击可调系数:最终 ap = HeroInfo 基础ap × MON_AP_MUL。
* 0.9 使 4 小怪+1 Boss 的总 DPS ≈ 2030s 恰好磨光 3 英雄总血量≈600 */
export const MON_AP_MUL = 0.9;
/** Boss 血量额外加成(在 MON_HP_MUL 之上乘算,突出压场定位) */
export const BOSS_HP_BONUS_MUL = 1.6;
/** Boss 基础面板 = 初始英雄基准hp300/ap22× 2 倍强度,
* 不读取 Boss HeroInfo 的差异化高基础值,避免数值膨胀 */
export const BOSS_BASE_HP = 600;
export const BOSS_BASE_AP = 44;
/** Boss 血量额外加成(在 MON_HP_MUL 之上乘算,默认 1.0 表示不再额外膨胀,保留作压场微调旋钮) */
export const BOSS_HP_BONUS_MUL = 1.0;
/** 战斗超时(秒):超过后强制结算整局(残留怪销毁并扣留存分) */
export const BATTLE_TIMEOUT = 90;
@@ -398,7 +405,8 @@ export class RogueSpawningEngine {
monsters.push(this.makeBoss());
}
// 属性缩放:基础属性 × 可调系数Boss 血量额外加成),校准目标双方对砍 ≈ 30s
// 属性缩放:基础属性 × 可调系数Boss 基础面板已是英雄 2 倍BOSS_HP_BONUS_MUL 默认 1.0
// 校准目标Boss 场上强度恰为小怪 2 倍,双方对砍 ≈ 30s
for (const m of monsters) {
m.hp = Math.max(1, Math.round(m.hp * MON_HP_MUL * (m.isBoss ? BOSS_HP_BONUS_MUL : 1)));
m.ap = Math.max(1, Math.round(m.ap * MON_AP_MUL));
@@ -451,7 +459,7 @@ export class RogueSpawningEngine {
return monsters;
}
/** 生成 Boss基础血量带最终战加成,属性随后由总强度框架统一缩放) */
/** 生成 Boss基础面板固定为初始英雄 2 倍强度,属性随后由 generateBossCombo 统一系数缩放) */
private makeBoss(): GeneratedMonster {
const isMeleeBoss = Math.random() < 0.5;
const type = isMeleeBoss ? MonType.MeleeBoss : MonType.LongBoss;
@@ -463,15 +471,11 @@ export class RogueSpawningEngine {
}
const uuid = uuids[Math.floor(Math.random() * uuids.length)];
const baseInfo = HeroInfo[uuid];
const baseHp = baseInfo ? baseInfo.hp : 500;
const baseAp = baseInfo ? baseInfo.ap : 30;
return {
uuid,
type,
hp: Math.round(baseHp * BOSS_HP_BONUS_MUL),
ap: baseAp,
hp: BOSS_BASE_HP,
ap: BOSS_BASE_AP,
isBoss: true,
spawnIndex: 0, // 占位值,由 generateBossCombo 统一分配
batch: 0,

View File

@@ -74,6 +74,9 @@ export class SMoveDataComp extends ecs.Comp {
/** 是否自动销毁(到达目标后) */
autoDestroy: boolean = true;
/** 直线飞行距离(仅 runType=linear 生效,<=0 时延长终点飞出屏幕) */
distance: number = 0;
reset() {
this.startPos.set(0, 0, 0);
@@ -98,6 +101,7 @@ export class SMoveDataComp extends ecs.Comp {
this.startTime = 0;
this.totalTime = 0;
this.autoDestroy = true;
this.distance = 0;
}
/**

View File

@@ -83,21 +83,36 @@ export class SMoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
const direction = new Vec3();
Vec3.subtract(direction, originTargetPos, adjustedStartPos);
// 延长终止点统一消亡点的x坐标为 +-500
const targetX = moveComp.scale > 0 ? 500 : -500;
let targetY = originTargetPos.y;
let adjustedTargetPos: Vec3;
if (moveComp.distance > 0) {
// 距离模式:沿起始指向目标的方向飞行固定距离
if (direction.length() < 0.01) {
// 起终点重合时退化为按朝向水平飞行
direction.set(moveComp.scale > 0 ? 1 : -1, 0, 0);
}
direction.normalize();
adjustedTargetPos = v3(
adjustedStartPos.x + direction.x * moveComp.distance,
adjustedStartPos.y + direction.y * moveComp.distance,
originTargetPos.z
);
} else {
// 延长终止点统一消亡点的x坐标为 +-500
const targetX = moveComp.scale > 0 ? 500 : -500;
let targetY = originTargetPos.y;
if (Math.abs(direction.x) > 0.01) {
const slope = direction.y / direction.x;
targetY = adjustedStartPos.y + slope * (targetX - adjustedStartPos.x);
if (Math.abs(direction.x) > 0.01) {
const slope = direction.y / direction.x;
targetY = adjustedStartPos.y + slope * (targetX - adjustedStartPos.x);
}
adjustedTargetPos = v3(
targetX,
targetY,
originTargetPos.z
);
}
const adjustedTargetPos = v3(
targetX,
targetY,
originTargetPos.z
);
moveComp.startPos.set(adjustedStartPos);
moveComp.targetPos.set(adjustedTargetPos);
node.setPosition(adjustedStartPos);

View File

@@ -184,6 +184,7 @@ export class Skill extends ecs.Entity {
// 从SkillView获取移动参数位置初始化由SMoveSystem统一处理
sMoveCom.atk_x = SView.atk_x;
sMoveCom.atk_y = SView.atk_y;
sMoveCom.distance = SView.distance;
if (SView.endType === EType.timeEnd) {
let sTimeCom = this.get(StimeDataComp);

View File

@@ -38,6 +38,10 @@ export class SkillView extends CCComp {
@property({ type: CCFloat, slide: true, range: [0, 30, 0.1], tooltip: "timeEnd 持续时间(秒)" })
time: number = 0;
/** 直线飞行距离(像素),仅 runType=linear 时生效(由 prefab 配置,<=0 时保持默认飞出屏幕的行为) */
@property({ type: CCFloat, slide: true, range: [0, 2000, 10], tooltip: "直线飞行距离(仅 linear 生效)" })
distance: number = 0;
private debugMode: boolean = false;
anim: Animation = null;