yyl
2026-02-09 d0dfe302f42f680bd3a84a29b9d58947046403c7
Main/System/Battle/BattleResources/TeamResTracker.cs
@@ -71,56 +71,69 @@
        // 普攻技能
        if (teamHero.heroConfig.AtkSkillID > 0)
        {
            AddSingleSkillResources(teamHero.heroConfig.AtkSkillID, info, isPersistent, ownerId);
            SkillConfig skillConfig = SkillConfig.Get(teamHero.heroConfig.AtkSkillID);
            if (null != skillConfig)
            {
                SkillSkinConfig skillSkinConfig = skillConfig.GetSkillSkinConfig(teamHero.SkinID);
                if (null != skillSkinConfig)
                {
                    AddSingleSkillResources(skillSkinConfig, info, isPersistent, ownerId);
                }
            }
        }
        
        // 怒气技能
        if (teamHero.heroConfig.AngerSkillID > 0)
        {
            AddSingleSkillResources(teamHero.heroConfig.AngerSkillID, info, isPersistent, ownerId);
            SkillConfig skillConfig = SkillConfig.Get(teamHero.heroConfig.AngerSkillID);
            if (null != skillConfig)
            {
                SkillSkinConfig skillSkinConfig = skillConfig.GetSkillSkinConfig(teamHero.SkinID);
                if (null != skillSkinConfig)
                {
                    AddSingleSkillResources(skillSkinConfig, info, isPersistent, ownerId);
                }
            }
        }
    }
    
    /// <summary>
    /// 添加单个技能的资源
    /// </summary>
    private static void AddSingleSkillResources(int skillId, TeamResourceInfo info, bool isPersistent, string ownerId)
    private static void AddSingleSkillResources(SkillSkinConfig skillSkinConfig, TeamResourceInfo info, bool isPersistent, string ownerId)
    {
        SkillConfig skillConfig = SkillConfig.Get(skillId);
        if (skillConfig == null)
            return;
        
        AddSkillAudio(skillConfig, info, isPersistent, ownerId);
        AddSkillEffects(skillConfig, info, isPersistent, ownerId);
        AddSkillAudio(skillSkinConfig, info, isPersistent, ownerId);
        AddSkillEffects(skillSkinConfig, info, isPersistent, ownerId);
    }
    
    private static void AddSkillAudio(SkillConfig skillConfig, TeamResourceInfo info, bool isPersistent, string ownerId)
    private static void AddSkillAudio(SkillSkinConfig skillSkinConfig, TeamResourceInfo info, bool isPersistent, string ownerId)
    {
        if (skillConfig.SkinllSFX1 > 0)
        if (skillSkinConfig.SkinllSFX1 > 0)
        {
            AddAudioResource(skillConfig.SkinllSFX1, info, isPersistent, ownerId);
            AddAudioResource(skillSkinConfig.SkinllSFX1, info, isPersistent, ownerId);
        }
        
        if (skillConfig.SkinllSFX2 > 0)
        if (skillSkinConfig.SkinllSFX2 > 0)
        {
            AddAudioResource(skillConfig.SkinllSFX2, info, isPersistent, ownerId);
            AddAudioResource(skillSkinConfig.SkinllSFX2, info, isPersistent, ownerId);
        }
    }
    
    private static void AddSkillEffects(SkillConfig skillConfig, TeamResourceInfo info, bool isPersistent, string ownerId)
    private static void AddSkillEffects(SkillSkinConfig skillSkinConfig, TeamResourceInfo info, bool isPersistent, string ownerId)
    {
        List<int> effectIds = new List<int>();
        
        if (skillConfig.BulletEffectId > 0) effectIds.Add(skillConfig.BulletEffectId);
        if (skillConfig.ExplosionEffectId > 0) effectIds.Add(skillConfig.ExplosionEffectId);
        if (skillConfig.ExplosionEffect2 > 0) effectIds.Add(skillConfig.ExplosionEffect2);
        if (skillConfig.ExplosionEffect3 > 0) effectIds.Add(skillConfig.ExplosionEffect3);
        if (skillConfig.ExplosionEffect4 > 0) effectIds.Add(skillConfig.ExplosionEffect4);
        if (skillConfig.EffectId > 0) effectIds.Add(skillConfig.EffectId);
        if (skillConfig.EffectId2 > 0) effectIds.Add(skillConfig.EffectId2);
        if (skillConfig.MStartEffectId > 0) effectIds.Add(skillConfig.MStartEffectId);
        if (skillConfig.BuffEffect > 0) effectIds.Add(skillConfig.BuffEffect);
        if (skillConfig.TriggerEffect > 0) effectIds.Add(skillConfig.TriggerEffect);
        if (skillSkinConfig.BulletEffectId > 0) effectIds.Add(skillSkinConfig.BulletEffectId);
        if (skillSkinConfig.ExplosionEffectId > 0) effectIds.Add(skillSkinConfig.ExplosionEffectId);
        if (skillSkinConfig.ExplosionEffect2 > 0) effectIds.Add(skillSkinConfig.ExplosionEffect2);
        if (skillSkinConfig.ExplosionEffect3 > 0) effectIds.Add(skillSkinConfig.ExplosionEffect3);
        if (skillSkinConfig.ExplosionEffect4 > 0) effectIds.Add(skillSkinConfig.ExplosionEffect4);
        if (skillSkinConfig.EffectId > 0) effectIds.Add(skillSkinConfig.EffectId);
        if (skillSkinConfig.EffectId2 > 0) effectIds.Add(skillSkinConfig.EffectId2);
        if (skillSkinConfig.MStartEffectId > 0) effectIds.Add(skillSkinConfig.MStartEffectId);
        if (skillSkinConfig.BuffEffect > 0) effectIds.Add(skillSkinConfig.BuffEffect);
        if (skillSkinConfig.TriggerEffect > 0) effectIds.Add(skillSkinConfig.TriggerEffect);
        
        foreach (int effectId in effectIds)
        {