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:
@@ -80,7 +80,13 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public void RulesetLoaded(Ruleset rules, ActorInfo ai)
|
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(
|
ModifiedRange = new WDist(Util.ApplyPercentageModifiers(
|
||||||
WeaponInfo.Range.Length,
|
WeaponInfo.Range.Length,
|
||||||
ai.TraitInfos<IRangeModifierInfo>().Select(m => m.GetRangeModifierDefault())));
|
ai.TraitInfos<IRangeModifierInfo>().Select(m => m.GetRangeModifierDefault())));
|
||||||
|
|||||||
Reference in New Issue
Block a user