From b20eb07253b9c185d7928e96483304c36cb057a6 Mon Sep 17 00:00:00 2001 From: Tim Falken Date: Fri, 29 Dec 2023 20:34:56 +0100 Subject: [PATCH 01/26] Crime Assist pda program (#464) * Completely untested first commit * Get basic program flow working * Add Innocent * Add Fancy Rich Text * Icon Thanks, IcedQuinn! * Add Cartridge icons * New image from IcedQuinn * Add explanation on what a Sophont is, to be automatically appended to any text referencing a Sophont later on * Convert tabs to spaces * remove [bold] tags from loc * Make text bold again * Alter formatting, reduce text length for sophont explanation to fit it on the screen * Update Resources/Locale/en-US/deltav/cartridge-loader/cartridges.ftl Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com> Signed-off-by: Tim Falken * Add program to more PDA's * Add a tip about the app * Recreate flow in yaml todo: actually load and use this yaml * Remove the old state machine, and add configurable yaml prototypes to define pages * Move page to its own file --------- Signed-off-by: Tim Falken Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com> --- .../Cartridges/CrimeAssistUi.cs | 35 ++ .../Cartridges/CrimeAssistUiFragment.xaml | 16 + .../Cartridges/CrimeAssistUiFragment.xaml.cs | 98 +++++ .../CrimeAssistCartridgeComponent.cs | 5 + .../CrimeAssistCartridgeSystem.cs | 16 + .../Cartridges/CrimeAssistPage.cs | 35 ++ .../Cartridges/CrimeAssistUiState.cs | 18 + .../deltav/cartridge-loader/cartridges.ftl | 120 ++++++ Resources/Prototypes/Datasets/tips.yml | 4 +- .../Entities/Objects/Devices/cartridges.yml | 20 + .../DeltaV/Entities/Objects/Devices/pda.yml | 37 ++ .../DeltaV/cartridges/crimeassistflow.yml | 342 ++++++++++++++++++ .../Entities/Objects/Devices/pda.yml | 86 +++++ .../Entities/Objects/Devices/pda.yml | 114 ++++++ .../Textures/DeltaV/Icons/cri.rsi/cri.png | Bin 0 -> 628 bytes .../Textures/DeltaV/Icons/cri.rsi/meta.json | 14 + .../Devices/cartridge.rsi/cart-cri.png | Bin 0 -> 2980 bytes .../Objects/Devices/cartridge.rsi/meta.json | 14 + 18 files changed, 973 insertions(+), 1 deletion(-) create mode 100644 Content.Client/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUi.cs create mode 100644 Content.Client/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml create mode 100644 Content.Client/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml.cs create mode 100644 Content.Server/DeltaV/CartridgeLoader/CrimeAssistCartridgeComponent.cs create mode 100644 Content.Server/DeltaV/CartridgeLoader/CrimeAssistCartridgeSystem.cs create mode 100644 Content.Shared/DeltaV/CartridgeLoader/Cartridges/CrimeAssistPage.cs create mode 100644 Content.Shared/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUiState.cs create mode 100644 Resources/Locale/en-US/deltav/cartridge-loader/cartridges.ftl create mode 100644 Resources/Prototypes/DeltaV/Entities/Objects/Devices/cartridges.yml create mode 100644 Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml create mode 100644 Resources/Prototypes/DeltaV/cartridges/crimeassistflow.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/pda.yml create mode 100644 Resources/Textures/DeltaV/Icons/cri.rsi/cri.png create mode 100644 Resources/Textures/DeltaV/Icons/cri.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Objects/Devices/cartridge.rsi/cart-cri.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/cartridge.rsi/meta.json diff --git a/Content.Client/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUi.cs b/Content.Client/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUi.cs new file mode 100644 index 00000000000..ea5aa3cf256 --- /dev/null +++ b/Content.Client/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUi.cs @@ -0,0 +1,35 @@ +using Robust.Client.UserInterface; +using Content.Client.UserInterface.Fragments; +using Content.Shared.DeltaV.CartridgeLoader.Cartridges; +using Content.Shared.CartridgeLoader; +using Robust.Shared.Prototypes; + +namespace Content.Client.DeltaV.CartridgeLoader.Cartridges; + +public sealed partial class CrimeAssistUi : UIFragment +{ + private CrimeAssistUiFragment? _fragment; + + public override Control GetUIFragmentRoot() + { + return _fragment!; + } + + public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner) + { + _fragment = new CrimeAssistUiFragment(); + + _fragment.OnSync += _ => SendSyncMessage(userInterface); + } + + private void SendSyncMessage(BoundUserInterface userInterface) + { + var syncMessage = new CrimeAssistSyncMessageEvent(); + var message = new CartridgeUiMessage(syncMessage); + userInterface.SendMessage(message); + } + + public override void UpdateState(BoundUserInterfaceState state) + { + } +} diff --git a/Content.Client/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml b/Content.Client/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml new file mode 100644 index 00000000000..8186986d8fb --- /dev/null +++ b/Content.Client/DeltaV/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml @@ -0,0 +1,16 @@ + + + + + + + + + +