From 89343a7a0909e5244a3b69c4db1294de4536243b Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期一, 15 十二月 2025 18:15:22 +0800
Subject: [PATCH] 262 幻境阁系统-客户端 新增仅适用武将解锁的头像和形象的红点移除规则

---
 Main/System/Battle/SkillEffect/BulletSkillEffect.cs |   68 ++++++++++++++++++++--------------
 1 files changed, 40 insertions(+), 28 deletions(-)

diff --git a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
index 77a1466..ee71f5e 100644
--- a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
@@ -172,7 +172,7 @@
     private void ShotToIndex(BattleCamp camp, int targetIndex, int bulletIndex)
     {
         RectTransform targetTransform = caster.battleField.GetTeamNode(camp, targetIndex);
-        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
+        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
 
         RectTransform effectTrans = effectPlayer.transform as RectTransform;
 
@@ -186,8 +186,8 @@
 
             BattleCamp battleCamp = skillConfig.TagFriendly != 0 ? caster.Camp : caster.GetEnemyCamp();
             //  棣栧厛鏄洰鏍囪韩涓婄垎鐐�
-            PlayExplosionEffect(skillConfig.ExplosionEffectId, targetTransform, caster.Camp);
-            PlayExplosionEffect(skillConfig.ExplosionEffect2, targetTransform, caster.Camp);
+            PlayExplosionEffect(skillConfig.ExplosionEffectId, targetTransform, caster.Camp, 1f);
+            PlayExplosionEffect(skillConfig.ExplosionEffect2, targetTransform, caster.Camp, 1f);
 
             foreach (var hurt in hitList)
             {
@@ -198,8 +198,8 @@
                     continue;
                 }
 
-                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
-                PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
             }
 
             // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
@@ -328,7 +328,7 @@
 
     private void ScatterShot(BattleObject target, HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, int bulletIndex, int order)
     {
-        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
+        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
 
         bool shotToSelf = target.ObjID == caster.ObjID;
 
@@ -348,10 +348,10 @@
                     continue;
                 }
 
-                PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
-                PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
-                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
-                PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+                PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
             }
 
             // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
@@ -374,13 +374,15 @@
 
     protected void ShotToTarget(BattleObject target, int bulletIndex)
     {
-        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
+        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
 
         bool shotToSelf = target.ObjID == caster.ObjID;
 
         effectPlayer.Alpha = shotToSelf ? 0f : 1f;
 
         int bounceHitIndex = 0;
+
+        int tempBulletIndex = bulletIndex;
 
         var bulletCurve = BulletCurveFactory.CreateBulletCurve(caster, skillConfig, effectPlayer, target.heroRectTrans, tagUseSkillAttack.HurtList.ToList(), bulletIndex, (index, hitList) =>
         {
@@ -394,10 +396,10 @@
                 BattleObject targetObj = caster.battleField.battleObjMgr.GetBattleObject((int)hurt.ObjID);
                 if (targetObj != null)
                 {
-                    PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+                    PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
                 }
                 else
                 {
@@ -407,9 +409,17 @@
                 // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
                 onHit?.Invoke(index, new List<HB427_tagSCUseSkill.tagSCUseSkillHurt> { hurt });
 
-                if (bulletIndex == tagUseSkillAttack.HurtList.Length - 1)
+                if (bounceHitIndex >= tagUseSkillAttack.HurtList.Length)
                 {
                     caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.BulletEffectId, effectPlayer);
+                }
+
+                if (isFinish)
+                    return;
+
+                if (tempBulletIndex >= skillConfig.ActiveFrames.Length - 1 && bounceHitIndex >= hitList.Count)
+                {
+                    isFinish = true;
                 }
             }
             else
@@ -423,10 +433,10 @@
                         continue;
                     }
 
-                    PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+                    PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
                 }
 
                 // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
@@ -434,15 +444,17 @@
                 // 鍑讳腑灏遍攢姣佸瓙寮�
 
                 caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.BulletEffectId, effectPlayer);
+
+                if (isFinish)
+                    return;
+
+                if (bulletIndex >= skillConfig.ActiveFrames.Length - 1)
+                {
+                    isFinish = true;
+                }
             }
 
-            if (isFinish)
-                return;
 
-            if (bulletIndex >= skillConfig.ActiveFrames.Length - 1)
-            {
-                isFinish = true;
-            }
         });
 
         bulletCurves.Add(bulletCurve);
@@ -450,12 +462,12 @@
 
     
 
-    protected void PlayExplosionEffect(int effectId, Transform parent, BattleCamp camp)
+    protected void PlayExplosionEffect(int effectId, Transform parent, BattleCamp camp, float _scaleRatio)
     {
         if (effectId <= 0)
             return;
 
-        var effect = caster.battleField.battleEffectMgr.PlayEffect(caster, effectId, parent, camp);
+        var effect = caster.battleField.battleEffectMgr.PlayEffect(caster, effectId, parent, camp, _scaleRatio);
         if (effect != null)
         {
             effect.transform.localRotation = parent.localRotation;

--
Gitblit v1.8.0