Refactor RandomDelay:
Allow different types of random and reflect other use cases by renaming.
This commit is contained in:
committed by
abcdefg30
parent
3a7aeb5324
commit
a2a668077c
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
public KillsSelf(Actor self, KillsSelfInfo info)
|
||||
: base(info)
|
||||
{
|
||||
lifetime = Util.RandomDelay(self.World, info.Delay);
|
||||
lifetime = Util.RandomInRange(self.World.SharedRandom, info.Delay);
|
||||
}
|
||||
|
||||
protected override void TraitEnabled(Actor self)
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
: base(info)
|
||||
{
|
||||
wsb = self.TraitsImplementing<WithSpriteBody>().Single(w => w.Info.Name == Info.Body);
|
||||
ticks = Util.RandomDelay(self.World, info.Interval);
|
||||
ticks = Util.RandomInRange(self.World.SharedRandom, info.Interval);
|
||||
}
|
||||
|
||||
void ITick.Tick(Actor self)
|
||||
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
if (--ticks <= 0)
|
||||
{
|
||||
wsb.PlayCustomAnimation(self, Info.Sequences.Random(Game.CosmeticRandom));
|
||||
ticks = Util.RandomDelay(self.World, Info.Interval);
|
||||
ticks = Util.RandomInRange(self.World.SharedRandom, Info.Interval);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
|
||||
public AmbientSound(Actor self, AmbientSoundInfo info)
|
||||
: base(info)
|
||||
{
|
||||
delay = Util.RandomDelay(self.World, info.Delay);
|
||||
delay = Util.RandomInRange(self.World.SharedRandom, info.Delay);
|
||||
loop = Info.Interval.Length == 0 || (Info.Interval.Length == 1 && Info.Interval[0] == 0);
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
|
||||
{
|
||||
StartSound(self);
|
||||
if (!loop)
|
||||
delay = Util.RandomDelay(self.World, Info.Interval);
|
||||
delay = Util.RandomInRange(self.World.SharedRandom, Info.Interval);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
|
||||
currentSounds.Clear();
|
||||
}
|
||||
|
||||
protected override void TraitEnabled(Actor self) { delay = Util.RandomDelay(self.World, Info.Delay); }
|
||||
protected override void TraitEnabled(Actor self) { delay = Util.RandomInRange(self.World.SharedRandom, Info.Delay); }
|
||||
protected override void TraitDisabled(Actor self) { StopSound(); }
|
||||
|
||||
void INotifyRemovedFromWorld.RemovedFromWorld(Actor self) { StopSound(); }
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (spawnPoint == null)
|
||||
return;
|
||||
|
||||
spawnCountdown = Util.RandomDelay(self.World, info.SpawnInterval);
|
||||
spawnCountdown = Util.RandomInRange(self.World.SharedRandom, info.SpawnInterval);
|
||||
|
||||
do
|
||||
{
|
||||
|
||||
@@ -198,7 +198,7 @@ namespace OpenRA.Mods.Common
|
||||
}
|
||||
}
|
||||
|
||||
public static int RandomDelay(World world, int[] range)
|
||||
public static int RandomInRange(MersenneTwister random, int[] range)
|
||||
{
|
||||
if (range.Length == 0)
|
||||
return 0;
|
||||
@@ -206,7 +206,7 @@ namespace OpenRA.Mods.Common
|
||||
if (range.Length == 1)
|
||||
return range[0];
|
||||
|
||||
return world.SharedRandom.Next(range[0], range[1]);
|
||||
return random.Next(range[0], range[1]);
|
||||
}
|
||||
|
||||
public static string FriendlyTypeName(Type t)
|
||||
|
||||
Reference in New Issue
Block a user