diff --git a/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs b/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs index e534ab456e..7b390faccb 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs @@ -47,7 +47,18 @@ namespace OpenRA.Mods.Common.Traits public object Create(ActorInitializer init) { return new Bridge(init.Self, this); } - public void RulesetLoaded(Ruleset rules, ActorInfo ai) { DemolishWeaponInfo = rules.Weapons[DemolishWeapon.ToLowerInvariant()]; } + public void RulesetLoaded(Ruleset rules, ActorInfo ai) + { + if (string.IsNullOrEmpty(DemolishWeapon)) + throw new YamlException("A value for DemolishWeapon of a Bridge trait is missing."); + + WeaponInfo weapon; + var weaponToLower = DemolishWeapon.ToLowerInvariant(); + if (!rules.Weapons.TryGetValue(weaponToLower, out weapon)) + throw new YamlException("Weapons Ruleset does not contain an entry '{0}'".F(weaponToLower)); + + DemolishWeaponInfo = weapon; + } public IEnumerable> Templates {