@@ -25,13 +25,13 @@ namespace OpenRA.Mods.Cnc
|
||||
[Desc("Cargo aircraft used.")]
|
||||
[ActorReference] public readonly string ActorType = "c17";
|
||||
|
||||
public override object Create(ActorInitializer init) { return new ProductionAirdrop(this); }
|
||||
public override object Create(ActorInitializer init) { return new ProductionAirdrop(this, init.self); }
|
||||
}
|
||||
|
||||
class ProductionAirdrop : Production
|
||||
{
|
||||
public ProductionAirdrop(ProductionAirdropInfo info)
|
||||
: base(info) { }
|
||||
public ProductionAirdrop(ProductionAirdropInfo info, Actor self)
|
||||
: base(info, self) { }
|
||||
|
||||
public override bool Produce(Actor self, ActorInfo producee)
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace OpenRA.Mods.RA
|
||||
[Desc("e.g. Infantry, Vehicles, Aircraft, Buildings")]
|
||||
public readonly string[] Produces = { };
|
||||
|
||||
public virtual object Create(ActorInitializer init) { return new Production(this); }
|
||||
public virtual object Create(ActorInitializer init) { return new Production(this, init.self); }
|
||||
}
|
||||
|
||||
[Desc("Where the unit should leave the building. Multiples are allowed if IDs are added: Exit@2, ...")]
|
||||
@@ -41,10 +41,13 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public class Production
|
||||
{
|
||||
RallyPoint rp;
|
||||
|
||||
public ProductionInfo Info;
|
||||
public Production(ProductionInfo info)
|
||||
public Production(ProductionInfo info, Actor self)
|
||||
{
|
||||
Info = info;
|
||||
rp = self.TraitOrDefault<RallyPoint>();
|
||||
}
|
||||
|
||||
public void DoProduction(Actor self, ActorInfo producee, ExitInfo exitinfo)
|
||||
@@ -77,9 +80,8 @@ namespace OpenRA.Mods.RA
|
||||
});
|
||||
}
|
||||
|
||||
static CPos MoveToRallyPoint(Actor self, Actor newUnit, CPos exitLocation)
|
||||
CPos MoveToRallyPoint(Actor self, Actor newUnit, CPos exitLocation)
|
||||
{
|
||||
var rp = self.TraitOrDefault<RallyPoint>();
|
||||
if (rp == null)
|
||||
return exitLocation;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user