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

---
 Main/System/PlayerProfile/SystemSetWin.cs |  150 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 150 insertions(+), 0 deletions(-)

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;
+        }
+    }
 }

--
Gitblit v1.8.0