Files
wwdpublic/Content.Shared/Body/Components/BodyComponent.cs
Spatison 2e649fd74b Night And Thermal Vision (#1462)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Port from WWDP. Refactor from
[Goob](https://github.com/Goob-Station/Goob-Station/pull/1251)

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

![image](https://github.com/user-attachments/assets/ee60eb59-0432-477e-8aee-25a56032e58e)

Night vision goggles:

![image](https://github.com/user-attachments/assets/f9269e1a-97ed-456f-bd45-7015b723fb3e)

Zealot's blindfold:

![image](https://github.com/user-attachments/assets/7c60011e-1d0a-4fb2-92cb-fded8c747555)

Animal vision:

![image](https://github.com/user-attachments/assets/14f1153d-b771-4316-9faa-fee951d884ce)

Thermal vision goggles:

![image](https://github.com/user-attachments/assets/b167ef8b-e1b7-477e-a08d-b217fd2e38c5)

Deathsquad helmet:

![image](https://github.com/user-attachments/assets/2e15ab15-6d23-45c2-b51e-3c16dc3a135d)

Xeno vision:

![image](https://github.com/user-attachments/assets/1677b69e-013f-464a-baaf-af3b5f1b6488)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑 @Aviu00, Spatison, @PuroSlavKing
- add: Added night vision goggle
- add: Added thermal vision goggle
- add: Deathsquad helmet now grants night and thermal vision.
- add: Ninja visor now grants night vision.
- tweak: Some animals have gained night vision.
- tweak: Xenos have gained night vision.

---------

Signed-off-by: Spatison <137375981+Spatison@users.noreply.github.com>
Co-authored-by: PuroSlavKing <103608145+puroslavking@users.noreply.github.com>

(cherry picked from commit 0f481422a54a197923f4bf03db1b5733e481965f)
2025-01-14 01:57:25 +03:00

48 lines
1.3 KiB
C#

using Content.Shared.Body.Prototypes;
using Content.Shared.Body.Systems;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Body.Components;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(SharedBodySystem))]
public sealed partial class BodyComponent : Component
{
/// <summary>
/// Relevant template to spawn for this body.
/// </summary>
[DataField, AutoNetworkedField]
public ProtoId<BodyPrototype>? Prototype;
/// <summary>
/// Container that holds the root body part.
/// </summary>
/// <remarks>
/// Typically is the torso.
/// </remarks>
[ViewVariables] public ContainerSlot RootContainer = default!;
[ViewVariables]
public string RootPartSlot => RootContainer.ID;
[DataField, AutoNetworkedField]
public SoundSpecifier GibSound = new SoundCollectionSpecifier("gib");
/// <summary>
/// The amount of legs required to move at full speed.
/// If 0, then legs do not impact speed.
/// </summary>
[DataField, AutoNetworkedField]
public int RequiredLegs;
[ViewVariables]
[DataField, AutoNetworkedField]
public HashSet<EntityUid> LegEntities = new();
[DataField, AutoNetworkedField]
public bool ThermalVisibility = true;
}