Skip to content

Commit aa1c68d

Browse files
authored
Merge branch 'space-wizards:master' into master
2 parents 6af7330 + 1c8e744 commit aa1c68d

File tree

37 files changed

+55426
-6259
lines changed

37 files changed

+55426
-6259
lines changed

Content.IntegrationTests/Tests/PostMapInitTest.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ public sealed class PostMapInitTest
6565
"Loop",
6666
"Plasma",
6767
"Elkridge",
68-
"Convex"
69-
68+
"Convex",
69+
"Relic"
7070
};
7171

7272
/// <summary>

Content.Server/Administration/Systems/AdminSystem.cs

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using Content.Shared.Administration;
1212
using Content.Shared.Administration.Events;
1313
using Content.Shared.CCVar;
14+
using Content.Shared.Forensics.Components;
1415
using Content.Shared.GameTicking;
1516
using Content.Shared.Hands.Components;
1617
using Content.Shared.IdentityManagement;

Content.Server/Body/Systems/BloodstreamSystem.cs

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using Content.Shared.Drunk;
1414
using Content.Shared.FixedPoint;
1515
using Content.Shared.Forensics;
16+
using Content.Shared.Forensics.Components;
1617
using Content.Shared.HealthExaminable;
1718
using Content.Shared.Mobs.Systems;
1819
using Content.Shared.Popups;

Content.Server/Damage/Components/DamageOnLandComponent.cs

+6
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,16 @@ namespace Content.Server.Damage.Components
55
[RegisterComponent]
66
public sealed partial class DamageOnLandComponent : Component
77
{
8+
/// <summary>
9+
/// Should this entity be damaged when it lands regardless of its resistances?
10+
/// </summary>
811
[DataField("ignoreResistances")]
912
[ViewVariables(VVAccess.ReadWrite)]
1013
public bool IgnoreResistances = false;
1114

15+
/// <summary>
16+
/// How much damage.
17+
/// </summary>
1218
[DataField("damage", required: true)]
1319
[ViewVariables(VVAccess.ReadWrite)]
1420
public DamageSpecifier Damage = default!;

Content.Server/Damage/Systems/DamageOnLandSystem.cs

+3-14
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
using Content.Server.Damage.Components;
2-
using Content.Shared.CombatMode.Pacification;
32
using Content.Shared.Damage;
43
using Content.Shared.Throwing;
54

65
namespace Content.Server.Damage.Systems
76
{
7+
/// <summary>
8+
/// Damages the thrown item when it lands.
9+
/// </summary>
810
public sealed class DamageOnLandSystem : EntitySystem
911
{
1012
[Dependency] private readonly DamageableSystem _damageableSystem = default!;
@@ -13,19 +15,6 @@ public override void Initialize()
1315
{
1416
base.Initialize();
1517
SubscribeLocalEvent<DamageOnLandComponent, LandEvent>(DamageOnLand);
16-
SubscribeLocalEvent<DamageOnLandComponent, AttemptPacifiedThrowEvent>(OnAttemptPacifiedThrow);
17-
}
18-
19-
/// <summary>
20-
/// Prevent Pacified entities from throwing damaging items.
21-
/// </summary>
22-
private void OnAttemptPacifiedThrow(Entity<DamageOnLandComponent> ent, ref AttemptPacifiedThrowEvent args)
23-
{
24-
// Allow healing projectiles, forbid any that do damage:
25-
if (ent.Comp.Damage.AnyPositive())
26-
{
27-
args.Cancel("pacified-cannot-throw");
28-
}
2918
}
3019

3120
private void DamageOnLand(EntityUid uid, DamageOnLandComponent component, ref LandEvent args)

Content.Server/Forensics/Components/DnaComponent.cs

-11
This file was deleted.

Content.Server/Forensics/Systems/ForensicsSystem.cs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using Content.Shared.Chemistry.Components.SolutionManager;
1111
using Content.Shared.DoAfter;
1212
using Content.Shared.Forensics;
13+
using Content.Shared.Forensics.Components;
1314
using Content.Shared.Interaction;
1415
using Content.Shared.Interaction.Events;
1516
using Content.Shared.Inventory;

Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.cs

-34
Original file line numberDiff line numberDiff line change
@@ -20,40 +20,6 @@ public override void Initialize()
2020
SubscribeLocalEvent<HumanoidAppearanceComponent, GetVerbsEvent<Verb>>(OnVerbsRequest);
2121
}
2222

23-
// this was done enough times that it only made sense to do it here
24-
25-
/// <summary>
26-
/// Clones a humanoid's appearance to a target mob, provided they both have humanoid components.
27-
/// </summary>
28-
/// <param name="source">Source entity to fetch the original appearance from.</param>
29-
/// <param name="target">Target entity to apply the source entity's appearance to.</param>
30-
/// <param name="sourceHumanoid">Source entity's humanoid component.</param>
31-
/// <param name="targetHumanoid">Target entity's humanoid component.</param>
32-
public void CloneAppearance(EntityUid source, EntityUid target, HumanoidAppearanceComponent? sourceHumanoid = null,
33-
HumanoidAppearanceComponent? targetHumanoid = null)
34-
{
35-
if (!Resolve(source, ref sourceHumanoid) || !Resolve(target, ref targetHumanoid))
36-
{
37-
return;
38-
}
39-
40-
targetHumanoid.Species = sourceHumanoid.Species;
41-
targetHumanoid.SkinColor = sourceHumanoid.SkinColor;
42-
targetHumanoid.EyeColor = sourceHumanoid.EyeColor;
43-
targetHumanoid.Age = sourceHumanoid.Age;
44-
SetSex(target, sourceHumanoid.Sex, false, targetHumanoid);
45-
targetHumanoid.CustomBaseLayers = new(sourceHumanoid.CustomBaseLayers);
46-
targetHumanoid.MarkingSet = new(sourceHumanoid.MarkingSet);
47-
48-
targetHumanoid.Gender = sourceHumanoid.Gender;
49-
if (TryComp<GrammarComponent>(target, out var grammar))
50-
{
51-
grammar.Gender = sourceHumanoid.Gender;
52-
}
53-
54-
Dirty(target, targetHumanoid);
55-
}
56-
5723
/// <summary>
5824
/// Removes a marking from a humanoid by ID.
5925
/// </summary>

Content.Server/Implants/SubdermalImplantSystem.cs

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Content.Server.Store.Systems;
77
using Content.Shared.Cuffs.Components;
88
using Content.Shared.Forensics;
9+
using Content.Shared.Forensics.Components;
910
using Content.Shared.Humanoid;
1011
using Content.Shared.Implants;
1112
using Content.Shared.Implants.Components;

Content.Server/Medical/DefibrillatorSystem.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using Content.Server.Ghost;
77
using Content.Server.Popups;
88
using Content.Server.PowerCell;
9-
using Content.Server.Traits.Assorted;
9+
using Content.Shared.Traits.Assorted;
1010
using Content.Shared.Damage;
1111
using Content.Shared.DoAfter;
1212
using Content.Shared.Interaction;
@@ -193,9 +193,9 @@ public void Zap(EntityUid uid, EntityUid target, EntityUid user, DefibrillatorCo
193193
_chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-rotten"),
194194
InGameICChatType.Speak, true);
195195
}
196-
else if (HasComp<UnrevivableComponent>(target))
196+
else if (TryComp<UnrevivableComponent>(target, out var unrevivable))
197197
{
198-
_chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-unrevivable"),
198+
_chatManager.TrySendInGameICMessage(uid, Loc.GetString(unrevivable.ReasonMessage),
199199
InGameICChatType.Speak, true);
200200
}
201201
else

Content.Server/Medical/HealthAnalyzerSystem.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using Content.Server.Medical.Components;
33
using Content.Server.PowerCell;
44
using Content.Server.Temperature.Components;
5-
using Content.Server.Traits.Assorted;
5+
using Content.Shared.Traits.Assorted;
66
using Content.Shared.Chemistry.EntitySystems;
77
using Content.Shared.Damage;
88
using Content.Shared.DoAfter;
@@ -207,7 +207,7 @@ public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool s
207207
bleeding = bloodstream.BleedAmount > 0;
208208
}
209209

210-
if (HasComp<UnrevivableComponent>(target))
210+
if (TryComp<UnrevivableComponent>(target, out var unrevivableComp) && unrevivableComp.Analyzable)
211211
unrevivable = true;
212212

213213
_uiSystem.ServerSendUiMessage(healthAnalyzer, HealthAnalyzerUiKey.Key, new HealthAnalyzerScannedUserMessage(

Content.Server/StationRecords/Systems/StationRecordsSystem.cs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Content.Server.Access.Systems;
33
using Content.Server.Forensics;
44
using Content.Shared.Access.Components;
5+
using Content.Shared.Forensics.Components;
56
using Content.Shared.GameTicking;
67
using Content.Shared.Inventory;
78
using Content.Shared.PDA;

Content.Server/Traits/Assorted/UnrevivableComponent.cs

-10
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Robust.Shared.GameStates;
2+
3+
namespace Content.Shared.Forensics.Components;
4+
5+
/// <summary>
6+
/// This component is for mobs that have DNA.
7+
/// </summary>
8+
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
9+
public sealed partial class DnaComponent : Component
10+
{
11+
[DataField("dna"), AutoNetworkedField]
12+
public string DNA = String.Empty;
13+
}

Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs

+28
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,34 @@ public void SetLayerVisibility(EntityUid uid,
132132
Dirty(uid, humanoid);
133133
}
134134

135+
/// <summary>
136+
/// Clones a humanoid's appearance to a target mob, provided they both have humanoid components.
137+
/// </summary>
138+
/// <param name="source">Source entity to fetch the original appearance from.</param>
139+
/// <param name="target">Target entity to apply the source entity's appearance to.</param>
140+
/// <param name="sourceHumanoid">Source entity's humanoid component.</param>
141+
/// <param name="targetHumanoid">Target entity's humanoid component.</param>
142+
public void CloneAppearance(EntityUid source, EntityUid target, HumanoidAppearanceComponent? sourceHumanoid = null,
143+
HumanoidAppearanceComponent? targetHumanoid = null)
144+
{
145+
if (!Resolve(source, ref sourceHumanoid) || !Resolve(target, ref targetHumanoid))
146+
return;
147+
148+
targetHumanoid.Species = sourceHumanoid.Species;
149+
targetHumanoid.SkinColor = sourceHumanoid.SkinColor;
150+
targetHumanoid.EyeColor = sourceHumanoid.EyeColor;
151+
targetHumanoid.Age = sourceHumanoid.Age;
152+
SetSex(target, sourceHumanoid.Sex, false, targetHumanoid);
153+
targetHumanoid.CustomBaseLayers = new(sourceHumanoid.CustomBaseLayers);
154+
targetHumanoid.MarkingSet = new(sourceHumanoid.MarkingSet);
155+
156+
targetHumanoid.Gender = sourceHumanoid.Gender;
157+
if (TryComp<GrammarComponent>(target, out var grammar))
158+
grammar.Gender = sourceHumanoid.Gender;
159+
160+
Dirty(target, targetHumanoid);
161+
}
162+
135163
/// <summary>
136164
/// Sets the visibility for multiple layers at once on a humanoid's sprite.
137165
/// </summary>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using Robust.Shared.GameStates;
2+
3+
namespace Content.Shared.Traits.Assorted;
4+
5+
/// <summary>
6+
/// This is used for the unrevivable trait as well as generally preventing revival.
7+
/// </summary>
8+
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
9+
public sealed partial class UnrevivableComponent : Component
10+
{
11+
/// <summary>
12+
/// A field to define if we should display the "Genetic incompatibility" warning on health analysers
13+
/// </summary>
14+
[DataField, AutoNetworkedField]
15+
public bool Analyzable = true;
16+
17+
/// <summary>
18+
/// The loc string used to provide a reason for being unrevivable
19+
/// </summary>
20+
[DataField, AutoNetworkedField]
21+
public LocId ReasonMessage = "defibrillator-unrevivable";
22+
}

Resources/Changelog/Changelog.yml

+21-23
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,4 @@
11
Entries:
2-
- author: Errant
3-
changes:
4-
- message: Computers now have a maintenance panel with a Power and AI wire (if AI-connected).
5-
type: Tweak
6-
- message: Computer deconstruction now begins with the crowbar, not the screwdriver.
7-
type: Tweak
8-
id: 7423
9-
time: '2024-09-23T10:51:48.0000000+00:00'
10-
url: https://github.com/space-wizards/space-station-14/pull/32273
11-
- author: lzk228
12-
changes:
13-
- message: Guidebook books now do damage like default writeable books.
14-
type: Fix
15-
id: 7424
16-
time: '2024-09-23T11:12:23.0000000+00:00'
17-
url: https://github.com/space-wizards/space-station-14/pull/32403
18-
- author: Jophire
19-
changes:
20-
- message: VIM mech now can open maintenance doors!
21-
type: Add
22-
id: 7425
23-
time: '2024-09-23T13:08:11.0000000+00:00'
24-
url: https://github.com/space-wizards/space-station-14/pull/32302
252
- author: lzk228
263
changes:
274
- message: Cadet PDA now has wanted list cartridge preinstalled.
@@ -3899,3 +3876,24 @@
38993876
id: 7922
39003877
time: '2025-02-09T21:01:31.0000000+00:00'
39013878
url: https://github.com/space-wizards/space-station-14/pull/34996
3879+
- author: notquitehadouken
3880+
changes:
3881+
- message: Added loungewear to uniform printer
3882+
type: Add
3883+
id: 7923
3884+
time: '2025-02-09T22:16:17.0000000+00:00'
3885+
url: https://github.com/space-wizards/space-station-14/pull/35008
3886+
- author: Vortebo
3887+
changes:
3888+
- message: Added Relic station.
3889+
type: Add
3890+
id: 7924
3891+
time: '2025-02-09T23:24:13.0000000+00:00'
3892+
url: https://github.com/space-wizards/space-station-14/pull/34988
3893+
- author: IProduceWidgets
3894+
changes:
3895+
- message: Pacifists can throw things that break.
3896+
type: Fix
3897+
id: 7925
3898+
time: '2025-02-10T01:24:10.0000000+00:00'
3899+
url: https://github.com/space-wizards/space-station-14/pull/31060

0 commit comments

Comments
 (0)