BaseTurfs (#699)

* tweaks

* Baseturfs

* dotnet messages

* indentation

* comment

* Change requests

* Smaller diff

* Diff
This commit is contained in:
Rohesie
2020-02-22 20:30:36 -03:00
committed by GitHub
parent 4f397e1ce2
commit ffe55648b6
5 changed files with 208 additions and 88 deletions

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Content.Server.GameObjects.Components.Mobs;
using Content.Server.GameObjects.EntitySystems;
@@ -46,8 +47,7 @@ namespace Content.Server.Explosions
continue;
var distanceFromEntity = (int)entity.Transform.GridPosition.Distance(mapManager, coords);
var exAct = entitySystemManager.GetEntitySystem<ActSystem>();
var severity = ExplosionSeverity.Destruction;
ExplosionSeverity severity;
if (distanceFromEntity < devastationRange)
{
severity = ExplosionSeverity.Destruction;
@@ -64,6 +64,7 @@ namespace Content.Server.Explosions
{
continue;
}
var exAct = entitySystemManager.GetEntitySystem<ActSystem>();
//exAct.HandleExplosion(Owner, entity, severity);
exAct.HandleExplosion(null, entity, severity);
}
@@ -76,29 +77,33 @@ namespace Content.Server.Explosions
foreach (var tile in tiles)
{
var tileLoc = mapGrid.GridTileToLocal(tile.GridIndices);
var tileDef = (ContentTileDefinition)tileDefinitionManager[tile.Tile.TypeId];
var distanceFromTile = (int)tileLoc.Distance(mapManager, coords);
if (!string.IsNullOrWhiteSpace(tileDef.SubFloor))
var tileDef = (ContentTileDefinition) tileDefinitionManager[tile.Tile.TypeId];
var baseTurfs = tileDef.BaseTurfs;
if (baseTurfs.Count == 0)
{
if (distanceFromTile < devastationRange)
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager["space"].TileId));
if (distanceFromTile < heavyImpactRange)
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(80))
{
if (robustRandom.Prob(80))
{
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager[tileDef.SubFloor].TileId));
}
else
{
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager["space"].TileId));
}
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager[baseTurfs[^1]].TileId));
}
if (distanceFromTile < lightImpactRange)
else
{
if (robustRandom.Prob(50))
{
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager[tileDef.SubFloor].TileId));
}
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager[baseTurfs[0]].TileId));
}
}
else if (distanceFromTile < lightImpactRange)
{
if (robustRandom.Prob(50))
{
mapGrid.SetTile(tileLoc, new Tile(tileDefinitionManager[baseTurfs[^1]].TileId));
}
}
}