From efeccf8296000f1a4777ad27b33fb95e0a221981 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 29 九月 2025 11:45:30 +0800
Subject: [PATCH] 197 子 【内政】淘金系统 / 【内政】淘金系统-客户端

---
 Main/System/InternalAffairs/GoldRushWorkCell.cs |    2 +-
 Main/System/InternalAffairs/GoldRushTentCell.cs |    4 ++--
 Main/System/InternalAffairs/GoldRushLeader.cs   |    4 ++--
 Main/System/InternalAffairs/GoldRushManager.cs  |   24 ++++++++++++++++++++----
 4 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/Main/System/InternalAffairs/GoldRushLeader.cs b/Main/System/InternalAffairs/GoldRushLeader.cs
index 396bee5..75d359e 100644
--- a/Main/System/InternalAffairs/GoldRushLeader.cs
+++ b/Main/System/InternalAffairs/GoldRushLeader.cs
@@ -23,7 +23,7 @@
 
     Action<bool> OnComplete;
 
-    public void Init(GoldRushPosEvent[] _leaderPathPointArr, float waitTime, int _tendID, bool isBack, Action<bool> _OnComplete)
+    public void Init(GoldRushPosEvent[] _leaderPathPointArr, float waitTime, int _tendID, int index, bool isBack, Action<bool> _OnComplete)
     {
         tendID = _tendID;
         leaderPathPointArr = _leaderPathPointArr;
@@ -36,7 +36,7 @@
                                 leaderPathPointArr[leaderPathPointArr.Length - 1].transform.localPosition;
         OnComplete = _OnComplete;
         this.SetActive(true);
-        leader.Create(GoldRushManager.Instance.GetRandommSkinID(), leaderScale);
+        leader.Create(GoldRushManager.Instance.GetRandommSkinID(GoldRushManager.Instance.GetCampLastGoldID(tendID), index), leaderScale);
         Go(waitTime, isBack).Forget();
     }
 
diff --git a/Main/System/InternalAffairs/GoldRushManager.cs b/Main/System/InternalAffairs/GoldRushManager.cs
index 8b72679..ac7e5ff 100644
--- a/Main/System/InternalAffairs/GoldRushManager.cs
+++ b/Main/System/InternalAffairs/GoldRushManager.cs
@@ -1,4 +1,4 @@
-锘縰sing System;
+using System;
 using LitJson;
 
 using System.Collections.Generic;
@@ -15,6 +15,7 @@
     public int housekeeperEndTime;   // 鑷姩绠″鍒版湡鏃堕棿鎴筹紝鏈夊�煎悓鏃朵篃浠h〃鍏嶈垂璇曠敤宸蹭娇鐢�
     public byte[] warehouseIDList;  //瀹屾垚鐨勶紝鍖呭惈0绌猴紝涓昏鐢ㄤ簬棰嗗彇鐨勭储寮�
     public Dictionary<int, HB037_tagSCGoldRushCampInfo.tagSCGoldRushCamp> campInfoDict = new Dictionary<int, HB037_tagSCGoldRushCampInfo.tagSCGoldRushCamp>();
+    public Dictionary<int, int> tmpCampIDToGoldID = new Dictionary<int, int>(); //鏈�鍚庝竴娆¤惀鍦版窐閲戝搴旂殑鐗╁搧锛岀函绮圭敤浜庢樉绀烘ā鍨�
 
     public event Action<int> OnGoldRushCampEvent;    //鏈嶅姟绔�氱煡钀ュ湴淇℃伅
     public event Action OnGoldRushInfoEvent;
@@ -218,10 +219,11 @@
     }
 
 
-    public int GetRandommSkinID()
+    public int GetRandommSkinID(int goldID, int index)
     {
+        return skinIDs[(goldID % skinIDs.Count + index) % skinIDs.Count]; ;
         //浠庡凡瑙i攣涓殢鏈�
-        return skinIDs[UnityEngine.Random.Range(0, skinIDs.Count)];
+        // return skinIDs[UnityEngine.Random.Range(0, skinIDs.Count)];
     }
 
     void RefreshUnLockSkinID()
@@ -258,8 +260,13 @@
     {
         for (int i = 0; i < netPack.CampCnt; i++)
         {
-            campInfoDict[netPack.CampList[i].CampID] = netPack.CampList[i]; ;
+            campInfoDict[netPack.CampList[i].CampID] = netPack.CampList[i];
+            if (netPack.CampList[i].GoldID != 0)
+            { 
+                tmpCampIDToGoldID[netPack.CampList[i].CampID] = netPack.CampList[i].GoldID;
+            }
             OnGoldRushCampEvent?.Invoke(netPack.CampList[i].CampID);
+
         }
         UpdateRedpoint();
 
@@ -297,6 +304,15 @@
         return 0;
     }
 
+    public int GetCampLastGoldID(int campID)
+    {
+        if (tmpCampIDToGoldID.ContainsKey(campID))
+        {
+            return tmpCampIDToGoldID[campID];
+        }
+        return 0;
+    }
+
     //鑾峰彇钀ュ湴宸ヤ汉
     public int GetCampWorkerCnt(int campID)
     {
diff --git a/Main/System/InternalAffairs/GoldRushTentCell.cs b/Main/System/InternalAffairs/GoldRushTentCell.cs
index 19edd93..39c9d28 100644
--- a/Main/System/InternalAffairs/GoldRushTentCell.cs
+++ b/Main/System/InternalAffairs/GoldRushTentCell.cs
@@ -429,7 +429,7 @@
             float waitTime = i * 0.6f;
             var newLeader = RequestLeader();
             workingLeaderList.Add(newLeader);
-            newLeader.Init(leaderPathPointArr, waitTime, campID, false, (bool value) =>
+            newLeader.Init(leaderPathPointArr, waitTime, campID, i, false, (bool value) =>
             {
                 if (!value)
                 {
@@ -487,7 +487,7 @@
                 float waitTime = i * 0.6f;
                 var newLeader = RequestLeader();
                 callBackLeaderList.Add(newLeader);
-                newLeader.Init(leaderPathPointArr, waitTime, campID, true, (bool value) =>
+                newLeader.Init(leaderPathPointArr, waitTime, campID, i, true, (bool value) =>
                 {
                     if (value)
                     {
diff --git a/Main/System/InternalAffairs/GoldRushWorkCell.cs b/Main/System/InternalAffairs/GoldRushWorkCell.cs
index fc32eda..a5be79f 100644
--- a/Main/System/InternalAffairs/GoldRushWorkCell.cs
+++ b/Main/System/InternalAffairs/GoldRushWorkCell.cs
@@ -76,7 +76,7 @@
                 if (i < workCnt)
                 {
                     heroModels[i].SetActive(true);
-                    var skinID = GoldRushManager.Instance.skinIDs[(goldID % skinCnt + i) % skinCnt];
+                    var skinID = GoldRushManager.Instance.GetRandommSkinID(goldID, i);
                     heroModels[i].Create(skinID, 0.5f);
                 }
                 else

--
Gitblit v1.8.0