Use correct sound for teleporting chronotanks

This commit is contained in:
ScottNZ
2013-07-14 00:24:11 +12:00
parent bd38f1255f
commit 7ead562349
4 changed files with 20 additions and 8 deletions

View File

@@ -19,18 +19,20 @@ namespace OpenRA.Mods.RA.Activities
CPos destination;
bool killCargo;
Actor chronosphere;
string sound;
public Teleport(Actor chronosphere, CPos destination, bool killCargo)
public Teleport(Actor chronosphere, CPos destination, bool killCargo, string sound)
{
this.chronosphere = chronosphere;
this.destination = destination;
this.killCargo = killCargo;
this.sound = sound;
}
public override Activity Tick(Actor self)
{
Sound.Play("chrono2.aud", self.CenterPosition);
Sound.Play("chrono2.aud", destination.CenterPosition);
Sound.Play(sound, self.CenterPosition);
Sound.Play(sound, destination.CenterPosition);
self.Trait<ITeleportable>().SetPosition(self, destination);
self.Generation++;

View File

@@ -22,6 +22,8 @@ namespace OpenRA.Mods.RA
{
public readonly int ChargeTime = 30; // seconds
public readonly int JumpDistance = 10;
public readonly string ChronoshiftSound = "chrotnk1.aud";
public object Create(ActorInitializer init) { return new ChronoshiftDeploy(init.self, this); }
}
@@ -63,7 +65,7 @@ namespace OpenRA.Mods.RA
if (CanJumpTo(order.TargetLocation, true))
{
self.CancelActivity();
self.QueueActivity(new Teleport(null, order.TargetLocation, true));
self.QueueActivity(new Teleport(null, order.TargetLocation, true, Info.ChronoshiftSound));
chargeTick = 25 * Info.ChargeTime;
}
}

View File

@@ -14,9 +14,12 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA
{
class ChronoshiftableInfo : TraitInfo<Chronoshiftable>
public class ChronoshiftableInfo : ITraitInfo
{
public readonly bool ExplodeInstead = false;
public readonly string ChronoshiftSound = "chrono2.aud";
public object Create(ActorInitializer init) { return new Chronoshiftable(this); }
}
public class Chronoshiftable : ITick, ISync, ISelectionBar
@@ -27,6 +30,12 @@ namespace OpenRA.Mods.RA
Actor chronosphere;
bool killCargo;
int TotalTicks;
readonly ChronoshiftableInfo info;
public Chronoshiftable(ChronoshiftableInfo info)
{
this.info = info;
}
public void Tick(Actor self)
{
@@ -41,7 +50,7 @@ namespace OpenRA.Mods.RA
{
self.CancelActivity();
// TODO: need a new Teleport method that will move to the closest available cell
self.QueueActivity(new Teleport(chronosphere, chronoshiftOrigin, killCargo));
self.QueueActivity(new Teleport(chronosphere, chronoshiftOrigin, killCargo, info.ChronoshiftSound));
}
}
@@ -54,7 +63,6 @@ namespace OpenRA.Mods.RA
public virtual bool Teleport(Actor self, CPos targetLocation, int duration, bool killCargo, Actor chronosphere)
{
var info = self.Info.Traits.Get<ChronoshiftableInfo>();
if (info.ExplodeInstead) // some things appear chronoshiftable, but instead they just die.
{
self.World.AddFrameEndTask(w =>
@@ -74,7 +82,7 @@ namespace OpenRA.Mods.RA
// Set up the teleport
self.CancelActivity();
self.QueueActivity(new Teleport(chronosphere, targetLocation, killCargo));
self.QueueActivity(new Teleport(chronosphere, targetLocation, killCargo, info.ChronoshiftSound));
return true;
}

BIN
mods/ra/bits/chrotnk1.aud Normal file

Binary file not shown.