fix CrateDrop 128x128 assumption + bad code :D
This commit is contained in:
@@ -51,7 +51,7 @@ namespace OpenRA.Mods.RA_NG
|
|||||||
var info = self.Info.Traits.Get<CrateDropInfo>();
|
var info = self.Info.Traits.Get<CrateDropInfo>();
|
||||||
ticks = info.SpawnInterval * 25; // todo: randomize
|
ticks = info.SpawnInterval * 25; // todo: randomize
|
||||||
|
|
||||||
crates.RemoveAll(x => !x.IsInWorld);
|
crates.RemoveAll(x => !x.IsInWorld); // BUG: this removes crates that are cargo of a BADR!
|
||||||
|
|
||||||
var toSpawn = Math.Max(0, info.Minimum - crates.Count)
|
var toSpawn = Math.Max(0, info.Minimum - crates.Count)
|
||||||
+ (crates.Count < info.Maximum ? 1 : 0);
|
+ (crates.Count < info.Maximum ? 1 : 0);
|
||||||
@@ -63,12 +63,13 @@ namespace OpenRA.Mods.RA_NG
|
|||||||
|
|
||||||
void SpawnCrate(Actor self, CrateDropInfo info)
|
void SpawnCrate(Actor self, CrateDropInfo info)
|
||||||
{
|
{
|
||||||
|
var threshold = 100;
|
||||||
|
|
||||||
var inWater = self.World.SharedRandom.NextDouble() < info.WaterChance;
|
var inWater = self.World.SharedRandom.NextDouble() < info.WaterChance;
|
||||||
var umt = inWater ? UnitMovementType.Float : UnitMovementType.Wheel;
|
var umt = inWater ? UnitMovementType.Float : UnitMovementType.Wheel;
|
||||||
int count = 0, threshold = 100;
|
for (var n = 0; n < threshold; n++ )
|
||||||
for (; ; )
|
|
||||||
{
|
{
|
||||||
var p = new int2(self.World.SharedRandom.Next(0, 127), self.World.SharedRandom.Next(0, 127));
|
var p = self.World.ChooseRandomCell(self.World.SharedRandom);
|
||||||
if (self.World.IsCellBuildable(p, umt))
|
if (self.World.IsCellBuildable(p, umt))
|
||||||
{
|
{
|
||||||
self.World.AddFrameEndTask(w =>
|
self.World.AddFrameEndTask(w =>
|
||||||
@@ -83,10 +84,8 @@ namespace OpenRA.Mods.RA_NG
|
|||||||
plane.traits.Get<ParaDrop>().SetLZ(p);
|
plane.traits.Get<ParaDrop>().SetLZ(p);
|
||||||
plane.traits.Get<Cargo>().Load(plane, crate);
|
plane.traits.Get<Cargo>().Load(plane, crate);
|
||||||
});
|
});
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
if (count++ > threshold)
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user