@@ -25,13 +25,13 @@ namespace OpenRA.Mods.Cnc
|
|||||||
[Desc("Cargo aircraft used.")]
|
[Desc("Cargo aircraft used.")]
|
||||||
[ActorReference] public readonly string ActorType = "c17";
|
[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
|
class ProductionAirdrop : Production
|
||||||
{
|
{
|
||||||
public ProductionAirdrop(ProductionAirdropInfo info)
|
public ProductionAirdrop(ProductionAirdropInfo info, Actor self)
|
||||||
: base(info) { }
|
: base(info, self) { }
|
||||||
|
|
||||||
public override bool Produce(Actor self, ActorInfo producee)
|
public override bool Produce(Actor self, ActorInfo producee)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace OpenRA.Mods.RA
|
|||||||
[Desc("e.g. Infantry, Vehicles, Aircraft, Buildings")]
|
[Desc("e.g. Infantry, Vehicles, Aircraft, Buildings")]
|
||||||
public readonly string[] Produces = { };
|
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, ...")]
|
[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
|
public class Production
|
||||||
{
|
{
|
||||||
|
RallyPoint rp;
|
||||||
|
|
||||||
public ProductionInfo Info;
|
public ProductionInfo Info;
|
||||||
public Production(ProductionInfo info)
|
public Production(ProductionInfo info, Actor self)
|
||||||
{
|
{
|
||||||
Info = info;
|
Info = info;
|
||||||
|
rp = self.TraitOrDefault<RallyPoint>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoProduction(Actor self, ActorInfo producee, ExitInfo exitinfo)
|
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)
|
if (rp == null)
|
||||||
return exitLocation;
|
return exitLocation;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user