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