From bf526fbe50b127665dd89587884d74aff2a0240e Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 15 十月 2025 10:11:16 +0800
Subject: [PATCH] 125 战斗 子弹目标包含自己时,隐藏这个以自己为目标的单个子弹

---
 Main/System/Battle/SkillEffect/BulletSkillEffect.cs |    8 ++++++++
 Main/Component/UI/Effect/BattleEffectPlayer.cs      |   41 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/Main/Component/UI/Effect/BattleEffectPlayer.cs b/Main/Component/UI/Effect/BattleEffectPlayer.cs
index a26950c..09a6e93 100644
--- a/Main/Component/UI/Effect/BattleEffectPlayer.cs
+++ b/Main/Component/UI/Effect/BattleEffectPlayer.cs
@@ -35,6 +35,44 @@
 
     public float speedRate = 1.5f;
 
+    private float m_Alpha = 1f;
+
+    public float Alpha
+    {
+        get
+        {
+            return m_Alpha;
+        }
+        set
+        {
+            if (value == m_Alpha)
+                return;
+
+            m_Alpha = value;
+            OnAlphaChanged();
+        }
+    }
+
+    private void OnAlphaChanged()
+    {
+        if (spineComp != null)
+        {
+            var skeleton = spineComp.Skeleton;
+            skeleton.A = Alpha;
+            spineComp.LateUpdate();
+        }
+
+        for (int i = 0; i < rendererList.Count; i++)
+        {
+            var renderer = rendererList[i];
+            if (renderer != null && renderer.material != null && renderer.material.HasProperty("_Color"))
+            {
+                Color color = renderer.material.color;
+                color.a = Alpha;
+                renderer.material.color = color;
+            }
+        }
+    }
 
     [Header("鎾斁瀹屾瘯绔嬪嵆鍥炴敹")]
     public bool isReleaseImmediately = false;  //鐣岄潰鐗规晥涓�鑸笉闇�瑕佽嚜鎴戦攢姣侊紝璺熼殢鐣岄潰鎴栬�呯埗瀵硅薄閿�姣佸氨琛�
@@ -276,6 +314,7 @@
         {
             PlayUnityEffect();
         }
+        OnAlphaChanged();
     }
 
     protected void PlaySpineEffect()
@@ -293,6 +332,8 @@
         spineComp.Initialize(true);
         spineComp.timeScale = speedRate;
 
+        spineComp.skeleton.A = Alpha;
+
         spineAnimationState = spineComp.state;
         spineAnimationState.Complete -= OnSpineAnimationComplete;
         spineAnimationState.Complete += OnSpineAnimationComplete;
diff --git a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
index 7d04a7a..8ba225e 100644
--- a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
@@ -329,6 +329,10 @@
     {
         BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
 
+        bool shotToSelf = target.ObjID == caster.ObjID;
+
+        effectPlayer.Alpha = shotToSelf ? 0f : 1f;
+
         var tempOrder = order;
 
         var bulletCurve = BulletCurveFactory.CreateBulletCurve(caster, skillConfig, effectPlayer, target.heroRectTrans,
@@ -370,6 +374,10 @@
     {
         BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
 
+        bool shotToSelf = target.ObjID == caster.ObjID;
+
+        effectPlayer.Alpha = shotToSelf ? 0f : 1f;
+
         var bulletCurve = BulletCurveFactory.CreateBulletCurve(caster, skillConfig, effectPlayer, target.heroRectTrans, tagUseSkillAttack.HurtList.ToList(), bulletIndex, (index, hitList) =>
         {
             foreach (var hurt in hitList)

--
Gitblit v1.8.0