Ejemplo n.º 1
0
        protected internal void InventarClickHandler(int index)
        {
            List <EquipmentSlotItemController> items = Items;

            if (index >= 0 && index < items.Count)
            {
                EquipmentSlotItemController item = items[index];
                switch (item.Type)
                {
                case 0:
                    if (Configuration.Weapons.Count < Ship.WeaponSlots)
                    {
                        int equiped = Configuration.Weapons.Count(x => x == item.ID) + Configuration.Drones.Sum(x => x.WeaponItems.Count(y => y == item.ID));
                        if (Vault.Weapons.TryGetValue(item.ID, out int count) && count > equiped)
                        {
                            Configuration.Weapons.Add(item.ID);
                            StateHasChanged();
                        }
                    }
                    break;

                case 1:
                    if (Configuration.Generators.Count + Configuration.Shields.Count < Ship.GeneratorSlots)
                    {
                        int equiped = Configuration.Generators.Count(x => x == item.ID);
                        if (Vault.Generators.TryGetValue(item.ID, out int count) && count > equiped)
                        {
                            Configuration.Generators.Add(item.ID);
                            StateHasChanged();
                        }
                    }
                    break;

                case 2:
                    if (Configuration.Generators.Count + Configuration.Shields.Count < Ship.GeneratorSlots)
                    {
                        int equiped = Configuration.Shields.Count(x => x == item.ID) + Configuration.Drones.Sum(x => x.ShieldItems.Count(y => y == item.ID));
                        if (Vault.Shields.TryGetValue(item.ID, out int count) && count > equiped)
                        {
                            Configuration.Shields.Add(item.ID);
                            StateHasChanged();
                        }
                    }
                    break;
                }
            }
        }
Ejemplo n.º 2
0
        protected internal void InventarClickHandler(int index)
        {
            List <EquipmentSlotItemController> items = Items;

            if (index >= 0 && index < items.Count)
            {
                EquipmentSlotItemController item = items[index];
                switch (item.Type)
                {
                case 0:
                    foreach (DroneView pair in Configuration.Drones)
                    {
                        if (pair.StatsDesignID == 0)
                        {
                            int equiped = Configuration.Drones.Count(x => x.StatsDesignID == item.ID);
                            if (Vault.DroneDesigns.TryGetValue(item.ID, out int count) && count > equiped)
                            {
                                pair.StatsDesignID = item.ID;
                                StateHasChanged();
                                break;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    break;

                case 1:
                    foreach (DroneView pair in Configuration.Drones)
                    {
                        if ((pair.WeaponItems.Count + pair.ShieldItems.Count) < pair.DroneID.FromDrones().Slots)
                        {
                            int equiped = Configuration.Weapons.Count(x => x == item.ID) + Configuration.Drones.Sum(x => x.WeaponItems.Count(y => y == item.ID));
                            if (Vault.Weapons.TryGetValue(item.ID, out int count) && count > equiped)
                            {
                                pair.WeaponItems.Add(item.ID);
                                StateHasChanged();
                                break;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    break;

                case 2:
                    foreach (DroneView pair in Configuration.Drones)
                    {
                        if ((pair.WeaponItems.Count + pair.ShieldItems.Count) < pair.DroneID.FromDrones().Slots)
                        {
                            int equiped = Configuration.Shields.Count(x => x == item.ID) + Configuration.Drones.Sum(x => x.ShieldItems.Count(y => y == item.ID));
                            if (Vault.Shields.TryGetValue(item.ID, out int count) && count > equiped)
                            {
                                pair.ShieldItems.Add(item.ID);
                                StateHasChanged();
                                break;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    break;
                }
            }
        }