Skip to content

Commit

Permalink
Loadouts Lore Documentation (#1298)
Browse files Browse the repository at this point in the history
# Description

This PR adds several Xml documents, to be included as supplementary lore
that can be linked to by Loadout entries, particularly ones that make
reference to a specific corporation. This also includes a document for
Security weapons, which clarifies their usage to players.

Additionally, this fixes an issue with Loadouts, whereby because of the
use of string-matching, it wasn't possible for more than one loadout
item to share a guidebook. Instead, Loadouts can now directly declare a
specific guidebook to link to.

# TODO

Add lore for the following:
- [x] Einstein Engines
- [x] Idris Incorporated
- [x] Stellar Corporate Conglomerate
- [x] NanoTrasen
- [x] Orion Express
- [x] Zeng-Hu Pharmaceuticals
- [x] Hephaestus Heavy Industries
- [x] Zavodskoi Interstellar
- [x] Private Military Contracting Group

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


![image](https://github.com/user-attachments/assets/78bf07cc-ee32-4285-a127-7fd04a3fb1c0)

</p>
</details>

# Changelog

:cl:
- add: Added a guidebook entry on Security Duty Weapons
- add: Added guidebook entries on various Corporations in lore, such as
Einstein Engines, Hephaestus Heavy Industries, etc.
- add: Loadouts can now link to a specific guidebook entry via prototype
ID.
  • Loading branch information
sleepyyapril authored Dec 1, 2024
2 parents 9ef8252 + 386fd77 commit a535d98
Show file tree
Hide file tree
Showing 27 changed files with 797 additions and 7 deletions.
8 changes: 4 additions & 4 deletions Content.Client/Lobby/UI/LoadoutPreferenceSelector.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,21 +148,21 @@ public LoadoutPreferenceSelector(LoadoutPrototype loadout, JobPrototype highJob,

// Manage the info button
void UpdateGuidebook() => GuidebookButton.Visible =
prototypeManager.HasIndex<GuideEntryPrototype>(DefaultLoadoutInfoGuidebook + Loadout.ID);
prototypeManager.HasIndex<GuideEntryPrototype>(loadout.GuideEntry);
UpdateGuidebook();
prototypeManager.PrototypesReloaded += _ => UpdateGuidebook();

GuidebookButton.OnPressed += _ =>
{
if (!prototypeManager.TryIndex<GuideEntryPrototype>(DefaultLoadoutInfoGuidebook, out var guideRoot))
if (!prototypeManager.TryIndex<GuideEntryPrototype>(loadout.GuideEntry, out var guideRoot))
return;

var guidebookController = UserInterfaceManager.GetUIController<GuidebookUIController>();
//TODO: Don't close the guidebook if its already open, just go to the correct page
guidebookController.ToggleGuidebook(
new Dictionary<string, GuideEntry> { { DefaultLoadoutInfoGuidebook, guideRoot } },
new Dictionary<string, GuideEntry> { { loadout.GuideEntry, guideRoot } },
includeChildren: true,
selected: DefaultLoadoutInfoGuidebook + Loadout.ID);
selected: loadout.GuideEntry);
};

// Create a checkbox to get the loadout
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
using Content.Shared.Clothing.Loadouts.Systems;
using Content.Shared.Customization.Systems;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;

namespace Content.Shared.Clothing.Loadouts.Prototypes;

Expand Down Expand Up @@ -45,4 +42,7 @@ public sealed partial class LoadoutPrototype : IPrototype

[DataField]
public List<CharacterRequirement> Requirements = new();

[DataField]
public string GuideEntry { get; } = "";
}
13 changes: 13 additions & 0 deletions Resources/Locale/en-US/guidebook/lore.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
guide-entry-setting-lore = Setting Lore
guide-entry-corporations = Corporations
guide-entry-einstein-engines = Einstein Engines
guide-entry-hephaestus-industries = Hephaestus Industries
guide-entry-idris-incorporated = Idris Incorporated
guide-entry-nanotrasen = NanoTrasen
guide-entry-orion-express = Orion Express
guide-entry-private-military-contracting-group = Private Military Contracting Group
guide-entry-stellar-corporate-conglomerate = Stellar Corporate Conglomerate
guide-entry-zavodskoi-interstellar = Zavodskoi Interstellar
guide-entry-zeng-hu-pharmaceuticals = Zeng-Hu Pharmaceuticals
guide-entry-loadout-info-security-weapons = Security Weapons
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,9 @@
id: WeaponEnergyGunMiniSecurity
description: A light version of the Energy gun with a smaller capacity.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: PDW-9 Energy Pistol
Expand Down Expand Up @@ -236,6 +239,9 @@
id: WeaponEnergyGunPistolSecurity
description: A military grade sidearm, used by many militia forces throughout the local sector.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: IK-60 laser carbine
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@
id: WeaponPistolViperWoodSecurity
description: A small, low-power pistol with pleasant lacquered wooden grips. Uses .35 auto ammo.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: Pollock
Expand Down Expand Up @@ -85,6 +88,9 @@
id: WeaponPistolPollockSecurity
description: A compact and mass-produced combat pistol. Uses .35 auto ammo.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: Pollock
Expand All @@ -110,6 +116,8 @@
whitelist:
tags:
- CartridgePistol
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: psi-breaker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@
id: WeaponRevolverSnubSecurity
description: An old and reliable revolver, modified to be more easily concealed. Uses .45 magnum ammo.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: snubbed .45
Expand All @@ -43,6 +46,8 @@
capacity: 6
chambers: [ True, True, True, True, True, True ]
ammoSlots: [ null, null, null, null, null, null ]
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: k-38 masterpiece
Expand Down Expand Up @@ -75,6 +80,9 @@
id: WeaponRevolverK38MasterSecurity
description: A classic, if not outdated, law enforcement firearm. Uses .38 special ammo.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: k-38 masterpiece
Expand All @@ -90,6 +98,8 @@
capacity: 6
chambers: [ True, True, True, True, True, True ]
ammoSlots: [ null, null, null, null, null, null ]
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: fitz special
Expand Down Expand Up @@ -122,6 +132,9 @@
id: WeaponRevolverFitzSecurity
description: A compact and concealable self defence snub revolver. Uses .38 special ammo.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: fitz special
Expand All @@ -137,6 +150,8 @@
capacity: 6
chambers: [ True, True, True, True, True, True ]
ammoSlots: [ null, null, null, null, null, null ]
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: lucky 37
Expand Down
22 changes: 22 additions & 0 deletions Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@
- type: HeldSpeedModifier
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetHardsuitAtmos
- type: GuideHelp
guides: [ HephaestusIndustries ]

#Engineering Hardsuit
- type: entity
Expand Down Expand Up @@ -94,6 +96,8 @@
clothingPrototype: ClothingHeadHelmetHardsuitEngineering
- type: StaminaDamageResistance
coefficient: 0.75 # 25%
- type: GuideHelp
guides: [ HephaestusIndustries ]

#Spationaut Hardsuit
- type: entity
Expand Down Expand Up @@ -123,6 +127,8 @@
- type: HeldSpeedModifier
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetHardsuitSpatio
- type: GuideHelp
guides: [ HephaestusIndustries ]

#Salvage Hardsuit
- type: entity
Expand Down Expand Up @@ -154,6 +160,8 @@
- type: HeldSpeedModifier
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetHardsuitSalvage
- type: GuideHelp
guides: [ HephaestusIndustries ]

#Paramedic Voidsuit
- type: entity
Expand Down Expand Up @@ -185,6 +193,8 @@
- type: HeldSpeedModifier
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetHardsuitVoidParamed
- type: GuideHelp
guides: [ ZengHuPharmaceuticals ]


- type: entity
Expand Down Expand Up @@ -217,6 +227,8 @@
coefficient: 0.001
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetHardsuitMaxim
- type: GuideHelp
guides: [ HephaestusIndustries ]

#Security Hardsuit
- type: entity
Expand Down Expand Up @@ -344,6 +356,8 @@
clothingPrototype: ClothingHeadHelmetHardsuitCap
- type: StaminaDamageResistance
coefficient: 0.5 # 50%
- type: GuideHelp
guides: [ NanoTrasen ]

#Chief Engineer's Hardsuit
- type: entity
Expand Down Expand Up @@ -381,6 +395,8 @@
- type: SupermatterImmune
- type: StaminaDamageResistance
coefficient: 0.65 # 35%
- type: GuideHelp
guides: [ HephaestusIndustries ]

#Chief Medical Officer's Hardsuit
- type: entity
Expand All @@ -406,6 +422,8 @@
- type: HeldSpeedModifier
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetHardsuitMedical
- type: GuideHelp
guides: [ ZengHuPharmaceuticals ]

#Research Director's Hardsuit
- type: entity
Expand Down Expand Up @@ -452,6 +470,8 @@
stealGroup: ClothingOuterHardsuitRd
- type: StaminaDamageResistance
coefficient: 0.75 # 25% as in "shock resistance" :trollface:
- type: GuideHelp
guides: [ NanoTrasen ]

#Head of Security's Hardsuit
- type: entity
Expand Down Expand Up @@ -516,6 +536,8 @@
- type: HeldSpeedModifier
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetHardsuitLuxury
- type: GuideHelp
guides: [ HephaestusIndustries ]

#ANTAG HARDSUITS
#Blood-red Hardsuit
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -584,6 +584,8 @@
sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_einstein_engines.rsi
- type: Clothing
sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_einstein_engines.rsi
- type: GuideHelp
guides: [ EinsteinEngines ]

- type: entity
parent: ClothingOuterWinterCoat
Expand All @@ -595,6 +597,8 @@
sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_hephestus_industries.rsi
- type: Clothing
sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_hephestus_industries.rsi
- type: GuideHelp
guides: [ HephaestusIndustries ]

- type: entity
parent: ClothingOuterWinterCoat
Expand Down Expand Up @@ -628,6 +632,8 @@
sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_bishop_cybernetics.rsi
- type: Clothing
sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_bishop_cybernetics.rsi
- type: GuideHelp
guides: [ ZengHuPharmaceuticals ]

- type: entity
parent: ClothingOuterWinterCoat
Expand Down Expand Up @@ -672,3 +678,5 @@
sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_zeng_hu_pharma.rsi
- type: Clothing
sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_zeng_hu_pharma.rsi
- type: GuideHelp
guides: [ ZengHuPharmaceuticals ]
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@
description: A small, easily concealable, but somewhat underpowered gun, produced by a bulk arms manufacturer now defunct for over a century.
Uses .35 auto ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer.
suffix: Security Loadouts
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
id: WeaponPistolViperNonLethal
Expand Down Expand Up @@ -149,6 +152,9 @@
suffix: Non-lethal, SecurityLoadouts
description: A small, easily concealable, but somewhat underpowered gun, produced by a bulk arms manufacturer now defunct for over a century.
Uses .35 auto ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: cobra
Expand Down Expand Up @@ -229,6 +235,9 @@
description: A cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. Uses .35 auto ammo.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
suffix: Security Loadouts
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
id: WeaponPistolMk58Nonlethal
Expand Down Expand Up @@ -262,6 +271,9 @@
suffix: Non-lethal, Security Loadouts
description: A cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. Uses .35 auto ammo.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: N1984
Expand Down Expand Up @@ -315,6 +327,9 @@
description: The sidearm of any self respecting officer. Comes in .45 magnum, the lord's caliber.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
suffix: Security Loadouts
components:
- type: GuideHelp
guides: [ SecurityWeapons ]

- type: entity
name: N1984
Expand Down Expand Up @@ -350,3 +365,6 @@
description: The sidearm of any self respecting officer. Comes in .45 magnum, the lord's caliber.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
suffix: Security Loadouts
components:
- type: GuideHelp
guides: [ SecurityWeapons ]
Loading

0 comments on commit a535d98

Please sign in to comment.