From 494fb208f2d95664dc7d9b87a64eac8d0ad9870c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 30 十月 2025 16:51:26 +0800
Subject: [PATCH] 0312 物品增加碎片显示;小数点统一截断处理不四舍五入

---
 Main/Utility/UIHelper.cs                    |   52 +++++++++++++++-----------
 Main/Utility/EnumHelper.cs                  |    5 ++
 Main/Config/Configs/ItemConfig.cs           |    6 +-
 Main/System/KnapSack/New/CommonItemBaisc.cs |    3 -
 Main/System/Store/BuyItemWin.cs             |    2 
 5 files changed, 40 insertions(+), 28 deletions(-)

diff --git a/Main/Config/Configs/ItemConfig.cs b/Main/Config/Configs/ItemConfig.cs
index 188f823..ad971f4 100644
--- a/Main/Config/Configs/ItemConfig.cs
+++ b/Main/Config/Configs/ItemConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           Wednesday, September 10, 2025
+//    [  Date ]:           Thursday, October 30, 2025
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -57,7 +57,7 @@
 	public int SuiteiD;
 	public string IconKey;
 	public string Description;
-	public int BatchUse;
+	public int Purpose;
 	public int Jump;
 	public int[] GetWay;
 	public int BaseEffectID;
@@ -154,7 +154,7 @@
 
 			Description = tables[40];
 
-			int.TryParse(tables[41],out BatchUse); 
+			int.TryParse(tables[41],out Purpose); 
 
 			int.TryParse(tables[42],out Jump); 
 
diff --git a/Main/System/KnapSack/New/CommonItemBaisc.cs b/Main/System/KnapSack/New/CommonItemBaisc.cs
index 80543d1..f4022bb 100644
--- a/Main/System/KnapSack/New/CommonItemBaisc.cs
+++ b/Main/System/KnapSack/New/CommonItemBaisc.cs
@@ -272,7 +272,6 @@
         //         break;
         // }
 
-        //寰呯瓥鍒掔‘瀹�
         if (config.Type == (int)ItemType.Hero)
         {
             var heroConfig = HeroConfig.Get(itemId);
@@ -284,7 +283,7 @@
         {
             countryIcon.SetActive(false);
         }
-        // pieceIcon.SetActive(); 
+        pieceIcon.SetActive(config.Purpose == (int)ItemPurpose.Piece); 
     }
 
     // / <summary>
diff --git a/Main/System/Store/BuyItemWin.cs b/Main/System/Store/BuyItemWin.cs
index 89ab2d6..571cd4b 100644
--- a/Main/System/Store/BuyItemWin.cs
+++ b/Main/System/Store/BuyItemWin.cs
@@ -85,7 +85,7 @@
         limitText.text = limitStr;
 
         moneyIcon.SetIconWithMoneyType(shopConfig.MoneyType);
-        moneyText.text = UIHelper.ShowUseMoney(shopConfig.MoneyType, shopConfig.MoneyNum * useCnt);
+        moneyText.text = UIHelper.ShowUseMoney(shopConfig.MoneyType, shopConfig.MoneyNum * useCnt, false);
 
     }
 
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index d7eb63c..c5c6a2e 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -779,6 +779,11 @@
 
 }
 
+//鐗╁搧鐢ㄩ��
+public enum ItemPurpose
+{
+    Piece = 1,   //纰庣墖鐢ㄤ簬鍚堟垚
+}
 
 public enum MakeType
 {
diff --git a/Main/Utility/UIHelper.cs b/Main/Utility/UIHelper.cs
index 4ee50a4..21ee7a0 100644
--- a/Main/Utility/UIHelper.cs
+++ b/Main/Utility/UIHelper.cs
@@ -207,17 +207,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)
     {
@@ -228,23 +221,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);
         }
     }
 
@@ -258,25 +251,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)
@@ -1154,16 +1156,22 @@
     }
 
     //鏄剧ず鏁伴噺, 鏍煎紡n/m, 瓒冲缁胯壊涓嶈冻绾㈣壊
-    public static string ShowUseMoney(int moneyType, long useCnt, TextColType engoughColor = TextColType.Green)
+    public static string ShowUseMoney(int moneyType, long useCnt, bool showLargeNum = true)
     {
         long cnt = GetMoneyCnt(moneyType);
-        return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(cnt)}/{ReplaceLargeNum(useCnt)}");
+        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 = true)
     {
         long cnt = PackManager.Instance.GetItemCountByID(type, itemId);
-        return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(cnt)}/{ReplaceLargeNum(useCnt)}");
+        if (showLargeNum)
+            return AppendColor(useCnt <= cnt ? TextColType.Green : TextColType.Red, $"{ReplaceLargeNum(cnt)}/{useCnt}");
+        else
+            return AppendColor(useCnt <= cnt ? TextColType.Green : TextColType.Red, $"{cnt}/{useCnt}");
     }
 
 

--
Gitblit v1.8.0