Add support for random sounds to AmbientSound
This commit is contained in:
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
|
||||
class AmbientSoundInfo : ConditionalTraitInfo
|
||||
{
|
||||
[FieldLoader.Require]
|
||||
public readonly string SoundFile = null;
|
||||
public readonly string[] SoundFiles = null;
|
||||
|
||||
[Desc("Initial delay (in ticks) before playing the sound for the first time.",
|
||||
"Two values indicate a random delay range.")]
|
||||
@@ -74,16 +74,18 @@ namespace OpenRA.Mods.Common.Traits.Sound
|
||||
|
||||
void StartSound(Actor self)
|
||||
{
|
||||
var sound = Info.SoundFiles.RandomOrDefault(Game.CosmeticRandom);
|
||||
|
||||
ISound s;
|
||||
if (self.OccupiesSpace != null)
|
||||
{
|
||||
cachedPosition = self.CenterPosition;
|
||||
s = loop ? Game.Sound.PlayLooped(SoundType.World, Info.SoundFile, cachedPosition) :
|
||||
Game.Sound.Play(SoundType.World, Info.SoundFile, self.CenterPosition);
|
||||
s = loop ? Game.Sound.PlayLooped(SoundType.World, sound, cachedPosition) :
|
||||
Game.Sound.Play(SoundType.World, sound, self.CenterPosition);
|
||||
}
|
||||
else
|
||||
s = loop ? Game.Sound.PlayLooped(SoundType.World, Info.SoundFile) :
|
||||
Game.Sound.Play(SoundType.World, Info.SoundFile);
|
||||
s = loop ? Game.Sound.PlayLooped(SoundType.World, sound) :
|
||||
Game.Sound.Play(SoundType.World, sound);
|
||||
|
||||
currentSounds.Add(s);
|
||||
}
|
||||
|
||||
@@ -596,6 +596,11 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
RenameNodeKey(node, "-AcceptsDeliveredCash");
|
||||
}
|
||||
|
||||
// Add random sound support to AmbientSound
|
||||
if (engineVersion < 20170422)
|
||||
if (node.Key == "SoundFile" && parent.Key.StartsWith("AmbientSound", StringComparison.Ordinal))
|
||||
RenameNodeKey(node, "SoundFiles");
|
||||
|
||||
UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -773,7 +773,7 @@ OBLI:
|
||||
ChargingCondition: charging
|
||||
AmbientSound:
|
||||
RequiresCondition: charging
|
||||
SoundFile: obelpowr.aud
|
||||
SoundFiles: obelpowr.aud
|
||||
Interval: 30, 40
|
||||
-EmitInfantryOnSell:
|
||||
DetectCloaked:
|
||||
|
||||
@@ -82,7 +82,7 @@ sandworm:
|
||||
Sequences: lightninga, lightningb, lightningc, lightningd, lightninge, lightningf
|
||||
RequiresCondition: !attacking
|
||||
AmbientSound:
|
||||
SoundFile: WRMSIGN1.WAV
|
||||
SoundFiles: WRMSIGN1.WAV
|
||||
Interval: 160
|
||||
RequiresCondition: !attacking
|
||||
WithAttackOverlay@mouth:
|
||||
|
||||
@@ -111,7 +111,7 @@ thumper:
|
||||
Sequence: thump-sand
|
||||
RequiresCondition: deployed
|
||||
AmbientSound:
|
||||
SoundFile: THUMPER1.WAV
|
||||
SoundFiles: THUMPER1.WAV
|
||||
Interval: 60
|
||||
RequiresCondition: deployed
|
||||
AttractsWorms:
|
||||
|
||||
@@ -113,7 +113,7 @@ NAOBEL:
|
||||
ChargingCondition: charging
|
||||
AmbientSound:
|
||||
RequiresCondition: charging
|
||||
SoundFile: obelpowr.aud
|
||||
SoundFiles: obelpowr.aud
|
||||
Interval: 30, 40
|
||||
WithChargeOverlay:
|
||||
Palette: player
|
||||
|
||||
Reference in New Issue
Block a user