war factory incredible hack
This commit is contained in:
@@ -11,10 +11,13 @@ namespace OpenRa.Game.Traits
|
||||
{
|
||||
public Animation roof;
|
||||
bool doneBuilding;
|
||||
public readonly Actor self;
|
||||
|
||||
public RenderWarFactory(Actor self)
|
||||
: base(self)
|
||||
{
|
||||
this.self = self;
|
||||
|
||||
roof = new Animation(self.unitInfo.Image ?? self.unitInfo.Name);
|
||||
anim.PlayThen("make", () =>
|
||||
{
|
||||
@@ -24,13 +27,10 @@ namespace OpenRa.Game.Traits
|
||||
});
|
||||
}
|
||||
|
||||
public override IEnumerable<Pair<Sprite, float2>> Render(Actor self)
|
||||
public IEnumerable<Pair<Sprite, float2>> RenderRoof(Actor self)
|
||||
{
|
||||
if (doneBuilding)
|
||||
return base.Render(self).Concat(
|
||||
new[] { Pair.New(roof.Image, 24f * (float2)self.Location) });
|
||||
else
|
||||
return base.Render(self);
|
||||
yield return Pair.New(roof.Image, 24f * (float2)self.Location);
|
||||
}
|
||||
|
||||
public override void Tick(Actor self)
|
||||
@@ -38,5 +38,13 @@ namespace OpenRa.Game.Traits
|
||||
base.Tick(self);
|
||||
roof.Tick();
|
||||
}
|
||||
|
||||
public void EjectUnit()
|
||||
{
|
||||
/* todo: hold the door open */
|
||||
|
||||
roof.PlayThen("build-top",
|
||||
() => roof.PlayRepeating("idle-top"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user