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.
This commit is contained in:
Taryn Hill
2016-02-13 08:47:46 -06:00
parent 613854de91
commit 4f798ede3c

View File

@@ -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<IRangeModifierInfo>().Select(m => m.GetRangeModifierDefault())));