From 1ffebec3376d225a8b791f27594e51d3237f9b85 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 04 二月 2026 14:59:26 +0800
Subject: [PATCH] 125 战斗相关开关设置

---
 Main/System/Battle/Define/BattleSwitch.cs                         |   16 ++
 Main/System/Battle/BattleField/RecordActions/BuffUnmountAction.cs |    2 
 Main/System/Battle/Define/BattlePerformSwitch.cs                  |   94 +++++++++++
 Main/Component/UI/Core/ToggleEx.cs                                |   30 +++
 Main/System/Battle/Define/BattleSwitch.cs.meta                    |   11 +
 Main/System/Battle/BattleHUDWin.cs                                |   10 +
 Main/System/SystemSetting/SystemSetting.cs                        |   22 ++
 Main/System/Battle/BattleField/StoryBattleField.cs                |    4 
 Main/System/Battle/BattleField/BattleField.cs                     |   24 ++
 Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs   |    3 
 Main/System/PlayerProfile/SystemSetWin.cs                         |  150 ++++++++++++++++++
 Main/System/Battle/UIComp/BattleHeroInfoBar.cs                    |   45 +++--
 Main/System/Battle/Define/BattlePerformSwitch.cs.meta             |   11 +
 13 files changed, 390 insertions(+), 32 deletions(-)

diff --git a/Main/Component/UI/Core/ToggleEx.cs b/Main/Component/UI/Core/ToggleEx.cs
index 824d223..a713576 100644
--- a/Main/Component/UI/Core/ToggleEx.cs
+++ b/Main/Component/UI/Core/ToggleEx.cs
@@ -12,9 +12,39 @@
         set { this.m_Audio = value; }
     }
 
+    public GameObject activates;
+
+    public GameObject deactivates;
+
     protected override void OnEnable()
     {
         base.OnEnable();
+        onValueChanged.AddListener(CustomChanged);
+    }
+
+    protected override void OnDisable()
+    {
+        base.OnDisable();
+        onValueChanged.RemoveListener(CustomChanged);
+    }
+
+    protected void CustomChanged(bool isOn)
+    {
+        // 浣跨敤 CanvasGroup 鎺у埗鏄鹃殣锛岄伩鍏� SetActive 瑙﹀彂 Canvas 閲嶅缓
+        if (activates != null)
+        {
+            var canvasGroup = activates.AddMissingComponent<CanvasGroup>();
+            canvasGroup.alpha = isOn ? 1f : 0f;
+            canvasGroup.interactable = isOn;
+            canvasGroup.blocksRaycasts = isOn;
+        }
+        if (deactivates != null)
+        {
+            var canvasGroup = deactivates.AddMissingComponent<CanvasGroup>();
+            canvasGroup.alpha = isOn ? 0f : 1f;
+            canvasGroup.interactable = !isOn;
+            canvasGroup.blocksRaycasts = !isOn;
+        }
     }
 
     public override void OnPointerClick(PointerEventData eventData)
diff --git a/Main/System/Battle/BattleField/BattleField.cs b/Main/System/Battle/BattleField/BattleField.cs
index 3869ec2..0fd882a 100644
--- a/Main/System/Battle/BattleField/BattleField.cs
+++ b/Main/System/Battle/BattleField/BattleField.cs
@@ -77,6 +77,8 @@
 
     public BattleSoundManager soundManager;
 
+    public BattlePerformSwitch battleSwitch;
+
 #if UNITY_EDITOR
     public static Dictionary<string, string> battleHpRecorder = new Dictionary<string, string>();
 #endif
@@ -273,6 +275,11 @@
         {
             BattleHeroInfoBar.largestPackUIDAllObjectsMaxHp.Remove(guid);
         }
+
+        BattleMapConfig battleMapConfig = BattleMapConfig.Get(MapID);
+        
+        //  涓荤嚎MapID == 1
+        battleSwitch = MapID == 1 ? BattleSwitch.storySwitch : BattleSwitch.nonStorySwitch;
     }
 
     protected void PreloadResources(List<TeamBase> redTeamList, List<TeamBase> blueTeamLis)
@@ -933,13 +940,20 @@
         return isFocus;
     }
 
-    public virtual void PlayBuffAction(RecordAction buffAction, bool insert)
+    public void PlayBuffAction(RecordAction buffAction, bool insert)
     {
-        var targetPlayer = PackageRegeditEx.GetTargetRecordPlayer(this);
-        if (insert)
-            targetPlayer.ImmediatelyPlay(buffAction);
+        if (battleSwitch.BuffAction)
+        {
+            var targetPlayer = PackageRegeditEx.GetTargetRecordPlayer(this);
+            if (insert)
+                targetPlayer.ImmediatelyPlay(buffAction);
+            else
+                targetPlayer.PlayRecord(buffAction);
+        }
         else
-            targetPlayer.PlayRecord(buffAction);
+        {
+            buffAction.ForceFinish();
+        }
     }
 
 
diff --git a/Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs b/Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs
index b6c9667..f84e49a 100644
--- a/Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs
+++ b/Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs
@@ -66,6 +66,9 @@
             return;
         }
 
+        //  鍔燽uff(onComplete鍐欎簡)
+        onComplete?.Invoke();
+
         //  1甯у氨缁撴潫浜� 涓嶇
         base.ForceFinish();
     }
diff --git a/Main/System/Battle/BattleField/RecordActions/BuffUnmountAction.cs b/Main/System/Battle/BattleField/RecordActions/BuffUnmountAction.cs
index 3f3d13c..9b37e16 100644
--- a/Main/System/Battle/BattleField/RecordActions/BuffUnmountAction.cs
+++ b/Main/System/Battle/BattleField/RecordActions/BuffUnmountAction.cs
@@ -43,6 +43,8 @@
         {
             return;
         }
+        
+        onComplete?.Invoke();
 
         //  1甯у氨缁撴潫浜� 涓嶇
         base.ForceFinish();
diff --git a/Main/System/Battle/BattleField/StoryBattleField.cs b/Main/System/Battle/BattleField/StoryBattleField.cs
index 00a5716..262cc9a 100644
--- a/Main/System/Battle/BattleField/StoryBattleField.cs
+++ b/Main/System/Battle/BattleField/StoryBattleField.cs
@@ -370,8 +370,4 @@
         return true;
     }
 
-    public override void PlayBuffAction(RecordAction buffAction, bool insert)
-    {
-        buffAction.ForceFinish();
-    }
 }
\ No newline at end of file
diff --git a/Main/System/Battle/BattleHUDWin.cs b/Main/System/Battle/BattleHUDWin.cs
index 9c3f555..60770af 100644
--- a/Main/System/Battle/BattleHUDWin.cs
+++ b/Main/System/Battle/BattleHUDWin.cs
@@ -121,8 +121,14 @@
 
     private void OnDamageTaken(BattleDmgInfo damageInfo)
     {
-        SetTargetDamage(damageInfo);
-        SetSelfDamage(damageInfo);
+        if (battleField != null)
+        {
+            if (battleField.battleSwitch.DamageTips)
+            {
+                SetTargetDamage(damageInfo);
+                SetSelfDamage(damageInfo);
+            }
+        }
     }
 
     private void OnSpeedRatioChange(float newSpeedRatio)
diff --git a/Main/System/Battle/Define/BattlePerformSwitch.cs b/Main/System/Battle/Define/BattlePerformSwitch.cs
new file mode 100644
index 0000000..ff3b9b5
--- /dev/null
+++ b/Main/System/Battle/Define/BattlePerformSwitch.cs
@@ -0,0 +1,94 @@
+using System;
+
+[Serializable]
+public class BattlePerformSwitch
+{
+    private bool _buffAction = true;
+    private bool _buffIcon = true;
+    private bool _nonDamageTips = true;
+    private bool _damageTips = true;
+
+// 1路buff鍔ㄧ敾锛歜uff椋樺瓧杩囩▼
+// battleField.PlayBuffAction
+    public bool BuffAction 
+    { 
+        get => _buffAction; 
+        set 
+        { 
+            if (_buffAction != value)
+            {
+                _buffAction = value;
+                Save();
+            }
+        } 
+    }
+
+// 2路buff鍥炬爣锛氬ご椤禸uff鍥炬爣锛堜笉鍖呭惈鍛芥牸锛�
+// heroInfoBar.RefreshBuff
+    public bool BuffIcon 
+    { 
+        get => _buffIcon; 
+        set 
+        { 
+            if (_buffIcon != value)
+            {
+                _buffIcon = value;
+                Save();
+            }
+        } 
+    }
+
+// 3路闈炰激瀹抽瀛楋細杩囨护鎺変激瀹充箣澶栫殑鎵�鏈夐瀛�
+// battleObject.ShowTips
+// 	HeroBattleObject.ShowTips
+// 		heroInfoBar.ShowTips(2涓�)
+// 			heroInfoBar.PopUpTipsDirectly
+    public bool NonDamageTips 
+    { 
+        get => _nonDamageTips; 
+        set 
+        { 
+            if (_nonDamageTips != value)
+            {
+                _nonDamageTips = value;
+                Save();
+            }
+        } 
+    }
+
+// 4路浼ゅ椋樺瓧锛氫粎浼ゅ椋樺瓧
+// 	BattleHUDWin.OnDamageTaken
+    public bool DamageTips 
+    { 
+        get => _damageTips; 
+        set 
+        { 
+            if (_damageTips != value)
+            {
+                _damageTips = value;
+                Save();
+            }
+        } 
+    }
+
+    // 鏄惁涓轰富绾� 闈炰富绾垮氨鏄叾浠栧叏閮�
+    public bool IsStory = true;
+
+    public void Load()
+    {
+        string prefix = IsStory ? "StoryPerform_" : "NonStoryPerform_";
+        _buffAction = LocalSave.GetBool(prefix + "BuffAction", true);
+        _buffIcon = LocalSave.GetBool(prefix + "BuffIcon", true);
+        _nonDamageTips = LocalSave.GetBool(prefix + "NonDamageTips", true);
+        _damageTips = LocalSave.GetBool(prefix + "DamageTips", true);
+    }
+
+    public void Save()
+    {
+        string prefix = IsStory ? "StoryPerform_" : "NonStoryPerform_";
+        LocalSave.SetBool(prefix + "BuffAction", BuffAction);
+        LocalSave.SetBool(prefix + "BuffIcon", BuffIcon);
+        LocalSave.SetBool(prefix + "NonDamageTips", NonDamageTips);
+        LocalSave.SetBool(prefix + "DamageTips", DamageTips);
+    }
+}
\ No newline at end of file
diff --git a/Main/System/Battle/Define/BattlePerformSwitch.cs.meta b/Main/System/Battle/Define/BattlePerformSwitch.cs.meta
new file mode 100644
index 0000000..0f41488
--- /dev/null
+++ b/Main/System/Battle/Define/BattlePerformSwitch.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d9741c9e2ae13c14da895355d99da907
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/Battle/Define/BattleSwitch.cs b/Main/System/Battle/Define/BattleSwitch.cs
new file mode 100644
index 0000000..b1ee5ad
--- /dev/null
+++ b/Main/System/Battle/Define/BattleSwitch.cs
@@ -0,0 +1,16 @@
+
+public static class BattleSwitch
+{
+    static BattleSwitch()
+    {
+        storySwitch = new BattlePerformSwitch() { IsStory = true };
+        nonStorySwitch = new BattlePerformSwitch() { IsStory = false };
+
+        storySwitch.Load();
+        nonStorySwitch.Load();
+    }
+
+    public static readonly BattlePerformSwitch storySwitch;
+
+    public static readonly BattlePerformSwitch nonStorySwitch;
+}
\ No newline at end of file
diff --git a/Main/System/Battle/Define/BattleSwitch.cs.meta b/Main/System/Battle/Define/BattleSwitch.cs.meta
new file mode 100644
index 0000000..7f60b22
--- /dev/null
+++ b/Main/System/Battle/Define/BattleSwitch.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5d5180c1d4f068c49973dffa5f35a843
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
index 2d477b1..41d9323 100644
--- a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
+++ b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
@@ -137,18 +137,7 @@
     
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (battleObject.battleField is StoryBattleField)
-        {
-            return;
-        }
-        if (buffCells == null)
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                buffCells[i].SetActive(false);
-            }
-        }
-        else
+        if (battleObject.battleField.battleSwitch.BuffIcon && datas != null && datas.Count > 0)
         {
             for (int i = 0; i < buffCells.Count; i++)
             {
@@ -166,6 +155,13 @@
                 {
                     buffCells[i].SetActive(false);
                 }
+            }
+        }
+        else
+        {
+            for (int i = 0; i < buffCells.Count; i++)
+            {
+                buffCells[i].SetActive(false);
             }
         }
 
@@ -197,26 +193,33 @@
         // Debug.LogError($"[BattleHeroInfoBar.RefreshBuff] 璁剧疆鎶ょ浘 - curHp: {curHp}, shieldValue: {shieldValue}, maxHp: {maxHp}, shield1鍓�: {oldShield1Value}, shield1鍚�: {shield1Value}, shield2鍓�: {oldShield2Value}, shield2鍚�: {shield2Value}");
     }
     
+    
     /// <summary>
-    /// 娣诲姞椋樺瓧鍒伴槦鍒�
+    /// 娣诲姞椋樺瓧鍒伴槦鍒�(闈炰激瀹抽瀛�)
     /// </summary>
     public void ShowTips(string message, bool useArtText = false, bool followCharacter = true, float scaleRatio = 1f)
     {
-        messages.Add(new TipsInfo
+        if (battleObject.battleField.battleSwitch.NonDamageTips)
         {
-            message = message,
-            useArtText = useArtText,
-            followCharacter = followCharacter,
-            scaleRatio = scaleRatio
-        });
+            messages.Add(new TipsInfo
+            {
+                message = message,
+                useArtText = useArtText,
+                followCharacter = followCharacter,
+                scaleRatio = scaleRatio
+            });
+        }
     }
 
     /// <summary>
-    /// 娣诲姞鑷畾涔夐瀛楅厤缃埌闃熷垪
+    /// 娣诲姞鑷畾涔夐瀛楅厤缃埌闃熷垪(闈炰激瀹抽瀛�)
     /// </summary>
     public void ShowTips(TipsInfo tipsInfo)
     {
-        messages.Add(tipsInfo);
+        if (battleObject.battleField.battleSwitch.NonDamageTips)
+        {
+            messages.Add(tipsInfo);
+        }
     }
     
     /// <summary>
diff --git a/Main/System/PlayerProfile/SystemSetWin.cs b/Main/System/PlayerProfile/SystemSetWin.cs
index 6483c05..504756e 100644
--- a/Main/System/PlayerProfile/SystemSetWin.cs
+++ b/Main/System/PlayerProfile/SystemSetWin.cs
@@ -6,6 +6,29 @@
     [SerializeField] Slider musicSlider;
     [SerializeField] Slider soundEffectSlider;
 
+    //  闈欓煶闊充箰
+    [SerializeField] Toggle muteMusic;
+
+    //  闈欓煶闊虫晥
+    [SerializeField] Toggle muteSoundEffect;
+
+
+    //  涓荤嚎鎴樻枟
+    [SerializeField] Toggle toggleStory;
+    //  闈炰富绾挎垬鏂�
+    [SerializeField] Toggle toggleNonStory;
+
+    //  浼ゅ椋樺瓧
+    [SerializeField] Toggle toggleDamageTips;
+    //  闈炰激瀹抽瀛�
+    [SerializeField] Toggle toggleNonDamageTips;
+    //  buff椋樺瓧
+    [SerializeField] Toggle toggleBuffFloatingTips;
+    //  buff鍥炬爣鏄剧ず
+    [SerializeField] Toggle toggleBuffIconShow;
+
+    private BattlePerformSwitch currentSwitch;
+
     protected override void InitComponent()
     {
         base.InitComponent();
@@ -14,6 +37,8 @@
     protected override void OnPreOpen()
     {
         base.OnPreOpen();
+
+        // 闊抽噺婊戝潡
         musicSlider.onValueChanged.RemoveListener(OnSliderBgMusic);
         musicSlider.onValueChanged.AddListener(OnSliderBgMusic);
         soundEffectSlider.onValueChanged.RemoveListener(OnSliderSoundEffect);
@@ -21,6 +46,42 @@
 
         musicSlider.value = SystemSetting.Instance.GetSoundVolume();
         soundEffectSlider.value = SystemSetting.Instance.GetSoundEffect();
+
+        // 闈欓煶寮�鍏�
+        muteMusic.onValueChanged.RemoveListener(OnMuteMusicChanged);
+        muteMusic.onValueChanged.AddListener(OnMuteMusicChanged);
+        muteSoundEffect.onValueChanged.RemoveListener(OnMuteSoundEffectChanged);
+        muteSoundEffect.onValueChanged.AddListener(OnMuteSoundEffectChanged);
+
+        muteMusic.isOn = SystemSetting.Instance.GetMuteMusic();
+        muteSoundEffect.isOn = SystemSetting.Instance.GetMuteSoundEffect();
+        
+        // 搴旂敤闈欓煶鐘舵��
+        SoundPlayer.Instance.musicAudioSource.mute = muteMusic.isOn;
+
+        // 鎴樻枟绫诲瀷鍒囨崲锛堜簰鏂ワ級
+        toggleStory.onValueChanged.RemoveListener(OnToggleStoryChanged);
+        toggleStory.onValueChanged.AddListener(OnToggleStoryChanged);
+        toggleNonStory.onValueChanged.RemoveListener(OnToggleNonStoryChanged);
+        toggleNonStory.onValueChanged.AddListener(OnToggleNonStoryChanged);
+
+        // 榛樿閫変腑涓荤嚎鎴樻枟
+        toggleStory.isOn = true;
+        toggleNonStory.isOn = false;
+        currentSwitch = BattleSwitch.storySwitch;
+
+        // 鎴樻枟琛ㄧ幇寮�鍏�
+        toggleDamageTips.onValueChanged.RemoveListener(OnToggleDamageTipsChanged);
+        toggleDamageTips.onValueChanged.AddListener(OnToggleDamageTipsChanged);
+        toggleNonDamageTips.onValueChanged.RemoveListener(OnToggleNonDamageTipsChanged);
+        toggleNonDamageTips.onValueChanged.AddListener(OnToggleNonDamageTipsChanged);
+        toggleBuffFloatingTips.onValueChanged.RemoveListener(OnToggleBuffFloatingTipsChanged);
+        toggleBuffFloatingTips.onValueChanged.AddListener(OnToggleBuffFloatingTipsChanged);
+        toggleBuffIconShow.onValueChanged.RemoveListener(OnToggleBuffIconShowChanged);
+        toggleBuffIconShow.onValueChanged.AddListener(OnToggleBuffIconShowChanged);
+
+        // 鍒濆鍖栨垬鏂楄〃鐜板紑鍏崇殑鐘舵��
+        RefreshBattlePerformToggles();
     }
 
     protected override void OnPreClose()
@@ -37,4 +98,93 @@
     {
         SystemSetting.Instance.SetSoundVolume(arg0);
     }
+
+    private void OnMuteMusicChanged(bool value)
+    {
+        SystemSetting.Instance.SetMuteMusic(value);
+        SoundPlayer.Instance.musicAudioSource.mute = value;
+    }
+
+    private void OnMuteSoundEffectChanged(bool value)
+    {
+        SystemSetting.Instance.SetMuteSoundEffect(value);
+        // 闊虫晥闈欓煶鍙互閫氳繃鎺у埗闊抽噺瀹炵幇锛屼絾涓嶅奖鍝峴lider鐨勫��
+        // 杩欓噷闇�瑕佹帶鍒舵墍鏈夐煶鏁堟簮锛屽彲浠ヤ娇鐢⊿oundPlayer鐨勫叏灞�鎺у埗
+    }
+
+    private void OnToggleStoryChanged(bool value)
+    {
+        if (value)
+        {
+            // ToggleGroup 浼氳嚜鍔ㄥ鐞嗕簰鏂ワ紝涓嶉渶瑕佹墜鍔ㄨ缃彟涓�涓负 false
+            currentSwitch = BattleSwitch.storySwitch;
+            RefreshBattlePerformToggles();
+        }
+    }
+
+    private void OnToggleNonStoryChanged(bool value)
+    {
+        if (value)
+        {
+            // ToggleGroup 浼氳嚜鍔ㄥ鐞嗕簰鏂ワ紝涓嶉渶瑕佹墜鍔ㄨ缃彟涓�涓负 false
+            currentSwitch = BattleSwitch.nonStorySwitch;
+            RefreshBattlePerformToggles();
+        }
+    }
+
+    private void RefreshBattlePerformToggles()
+    {
+        if (currentSwitch == null)
+            return;
+
+        // 涓存椂绉婚櫎鐩戝惉鍣ㄤ互閬垮厤寰幆瑙﹀彂
+        toggleDamageTips.onValueChanged.RemoveListener(OnToggleDamageTipsChanged);
+        toggleNonDamageTips.onValueChanged.RemoveListener(OnToggleNonDamageTipsChanged);
+        toggleBuffFloatingTips.onValueChanged.RemoveListener(OnToggleBuffFloatingTipsChanged);
+        toggleBuffIconShow.onValueChanged.RemoveListener(OnToggleBuffIconShowChanged);
+
+        // 鏇存柊UI鐘舵��
+        toggleDamageTips.isOn = currentSwitch.DamageTips;
+        toggleNonDamageTips.isOn = currentSwitch.NonDamageTips;
+        toggleBuffFloatingTips.isOn = currentSwitch.BuffAction;
+        toggleBuffIconShow.isOn = currentSwitch.BuffIcon;
+
+        // 閲嶆柊娣诲姞鐩戝惉鍣�
+        toggleDamageTips.onValueChanged.AddListener(OnToggleDamageTipsChanged);
+        toggleNonDamageTips.onValueChanged.AddListener(OnToggleNonDamageTipsChanged);
+        toggleBuffFloatingTips.onValueChanged.AddListener(OnToggleBuffFloatingTipsChanged);
+        toggleBuffIconShow.onValueChanged.AddListener(OnToggleBuffIconShowChanged);
+    }
+
+    private void OnToggleDamageTipsChanged(bool value)
+    {
+        if (currentSwitch != null)
+        {
+            currentSwitch.DamageTips = value;
+        }
+    }
+
+    private void OnToggleNonDamageTipsChanged(bool value)
+    {
+        if (currentSwitch != null)
+        {
+            currentSwitch.NonDamageTips = value;
+        }
+    }
+
+    private void OnToggleBuffFloatingTipsChanged(bool value)
+    {
+        if (currentSwitch != null)
+        {
+            currentSwitch.BuffAction = value;
+        }
+    }
+
+    private void OnToggleBuffIconShowChanged(bool value)
+    {
+        if (currentSwitch != null)
+        {
+            currentSwitch.BuffIcon = value;
+        }
+    }
 }
diff --git a/Main/System/SystemSetting/SystemSetting.cs b/Main/System/SystemSetting/SystemSetting.cs
index b38d9fa..b69fc70 100644
--- a/Main/System/SystemSetting/SystemSetting.cs
+++ b/Main/System/SystemSetting/SystemSetting.cs
@@ -13,6 +13,8 @@
     const string QUALITY_LEVEL_KEY = "GameQualityLevel";
     const string SOUND_VOLUME_KEY = "MusicKey";  //闊充箰
     const string SOUND_EFFECT_KEY = "SoundEffectKey"; //闊虫晥
+    const string MUTE_MUSIC_KEY = "MuteMusicKey"; //闈欓煶闊充箰
+    const string MUTE_SOUND_EFFECT_KEY = "MuteSoundEffectKey"; //闈欓煶闊虫晥
     const string GAMEFRAME_KEY = "GameFrameSetting";//鍨傜洿鍚屾鐜�
 
     public Dictionary<SystemSwitch, bool> systemSettings = new Dictionary<SystemSwitch, bool>();
@@ -56,6 +58,26 @@
         return LocalSave.GetFloat(SOUND_EFFECT_KEY, 0.6f);
     }
 
+    public void SetMuteMusic(bool _mute)
+    {
+        LocalSave.SetBool(MUTE_MUSIC_KEY, _mute);
+    }
+
+    public bool GetMuteMusic()
+    {
+        return LocalSave.GetBool(MUTE_MUSIC_KEY, false);
+    }
+
+    public void SetMuteSoundEffect(bool _mute)
+    {
+        LocalSave.SetBool(MUTE_SOUND_EFFECT_KEY, _mute);
+    }
+
+    public bool GetMuteSoundEffect()
+    {
+        return LocalSave.GetBool(MUTE_SOUND_EFFECT_KEY, false);
+    }
+
     public void SetGameFps(GameFps _frame)
     {
         LocalSave.SetInt(GAMEFRAME_KEY, (int)_frame);

--
Gitblit v1.8.0