private void AddEquipBuff(ushort equipID, uint buffID, ushort buffGroupID, uint equipBuyPrice, uint sequence) { CEquipBuffInfoGroup group = null; if (this.m_equipBuffInfoMap.ContainsKey(buffGroupID)) { this.m_equipBuffInfoMap.TryGetValue(buffGroupID, out group); } else { group = new CEquipBuffInfoGroup(buffGroupID); this.m_equipBuffInfoMap.Add(buffGroupID, group); } group.m_isChanged = true; ListView <CEquipBuffInfo> equipBuffInfos = group.m_equipBuffInfos; CEquipBuffInfo item = null; for (int i = 0; i < equipBuffInfos.Count; i++) { if (equipBuffInfos[i].m_isNeedRemoved && equipBuffInfos[i].IsEqual(buffID, buffGroupID)) { item = equipBuffInfos[i]; item.m_isNeedRemoved = false; item.m_equipID = equipID; item.m_equipBuyPrice = (CrypticInt32)equipBuyPrice; item.m_sequence = sequence; break; } } if (item == null) { item = new CEquipBuffInfo(equipID, equipBuyPrice, buffID, buffGroupID, sequence); equipBuffInfos.Add(item); } }
private void UpdateEquipBuff(CEquipBuffInfoGroup equipBuffInfoGroup) { if (equipBuffInfoGroup.m_isChanged) { ListView <CEquipBuffInfo> equipBuffInfos = equipBuffInfoGroup.m_equipBuffInfos; int index = 0; while (index < equipBuffInfos.Count) { if (equipBuffInfos[index].m_isNeedRemoved) { this.DisableEquipBuff(equipBuffInfos[index]); equipBuffInfos.RemoveAt(index); } else { index++; } } if (equipBuffInfoGroup.m_groupID == 0) { for (int i = 0; i < equipBuffInfos.Count; i++) { this.EnableEquipBuff(equipBuffInfos[i]); } } else { equipBuffInfos.Sort(); for (int j = 0; j < equipBuffInfos.Count; j++) { if (j == (equipBuffInfos.Count - 1)) { this.EnableEquipBuff(equipBuffInfos[j]); } else { this.DisableEquipBuff(equipBuffInfos[j]); } } } equipBuffInfoGroup.m_isChanged = false; } }
private void RemoveEquipBuff(ushort equipID, uint buffID, ushort buffGroupID) { CEquipBuffInfoGroup group = null; if (this.m_equipBuffInfoMap.ContainsKey(buffGroupID)) { this.m_equipBuffInfoMap.TryGetValue(buffGroupID, out group); group.m_isChanged = true; ListView <CEquipBuffInfo> equipBuffInfos = group.m_equipBuffInfos; for (int i = 0; i < equipBuffInfos.Count; i++) { if (((equipBuffInfos[i].m_equipID == equipID) && (equipBuffInfos[i].m_buffID == buffID)) && (equipBuffInfos[i].m_buffGroupID == buffGroupID)) { equipBuffInfos[i].m_isNeedRemoved = true; break; } } } }