public void Bind(int rRelationShip, bool rIsLock, ItemAttachAttr rAttr)
 {
     Util.SetText(relationShip, ConfigText.GetDefalutString(169, rRelationShip));
     isLock.SafeSetActive(rIsLock);
     Bind(rAttr);
     SetColor(rIsLock);
 }
    private void RefreshRight(PetInfo rInfo)
    {
        var gradeInfo = rInfo.GetUpGradeInfo(rInfo.Grade + 1);
        var star      = rInfo.GetStar(rInfo.Grade + 1);

        Util.SetText(rightGradeText, gradeInfo?.CombineGradeName(star));
        SetStar(rightStarGroup, star);

        Util.ClearChildren(rightAttr);
        //创建属性条
        var prevList = rInfo.Attribute;

        var showList = rInfo.GetAttribute(rInfo.Level, rInfo.Grade + 1);

        for (var i = 0; i < showList.Count; i++)
        {
            var t = rightAttr.AddNewChild(rightAttrTemp);
            t.SafeSetActive(true);
            var change = new ItemAttachAttr()
            {
                id    = showList[i].id,
                type  = showList[i].type,
                value = AttributeShowHelper.ValueForShow(showList[i].id, showList[i].value) - AttributeShowHelper.ValueForShow(prevList[i].id, prevList[i].value)
            };
            BindProperty(t, showList[i], change);
        }
    }
    public static string ValueString(this ItemAttachAttr rAttr)
    {
        if (rAttr == null)
        {
            return(string.Empty);
        }

        return(ValueForShowString(rAttr.id, rAttr.value, rAttr.type == 2));
    }
    public static string TypeString(this ItemAttachAttr rAttr)
    {
        if (rAttr == null)
        {
            return(string.Empty);
        }

        return(TypeString(rAttr.id));
    }
    private void BindProperty(Transform t, ItemAttachAttr show, ItemAttachAttr change = null)
    {
        Util.SetText(t.GetComponent <Text>("value"), show.ValueString());
        Util.SetText(t.GetComponent <Text>("type"), show.TypeString());
        var c = t.GetComponent <Text>("value/change");

        if (change != null)
        {
            Util.SetText(c, $"【+{change.ValueString()}】");
        }
        var isMax = petSelectModule.selectInfo.IsEvolveMax();

        c.SafeSetActive(!isMax);
        t.GetComponent <Transform>("value/max").SafeSetActive(isMax);
    }
Exemple #6
0
    public List <ItemAttachAttr> GetAttribute(int rLevel, int rGrade)
    {
        var petAttr = ConfigManager.Get <PetAttributeInfo>(ID);

        if (null == petAttr || petAttr.PetAttributes == null)
        {
            return(null);
        }

        var growList = new List <ItemAttachAttr>();

        for (int i = 0, iMax = petAttr.PetAttributes.Length; i < iMax && petAttr.PetAttributes[i].level <= rLevel; i++)
        {
            growList.AddRange(petAttr.PetAttributes[i].attributes);
        }

        var infos = ConfigManager.Get <PetUpGradeInfo>(ID);

        for (int i = 0, iMax = infos.upGradeInfos.Length; i < iMax && infos.upGradeInfos[i].level <= rGrade; i++)
        {
            growList.AddRange(infos.upGradeInfos[i].attributes);
        }

        //从基础数据上拷贝一个列表出来。不要修改基础属性
        var res = new List <ItemAttachAttr>();

        for (var i = 0; i < CPetInfo.attributes.Length; i++)
        {
            var att = CPetInfo.attributes[i];
            var a   = new ItemAttachAttr {
                id = att.id, type = att.type, value = att.value
            };
            foreach (var attr in growList)
            {
                a += att.CalcGrow(attr);
            }
            res.Add(a);
        }

        return(res);
    }
    private List <AttributePreviewDetail> GetAttributeDetails(EvolveEquipInfo info)
    {
        var list = new List <AttributePreviewDetail>();

        if (info.attributes == null)
        {
            return(list);
        }

        foreach (var item in info.attributes)
        {
            //获取道具的初始属性
            var originalAttri = PropItemInfo.GetBaseAttribute(itemInfo, item.id);
            //计算属性(百分比或者累加)
            var value = ItemAttachAttr.CalculateAttributeValue(originalAttri, item);

            if (!ContainSameAttirbutePreview(list, item.id))
            {
                double oldValue = data.GetFixedAttirbute(item.id);
                if (oldValue == 0 && value == 0)
                {
                    continue;
                }

                var de = new AttributePreviewDetail(item.id);
                de.oldValue = oldValue;
                //must before set newValue
                de.FixPercentAttribute();
                de.newValue = de.oldValue + value;
                list.Add(de);
            }
            else
            {
                var de = list.Find(o => o.id == item.id);
                de.newValue += value;
            }
        }

        return(list);
    }
 private void RefreshRightAttribute(List <ItemAttachAttr> showList, List <ItemAttachAttr> left)
 {
     foreach (var kv in cache)
     {
         var afs     = showList.Find(item => item.id == (ushort)kv.Key);
         var leftAfs = left.Find(item => item.id == (ushort)kv.Key);
         if (leftAfs == null)
         {
             BindPropertyRight(kv.Value, afs, afs);
         }
         else
         {
             var change = new ItemAttachAttr
             {
                 id    = afs.id,
                 type  = afs.type,
                 value =
                     AttributeShowHelper.ValueForShow(afs.id, afs.value, afs.type == 2) -
                     AttributeShowHelper.ValueForShow(leftAfs.id, leftAfs.value, leftAfs.type == 2)
             };
             BindPropertyRight(kv.Value, afs, change);
         }
     }
 }
 private void BindPropertyRight(Transform t, ItemAttachAttr show, ItemAttachAttr change)
 {
     Util.SetText(t.GetComponent <Text>("attr_txt_03"), show != null ? show.ValueString() : "0");
     Util.SetText(t.GetComponent <Text>("attr_txt_03/attr_txt_04"), $"【+{change.ValueString()}】");
     Util.SetText(t.GetComponent <Text>("attr_txt_01"), show != null ? show.TypeString() : "");
 }
 private void BindPropertyLeft(Transform t, ItemAttachAttr show)
 {
     Util.SetText(t.GetComponent <Text>("attr_txt_02"), show != null ? show.ValueString() :"0");
     Util.SetText(t.GetComponent <Text>("attr_txt_01"), show != null ? show.TypeString() : "");
 }
 public virtual void Bind(ItemAttachAttr rAttr)
 {
     Util.SetText(name, rAttr.TypeString());
     Util.SetText(value, rAttr.ValueString());
 }
 public static string ShowString(this ItemAttachAttr rAttr)
 {
     return($"{rAttr.TypeString()}+{rAttr.ValueString()}");
 }
Exemple #13
0
    private List <AttributePreviewDetail> GetAttributePreview()
    {
        var list = new List <AttributePreviewDetail>();

        //add preview attirbute change
        if (m_previewIntentifyInfo != null)
        {
            List <IntentifyEquipInfo> allIntents = moduleEquip.GetGetIntentifyInfos(equipType, data.GetIntentyLevel(), m_previewIntentifyInfo.level);

            foreach (var item in allIntents)
            {
                if (item.attributes == null)
                {
                    continue;
                }
                foreach (var attri in item.attributes)
                {
                    //获取道具的初始属性
                    var originalAttri = PropItemInfo.GetBaseAttribute(itemInfo, attri.id);
                    //计算属性(百分比或者累加)
                    var value = m_previewIntentifyInfo.level == data.GetIntentyLevel() ? 0 : ItemAttachAttr.CalculateAttributeValue(originalAttri, attri);

                    //未包含就把初始值填充进去
                    if (!ContainSameAttirbutePreview(list, attri.id))
                    {
                        double oldValue = data.GetFixedAttirbute(attri.id);
                        if (oldValue <= 0 && value <= 0)
                        {
                            continue;
                        }

                        var de = new AttributePreviewDetail(attri.id);
                        de.oldValue = oldValue;
                        //must before set newValue
                        de.FixPercentAttribute();
                        de.newValue = de.oldValue + value;
                        list.Add(de);
                    }
                    //已经添加了就开始操作缓存
                    else
                    {
                        var d = list.Find(o => o.id == attri.id);
                        d.newValue += value;
                    }
                }
            }
        }
        //添加初始化属性
        else
        {
            if (data.GetIntentyLevel() > 0 && !data.InvalidGrowAttr())
            {
                PItemAttachAttr[] attris = data.growAttr.equipAttr.fixedAttrs;
                foreach (var item in attris)
                {
                    if (item.type == 2)
                    {
                        continue;
                    }

                    var de = new AttributePreviewDetail(item.id);
                    de.oldValue = item.value;
                    de.newValue = item.value;
                    de.FixPercentAttribute();
                    list.Add(de);
                }
            }
            else
            {
                PropItemInfo info = data.GetPropItem();
                if (info && info.attributes != null)
                {
                    foreach (var item in info.attributes)
                    {
                        if (item.type == 2)
                        {
                            continue;
                        }

                        var de = new AttributePreviewDetail(item.id);
                        de.oldValue = item.value;
                        de.newValue = item.value;
                        de.FixPercentAttribute();
                        list.Add(de);
                    }
                }
            }
        }

        return(list);
    }