fix #1083 -- allow rank crate to give multiple levels

This commit is contained in:
Chris Forbes
2011-10-04 23:19:41 +13:00
parent 84234e8794
commit 0a88a6da8e
2 changed files with 20 additions and 24 deletions

View File

@@ -12,6 +12,8 @@ namespace OpenRA.Mods.RA
{
class LevelUpCrateActionInfo : CrateActionInfo
{
public readonly int Levels = 1;
public override object Create(ActorInitializer init) { return new LevelUpCrateAction(init.self, this); }
}
@@ -23,7 +25,7 @@ namespace OpenRA.Mods.RA
public override int GetSelectionShares(Actor collector)
{
var ge = collector.TraitOrDefault<GainsExperience>();
return ge != null && ge.Level < ge.MaxLevel ? info.SelectionShares : 0;
return ge != null && ge.CanGainLevel ? info.SelectionShares : 0;
}
public override void Activate(Actor collector)
@@ -32,7 +34,7 @@ namespace OpenRA.Mods.RA
{
var gainsExperience = collector.TraitOrDefault<GainsExperience>();
if (gainsExperience != null)
gainsExperience.GiveOneLevel();
gainsExperience.GiveLevels((info as LevelUpCrateActionInfo).Levels);
});
base.Activate(collector);