重构了 技能系统,还需要完善
This commit is contained in:
@@ -7,6 +7,8 @@ import { FacSet } from '../common/config/BoxSet';
|
||||
import { smc } from '../common/SingletonModuleComp';
|
||||
import { CCComp } from 'db://oops-framework/module/common/CCComp';
|
||||
import { HeroAttrsComp } from './HeroAttrsComp';
|
||||
import { HeroSkillsComp } from './HeroSkills';
|
||||
import { CastSkillRequestComp } from './HSkillSystem';
|
||||
import { SkillEnt } from '../skill/SkillEnt';
|
||||
import { Attrs } from '../common/config/HeroAttrs';
|
||||
import { TalComp } from './TalComp';
|
||||
@@ -29,24 +31,30 @@ export class SkillConComp extends CCComp {
|
||||
this.HeroEntity=this.HeroView.ent
|
||||
}
|
||||
|
||||
/**
|
||||
* ⚠️ 注意:此方法已废弃
|
||||
* 技能CD更新和施法逻辑已迁移到 HSkillSystem(SkillCDSystem + SkillAutocastSystem)
|
||||
* 保留此方法仅用于手动触发技能(如玩家点击技能按钮)
|
||||
*/
|
||||
update(dt: number) {
|
||||
if(!smc.mission.play||smc.mission.pause) return
|
||||
if(!this.HeroView.isStun() && !this.HeroView.isFrost()) {
|
||||
let skills=this.HeroView.skills
|
||||
for(let i=0;i<skills.length;i++){
|
||||
skills[i].cd += dt;
|
||||
if(skills[i].cd > skills[i].cd_max&&this.HeroView.mp >= skills[i].cost){
|
||||
|
||||
if(SkillSet[skills[i].uuid].SType==SType.damage&&this.HeroView.is_atking){
|
||||
this.castSkill(SkillSet[skills[i].uuid])
|
||||
this.HeroView.skills[i].cd = 0
|
||||
this.HeroView.mp -= skills[i].cost
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
// 已由 SkillCDSystem 和 SkillAutocastSystem 处理
|
||||
// 此方法可以删除或改为手动施法的入口
|
||||
}
|
||||
|
||||
/**
|
||||
* 手动施放技能(玩家点击技能按钮)
|
||||
* @param skillIndex 技能索引
|
||||
*/
|
||||
manualCastSkill(skillIndex: number) {
|
||||
if (!this.HeroEntity) return;
|
||||
|
||||
// 选择目标
|
||||
const targets = this.selectTargets(1);
|
||||
|
||||
// ✅ 通过添加标记组件请求施法
|
||||
const request = this.HeroEntity.add(CastSkillRequestComp) as CastSkillRequestComp;
|
||||
request.skillIndex = skillIndex;
|
||||
request.targetPositions = targets;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user