From ea4e25ceca21484cbb422b4ce49ec6bc1220441f Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 08 五月 2026 16:43:22 +0800
Subject: [PATCH] android1
---
Main/System/Battle/SkillEffect/SkillEffect.cs | 47 +++++++++++++++++++++++++++++++++++++----------
1 files changed, 37 insertions(+), 10 deletions(-)
diff --git a/Main/System/Battle/SkillEffect/SkillEffect.cs b/Main/System/Battle/SkillEffect/SkillEffect.cs
index 5acf824..5231a17 100644
--- a/Main/System/Battle/SkillEffect/SkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/SkillEffect.cs
@@ -4,17 +4,35 @@
public class SkillEffect
{
+ protected SkillBase skillBase;
protected SkillConfig skillConfig;
+ protected SkillSkinConfig skillSkinConfig;
protected BattleObject caster;
protected HB427_tagSCUseSkill tagUseSkillAttack;// 鐩爣鍒楄〃
protected bool isFinish = false;
+ protected bool isFinishFrameEnd = false;
+
protected Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit;
- public SkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
+ // 缂撳瓨HurtList鐨凩ist鍓湰锛岄伩鍏嶆瘡娆nHit鍥炶皟鏃堕噸澶峊oList鍒嗛厤
+ private List<HB427_tagSCUseSkill.tagSCUseSkillHurt> _hurtListCache;
+ protected List<HB427_tagSCUseSkill.tagSCUseSkillHurt> HurtListAsList
{
+ get
+ {
+ if (_hurtListCache == null)
+ _hurtListCache = new List<HB427_tagSCUseSkill.tagSCUseSkillHurt>(tagUseSkillAttack.HurtList);
+ return _hurtListCache;
+ }
+ }
+
+ public SkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, SkillSkinConfig _skillSkinConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
+ {
+ skillBase = _skillBase;
skillConfig = _skillConfig;
+ skillSkinConfig = _skillSkinConfig;
caster = _caster;
tagUseSkillAttack = _tagUseSkillAttack;
}
@@ -23,15 +41,15 @@
public virtual void Play(Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> _onHit)
{
onHit = _onHit;
- if (skillConfig.EffectId > 0)
+ if (skillSkinConfig.EffectId > 0)
{
- caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.EffectId, caster.heroRectTrans, caster.Camp);
+ caster.battleField.battleEffectMgr.PlayEffect(caster, skillSkinConfig.EffectId, caster.GetRectTransform(), caster.Camp, caster.GetModelScale());
}
- if (skillConfig.EffectId2 > 0)
+ if (skillSkinConfig.EffectId2 > 0)
{
- caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.EffectId2, caster.heroRectTrans, caster.Camp);
+ caster.battleField.battleEffectMgr.PlayEffect(caster, skillSkinConfig.EffectId2, caster.GetRectTransform(), caster.Camp, caster.GetModelScale());
}
- }
+ }
public virtual void Run()
{
@@ -45,10 +63,10 @@
public virtual void OnMiddleFrameStart(int times)
{
- if (skillConfig.MStartEffectId <= 0)
+ if (skillSkinConfig.MStartEffectId <= 0)
return;
// 涓憞鍥哄畾鐗规晥
- caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.MStartEffectId, caster.heroGo.transform, caster.Camp);
+ caster.battleField.battleEffectMgr.PlayEffect(caster, skillSkinConfig.MStartEffectId, caster.GetTransform(), caster.Camp, caster.GetModelScale());
}
/// <summary>
@@ -64,16 +82,25 @@
/// </summary>
public virtual void OnFinalFrameEnd()
{
-
+ isFinishFrameEnd = true;
}
public virtual bool IsFinished()
{
- return isFinish;
+ return isFinish && isFinishFrameEnd;
}
+
+#if UNITY_EDITOR
+ /// <summary>鍗℃璇婃柇鐢細鎵撳嵃 SkillEffect 鍐呴儴 isFinish / isFinishFrameEnd 绛夋爣蹇椾綅銆�</summary>
+ public virtual string DumpState()
+ {
+ return $"{GetType().Name} isFinish={isFinish} isFinishFrameEnd={isFinishFrameEnd}";
+ }
+#endif
public virtual void ForceFinished()
{
isFinish = true;
+ isFinishFrameEnd = true;
}
}
\ No newline at end of file
--
Gitblit v1.8.0