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); } }
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; } }
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; } } } }