Ejemplo n.º 1
0
 private static int? GetAvailableAmmo(CraftWeaponType weapon)
 {
     var ammo = weapon.Metadata().Ammo;
     if (ammo == null)
         return null;
     return GameState.SelectedBase.Stores[ammo.Value];
 }
Ejemplo n.º 2
0
 public static CraftWeapon CreateUnloaded(CraftWeaponType weaponType)
 {
     return new CraftWeapon
     {
         WeaponType = weaponType,
         Ammunition = 0
     };
 }
Ejemplo n.º 3
0
 public static CraftWeapon CreateLoaded(CraftWeaponType weaponType)
 {
     return new CraftWeapon
     {
         WeaponType = weaponType,
         Ammunition = weaponType.Metadata().Ammunition
     };
 }
Ejemplo n.º 4
0
 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();
 }
Ejemplo n.º 5
0
		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));
			}
		}
Ejemplo n.º 6
0
 private static string GetName(CraftWeaponType weapon)
 {
     return weapon.Metadata().Name;
 }
Ejemplo n.º 7
0
 private static int GetAvailableQuantity(CraftWeaponType weapon)
 {
     return GameState.SelectedBase.Stores[weapon.Metadata().Item];
 }
Ejemplo n.º 8
0
 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
     };
 }