diff --git a/OpenRA.Mods.RA/Crates/LevelUpCrateAction.cs b/OpenRA.Mods.RA/Crates/LevelUpCrateAction.cs index 55c781502b..599363a465 100644 --- a/OpenRA.Mods.RA/Crates/LevelUpCrateAction.cs +++ b/OpenRA.Mods.RA/Crates/LevelUpCrateAction.cs @@ -19,7 +19,13 @@ namespace OpenRA.Mods.RA { public LevelUpCrateAction(Actor self, LevelUpCrateActionInfo info) : base(self,info) {} - + + public override int GetSelectionShares(Actor collector) + { + var ge = collector.TraitOrDefault(); + return ge != null && ge.Level < ge.MaxLevel ? info.SelectionShares : 0; + } + public override void Activate(Actor collector) { collector.World.AddFrameEndTask(w => diff --git a/OpenRA.Mods.RA/GainsExperience.cs b/OpenRA.Mods.RA/GainsExperience.cs index cacf003aff..1da8eaa9a5 100644 --- a/OpenRA.Mods.RA/GainsExperience.cs +++ b/OpenRA.Mods.RA/GainsExperience.cs @@ -56,6 +56,7 @@ namespace OpenRA.Mods.RA int Experience = 0; [Sync] public int Level { get; private set; } + public int MaxLevel { get { return Levels.Length; } } public void GiveOneLevel() {