Unhardcode beacon sprites for documentation and lint testing.
This commit is contained in:
@@ -51,20 +51,20 @@ namespace OpenRA.Mods.Common.Effects
|
||||
}
|
||||
|
||||
// Support power beacons are expected to clean themselves up
|
||||
public Beacon(Player owner, WPos position, string palettePrefix, string posterType, string posterPalette, Func<float> clockFraction)
|
||||
public Beacon(Player owner, WPos position, string palettePrefix, string posterCollection, string posterType, string posterPalette, string clockSequence, Func<float> clockFraction)
|
||||
: this(owner, position, -1, palettePrefix)
|
||||
{
|
||||
this.posterPalette = posterPalette;
|
||||
|
||||
if (posterType != null)
|
||||
{
|
||||
poster = new Animation(owner.World, "beacon");
|
||||
poster = new Animation(owner.World, posterCollection);
|
||||
poster.Play(posterType);
|
||||
|
||||
if (clockFraction != null)
|
||||
{
|
||||
clock = new Animation(owner.World, "beacon");
|
||||
clock.PlayFetchIndex("clock", () => Exts.Clamp((int)(clockFraction() * (clock.CurrentSequence.Length - 1)), 0, clock.CurrentSequence.Length - 1));
|
||||
clock = new Animation(owner.World, posterCollection);
|
||||
clock.PlayFetchIndex(clockSequence, () => Exts.Clamp((int)(clockFraction() * (clock.CurrentSequence.Length - 1)), 0, clock.CurrentSequence.Length - 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,8 +170,10 @@ namespace OpenRA.Mods.Common.Traits
|
||||
self.Owner,
|
||||
target - new WVec(0, 0, altitude),
|
||||
Info.BeaconPalettePrefix,
|
||||
Info.BeaconImage,
|
||||
Info.BeaconPoster,
|
||||
Info.BeaconPosterPalette,
|
||||
Info.ClockSequence,
|
||||
() => 1 - ((distanceTestActor.CenterPosition - target).HorizontalLength - info.BeaconDistanceOffset.Length) * 1f / distance);
|
||||
|
||||
w.Add(beacon);
|
||||
|
||||
@@ -135,8 +135,10 @@ namespace OpenRA.Mods.Common.Traits
|
||||
order.Player,
|
||||
targetPosition,
|
||||
Info.BeaconPalettePrefix,
|
||||
Info.BeaconImage,
|
||||
Info.BeaconPoster,
|
||||
Info.BeaconPosterPalette,
|
||||
Info.ClockSequence,
|
||||
() => missile.FractionComplete);
|
||||
|
||||
Action removeBeacon = () => self.World.AddFrameEndTask(w =>
|
||||
|
||||
@@ -45,9 +45,11 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
[Desc("Beacons are only supported on the Airstrike and Nuke powers")]
|
||||
public readonly bool DisplayBeacon = false;
|
||||
public readonly string BeaconPalettePrefix = "player";
|
||||
public readonly string BeaconPoster = null;
|
||||
[PaletteReference(true)] public readonly string BeaconPalettePrefix = "player";
|
||||
public readonly string BeaconImage = "beacon";
|
||||
[SequenceReference("BeaconImage")] public readonly string BeaconPoster = null;
|
||||
[PaletteReference] public readonly string BeaconPosterPalette = "chrome";
|
||||
[SequenceReference("BeaconImage")] public readonly string ClockSequence = "clock";
|
||||
|
||||
public readonly bool DisplayRadarPing = false;
|
||||
|
||||
|
||||
@@ -205,8 +205,10 @@ namespace OpenRA.Mods.RA.Traits
|
||||
self.Owner,
|
||||
target - new WVec(0, 0, altitude),
|
||||
Info.BeaconPalettePrefix,
|
||||
Info.BeaconImage,
|
||||
Info.BeaconPoster,
|
||||
Info.BeaconPosterPalette,
|
||||
Info.ClockSequence,
|
||||
() => 1 - ((distanceTestActor.CenterPosition - target).HorizontalLength - info.BeaconDistanceOffset.Length) * 1f / distance);
|
||||
|
||||
w.Add(beacon);
|
||||
|
||||
Reference in New Issue
Block a user