init melting reagent and system
This commit is contained in:
17
Content.Server/_CP14/Temperature/CPMeltingComponent.cs
Normal file
17
Content.Server/_CP14/Temperature/CPMeltingComponent.cs
Normal 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;
|
||||
}
|
||||
28
Content.Server/_CP14/Temperature/CPMeltingSystem.cs
Normal file
28
Content.Server/_CP14/Temperature/CPMeltingSystem.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
35
Resources/Prototypes/_CP14/Reagents/metalls.yml
Normal file
35
Resources/Prototypes/_CP14/Reagents/metalls.yml
Normal 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
|
||||
Reference in New Issue
Block a user