feat(hero): 添加技能特效播放接口并优化英雄资源

- 在 HeroViewComp 中添加 palayBuff、palayReady、playEnd 方法用于播放技能特效
- 删除未使用的 buff 预制体(maxy、foot_jiasu)及其元数据
- 调整 heal 预制体的位置、尺寸和动画参数以优化显示效果
- 简化多个英雄预制体结构,移除嵌套的 up 节点以提升性能
- 更新 SkillSet 配置,为技能添加 readyAnm 和 endAnm 字段支持
This commit is contained in:
walkpan
2026-03-14 15:45:10 +08:00
parent 6de3a105da
commit c7248fe32a
44 changed files with 4266 additions and 12684 deletions

View File

@@ -190,6 +190,8 @@ export interface SkillConfig {
speed:number, // 移动速度
with:number, // 宽度(暂时无用)
ready:number, // 前摇时间
readyAnm:string, // 前摇动画名称
endAnm:string, // 结束动画名称
EAnm:number, // 结束动画ID
DAnm:number, // 命中后动画ID
RType:RType, // 技能运行类型(直线/贝塞尔/固定起点/固定终点)
@@ -202,57 +204,57 @@ export interface SkillConfig {
}
export const SkillSet: Record<number, SkillConfig> = {
5000:{uuid:5000,name:"反伤",sp_name:"thorns",icon:"1168",TGroup:TGroup.Enemy,TType:TType.Frontline,act:"atk",DTType:DTType.single,
5000:{uuid:5000,name:"反伤",sp_name:"thorns",icon:"1168",TGroup:TGroup.Enemy,TType:TType.Frontline,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single,
ap:0,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
buffs:[],debuffs:[],info:"反伤",
},
// ========== 基础攻击 ========== 6001-6099
6001: {
uuid:6001,name:"近战攻击",sp_name:"atk_s1",icon:"1026",TGroup:TGroup.Enemy,TType:TType.Frontline,act:"atk",DTType:DTType.single,
uuid:6001,name:"近战攻击",sp_name:"atk_s1",icon:"1026",TGroup:TGroup.Enemy,TType:TType.Frontline,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single,
ap:100,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
buffs:[],debuffs:[],info:"对前方目标造成100%攻击的伤害",
},
6002: {
uuid:6002,name:"远程攻击",sp_name:"b_arrow_blue",icon:"1135",TGroup:TGroup.Enemy,TType:TType.Frontline,act:"atk",DTType:DTType.single,
uuid:6002,name:"远程攻击",sp_name:"b_arrow_blue",icon:"1135",TGroup:TGroup.Enemy,TType:TType.Frontline,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single,
ap:100,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
buffs:[],debuffs:[],info:"对前方单个目标造成100%攻击的伤害",
},
6003: {
uuid:6003,name:"远程攻击",sp_name:"m_water_ball_1",icon:"1126",TGroup:TGroup.Enemy,TType:TType.Frontline,act:"atk",DTType:DTType.single,
uuid:6003,name:"远程攻击",sp_name:"m_water_ball_1",icon:"1126",TGroup:TGroup.Enemy,TType:TType.Frontline,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single,
ap:100,hit_num:1,hit:2,hitcd:0.3,speed:720,with:90,
ready:8001,EAnm:0,DAnm:9001,RType:RType.linear,EType:EType.collision,
buffs:[],debuffs:[],info:"对前方单个目标造成100%攻击的伤害",
},
6004: {
uuid:6004,name:"蓄力一击",sp_name:"atk_s4",icon:"1173",TGroup:TGroup.Enemy,TType:TType.Frontline,act:"atk",DTType:DTType.single,
uuid:6004,name:"蓄力一击",sp_name:"atk_s4",icon:"1173",TGroup:TGroup.Enemy,TType:TType.Frontline,readyAnm:"",endAnm:"",act:"max",DTType:DTType.single,
ap:100,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
buffs:[],debuffs:[],info:"对前方目标造成150%攻击的伤害",
},
//============================= ====== 基础buff ====== ========================== 6100-6199
6100: {
uuid:6100,name:"治疗",sp_name:"buff_wind",icon:"1292",TGroup:TGroup.Self,TType:TType.LowestHP,act:"atk",DTType:DTType.single,
uuid:6100,name:"治疗",sp_name:"buff_wind",icon:"1292",TGroup:TGroup.Self,TType:TType.LowestHP,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single,
ap:30,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
kind:SkillKind.Heal,buffs:[],debuffs:[],info:"治疗自己,回复30%最大生命值",
},
6101:{
uuid:6101,name:"魔法盾",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Self,TType:TType.LowestHP,act:"atk",DTType:DTType.single,
uuid:6101,name:"魔法盾",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Self,TType:TType.LowestHP,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single,
ap:30,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
kind:SkillKind.Shield,buffs:[],debuffs:[],info:"获得30%最大生命值的护盾,持续60秒",
},
6102:{
uuid:6102,name:"强壮",sp_name:"buff_wind",icon:"3036",TGroup:TGroup.Team,TType:TType.HighestAP,act:"atk",DTType:DTType.single,
uuid:6102,name:"强壮",sp_name:"buff_wind",icon:"3036",TGroup:TGroup.Team,TType:TType.HighestAP,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single,
ap:30,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
kind:SkillKind.Support,buffs:[10001],debuffs:[],info:"增加目标10%攻击力,持续30秒",
},
6103:{
uuid:6103,name:"群体强壮",sp_name:"buff_wind",icon:"3036",TGroup:TGroup.Team,TType:TType.HighestAP,act:"atk",DTType:DTType.range,
uuid:6103,name:"群体强壮",sp_name:"buff_wind",icon:"3036",TGroup:TGroup.Team,TType:TType.HighestAP,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.range,
ap:30,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
kind:SkillKind.Support,buffs:[10011],debuffs:[],info:"增加目标10%攻击力,持续30秒",
@@ -260,14 +262,14 @@ export const SkillSet: Record<number, SkillConfig> = {
// ========== 怪物基础技能 ========== 6200-6299
6201: {
uuid:6201, name:"怪物近战", sp_name:"atk_s1", icon:"3036",
TGroup:TGroup.Enemy, TType:TType.Frontline, act:"atk", DTType:DTType.single,
TGroup:TGroup.Enemy, TType:TType.Frontline, readyAnm:"",endAnm:"",act:"atk", DTType:DTType.single,
ap:100, hit_num:1, hit:1, hitcd:0.2, speed:0, with:0, // 怪物近战特殊距离
ready:0, EAnm:0, DAnm:9001, RType:RType.fixed, EType:EType.animationEnd,
buffs:[], debuffs:[], info:"怪物基础近战攻击",
},
6203: {
uuid:6203, name:"怪物射击", sp_name:"arrow_1", icon:"3039",
TGroup:TGroup.Enemy, TType:TType.Frontline, act:"atk", DTType:DTType.single,
TGroup:TGroup.Enemy, TType:TType.Frontline, readyAnm:"",endAnm:"",act:"atk", DTType:DTType.single,
ap:80, hit_num:1, hit:1, hitcd:0.2, speed:800, with:0, // 怪物远程特殊距离
ready:0, EAnm:0, DAnm:9001, RType:RType.linear, EType:EType.collision,
buffs:[], debuffs:[], info:"怪物基础远程攻击",

View File

@@ -293,7 +293,30 @@ export class HeroViewComp extends CCComp {
shield_tip(absorbed: number) {
this.hp_tip(TooltipTypes.life, absorbed.toFixed(0));
}
public palayBuff(anm: string = ""){
if(anm==="") return;
var path = "game/skill/buff/" + anm;
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
node.parent = this.node;
}
public palayReady(anm: string = ""){
if(anm==="") return;
var path = "game/skill/ready/" + anm;
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
node.parent = this.node;
}
public playEnd(anm: string = ""){
if(anm==="") return;
var path = "game/skill/end/" + anm;
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
node.parent = this.node;
}
/** 治疗特效 */
private heathed() {
var path = "game/skill/buff/heathed";

View File

@@ -3,6 +3,8 @@ import { _decorator } from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { CardType } from "../common/config/CardSet";
import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
const { ccclass, property } = _decorator;
@@ -38,14 +40,15 @@ export class CardUseComp extends CCComp {
}
private executeCardEffectEntry(payload: CardUsePayload) {
const effectTag = this.getEffectEntryTag(payload.type);
const effectTag = this.getEffectEntryTag(payload);
mLogger.log(this.debugMode, "CardUseComp", "executeCardEffectEntry", payload);
mLogger.log(this.debugMode, "CardUseComp", "effect entry tag", effectTag);
}
private getEffectEntryTag(type: CardType): string {
switch (type) {
private getEffectEntryTag(used:CardUsePayload): string {
switch (used.type) {
case CardType.Hero:
oops.message.dispatchEvent(GameEvent.CallHero, used);
return "hero";
case CardType.Skill:
return "skill";

View File

@@ -55,6 +55,7 @@ export class MissionHeroCompComp extends CCComp {
}
/** 添加英雄 */
private addHero(uuid:number=1001) {
console.log("addHero uuid:",uuid)
let hero_pos=0
let hero = ecs.getEntity<Hero>(Hero);
let scale = 1