//刷新翅膀总属性 public void RefresWholeAttribute() { var dicAttr = new Dictionary <int, int>(); var attrs = new ObservableCollection <AttributeBaseDataModel>(); var tbWing = Table.GetWingQuality(DataModel.ItemData.ItemId); if (tbWing == null) { return; } PlayerAttr.FillWingAdvanceAttr(dicAttr, DataModel.ItemData); //培养属性 for (var i = 0; i != 5; ++i) { var tbWingTrain = Table.GetWingTrain(DataModel.ItemData.ExtraData[1 + i * 2]); if (tbWingTrain == null) { continue; } for (var j = 0; j != tbWingTrain.AddPropID.Length; ++j) { var nAttrId = tbWingTrain.AddPropID[j]; var nValue = tbWingTrain.AddPropValue[j]; if (nAttrId < 0 || nValue <= 0) { break; } if (nValue > 0 && nAttrId != -1) { if (nAttrId == 105) { if (dicAttr.ContainsKey(5)) { dicAttr.modifyValue(5, nValue); } if (dicAttr.ContainsKey(6)) { dicAttr.modifyValue(6, nValue); } if (dicAttr.ContainsKey(7)) { dicAttr.modifyValue(7, nValue); } if (dicAttr.ContainsKey(8)) { dicAttr.modifyValue(8, nValue); } } else { dicAttr.modifyValue(nAttrId, nValue); } } } } //翅膀战力 DataModel.Fightforce = PlayerDataManager.Instance.GetAttrFightPoint(dicAttr); { // foreach(var i in dicAttr) var __enumerator1 = (dicAttr).GetEnumerator(); while (__enumerator1.MoveNext()) { var i = __enumerator1.Current; { var attr = new AttributeBaseDataModel(); attr.Type = i.Key; attr.Value = i.Value; attr.Value = FixAttributeValue(i.Key, attr.Value); attrs.Add(attr); } } } DataModel.WholeAttributes = attrs; }
//刷新翅膀升阶人物属性 public void RefresWingQualityAttribute(int wingId) { var tbWing = Table.GetWingQuality(wingId); if (tbWing == null) { return; } if (tbWing.Segment > GameUtils.WingQualityMax) { GameUtils.ShowHintTip(200012); return; } { // foreach(var data in DataModel.QualityDatas) var __enumerator5 = (DataModel.QualityDatas).GetEnumerator(); while (__enumerator5.MoveNext()) { var data = __enumerator5.Current; { data.IsSelect = data.ItemId == wingId ? 1 : 0; //var tbQuality = Table.GetWingQuality(data.WingId); if (data.IsSelect == 1) { var tbWingQuality = Table.GetWingQuality(data.WingId); DataModel.SelectQuality = tbWingQuality.Segment; var tbItem = Table.GetItemBase(data.ItemId); if (tbItem != null) { DataModel.SelectName = tbItem.Name; } else { DataModel.SelectName = ""; } } } } } DataModel.QualityId = wingId; DataModel.QualityAttributes.Clear(); var attrs = new ObservableCollection <AttributeChangeDataModel>(); var dicAttr = new Dictionary <int, int>(); var dicAttrNext = new Dictionary <int, int>(); var dicAttrNextMax = new Dictionary <int, int>(); if (wingId == DataModel.ItemData.WingQuailty) { // 当前阶段 PlayerAttr.FillWingAdvanceAttr(dicAttr, DataModel.ItemData); if (DataModel.IsAdvanceFull) { PlayerAttr.FillWingBreakAttr(dicAttrNext, wingId + 1); // dicAttrNext = dicAttrNext - dicAttr; var tempAttrDict = new Dictionary <int, int>(); var enumorator1 = dicAttrNext.GetEnumerator(); while (enumorator1.MoveNext()) { int attr; if (dicAttr.TryGetValue(enumorator1.Current.Key, out attr)) { tempAttrDict[enumorator1.Current.Key] = enumorator1.Current.Value - attr; } } dicAttrNext = tempAttrDict; } else { // 成长属性 for (var i = 0; i < tbWing.GrowPropID.Length; ++i) { var nAttrId = tbWing.GrowPropID[i]; if (nAttrId < 0) { break; } var valueMin = tbWing.GrowMinProp[i]; var valueMax = tbWing.GrowMaxProp[i]; if (valueMin > 0 && valueMax >= valueMin) { dicAttrNext.modifyValue(nAttrId, valueMin); if (valueMax != valueMin) { dicAttrNextMax.modifyValue(nAttrId, valueMax); } } } } } else if (wingId > DataModel.ItemData.WingQuailty) { // 其它阶段 PlayerAttr.FillWingAdvanceAttr(dicAttr, DataModel.ItemData); PlayerAttr.FillWingBreakAttr(dicAttrNext, wingId); // dicAttrNext = dicAttrNext - dicAttr; var tempAttrDict = new Dictionary <int, int>(); var enumorator1 = dicAttrNext.GetEnumerator(); while (enumorator1.MoveNext()) { int attr; if (dicAttr.TryGetValue(enumorator1.Current.Key, out attr)) { tempAttrDict[enumorator1.Current.Key] = enumorator1.Current.Value - attr; } } dicAttrNext = tempAttrDict; dicAttr.Clear(); PlayerAttr.FillWingBreakAttr(dicAttr, wingId); } else { PlayerAttr.FillWingBreakAttr(dicAttr, wingId); } var __enumerator7 = (dicAttr).GetEnumerator(); while (__enumerator7.MoveNext()) { var i = __enumerator7.Current; { var attr = new AttributeChangeDataModel(); attr.Type = i.Key; attr.Value = i.Value; int nextValue; if (dicAttrNext.TryGetValue(attr.Type, out nextValue)) { attr.Change = nextValue; attr.Change = FixAttributeValue(i.Key, attr.Change); int nextValueMax; if (dicAttrNextMax.TryGetValue(attr.Type, out nextValueMax)) { attr.ChangeEx = nextValueMax; } } attr.Value = FixAttributeValue(i.Key, attr.Value); attrs.Add(attr); } } DataModel.QualityAttributes = attrs; }