Passengers can grant upgrades to transport.

This commit is contained in:
atlimit8
2014-10-16 23:59:17 -05:00
parent 2ab8b28bcf
commit 1c473ecfac
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); }
}