fix(英雄技能系统): 修复怪物释放技能时消耗蓝量的问题
修改技能释放逻辑,当单位是怪物时使用无限蓝量进行检查且不扣除蓝量
This commit is contained in:
@@ -8,7 +8,7 @@ import { Skill } from "../skill/Skill";
|
|||||||
import { smc } from "../common/SingletonModuleComp";
|
import { smc } from "../common/SingletonModuleComp";
|
||||||
import { TalComp } from "./TalComp";
|
import { TalComp } from "./TalComp";
|
||||||
import { TalEffet, TriType } from "../common/config/TalSet";
|
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";
|
import { Attrs } from "../common/config/HeroAttrs";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -46,8 +46,9 @@ export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdat
|
|||||||
// 检查是否正在攻击(只有攻击时才释放技能)
|
// 检查是否正在攻击(只有攻击时才释放技能)
|
||||||
if (!heroAttrs.is_atking) return;
|
if (!heroAttrs.is_atking) return;
|
||||||
|
|
||||||
// 获取所有可施放的技能
|
// 🔥 怪物不消耗蓝,使用Infinity作为mp参数
|
||||||
const readySkills = skills.getReadySkills(heroAttrs.mp);
|
const mpForCheck = heroAttrs.fac === FacSet.MON ? Infinity : heroAttrs.mp;
|
||||||
|
const readySkills = skills.getReadySkills(mpForCheck);
|
||||||
if (readySkills.length === 0) return;
|
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);
|
const castSucess = this.executeCast(e, skill.s_uuid, heroView,hset);
|
||||||
// 5. 扣除资源和重置CD
|
// 5. 扣除资源和重置CD
|
||||||
if (castSucess) {
|
if (castSucess) {
|
||||||
heroAttrs.mp -= skill.cost;
|
// 🔥 怪物不消耗蓝
|
||||||
|
if (heroAttrs.fac !== FacSet.MON) {
|
||||||
|
heroAttrs.mp -= skill.cost;
|
||||||
|
}
|
||||||
skills.resetCD(skill.s_uuid);
|
skills.resetCD(skill.s_uuid);
|
||||||
}
|
}
|
||||||
return castSucess;
|
return castSucess;
|
||||||
|
|||||||
Reference in New Issue
Block a user