Ejemplo n.º 1
0
    //刷新翅膀总属性
    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;
    }
Ejemplo n.º 2
0
    //刷新翅膀升阶人物属性
    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;
    }