From 3b2a6bb9047cfce9f501593b3669a9c1af6c5df4 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 05 十一月 2025 17:40:23 +0800
Subject: [PATCH] 130 战斗修改回合样式

---
 Main/Utility/UIHelper.cs |  175 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 139 insertions(+), 36 deletions(-)

diff --git a/Main/Utility/UIHelper.cs b/Main/Utility/UIHelper.cs
index 84dc837..8767f39 100644
--- a/Main/Utility/UIHelper.cs
+++ b/Main/Utility/UIHelper.cs
@@ -69,27 +69,48 @@
     public static void SetIconWithMoneyType(this Image _image, int moneyType)
     {
         if (_image == null) return;
-        // string iconKey = StringUtility.Contact("Money_Type_", moneyType);
         if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType))
         {
             _image.SetOrgSprite(ItemConfig.Get(GeneralDefine.MoneyDisplayModel[moneyType]).IconKey);
         }
         else
-        { 
-            Debug.LogError("MoneyDisplayModel 涓洪厤缃揣甯佺被鍨嬶細" + moneyType);
+        {
+            // 鏆備笉鑰冭檻瀵屾枃鏈殑鎯呭喌
+            // 涓嶉渶瑕佺墿鍝佺殑鎯呭喌琛ュ厖
+            // string iconKey = StringUtility.Contact("Money_Type_", moneyType);
+            Debug.LogError("MoneyDisplayModel 鏈厤缃揣甯佺被鍨嬶細" + moneyType);
         }
     }
 
     public static string GetIconNameWithMoneyType(int moneyType)
     {
-        if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType))
+        if (IconConfig.HasKey("MoneyType_" + moneyType))
+        {
+            //瀵屾枃鏈樉绀虹殑鎯呭喌
+            return IconConfig.Get("MoneyType_" + moneyType).sprite;
+        }
+        else if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType))
         {
             return ItemConfig.Get(GeneralDefine.MoneyDisplayModel[moneyType]).IconKey;
         }
         else
         {
-            Debug.LogError("MoneyDisplayModel 涓洪厤缃揣甯佺被鍨嬶細" + moneyType);
+            Debug.LogError("MoneyDisplayModel 鏈厤缃揣甯佺被鍨嬶細" + moneyType);
             return "";
+        }
+    }
+
+    // 閫氳繃璐у竵绫诲瀷鑾峰彇鐗╁搧ID
+    public static int GetItemIDWithMoneyType(int moneyType)
+    {
+        if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType))
+        {
+            return GeneralDefine.MoneyDisplayModel[moneyType];
+        }
+        else
+        {
+            Debug.LogError("MoneyDisplayModel 鏈厤缃揣甯佺被鍨嬶細" + moneyType);
+            return 0;
         }
     }
 
@@ -173,7 +194,7 @@
 
     }
     /// <summary>
-    /// 鑾峰彇娑堥�濈殑鏃堕棿
+    /// 鑾峰彇杩囧幓鐨勬椂闂�
     /// </summary>
     /// <param name="lastTime"></param>
     /// <returns></returns>
@@ -200,17 +221,10 @@
         return val.Replace(@"</r>", "\n");
     }
 
-    public static double numto2Decimals(double value)
-    {
-        //涓轰粈涔堣value * 1000/10 杩欎箞鍐欙紝鐗规畩鐨勬暟瀛椾細鏈夐棶棰橈紝姣斿36.80000锛屼細(int)(value * 100)琚绠椾负3679
-        //娴嬭瘯涓嬪彧鏈�30鍑犵偣8000鐨勬墠浼氳繖鏍�
-        return (int)(value * 1000 / 10) / 100.00;
-    }
 
     /// <summary>
-    /// 澶ф暟鍊艰浆鍖� 鏍煎紡 鏈�澶氫袱涓皬鏁�
+    /// 澶ф暟鍊艰浆鍖� 鏍煎紡 鏈�澶氫袱涓皬鏁� ,鍚戜笅鍙栨暣
     /// K -鍗冿紝M -鐧捐惉锛孊-鍗佸剟锛孴 -钀剟
-    /// 涓嶅洓鑸嶄簲鍏ワ紝涓嶇敤Math.Round锛屽洜涓哄綋鐜╁鍙湁23.3456,浣嗘槸Math.Round浼氭樉绀�23.35, 褰撹喘涔颁环鏍间负23.35鏃舵棤娉曡喘涔扮殑
     /// </summary>
     public static string ReplaceLargeNum(double num)
     {
@@ -221,23 +235,23 @@
 
         if (num >= T)
         {
-            return StringUtility.Contact(numto2Decimals(num / T).ToString("0.##"), Language.Get("L1070_0"));
+            return StringUtility.Contact(FormatWithoutRounding(num / T, 2), Language.Get("L1070_0"));
         }
         else if (num >= B)
         {
-            return StringUtility.Contact(numto2Decimals(num / B).ToString("0.##"), Language.Get("L1070_1"));
+            return StringUtility.Contact(FormatWithoutRounding(num / B, 2), Language.Get("L1070_1"));
         }
         else if (num >= M)
         {
-            return StringUtility.Contact(numto2Decimals(num / M).ToString("0.#"), Language.Get("L1070"));
+            return StringUtility.Contact(FormatWithoutRounding(num / M, 1), Language.Get("L1070"));
         }
         else if (num >= K)
         {
-            return StringUtility.Contact(numto2Decimals(num / K).ToString("0.#"), Language.Get("L1071"));
+            return StringUtility.Contact(FormatWithoutRounding(num / K, 1), Language.Get("L1071"));
         }
         else
         {
-            return numto2Decimals(num).ToString("0.#");
+            return FormatWithoutRounding(num, 1);
         }
     }
 
@@ -251,25 +265,34 @@
 
         if (num >= T)
         {
-            return StringUtility.Contact(numto2Decimals(num / T).ToString("0.##"), "t");
+            return StringUtility.Contact(FormatWithoutRounding(num / T, 2), "t");
         }
         else if (num >= B)
         {
-            return StringUtility.Contact(numto2Decimals(num / B).ToString("0.##"), "b");
+            return StringUtility.Contact(FormatWithoutRounding(num / B, 2), "b");
         }
         else if (num >= M)
         {
-            return StringUtility.Contact(numto2Decimals(num / M).ToString("0.#"), "m");
+            return StringUtility.Contact(FormatWithoutRounding(num / M, 1), "m");
         }
         else if (num >= K)
         {
-            return StringUtility.Contact(numto2Decimals(num / K).ToString("0.#"), "k");
+            return StringUtility.Contact(FormatWithoutRounding(num / K, 1), "k");
         }
         else
         {
-            return numto2Decimals(num).ToString("0.#");
+            return FormatWithoutRounding(num, 1);
         }
     }
+
+    //鏍规嵁灏忔暟浣嶆暟鐩存帴鎴柇涓嶅仛鍥涜垗浜斿叆
+    public static string FormatWithoutRounding(double value, int decimalPlaces)
+    {
+        double factor = Math.Pow(10, decimalPlaces);
+        double truncated = Math.Truncate(value * factor) / factor;
+        return truncated.ToString($"0.{new string('#', decimalPlaces)}");
+    }
+
 
     // 杞寲澶ф暟鍊煎甫鍗曚綅鐨勬樉绀猴紝濡傛灉灏忎簬200000鍒欐樉绀哄師鍊硷紝鍚﹀垯鏄剧ず澶ф暟鍊�
     public static string ReplaceLargeNumEx(double num)
@@ -323,6 +346,13 @@
         }
         return false;
     }
+
+    // 妫�鏌ュ瓧绗︿覆鏄笉鏄函鏁存暟
+    public static bool IsNumeric(string input)
+    {
+        return int.TryParse(input, out _);
+    }
+
 
     public static string GetColorNameByItemColor(int itemColor)
     {
@@ -676,7 +706,7 @@
                 // 5d1d52 姘告亽
                 return new Color32(93, 29, 82, 128);
             case QualityTextColType.red:
-                return s_BrightRedColor;
+                return s_DarkRedColor;
         }
         return new Color32(0, 0, 0, 128);
     }
@@ -753,7 +783,7 @@
                 return StringUtility.Contact("<color=#dfbbed>", msg, "</color>");
             case TextColType.itembuxiu:
                 // 5eeff2 涓嶆溄
-                return  StringUtility.Contact("<color=#5eeff2>", msg, "</color>");
+                return StringUtility.Contact("<color=#5eeff2>", msg, "</color>");
             case TextColType.itemyonghen:
                 // f5b4ea 姘告亽
                 return StringUtility.Contact("<color=#f5b4ea>", msg, "</color>");
@@ -762,7 +792,7 @@
     }
 
     public static string AppendColor(Color color, string msg)
-    { 
+    {
         return StringUtility.Contact("<color=#", ColorToHexWithHash(color), ">", msg, "</color>");
     }
 
@@ -927,7 +957,7 @@
     }
     #endregion
 
-    
+
 
     #region 寰楀埌閲戦挶鏁伴噺鏍规嵁閲戦挶绫诲瀷
 
@@ -966,9 +996,12 @@
         {1, PlayerDataType.Gold},
         {2, PlayerDataType.GoldPaper},
         {3, PlayerDataType.Silver},
+        {15, PlayerDataType.UnionLiven},
         {41, PlayerDataType.default26},
+        {43, PlayerDataType.default34},
         {42, PlayerDataType.default33},
-
+        {53, PlayerDataType.ChallengeVoucher},
+        {99, PlayerDataType.ExAttr11},
     };
 
     public static long GetMoneyCnt(int moneyType)
@@ -1002,6 +1035,7 @@
                 }
             case 15:
                 {
+                    // 鍏細璐$尞甯�
                     return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.UnionLiven);
                     //return (ulong)ModelCenter.Instance.GetModel<StoreModel>().GetTCBPlayerData(PlayerDataType.UnionLiven);
                 }
@@ -1067,7 +1101,7 @@
                 }
             case 43:
                 {
-                    //鍑瘉绉垎
+                    //灏嗛瓊
                     return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default34);
                 }
             case 44:
@@ -1105,6 +1139,16 @@
                     //姝﹀皢鎷涘嫙绉垎
                     return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default44);
                 }
+            case 52:
+                {
+                    //娣橀噾浠�
+                    return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.GoldRush);
+                }
+            case 53:
+                {
+                    //鎸戞垬鍑瘉
+                    return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.ChallengeVoucher);
+                }
             case 98:
                 {
                     //杩囨湡鍨嬩唬閲戝埜
@@ -1126,22 +1170,57 @@
     }
 
     //鏄剧ず鏁伴噺, 鏍煎紡n/m, 瓒冲缁胯壊涓嶈冻绾㈣壊
-    public static string ShowUseMoney(int moneyType, long useCnt, TextColType engoughColor = TextColType.Green)
+    public static string ShowUseMoney(int moneyType, long useCnt, bool showLargeNum = false)
     {
         long cnt = GetMoneyCnt(moneyType);
-        return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(useCnt)}/{ReplaceLargeNum(cnt)}");
+        if (showLargeNum)
+            return AppendColor(useCnt <= cnt ? TextColType.Green : TextColType.Red, $"{ReplaceLargeNum(cnt)}/{useCnt}");
+        else
+            return AppendColor(useCnt <= cnt ? TextColType.Green : TextColType.Red, $"{cnt}/{useCnt}");
     }
 
-    public static string ShowUseItem(PackType type, int itemId, long useCnt, TextColType engoughColor = TextColType.Green)
+    public static string ShowUseItem(PackType type, int itemId, long useCnt, bool showLargeNum = false)
     {
         long cnt = PackManager.Instance.GetItemCountByID(type, itemId);
-        return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(useCnt)}/{ReplaceLargeNum(cnt)}");
+        if (showLargeNum)
+            return AppendColor(useCnt <= cnt ? TextColType.Green : TextColType.Red, $"{ReplaceLargeNum(cnt)}/{useCnt}");
+        else
+            return AppendColor(useCnt <= cnt ? TextColType.Green : TextColType.Red, $"{cnt}/{useCnt}");
     }
+
+
+    /// <param name="needTips">0 涓嶅搷搴� 1 寮规彁绀� 2 寮硅幏鍙栭�斿緞tips</param>
+    public static bool CheckMoneyCount(int moneyType, long needCount, int needTips = 0)
+    {
+        if (needCount <= 0)
+        {
+            return true;
+        }
+
+        long haveCount = GetMoneyCnt(moneyType);
+
+        bool isEnough = haveCount >= needCount;
+
+        if (!isEnough)
+        {
+            if (needTips == 1)
+            {
+                SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
+            }
+            else if (needTips == 2)
+            {
+                ItemTipUtility.ShowMoneyTip(moneyType);
+            }
+        }
+
+        return isEnough;
+    }
+
 
     #endregion
 
     #region 寰楀埌瑁呭浣嶆垨鑰呯绂忔爲鍝佽川鍚嶇О 甯﹂鑹�
-    public static string GetQualityNameWithColor(int quality, string format="{0}")
+    public static string GetQualityNameWithColor(int quality, string format = "{0}")
     {
         return AppendColor(quality, string.Format(format, Language.Get("equipQuality" + quality)), true, 1);
     }
@@ -1221,13 +1300,15 @@
         return content;
     }
 
+    //妫�鏌ュ悕瀛楅暱搴︼紝鐜╁鍚嶅拰鍏細鍚�
+    //涓嶅悓鍥藉闀垮害涓嶅悓锛屾帓鐗堜笉鍚�
     public static bool SatisfyNameLength(string name, out int error)
     {
         error = 0;
         //bool pureChinese = Regex.IsMatch(name, "^[\u4e00-\u9fa5]+$");
         //var chsCount = GetChsCount(name);
         int length = Encoding.Default.GetBytes(name).Length;
-        var maxlength = 20;
+        var maxlength = 14;  //绾腑鏂囦笉寤鸿瓒呰繃7涓瓧
         var minlength = 3;
         if (length > maxlength)
         {
@@ -1325,4 +1406,26 @@
         return money / scale;
     }
 
+
+    public static string RemoveColor(string content)
+    {
+        content = WordAnalysis.Color_Start_Regex.Replace(content, string.Empty);
+        content = WordAnalysis.Color_End_Regex.Replace(content, string.Empty);
+        return content;
+    }
+
+    //澶嶅埗鍒板壀璐存澘
+    // TODO 鏆備笉鏀寔web鍚庣画琛ュ厖
+    public static void CopyToClipboard(string text)
+    {
+        GUIUtility.systemCopyBuffer = text;
+        Debug.Log("鏂囧瓧宸插鍒跺埌鍓创鏉�: " + text);
+    }
+    
+    //鑾峰彇鍓垏鏉垮唴瀹�
+    public static string GetClipboardText()
+    {
+        return GUIUtility.systemCopyBuffer;
+    }
+    
 }

--
Gitblit v1.8.0