From 4f798ede3c34cc249e6ab26aafa452aebfdec6f1 Mon Sep 17 00:00:00 2001 From: Taryn Hill Date: Sat, 13 Feb 2016 08:47:46 -0600 Subject: [PATCH] Add an explicit YamlException to ArmamentInfo Throw a more descriptive exception when the current weapon ruleset doesn't contain an entry for the referenced weapon. --- OpenRA.Mods.Common/Traits/Armament.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Armament.cs b/OpenRA.Mods.Common/Traits/Armament.cs index 6ff6f34fa1..9ac2e166ca 100644 --- a/OpenRA.Mods.Common/Traits/Armament.cs +++ b/OpenRA.Mods.Common/Traits/Armament.cs @@ -80,7 +80,13 @@ namespace OpenRA.Mods.Common.Traits public void RulesetLoaded(Ruleset rules, ActorInfo ai) { - WeaponInfo = rules.Weapons[Weapon.ToLowerInvariant()]; + WeaponInfo weaponInfo; + + var weaponToLower = Weapon.ToLowerInvariant(); + if (!rules.Weapons.TryGetValue(weaponToLower, out weaponInfo)) + throw new YamlException("Weapons Ruleset does not contain an entry '{0}'".F(weaponToLower)); + + WeaponInfo = weaponInfo; ModifiedRange = new WDist(Util.ApplyPercentageModifiers( WeaponInfo.Range.Length, ai.TraitInfos().Select(m => m.GetRangeModifierDefault())));