示例#1
0
        public void Add(uint id, List <uint> value)
        {
            IEquipAttribute equip_attr;

            equip_attr = EquipAttrFactory.CreateEquipAttr(id, value);
            Score     += equip_attr.Score;
            base.Add(equip_attr);
        }
示例#2
0
        public void Insert(int idx, uint id, List <uint> value)
        {
            IEquipAttribute equip_attr;

            equip_attr = EquipAttrFactory.CreateEquipAttr(id, value);
            Score     += equip_attr.Score;
            base.Insert(idx, equip_attr);
        }
示例#3
0
        public void AddValue(uint id, List <uint> value, bool bMerge)
        {
            IEquipAttribute newAttrData;

            newAttrData = EquipAttrFactory.CreateEquipAttr(id, value);
            Score      += newAttrData.Score;

            if (bMerge)
            {
                IEquipAttribute findAttr = null;
                findAttr = Find(delegate(IEquipAttribute e) {
                    if (e.Data != null && newAttrData.Data != null)
                    {
                        var eAttrId   = e.Data.AttrId;
                        var newAttrId = newAttrData.Data.AttrId;

                        return((eAttrId != 0) && (eAttrId == newAttrId));
                    }

                    return(false);
                });

                if (null == findAttr)
                {
                    base.Add(newAttrData);
                }
                else
                {
                    for (int i = 0; i < findAttr.Values.Count; i++)
                    {
                        if (i < newAttrData.Values.Count)
                        {
                            findAttr.Values[i] += newAttrData.Values[i];
                        }
                    }
                }
            }
            else
            {
                base.Add(newAttrData);
            }
        }