Passengers can grant upgrades to transport.
This commit is contained in:
@@ -190,7 +190,10 @@ namespace OpenRA.Mods.RA
|
|||||||
foreach (var npe in self.TraitsImplementing<INotifyPassengerExited>())
|
foreach (var npe in self.TraitsImplementing<INotifyPassengerExited>())
|
||||||
npe.PassengerExited(self, a);
|
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;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,7 +235,10 @@ namespace OpenRA.Mods.RA
|
|||||||
foreach (var npe in self.TraitsImplementing<INotifyPassengerEntered>())
|
foreach (var npe in self.TraitsImplementing<INotifyPassengerEntered>())
|
||||||
npe.PassengerEntered(self, a);
|
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)
|
public void Killed(Actor self, AttackInfo e)
|
||||||
|
|||||||
@@ -99,6 +99,9 @@ namespace OpenRA.Mods.RA
|
|||||||
[Desc("Range from self for looking for an alternate transport (default: 5.5 cells).")]
|
[Desc("Range from self for looking for an alternate transport (default: 5.5 cells).")]
|
||||||
public readonly WRange AlternateTransportScanRange = WRange.FromCells(11) / 2;
|
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); }
|
public object Create(ActorInitializer init) { return new Passenger(this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user