public void Update()
        {
            var d = new Dictionary<int, EquipmentGroup>();
            if (Staff.Current.Homeport.Equipments == null) return;
            foreach (var item in Staff.Current.Homeport.Equipments)
            {
                int typeid = item.EquipInfo.Id;
                EquipmentGroup group;
                if (!d.TryGetValue(typeid, out group))
                {
                    group = new EquipmentGroup { Item = item.EquipInfo };
                    d.Add(typeid, group);
                }
                int i;
                EquipmentImprovementGroup group2 = null;
                for (i = 0; i < group.Groups.Count; i++)
                {
                    if (group.Groups[i].Level == item.ImproveLevel) group2 = group.Groups[i];
                    if (group.Groups[i].Level >= item.ImproveLevel) break;
                }
                if (group2 == null)
                {
                    group2 = new EquipmentImprovementGroup { Level = item.ImproveLevel };
                    group.Groups.Insert(i, group2);
                }
                EquipmentProficiencyGroup group3 = null;
                for (i = 0; i < group2.Groups.Count; i++)
                {
                    if (group2.Groups[i].Level == item.AirProficiency) group3 = group2.Groups[i];
                    if (group2.Groups[i].Level >= item.AirProficiency) break;
                }
                if (group3 == null)
                {
                    group3 = new EquipmentProficiencyGroup { Level = item.AirProficiency };
                    group2.Groups.Insert(i, group3);
                }

                group3.Count++;
                if (item.OnShip != null)
                {
                    if (group3.Equipped.ContainsKey(item.OnShip)) group3.Equipped[item.OnShip]++;
                    else group3.Equipped.Add(item.OnShip, 1);
                }
                else group3.Left++;
            }
            Groups = d.Values.OrderBy(x => x.Item.EquipType.Id).ThenBy(x => x.Item.Id).ToArray();
        }
Пример #2
0
        public void Update()
        {
            var d = new Dictionary <int, EquipmentGroup>();

            if (Staff.Current.Homeport.Equipments == null)
            {
                return;
            }
            foreach (var item in Staff.Current.Homeport.Equipments)
            {
                int typeid = item.EquipInfo.Id;
                if (!d.TryGetValue(typeid, out EquipmentGroup group))
                {
                    group = new EquipmentGroup {
                        Item = item.EquipInfo
                    };
                    d.Add(typeid, group);
                }
                int i;
                EquipmentImprovementGroup group2 = null;
                for (i = 0; i < group.Groups.Count; i++)
                {
                    if (group.Groups[i].Level == item.ImproveLevel)
                    {
                        group2 = group.Groups[i];
                    }
                    if (group.Groups[i].Level >= item.ImproveLevel)
                    {
                        break;
                    }
                }
                if (group2 == null)
                {
                    group2 = new EquipmentImprovementGroup {
                        Level = item.ImproveLevel
                    };
                    group.Groups.Insert(i, group2);
                }
                EquipmentProficiencyGroup group3 = null;
                for (i = 0; i < group2.Groups.Count; i++)
                {
                    if (group2.Groups[i].Level == item.AirProficiency)
                    {
                        group3 = group2.Groups[i];
                    }
                    if (group2.Groups[i].Level >= item.AirProficiency)
                    {
                        break;
                    }
                }
                if (group3 == null)
                {
                    group3 = new EquipmentProficiencyGroup {
                        Level = item.AirProficiency
                    };
                    group2.Groups.Insert(i, group3);
                }

                group3.Count++;
                if (item.OnShip != null)
                {
                    if (group3.Equipped.ContainsKey(item.OnShip))
                    {
                        group3.Equipped[item.OnShip]++;
                    }
                    else
                    {
                        group3.Equipped.Add(item.OnShip, 1);
                    }
                }
                else
                {
                    group3.Left++;
                }
            }
            Groups = d.Values.OrderBy(x => x.Item.EquipType.Id).ThenBy(x => x.Item.Id).ToArray();
        }