예제 #1
0
        private void AddEquipPassiveSkill(ushort equipID, uint passiveSkillID, ushort passiveSkillGroupID, uint equipBuyPrice, uint[] passiveSkillRelatedFuncIDs, uint sequence)
        {
            CEquipPassiveSkillInfoGroup group = null;

            if (this.m_equipPassiveSkillInfoMap.ContainsKey(passiveSkillGroupID))
            {
                this.m_equipPassiveSkillInfoMap.TryGetValue(passiveSkillGroupID, out group);
            }
            else
            {
                group = new CEquipPassiveSkillInfoGroup(passiveSkillGroupID);
                this.m_equipPassiveSkillInfoMap.Add(passiveSkillGroupID, group);
            }
            group.m_isChanged = true;
            ListView <CEquipPassiveSkillInfo> equipPassiveSkillInfos = group.m_equipPassiveSkillInfos;
            CEquipPassiveSkillInfo            item = null;

            for (int i = 0; i < equipPassiveSkillInfos.Count; i++)
            {
                if (equipPassiveSkillInfos[i].m_isNeedRemoved && equipPassiveSkillInfos[i].IsEqual(passiveSkillID, passiveSkillGroupID, passiveSkillRelatedFuncIDs))
                {
                    item = equipPassiveSkillInfos[i];
                    item.m_isNeedRemoved = false;
                    item.m_equipID       = equipID;
                    item.m_equipBuyPrice = (CrypticInt32)equipBuyPrice;
                    item.m_sequence      = sequence;
                    break;
                }
            }
            if (item == null)
            {
                item = new CEquipPassiveSkillInfo(equipID, equipBuyPrice, passiveSkillID, passiveSkillGroupID, passiveSkillRelatedFuncIDs, sequence);
                equipPassiveSkillInfos.Add(item);
            }
        }
예제 #2
0
 private void UpdateEquipPassiveSkill(CEquipPassiveSkillInfoGroup equipPassiveSkillInfoGroup)
 {
     if (equipPassiveSkillInfoGroup.m_isChanged)
     {
         ListView <CEquipPassiveSkillInfo> equipPassiveSkillInfos = equipPassiveSkillInfoGroup.m_equipPassiveSkillInfos;
         int index = 0;
         while (index < equipPassiveSkillInfos.Count)
         {
             if (equipPassiveSkillInfos[index].m_isNeedRemoved)
             {
                 this.DisableEquipPassiveSkill(equipPassiveSkillInfos[index]);
                 equipPassiveSkillInfos.RemoveAt(index);
             }
             else
             {
                 index++;
             }
         }
         if (equipPassiveSkillInfoGroup.m_groupID == 0)
         {
             for (int i = 0; i < equipPassiveSkillInfos.Count; i++)
             {
                 this.EnableEquipPassiveSkill(equipPassiveSkillInfos[i]);
             }
         }
         else
         {
             equipPassiveSkillInfos.Sort();
             for (int j = 0; j < equipPassiveSkillInfos.Count; j++)
             {
                 if (j == (equipPassiveSkillInfos.Count - 1))
                 {
                     this.EnableEquipPassiveSkill(equipPassiveSkillInfos[j]);
                 }
                 else
                 {
                     this.DisableEquipPassiveSkill(equipPassiveSkillInfos[j]);
                 }
             }
         }
         equipPassiveSkillInfoGroup.m_isChanged = false;
     }
 }
예제 #3
0
        private void RemoveEquipPassiveSkill(ushort equipID, uint passiveSkillID, ushort passiveSkillGroupID)
        {
            CEquipPassiveSkillInfoGroup group = null;

            if (this.m_equipPassiveSkillInfoMap.ContainsKey(passiveSkillGroupID))
            {
                this.m_equipPassiveSkillInfoMap.TryGetValue(passiveSkillGroupID, out group);
                group.m_isChanged = true;
                ListView <CEquipPassiveSkillInfo> equipPassiveSkillInfos = group.m_equipPassiveSkillInfos;
                for (int i = 0; i < equipPassiveSkillInfos.Count; i++)
                {
                    if (((equipPassiveSkillInfos[i].m_equipID == equipID) && (equipPassiveSkillInfos[i].m_passiveSkillID == passiveSkillID)) && (equipPassiveSkillInfos[i].m_passiveSkillGroupID == passiveSkillGroupID))
                    {
                        equipPassiveSkillInfos[i].m_isNeedRemoved = true;
                        break;
                    }
                }
            }
        }