More xeno artifacts effects (#6282)

This commit is contained in:
Alex Evgrashin
2022-02-07 05:26:10 +03:00
committed by GitHub
parent be7a770b78
commit 617f92df65
15 changed files with 299 additions and 23 deletions

View File

@@ -0,0 +1,36 @@
using System;
using Content.Server.Atmos.EntitySystems;
using Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components;
using Content.Server.Xenoarchaeology.XenoArtifacts.Events;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems;
public class TemperatureArtifactSystem : EntitySystem
{
[Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<TemperatureArtifactComponent, ArtifactActivatedEvent>(OnActivate);
}
private void OnActivate(EntityUid uid, TemperatureArtifactComponent component, ArtifactActivatedEvent args)
{
var transform = Transform(uid);
var environment = _atmosphereSystem.GetTileMixture(transform.Coordinates, true);
if (environment == null)
return;
var dif = component.TargetTemperature - environment.Temperature;
var absDif = Math.Abs(dif);
if (absDif < component.MaxTemperatureDifference)
return;
var step = Math.Min(absDif, component.SpawnTemperature);
environment.Temperature += dif > 0 ? step : -step;
}
}