From 77bdaf262106bfa69b9b83b664653cdb0249cb5f Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期三, 26 九月 2018 18:01:17 +0800
Subject: [PATCH] 1885 增加神兽传奇属性预览
---
System/KnapSack/Logic/ItemTipsModel.cs | 245 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 213 insertions(+), 32 deletions(-)
diff --git a/System/KnapSack/Logic/ItemTipsModel.cs b/System/KnapSack/Logic/ItemTipsModel.cs
index 79fa337..a5969ea 100644
--- a/System/KnapSack/Logic/ItemTipsModel.cs
+++ b/System/KnapSack/Logic/ItemTipsModel.cs
@@ -22,7 +22,10 @@
public Dictionary<int, Dictionary<int, int>> legendAttrLvValuePreviewDict { get; private set; } // key 灞炴�D value 瑁呭闃剁骇锛屽睘鎬ф暟鍊�
public Dictionary<int, int> wingsLegendAttrCntPreviewDict { get; private set; } //key 闃舵暟 value灞炴�ф暟
public Dictionary<int, Dictionary<int, List<int>>> wingsLegendAttrValuePreviewDict { get; private set; } //key 闃舵暟 value 灞炴�D 灞炴�ф暟鍊�
-
+ public Dictionary<int, Dictionary<LegendAttrType, List<int>>> dogzLegendAttrIDPreviewDict { get; private set; } // key 瑁呭浣� value 灞炴�х被鍨嬶紝灞炴�D
+ public Dictionary<int, Dictionary<int, int>> dogzLegendAttrColorValuePreviewDict { get; private set; } // key 灞炴�D value 瑁呭鍝佽川锛屽睘鎬ф暟鍊�
+ public Dictionary<string, Dictionary<LegendAttrType, int>> dogzLegendAttrCntPreviewDict { get; private set; } // key 鍝佽川+鏄熺骇 value 灞炴�ф潯鐩暟
+ public Dictionary<int, List<int>> dogzLegendAttrTypeDict { get; private set; }
public Dictionary<int, List<string>> guardDesDict { get; private set; }
public Dictionary<int, PetInfoConfig> unlockPetDict { get; private set; }
@@ -113,6 +116,22 @@
}
}
+ FuncConfigConfig dogzlegendAttrColor = Config.Instance.Get<FuncConfigConfig>("DogzLegendAttrColor");
+ dogzLegendAttrTypeDict = new Dictionary<int, List<int>>();
+ if (dogzlegendAttrColor != null)
+ {
+ JsonData jsonData = JsonMapper.ToObject(dogzlegendAttrColor.Numerical1);
+ foreach (var key in jsonData.Keys)
+ {
+ List<int> attrIDlist = new List<int>();
+ dogzLegendAttrTypeDict.Add(int.Parse(key), attrIDlist);
+ for (int i = 0; i < jsonData[key].Count; i++)
+ {
+ attrIDlist.Add((int)jsonData[key][i]);
+ }
+ }
+ }
+
FuncConfigConfig legendAttrCountPreview = Config.Instance.Get<FuncConfigConfig>("LegendAttrCountPreview");
JsonData legendAttrCntData = JsonMapper.ToObject(legendAttrCountPreview.Numerical1);
legendAttrCntPreviewDict = new Dictionary<string, Dictionary<LegendAttrType, int>>();
@@ -128,6 +147,26 @@
for (i = 0; i < legendAttrCntData[color][star].Count; i++)
{
legendCntDic.Add((LegendAttrType)i, int.Parse(legendAttrCntData[color][star][i].ToString()));
+ }
+ }
+ }
+ }
+
+ FuncConfigConfig dogzlegendAttrCountPreview = Config.Instance.Get<FuncConfigConfig>("DogzLegendAttrCountPreview");
+ JsonData dogzlegendAttrCntData = JsonMapper.ToObject(dogzlegendAttrCountPreview.Numerical1);
+ dogzLegendAttrCntPreviewDict = new Dictionary<string, Dictionary<LegendAttrType, int>>();
+ foreach (var color in dogzlegendAttrCntData.Keys)
+ {
+ foreach (var star in dogzlegendAttrCntData[color].Keys)
+ {
+ Dictionary<LegendAttrType, int> legendCntDic = new Dictionary<LegendAttrType, int>();
+ dogzLegendAttrCntPreviewDict.Add(StringUtility.Contact(color, star), legendCntDic);
+ if (dogzlegendAttrCntData[color][star].IsArray)
+ {
+ int i = 0;
+ for (i = 0; i < dogzlegendAttrCntData[color][star].Count; i++)
+ {
+ legendCntDic.Add((LegendAttrType)i, int.Parse(dogzlegendAttrCntData[color][star][i].ToString()));
}
}
}
@@ -159,6 +198,32 @@
}
}
+ FuncConfigConfig dogzlegendAttrRulePreview = Config.Instance.Get<FuncConfigConfig>("DogzLegendAttrRulePreview");
+ JsonData dogzlegendAttrRuleData = JsonMapper.ToObject(dogzlegendAttrRulePreview.Numerical1);
+ dogzLegendAttrIDPreviewDict = new Dictionary<int, Dictionary<LegendAttrType, List<int>>>();
+ foreach (var itemPlace in dogzlegendAttrRuleData.Keys)
+ {
+ Dictionary<LegendAttrType, List<int>> legendIdDic = new Dictionary<LegendAttrType, List<int>>();
+ dogzLegendAttrIDPreviewDict.Add(int.Parse(itemPlace.ToString()), legendIdDic);
+ if (dogzlegendAttrRuleData[itemPlace].IsArray)
+ {
+ int i = 0;
+ for (i = 0; i < dogzlegendAttrRuleData[itemPlace].Count; i++)
+ {
+ if (dogzlegendAttrRuleData[itemPlace][i].IsArray)
+ {
+ List<int> attrIdlist = new List<int>();
+ legendIdDic.Add((LegendAttrType)i, attrIdlist);
+ int j = 0;
+ for (j = 0; j < dogzlegendAttrRuleData[itemPlace][i].Count; j++)
+ {
+ attrIdlist.Add(int.Parse(dogzlegendAttrRuleData[itemPlace][i][j].ToString()));
+ }
+ }
+ }
+ }
+ }
+
FuncConfigConfig legendAttrColorValuePreview = Config.Instance.Get<FuncConfigConfig>("LegendAttrValueByColorPreview");
JsonData legendAttrColorData = JsonMapper.ToObject(legendAttrColorValuePreview.Numerical1);
legendAttrColorValuePreviewDict = new Dictionary<int, Dictionary<int, int>>();
@@ -174,6 +239,26 @@
if (legendAttrColorData[attrID][i].IsArray)
{
legendValueDic.Add(int.Parse(legendAttrColorData[attrID][i][0].ToString()), int.Parse(legendAttrColorData[attrID][i][1].ToString()));
+ }
+ }
+ }
+ }
+
+ FuncConfigConfig dogzlegendAttrColorValuePreview = Config.Instance.Get<FuncConfigConfig>("DogzLegendAttrValueByColorPreview");
+ JsonData dogzlegendAttrColorData = JsonMapper.ToObject(dogzlegendAttrColorValuePreview.Numerical1);
+ dogzLegendAttrColorValuePreviewDict = new Dictionary<int, Dictionary<int, int>>();
+ foreach (var attrID in dogzlegendAttrColorData.Keys)
+ {
+ Dictionary<int, int> legendValueDic = new Dictionary<int, int>();
+ dogzLegendAttrColorValuePreviewDict.Add(int.Parse(attrID.ToString()), legendValueDic);
+ if (dogzlegendAttrColorData[attrID].IsArray)
+ {
+ int i = 0;
+ for (i = 0; i < dogzlegendAttrColorData[attrID].Count; i++)
+ {
+ if (dogzlegendAttrColorData[attrID][i].IsArray)
+ {
+ legendValueDic.Add(int.Parse(dogzlegendAttrColorData[attrID][i][0].ToString()), int.Parse(dogzlegendAttrColorData[attrID][i][1].ToString()));
}
}
}
@@ -1061,6 +1146,49 @@
return s;
}
+ public string GetDogzLegendAttrCntPreview(ItemAttrData attrData)
+ {
+ string s = "";
+ if (attrData.isCustom)
+ {
+ s = Language.Get("LegendAttPreview_MustTitle", attrData.legendDataDict.Count);
+ }
+ else
+ {
+ int attrCnt = 0;
+ string attrCntKey = StringUtility.Contact(attrData.itemConfig.ItemColor, attrData.itemConfig.StarLevel);
+ if (dogzLegendAttrCntPreviewDict.ContainsKey(attrCntKey))
+ {
+ foreach (var key in dogzLegendAttrCntPreviewDict[attrCntKey].Keys)
+ {
+ switch (key)
+ {
+ case LegendAttrType.Normal:
+ attrCnt += dogzLegendAttrCntPreviewDict[attrCntKey][key];
+ break;
+ case LegendAttrType.Pursuit:
+ attrCnt += dogzLegendAttrCntPreviewDict[attrCntKey][key];
+ break;
+ case LegendAttrType.Fixed:
+ attrCnt += dogzLegendAttrCntPreviewDict[attrCntKey][key];
+ break;
+ }
+ }
+ }
+
+ if (attrData.itemConfig.StarLevel > 2)
+ {
+ s = Language.Get("LegendAttPreview_MustTitle", attrCnt);
+ }
+ else
+ {
+ s = Language.Get("LegendAttPreview_MightTitle", attrCnt);
+ }
+ }
+
+ return s;
+ }
+
public string GetWingsLegendAttrCntPreview(ItemAttrData attrData)
{
string s = "";
@@ -1113,9 +1241,30 @@
attrDict.Add(idlist[i], valuelist[i]);
}
- if (itemConfig.EquipPlace != (int)RoleEquipType.retWing)
+ switch (itemConfig.EquipPlace)
{
- idlist.Sort(CompareLegendAttrType);
+ case 11:
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 12:
+ idlist.Sort(CompareLegendAttrType);
+ break;
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ idlist.Sort(CompareDogzLegendAttrType);
+ break;
}
for (i = 0; i < idlist.Count; i++)
@@ -1230,28 +1379,46 @@
}
}
-
- if (itemConfig.EquipPlace != (int)RoleEquipType.retWing)
+
+ switch (itemConfig.EquipPlace)
{
- s = GetTextColorByLegendType(GetLegendType(idlist[i]), s);
- }
- else
- {
- foreach (var key in wingsLegendAttrColorDict.Keys)
- {
- if (key == idlist[i])
+ case 11:
+ foreach (var key in wingsLegendAttrColorDict.Keys)
{
- foreach (var key2 in wingsLegendAttrColorDict[key].Keys)
+ if (key == idlist[i])
{
- if (attrDict[idlist[i]] < key2)
+ foreach (var key2 in wingsLegendAttrColorDict[key].Keys)
{
- s = string.Format("<color=#{0}>{1}</color>", wingsLegendAttrColorDict[key][key2], s);
- break;
+ if (attrDict[idlist[i]] < key2)
+ {
+ s = string.Format("<color=#{0}>{1}</color>", wingsLegendAttrColorDict[key][key2], s);
+ break;
+ }
}
+ break;
}
- break;
}
- }
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 12:
+ s = GetTextColorByLegendType(GetLegendType(idlist[i]), s);
+ break;
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ s = GetTextColorByLegendType(GetDogzLegendType(idlist[i]), s);
+ break;
}
if (attrSB.Length <= 0)
@@ -1277,11 +1444,32 @@
return 0;
}
+ private int CompareDogzLegendAttrType(int start, int end)
+ {
+ int type1 = GetDogzLegendType(start);
+ int type2 = GetDogzLegendType(end);
+ if (type1.CompareTo(type2) != 0) return type1.CompareTo(type2);
+
+ return 0;
+ }
+
private int GetLegendType(int id)
{
foreach (var key in equipLegendAttrTypeDict.Keys)
{
if (equipLegendAttrTypeDict[key].Contains(id))
+ {
+ return key;
+ }
+ }
+ return 0;
+ }
+
+ private int GetDogzLegendType(int id)
+ {
+ foreach (var key in dogzLegendAttrTypeDict.Keys)
+ {
+ if (dogzLegendAttrTypeDict[key].Contains(id))
{
return key;
}
@@ -1899,17 +2087,17 @@
{
legendIdlist = new List<int>();
legendValuelist = new List<int>();
- if (itemTipsModel.legendAttrIDPreviewDict.ContainsKey(itemConfig.EquipPlace))
+ if (itemTipsModel.dogzLegendAttrIDPreviewDict.ContainsKey(itemConfig.EquipPlace))
{
- foreach (var attrType in itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace].Keys)
+ foreach (var attrType in itemTipsModel.dogzLegendAttrIDPreviewDict[itemConfig.EquipPlace].Keys)
{
switch (attrType)
{
case LegendAttrType.Pursuit:
- legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
+ legendIdlist.AddRange(itemTipsModel.dogzLegendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
break;
case LegendAttrType.Fixed:
- legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
+ legendIdlist.AddRange(itemTipsModel.dogzLegendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
break;
}
}
@@ -1917,18 +2105,11 @@
int i = 0;
for (i = 0; i < legendIdlist.Count; i++)
{
- if (itemTipsModel.legendAttrColorValuePreviewDict.ContainsKey(legendIdlist[i]))
+ if (itemTipsModel.dogzLegendAttrColorValuePreviewDict.ContainsKey(legendIdlist[i]))
{
- if (itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.ItemColor))
+ if (itemTipsModel.dogzLegendAttrColorValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.ItemColor))
{
- legendValuelist.Add(itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]][itemConfig.ItemColor]);
- }
- }
- else if (itemTipsModel.legendAttrLvValuePreviewDict.ContainsKey(legendIdlist[i]))
- {
- if (itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.LV))
- {
- legendValuelist.Add(itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]][itemConfig.LV]);
+ legendValuelist.Add(itemTipsModel.dogzLegendAttrColorValuePreviewDict[legendIdlist[i]][itemConfig.ItemColor]);
}
}
}
--
Gitblit v1.8.0