Add StartSequence to WithIdleOverlay & change V19.Husk

This commit is contained in:
atlimit8
2015-07-24 23:15:19 -05:00
parent d9d37d54c8
commit 4976f9fec9
6 changed files with 26 additions and 5 deletions

View File

@@ -19,6 +19,9 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Renders a decorative animation on units and buildings.")]
public class WithIdleOverlayInfo : UpgradableTraitInfo, IRenderActorPreviewSpritesInfo, Requires<RenderSpritesInfo>, Requires<IBodyOrientationInfo>
{
[Desc("Animation to play when the actor is created.")]
[SequenceReference] public readonly string StartSequence = null;
[Desc("Sequence name to use")]
[SequenceReference] public readonly string Sequence = "idle-overlay";
@@ -67,7 +70,11 @@ namespace OpenRA.Mods.Common.Traits
buildComplete = !self.HasTrait<Building>(); // always render instantly for units
overlay = new Animation(self.World, rs.GetImage(self));
overlay.PlayRepeating(RenderSprites.NormalizeSequence(overlay, self.GetDamageState(), info.Sequence));
if (info.StartSequence != null)
overlay.PlayThen(RenderSprites.NormalizeSequence(overlay, self.GetDamageState(), info.StartSequence),
() => overlay.PlayRepeating(RenderSprites.NormalizeSequence(overlay, self.GetDamageState(), info.Sequence)));
else
overlay.PlayRepeating(RenderSprites.NormalizeSequence(overlay, self.GetDamageState(), info.Sequence));
var anim = new AnimationWithOffset(overlay,
() => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))),

View File

@@ -57,11 +57,11 @@ namespace OpenRA.Mods.Common.Traits
DefaultAnimation = new Animation(init.World, rs.GetImage(init.Self), baseFacing);
rs.Add(new AnimationWithOffset(DefaultAnimation, null, () => IsTraitDisabled));
if (Info.StartSequence != null)
PlayCustomAnimation(init.Self, Info.StartSequence,
() => DefaultAnimation.PlayRepeating(NormalizeSequence(init.Self, Info.Sequence)));
if (info.StartSequence != null)
PlayCustomAnimation(init.Self, info.StartSequence,
() => PlayCustomAnimationRepeating(init.Self, info.Sequence));
else
DefaultAnimation.PlayRepeating(NormalizeSequence(init.Self, Info.Sequence));
DefaultAnimation.PlayRepeating(NormalizeSequence(init.Self, info.Sequence));
}
public string NormalizeSequence(Actor self, string sequence)

View File

@@ -11,8 +11,13 @@ V19:
V19.Husk:
Inherits: ^CivBuildingHusk
-RenderBuilding:
AutoSelectionSize:
RenderSprites:
BodyOrientation:
QuantizedFacings: 1
WithSpriteBody:
WithIdleOverlay:
StartSequence: fire-start
Sequence: fire-loop
Building:

View File

@@ -667,10 +667,12 @@ v19.husk:
fire-start: flmspt
Length: *
Offset: 7,-15
ZOffset: 1
fire-loop: flmspt
Start: 50
Length: *
Offset: 7,-15
ZOffset: 1
v20:
Defaults:

View File

@@ -232,8 +232,13 @@ V19.Husk:
ExcludeTilesets: DESERT
Tooltip:
Name: Husk (Oil Pump)
-RenderBuilding:
AutoSelectionSize:
RenderSprites:
BodyOrientation:
QuantizedFacings: 1
WithSpriteBody:
WithIdleOverlay:
StartSequence: fire-start
Sequence: fire-loop
-Health:

View File

@@ -514,10 +514,12 @@ v19.husk:
fire-start: flmspt
Length: *
Offset: 7,-15
ZOffset: 1
fire-loop: flmspt
Start: 50
Length: *
Offset: 7,-15
ZOffset: 1
utilpol1:
idle: