Skip to content

Commit

Permalink
Move subterranean audio-visual properties to GrantConditionOnSubterra…
Browse files Browse the repository at this point in the history
…neanLayer

This allows to customize them per actor without setting up a new locomotor each time.
  • Loading branch information
reaperrr committed Mar 16, 2018
1 parent 5f7a415 commit 8a2c84f
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 21 deletions.
Expand Up @@ -15,9 +15,22 @@

namespace OpenRA.Mods.Common.Traits
{
[Desc("Grants Condition on subterranean layer. Also plays transition audio-visuals if defined by the locomotor.")]
[Desc("Grants Condition on subterranean layer. Also plays transition audio-visuals.")]
public class GrantConditionOnSubterraneanLayerInfo : GrantConditionOnLayerInfo
{
[Desc("Dig animation image to play when transitioning.")]
public readonly string SubterraneanTransitionImage = null;

[SequenceReference("SubterraneanTransitionImage")]
[Desc("Dig animation sequence to play when transitioning.")]
public readonly string SubterraneanTransitionSequence = null;

[PaletteReference]
public readonly string SubterraneanTransitionPalette = "effect";

[Desc("Dig sound to play when transitioning.")]
public readonly string SubterraneanTransitionSound = null;

public override object Create(ActorInitializer init) { return new GrantConditionOnSubterraneanLayer(init.Self, this); }
}

Expand All @@ -41,13 +54,13 @@ protected override void Created(Actor self)

void PlayTransitionAudioVisuals(Actor self, CPos fromCell)
{
if (!string.IsNullOrEmpty(locoInfo.SubterraneanTransitionSequence))
if (!string.IsNullOrEmpty(Info.SubterraneanTransitionSequence))
self.World.AddFrameEndTask(w => w.Add(new SpriteEffect(self.World.Map.CenterOfCell(fromCell), self.World,
locoInfo.SubterraneanTransitionImage,
locoInfo.SubterraneanTransitionSequence, locoInfo.SubterraneanTransitionPalette)));
Info.SubterraneanTransitionImage,
Info.SubterraneanTransitionSequence, Info.SubterraneanTransitionPalette)));

if (!string.IsNullOrEmpty(locoInfo.SubterraneanTransitionSound))
Game.Sound.Play(SoundType.World, locoInfo.SubterraneanTransitionSound);
if (!string.IsNullOrEmpty(Info.SubterraneanTransitionSound))
Game.Sound.Play(SoundType.World, Info.SubterraneanTransitionSound);
}

protected override void UpdateConditions(Actor self, byte oldLayer, byte newLayer)
Expand Down
12 changes: 0 additions & 12 deletions OpenRA.Mods.Common/Traits/World/SubterraneanLocomotor.cs
Expand Up @@ -29,18 +29,6 @@ public class SubterraneanLocomotorInfo : LocomotorInfo
[Desc("Depth at which the subterranian condition is applied.")]
public readonly WDist SubterraneanTransitionDepth = new WDist(-1024);

[Desc("Dig animation image to play when transitioning.")]
public readonly string SubterraneanTransitionImage = null;

[SequenceReference("SubterraneanTransitionImage")]
[Desc("Dig animation image to play when transitioning.")]
public readonly string SubterraneanTransitionSequence = null;

[PaletteReference]
public readonly string SubterraneanTransitionPalette = "effect";

public readonly string SubterraneanTransitionSound = null;

public override object Create(ActorInitializer init) { return new SubterraneanLocomotor(init.Self, this); }
}

Expand Down
6 changes: 6 additions & 0 deletions mods/ts/rules/nod-vehicles.yaml
Expand Up @@ -369,6 +369,9 @@ SAPC:
Locomotor: subterranean
GrantConditionOnSubterraneanLayer:
Condition: submerged
SubterraneanTransitionSound: subdril1.aud
SubterraneanTransitionImage: dig
SubterraneanTransitionSequence: idle
Health:
HP: 17500
Armor:
Expand Down Expand Up @@ -409,6 +412,9 @@ SUBTANK:
Locomotor: subterranean
GrantConditionOnSubterraneanLayer:
Condition: submerged
SubterraneanTransitionSound: subdril1.aud
SubterraneanTransitionImage: dig
SubterraneanTransitionSequence: idle
Health:
HP: 30000
Armor:
Expand Down
3 changes: 0 additions & 3 deletions mods/ts/rules/world.yaml
Expand Up @@ -124,9 +124,6 @@
Subterranean: 120
SubterraneanTransitionTerrainTypes: Clear, Rough
SubterraneanTransitionCost: 120
SubterraneanTransitionSound: subdril1.aud
SubterraneanTransitionImage: dig
SubterraneanTransitionSequence: idle
Locomotor@HOVER:
Name: hover
Crushes: wall, crate, infantry
Expand Down

0 comments on commit 8a2c84f

Please sign in to comment.