From de7bd0063a9fdd5a699aae662db65d0c2a034267 Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Mon, 29 Aug 2022 11:48:49 +1200 Subject: [PATCH] Fix two explosion bugs (#10909) * Fix trigger LINQ error. * divide by zero --- .../Explosion/EntitySystems/ExplosionSystem.Airtight.cs | 4 +++- Content.Server/Explosion/EntitySystems/TriggerSystem.cs | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.Airtight.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.Airtight.cs index 87513df99d..6ebcf59f2e 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.Airtight.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.Airtight.cs @@ -158,7 +158,9 @@ public sealed partial class ExplosionSystem : EntitySystem damagePerIntensity += value * Math.Max(0, ev.DamageCoefficient); } - explosionTolerance[index] = (float) ((totalDamageTarget - damageable.TotalDamage) / damagePerIntensity); + explosionTolerance[index] = damagePerIntensity > 0 + ? (float) ((totalDamageTarget - damageable.TotalDamage) / damagePerIntensity) + : float.MaxValue; } return explosionTolerance; diff --git a/Content.Server/Explosion/EntitySystems/TriggerSystem.cs b/Content.Server/Explosion/EntitySystems/TriggerSystem.cs index 3bdf14336d..57541b289a 100644 --- a/Content.Server/Explosion/EntitySystems/TriggerSystem.cs +++ b/Content.Server/Explosion/EntitySystems/TriggerSystem.cs @@ -126,7 +126,8 @@ namespace Content.Server.Explosion.EntitySystems { // Check if entity is bomb/mod. grenade/etc if (_container.TryGetContainer(uid, "payload", out IContainer? container) && - TryComp(container.ContainedEntities.First(), out ChemicalPayloadComponent? chemicalPayloadComponent)) + container.ContainedEntities.Count > 0 && + TryComp(container.ContainedEntities[0], out ChemicalPayloadComponent? chemicalPayloadComponent)) { // If a beaker is missing, the entity won't explode, so no reason to log it if (!TryComp(chemicalPayloadComponent?.BeakerSlotA.Item, out SolutionContainerManagerComponent? beakerA) ||