hch
2025-09-11 803688798a599ed42477b685ecbede746706eea9
Main/System/Battle/SkillEffect/BulletSkillEffect.cs
@@ -66,6 +66,10 @@
                    case 5:
                        SelfShoting();
                        break;
                    default:
                        Debug.LogError("子弹特效没有配置正确的TagAim,强制结束子弹特效 TagAim: " + skillConfig.TagAim);
                        ForceFinished();
                        break;
                }
            }
        }
@@ -176,8 +180,8 @@
            BattleCamp battleCamp = skillConfig.TagFriendly != 0 ? caster.Camp : caster.GetEnemyCamp();
            //  首先是目标身上爆炸
            PlayExplosionEffect(skillConfig.ExplosionEffectId, targetTransform, battleCamp);
            PlayExplosionEffect(skillConfig.ExplosionEffect2, targetTransform, battleCamp);
            PlayExplosionEffect(skillConfig.ExplosionEffectId, targetTransform, caster.Camp);
            PlayExplosionEffect(skillConfig.ExplosionEffect2, targetTransform, caster.Camp);
            foreach (var hurt in hitList)
            {
@@ -188,7 +192,7 @@
                    continue;
                }
                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, targetObj.Camp);
                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
            }
            // 表现子弹飞行到目标位置
@@ -253,8 +257,31 @@
    private void VerticalRowShoting()
    {
        // 纵排分别为1、4,2、5,3、6,三组纵排,按对位规则选择,默认1号、2号或3号为主目标,前排1、2、3号位置全部死完后,4号、5号或6号为主目标
        BattleCamp battleCamp = skillConfig.TagFriendly != 0 ? caster.Camp : caster.GetEnemyCamp();
        //  攻击mininumIndex目标
        int minimumIndex = int.MaxValue;
        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;
            }
        ShotEachTargets();
            minimumIndex = Mathf.Min(target.teamHero.positionNum, minimumIndex);
        }
        if (minimumIndex != int.MaxValue)
        {
            ShotToIndex(battleCamp, minimumIndex);
        }
        else
        {
            Debug.LogError("纵排攻击没有目标 强制结束子弹特效");
            ForceFinished();
        }
    }
@@ -284,9 +311,9 @@
                    continue;
                }
                PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, targetObj.Camp);
                PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, targetObj.Camp);
                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, targetObj.Camp);
                PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
                PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
            }
            // 表现子弹飞行到目标位置