diff --git a/assets/script/game/common/config/TalSet.ts b/assets/script/game/common/config/TalSet.ts index b02e7d23..9a4f90d4 100644 --- a/assets/script/game/common/config/TalSet.ts +++ b/assets/script/game/common/config/TalSet.ts @@ -9,10 +9,11 @@ export enum TriType { ATK = 2, //普通攻击触发 DMG = 3, // 受伤触发 SKILL = 4, // 技能触发 - HPL = 5, // 失去生命值触发 - HPA = 6, // 获得生命值触发 - INIT = 7, // 初始触发,如:多1个技能 - DEAD = 8 // 基于死亡触发 + MAX = 5, // 必杀触发 + HPL = 6, // 失去生命值触发 + HPA = 7, // 获得生命值触发 + INIT = 8, // 初始触发,如:多1个技能 + DEAD = 9, // 基于死亡触发 } diff --git a/assets/script/game/hero/SACastSystem.ts b/assets/script/game/hero/SACastSystem.ts index 6aeae731..9549d64d 100644 --- a/assets/script/game/hero/SACastSystem.ts +++ b/assets/script/game/hero/SACastSystem.ts @@ -143,11 +143,12 @@ export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdat // 1. 播放施法动画 heroView.playSkillEffect(s_uuid); /**********************天赋处理*************************************************************************/ - // 2. 更新攻击类型的天赋触发值 + // 2. 更新攻击类型的天赋触发值,技能和必杀级 if(casterEntity.has(TalComp)){ const talComp = casterEntity.get(TalComp); if (hset === HSSet.atk) talComp.updateCur(TriType.ATK); - if (hset != HSSet.atk) talComp.updateCur(TriType.SKILL); + if (hset === HSSet.skill) talComp.updateCur(TriType.SKILL); + if (hset === HSSet.max) talComp.updateCur(TriType.MAX); } /**********************天赋处理*************************************************************************/ // 获取目标位置 @@ -156,41 +157,52 @@ export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdat console.warn("[SACastSystem] 没有找到有效目标"); return false; } - // 2. 延迟创建技能实体(等待动画) + // 2.1 普通攻击逻辑 if (hset === HSSet.atk){ let delay = 0.3 let ext_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG); heroView.scheduleOnce(() => { this.createSkill(s_uuid, heroView,targets,ext_dmg); }, delay); + //风怒wfuny 只针对 普通攻击起效 + if (heroAttrs.useCountTal(TalEffet.WFUNY)){ + let ext2_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG); + let delay = 0.3 + heroView.playSkillEffect(s_uuid); + //需要再添加 风怒动画 + heroView.scheduleOnce(() => { + this.createSkill(s_uuid, heroView,targets,ext2_dmg); + },delay); + } } + // 2.2 技能攻击逻辑 if(hset === HSSet.skill){ let delay = 0.3 let ext_dmg = heroAttrs.useCountValTal(TalEffet.SKILL_DMG); heroView.scheduleOnce(() => { this.createSkill(s_uuid, heroView,targets,ext_dmg); }, delay); + // 双技能 只针对 技能起效 + if(heroAttrs.useCountTal(TalEffet.D_SKILL)){ + let ext2_dmg = heroAttrs.useCountValTal(TalEffet.SKILL_DMG); + let delay = 0.3 + heroView.playSkillEffect(s_uuid); + //需要再添加 双技能动画 + heroView.scheduleOnce(() => { + this.createSkill(s_uuid, heroView,targets,ext2_dmg); + },delay); + } } - - //风怒wfuny 只针对 普通攻击起效 - if (hset === HSSet.atk && heroAttrs.useCountTal(TalEffet.WFUNY)){ + // 2.3 必杀技能逻辑 + if(hset === HSSet.max){ let delay = 0.3 heroView.playSkillEffect(s_uuid); - //需要再添加 风怒动画 - heroView.scheduleOnce(() => { - this.createSkill(s_uuid, heroView,targets); - },delay); - } - - // 双技能 只针对 技能起效 - if(hset === HSSet.skill && heroAttrs.useCountTal(TalEffet.D_SKILL)){ - let delay = 0.3 - heroView.playSkillEffect(s_uuid); - //需要再添加 双技能动画 + //需要再添加 最大伤害动画 heroView.scheduleOnce(() => { this.createSkill(s_uuid, heroView,targets); },delay); } + return true;