From bb463ef0b13236738a1da9cd04f57def3e7e2c7c Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 29 八月 2025 15:21:51 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/System/Main/AutoFightModel.cs |  121 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 117 insertions(+), 4 deletions(-)

diff --git a/Main/System/Main/AutoFightModel.cs b/Main/System/Main/AutoFightModel.cs
index 1439254..ec225e4 100644
--- a/Main/System/Main/AutoFightModel.cs
+++ b/Main/System/Main/AutoFightModel.cs
@@ -2,25 +2,138 @@
 using System.Collections;
 using System.Collections.Generic;
 using System.Text;
+using LitJson;
 
 using UnityEngine;
 public class AutoFightModel : GameSystemManager<AutoFightModel>
 {
-    public int fightSpeed = 1; //鎴樻枟鍊嶆暟锛氬�艰秺澶ц秺蹇紝褰卞搷鎴樻枟琛ㄧ幇锛屾帀钀介�熷害绛�
+    //鎴樻枟鍊嶆暟锛氬�艰秺澶ц秺蹇紝褰卞搷鎴樻枟琛ㄧ幇锛屾帀钀介�熷害绛�
+    public int fightSpeed
+    {
+        get
+        {
+            int value = QuickSetting.Instance.GetQuickSettingValue<int>(QuickSettingType.AutoFight_Speed, 0);
+            return Math.Min(Math.Max(value, 1), maxSpeed);
+        }
+        set
+        {
+            QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_Speed, value);
+        }
+    }
 
-    public bool isAutoAttack; //鑷姩鏀诲嚮
+    //娑堣�楀�嶆暟
+    public int fightCost
+    {
+        get
+        {
+            int value = QuickSetting.Instance.GetQuickSettingValue<int>(QuickSettingType.AutoFight_Cost, 0);
+            return Math.Min(Math.Max(value, 1), maxCost);
+        }
+        set
+        {
+            QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_Cost, value);
+        }
+    }
+
+    //鑷姩妯″紡, 鐪熸鐐瑰嚮鎴橀敜娑堣�楀紑鍚紝鍜屼紤鎭紙鎴栨棤鏉愭枡锛夊仠姝�
+    public bool isAutoAttack = false;
+
+    //鏄惁寮�鍚嚜鍔ㄦ垬鏂楄缃�
+    public bool isAutoAttackSet
+    {
+        get
+        {
+            return QuickSetting.Instance.GetQuickSettingBool(QuickSettingType.AutoFight_Open, 0);
+        }
+        set
+        {
+            QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_Open, value);
+        }
+    }
+
+    //鏇村ソ瑁呭鍋滄鎴樻枟
+    public bool isStopFightByBetterEquip
+    {
+        get
+        {
+            return QuickSetting.Instance.GetQuickSettingBool(QuickSettingType.AutoFight_FightPower, 0);
+        }
+        set
+        {
+            QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_FightPower, value);
+        }
+    }
+
+
+    public event Action ChangeAutoEvent;
+
+    public int maxSpeed = 3; //鏈�楂橀�熷害
+    public int maxCost; //鏈�楂樻秷鑰�
+    public int[] autoCostWithBlessLV; //鑷姩鎴樻枟娑堣�楀�嶆暟鍏宠仈绁濈绛夌骇
+    public int speed2UnlockMissionID;
+    public int speed3UnlockCTGID;
     public override void Init()
     {
-
+        ParseConfig();
+        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
     }
 
     public override void Release()
     {
-
+        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
     }
 
     void ParseConfig()
     {
+        var config = FuncConfigConfig.Get("AutoGuaji");
+        autoCostWithBlessLV = JsonMapper.ToObject<int[]>(config.Numerical1);
+        speed2UnlockMissionID = int.Parse(config.Numerical2);
+        speed3UnlockCTGID = int.Parse(config.Numerical3);
+        maxCost = autoCostWithBlessLV.Length;
     }
 
+    void OnPlayerLoginOk()
+    {
+        //鐧诲綍鏃舵湁瑁呭鐨勫鐞�
+    }
+
+    public void SaveAutoFightSetting()
+    {
+        if (PlayerDatas.Instance.baseData.UseHarmerCount != fightCost)
+        {
+            PlayerDatas.Instance.baseData.UseHarmerCount = fightCost;
+            BattleManager.Instance.MainFightRequest(1, (uint)fightCost);
+        }
+        QuickSetting.Instance.SendPackage();
+        ChangeAutoEvent?.Invoke();
+    }
+
+
+    //鑷姩澶勭悊瑁呭锛岄渶瑕佺瓑寰呯┛鎴磋繑鍥瀎alse锛屽叾浠栨儏鍐佃繑鍥瀟rue
+    public bool TryAutoFightDoEquip(ItemModel item)
+    {
+        if (!isAutoAttack)
+            return false;
+            
+        if (item == null)
+            return true;
+
+        long showFightPower = FightPowerManager.Instance.GetFightPowerChange(item);
+
+        if (showFightPower < 0)
+        {
+            EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)item.gridIndex }, 1);
+            return true;
+        }
+        else
+        {
+            if (isStopFightByBetterEquip)
+                return false;
+            
+            EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)item.gridIndex }, 1);
+            return true;
+
+        }
+        
+    }
 }

--
Gitblit v1.8.0