From 8f983d0dab26becb6b85dbbb616fde21c3ad8f02 Mon Sep 17 00:00:00 2001 From: yyl <yyl> Date: 星期三, 20 八月 2025 18:40:23 +0800 Subject: [PATCH] 125 【战斗】战斗系统 --- Main/System/Battle/SkillEffect/NormalSkillEffect.cs | 93 ++++++++++++++++------------------------------ 1 files changed, 33 insertions(+), 60 deletions(-) diff --git a/Main/System/Battle/SkillEffect/NormalSkillEffect.cs b/Main/System/Battle/SkillEffect/NormalSkillEffect.cs index 0e8d860..369704d 100644 --- a/Main/System/Battle/SkillEffect/NormalSkillEffect.cs +++ b/Main/System/Battle/SkillEffect/NormalSkillEffect.cs @@ -14,75 +14,48 @@ public NormalSkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack) : base(_skillConfig, _caster, _tagUseSkillAttack) { - + } - + // 鎶�鑳藉姩浣滅涓�甯� + // 涓嶇敤鐞嗕細鍥炶皟 public override void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit) { - - // // 鐗规晥鐐稿紑鍦ㄩ樀瀹圭殑涓棿鐨勫洖璋� - // Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHitLineUpCenter = (_hitIndex, _hurtList) => - // { - // _onHit?.Invoke(_hitIndex, tagUseSkillAttack.HurtList.ToList()); - // }; - - // if (skillConfig.effectAnchor == SkillEffectAnchor.Caster) - // { - // CastInTarget(caster.heroGo.transform as RectTransform, onHitLineUpCenter); - // } - // else if (skillConfig.effectAnchor == SkillEffectAnchor.Target) - // { - // if (tagUseSkillAttack == null || tagUseSkillAttack.HurtList.Length <= 0) - // { - // Debug.LogError("娌℃湁鐩爣 tagUseSkillAttack.HurtList.Length <= 0"); - // _onHit?.Invoke(0, default); - // return; - // } - - // foreach (var hurt in tagUseSkillAttack.HurtList) - // { - // BattleObject target = caster.battleField.battleObjMgr.GetBattleObject((int)hurt.ObjID); - // if (target == null) - // { - // Debug.LogError("鐗规晥鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID); - // continue; - // } - - // CastInTarget(target.heroGo.transform as RectTransform, (index, list) => _onHit(0, new List<HB427_tagSCUseSkill.tagSCUseSkillHurt>() { hurt })); - // } - // } - // else if (skillConfig.effectAnchor == SkillEffectAnchor.AlliesCenter) - // { - // CastInTarget(caster.battleField.GetTeamNode(caster.Camp), onHitLineUpCenter); - // } - // else if (skillConfig.effectAnchor == SkillEffectAnchor.EnemiesCenter) - // { - // CastInTarget(caster.battleField.GetTeamNode(caster.Camp == BattleCamp.Blue ? BattleCamp.Red : BattleCamp.Blue), onHitLineUpCenter); - // } - // else - // { - // Debug.LogError("鏈煡鐨勬妧鑳界壒鏁堥敋鐐圭被鍨�: " + skillConfig.effectAnchor); - // } + // 鎾斁鎶�鑳界壒鏁� + BattleEffectPlayer battleEffectPlayer = caster.battleField.battleEffectMgr.PlayEffect( + caster.ObjID, + skillConfig.EffectId, + caster.heroGo.transform + ); } - protected void CastInTarget(RectTransform target, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit) - { - // EffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.EffectId, caster.effectNode); - - // RectTransform effectTrans = effectPlayer.transform as RectTransform; - - // _onHit?.Invoke(0, null); - - // // 閿�姣佽嚜韬笂鐨勭壒鏁堝簲璇ユ槸绛夌壒鏁堟挱鏀惧畬姣曚箣鍚� - // // caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.EffectId, effectPlayer); - // // 鎾斁鍙楀嚮鐗规晥 - // caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.ExplotionEffectId, target); - - } public override void Run() { + base.Run(); + } + public override void OnMiddleFrameEnd(int times, int hitIndex) + { + for (int i = 0; i < tagUseSkillAttack.HurtList.Length; i++) + { + var hurt = tagUseSkillAttack.HurtList[i]; + BattleObject target = caster.battleField.battleObjMgr.GetBattleObject((int)hurt.ObjID); + if (target == null) + { + Debug.LogError("鐗规晥鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID); + continue; + } + + caster.battleField.battleEffectMgr.PlayEffect(target.ObjID, skillConfig.ExplosionEffectId, target.heroGo.transform); + caster.battleField.battleEffectMgr.PlayEffect(target.ObjID, skillConfig.ExplosionEffect2, target.heroGo.transform); + } + + onHit?.Invoke(hitIndex, tagUseSkillAttack.HurtList.ToList()); + } + + public override void OnMiddleFrameStart(int times) + { + } } \ No newline at end of file -- Gitblit v1.8.0