Merge branch 'card0515' of git.eoxnet.com:pan/pixelheros into card0515

This commit is contained in:
panw
2026-05-25 15:47:59 +08:00
10 changed files with 74 additions and 41 deletions

View File

@@ -79,12 +79,3 @@ export enum GameEvent {
RemoveSkillBox = "RemoveSkillBox", // 技能盒销毁事件 RemoveSkillBox = "RemoveSkillBox", // 技能盒销毁事件
} }
/** 触发技能类型枚举 */
export enum SkillTriggerType {
Call = 'call', // 召唤时触发
Dead = 'dead', // 死亡时触发
FStart = 'fstart', // 战斗开始时触发
FEnd = 'fend', // 战斗结束时触发
Atking = 'atking', // 攻击时触发
Atked = 'atked' // 受击时触发
}

View File

@@ -75,16 +75,40 @@ export enum MonStart {
/** /**
call 召唤后触发 降临 * 特殊触发技能类型
dead 死亡后触发 遗志 */
fstart 战斗开始 先手 export enum SkillTriggerType {
fend 战斗结束 终战 Call = "call", // 召唤后触发 降临
field 驻场 光环 Dead = "dead", // 死亡后触发 遗志
atking 攻击后触发 追击 FStart = "fstart", // 战斗开始 先手
atked 受击后触发 反击 FEnd = "fend", // 战斗结束 终战
revive 复活触发 涅槃 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]: "攻击后时:",
[SkillTriggerType.Atked]: "受击后时:",
[SkillTriggerType.Revive]: "复活时:",
}
/** /**
* 英雄/怪物基础信息接口 * 英雄/怪物基础信息接口
@@ -101,14 +125,14 @@ export interface heroInfo {
type: HType; // 攻击定位(近战/中程/远程) type: HType; // 攻击定位(近战/中程/远程)
hp: number; // 生命值上限 hp: number; // 生命值上限
ap: number; // 攻击力 ap: number; // 攻击力
call?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 召唤后触发的技能配置 [SkillTriggerType.Call]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 召唤后触发的技能配置
dead?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 死亡后触发的技能配置 [SkillTriggerType.Dead]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 死亡后触发的技能配置
fstart?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 战斗开始时释放的技能配置 [SkillTriggerType.FStart]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 战斗开始时释放的技能配置
fend?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 战斗结束时释放的技能配置 [SkillTriggerType.FEnd]?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 战斗结束时释放的技能配置
field?:number[]; // 驻场技能uuid列表英雄在场时对全局生效 [SkillTriggerType.Field]?:number[]; // 驻场技能uuid列表英雄在场时对全局生效
atking?:{s_uuid:number, t_num:number, overrides?: SkillOverrides}[]; // 普通攻击后触发的技能配置s_uuid: 技能id, t_num: 触发所需的普攻次数 [SkillTriggerType.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: 触发所需的受击次数 [SkillTriggerType.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 等级对复活次数的影响 [SkillTriggerType.Revive]?:{s_uuid:number,r_num:number,upr:number}; // 复活技能配置s_uuid: 技能id, r_num: 触发所需的复活次数, upr 等级对复活次数的影响
dis?: number; // 攻击距离(像素) dis?: number; // 攻击距离(像素)
speed?: number; // 移动速度(像素/秒) speed?: number; // 移动速度(像素/秒)
skills: Record<number, HSkillInfo> ; // 携带技能ID列表 skills: Record<number, HSkillInfo> ; // 携带技能ID列表

View File

@@ -6,7 +6,8 @@ import { HeroAttrsComp } from "./HeroAttrsComp";
import { HeroViewComp } from "./HeroViewComp"; import { HeroViewComp } from "./HeroViewComp";
import { BoxSet, FacSet, FightSet, IndexSet } from "../common/config/GameSet"; import { BoxSet, FacSet, FightSet, IndexSet } from "../common/config/GameSet";
import { HeroInfo, HeroPos, resolveFormationTargetX } from "../common/config/heroSet"; import { HeroInfo, HeroPos, resolveFormationTargetX } from "../common/config/heroSet";
import { GameEvent, SkillTriggerType } from "../common/config/GameEvent"; import { GameEvent } from "../common/config/GameEvent";
import { SkillTriggerType } from "../common/config/heroSet";
import { SkillTriggerHelper } from "./SkillTriggerHelper"; import { SkillTriggerHelper } from "./SkillTriggerHelper";
import { Attrs} from "../common/config/HeroAttrs"; import { Attrs} from "../common/config/HeroAttrs";
import { MoveComp } from "./MoveComp"; import { MoveComp } from "./MoveComp";

View File

@@ -9,7 +9,8 @@ import { DamageQueueComp, DamageEvent } from "./DamageQueueComp";
import { smc } from "../common/SingletonModuleComp"; import { smc } from "../common/SingletonModuleComp";
import { HeroInfo } from "../common/config/heroSet"; import { HeroInfo } from "../common/config/heroSet";
import { oops } from "db://oops-framework/core/Oops"; import { oops } from "db://oops-framework/core/Oops";
import { GameEvent, SkillTriggerType } from "../common/config/GameEvent"; import { GameEvent } from "../common/config/GameEvent";
import { SkillTriggerType } from "../common/config/heroSet";
import { FieldSkillType } from "../common/config/SkillSet"; import { FieldSkillType } from "../common/config/SkillSet";
import { mLogger } from "../common/Logger"; import { mLogger } from "../common/Logger";

View File

@@ -1,5 +1,5 @@
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { HeroDisVal, HeroInfo, HSkillInfo, HType } from "../common/config/heroSet"; import { HeroDisVal, HeroInfo, HSkillInfo, HType, SkillTriggerType } from "../common/config/heroSet";
import { mLogger } from "../common/Logger"; import { mLogger } from "../common/Logger";
import { Timer } from "db://oops-framework/core/common/timer/Timer"; import { Timer } from "db://oops-framework/core/common/timer/Timer";
import { FacSet, FightSet } from "../common/config/GameSet"; import { FacSet, FightSet } from "../common/config/GameSet";
@@ -36,13 +36,13 @@ export class HeroAttrsComp extends ecs.Comp {
skills: Record<number, HSkillInfo> = {}; skills: Record<number, HSkillInfo> = {};
// ==================== 触发类技能 ==================== // ==================== 触发类技能 ====================
call?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; [SkillTriggerType.Call]?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
dead?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; [SkillTriggerType.Dead]?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
fstart?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; [SkillTriggerType.FStart]?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
fend?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; [SkillTriggerType.FEnd]?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
atking?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; [SkillTriggerType.Atking]?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
atked?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[]; [SkillTriggerType.Atked]?: { s_uuid: number; t_num: number; overrides?: SkillOverrides }[];
revive?: {s_uuid: number, r_num: number, upr: number}; [SkillTriggerType.Revive]?: {s_uuid: number, r_num: number, upr: number};
// ==================== 特殊属性 ==================== // ==================== 特殊属性 ====================
critical: number = 0; // 暴击率 critical: number = 0; // 暴击率

View File

@@ -8,7 +8,8 @@ import { HeroAttrsComp } from "./HeroAttrsComp";
import { HeroViewComp } from "./HeroViewComp"; import { HeroViewComp } from "./HeroViewComp";
import { MoveComp } from "./MoveComp"; import { MoveComp } from "./MoveComp";
import { MonMoveComp } from "./MonMoveComp"; import { MonMoveComp } from "./MonMoveComp";
import { GameEvent, SkillTriggerType } from "../common/config/GameEvent"; import { GameEvent } from "../common/config/GameEvent";
import { SkillTriggerType } from "../common/config/heroSet";
import { SkillTriggerHelper } from "./SkillTriggerHelper"; import { SkillTriggerHelper } from "./SkillTriggerHelper";
/** 怪物实体:负责怪物对象池复用、属性初始化、入场动画与回收 */ /** 怪物实体:负责怪物对象池复用、属性初始化、入场动画与回收 */
@ecs.register(`Monster`) @ecs.register(`Monster`)

View File

@@ -9,7 +9,8 @@ import { HeroDisVal, HeroInfo, HType } from "../common/config/heroSet";
import { Attrs } from "../common/config/HeroAttrs"; import { Attrs } from "../common/config/HeroAttrs";
import { BoxSet, FacSet, FightSet } from "../common/config/GameSet"; import { BoxSet, FacSet, FightSet } from "../common/config/GameSet";
import { oops } from "db://oops-framework/core/Oops"; import { oops } from "db://oops-framework/core/Oops";
import { GameEvent, SkillTriggerType } from "../common/config/GameEvent"; import { GameEvent } from "../common/config/GameEvent";
import { SkillTriggerType } from "../common/config/heroSet";
import { SkillTriggerHelper } from "./SkillTriggerHelper"; import { SkillTriggerHelper } from "./SkillTriggerHelper";
import { MissionEconomy } from "../map/MissionEconomy"; import { MissionEconomy } from "../map/MissionEconomy";

View File

@@ -1,5 +1,6 @@
import { oops } from "db://oops-framework/core/Oops"; import { oops } from "db://oops-framework/core/Oops";
import { GameEvent, SkillTriggerType } from "../common/config/GameEvent"; import { GameEvent } from "../common/config/GameEvent";
import { SkillTriggerType } from "../common/config/heroSet";
import { HeroAttrsComp } from "./HeroAttrsComp"; import { HeroAttrsComp } from "./HeroAttrsComp";
import { HeroViewComp } from "./HeroViewComp"; import { HeroViewComp } from "./HeroViewComp";
import { FacSet } from "../common/config/GameSet"; import { FacSet } from "../common/config/GameSet";

View File

@@ -62,7 +62,8 @@ export class HInfoComp extends CCComp {
/** 英雄名字节点 */ /** 英雄名字节点 */
@property(Node) @property(Node)
Name_node=null! Name_node=null!
/** 高品质边框 */
/** 技能信息节点 */
@property(Node) @property(Node)
info_node=null! info_node=null!
@@ -89,6 +90,8 @@ export class HInfoComp extends CCComp {
private previewPoolLv: number = 1; private previewPoolLv: number = 1;
/** 英雄名字标签缓存引用 */ /** 英雄名字标签缓存引用 */
private nameLabel: Label | null = null; private nameLabel: Label | null = null;
/** 技能信息标签缓存引用 */
private infoLabel: Label | null = null;
/** AP 标签缓存引用 */ /** AP 标签缓存引用 */
private apLabel: Label | null = null; private apLabel: Label | null = null;
/** AP 加成标签缓存引用 */ /** AP 加成标签缓存引用 */
@@ -271,6 +274,12 @@ export class HInfoComp extends CCComp {
this.nameLabel.string = this.model.hero_name ?? ""; this.nameLabel.string = this.model.hero_name ?? "";
} }
// ---- 技能信息标签 ----
if (this.infoLabel) {
const heroData = HeroInfo[heroUuid];
this.infoLabel.string = heroData?.info ?? "";
}
// ---- 数值标签 ---- // ---- 数值标签 ----
if (this.apLabel) { if (this.apLabel) {
const currentAp = Math.max(0, Math.floor(this.model.ap ?? 0)); const currentAp = Math.max(0, Math.floor(this.model.ap ?? 0));
@@ -317,6 +326,9 @@ export class HInfoComp extends CCComp {
if (!this.nameLabel && this.Name_node) { if (!this.nameLabel && this.Name_node) {
this.nameLabel = this.Name_node.getComponent(Label) || this.Name_node.getComponentInChildren(Label); this.nameLabel = this.Name_node.getComponent(Label) || this.Name_node.getComponentInChildren(Label);
} }
if (!this.infoLabel && this.info_node) {
this.infoLabel = this.info_node.getComponent(Label) || this.info_node.getComponentInChildren(Label);
}
if (!this.apLabel && this.ap_node) { if (!this.apLabel && this.ap_node) {
this.apLabel = this.ap_node.getChildByName("val")?.getComponent(Label) || null; this.apLabel = this.ap_node.getChildByName("val")?.getComponent(Label) || null;
this.apPlusLabel = this.ap_node.getChildByName("plus")?.getComponent(Label) || null; this.apPlusLabel = this.ap_node.getChildByName("plus")?.getComponent(Label) || null;

View File

@@ -33,7 +33,8 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
import { smc } from "../common/SingletonModuleComp"; import { smc } from "../common/SingletonModuleComp";
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops"; import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
import { HeroAttrsComp } from "../hero/HeroAttrsComp"; import { HeroAttrsComp } from "../hero/HeroAttrsComp";
import { GameEvent, SkillTriggerType } from "../common/config/GameEvent"; import { GameEvent } from "../common/config/GameEvent";
import { SkillTriggerType } from "../common/config/heroSet";
import { HeroViewComp } from "../hero/HeroViewComp"; import { HeroViewComp } from "../hero/HeroViewComp";
import { SkillTriggerHelper } from "../hero/SkillTriggerHelper"; import { SkillTriggerHelper } from "../hero/SkillTriggerHelper";
import { UIID } from "../common/config/GameUIConfig"; import { UIID } from "../common/config/GameUIConfig";