private static int? GetAvailableAmmo(CraftWeaponType weapon) { var ammo = weapon.Metadata().Ammo; if (ammo == null) return null; return GameState.SelectedBase.Stores[ammo.Value]; }
public static CraftWeapon CreateUnloaded(CraftWeaponType weaponType) { return new CraftWeapon { WeaponType = weaponType, Ammunition = 0 }; }
public static CraftWeapon CreateLoaded(CraftWeaponType weaponType) { return new CraftWeapon { WeaponType = weaponType, Ammunition = weaponType.Metadata().Ammunition }; }
private void OnSelectCraftWeapon(CraftWeaponType weapon) { var stores = GameState.SelectedBase.Stores; stores.Remove(weapon.Metadata().Item); if (weaponSlot < craft.Weapons.Count) { var oldWeapon = craft.Weapons[weaponSlot]; var oldWeaponMetadata = oldWeapon.WeaponType.Metadata(); stores.Add(oldWeaponMetadata.Item); if (oldWeaponMetadata.Ammo != null) stores.Add(oldWeaponMetadata.Ammo.Value, oldWeapon.Ammunition / oldWeaponMetadata.RoundsInAmmo); craft.Weapons[weaponSlot] = CraftWeapon.CreateUnloaded(weapon); } else { craft.Weapons.Add(CraftWeapon.CreateUnloaded(weapon)); } if (weapon != CraftWeaponType.LaserBeam && craft.Status == CraftStatus.Ready) craft.Status = CraftStatus.Rearming; EndModal(); }
private void AddTopicControls(CraftWeaponType craftWeapon) { var metadata = craftWeapon.Metadata(); AddControl(new Overlay(metadata.Overlay, 4)); AddControl(new Label(24, 5, metadata.Name, Font.Large, ColorScheme.White)); var nextTop = 95; var stats = new[] { Tuple.Create("Damage", metadata.Damage.FormatNumber()), Tuple.Create("Range", metadata.Range.FormatNumber() + " km"), Tuple.Create("Accuracy", metadata.Accuracy.FormatNumber() + "\t%"), Tuple.Create("Re-load time", metadata.ReloadTime.FormatNumber() + "s") }; foreach (var stat in stats) { var top = nextTop; nextTop += 16; AddControl(new ExtendedLabel(top, 5, 135, stat.Item1, Font.Large, ColorScheme.White)); AddControl(new Label(top, 140, stat.Item2, Font.Large, ColorScheme.LightBlue)); } }
private static string GetName(CraftWeaponType weapon) { return weapon.Metadata().Name; }
private static int GetAvailableQuantity(CraftWeaponType weapon) { return GameState.SelectedBase.Stores[weapon.Metadata().Item]; }
private static TopicMetadata Armament(CraftWeaponType craftWeapon, params ResearchType[] requiredResearch) { return new TopicMetadata { Name = craftWeapon.Metadata().Name, Category = TopicCategory.CraftAndArmament, Scheme = ColorScheme.Orange, RequiredResearch = requiredResearch, Subject = craftWeapon }; }