Make devastation the only explosion type that removes tiles entirely (#1612)
* Make light and heavy explosions not destroy tiles to space * Change welding fuel tank and grenade explosion values
This commit is contained in:
@@ -83,29 +83,25 @@ namespace Content.Server.Explosions
|
||||
continue;
|
||||
}
|
||||
var distanceFromTile = (int) tileLoc.Distance(mapManager, coords);
|
||||
if (distanceFromTile < devastationRange)
|
||||
{
|
||||
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager[baseTurfs[0]].TileId));
|
||||
}
|
||||
|
||||
else if (distanceFromTile < heavyImpactRange)
|
||||
{
|
||||
if (robustRandom.Prob(0.8f))
|
||||
{
|
||||
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager[baseTurfs[^1]].TileId));
|
||||
}
|
||||
else
|
||||
{
|
||||
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager[baseTurfs[0]].TileId));
|
||||
}
|
||||
}
|
||||
var zeroTile = new Tile(tileDefinitionManager[baseTurfs[0]].TileId);
|
||||
var previousTile = new Tile(tileDefinitionManager[baseTurfs[^1]].TileId);
|
||||
|
||||
else if (distanceFromTile < lightImpactRange)
|
||||
switch (distanceFromTile)
|
||||
{
|
||||
if (robustRandom.Prob(0.5f))
|
||||
{
|
||||
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager[baseTurfs[^1]].TileId));
|
||||
}
|
||||
case var d when d < devastationRange:
|
||||
mapGrid.SetTile(tileLoc, zeroTile);
|
||||
break;
|
||||
case var d when d < heavyImpactRange
|
||||
&& !previousTile.IsEmpty
|
||||
&& robustRandom.Prob(0.8f):
|
||||
mapGrid.SetTile(tileLoc, previousTile);
|
||||
break;
|
||||
case var d when d < lightImpactRange
|
||||
&& !previousTile.IsEmpty
|
||||
&& robustRandom.Prob(0.5f):
|
||||
mapGrid.SetTile(tileLoc, previousTile);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user