技能组件修改,由skillcom统一负责动画,只负责动画
This commit is contained in:
@@ -21,58 +21,40 @@ export class Skill extends ecs.Entity {
|
||||
this.remove(SkillCom);
|
||||
super.destroy();
|
||||
}
|
||||
load(pos: Vec3 = Vec3.ZERO,group:number,parent:Node,uuid:number=1001,
|
||||
ap:number =10,t_pos:Vec3 = null,is_crit:boolean=false,crit_add:number=0,hp:number=0,lv:number=1)
|
||||
{
|
||||
var path = "game/skills/"+SkillSet[uuid].sp_name;
|
||||
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
||||
console.log("load skill pos:",pos)
|
||||
var node = instantiate(prefab);
|
||||
if(SkillSet[uuid].with){node.parent = parent;t_pos=v3(0,0)}
|
||||
if(!SkillSet[uuid].with){node.parent = parent.parent;}
|
||||
|
||||
node.setPosition(pos)
|
||||
var sv = node.getComponent(SkillCom);
|
||||
if(group==BoxSet.MONSTER) {
|
||||
sv.scale=-1
|
||||
node.setScale(v3(sv.scale*node.scale.x,node.scale.y));
|
||||
}
|
||||
// let angle=0
|
||||
// if(SkillSet[uuid].angle){
|
||||
// angle = Math.atan2(t_pos.y,t_pos.x) * 180 / Math.PI;
|
||||
// if(t_pos.x<0){
|
||||
// angle+=180
|
||||
// }
|
||||
// }
|
||||
// sv.angle = angle;
|
||||
// console.log(group+" "+SkillSet[uuid].name+"angle:"+angle)
|
||||
sv.s_uuid = uuid;
|
||||
sv.s_name = SkillSet[uuid].name;
|
||||
sv.hero = SkillSet[uuid].hero;
|
||||
sv.lv=lv
|
||||
sv.ap = ap*SkillSet[uuid].ap/100; // 技能伤害
|
||||
sv.def = ap*SkillSet[uuid].def/100; // 技能伤害
|
||||
sv.apup = ap*SkillSet[uuid].apup/100; // 伤害增量
|
||||
sv.hp = hp*SkillSet[uuid].hp/100; // 回复hp增量
|
||||
sv.mhp = SkillSet[uuid].mhp/100; // hpmax增量 %
|
||||
sv.shield =SkillSet[uuid].shield; // 护甲增量
|
||||
sv.cd = SkillSet[uuid].cd;
|
||||
sv.tg = SkillSet[uuid].tg;
|
||||
sv.debtime = SkillSet[uuid].debtime;
|
||||
sv.debuff = SkillSet[uuid].debuff;
|
||||
sv.depb = SkillSet[uuid].depb;
|
||||
sv.derate = SkillSet[uuid].derate;
|
||||
sv.is_crit=is_crit
|
||||
sv.crit_add=crit_add
|
||||
// node.setScale(v3(node.scale.x*scale,node.scale.y))
|
||||
sv.speed=SkillSet[uuid].speed;
|
||||
sv.in_time=SkillSet[uuid].in;
|
||||
|
||||
sv.t_pos = t_pos; // 目标增量
|
||||
sv.type = SkillSet[uuid].type;
|
||||
sv.box_tag= BoxSet.SKILL_TAG;
|
||||
sv.box_group=group
|
||||
// console.log("load skill :",sv)
|
||||
this.add(sv);
|
||||
load(
|
||||
startPos: Vec3, // 起始位置
|
||||
group: number, // 阵营
|
||||
parent: Node, // 父节点
|
||||
uuid: number, // 技能ID
|
||||
targetPos: Vec3 // 目标位置
|
||||
) {
|
||||
const config = SkillSet[uuid];
|
||||
if (!config) return;
|
||||
|
||||
// 加载预制体
|
||||
const path = `game/skills/${config.sp_name}`;
|
||||
const prefab = oops.res.get(path, Prefab);
|
||||
const node = instantiate(prefab);
|
||||
|
||||
// 设置节点属性
|
||||
node.parent = parent;
|
||||
node.setPosition(startPos);
|
||||
|
||||
// 添加技能组件
|
||||
const skillComp = node.getComponent(SkillCom);
|
||||
this.add(skillComp);
|
||||
|
||||
// 初始化技能参数
|
||||
skillComp.animType = config.AnimType;
|
||||
skillComp.endType = config.endType;
|
||||
skillComp.speed = config.speed;
|
||||
skillComp.duration = config.in;
|
||||
skillComp.startPos = startPos.clone();
|
||||
skillComp.targetPos = targetPos.clone();
|
||||
skillComp.prefabName = config.sp_name;
|
||||
skillComp.group = group;
|
||||
|
||||
// 初始化动画名称
|
||||
skillComp.animName = config.animName; // 从配置获取动画名称
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user