diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index 466cb168..41785462 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -358,7 +358,7 @@ export const SkillSet: Record = { }, // 法师/辅助群体攻击大招 6200: { - uuid: 6200, name: "火球术", sp_name: "maxm1", icon: "31-Fire", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "max0", + uuid: 6200, name: "火球术", sp_name: "maxm1", icon: "31-Fire", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "max1", DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote, RType: RType.bezier, EType: EType.collision, bezier_start_y: 20, bezier_mid_y: 140, bezier_arc: 1.05, info: "一个大火球", }, @@ -385,12 +385,12 @@ export const SkillSet: Record = { //============================= ====== 辅助技能 回合技能 ====== ========================== 6301: { - uuid: 6301, name: "护盾", sp_name: "buff_wind", icon: "28-Electric-Wave", TGroup: TGroup.Self, readyAnm: "up_blue", endAnm: "", act: "atk", + uuid: 6301, name: "护盾", sp_name: "buff_wind", icon: "28-Electric-Wave", TGroup: TGroup.Self, readyAnm: "up_blue", endAnm: "", act: "max1", DTType: DTType.single, kind: SkillKind.Shield, ap: 30, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support, shield_duration: 7, RType: RType.fixed, EType: EType.animationEnd, info: "获得施法者最大生命30%的护盾, 持续7秒", }, 6302: { - uuid: 6302, name: "治疗", sp_name: "buff_wind", icon: "g_priest_zldy_skill", TGroup: TGroup.Team, readyAnm: "up_green", endAnm: "", act: "atk", + uuid: 6302, name: "治疗", sp_name: "buff_wind", icon: "g_priest_zldy_skill", TGroup: TGroup.Team, readyAnm: "up_green", endAnm: "", act: "max1", DTType: DTType.single, kind: SkillKind.Heal, ap: 300, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support, RType: RType.fixed, EType: EType.animationEnd, info: "治疗伙伴/自己", }, diff --git a/assets/script/game/hero/HeroAnmComp.ts b/assets/script/game/hero/HeroAnmComp.ts index 513875c1..c4da55b0 100644 --- a/assets/script/game/hero/HeroAnmComp.ts +++ b/assets/script/game/hero/HeroAnmComp.ts @@ -80,9 +80,15 @@ export default class HeroAnmComp extends Component { if (this.maxPlaying) return this.anmcon.play(`atk0`) } - max() { + /** + * 播放大招动画。 + * Why 带 name:技能表 act 直接配置 clip 名(战士技 "max0"、法系技 "max1"), + * 固定播 max0 会导致法系大招动画永远播不出。 + * @param name 大招 clip 名("max0"/"max1"),maxPlaying guard 已同时覆盖两者 + */ + max(name: string = "max0") { if (this.maxPlaying) return - this.anmcon.play("max0") + this.anmcon.play(name) } play(anm: string = "") { if (anm === "") return diff --git a/assets/script/game/hero/HeroSpine.ts b/assets/script/game/hero/HeroSpine.ts index e99d09e6..8175fb0f 100644 --- a/assets/script/game/hero/HeroSpine.ts +++ b/assets/script/game/hero/HeroSpine.ts @@ -48,14 +48,16 @@ export class HeroSpine extends Component { atk() { this.anm.atk() } - max(){ - this.anm.max() + max(name: string = "max0"){ + this.anm.max(name) } play(name:string){ + // 技能表 act 配置的是 clip 名(max0/max1),不能用全等匹配 "max" + if(name.startsWith("max")){ + this.max(name) + return + } switch(name){ - case "max": - this.max() - break case "atk": this.atk() break @@ -65,7 +67,7 @@ export class HeroSpine extends Component { case "move": this.move() break - } + } } do_atked(){ this.anm.atked() diff --git a/assets/script/game/hero/HeroViewComp.ts b/assets/script/game/hero/HeroViewComp.ts index bd3762b4..ad23fd2c 100644 --- a/assets/script/game/hero/HeroViewComp.ts +++ b/assets/script/game/hero/HeroViewComp.ts @@ -487,11 +487,14 @@ export class HeroViewComp extends CCComp { playSkillAnm(act: string = "") { mLogger.log(this.debugMode, 'HeroViewComp', '[heroview] act' + act,) if (act === "") return; + // 技能表大招 act 配置为 clip 名("max0"/"max1"),必须前缀匹配, + // 全等匹配 "max" 会落空导致大招动画不播、isCastingMax 不置位 + if (act.startsWith("max")) { + this.isCastingMax = true; + this.as.max(act) + return + } switch (act) { - case "max": - this.isCastingMax = true; - this.as.max() - break case "atk": this.as.atk() break