释放技能动画 设定在技能参数中+伤害系统建立
This commit is contained in:
@@ -19,18 +19,21 @@ import { HeroInfo } from "../common/config/heroSet";
|
||||
import { Talents } from "../common/config/TalentSet";
|
||||
import { MonModelComp } from "./MonModelComp";
|
||||
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
|
||||
import { HeroSkillsComp } from "../skill/heroSkillsComp";
|
||||
/** 角色实体 */
|
||||
@ecs.register(`Monster`)
|
||||
export class Monster extends ecs.Entity {
|
||||
// 数据层
|
||||
MonModelComp!: MonModelComp;
|
||||
// 视图层
|
||||
HeroView!: HeroViewComp;
|
||||
|
||||
HeroModel!: MonModelComp;
|
||||
HeroView!: HeroViewComp;
|
||||
BattleMove!: BattleMoveComp;
|
||||
HeroSkills!: HeroSkillsComp;
|
||||
|
||||
protected init() {
|
||||
|
||||
|
||||
this.addComponents<ecs.Comp>(
|
||||
BattleMoveComp,
|
||||
HeroSkillsComp,
|
||||
MonModelComp
|
||||
);
|
||||
}
|
||||
|
||||
destroy(): void {
|
||||
@@ -99,25 +102,42 @@ export class Monster extends ecs.Entity {
|
||||
hv.dexp=hero.dexp;
|
||||
|
||||
this.add(hv);
|
||||
// 初始化多个技能组件
|
||||
const skillsComp = this.get(HeroSkillsComp);
|
||||
// 正确初始化已有技能
|
||||
hero.skills.forEach(skillId => {
|
||||
this.addSkill(skillId); // 使用addSkill方法确保初始化
|
||||
});
|
||||
|
||||
// 初始化移动参数
|
||||
const move = this.get(BattleMoveComp);
|
||||
move.direction = 1; // 向右移动
|
||||
move.targetX = 800; // 右边界
|
||||
}
|
||||
set_ratio(uuid:number){
|
||||
let ratio=1;
|
||||
switch (HeroInfo[uuid].level) {
|
||||
case 2:
|
||||
ratio=1.05
|
||||
break;
|
||||
case 3:
|
||||
ratio=1.1
|
||||
break;
|
||||
case 4:
|
||||
ratio=1.15
|
||||
break;
|
||||
case 5:
|
||||
ratio=1.2
|
||||
break;
|
||||
default:
|
||||
ratio=1
|
||||
// 添加技能
|
||||
public addSkill(skillId: number) {
|
||||
const comp = this.get(HeroSkillsComp);
|
||||
if (comp.skills.indexOf(skillId) === -1) {
|
||||
comp.skills.push(skillId);
|
||||
comp.cooldowns.set(skillId, 0);
|
||||
comp.counters.set(skillId, 0);
|
||||
console.log(`技能${skillId}初始化完成`,
|
||||
'当前cooldowns:', comp.cooldowns,
|
||||
'当前counters:', comp.counters);
|
||||
}
|
||||
return ratio;
|
||||
}
|
||||
|
||||
// 移除技能
|
||||
public removeSkill(skillId: number) {
|
||||
const comp = this.get(HeroSkillsComp);
|
||||
comp.skills = comp.skills.filter(id => id !== skillId);
|
||||
}
|
||||
|
||||
public levelUp() {
|
||||
// ...升级逻辑...
|
||||
const comp = this.get(HeroSkillsComp);
|
||||
comp.skills.forEach(skillId => {
|
||||
comp.resetCooldown(skillId);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user