-using System.Numerics;
using Content.Shared.CCVar;
using Content.Shared.Damage;
using Content.Shared.Damage.Components;
using Robust.Shared.Random;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
+using System.Numerics;
using TimedDespawnComponent = Robust.Shared.Spawners.TimedDespawnComponent;
namespace Content.Server.Explosion.EntitySystems;
HashSet<EntityUid> processed,
string id,
float? fireStacks,
+ float? temperature,
+ float currentIntensity,
EntityUid? cause)
{
var size = grid.Comp.TileSize;
ProcessEntity(entity, epicenter, damage, throwForce, id, null, fireStacks, cause);
}
+ // heat the atmosphere
+ if (temperature != null)
+ {
+ _atmosphere.HotspotExpose(grid.Owner, tile, temperature.Value, currentIntensity, cause, true);
+ }
+
// Walls and reinforced walls will break into girders. These girders will also be considered turf-blocking for
// the purposes of destroying floors. Again, ideally the process of damaging an entity should somehow return
// information about the entities that were spawned as a result, but without that information we just have to
}
}
- // ignite
+ // ignite entities with the flammable component
if (fireStacksOnIgnite != null)
{
if (_flammableQuery.TryGetComponent(uid, out var flammable))
ProcessedEntities,
ExplosionType.ID,
ExplosionType.FireStacks,
+ ExplosionType.Temperature,
+ _currentIntensity,
Cause);
// If the floor is not blocked by some dense object, damage the floor tiles.
[Dependency] private readonly SharedMapSystem _map = default!;
[Dependency] private readonly FlammableSystem _flammableSystem = default!;
[Dependency] private readonly DestructibleSystem _destructibleSystem = default!;
+ [Dependency] private readonly AtmosphereSystem _atmosphere = default!;
private EntityQuery<FlammableComponent> _flammableQuery;
private EntityQuery<PhysicsComponent> _physicsQuery;
lightColor: Orange
texturePath: /Textures/Effects/fire.rsi
fireStates: 3
+ temperature: 800
- type: explosion
id: DemolitionCharge
lightColor: Orange
texturePath: /Textures/Effects/fire.rsi
fireStates: 3
+ temperature: 800
- type: explosion
id: MicroBomb
lightColor: Orange
texturePath: /Textures/Effects/fire.rsi
fireStates: 3
+ temperature: 800
- type: explosion
id: Radioactive
lightColor: Orange
texturePath: /Textures/Effects/fire.rsi
fireStates: 3
+ temperature: 800
- type: explosion
id: PowerSink
lightColor: Orange
texturePath: /Textures/Effects/fire.rsi
fireStates: 3
+ temperature: 800
- type: explosion
id: HardBomb
lightColor: Orange
texturePath: /Textures/Effects/fire.rsi
fireStates: 3
+ temperature: 800
- type: explosion
id: FireBomb
texturePath: /Textures/Effects/fire.rsi
fireStates: 3
fireStacks: 2
+ temperature: 1500