init melting reagent and system

This commit is contained in:
Ed
2024-04-17 17:49:47 +03:00
parent 45d351b2b2
commit e94cd726e1
4 changed files with 89 additions and 1 deletions

View File

@@ -0,0 +1,17 @@
using Content.Shared.Chemistry.Components;
namespace Content.Server._CP14.Temperature;
/// <summary>
///
/// </summary>
[RegisterComponent, Access(typeof(CPMeltingSystem))]
public sealed partial class CPMeltingComponent : Component
{
[DataField]
public Solution? MeltSolution;
[DataField]
public float MeltTemperature = 1000f;
}

View File

@@ -0,0 +1,28 @@
using Content.Server.Fluids.EntitySystems;
using Content.Server.Temperature.Systems;
namespace Content.Server._CP14.Temperature;
public sealed partial class CPMeltingSystem : EntitySystem
{
[Dependency] private readonly PuddleSystem _puddleSystem = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CPMeltingComponent, OnTemperatureChangeEvent>(OnTemperatureChange);
}
private void OnTemperatureChange(Entity<CPMeltingComponent> ent, ref OnTemperatureChangeEvent args)
{
if (!(args.CurrentTemperature >= ent.Comp.MeltTemperature))
return;
if (ent.Comp.MeltSolution != null)
{
_puddleSystem.TrySplashSpillAt(ent, Transform(ent).Coordinates, ent.Comp.MeltSolution, out var puddleUid);
}
QueueDel(ent);
}
}

View File

@@ -40,4 +40,12 @@
offset: 0.15,0.15
removalTime: 1
- type: ThrowingAngle
angle: 225
angle: 225
- type: CPMelting
meltTemperature: 1000
meltSolution:
temperature: 1000
reagents:
- ReagentId: CPMetledIron
Quantity: 10
- type: Temperature

View File

@@ -0,0 +1,35 @@
- type: reagent
id: CPBaseMetledMetall
group: Metled
abstract: true
reactiveEffects:
Flammable:
methods: [ Touch ]
effects:
- !type:FlammableReaction
- type: reagent
id: CPMetledIron
parent: CPBaseMetledMetall
name: расплавленный металл #TODO
desc: Металл, доведенный до огромных температур. #TODO
physicalDesc: reagent-physical-desc-grainy #TODO
flavor: безумно #TODO
color: "#757245"
tileReactions:
- !type:FlammableTileReaction #TODO: Spawn fire puddle
temperatureMultiplier: 2
reactiveEffects:
Flammable:
methods: [ Touch ]
effects:
- !type:FlammableReaction
multiplier: 0.2
- !type:Ignite
metabolisms:
Poison:
effects:
- !type:HealthChange
damage:
types:
Heat: 5