moved randoms onto World (reqd for side-by-side worlds, also fixes some obscure desyncs)
This commit is contained in:
@@ -46,7 +46,7 @@ namespace OpenRa.Traits
|
||||
{
|
||||
var shares = self.traits.WithInterface<ICrateAction>().Select(a => Pair.New(a, a.SelectionShares));
|
||||
var totalShares = shares.Sum(a => a.Second);
|
||||
var n = Game.SharedRandom.Next(totalShares);
|
||||
var n = self.World.SharedRandom.Next(totalShares);
|
||||
|
||||
self.World.AddFrameEndTask(w => w.Remove(self));
|
||||
foreach (var s in shares)
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace OpenRa.Traits
|
||||
|
||||
for (var j = -1; j < 2; j++)
|
||||
for (var i = -1; i < 2; i++)
|
||||
if (Game.SharedRandom.NextDouble() < info.Chance)
|
||||
if (self.World.SharedRandom.NextDouble() < info.Chance)
|
||||
if (self.World.OreCanSpreadInto(self.Location.X + i, self.Location.Y + j))
|
||||
self.World.Map.AddOre(self.Location.X + i, self.Location.Y + j);
|
||||
|
||||
|
||||
@@ -41,12 +41,12 @@ namespace OpenRa.Traits
|
||||
|
||||
void SpawnCrate(Actor self, CrateSpawnerInfo info)
|
||||
{
|
||||
var inWater = Game.SharedRandom.NextDouble() < info.WaterChance;
|
||||
var inWater = self.World.SharedRandom.NextDouble() < info.WaterChance;
|
||||
var umt = inWater ? UnitMovementType.Float : UnitMovementType.Wheel;
|
||||
|
||||
for (; ; )
|
||||
{
|
||||
var p = new int2(Game.SharedRandom.Next(0,127), Game.SharedRandom.Next(0,127));
|
||||
var p = new int2(self.World.SharedRandom.Next(0, 127), self.World.SharedRandom.Next(0, 127));
|
||||
if (self.World.IsCellBuildable(p, umt))
|
||||
{
|
||||
self.World.AddFrameEndTask(
|
||||
|
||||
@@ -28,11 +28,11 @@ namespace OpenRa.Traits
|
||||
|
||||
if (info.Spreads)
|
||||
Ore.SpreadOre(self.World,
|
||||
Game.SharedRandom,
|
||||
self.World.SharedRandom,
|
||||
info.Chance);
|
||||
|
||||
if (info.Grows)
|
||||
Ore.GrowOre(self.World, Game.SharedRandom);
|
||||
Ore.GrowOre(self.World, self.World.SharedRandom);
|
||||
|
||||
self.World.Minimap.InvalidateOre();
|
||||
remainingTicks = (int)(info.Interval * 60 * 25);
|
||||
|
||||
Reference in New Issue
Block a user