Add support for playing the weapon report of the ion cannon

This commit is contained in:
abcdefg30
2016-09-12 22:53:44 +02:00
parent bd3c6c1c6b
commit b6dc30ca93
2 changed files with 6 additions and 2 deletions

View File

@@ -29,7 +29,7 @@ namespace OpenRA.Mods.Cnc.Effects
int weaponDelay;
bool impacted = false;
public IonCannon(Player firedBy, WeaponInfo weapon, World world, CPos location, string effect, string sequence, string palette, int delay)
public IonCannon(Player firedBy, WeaponInfo weapon, World world, WPos launchPos, CPos location, string effect, string sequence, string palette, int delay)
{
this.firedBy = firedBy;
this.weapon = weapon;
@@ -38,6 +38,9 @@ namespace OpenRA.Mods.Cnc.Effects
target = Target.FromCell(world, location);
anim = new Animation(world, effect);
anim.PlayThen(sequence, () => Finish(world));
if (weapon.Report != null && weapon.Report.Any())
Game.Sound.Play(weapon.Report.Random(firedBy.World.SharedRandom), launchPos);
}
public void Tick(World world)

View File

@@ -64,7 +64,8 @@ namespace OpenRA.Mods.Cnc.Traits
self.World.AddFrameEndTask(w =>
{
Game.Sound.Play(Info.LaunchSound, self.World.Map.CenterOfCell(order.TargetLocation));
w.Add(new IonCannon(self.Owner, info.WeaponInfo, w, order.TargetLocation, info.Effect, info.EffectSequence, info.EffectPalette, info.WeaponDelay));
w.Add(new IonCannon(self.Owner, info.WeaponInfo, w, self.CenterPosition, order.TargetLocation,
info.Effect, info.EffectSequence, info.EffectPalette, info.WeaponDelay));
if (info.CameraActor == null)
return;