From 20ac119873a7d4fb82e8f36e53614de239d16925 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 29 四月 2019 16:54:31 +0800
Subject: [PATCH] Merge branch 'master' into SubWindow
---
System/Message/RichTableEvent.cs | 228 ++++++++++++++++++++++++++++-----------------------------
1 files changed, 112 insertions(+), 116 deletions(-)
diff --git a/System/Message/RichTableEvent.cs b/System/Message/RichTableEvent.cs
index 43e4182..34b3725 100644
--- a/System/Message/RichTableEvent.cs
+++ b/System/Message/RichTableEvent.cs
@@ -58,13 +58,12 @@
if (cfg != null)
{
var _itemColor = cfg.ItemColor;
- if (cfg.Type == 113)//缈呰唨
+ if (ItemLogicUtility.Instance.IsWing(id))//缈呰唨
{
- Dictionary<int, List<int>> userdatadic = null;
- if (_dict.ContainsKey("userdata"))
+ if (_dict.ContainsKey("itemplus"))
{
- string userdata = _dict["userdata"];
- userdatadic = ConfigParse.Analysis(userdata);
+ var itemplus = LitJson.JsonMapper.ToObject<ItemTipUtility.CustomItemPlus>(_dict["itemplus"]);
+ var userdatadic = ConfigParse.Analysis(itemplus.UserData);
_itemColor = ItemLogicUtility.Instance.GetItemQuality(cfg.ID, userdatadic);
}
}
@@ -397,125 +396,128 @@
return string.Empty;
}
+
+ EquipGemModel equipGemModel { get { return ModelCenter.Instance.GetModel<EquipGemModel>(); } }
private void OnSingleClickItemCell(int itemId, RichTextMgr.HrefInfo hrefInfo)
{
- int[] stone = null;
- if (hrefInfo.mSplits.ContainsKey("stone"))
+ ItemTipUtility.CustomItemPlus itemplus = default(ItemTipUtility.CustomItemPlus);
+ if (hrefInfo.mSplits.ContainsKey("itemplus"))
{
- try
- {
- stone = LitJson.JsonMapper.ToObject<int[]>(hrefInfo.mSplits["stone"]);
- }
- catch (Exception e)
- {
- DebugEx.Log(e.Message);
- }
- }
- int itemCount = 0;
- if (hrefInfo.mSplits.ContainsKey("itemcnt"))
- {
- itemCount = int.Parse(hrefInfo.mSplits["itemcnt"]);
- }
- int isBind = 0;
- if (hrefInfo.mSplits.ContainsKey("isbind"))
- {
- isBind = int.Parse(hrefInfo.mSplits["isbind"]);
- }
- int strengthenLv = 0;
- if (hrefInfo.mSplits.ContainsKey("strengthenlv"))
- {
- strengthenLv = int.Parse(hrefInfo.mSplits["strengthenlv"]);
- }
- int index = 0;
- if (hrefInfo.mSplits.ContainsKey("place"))
- {
- index = int.Parse(hrefInfo.mSplits["place"]);
+ itemplus = LitJson.JsonMapper.ToObject<ItemTipUtility.CustomItemPlus>(hrefInfo.mSplits["itemplus"]);
}
- if (hrefInfo.mSplits.ContainsKey("equippartsuite")
- && hrefInfo.mSplits["equippartsuite"] != string.Empty)
+ if (ItemLogicUtility.Instance.IsEquip(itemId))
{
- LitJson.JsonData _json = null;
- try
+ var itemConfig = ItemConfig.Get(itemId);
+ Dictionary<int, int> gems = new Dictionary<int, int>();
+ Dictionary<int, bool> gemHoleActiveStates = new Dictionary<int, bool>();
+ if (itemplus.Stone != null)
{
- _json = LitJson.JsonMapper.ToObject(hrefInfo.mSplits["equippartsuite"]);
- }
- catch (Exception e)
- {
- DebugEx.Log(e.Message);
- }
- }
-
- equipItems = null;
- if (hrefInfo.mSplits.ContainsKey("equipitems")
- && hrefInfo.mSplits["equipitems"] != string.Empty)
- {
- try
- {
- equipItems = LitJson.JsonMapper.ToObject<int[][]>(hrefInfo.mSplits["equipitems"]);
- }
- catch (Exception e)
- {
- DebugEx.Log(e.Message);
- }
- }
-
- RoleParticularModel.EquipWash _equipWash = default(RoleParticularModel.EquipWash);
- if (hrefInfo.mSplits.ContainsKey("equipwash")
- && hrefInfo.mSplits["equipwash"] != string.Empty)
- {
- try
- {
- _equipWash = LitJson.JsonMapper.ToObject<RoleParticularModel.EquipWash>(hrefInfo.mSplits["equipwash"]);
- }
- catch (Exception e)
- {
- DebugEx.Log(e.Message);
- }
- }
-
- Dictionary<int, List<int>> userdatadic = null;
- if (hrefInfo.mSplits.ContainsKey("userdata"))
- {
- string userdata = hrefInfo.mSplits["userdata"];
- userdatadic = ConfigParse.Analysis(userdata);
- }
- Dictionary<int, int> suitLvDict = null;
- if (hrefInfo.mSplits.ContainsKey("suitlv"))
- {
- suitLvDict = new Dictionary<int, int>();
- string suitLvData = hrefInfo.mSplits["suitlv"];
- string[] split_data = suitLvData.Split('\'');
- for (int i = 0; i < split_data.Length; i++)
- {
- string[] split_value = split_data[i].Split('_');
- if (split_value.Length == 2)
+ for (int i = 0; i < itemplus.Stone.Length; i++)
{
- int key = int.Parse(split_value[0]);
- suitLvDict.Add(key, int.Parse(split_value[1]));
+ gems.Add(i, itemplus.Stone[i]);
+ if (i == 3)
+ {
+ gemHoleActiveStates.Add(i, itemplus.Stone[i] != 0);
+ }
}
}
- }
- if (hrefInfo.mSplits.ContainsKey("chatsenditem"))
- {
- var chatSendItem = LitJson.JsonMapper.ToObject<ChatCtrl.ChatSendItem>(hrefInfo.mSplits["chatsenditem"]);
- itemId = chatSendItem.itemId;
- itemCount = chatSendItem.count;
- stone = chatSendItem.equipGems;
- if (!string.IsNullOrEmpty(chatSendItem.useData))
+ for (int i = 0; i < EquipGemModel.EQUIPGEM_HOLE_COUNT; i++)
{
- userdatadic = ConfigParse.Analysis(chatSendItem.useData);
+ if (i < 3)
+ {
+ gemHoleActiveStates.Add(i, equipGemModel.IsGemHoleOpen(i, itemplus.Star));
+ }
}
+
+ var legendProperties = new List<Int2>();
+ Dictionary<int, List<int>> useDataDict = null;
+ if (!string.IsNullOrEmpty(itemplus.UserData))
+ {
+ useDataDict = ConfigParse.Analysis(itemplus.UserData);
+ if (useDataDict != null)
+ {
+ foreach (var key in useDataDict.Keys)
+ {
+ var list = useDataDict[key];
+ foreach (var value in list)
+ {
+ legendProperties.Add(new Int2(key, value));
+ }
+ }
+ }
+ }
+
+ List<Int2> trainProperties = new List<Int2>();
+ if (!itemplus.Wash.Equals(default(ItemTipUtility.CustomEquipWash)))
+ {
+ var washType = EquipTrainModel.GetTrainType(itemConfig.EquipPlace);
+ var trainConfig = EquipWashConfig.Get(washType, 1);
+ for (int i = 0; i < itemplus.Wash.Value.Length; i++)
+ {
+ var propertyType = i == 0 ? trainConfig.config.attType1 : i == 1 ?
+ trainConfig.config.attType2 : trainConfig.config.attType3;
+ trainProperties.Add(new Int2(propertyType, itemplus.Wash.Value[i]));
+ }
+ }
+
+ Dictionary<EquipSuitType, int> suitLevels = new Dictionary<EquipSuitType, int>();
+ suitLevels.Add(EquipSuitType.TwoSuit, -1);
+ suitLevels.Add(EquipSuitType.FiveSuit, -1);
+ suitLevels.Add(EquipSuitType.EightSuit, -1);
+
+ List<int> suitplaces = new List<int>();
+
+ if (itemplus.Equips != null)
+ {
+ var stars = new List<int>();
+ for (int i = 0; i < itemplus.Equips.Length; i++)
+ {
+ var array = itemplus.Equips[i];
+ var config = ItemConfig.Get(array[0]);
+ if (config.EquipPlace > 8)
+ {
+ continue;
+ }
+ stars.Add(array[1]);
+
+ if (config.SuiteiD > 0)
+ {
+ suitplaces.Add(config.EquipPlace);
+ }
+ }
+
+ stars.Sort((int x, int y) => { return x.CompareTo(y); });
+
+ var twoSuitLevel = stars.Count > 1 ? stars[1] : -1;
+ var fiveSuitLevel = stars.Count > 4 ? stars[4] : -1;
+ var eightSuitLevel = stars.Count > 7 ? stars[7] : -1;
+
+ suitLevels[EquipSuitType.TwoSuit] = twoSuitLevel;
+ suitLevels[EquipSuitType.FiveSuit] = fiveSuitLevel;
+ suitLevels[EquipSuitType.EightSuit] = eightSuitLevel;
+ }
+
+ ItemTipUtility.ShowCustomEquip(new ItemTipUtility.CustomEquipInfo()
+ {
+ itemId = itemId,
+ job = itemConfig.JobLimit,
+ strengthenLevel = itemplus.PlusLV,
+ starLevel = itemplus.Star,
+ gems = gems,
+ legendProperties = legendProperties,
+ score = ItemLogicUtility.Instance.GetEquipScore(PackType.Item, itemId, useDataDict, true),
+ gemHoleActiveStates = gemHoleActiveStates,
+ suitLevels = suitLevels,
+ suitPlaces = suitplaces,
+ trainProperties = trainProperties,
+ });
}
-
- // ItemAttrData attrData = new ItemAttrData(itemId, true, (ulong)itemCount, -1, false, PackType.Deleted,
- // "", userdatadic);
- // attrData.SetGemModel(stone);
- // attrData.SetStrengthData(strengthenLv, GetStrengthenType(itemId));
- // itemTipsModel.SetItemTipsModel(attrData);
-
- ItemTipUtility.Show(itemId);
+ else
+ {
+ ItemTipUtility.Show(itemId);
+ }
}
List<RoleParticularModel.EquipSuit> equipSuitList = new List<RoleParticularModel.EquipSuit>();
@@ -555,12 +557,6 @@
default:
return Language.Get("EquipSuitWhite");
}
- }
-
- public static int GetStrengthenType(int _id)
- {
- var _type = 1;
- return _type;
}
private static string GetTextColorByItemColor(string info, int _itemColor, Dictionary<string, string> dic)
--
Gitblit v1.8.0