From e53af2bb643ac8f24ced6ca8449347c1f0cc028f Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期六, 02 三月 2019 17:50:46 +0800
Subject: [PATCH] 3555 新版装备功能开发

---
 Core/GameEngine/Model/Config/EquipSuitConfig.cs                       |   12 +--
 Core/GameEngine/Model/TelPartialConfig/PartialEquipSuitConfig.cs      |   38 ++++++++++++
 Core/GameEngine/Model/Config/EquipSuitConfig.cs.meta                  |    2 
 System/Equip/EquipSuitPropertyWidget.cs                               |   33 +++++++++-
 Core/GameEngine/Model/TelPartialConfig/PlayerPropertyConfig.cs        |   25 ++++++++
 Core/GameEngine/Model/TelPartialConfig/PartialEquipSuitConfig.cs.meta |   12 ++++
 6 files changed, 110 insertions(+), 12 deletions(-)

diff --git a/Core/GameEngine/Model/Config/EquipSuitConfig.cs b/Core/GameEngine/Model/Config/EquipSuitConfig.cs
index 5a9a2e3..9aca6d5f 100644
--- a/Core/GameEngine/Model/Config/EquipSuitConfig.cs
+++ b/Core/GameEngine/Model/Config/EquipSuitConfig.cs
@@ -18,8 +18,9 @@
 	public readonly int suiteID;
 	public readonly int suiteCnt;
 	public readonly int star;
-	public readonly int[] attr;
+	public readonly Int2 attr;
 	public readonly int skillID;
+	public readonly string description;
 
 	public EquipSuitConfig()
     {
@@ -41,14 +42,11 @@
 
 			int.TryParse(tables[4],out star); 
 
-			string[] attrStringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
-			attr = new int[attrStringArray.Length];
-			for (int i=0;i<attrStringArray.Length;i++)
-			{
-				 int.TryParse(attrStringArray[i],out attr[i]);
-			}
+			Int2.TryParse(tables[5],out attr); 
 
 			int.TryParse(tables[6],out skillID); 
+
+			description = tables[7];
         }
         catch (Exception ex)
         {
diff --git a/Core/GameEngine/Model/Config/EquipSuitConfig.cs.meta b/Core/GameEngine/Model/Config/EquipSuitConfig.cs.meta
index 42138ef..5ed985f 100644
--- a/Core/GameEngine/Model/Config/EquipSuitConfig.cs.meta
+++ b/Core/GameEngine/Model/Config/EquipSuitConfig.cs.meta
@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 guid: 0293f3c320d15774eb4424928e85e47a
-timeCreated: 1551517326
+timeCreated: 1551518813
 licenseType: Pro
 MonoImporter:
   serializedVersion: 2
diff --git a/Core/GameEngine/Model/TelPartialConfig/PartialEquipSuitConfig.cs b/Core/GameEngine/Model/TelPartialConfig/PartialEquipSuitConfig.cs
new file mode 100644
index 0000000..d55ec29
--- /dev/null
+++ b/Core/GameEngine/Model/TelPartialConfig/PartialEquipSuitConfig.cs
@@ -0,0 +1,38 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using Snxxz.UI;
+
+public partial class EquipSuitConfig : IConfigPostProcess
+{
+
+    static Dictionary<int, List<EquipSuitConfig>> equipSuitConfigs = new Dictionary<int, List<EquipSuitConfig>>();
+
+    public void OnConfigParseCompleted()
+    {
+        var key = suiteID * 100 + suiteCnt;
+        if (!equipSuitConfigs.ContainsKey(key))
+        {
+            equipSuitConfigs[key] = new List<EquipSuitConfig>();
+        }
+
+        equipSuitConfigs[key].Add(this);
+    }
+
+    public static List<EquipSuitConfig> GetConfigs(int job, int level, EquipSuitType type)
+    {
+        var key = (job * 100 + level) * 100 + (int)type;
+        if (equipSuitConfigs.ContainsKey(key))
+        {
+            return equipSuitConfigs[key];
+        }
+        else
+        {
+            return null;
+        }
+    }
+
+
+
+
+}
diff --git a/Core/GameEngine/Model/TelPartialConfig/PartialEquipSuitConfig.cs.meta b/Core/GameEngine/Model/TelPartialConfig/PartialEquipSuitConfig.cs.meta
new file mode 100644
index 0000000..5249be9
--- /dev/null
+++ b/Core/GameEngine/Model/TelPartialConfig/PartialEquipSuitConfig.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 60087776027a201428218496bd6d5a8f
+timeCreated: 1551517526
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/GameEngine/Model/TelPartialConfig/PlayerPropertyConfig.cs b/Core/GameEngine/Model/TelPartialConfig/PlayerPropertyConfig.cs
index 68b39cd..42d1778 100644
--- a/Core/GameEngine/Model/TelPartialConfig/PlayerPropertyConfig.cs
+++ b/Core/GameEngine/Model/TelPartialConfig/PlayerPropertyConfig.cs
@@ -27,4 +27,29 @@
         m_PropCfgs.TryGetValue(type, out list);
         return list;
     }
+
+    public static string GetPropertyDescription(int propertyId, int value)
+    {
+        var config = Get(propertyId);
+        if (config == null)
+        {
+            return string.Empty;
+        }
+
+        if (config.ISPercentage == 0)
+        {
+            return value.ToString();
+        }
+        else if (config.ISPercentage == 1)
+        {
+            return (float)Math.Round(value / 100f, 1) + "%";
+        }
+        else if (config.ISPercentage == 2)
+        {
+            return ((float)Math.Round(value / 100f, 1)).ToString();
+        }
+
+        return string.Empty;
+    }
+
 }
diff --git a/System/Equip/EquipSuitPropertyWidget.cs b/System/Equip/EquipSuitPropertyWidget.cs
index 62be395..5d96463 100644
--- a/System/Equip/EquipSuitPropertyWidget.cs
+++ b/System/Equip/EquipSuitPropertyWidget.cs
@@ -21,13 +21,20 @@
 
         EquipModel model { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
         EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
+        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
 
         public void Display(int level)
         {
+            m_SuitName.text = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.TwoSuit)[0].name;
+            for (int i = 1; i <= 8; i++)
+            {
+                var equip = packModel.GetItemByGuid(model.GetEquipSet(level).GetEquip(i));
+                m_SuitEquipNames[i - 1].color = UIHelper.GetUIColor(equip.config.SuiteiD > 0 ? TextColType.Green : TextColType.Gray);
+            }
+
             m_TwoSuit.Display(model.GetEquipSuitEntry(level, EquipSuitType.TwoSuit));
             m_FiveSuit.Display(model.GetEquipSuitEntry(level, EquipSuitType.FiveSuit));
-
-            m_EightSuitDescription.text = "";
+            m_EightSuitDescription.text = GetEightSuitDescription(level);
         }
 
         public void Dispose()
@@ -38,10 +45,28 @@
         private string GetEightSuitDescription(int level)
         {
             var lines = new List<string>();
+            var configs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.EightSuit);
+            for (int i = 0; i < configs.Count; i++)
+            {
+                var config = configs[i];
+                var description = string.Empty;
+                if (config.skillID > 0)
+                {
+                    description = config.description;
+                }
+                else
+                {
+                    var propertyConfig = PlayerPropertyConfig.Get(config.attr.x);
+                    var propertyDescription = PlayerPropertyConfig.GetPropertyDescription(config.attr.x, config.attr.y);
+                    description = StringUtility.Contact(propertyConfig.Name, " +", propertyDescription);
+                }
 
+                var line = string.Format("{0}鏄熻澶囷細 {1}", config.star, description);
+                var starLevel = starModel.GetSuitLevel(level, EquipSuitType.EightSuit);
+                lines.Add(UIHelper.AppendStringColor(config.star >= starLevel ? TextColType.Green : TextColType.Gray, line));
+            }
 
-
-            return string.Empty;
+            return string.Join("\n", lines.ToArray());
         }
 
     }

--
Gitblit v1.8.0