diff --git a/assets/script/game/hero/SACastSystem.ts b/assets/script/game/hero/SACastSystem.ts index d2dd076e..e968ec34 100644 --- a/assets/script/game/hero/SACastSystem.ts +++ b/assets/script/game/hero/SACastSystem.ts @@ -8,7 +8,7 @@ import { Skill } from "../skill/Skill"; import { smc } from "../common/SingletonModuleComp"; import { TalComp } from "./TalComp"; import { TalEffet, TriType } from "../common/config/TalSet"; -import { BoxSet } from "../common/config/GameSet"; +import { BoxSet, FacSet } from "../common/config/GameSet"; import { Attrs } from "../common/config/HeroAttrs"; /** @@ -46,8 +46,9 @@ export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdat // 检查是否正在攻击(只有攻击时才释放技能) if (!heroAttrs.is_atking) return; - // 获取所有可施放的技能 - const readySkills = skills.getReadySkills(heroAttrs.mp); + // 🔥 怪物不消耗蓝,使用Infinity作为mp参数 + const mpForCheck = heroAttrs.fac === FacSet.MON ? Infinity : heroAttrs.mp; + const readySkills = skills.getReadySkills(mpForCheck); if (readySkills.length === 0) return; // 选择第一个可施放的技能(支持伤害/治疗/护盾) @@ -87,7 +88,10 @@ export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdat const castSucess = this.executeCast(e, skill.s_uuid, heroView,hset); // 5. 扣除资源和重置CD if (castSucess) { - heroAttrs.mp -= skill.cost; + // 🔥 怪物不消耗蓝 + if (heroAttrs.fac !== FacSet.MON) { + heroAttrs.mp -= skill.cost; + } skills.resetCD(skill.s_uuid); } return castSucess;