This repository has been archived by the owner on Nov 1, 2024. It is now read-only.
forked from new-frontiers-14/frontier-station-14
-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds an innate mineral scanner to dwarves (new-frontiers-14#2112)
* Adds an innate mining scanner to dwarves * Edit dwarf guidebook, move cryo/dorf to _NF
- Loading branch information
Showing
10 changed files
with
157 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 22 additions & 0 deletions
22
Content.Shared/_NF/Mining/Components/InnateMiningScannerViewerComponent.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
using Robust.Shared.Audio; | ||
using Robust.Shared.GameStates; | ||
using Content.Shared.Mining; | ||
|
||
namespace Content.Shared._NF.Mining.Components; | ||
|
||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(MiningScannerSystem))] | ||
public sealed partial class InnateMiningScannerViewerComponent : Component | ||
{ | ||
[DataField, ViewVariables(VVAccess.ReadOnly), AutoNetworkedField] | ||
public float ViewRange; | ||
|
||
[DataField, AutoNetworkedField] | ||
public float AnimationDuration = 1.5f; | ||
|
||
[DataField, AutoNetworkedField] | ||
public TimeSpan PingDelay = TimeSpan.FromSeconds(5); | ||
|
||
[DataField, AutoNetworkedField] | ||
public SoundSpecifier? PingSound = null; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
using Content.Shared.Mining.Components; | ||
using Content.Shared._NF.Mining.Components; | ||
|
||
namespace Content.Shared.Mining; | ||
|
||
public sealed partial class MiningScannerSystem : EntitySystem | ||
{ | ||
|
||
/// <inheritdoc/> | ||
public void NFInitialize() | ||
{ | ||
SubscribeLocalEvent<InnateMiningScannerViewerComponent, ComponentStartup>(OnStartup); | ||
} | ||
|
||
private void OnStartup(Entity<InnateMiningScannerViewerComponent> ent, ref ComponentStartup args) | ||
{ | ||
if (!HasComp<MiningScannerViewerComponent>(ent)) | ||
{ | ||
SetupInnateMiningViewerComponent(ent); | ||
} | ||
} | ||
|
||
private void SetupInnateMiningViewerComponent(Entity<InnateMiningScannerViewerComponent> ent) | ||
{ | ||
var comp = EnsureComp<MiningScannerViewerComponent>(ent); | ||
comp.ViewRange = ent.Comp.ViewRange; | ||
comp.PingDelay = ent.Comp.PingDelay; | ||
comp.PingSound = ent.Comp.PingSound; | ||
comp.QueueRemoval = false; | ||
comp.NextPingTime = _timing.CurTime + ent.Comp.PingDelay; | ||
Dirty(ent.Owner, comp); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
- type: guideEntry | ||
id: Goblin | ||
name: species-name-goblin | ||
text: "/ServerInfo/_NF/Guidebook/Mobs/Goblin.xml" | ||
text: "/ServerInfo/_NF/Guidebook/Mobs/Goblin.xml" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
<Document> | ||
# Cryogenics | ||
Cryogenics can be a bit daunting to understand, but hopefully, quick run through of this diagram, you'll learn how to work it! So, let's go over what each part does: | ||
|
||
- Air in: Air comes in here through the distro or an air tank, giving those inside something to breathe, and the freezer something to chill. | ||
- Gas pump: Limits the network pressure, so those in the tube aren't crushed. | ||
- Freezer: Chills the air, and by extension, patients in the tube, so Cryoxadone can activate. | ||
- Gas filters: Removes waste gas (Carbon Dioxide and Nitrous Oxide) from the loop. | ||
- Air out: Waste gasses go here, either into a storage tank, or into the waste network. | ||
<Box> | ||
<GuideEntityEmbed Entity="GasPipeBend" Rotation="90"/> | ||
<GuideEntityEmbed Entity="GasPipeStraight" Rotation="90"/> | ||
<GuideEntityEmbed Entity="GasPipeStraight" Rotation="90"/> | ||
<GuideEntityEmbed Entity="GasPipeBend" Rotation="0"/> | ||
<GuideEntityEmbed Entity="CryoPod" Caption="cryo pod" Rotation="0"/> | ||
<GuideEntityEmbed Entity="GasThermoMachineFreezerEnabled" Rotation="0"/> | ||
</Box> | ||
<Box> | ||
<GuideEntityEmbed Entity="GasPipeBend" Rotation="180"/> | ||
<GuideEntityEmbed Entity="GasFilterFlipped" Rotation="90"/> | ||
<GuideEntityEmbed Entity="GasFilterFlipped" Rotation="90"/> | ||
<GuideEntityEmbed Entity="GasPipeTJunction" Rotation="180"/> | ||
<GuideEntityEmbed Entity="GasPipeTJunction" Rotation="180"/> | ||
<GuideEntityEmbed Entity="GasPipeTJunction" Rotation="270"/> | ||
</Box> | ||
<Box> | ||
<GuideEntityEmbed Entity="GasPort" Caption="air out" Rotation="90"/> | ||
<GuideEntityEmbed Entity="GasPipeTJunction" Rotation="180"/> | ||
<GuideEntityEmbed Entity="GasPipeBend" Rotation="270"/> | ||
<GuideEntityEmbed Entity="GasPort" Caption="air in" Rotation="90"/> | ||
<GuideEntityEmbed Entity="GasPressurePump" Rotation="90"/> | ||
<GuideEntityEmbed Entity="GasPipeBend" Rotation="270"/> | ||
</Box> | ||
|
||
Not every network will look like this, but hopefully, it's enough to give you the basic gist of how it's functioning. | ||
|
||
An important thing to note, winter clothing (and hardsuits) will make cryogenic treatment less, or completely ineffective. Be sure to remove cold preventative clothing before placing people in the pod. | ||
|
||
## Using the Pod | ||
|
||
Once things have been set up, you're going to require cryogenic medications (all listed below). They each provide healing when a patient is chilled, and should be loaded into the pod directly with a beaker. Do note, patients won't begin to heal until they've chilled to the appropriate temperature, it may be worthwhile to wait a bit before placing a beaker inside. | ||
|
||
## Additional Information: | ||
|
||
The standard pressure for a gas pump is 100.325 kpa. Cryogenics medicines work at under 213K (150K for Opporozidone), but it is standard practice to set the freezer to 100K for faster freezing. | ||
|
||
Cryo pods filter out each cryogenic medicine from the beaker in the pod, injecting a small, steady amount of each into the patient. This allows for medicine to be administered twice as efficiently than with injection or oral administration. | ||
|
||
<GuideReagentEmbed Reagent="Aloxadone"/> | ||
<GuideReagentEmbed Reagent="Cryoxadone"/> | ||
<GuideReagentEmbed Reagent="Doxarubixadone"/> | ||
<GuideReagentEmbed Reagent="Necrosol"/> | ||
<GuideReagentEmbed Reagent="Opporozidone"/> | ||
<GuideReagentEmbed Reagent="Stelloxadone"/> | ||
<GuideReagentEmbed Reagent="Traumoxadone"/> | ||
|
||
</Document> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<Document> | ||
# Dwarves | ||
|
||
<Box> | ||
<GuideEntityEmbed Entity="MobDwarf" Caption=""/> | ||
</Box> | ||
|
||
An industrious species, dwarves are similar to humans in most respect, but tolerate alcohol better and are healed by it. | ||
|
||
<Box> | ||
<GuideEntityEmbed Entity="WallRockChromiteDiamond" Caption=""/> | ||
<GuideEntityEmbed Entity="WallRockBasaltBananium" Caption=""/> | ||
<GuideEntityEmbed Entity="WallRockBluespace" Caption=""/> | ||
</Box> | ||
|
||
A dwarf instinctively knows where the choice ore veins are, and can sense the presence of ore up to 5 meters away. | ||
|
||
</Document> |