Merge pull request #6770 from atlimit8/PassengerProvidesUpgrade

Passengers can provide upgrade(s) to transport.
This commit is contained in:
Taryn Hill
2014-11-12 19:54:59 -07:00
2 changed files with 11 additions and 2 deletions

View File

@@ -190,7 +190,10 @@ namespace OpenRA.Mods.RA
foreach (var npe in self.TraitsImplementing<INotifyPassengerExited>())
npe.PassengerExited(self, a);
a.Trait<Passenger>().Transport = null;
var p = a.Trait<Passenger>();
p.Transport = null;
foreach (var u in p.Info.GrantUpgrades)
self.Trait<UpgradeManager>().RevokeUpgrade(self, u, p);
return a;
}
@@ -232,7 +235,10 @@ namespace OpenRA.Mods.RA
foreach (var npe in self.TraitsImplementing<INotifyPassengerEntered>())
npe.PassengerEntered(self, a);
a.Trait<Passenger>().Transport = self;
var p = a.Trait<Passenger>();
p.Transport = self;
foreach (var u in p.Info.GrantUpgrades)
self.Trait<UpgradeManager>().GrantUpgrade(self, u, p);
}
public void Killed(Actor self, AttackInfo e)

View File

@@ -99,6 +99,9 @@ namespace OpenRA.Mods.RA
[Desc("Range from self for looking for an alternate transport (default: 5.5 cells).")]
public readonly WRange AlternateTransportScanRange = WRange.FromCells(11) / 2;
[Desc("Upgrade types to grant to transport.")]
public readonly string[] GrantUpgrades = { };
public object Create(ActorInitializer init) { return new Passenger(this); }
}