moved randoms onto World (reqd for side-by-side worlds, also fixes some obscure desyncs)

This commit is contained in:
Chris Forbes
2010-02-13 21:06:02 +13:00
parent c026796c04
commit 641c21107e
9 changed files with 17 additions and 17 deletions

View File

@@ -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)

View File

@@ -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);

View File

@@ -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(

View File

@@ -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);