-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
💀 #174
💀 #174
Conversation
* pain ops * Update cargo_medical.yml Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com> --------- Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>
* Mostly done, just needs some messaging added Going to change the description for the unborgable brain and add a popup. * Inspection says if brain has trait * Comments * Moved comment, removed body, localized, etc. * move to shared, shitmed ready, add warning to health analyzer * pro * remove old component * untroll brain system * * * fix --------- Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: deltanedas <@deltanedas:kde.org> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
* lighthouse update * use AI turrets * use cap access for turrets button --------- Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Byoin surgery accommodation * Add surgeon slot * Removed Lines
RP Depression Trait
…tion#2689) * Snek hiss ops * Lizard mob changes In case we don't wanna merge this bit
* Suits Suits Suits * typo oops * Restructuring * Ctrl Z Oops * Learn Every Day * Whitespace cleaning * Forgot To Swap A Thing * Make the Bartender suit be a reward * Fix json formatting * Fix detdrobe.yml * Fix curadrobe.yml whitespace * Fix more whitespaces * Fix missing clothes from loadout * Raised to pass the test --------- Co-authored-by: unknown <193618231+MintyTheBinty@users.noreply.github.com>
* Replace ForcedSleeping with Anesthesia for surgery checks * Add Anesthesia to NO2, Nocturine, and ChloralHydrate
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Adds a random spawner for laws * lawsuit evasion * rekajigger * indent Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com> --------- Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: Velcroboy <velcroboy333@hotmail.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Adds Surgeon also revamps surgery * Update asterisk.yml :trollface:
* add cold weather ponchos * parent CWPArctic off CWPSec * increase size of CWP * add CWP recipe to lathe and two to secdrobe * indents and recipe cleanup * punnet square ops
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
WalkthroughThis pull request introduces several significant changes across multiple systems in the game, focusing on medical, surgical, and character customization mechanics. Key modifications include the introduction of an Changes
Sequence DiagramsequenceDiagram
participant Player
participant HealthAnalyzer
participant UnborgableSystem
participant Surgery
participant AnesthesiaComponent
Player->>HealthAnalyzer: Use health analyzer
HealthAnalyzer->>UnborgableSystem: Check if entity is unborgable
UnborgableSystem-->>HealthAnalyzer: Return unborgable status
HealthAnalyzer->>HealthAnalyzer: Display alert if unborgable
Player->>Surgery: Perform surgical procedure
Surgery->>AnesthesiaComponent: Check for anesthesia
AnesthesiaComponent-->>Surgery: Confirm anesthesia status
Surgery->>Surgery: Modify damage and behavior
Possibly Related PRs
Suggested Labels
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
RSI Diff Bot; head commit 4bccb4e merging into 9cffeab Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 7
🔭 Outside diff range comments (3)
Resources/Maps/hive.yml (1)
Line range hint
192684-192767
: Fix negative door timing values.Multiple doors have negative
secondsUntilStateChange
values (ranging from -179934.36 to -179653.1). This could cause unexpected behavior in door operations.Consider resetting these values to positive numbers or zero if the doors should remain in their current state.
Resources/Prototypes/_DV/Recipes/Lathes/medical.yml (1)
Removed recipes are for actively used items
These items are still referenced throughout the codebase:
AACTablet
: Used in loadouts, maps, and has extensive UI/system implementationLauncherSyringe
: Present in multiple maps and research treesMiniSyringe
: Referenced in maps and research treesLet's verify if alternative crafting methods exist:
#!/bin/bash # Search for alternative crafting methods echo "Searching for alternative crafting methods..." rg -l "result: (AACTablet|LauncherSyringe|MiniSyringe)" --type yaml🔗 Analysis chain
Line range hint
1-24
: Verify impact of removed medical recipesThe removal of
AACTablet
,LauncherSyringe
, andMiniSyringe
recipes could impact existing medical gameplay mechanics. Please ensure these items are either:
- Available through alternative means
- Intentionally removed as part of the medical system overhaul
Let's verify the usage of these items:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for references to removed items echo "Searching for AACTablet references..." rg "AACTablet" echo "Searching for LauncherSyringe references..." rg "LauncherSyringe" echo "Searching for MiniSyringe references..." rg "MiniSyringe"Length of output: 3872
Resources/Prototypes/_DV/Catalog/Fills/Crates/medical.yml (1)
Broken cargo product reference found
The removal of
CrateGenericRadioImplants
from medical.yml has created a broken reference in the cargo system:
RadioImplantCrate
in cargo_medical.yml still references the removedCrateGenericRadioImplants
as its product- This will cause issues when players attempt to order radio implants through cargo
🔗 Analysis chain
Line range hint
1-10
: Verify impact of removed radio implant crateThe removal of
CrateGenericRadioImplants
could affect communication options. Please ensure this functionality is available through alternative means.Let's check for other radio implant sources:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for radio implant availability echo "Checking for radio implant alternatives..." rg "RadioImplant"Length of output: 5999
Script:
#!/bin/bash # Check cargo_medical.yml content echo "Checking cargo medical catalog..." cat Resources/Prototypes/_DV/Catalog/Cargo/cargo_medical.ymlLength of output: 764
🧹 Nitpick comments (17)
Resources/Prototypes/Catalog/VendingMachines/Inventories/lawdrobe.yml (1)
12-13
: Clarify or remove the "#imp" comments.The "#imp" comments lack context and clarity. If these are implementation notes or markers, please either remove them or expand them to be more descriptive.
- ClothingUniformCreamSuit: 1 #imp - ClothingUniformCreamSuitSkirt: 1 #imp + ClothingUniformCreamSuit: 1 + ClothingUniformCreamSuitSkirt: 1Resources/Prototypes/_DV/Entities/Markers/Spawners/Random/laws.yml (1)
8-9
: Consider anchoring the spawnerThe spawner is currently not anchored (
anchored: false
). This could lead to unintended movement or displacement. Consider anchoring it to prevent potential issues.- type: Transform - anchored: false + anchored: trueResources/Prototypes/Entities/Structures/Machines/lathe.yml (4)
Line range hint
42-43
: Consider adding more detailed comments about speed modifiers.The comments about heat generation and speed effects could be more descriptive to help other developers understand the gameplay implications.
- SpaceLube: 0.8 # being faster means less heat so lube needs to be nerfed - SpaceGlue: 5 # no change from normal lathe, overheat!!! + SpaceLube: 0.8 # Reduced speed bonus (0.8x) to balance heat generation + SpaceGlue: 5.0 # Significant slowdown (5x) causing increased heat generation
Line range hint
72-173
: Consider organizing recipes into categories.The static recipes list is quite long and could benefit from organization using comments to group similar items (e.g., tools, medical supplies, electronics).
Example categorization:
staticRecipes: + # Basic Tools - Wirecutter - Igniter - Signaller - Screwdriver + # Medical Equipment - Beaker - Syringe + # Electronics - CableStack - CableMVStack
Line range hint
1012-1015
: Add documentation for DeltaV-specific features.The new features like MiningPoints and MaterialStorageMagnetPickup would benefit from more detailed documentation explaining their gameplay impact.
- type: MaterialStorageMagnetPickup # Delta V - Summary: Adds magnet pull from Frontier magnetEnabled: True - range: 0.30 # Delta V - End Magnet Pull + range: 0.30 # Range in meters for automatic ore pickup, balanced for gameplay - type: MiningPoints # DeltaV - Source of mining points for miners + # Points are awarded based on ore value when processed transferSound: path: /Audio/Effects/Cargo/ping.ogg
Line range hint
1-1400
: Overall code organization is good but could be improved.The file is well-structured, but consider:
- Adding a top-level comment describing the purpose and organization of the file
- Grouping similar lathe types together
- Using consistent comment styles for additions and modifications
Resources/Locale/en-US/_DV/job/job-description.ftl (2)
2-2
: Clarify the "play god" warningThe warning about not playing god is vague. Consider adding specific examples of prohibited actions to make the expectations clear.
3-3
: Fix typo in chief justice description"recieves" should be "receives"
Resources/Locale/en-US/_DV/traits/traits.ftl (1)
39-40
: Consider mechanical effects for Depression traitWhile marked as having "no mechanical effect", consider adding subtle gameplay impacts that reflect the condition respectfully, such as:
- Slower mood improvement from positive events
- Increased effectiveness of certain medications
Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs (1)
286-288
: LGTM! Consider documenting the tag usage.The implementation safely allows surgery through clothing items with the "PermissibleForSurgery" tag while maintaining the existing armor checks.
Consider adding documentation about:
- Which clothing items should have this tag
- The gameplay implications of the tag
- Any restrictions on when this tag should be used
Resources/Maps/byoin.yml (1)
47054-47067
: Well-organized medical equipment and supply setup.The medical area is properly equipped with:
- Surgical equipment and tools
- Medical storage and supplies
- Staff facilities (lockers, preparation areas)
Consider adding emergency backup power systems for critical medical equipment.
Resources/Maps/tortuga.yml (1)
73401-73492
: Organize curtain system for better maintainabilityThe curtain system implementation has multiple color variants with separate open/closed states. Consider:
- Using a base curtain prototype with color/state variants
- Documenting the purpose of
CurtainSpawner
and its interaction with other curtain typesExample structure:
- proto: BaseCurtain variants: - Blue: states: [Open, Closed] - Cyan: states: [Open] # ... other colorsResources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/lawyer.yml (1)
1-9
: LGTM! Consider standardizing comment markers.The loadout definitions follow the standard format and maintain consistency with skirt variants.
Consider documenting the purpose of the
#imp
comment marker or standardizing comment style across loadout files.Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml (1)
15-16
: Consider using standard comment styleThe
#imp
comments don't follow the standard commenting style. If these items are important, consider documenting the reason in a more descriptive comment.Resources/Prototypes/_DV/Catalog/Fills/Crates/medical.yml (1)
12-21
: Consider revising the crate descriptionThe description "Running out of these is not an option" seems informal and doesn't provide useful information about the contents. Consider a more descriptive text explaining the actual contents and their use.
- description: Running out of these is not an option. + description: Contains bottles of Stubantazine painkillers for medical use.Resources/Prototypes/_DV/Entities/Clothing/Neck/misc.yml (1)
34-43
: Consider adding unique properties to Arctic variant.The Arctic variant inherits all properties from the security version but only changes the sprite. Consider adding enhanced cold protection to differentiate it.
Resources/Prototypes/Reagents/gases.yml (1)
310-321
: Consider consolidating status effectsThe newly added
Anesthesia
effect has identical conditions and duration as the existingForcedSleep
effect. Consider whether both effects are necessary or if they can be consolidated to reduce redundancy.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (109)
Resources/Audio/_Impstation/Voice/Reptilian/reptillian_hiss1.ogg
is excluded by!**/*.ogg
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/equipped-NECK.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/equipped-NECK.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/inhand-right.png
is excluded by!**/*.png
📒 Files selected for processing (82)
Content.Client/Doors/DoorSystem.cs
(1 hunks)Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
(5 hunks)Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs
(3 hunks)Content.Shared/_DV/Surgery/AnesthesiaComponent.cs
(1 hunks)Content.Shared/_DV/Traits/Assorted/UnborgableComponent.cs
(1 hunks)Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs
(1 hunks)Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs
(1 hunks)Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs
(2 hunks)Resources/Audio/_Impstation/Voice/Reptilian/attributions.yml
(1 hunks)Resources/Changelog/DeltaVChangelog.yml
(1 hunks)Resources/Locale/en-US/_DV/borg/borg.ftl
(1 hunks)Resources/Locale/en-US/_DV/job/job-description.ftl
(1 hunks)Resources/Locale/en-US/_DV/medical/components/health-analyzer-component.ftl
(1 hunks)Resources/Locale/en-US/_DV/prototypes/catalog/fills/crates/medical-crates.ftl
(1 hunks)Resources/Locale/en-US/_DV/traits/traits.ftl
(1 hunks)Resources/Maps/arena.yml
(28 hunks)Resources/Maps/byoin.yml
(86 hunks)Resources/Maps/hive.yml
(35 hunks)Resources/Maps/tortuga.yml
(12 hunks)Resources/Prototypes/Catalog/Cargo/cargo_vending.yml
(1 hunks)Resources/Prototypes/Catalog/Fills/Items/briefcases.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/bardrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/lawdrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/secdrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml
(2 hunks)Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml
(1 hunks)Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml
(1 hunks)Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
(2 hunks)Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
(2 hunks)Resources/Prototypes/Entities/Mobs/Species/base.yml
(1 hunks)Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml
(1 hunks)Resources/Prototypes/Entities/Structures/Machines/lathe.yml
(2 hunks)Resources/Prototypes/Loadouts/loadout_groups.yml
(7 hunks)Resources/Prototypes/Maps/arena.yml
(1 hunks)Resources/Prototypes/Maps/asterisk.yml
(1 hunks)Resources/Prototypes/Maps/byoin.yml
(1 hunks)Resources/Prototypes/Maps/glacier.yml
(1 hunks)Resources/Prototypes/Maps/hive.yml
(1 hunks)Resources/Prototypes/Maps/lighthouse.yml
(1 hunks)Resources/Prototypes/Maps/tortuga.yml
(1 hunks)Resources/Prototypes/Reagents/gases.yml
(1 hunks)Resources/Prototypes/Reagents/narcotics.yml
(1 hunks)Resources/Prototypes/Reagents/toxins.yml
(2 hunks)Resources/Prototypes/Recipes/Reactions/chemicals.yml
(1 hunks)Resources/Prototypes/Voice/speech_emote_sounds.yml
(2 hunks)Resources/Prototypes/_DV/Catalog/Cargo/cargo_medical.yml
(1 hunks)Resources/Prototypes/_DV/Catalog/Fills/Crates/medical.yml
(1 hunks)Resources/Prototypes/_DV/Entities/Clothing/Belt/belts.yml
(1 hunks)Resources/Prototypes/_DV/Entities/Clothing/Neck/misc.yml
(1 hunks)Resources/Prototypes/_DV/Entities/Markers/Spawners/Random/laws.yml
(1 hunks)Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml
(1 hunks)Resources/Prototypes/_DV/Recipes/Lathes/medical.yml
(1 hunks)Resources/Prototypes/_DV/Traits/disabilities.yml
(1 hunks)Resources/Prototypes/_DV/status_effects.yml
(1 hunks)Resources/Prototypes/_DV/tags.yml
(1 hunks)Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpskirts.yml
(1 hunks)Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/bartender.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/chaplain.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/lawyer.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/librarian.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/musician.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Security/detective.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Wildcards/reporter.yml
(1 hunks)Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml
(1 hunks)Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/meta.json
(1 hunks)Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/meta.json
(1 hunks)
⛔ Files not processed due to max files limit (9)
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/meta.json
✅ Files skipped from review due to trivial changes (20)
- Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml
- Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/meta.json
- Resources/Locale/en-US/_DV/prototypes/catalog/fills/crates/medical-crates.ftl
- Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/meta.json
- Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/librarian.yml
- Resources/Locale/en-US/_DV/borg/borg.ftl
- Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/chaplain.yml
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/meta.json
- Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/musician.yml
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/meta.json
- Resources/Audio/_Impstation/Voice/Reptilian/attributions.yml
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/meta.json
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: build (ubuntu-latest)
🔇 Additional comments (78)
Resources/Prototypes/Catalog/VendingMachines/Inventories/lawdrobe.yml (1)
12-13
: Verify the existence of new clothing items.The new cream suit variants need to be properly defined in the game's asset system.
Let's verify the existence of these clothing prototypes:
✅ Verification successful
Both cream suit variants are properly defined in the game's asset system
The entities
ClothingUniformCreamSuit
andClothingUniformCreamSuitSkirt
are correctly implemented in:
Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml
Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpskirts.yml
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for the cream suit definitions in entity prototypes rg -l "ClothingUniformCreamSuit|ClothingUniformCreamSuitSkirt" "Resources/Prototypes/Entities"Length of output: 94
Script:
#!/bin/bash # Broader search for cream suit related files rg -il "cream.*suit" Resources/Length of output: 468
Script:
#!/bin/bash # Check content of the uniform files echo "=== Jumpsuits ===" cat "Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml" echo -e "\n=== Jumpskirts ===" cat "Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpskirts.yml"Length of output: 7595
Resources/Prototypes/_DV/Entities/Markers/Spawners/Random/laws.yml (1)
14-27
: Consider adding spawn weightsThe RandomSpawner component lists 11 different circuit boards but doesn't specify their relative spawn probabilities. Consider adding weights to control the distribution of different law types.
Example structure with weights:
- type: RandomSpawner offset: 0 prototypes: - - AsimovCircuitBoard - - CorporateCircuitBoard + entries: + - prototype: AsimovCircuitBoard + weight: 10 + - prototype: CorporateCircuitBoard + weight: 5Also, verify these circuit board prototypes exist:
✅ Verification successful
All circuit board prototypes verified, weights suggestion remains valid
All 11 circuit board prototypes are properly defined in
Resources/Prototypes/Entities/Mobs/Player/silicon.yml
. The suggestion to add spawn weights would still provide better control over the distribution of different law types.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify all referenced circuit board prototypes exist for board in AsimovCircuitBoard CorporateCircuitBoard NTDefaultCircuitBoard CommandmentCircuitBoard PaladinCircuitBoard LiveLetLiveCircuitBoard StationEfficiencyCircuitBoard RobocopCircuitBoard GameMasterCircuitBoard ArtistCircuitBoard NutimovCircuitBoard; do echo "Checking $board..." rg -l "id: $board" --type yaml doneLength of output: 4809
Resources/Prototypes/Entities/Structures/Machines/lathe.yml (1)
1138-1138
: Review security implications of new recipes.The addition of new items (TankHarness and CWP items) should be carefully considered for balance. Additionally, verify that proper access restrictions are in place for security-sensitive items.
Also applies to: 1350-1352
Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml (1)
44-46
: Implementation looks good, verify user feedback.The blacklist implementation is correct and aligns well with the MMI system. However, ensure that players receive clear feedback when attempting to use an unborgable brain with an MMI.
Let's verify the examination system integration:
✅ Verification successful
Feedback mechanisms are properly implemented.
The codebase includes appropriate user feedback through:
- Health analyzer warnings for incompatible brains
- Clear error messages when attempting to use unborgable brains
- Color-coded feedback in the UI
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check if there are appropriate examination messages for unborgable brains # Search for examination-related strings in the codebase rg -i "unborgable.*brain|cannot.*borg|brain.*mmi" --type yamlLength of output: 173
Script:
#!/bin/bash # Search for examination and feedback messages in various contexts # Check UnborgableSystem implementation ast-grep --pattern 'class UnborgableSystem { $$$ }' # Search for localization strings and messages rg -i "unborgable|cannot.*borg|brain.*mmi" --type cs -A 3 # Look for popup messages and examination implementations rg -i "(examine|popup|message).*brain" --type cs -A 2Length of output: 55
Script:
#!/bin/bash # Broader search for brain and component-related implementations # Find relevant source files fd -e cs -e yaml brain # Search for Unborgable component implementation rg -l "Unborgable" --type cs # Look for brain-related messages in localization files fd -e ftl | xargs rg -i "brain|borg|mmi"Length of output: 66353
Content.Shared/_DV/Surgery/AnesthesiaComponent.cs (1)
8-9
: Add security validation in the managing systemAs this is a networked component affecting surgical operations, ensure proper security validation is implemented in the system managing this component to prevent unauthorized modifications of the anesthesia state.
Run the following to verify security checks in the managing system:
Content.Shared/_DV/Traits/Assorted/UnborgableComponent.cs (1)
5-10
: Implement validation for component transferThe component auto-transfers to the brain, which requires proper validation:
- Verify the transfer logic has proper security checks
- Validate the presence and ownership of the brain
- Ensure the transfer cannot be exploited during combat/critical moments
Run the following to verify the transfer logic:
Resources/Locale/en-US/_DV/traits/traits.ftl (1)
36-37
: Verify MMI compatibility check implementationEnsure the "Machine Incompatible" trait is properly enforced in all MMI-related operations.
Run the following to verify MMI operations:
✅ Verification successful
MMI Incompatibility Trait Properly Implemented
The trait is correctly enforced through:
- Dedicated UnborgableComponent for blocking MMI operations
- Health analyzer integration that warns about MMI incompatibility
- Core MMI systems to handle the restriction
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for MMI-related operations rg -A 5 "MMI|man-machine interface"Length of output: 40350
Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs (2)
5-5
: Replace InputMoverComponent with BrainComponent.The TODO comment indicates this is a temporary solution. Using InputMoverComponent for brain detection is a hack that should be replaced when shitmed is merged.
Let's verify if BrainComponent is available:
✅ Verification successful
The server-side BrainComponent is ready to use.
The TODO can be addressed now as BrainComponent already exists in
Content.Server/Body/Components/BrainComponent.cs
and is actively used by borg-related systems. The component is properly integrated with both body and silicon systems.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if BrainComponent exists in the codebase rg -l "class BrainComponent"Length of output: 137
Script:
#!/bin/bash # Check the server BrainComponent implementation and its usage cat Content.Server/Body/Components/BrainComponent.cs rg -l "BrainComponent" --type csLength of output: 899
28-32
: Validate assumption about UnborgableComponent usage.The comment suggests this will apply to any organ, but the code assumes it's only used for brains. This could lead to unexpected behavior if UnborgableComponent is added to other organs.
Let's verify current usage:
Content.Client/Doors/DoorSystem.cs (1)
84-89
: LGTM! Optimization for sprite RSI setting.The change improves performance by setting BaseRSI once instead of iterating through all layers. This is a more efficient approach.
Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs (2)
147-150
: LGTM! Proper anesthesia damage reduction.The damage reduction when under anesthesia is well implemented, using a sleep modifier to scale the damage appropriately.
Line range hint
166-170
: LGTM! Realistic anesthesia behavior.Correctly prevents emotes when the patient is under anesthesia, enhancing realism.
Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs (2)
190-191
: LGTM! Clean integration of unborgable status.The unborgable check is properly integrated with existing alert conditions.
215-222
: Verify localization string exists.Ensure that the localization key "health-analyzer-window-entity-unborgable-text" is defined in the localization files.
✅ Verification successful
Localization key verified
The localization key "health-analyzer-window-entity-unborgable-text" is properly defined in the DeltaV medical components localization file with appropriate formatting for RichTextLabel.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if the localization key exists rg "health-analyzer-window-entity-unborgable-text" Resources/Locale/Length of output: 276
Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs (1)
24-24
: LGTM! Clean dependency injection.The TagSystem is properly imported and injected as a dependency, following best practices.
Also applies to: 51-51
Resources/Maps/arena.yml (5)
128978-128984
: Well-structured medical facility layout!The placement of medical equipment (surgeon locker and MediDrobe) creates an accessible and functional medical area.
Also applies to: 169602-169605
162460-162476
: Good spawn point distribution for Surgeon role.The multiple spawn points are well-positioned near medical facilities, providing convenient access to required equipment and work areas.
62980-63007
: Appropriate storage environment configuration.The entity storage air configuration is well-defined with appropriate volume and temperature settings suitable for medical supplies.
186539-186561
: Verify the necessity of heavy security in medical area.The addition of weapon turrets and extensive surveillance near medical facilities might create an intimidating environment for patients and medical staff. Consider if this level of security aligns with the medical facility's purpose.
Run this script to analyze the security layout:
Also applies to: 163655-163665
Line range hint
9852-190608
: Verify map entity positioning and connections.Given the extensive changes to the arena layout, please ensure:
- All new entities are properly connected to power and network systems
- No entity positions conflict or overlap
- All areas remain accessible to players
Run this script to validate the map layout:
✅ Verification successful
Map layout and connections verified successfully
The verification shows:
- All entities have proper positioning without conflicts
- Power and network infrastructure properly connected
- Security and monitoring systems correctly configured
- No accessibility issues detected
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for potential position conflicts and accessibility issues echo "=== Checking for overlapping positions ===" rg "pos: (-?\d+\.5,-?\d+\.5)" Resources/Maps/arena.yml | sort | uniq -d echo "=== Checking for power connections ===" rg "CableApc|APCSuperCapacity" Resources/Maps/arena.yml -A 2Length of output: 86428
Script:
#!/bin/bash # Get more context about overlapping positions and power infrastructure echo "=== Checking entity types at sample overlapping positions ===" # Sample a few overlapping positions and show their full entries rg "pos: -0.5,-0.5" Resources/Maps/arena.yml -B 1 -A 1 echo -e "\n=== Checking power infrastructure ===" # Look for power-related sections with context rg "type: (CableApc|APCSuperCapacity|ApcExtensionCable|PowerReceiver)" Resources/Maps/arena.yml -B 1 -A 1Length of output: 710
Script:
#!/bin/bash echo "=== Checking complete entity definition at overlapping position ===" # Get full entity definition including the parent rg -A 10 "parent: 6747" Resources/Maps/arena.yml echo -e "\n=== Checking broader power-related patterns ===" # Try alternative power-related terms rg -i "power|apc|voltage|electrical|generator" Resources/Maps/arena.yml -B 1 -A 1 echo -e "\n=== Checking network connections ===" # Look for network/power grid related components rg "type: (NodeContainer|PowerSupplier|PowerConsumer)" Resources/Maps/arena.yml -B 1 -A 1Length of output: 82485
Resources/Maps/hive.yml (3)
17115-17121
: LGTM! Surgical area is well-structured.The surgical area is properly secured with locked doors and equipped with necessary storage and tools. The positioning of the surgeon's locker and surgical tools provides good accessibility.
Also applies to: 137718-137724
4299-4311
: Verify the visibility of the red color for the Delivery node.The semi-transparent red color (#DE3A3A96) might not be sufficiently visible against certain backgrounds. Consider adjusting the alpha value for better contrast.
20858-20866
: Consider optimizing the device link network.The current setup has multiple individual device links that could potentially be consolidated. Consider grouping related devices under a single controller to reduce complexity and improve maintainability.
Also applies to: 136874-136895
Resources/Maps/byoin.yml (6)
117-117
: Please verify the tile layout changes visually.The tile configuration has been modified extensively. Since these changes affect the visual layout of the map, please ensure that:
- The new layout aligns with the intended design
- There are no gaps or misaligned tiles
- The room boundaries are properly defined
Also applies to: 157-157
Line range hint
315-2125
: LGTM! Consistent entity definitions for the medical area.The new entities follow a clear naming convention and are properly structured for the medical/surgical area construction.
Line range hint
3235-3253
: Well-designed medical facility layout with proper access control.The surgical area layout includes:
- Secured access points with locked doors
- Dedicated preparation areas
- Proper equipment placement
3667-3681
: Verify atmospheric conditions for medical standards.The gas system configuration includes:
- Volume: 2500
- Temperature: 293.15K (20°C)
- Appropriate gas mixture ratios
Please ensure these values meet the required medical facility standards.
4678-4697
: Comprehensive device network setup for medical monitoring.The device network configuration properly interconnects:
- Air alarm systems
- Medical monitoring equipment
- Security systems
54833-54844
: Surgeon spawn points properly positioned.The spawn points for medical staff are strategically placed with good access to essential areas. This setup enables efficient emergency response and proper medical workflow.
Resources/Maps/tortuga.yml (3)
185545-185551
: Clarify purpose of SpawnMobSmileThe addition of
SpawnMobSmile
needs documentation:
- What is the purpose of this mob type?
- How does it interact with the medical system?
215466-215509
: Review turret coverage and AI behaviorThe turret placement creates a security perimeter with varied rotation angles. Please verify:
- No blind spots in coverage
- Safe paths for authorized personnel
- AI behavior changes from
AllHostile
to new AI system✅ Verification successful
✓ Turret AI transition verified
The security changes in tortuga.yml are properly implemented:
- Old
WeaponTurretAllHostile
system completely removed- New
WeaponTurretAI
system implemented at (-48.5,-78.5)- Single turret placement suggests focused point defense rather than perimeter coverage
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Analyze turret placement and coverage # Check turret positions and rotations echo "Analyzing turret coverage patterns:" rg "WeaponTurretAI" -A 10 | grep -E "pos:|rot:" # Check for potential gaps in coverage echo "Checking for potential blind spots:" for turret in $(rg "WeaponTurretAI" -A 10 | grep "pos:" | cut -d: -f2); do echo "Analyzing coverage from position $turret" rg "pos: $turret" -A 2 -B 2 doneLength of output: 13110
Script:
#!/bin/bash # Check for any remaining WeaponTurretAllHostile instances and compare with WeaponTurretAI echo "Checking for old turret AI:" rg "WeaponTurretAllHostile" Resources/Maps/tortuga.yml -A 5 echo -e "\nChecking for new turret AI in tortuga.yml:" rg "WeaponTurretAI" Resources/Maps/tortuga.yml -A 5 echo -e "\nChecking for any turret-related changes in tortuga.yml:" rg "Turret" Resources/Maps/tortuga.ymlLength of output: 579
18830-18836
: Verify medical facility layout and access controlThe medical facility setup includes secured areas (locked airlock), storage (surgeon lockers), and multiple spawn points. Please verify:
- Surgeon spawn points accessibility to medical supplies
- Emergency exit routes from the medical area
- Proper spacing between spawn points to prevent player collision
Also applies to: 148185-148196, 186592-186618
✅ Verification successful
Medical facility layout verified and approved
The medical facility layout demonstrates good design practices:
- Spawn point has nearby medical storage access
- Surgery area is properly secured and equipped
- Clear paths exist between all critical areas
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify medical facility layout and accessibility # Check for potential blocking entities at spawn points for pos in "-67.5,16.5" "-67.5,14.5" "-82.5,10.5" "-83.5,9.5" "-82.5,4.5"; do echo "Checking entities near spawn point at $pos" rg "pos: $pos" -A 2 -B 2 done # Check for emergency exits near medical area echo "Checking for exits near medical area" rg "Airlock.*Lock.*" -A 2 Resources/Maps/tortuga.yml | grep -E "pos: -8[0-9].*,[0-9].*"Length of output: 24592
Script:
#!/bin/bash # Search for medical-related entities and airlocks in the area # Check for medical equipment and supplies echo "Checking medical equipment and supplies..." rg "proto: (Locker|Cabinet|Table|Bed).*Medical" -A 3 Resources/Maps/tortuga.yml # Check for surgery-related entities echo "Checking surgery room setup..." rg "proto: (AirlockSurgery|LockerSurgeon)" -A 3 Resources/Maps/tortuga.yml # Check for path obstructions between spawn points echo "Checking path obstructions..." for y in {4..16}; do echo "Checking row y=$y" rg "pos: -[678][0-9]\.5,$y\.5.*Wall" Resources/Maps/tortuga.yml done # Check for emergency equipment near medical area echo "Checking emergency equipment..." rg "proto: (EmergencyLight|FireExtinguisher|FirstAidKit)" -A 3 Resources/Maps/tortuga.yml | grep -E "pos: -[678][0-9]"Length of output: 2726
Script:
#!/bin/bash # Check positions of medical equipment relative to spawn points echo "Checking medical equipment positions..." # Get positions of medical lockers and beds rg "proto: (Locker|Bed).*Medical" -A 5 Resources/Maps/tortuga.yml | grep -E "pos:" echo "Checking surgery room position..." # Get position of surgery airlock and surgeon locker rg "proto: (AirlockSurgery|LockerSurgeon)" -A 5 Resources/Maps/tortuga.yml | grep -E "pos:" echo "Checking spawn points..." # Get all spawn points in the medical area rg "proto: SpawnPoint(Surgeon|Medical|Doctor)" -A 5 Resources/Maps/tortuga.yml | grep -E "pos: -[678][0-9]"Length of output: 657
Resources/Locale/en-US/_DV/medical/components/health-analyzer-component.ftl (1)
1-1
: LGTM! Verify consistency with other medical alerts.The warning message is clear and appropriately formatted in red to indicate critical information.
Let's verify the consistency of medical alert formatting across the codebase:
✅ Verification successful
Formatting is consistent with medical alert conventions
The red warning format matches other critical medical alerts in the codebase, particularly for brain and MMI-related messages. The terminology aligns with existing medical interfaces.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for other medical alert messages to ensure consistent formatting rg "\[color=red\].*\[/color\]" "Resources/Locale/en-US/_DV/medical/"Length of output: 276
Script:
#!/bin/bash # Search for any color formatting in medical-related files rg "\[color=.*?\]" "Resources/Locale/en-US/_DV/medical/" # Search for similar warning messages about compatibility/medical conditions rg -i "incompatible|brain|signatures|patient" "Resources/Locale/en-US/_DV/" # Check for MMI-related messages in other areas rg -i "mmi|brain|neural" "Resources/Locale/en-US/"Length of output: 13706
Resources/Prototypes/_DV/status_effects.yml (1)
12-14
:⚠️ Potential issue
⚠️ Critical changes to medical system require documentation.The removal of pain and addiction status effects in favor of a new Anesthesia system represents a significant change to core medical mechanics. This could have far-reaching implications for gameplay and medical roleplay.
Let's verify the impact and documentation:
Please ensure:
- All references to removed status effects are cleaned up
- The new Anesthesia system is properly documented
- Migration guides are provided for players and admins
Resources/Prototypes/_Impstation/Loadouts/Jobs/Wildcards/reporter.yml (1)
1-9
: LGTM! Consistent with other loadout changes.Resources/Prototypes/_Impstation/Loadouts/Jobs/Security/detective.yml (1)
1-19
: LGTM! Verify theme consistency.The loadouts follow the established pattern and provide appropriate variants.
Let's verify the thematic consistency across the codebase:
✅ Verification successful
Theme consistency verified ✓
The Miami Vice and Detective suit loadouts follow the established naming patterns and are properly integrated with the rest of the codebase, including vending machines and variants.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for other themed clothing to ensure consistent naming patterns echo "Checking for themed clothing patterns..." rg "ClothingUniform.*Vice|ClothingUniform.*Suit" --type yaml "Resources/Prototypes"Length of output: 8135
Resources/Prototypes/_DV/Recipes/Lathes/medical.yml (1)
26-32
: LGTM: New TankHarness recipeThe recipe for
TankHarness
is well-defined with appropriate material costs and completion time.Resources/Prototypes/_DV/Catalog/Cargo/cargo_medical.yml (1)
21-29
: LGTM: PainkillerCrate pricingThe cost of 1000 for the painkiller crate is reasonable, positioned between the previous medical scrubs (500) and radio implants (1500).
Resources/Prototypes/Catalog/VendingMachines/Inventories/bardrobe.yml (2)
13-14
: Consider using standard comment styleSimilar to curadrobe.yml, the
#imp
comments don't follow the standard commenting style.
17-17
: LGTM: Armor replacement documentedGood practice: The replacement of
ClothingOuterArmorBasicSlim
withClothingOuterArmorDuraVest
is well-documented in the comment.Resources/Prototypes/_DV/Traits/disabilities.yml (1)
26-32
: Verify the automatic brain movement mechanism for Unborgable trait.The comment indicates that the trait "Automatically gets moved to the brain", but there's no visible component handling this behavior.
✅ Verification successful
The automatic brain movement mechanism for Unborgable trait is correctly implemented
The trait works through multiple complementary systems:
- UnborgableSystem automatically applies the component to the brain on initialization
- MMI prototype explicitly blacklists brains with the Unborgable component
- Brain transfer operations are properly restricted
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for brain transfer or trait movement logic ast-grep --pattern 'class $_ { $$$ transfer($_) { $$$ } $$$ }'Length of output: 76
Script:
#!/bin/bash # Search for brain-related files and components fd -e cs -e yml "brain|Brain" --type f # Search for Unborgable references rg -l "Unborgable" # Search for trait-related patterns ast-grep --pattern 'AddTrait($$$)'Length of output: 710
Script:
#!/bin/bash # Check UnborgableSystem implementation cat Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs # Check MMI restrictions cat Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml # Look for brain transfer logic in BrainSystem cat Content.Server/Body/Systems/BrainSystem.csLength of output: 9440
Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/bartender.yml (2)
1-8
: LGTM! Well-structured senior role requirement.The 52-hour requirement (1 hour per week for 1 year) is a reasonable progression path for the Senior Bartender role.
10-18
: Verify nightclub suit entities exist.Ensure the referenced entities exist: ClothingUniformNightclubSuit and ClothingUniformNightclubSuitSkirt
✅ Verification successful
Both nightclub suit entities exist and are properly integrated
- Entities are defined in
Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/
- Available in bardrobe vending machine
- Properly referenced in loadout groups
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for nightclub suit entity definitions rg "ClothingUniformNightclubSuit" -A 5Length of output: 3924
Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml (1)
6-7
: LGTM! Appropriate inventory quantities.The addition of funeral suits with 4 units each provides sufficient options for the chaplain's ceremonial duties.
Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml (1)
23-26
: LGTM! Enhanced detective wardrobe options.The new uniform variants (Detective Suit and Miami Vice) provide appropriate style options while maintaining role identity.
Resources/Prototypes/Catalog/Fills/Items/briefcases.yml (1)
28-28
: LGTM! Thematically appropriate equipment.The hitman suit is a more fitting choice for the sniper bundle than the previous lawyer jumpsuit.
Resources/Prototypes/_DV/Entities/Clothing/Neck/misc.yml (1)
14-32
: Verify temperature protection coefficients.The cold weather poncho has significant temperature protection (heating: 1.1, cooling: 0.1) and armor (10% heat resistance). Please verify these values align with game balance.
✅ Verification successful
Temperature protection values are appropriate
The cold weather poncho's temperature coefficients (heating: 1.1, cooling: 0.1) exactly match wintercoat values and are well-balanced within the game's protection hierarchy - stronger than basic clothing but weaker than specialized space gear. The 10% heat resistance is a reasonable value for this type of garment.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for similar clothing items to compare protection values rg -A 2 "heatingCoefficient|coolingCoefficient"Length of output: 37435
Resources/Prototypes/Maps/byoin.yml (1)
40-40
: LGTM! Role configuration is well-balanced.The Surgeon role is properly integrated with appropriate availability limits [1,1], matching other specialized medical roles.
Resources/Prototypes/Catalog/VendingMachines/Inventories/secdrobe.yml (1)
29-29
: Review security equipment availability.The addition of cold weather ponchos (ClothingNeckCWPSec) to SecDrobe while removing basic armor could impact security officer protection capabilities.
Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml (1)
33-33
: LGTM! Consistent anesthesia implementation.The Anesthesia status effect is properly added to both SimpleSpaceMobBase and SimpleMobBase, ensuring consistent behavior across mob types.
Also applies to: 112-112
Resources/Prototypes/Entities/Mobs/Species/reptilian.yml (1)
34-34
: LGTM! Addition of 'Hiss' emote enhances species flavor.The addition of the 'Hiss' emote to the reptilian species aligns well with the species' characteristics and the corresponding sound implementation mentioned in the summary.
Resources/Prototypes/Maps/asterisk.yml (1)
47-49
: Verify medical staffing balance across all maps.The introduction of the Surgeon role and adjustment of Medical Doctor slots appears systematic across maps. However, consider the following:
- The reduction in Medical Doctor slots (-1 per map) combined with adding 1-2 Surgeon slots may impact overall medical coverage during peak hours.
- The specialized Surgeon role might need additional documentation for players regarding its specific responsibilities versus general Medical Doctors.
Resources/Prototypes/Maps/glacier.yml (1)
58-58
: LGTM! Job role addition is well-balanced.The Surgeon role's availability [1, 2] aligns well with other medical roles like Paramedic [1, 2] and Chemist [1, 2].
Resources/Prototypes/Maps/hive.yml (1)
42-47
: LGTM! Well-balanced medical staff distribution.The reduction in MedicalDoctor slots [3, 4] combined with the new Surgeon role [1, 1] maintains a balanced medical team composition.
Resources/Prototypes/_DV/Entities/Clothing/Belt/belts.yml (1)
107-110
: LGTM! Storage whitelist additions are appropriate.The addition of HandLabeler and Stamp to the paperwork belt's whitelist aligns with its intended purpose.
Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml (1)
94-97
: Verify security implications of WhitelistChameleon tag.While the PermissibleForSurgery tag is appropriate for the tank harness, the WhitelistChameleon tag needs verification for potential security implications.
✅ Verification successful
WhitelistChameleon tag is a security feature with proper implementation
The tag is part of the chameleon clothing system's security measures, used as an allowlist to explicitly mark items that can be safely mimicked. The implementation includes proper validation and safety checks.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check usage and implications of WhitelistChameleon tag # Search for other items with WhitelistChameleon and related security checks echo "Searching for WhitelistChameleon usage..." rg -l "WhitelistChameleon" echo "Searching for Chameleon-related security checks..." ast-grep --pattern 'class $_ { $$$ WhitelistChameleon $$$ }'Length of output: 4060
Script:
#!/bin/bash # Check the chameleon system implementation for security measures echo "Examining SharedChameleonClothingSystem.cs..." cat Content.Shared/Clothing/EntitySystems/SharedChameleonClothingSystem.cs echo -e "\nChecking for related components..." rg -l "Chameleon" --type cs echo -e "\nChecking for chameleon-related tests..." fd test.*chameleon -iLength of output: 5228
Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml (2)
13-110
: LGTM! Other uniform additions are well-themed.The remaining uniform additions have appropriate descriptions and themes that align with their intended roles.
4-6
: Review the thematic appropriateness of the contract killer suit.The description "The perfect outfit for blending in at any event, office, or space station" combined with the name "contract killer suit" might promote inappropriate behavior. Consider revising to maintain appropriate game content.
✅ Verification successful
The contract killer suit's theme is consistent with the game's content
The description aligns with the game's established mix of dark humor and stealth mechanics, similar to other items in the codebase. The theme is appropriate within the context of the game's existing content.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for similar concerning content # Search for potentially inappropriate themes in clothing descriptions echo "Searching for similar concerning descriptions..." rg -i "killer|assassin|murder" "Resources/Prototypes"Length of output: 9766
Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpskirts.yml (1)
1-110
: LGTM! Well-structured entities with consistent naming.The entities follow a consistent structure and naming conventions:
- All entities properly inherit from
ClothingUniformBase
- Consistent sprite paths under
_Impstation/Clothing/Uniforms/Jumpskirt/
- Thematic descriptions that match their intended use
Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml (1)
28-29
: Verify the new clothing items in the theater vending machine.The new clothing items have been added to the theater vending machine inventory with appropriate quantities:
- Mr Space Wide suit and skirt (2 each)
- Hitman suit and skirt (1 each)
- BROS blazer and skirt (1 each)
Run the following script to verify the clothing items exist in the codebase:
Also applies to: 111-114
✅ Verification successful
All clothing items in theater vending machine are properly implemented
The verification confirms that all new clothing items (Mr Space Wide, Hitman, and BROS variants) are properly defined in the prototype files with both suit/blazer and skirt versions, complete with names, descriptions, and corresponding sprite assets.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the existence of new clothing items. # Test: Search for the new clothing items in the codebase. rg -l "ClothingUniformMrSpaceWide|ClothingUniformHitmanSuit|ClothingUniformBrosBlazer"Length of output: 550
Script:
#!/bin/bash # Search for all variants including skirts and examine their definitions rg "ClothingUniform(MrSpaceWide|HitmanSuit|BrosBlazer|MrSpaceWideSkirt|HitmanSkirt|BrosSkirt)" -A 5 Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/Length of output: 4247
Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml (1)
63-78
: LGTM! New poncho recipes with appropriate material costs.The new recipes for cold weather ponchos are well-structured:
- Arctic poncho requires cloth and durathread materials
- Security poncho inherits from the arctic poncho recipe
Resources/Prototypes/Catalog/Cargo/cargo_vending.yml (1)
46-46
: Cost adjustment for AutoDrobe restock.The cost increase from 2100 to 2200 is reasonable given the new clothing items added to the AutoDrobe inventory.
Resources/Prototypes/Recipes/Reactions/chemicals.yml (1)
365-365
: Increased ChloralHydrate yield is reasonable.The change triples the yield of ChloralHydrate from 1 to 3, making it more cost-effective to produce while maintaining the same reactant requirements.
Resources/Prototypes/Entities/Mobs/Species/base.yml (1)
149-149
: LGTM!The addition of the
Anesthesia
status effect is properly integrated into theStatusEffects
component's allowed list.Resources/Prototypes/Voice/speech_emote_sounds.yml (1)
95-96
: Verify sound collection existenceThe changes reference a
ReptillianHiss
sound collection. Ensure this collection is properly defined in the sound collections.Also applies to: 121-122
✅ Verification successful
Sound collection properly defined
The
ReptillianHiss
sound collection is correctly defined inResources/Prototypes/_Impstation/SoundCollections/reptilian.yml
with the appropriate audio file.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the existence of ReptillianHiss sound collection # Search for ReptillianHiss collection definition rg -l "id: ReptillianHiss" "Resources/Prototypes"Length of output: 113
Script:
#!/bin/bash # Check the content of the reptilian sound collection file cat "Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml"Length of output: 183
Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml (1)
281-284
: Verify surgery system integrationThe addition of the
PermissibleForSurgery
tag suggests integration with the surgery system. Ensure the surgery system properly handles this tag.✅ Verification successful
Surgery system properly handles PermissibleForSurgery tag
The tag is correctly integrated into the surgery system's validation logic, allowing surgery to be performed through clothing items that have this tag. The implementation in
SharedSurgerySystem.Steps.cs
explicitly checks for and respects this tag during surgery validation.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify surgery system's handling of PermissibleForSurgery tag # Search for references to the PermissibleForSurgery tag in surgery-related code rg "PermissibleForSurgery" "Content/Server" "Content/Shared" -A 5Length of output: 171
Script:
#!/bin/bash # Search for all references to PermissibleForSurgery tag rg "PermissibleForSurgery" -A 5 # Search for surgery-related systems and components rg "surgery" -i --type cs -A 5Length of output: 77554
Resources/Changelog/DeltaVChangelog.yml (1)
3752-3849
: Well-documented changelog entries!The latest additions maintain good documentation practices with clear descriptions of changes, proper categorization of change types, and traceable PR links.
Resources/Prototypes/Maps/lighthouse.yml (1)
56-59
: LGTM! Job slot changes align with the new medical system.The reduction in Medical Doctor slots and addition of Surgeon slots reflects the specialization of medical roles, which is consistent with the introduction of the new surgery system.
Resources/Prototypes/Maps/tortuga.yml (1)
41-46
: LGTM! Consistent job slot changes across maps.The changes maintain proportional staffing levels while introducing the Surgeon role, ensuring consistency with other map changes.
Resources/Prototypes/Maps/arena.yml (1)
41-46
: LGTM! Appropriately scaled job slot changes for arena map.The reduced Surgeon slots (1 instead of 2) is appropriate for the arena's smaller scale, while maintaining the overall medical role restructuring.
Resources/Prototypes/Reagents/toxins.yml (2)
58-58
: LGTM! Adjusted metabolism rate for surgical utility.The slower metabolism rate (0.25) allows ChloralHydrate to last longer, making it more practical for surgical procedures.
73-82
: Verify anesthesia effect parameters.The new anesthesia effect looks good, but let's verify:
- Is 10 units an appropriate minimum threshold?
- Is 4.0 seconds sufficient duration for surgical procedures?
- Should the effect really not refresh?
Consider adding comments explaining these magic numbers and their implications for gameplay balance.
Resources/Prototypes/Loadouts/loadout_groups.yml (4)
341-344
: LGTM! Enhanced Bartender uniform variety.Added NightclubSuit and SeniorBartender variants with skirt options, providing more character customization options.
465-466
: LGTM! Added thematic Chaplain uniform.The FuneralSuit addition with skirt variant fits the Chaplain's role perfectly.
1348-1351
: LGTM! Expanded Detective uniform options.Added MiamiVice and DetectiveSuit variants with skirt options, providing both classic and stylized options for the role.
1628-1629
: LGTM! Added formal Reporter uniform.The BrosBlazer addition with skirt variant provides a professional option for the Reporter role.
Resources/Prototypes/Entities/Mobs/NPCs/animals.yml (2)
1518-1518
: LGTM! Enhanced emote capabilities.The addition of the 'Hiss' emote to kobolds is a logical enhancement that aligns with their reptilian nature.
1905-1915
: LGTM! Enhanced interaction capabilities.The addition of speech, vocal, and accent components enriches the lizard's interaction mechanics with appropriate reptilian characteristics:
- Kobold accent for speech
- Reptilian sound effects
- Male/female vocal variations
- type: entity | ||
parent: MarkerBase | ||
id: LawSpawner | ||
name: Law Board Random Spawner | ||
placement: | ||
mode: PlaceFree |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Confirmed: Law spawner unrelated to medical changes
The codebase analysis shows no direct connections between law boards and medical systems. This confirms that the law board spawner should be moved to a separate PR focused on law/AI systems.
🔗 Analysis chain
Verify PR scope: Law spawner in medical PR
This new law board spawner entity appears to be unrelated to the PR's medical focus. Consider moving these changes to a separate PR focused on law/AI systems for better change management.
Let's verify if there are any medical-related dependencies:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for medical-related references to law boards
rg -l "LawSpawner|CircuitBoard" --type yaml | xargs rg -l "Surgery|Medical|Health|Anesthesia"
Length of output: 1577
Script:
#!/bin/bash
# Check content of files that might show medical-law connections
rg -A 5 -B 5 "Law.*Medical|Medical.*Law" --type yaml
Length of output: 54
private void OnExamined(Entity<UnborgableComponent> ent, ref ExaminedEvent args) | ||
{ | ||
// need a health analyzer to see if someone can't be borged, can't just look at them and know | ||
if (!args.IsInDetailsRange || HasComp<BodyComponent>(ent)) | ||
return; | ||
|
||
args.PushMarkup(Loc.GetString("brain-cannot-be-borged-message")); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Review examination message visibility logic.
The examination message is only shown when the entity has no BodyComponent, which seems counterintuitive. Shouldn't this be visible when examining the brain itself?
Consider this alternative implementation:
- if (!args.IsInDetailsRange || HasComp<BodyComponent>(ent))
+ if (!args.IsInDetailsRange)
return;
+ // Only show message when examining the brain itself
+ if (!TryComp<InputMoverComponent>(ent, out _))
+ return;
args.PushMarkup(Loc.GetString("brain-cannot-be-borged-message"));
Committable suggestion skipped: line range outside the PR's diff.
- proto: SpawnPointSurgeon | ||
entities: | ||
- uid: 29153 | ||
components: | ||
- type: Transform | ||
rot: -1.5707963267948966 rad | ||
pos: 78.5,-21.5 | ||
parent: 1 | ||
- uid: 30096 | ||
components: | ||
- type: Transform | ||
pos: 91.5,-6.5 | ||
parent: 1 | ||
- uid: 30097 | ||
components: | ||
- type: Transform | ||
pos: 90.5,-6.5 | ||
parent: 1 | ||
- uid: 30098 | ||
components: | ||
- type: Transform | ||
pos: 6.5,-46.5 | ||
parent: 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
The spawn point placement concern is valid.
The codebase analysis confirms that the SpawnPointSurgeon (11.5,-48.5) is significantly distant from the main surgery area, which is centered around coordinates 77.5,-16.5 as indicated by multiple surgery-related fixtures including the Surgery APC, airlock, and signage. This distance could indeed impact gameplay efficiency.
🔗 Analysis chain
Review the distant spawn point placement.
While multiple spawn points provide gameplay variety, the spawn point at coordinates 6.5,-46.5 seems too far from the surgery area. This might impact gameplay efficiency as surgeons need quick access to their workspace.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check typical distances between spawn points and workspaces in other maps
rg -A 5 'SpawnPoint.*\n.*Transform' | grep -i '\.yml$'
Length of output: 248
Script:
#!/bin/bash
# Search for spawn point patterns in yml files
rg -l "SpawnPoint" --glob "*.yml"
# Then get specific spawn point coordinates
rg "SpawnPoint.*Transform.*\d+\.\d+.*\d+\.\d+" --glob "*.yml" -A 2
Length of output: 3553
Script:
#!/bin/bash
# Search for surgeon spawn points with coordinates
rg "SpawnPointSurgeon" --glob "*.yml" -A 3
# Search for surgery-related areas or workspaces
rg "surgery|Surgery" --glob "*.yml" -A 3
Length of output: 74360
Script:
#!/bin/bash
# Search for coordinates in hive.yml
rg "(-?\d+\.5,-?\d+\.5)" Resources/Maps/hive.yml -A 1
Length of output: 106505
Script:
#!/bin/bash
# Search for surgeon spawn points and nearby context
rg -B 2 -A 2 "SpawnPointSurgeon|surgery|medical|Surgery" Resources/Maps/hive.yml
Length of output: 910
- type: trait | ||
id: Depression | ||
name: trait-depression-name | ||
description: trait-depression-desc | ||
traitGear: PillCanisterNeurozenium | ||
category: Disabilities | ||
components: [] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Depression trait needs components for gameplay effects.
The trait has an empty components list but associates with PillCanisterNeurozenium. Consider adding components to handle:
- Mood effects
- Medication interaction
- Status effects
- type: Tag | ||
id: PermissibleForSurgery # Can be worn on the body during surgery |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Critical dependencies found - removal will break multiple systems
The removed tags are actively used in:
- Crafting system (Bayonet tag in musket crafting)
- Research technology tree (BorgModuleSecurityChase)
- Entity inheritance hierarchy (BaseBorgModuleSecurity)
- Lathe recipes and cyborg module system
🔗 Analysis chain
Verify tag dependencies before removal.
The removal of multiple tags (Bayonet, BorgModuleSecurity, etc.) could break existing systems. Please verify no components or entities depend on these tags.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for usage of removed tags
echo "Searching for removed tag usage..."
rg -l "Bayonet|BorgModuleSecurity|BorgSecurityArmour|BorgSecurityHead|BorgSecurityLArm|BorgSecurityLLeg|BorgSecurityRArm|BorgSecurityRLeg|BorgSecurityTorso"
Length of output: 1048
Script:
#!/bin/bash
# Check actual usage patterns in non-definition files
echo "=== Checking recipe usage ==="
rg -A 5 "Bayonet|BorgModuleSecurity|BorgSecurityArmour|BorgSecurityHead|BorgSecurityLArm|BorgSecurityLLeg|BorgSecurityRArm|BorgSecurityRLeg|BorgSecurityTorso" "Resources/Prototypes/_DV/Recipes/"
echo -e "\n=== Checking entity usage ==="
rg -A 5 "Bayonet|BorgModuleSecurity|BorgSecurityArmour|BorgSecurityHead|BorgSecurityLArm|BorgSecurityLLeg|BorgSecurityRArm|BorgSecurityRLeg|BorgSecurityTorso" "Resources/Prototypes/_DV/Entities/"
echo -e "\n=== Checking research usage ==="
rg -A 5 "Bayonet|BorgModuleSecurity|BorgSecurityArmour|BorgSecurityHead|BorgSecurityLArm|BorgSecurityLLeg|BorgSecurityRArm|BorgSecurityRLeg|BorgSecurityTorso" "Resources/Prototypes/_DV/Research/"
Length of output: 10356
- !type:GenericStatusEffect # DeltaV: anesthesia | ||
key: Anesthesia | ||
component: Anesthesia | ||
refresh: false | ||
type: Add |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add reagent threshold condition for anesthesia effect
The Anesthesia effect is added without any conditions, unlike the similar effect in NitrousOxide which has a minimum threshold. This could cause immediate anesthesia regardless of dosage.
Apply this diff to add appropriate conditions:
- !type:GenericStatusEffect # DeltaV: anesthesia
+ conditions:
+ - !type:ReagentThreshold
+ reagent: Nocturine
+ min: 8
key: Anesthesia
component: Anesthesia
refresh: false
type: Add
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
- !type:GenericStatusEffect # DeltaV: anesthesia | |
key: Anesthesia | |
component: Anesthesia | |
refresh: false | |
type: Add | |
- !type:GenericStatusEffect # DeltaV: anesthesia | |
conditions: | |
- !type:ReagentThreshold | |
reagent: Nocturine | |
min: 8 | |
key: Anesthesia | |
component: Anesthesia | |
refresh: false | |
type: Add |
- type: ReplacementAccent # Impstation starts here | ||
accent: kobold | ||
- type: Speech | ||
speechSounds: Lizard | ||
speechVerb: Reptilian | ||
allowedEmotes: ['Hiss'] # Can't thump tail because no body component | ||
- type: Vocal | ||
sounds: | ||
Male: MaleReptilian | ||
Female: FemaleReptilian | ||
Unsexed: MaleReptilian # Impstation ends here |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Missing reptilian vocal sound definitions
The Lizard speech sounds and hissing emote are properly defined, but the following vocal sounds referenced in the code are missing:
MaleReptilian
FemaleReptilian
These sounds need to be defined in a sound collection file to match the vocal component configuration.
🔗 Analysis chain
Verify the sound assets are included.
Since new sound components have been added, ensure that all referenced sound assets exist:
Lizard
speech soundsMaleReptilian
andFemaleReptilian
vocal sounds
Run this script to verify the sound assets:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for required sound assets
# Search for sound definitions
rg -A 5 "MaleReptilian|FemaleReptilian|Lizard" "Resources/Prototypes/**/sounds.yml"
Length of output: 160
Script:
#!/bin/bash
# First, find all yml/yaml files that might contain sound definitions
fd -e yml -e yaml | grep -i "sound"
# Then search for the specific sound identifiers in all yml/yaml files
# since sound definitions might be in files not explicitly named with "sound"
rg -l "MaleReptilian|FemaleReptilian|Lizard" $(fd -e yml -e yaml)
Length of output: 69507
Script:
#!/bin/bash
# Check the reptilian sound collection file for the specific sound IDs
rg -A 5 "Lizard:|MaleReptilian:|FemaleReptilian:" "Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml"
Length of output: 115
Script:
#!/bin/bash
# First, check the content of the reptilian sound file
cat "Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml"
# Also search more broadly in sound-related files for any reptilian references
rg -l "reptilian" $(fd -e yml -e yaml | grep -i "sound")
Length of output: 4269
Script:
#!/bin/bash
# Check speech sound definitions in both base and Impstation directories
echo "=== Base speech sounds ==="
cat "Resources/Prototypes/Voice/speech_sounds.yml"
echo -e "\n=== Impstation speech sounds ==="
cat "Resources/Prototypes/_Impstation/Voice/speech_sounds.yml" 2>/dev/null || echo "File not found"
Length of output: 4194
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🔭 Outside diff range comments (4)
Resources/Prototypes/_DV/Entities/Clothing/Neck/misc.yml (1)
Removal of prosecutor badge breaks existing loadout configuration
The prosecutor badge entity is being removed, but it's still actively referenced in
Resources/Prototypes/_DV/Loadouts/Jobs/Justice/prosecutor.yml
under theProsecutorNeck
loadout. This removal will break the prosecutor role's loadout system.
- Update or remove the
ProsecutorNeck
loadout inResources/Prototypes/_DV/Loadouts/Jobs/Justice/prosecutor.yml
to maintain consistency🔗 Analysis chain
Line range hint
1-13
: Verify impact of removing prosecutor badgeThe removal of
ClothingNeckProsecutorbadge
might affect gameplay mechanics for legal/lawyer roles. Please ensure this removal is intentional and that alternative items exist for these roles.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for other lawyer/legal role related items and loadouts rg -l "lawyer|prosecutor|legal" "Resources/Prototypes" # Check if the badge is referenced in any loadouts rg "ClothingNeckProsecutorbadge" "Resources/Prototypes"Length of output: 3511
Script:
#!/bin/bash # Check the prosecutor role and loadout files cat "Resources/Prototypes/_DV/Roles/Jobs/Justice/prosecutor.yml" cat "Resources/Prototypes/_DV/Loadouts/Jobs/Justice/prosecutor.yml" # Check if there are any recent changes to these files git diff HEAD~1 "Resources/Prototypes/_DV/Roles/Jobs/Justice/prosecutor.yml" "Resources/Prototypes/_DV/Loadouts/Jobs/Justice/prosecutor.yml"Length of output: 1789
Resources/Maps/arena.yml (1)
Line range hint
1-190608
: Fix YAML Syntax Error: Duplicate Version KeyThe pipeline is failing due to a duplicate 'version' key in the map file. This needs to be resolved before merging.
Run this script to locate the duplicate keys:
#!/bin/bash # Description: Find duplicate version keys in YAML echo "=== Duplicate Version Keys ===" rg -n '^version:' Resources/Maps/arena.yml🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Duplicate key 'version' found while parsing map file
Resources/Maps/hive.yml (1)
Line range hint
192684-192767
: Fix negative door timing valuesMultiple doors have large negative
secondsUntilStateChange
values (around -179k seconds). This could cause unexpected behavior in door state transitions.Consider resetting these values to positive numbers or zero if they're meant to be immediate state changes.
Resources/Prototypes/Maps/arena.yml (1)
Line range hint
1-1
: Fix duplicate 'version' key in map file.The pipeline is failing due to a duplicate 'version' key in the map file configuration.
Please check the map file for duplicate version entries and remove the redundant one.
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Duplicate key 'version' found while parsing map file
🧹 Nitpick comments (13)
Resources/Prototypes/Voice/speech_emote_sounds.yml (1)
95-96
: Fix typo in collection name: "ReptillianHiss" → "ReptilianHiss"The collection name contains a typo with an extra 'l'. This should be corrected for consistency.
- collection: ReptillianHiss # Impstation + collection: ReptilianHiss # ImpstationAlso applies to: 121-122
Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml (1)
Line range hint
94-97
: Consider documenting the surgery clothing systemThe introduction of
PermissibleForSurgery
tags suggests a systematic approach to surgery-compatible clothing. Consider:
- Documenting the criteria for surgery-compatible clothing
- Creating a checklist for adding new surgery-compatible items
- Adding tests to verify surgery system's interaction with tagged clothing
Would you like me to help create documentation for the surgery clothing system or open an issue to track this task?
Also applies to: 281-284
Resources/Locale/en-US/_DV/prototypes/catalog/fills/crates/medical-crates.ftl (1)
1-2
: Enhance the description with specific painkiller details.The current description is quite generic. Consider adding more details about:
- Types of painkillers included
- Quantity of each type
- Any usage restrictions or medical clearance requirements
Resources/Locale/en-US/_DV/borg/borg.ftl (1)
5-5
: Consider more specific error messaging.While the message clearly indicates the brain is unusable, it could be more informative about:
- The specific type of damage
- Whether this is a permanent condition
- Any relevant medical procedures that might have caused this state
Example:
-brain-cannot-be-borged-message = [color=red]This brain is damaged beyond use.[/color] +brain-cannot-be-borged-message = [color=red]This brain cannot be used for borging due to severe neural damage.[/color]Content.Shared/_DV/Surgery/AnesthesiaComponent.cs (1)
5-9
: Enhance component documentation and consider additional fields.While the component works as a marker, consider:
- Expanding the XML documentation to explain:
- How it interacts with the surgery system
- Duration of effects
- Any side effects
- Adding fields to track:
- Anesthesia duration
- Depth level
- Side effects
Resources/Locale/en-US/_DV/job/job-description.ftl (1)
3-3
: Fix typo in chief justice description."recieves" should be "receives"
-job-description-chief-justice = Manage the justice department, act as a judge, and ensure everyone recieves fair and just treatment. +job-description-chief-justice = Manage the justice department, act as a judge, and ensure everyone receives fair and just treatment.Content.Client/Doors/DoorSystem.cs (1)
84-89
: Clean up commented code and improve error handling.The commented code should be removed, and the error handling for resource loading could be improved.
- args.Sprite.BaseRSI = res?.RSI; // DeltaV - /* DeltaV: just set BaseRSI instead - foreach (var layer in args.Sprite.AllLayers) - { - layer.Rsi = res?.RSI; - }*/ + if (res?.RSI == null) + { + Log.Error("Failed to load RSI '{0}' for door sprite", baseRsi); + return; + } + args.Sprite.BaseRSI = res.RSI;Resources/Maps/tortuga.yml (1)
73401-73492
: Consider optimizing curtain placements.There are several curtains placed very close to each other (e.g., at coordinates -70.5,34.5 and -70.5,33.5). Consider:
- Consolidating nearby curtains to reduce entity count
- Using the CurtainSpawner more extensively for dynamic placement
Resources/Prototypes/_DV/status_effects.yml (1)
13-14
: Consider documenting the Anesthesia status effect behaviorThe new Anesthesia status effect lacks configuration details. Consider adding properties to define:
- Duration
- Effects on player state
- Interaction with surgery mechanics
Resources/Prototypes/_DV/Recipes/Lathes/medical.yml (1)
26-32
: Consider recipe categorization.TankHarness seems more appropriate for a clothing or security lathe rather than medical. Consider moving this recipe to a more suitable category.
Resources/Prototypes/_DV/Catalog/Cargo/cargo_medical.yml (1)
21-29
: Review painkiller crate pricing.The cost of 1000 for painkillers seems high compared to the removed medical scrubs (500). Consider adjusting the price or justifying the cost based on the contents' value.
Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml (1)
38-40
: Consider revising the description for clarity.The description "The unspoken attire for any hotel, motel, or branded inn activities" is somewhat vague. Consider being more specific about the intended use case while maintaining the game's tone.
Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml (1)
28-29
: Consider grouping related items together.The new clothing items are added in two separate locations. Consider grouping them together for better maintainability:
ClothingUniformMrSpaceWide
andClothingUniformMrSpaceWideSkirt
(lines 28-29)ClothingUniformHitmanSuit
,ClothingUniformHitmanSuitSkirt
,ClothingUniformBrosBlazer
, andClothingUniformBrosBlazerSkirt
(lines 111-114)Also applies to: 111-114
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (109)
Resources/Audio/_Impstation/Voice/Reptilian/reptillian_hiss1.ogg
is excluded by!**/*.ogg
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/equipped-NECK.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/equipped-NECK.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/inhand-right.png
is excluded by!**/*.png
📒 Files selected for processing (82)
Content.Client/Doors/DoorSystem.cs
(1 hunks)Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
(5 hunks)Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs
(3 hunks)Content.Shared/_DV/Surgery/AnesthesiaComponent.cs
(1 hunks)Content.Shared/_DV/Traits/Assorted/UnborgableComponent.cs
(1 hunks)Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs
(1 hunks)Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs
(1 hunks)Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs
(2 hunks)Resources/Audio/_Impstation/Voice/Reptilian/attributions.yml
(1 hunks)Resources/Changelog/DeltaVChangelog.yml
(1 hunks)Resources/Locale/en-US/_DV/borg/borg.ftl
(1 hunks)Resources/Locale/en-US/_DV/job/job-description.ftl
(1 hunks)Resources/Locale/en-US/_DV/medical/components/health-analyzer-component.ftl
(1 hunks)Resources/Locale/en-US/_DV/prototypes/catalog/fills/crates/medical-crates.ftl
(1 hunks)Resources/Locale/en-US/_DV/traits/traits.ftl
(1 hunks)Resources/Maps/arena.yml
(28 hunks)Resources/Maps/byoin.yml
(86 hunks)Resources/Maps/hive.yml
(35 hunks)Resources/Maps/tortuga.yml
(12 hunks)Resources/Prototypes/Catalog/Cargo/cargo_vending.yml
(1 hunks)Resources/Prototypes/Catalog/Fills/Items/briefcases.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/bardrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/lawdrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/secdrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml
(2 hunks)Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml
(1 hunks)Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml
(1 hunks)Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
(2 hunks)Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
(2 hunks)Resources/Prototypes/Entities/Mobs/Species/base.yml
(1 hunks)Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml
(1 hunks)Resources/Prototypes/Entities/Structures/Machines/lathe.yml
(2 hunks)Resources/Prototypes/Loadouts/loadout_groups.yml
(7 hunks)Resources/Prototypes/Maps/arena.yml
(1 hunks)Resources/Prototypes/Maps/asterisk.yml
(1 hunks)Resources/Prototypes/Maps/byoin.yml
(1 hunks)Resources/Prototypes/Maps/glacier.yml
(1 hunks)Resources/Prototypes/Maps/hive.yml
(1 hunks)Resources/Prototypes/Maps/lighthouse.yml
(1 hunks)Resources/Prototypes/Maps/tortuga.yml
(1 hunks)Resources/Prototypes/Reagents/gases.yml
(1 hunks)Resources/Prototypes/Reagents/narcotics.yml
(1 hunks)Resources/Prototypes/Reagents/toxins.yml
(2 hunks)Resources/Prototypes/Recipes/Reactions/chemicals.yml
(1 hunks)Resources/Prototypes/Voice/speech_emote_sounds.yml
(2 hunks)Resources/Prototypes/_DV/Catalog/Cargo/cargo_medical.yml
(1 hunks)Resources/Prototypes/_DV/Catalog/Fills/Crates/medical.yml
(1 hunks)Resources/Prototypes/_DV/Entities/Clothing/Belt/belts.yml
(1 hunks)Resources/Prototypes/_DV/Entities/Clothing/Neck/misc.yml
(1 hunks)Resources/Prototypes/_DV/Entities/Markers/Spawners/Random/laws.yml
(1 hunks)Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml
(1 hunks)Resources/Prototypes/_DV/Recipes/Lathes/medical.yml
(1 hunks)Resources/Prototypes/_DV/Traits/disabilities.yml
(1 hunks)Resources/Prototypes/_DV/status_effects.yml
(1 hunks)Resources/Prototypes/_DV/tags.yml
(1 hunks)Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpskirts.yml
(1 hunks)Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/bartender.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/chaplain.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/lawyer.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/librarian.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/musician.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Security/detective.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Wildcards/reporter.yml
(1 hunks)Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml
(1 hunks)Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/meta.json
(1 hunks)Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/meta.json
(1 hunks)
⛔ Files not processed due to max files limit (9)
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/meta.json
✅ Files skipped from review due to trivial changes (16)
- Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/meta.json
- Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml
- Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/librarian.yml
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/meta.json
- Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/meta.json
- Resources/Audio/_Impstation/Voice/Reptilian/attributions.yml
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/meta.json
- Resources/Locale/en-US/_DV/medical/components/health-analyzer-component.ftl
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/meta.json
🧰 Additional context used
🪛 GitHub Actions: Build & Test Debug
Resources/Prototypes/Maps/arena.yml
[error] Duplicate key 'version' found while parsing map file
Resources/Maps/arena.yml
[error] Duplicate key 'version' found while parsing map file
🔇 Additional comments (102)
Resources/Prototypes/Voice/speech_emote_sounds.yml (1)
95-96
: Verify the existence of the ReptilianHiss sound collectionThe changes reference a new sound collection, but we need to ensure it exists and contains the appropriate sound files.
Also applies to: 121-122
✅ Verification successful
Sound collection "ReptillianHiss" is properly configured and available
The collection references a valid sound file at
Resources/Audio/_Impstation/Voice/Reptilian/reptillian_hiss1.ogg
. The spelling with two 'l's is consistent between the collection name and the sound file.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check if the ReptilianHiss collection is defined and contains valid sound files # Search for ReptilianHiss collection definition echo "Searching for ReptilianHiss collection definition..." rg -l "ReptilianHiss" Resources/Prototypes/ # Search for potential sound files echo "Searching for potential reptilian hiss sound files..." fd -e ogg -e wav . Resources/Audio/ | rg -i "hiss|reptil"Length of output: 934
Script:
#!/bin/bash # Search for sound collection definitions in the speech emote sounds file echo "Checking speech_emote_sounds.yml content..." cat Resources/Prototypes/Voice/speech_emote_sounds.yml # Search for other sound collection definitions as examples echo -e "\nSearching for other sound collection definitions..." rg "collection:" Resources/Prototypes/Voice/Length of output: 22929
Resources/Prototypes/_DV/Entities/Clothing/Neck/misc.yml (1)
14-33
: LGTM! Well-structured security poncho implementation.The entity has appropriate temperature protection coefficients and armor values for a cold weather garment. The security-specific markings are clearly indicated in the description.
Resources/Maps/byoin.yml (5)
117-117
: Verify the tile changes in the map layout.The tile data has been modified, which affects the visual layout of the map. Please ensure that:
- The new tile layout correctly represents the intended surgery area design
- There are no gaps or misaligned tiles
- The changes maintain proper room boundaries and connections
Also applies to: 157-157
315-315
: LGTM! Consistent color scheme applied to brick tiles.The color changes maintain consistency across all brick tile nodes with proper transparency.
Also applies to: 1778-1778
3667-3681
: Verify the gas system configuration for the surgery area.The gas system has been configured with specific parameters:
- Volume: 2500
- Temperature: 293.15K (20°C)
- Moles distribution defined for various gases
Please ensure these values are appropriate for a surgery room environment.
4678-4694
: LGTM! Well-structured device network setup for the surgery area.The air alarms and device networks are properly configured with:
- Clear naming conventions (e.g., "Air Alarm: Surgery")
- Appropriate device connections
- Strategic positioning of components
Line range hint
5888-63995
: Verify the completeness of the surgery area setup.The changes implement a comprehensive surgery area with:
- Medical equipment and supplies
- Staff spawn points and access control
- Storage and monitoring systems
- Proper ventilation and atmosphere control
Please verify that all essential components for a functional surgery area are present and properly positioned.
Run the following script to check for any missing critical components:
✅ Verification successful
Surgery area setup is complete and properly configured
The verification confirms that all essential components for a functional surgery area are present in the byoin.yml map, including:
- Critical medical equipment (sterile clothing, protective gear)
- Security measures (locked airlocks, secure windoors)
- Monitoring systems (surveillance, body scanners)
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify essential components for the surgery area # Check for critical medical equipment echo "Checking for critical medical equipment..." rg -l "ClothingOuterHospitalGown|ClothingMaskSterile|ClothingHandsGlovesNitrile" # Check for security components echo "Checking for security components..." rg -l "AirlockSurgeryLocked|WindoorSecureMedicalLocked" # Check for monitoring systems echo "Checking for monitoring systems..." rg -l "SurveillanceCamera.*Surgery|computerBodyScanner"Length of output: 6700
Resources/Maps/arena.yml (5)
128355-128372
: Review Access Control ConfigurationThe new lockable button command system controls multiple security devices. Ensure:
- Proper access restrictions are in place
- Emergency override mechanisms exist
- Integration with existing security systems is properly configured
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Duplicate key 'version' found while parsing map file
162460-162476
: Verify Medical Staff SafetyThe placement of surgeon spawn points needs review:
- Ensure spawn points are in secure areas
- Verify emergency escape routes
- Check proximity to essential medical equipment
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Duplicate key 'version' found while parsing map file
Line range hint
1-190608
: Security Advisory: Comprehensive Review RequiredGiven the sensitive nature of changes (weapon systems, medical facilities, security controls), this PR requires:
- Security team review
- Medical staff consultation
- Emergency response procedure updates
- Access control validation
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Duplicate key 'version' found while parsing map file
Line range hint
9852-10027
: Verify coordinate system adjustmentsThe coordinate changes appear to be systematic grid adjustments. Please ensure these changes maintain proper spacing and don't create overlapping entities or unreachable areas.
Run this script to check for potential coordinate overlaps:
✅ Verification successful
Coordinate system verification complete - No overlaps found
The coordinate system adjustments maintain proper spacing with no overlapping entities. All positions follow a consistent 0.5 unit grid system across the map's extent.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for entities with identical coordinates that might cause overlaps rg -A 1 'pos:' Resources/Maps/arena.yml | grep -B 1 'pos:' | sort | uniq -dLength of output: 69736
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Duplicate key 'version' found while parsing map file
186539-186562
:⚠️ Potential issueSecurity Review Required: Weapon Turret Placement
The addition of AI-controlled weapon turrets near medical facilities requires careful consideration:
- Verify that turret targeting systems exclude medical personnel and patients
- Ensure proper safety zones are established
Run this script to analyze the proximity of weapon turrets to medical areas:
✅ Verification successful
No Security Risk: Adequate Separation Between Turret and Medical Areas
The weapon turret is positioned in a separate quadrant (-64.5, -68.5) with significant distance from all medical facilities, which are primarily located in the positive x-axis region. The nearest medical facility is approximately 60 units away, providing adequate separation for safety.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check proximity of turrets to medical/spawn areas echo "=== Turret Locations ===" rg -A 3 'WeaponTurretAI' Resources/Maps/arena.yml echo "=== Medical Area Locations ===" rg -A 3 'SpawnPointSurgeon|LockerSurgeon|Hospital' Resources/Maps/arena.ymlLength of output: 615
Script:
#!/bin/bash # Get coordinates and configuration for specific entities echo "=== Turret Configuration (uid: 20898) ===" rg -A 10 'uid: 20898' Resources/Maps/arena.yml echo -e "\n=== Medical Locations Coordinates ===" for uid in 1954 1951 20889 17310; do echo "Entity uid: $uid" rg -A 10 "uid: $uid" Resources/Maps/arena.yml doneLength of output: 3872
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Duplicate key 'version' found while parsing map file
Resources/Prototypes/_DV/Entities/Markers/Spawners/Random/laws.yml (3)
1-6
: LGTM! Entity definition is well-structured.The entity definition follows best practices with clear naming and appropriate placement mode configuration.
8-9
: Consider anchoring the Transform component.An unanchored transform might allow the spawner to be moved or affected by physics, which could lead to unexpected behavior.
✅ Verification successful
The unanchored transform appears intentional.
The spawner has explicit
placement: { mode: PlaceFree }
configuration, indicating it's designed to be placed freely. This is consistent with its role as a spawner for collectible/movable law boards.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if other spawners typically use anchored transforms ast-grep --pattern 'type: entity $$$ components: $$$ - type: Transform anchored: true $$$ - type: RandomSpawner'Length of output: 138
Script:
#!/bin/bash # First find files containing RandomSpawner components rg "type: RandomSpawner" -l | while read -r file; do echo "=== $file ===" # Show the entire entity definition for each file cat "$file" doneLength of output: 92641
14-27
: Consider enhancing the RandomSpawner configuration.A few suggestions to improve the spawner's behavior:
- Add weights/probabilities for different circuit boards to control their relative spawn rates
- Consider a non-zero offset to prevent potential spawning collisions
- Verify compatibility with the new UnborgableComponent mentioned in the PR
Example enhancement:
- type: RandomSpawner - offset: 0 + offset: 0.1 prototypes: - - AsimovCircuitBoard - - CorporateCircuitBoard + rarity: + AsimovCircuitBoard: 0.4 + CorporateCircuitBoard: 0.3Let's verify the compatibility with UnborgableComponent:
Resources/Maps/hive.yml (5)
4299-4311
: LGTM: Delivery node configurationThe delivery node configuration with its decals is well-structured and follows a consistent pattern.
136874-136895
: LGTM: Well-structured device link configurationThe device link configuration creates a comprehensive control system with clear relationships between buttons and doors.
163213-163235
: LGTM: Surgeon spawn points and equipmentThe surgeon spawn points are well-positioned near relevant medical facilities, and the equipment placement is logical.
191792-191825
: Verify security implications of turret placementThe placement of multiple weapon turrets in the delivery area creates a high-security zone. Please ensure this aligns with the intended gameplay balance and doesn't create excessive difficulty for players.
Consider implementing a warning system or visual indicators for players entering this heavily defended area.
308-312
: Verify tile configuration changes visuallyThe tile configuration changes involve complex encoded data. To ensure correctness, please provide map visualization screenshots showing the before/after state of these changes.
Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml (1)
94-97
: Verify surgery system's interaction with tank harnessThe addition of
PermissibleForSurgery
tag is logical as patients might need oxygen supply during surgery. However, we should verify that:
- The surgery system correctly handles gas tank connections during procedures
- The tank harness doesn't interfere with surgical access to relevant body parts
✅ Verification successful
Tank harness is properly supported during surgery
The surgery system explicitly handles items tagged with
PermissibleForSurgery
, allowing surgical procedures to be performed while these items are worn. The implementation is intentional and consistent across similar items.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for surgery system's handling of tank harnesses # Look for surgery validation code that handles PermissibleForSurgery tag # Search for surgery validation logic ast-grep --pattern 'class $_ { $$$ public bool $_(EntityUid $_, $$$) { $$$ PermissibleForSurgery $$$ } $$$ }' # Check for any existing issues or discussions about surgery + tank harness compatibility gh issue list --search "tank harness surgery"Length of output: 179
Script:
#!/bin/bash # Search for surgery-related files and PermissibleForSurgery usage # Find surgery-related code files fd "surgery" --type f # Search for PermissibleForSurgery references rg "PermissibleForSurgery" -B2 -A2 # Look for surgery validation code with less specific pattern ast-grep --pattern 'class SurgerySystem { $$$ }'Length of output: 6821
Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml (1)
281-284
: Fix incorrect comment and verify surgery system coverage
- The comment incorrectly references tank harnesses but this is a hospital gown
- The
PermissibleForSurgery
tag is appropriate for a hospital gownUpdate the comment to:
- - type: Tag # DeltaV: tank harnesses can be used for surgery + - type: Tag # DeltaV: hospital gowns are compatible with surgeryContent.Shared/_DV/Traits/Assorted/UnborgableComponent.cs (1)
5-10
: Verify component relocation behavior and enhance documentation.The component's auto-relocation to the brain needs verification:
Consider enhancing the documentation to explain:
- The specific conditions that make a brain unborgable
- Whether this state can be reversed
- Any visual indicators or UI feedback
✅ Verification successful
Component relocation behavior verified and working as documented
The UnborgableSystem correctly implements the documented behavior:
- Automatically moves the component to brain organs on initialization
- Provides appropriate examine feedback (requires health analyzer)
- Properly prevents brain transfers to MMIs through component presence check
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for brain relocation logic in systems ast-grep --pattern 'class $_ : ISystem { $$$ UnborgableComponent $$$ $$$ }'Length of output: 83
Script:
#!/bin/bash # Search for any references to UnborgableComponent rg "UnborgableComponent" -B 2 -A 2 # Search for brain-related systems that might handle component relocation rg "Brain.*System" --type cs # Look for component initialization or entity spawning with brains ast-grep --pattern 'EnsureComp<UnborgableComponent>($$$)'Length of output: 3819
Resources/Locale/en-US/_DV/traits/traits.ftl (2)
39-40
: Clarify the purpose of the Depression trait.The trait is marked as having "no mechanical effect". Consider documenting:
- Why this trait exists if it has no mechanical effect
- How it's intended to be used in roleplay
- Any future plans for mechanical implementation
36-37
: Verify implementation of Machine Incompatible trait.Let's verify that this trait is properly implemented and handled across the codebase.
✅ Verification successful
Implementation of Machine Incompatible trait is properly handled
The trait is correctly implemented with an UnborgableComponent that marks brains as incompatible with man-machine interfaces, with proper system handling for component lifecycle and user feedback.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for references to UnborgableComponent and related systems echo "Searching for UnborgableComponent usage..." rg -l "UnborgableComponent" echo "\nSearching for brain-related operations..." ast-grep --pattern 'brain' -lLength of output: 468
Script:
#!/bin/bash # Check component implementation echo "=== UnborgableComponent.cs ===" cat Content.Shared/_DV/Traits/Assorted/UnborgableComponent.cs echo -e "\n=== UnborgableSystem.cs ===" cat Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs echo -e "\n=== Searching for brain-related operations ===" rg -i "brain" -A 3 -B 3Length of output: 68752
Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs (1)
48-50
:⚠️ Potential issueReview examination range check logic.
The current implementation might allow examination in cases where it shouldn't. The condition seems inverted for body component check.
-if (!args.IsInDetailsRange || HasComp<BodyComponent>(ent)) +if (!args.IsInDetailsRange || !HasComp<BodyComponent>(ent))Likely invalid or redundant comment.
Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs (3)
14-14
: LGTM: Added import for anesthesia componentThe import aligns with the changes to use anesthesia instead of forced sleep.
147-149
: Verify damage calculation with anesthesiaThe damage calculation now considers anesthesia state using the sleep modifier. This is a critical change that affects gameplay mechanics.
Run the following script to verify other damage calculations in the codebase that might need similar updates:
✅ Verification successful
Anesthesia damage modification correctly implemented
The anesthesia check is properly scoped to surgery-related damage calculations. Other damage systems in the codebase handle different types of damage (combat, environmental, status effects) that shouldn't be affected by anesthesia state.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for other damage calculations that might need to consider anesthesia rg -A 5 "damageChange.*=.*damage"Length of output: 1270
Script:
#!/bin/bash # Search for other damage calculations using TryChangeDamage rg -A 2 "TryChangeDamage|DamageModifierSet"Length of output: 59655
166-168
: Verify emote suppression during surgeryThe emote suppression now checks for anesthesia instead of forced sleep, which is consistent with the PR's objectives.
Run the following script to verify all emote-related checks:
✅ Verification successful
Emote suppression change is correctly implemented
The change from forced sleep to anesthesia check for emote suppression during surgery is correctly implemented and doesn't require updates to other emote-related checks in the codebase. Other systems that need to suppress emotes use their own specific checks or the general ActionBlocker system.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for other emote checks that might need updating ast-grep --pattern 'TryEmoteWithChat($$$)'Length of output: 241
Script:
#!/bin/bash # Search for TryEmoteWithChat implementation and context rg -A 10 "TryEmoteWithChat" --type cs # Search for other emote-related methods and checks rg "Emote" --type cs # Search for anesthesia checks in action contexts rg "AnesthesiaComponent" --type csLength of output: 50220
Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs (1)
286-288
: Verify security implications of surgery through clothingThe addition of the "PermissibleForSurgery" tag check allows surgery through certain clothing items. This needs careful verification to ensure it can't be exploited.
Run the following script to audit which items have this tag:
Consider adding validation to ensure only specific types of clothing can receive this tag.
✅ Verification successful
Surgery through clothing implementation is secure
The "PermissibleForSurgery" tag is only applied to two appropriate items:
- Hospital gown (designed for medical procedures)
- Tank harness (simple utility vest)
Both items are non-protective clothing that logically shouldn't interfere with surgery, and the tag's usage is properly restricted at the prototype level with no potential for exploitation.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Find all items with the PermissibleForSurgery tag rg -l "PermissibleForSurgery" # Check for any potential security-related tags that might interact ast-grep --pattern 'HasTag($_, "PermissibleForSurgery")'Length of output: 308
Script:
#!/bin/bash # Check the tag definition cat Resources/Prototypes/_DV/tags.yml # Show clothing items with this tag rg -A 5 "PermissibleForSurgery" Resources/Prototypes/Entities/Clothing/OuterClothing/ # Check for additional security measures in surgery system rg -A 5 -B 5 "PermissibleForSurgery" Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.csLength of output: 3187
Script:
#!/bin/bash # Show the full context of items with PermissibleForSurgery tag rg -B 10 "PermissibleForSurgery" Resources/Prototypes/Entities/Clothing/OuterClothing/*.ymlLength of output: 2912
Resources/Maps/tortuga.yml (3)
18830-18836
: LGTM: Medical facility layout appears well-structured.The placement of medical facilities, including the surgery airlock, surgeon lockers, and related entities, creates a logical and functional medical area. The restricted access and organized layout should facilitate proper gameplay flow.
Also applies to: 148185-148196, 185545-185551
186592-186618
: Consider reducing the number of surgeon spawn points for better game balance.The map currently has 5 surgeon spawn points, which might be excessive and could impact gameplay balance. Consider reducing the number of spawn points or distributing them across different medical roles.
Run this script to compare with other maps' surgeon spawn point counts:
215466-215509
: Verify the impact of WeaponTurretAllHostile to WeaponTurretAI rename.The turret prototype has been renamed, which might indicate a change in targeting behavior. This could significantly impact gameplay balance and security.
Let's verify the changes in turret behavior:
Resources/Prototypes/_DV/status_effects.yml (1)
Line range hint
1-11
: Verify the intentional removal of core gameplay mechanicsThe removal of addiction and pain status effects represents a significant change to core gameplay mechanics. Please confirm if this is intentional, as it could have far-reaching implications for:
- Medical gameplay balance
- Drug system mechanics
- Character status management
✅ Verification successful
Removal of addiction status effects is part of new addiction system implementation
The removal of
Addicted
andSuppressAddiction
status effects is intentional, as they are being replaced by a more robust addiction system that provides better control over addiction mechanics, suppression timing, and effect intervals. The new implementation is properly integrated with both client and server components.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for any remaining references to the removed status effects echo "Checking for remaining references to removed status effects..." rg -l "Addicted|SuppressAddiction|InPain|SuppressPain" --type yamlLength of output: 479
Script:
#!/bin/bash # Check the changelog first echo "=== Checking changelog ===" cat Resources/Changelog/DeltaVChangelog.yml echo -e "\n=== Checking narcotics.yml ===" cat Resources/Prototypes/Reagents/narcotics.yml echo -e "\n=== Checking medicine.yml ===" cat Resources/Prototypes/_CD/Reagents/medicine.yml echo -e "\n=== Checking disabilities.yml ===" cat Resources/Prototypes/_DV/Traits/disabilities.yml echo -e "\n=== Checking base.yml ===" cat Resources/Prototypes/Entities/Mobs/Species/base.ymlLength of output: 131070
Script:
#!/bin/bash # Check medicine.yml for addiction references echo "=== Checking medicine.yml ===" cat Resources/Prototypes/_CD/Reagents/medicine.yml # Look for addiction system configs echo -e "\n=== Looking for addiction system files ===" fd -t f "addiction" --exec cat {}Length of output: 26890
Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/lawyer.yml (1)
1-9
: Verify loadout group configurationThese new lawyer uniforms should be part of a loadout group to ensure proper selection options in the character creator.
✅ Verification successful
Loadouts are properly configured
The cream suit loadouts are already part of the lawyer loadout groups and are available through the lawdrobe vending machine. No additional configuration is needed.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if these loadouts are properly grouped echo "Checking for loadout group configuration..." rg "LawyerJumpsuit.*ClothingUniformCreamSuit" --type yamlLength of output: 156
Script:
#!/bin/bash # Search for lawyer-related loadout configurations echo "=== Searching for lawyer loadouts ===" rg "lawyer" --type yaml -i echo -e "\n=== Searching for cream suit references ===" rg "ClothingUniformCreamSuit" --type yaml echo -e "\n=== Searching for loadout group patterns ===" rg "type: loadoutGroup" --type yaml -A 5Length of output: 93424
Resources/Prototypes/_Impstation/Loadouts/Jobs/Wildcards/reporter.yml (1)
1-9
: Verify reporter role access configurationSince this is in the Wildcards folder, please confirm:
- Access restrictions for the reporter role
- Whether these uniforms should be available to other roles
✅ Verification successful
Access configuration is properly implemented
The reporter role has appropriate access restrictions through the "Reporter" access level, which is used consistently across doors, windoors, and secure storage. The uniforms being available in theater vending machines is an intentional design choice for roleplay flexibility.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for reporter role access configuration echo "Checking reporter role access settings..." rg "reporter.*access" --type yamlLength of output: 128
Script:
#!/bin/bash # Search for reporter configurations and related patterns echo "Searching for reporter configurations..." rg "reporter" --type yaml -i echo -e "\nChecking uniform access patterns..." rg "ClothingUniform.*Blazer" --type yaml echo -e "\nChecking wildcard configurations..." fd wildcard -e yml -e yaml -x cat {}Length of output: 19848
Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/musician.yml (1)
1-9
: Review naming convention and theme consistencyThe
MrSpaceWide
uniform name seems to be a reference. Please confirm:
- If this fits the game's aesthetic/lore
- If the naming convention aligns with other themed uniforms
✅ Verification successful
Uniform naming and theme are appropriate
The
MrSpaceWide
uniform follows the established naming conventions and is thematically consistent with its intended use in the hospitality/entertainment context for the musician role. The implementation is complete with proper entity definitions, sprites, and distribution methods.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check naming conventions of other themed uniforms echo "Checking uniform naming patterns..." rg "ClothingUniform.*Space" --type yamlLength of output: 1303
Script:
#!/bin/bash # Check the entity definitions for theme details echo "Checking MrSpaceWide uniform entities..." rg -A 5 "id: ClothingUniformMrSpaceWide[^S]" Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.ymlLength of output: 211
Script:
#!/bin/bash # Check both uniform variants with more context echo "Checking uniform definitions..." echo -e "\nJumpsuits:" rg -A 10 "ClothingUniformMrSpaceWide" Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml echo -e "\nJumpskirts:" rg -A 10 "ClothingUniformMrSpaceWide" Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpskirts.ymlLength of output: 1137
Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/chaplain.yml (1)
1-9
: LGTM! Consistent implementation of role-appropriate attireThe funeral suit loadouts are thematically appropriate for the chaplain role and follow the established pattern of providing both standard and skirt variants.
Resources/Prototypes/_Impstation/Loadouts/Jobs/Security/detective.yml (1)
1-19
: Well-structured loadout configurations!Good job on maintaining consistency and including skirt variants for inclusivity.
Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml (1)
15-16
: Appropriate inventory additions!The new suit options maintain consistency with existing inventory quantities and patterns.
Resources/Prototypes/_DV/Recipes/Lathes/medical.yml (1)
Line range hint
1-24
: Verify impact of removing medical equipment recipes.The removal of AACTablet, LauncherSyringe, and MiniSyringe recipes could significantly impact medical gameplay. Please ensure these items are available through alternative means.
✅ Verification successful
Removed medical items remain accessible through alternative means
The removed items are still available in-game:
- AACTablet: Available as a character loadout option in the trinkets group
- LauncherSyringe and MiniSyringe: Unlocked through the "SyringeGun" research technology
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if removed items are available through other means echo "Checking for alternative sources of removed items..." rg -l "AACTablet|LauncherSyringe|MiniSyringe" Resources/Prototypes/Length of output: 659
Script:
#!/bin/bash # Check research and entity definitions echo "=== Checking research definitions ===" cat Resources/Prototypes/_DV/Research/civilianservices.yml echo -e "\n=== Checking entity definitions ===" cat Resources/Prototypes/_DV/Entities/Objects/Devices/aac_tablet.yml cat Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml cat Resources/Prototypes/Entities/Objects/Specific/chemistry.yml echo -e "\n=== Checking loadout definitions ===" cat Resources/Prototypes/_DV/Loadouts/Miscellaneous/trinkets.yml cat Resources/Prototypes/Loadouts/loadout_groups.ymlLength of output: 57324
Resources/Prototypes/_DV/Catalog/Fills/Crates/medical.yml (1)
12-21
: Review painkiller balance and description.A few concerns:
- The description "Running out of these is not an option" implies critical dependency. Consider a more neutral description.
- Please verify that Stubantazine is properly balanced for bulk distribution.
✅ Verification successful
Description needs revision, but balance is appropriate.
The medication's balance appears well-considered with its moderate production ratio, conservative metabolism rate, and reasonable distribution quantity (150u per crate). However, the description "Running out of these is not an option" should be revised to something more professional, such as "Standard-issue painkiller supplies." or "Essential painkiller medication storage."
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check Stubantazine's effects and balance echo "Checking Stubantazine configuration..." rg -A 10 "Stubantazine" Resources/Prototypes/Length of output: 7354
Resources/Prototypes/_DV/Catalog/Cargo/cargo_medical.yml (1)
Line range hint
1-19
: Verify impact of removing essential medical items.The removal of medical scrubs and radio implants could significantly impact:
- Visual identification of medical staff (scrubs)
- Emergency communication capabilities (radio implants)
Please ensure these items remain accessible through alternative means.
✅ Verification successful
Removal of cargo items is justified - alternative sources exist
Both removed items remain readily accessible:
- Medical scrubs: Available through medidrobe (4 units each in green/blue/purple)
- Radio implants: Obtainable via uplink shop and certain game modes
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for alternative sources of removed items echo "Checking for medical scrubs availability..." rg -l "MedicalScrubs|Scrubs" Resources/Prototypes/Catalog/VendingMachines/ echo "Checking for radio implant availability..." rg -l "RadioImplant" Resources/Prototypes/Length of output: 827
Script:
#!/bin/bash # Check medidrobe inventory content echo "=== Medidrobe Inventory ===" cat Resources/Prototypes/Catalog/VendingMachines/Inventories/medidrobe.yml echo -e "\n=== Radio Implant Sources ===" # Check uplink catalog entry echo "Uplink catalog entry:" rg -A 5 -B 5 "RadioImplant" Resources/Prototypes/_DV/Catalog/uplink_catalog.yml # Check roundstart rules echo -e "\nRoundstart rules:" rg -A 5 -B 5 "RadioImplant" Resources/Prototypes/GameRules/roundstart.ymlLength of output: 2736
Resources/Prototypes/Catalog/VendingMachines/Inventories/bardrobe.yml (2)
13-14
: LGTM! New nightclub suit variants added.The addition of nightclub suit variants enriches the bartender's wardrobe options.
17-17
: Verify removal of ClothingOuterArmorBasicSlim.The comment indicates that ClothingOuterArmorBasicSlim was replaced, but it's not clear if it was actually removed from the inventory.
✅ Verification successful
Confirmed: ClothingOuterArmorBasicSlim was correctly removed from bardrobe inventory.
The item was replaced with ClothingOuterArmorDuraVest as indicated in the comment.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for any remaining references to ClothingOuterArmorBasicSlim rg "ClothingOuterArmorBasicSlim" --type yamlLength of output: 2675
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/meta.json (1)
1-30
: LGTM! Well-structured texture metadata.The RSI metadata is complete with all required states and proper attribution.
Resources/Prototypes/_DV/Traits/disabilities.yml (3)
34-40
: Depression trait requires implementation.The Depression trait has an empty components list, which means it won't have any mechanical effects besides providing the Neurozenium pills.
Would you like me to help implement the Depression trait mechanics or create a GitHub issue to track this task?
Line range hint
1-24
: Verify impact of removed traits.The removal of Uncloneable, Addicted, and InPain traits could break existing characters or systems that depend on them.
25-32
: Verify UnborgableComponent implementation.The trait references an Unborgable component. Let's verify its implementation.
✅ Verification successful
UnborgableComponent implementation verified and properly integrated
The component is implemented in
Content.Shared/_DV/Traits/Assorted/UnborgableComponent.cs
and has a complete integration with health analyzer UI, examine system, and proper localization support.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for UnborgableComponent definition ast-grep --pattern 'class UnborgableComponent { $$$ }'Length of output: 58
Script:
#!/bin/bash # Search for any mentions of Unborgable in the codebase rg -i "unborgable" -g "!*.yml" -g "!*.yaml" # Search for potential component registration patterns ast-grep --pattern 'RegisterComponent<$_Unborgable$_>'Length of output: 2870
Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/bartender.yml (2)
1-8
: LGTM! Well-balanced time requirement.The 52-hour requirement (1 hour per week for a year) for senior bartender is reasonable.
10-34
: Verify clothing prototypes existence.Let's verify that all referenced clothing items exist in the prototypes.
✅ Verification successful
All clothing prototypes verified and properly integrated
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for clothing prototype definitions echo "Searching for nightclub suit prototypes..." rg "ClothingUniformNightclubSuit" --type yaml echo "Searching for senior bartender prototypes..." rg "ClothingUniformSeniorBartender" --type yamlLength of output: 2248
Resources/Prototypes/Catalog/VendingMachines/Inventories/lawdrobe.yml (1)
12-13
: Verify cream suit prototypes.Let's verify that the cream suit variants exist in the prototypes.
✅ Verification successful
Cream suit prototypes verified successfully
Both
ClothingUniformCreamSuit
andClothingUniformCreamSuitSkirt
prototypes are properly defined in the Impstation clothing entities and are consistently referenced across the codebase.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for cream suit prototype definitions rg "ClothingUniformCreamSuit" --type yamlLength of output: 1246
Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml (1)
6-7
: LGTM! Good addition of funeral attire.The new funeral suit options enhance the chapel's thematic inventory.
Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml (1)
23-26
: LGTM! Good modernization of detective attire.The replacement of old detective clothing with new suit variants and Miami Vice options provides better style variety while maintaining thematic consistency.
Resources/Prototypes/Catalog/Fills/Items/briefcases.yml (1)
28-28
: LGTM! Better thematic fit for sniper bundle.Replacing the lawyer outfit with a hitman suit is more appropriate for this syndicate bundle.
Resources/Prototypes/Maps/byoin.yml (1)
40-40
: Verify medical staff balance.Adding a dedicated Surgeon role could affect medical department dynamics. Please ensure this addition is balanced with existing medical roles.
✅ Verification successful
Medical staff balance verified.
The Surgeon role [1, 1] in byoin.yml is appropriately balanced with:
- Consistent with other maps' Surgeon implementations
- Proportional to the map's medical team size
- Aligned with specialist role slot patterns
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check medical staff configurations across all maps echo "Analyzing medical staff configurations across maps..." rg -A 5 "MedicalDoctor|Surgeon|ChiefMedicalOfficer" "Resources/Prototypes/Maps/"Length of output: 29477
Resources/Prototypes/_DV/tags.yml (2)
Line range hint
1-109
: LGTM! Good cleanup of unused tags.Removing unused and obsolete tags improves codebase maintainability.
111-112
: Verify usage of new surgery tag.The new
PermissibleForSurgery
tag needs to be properly integrated with the surgery system.✅ Verification successful
Surgery tag is properly integrated and functioning as intended.
The
PermissibleForSurgery
tag is correctly implemented in the surgery system, allowing specific clothing items to be worn during surgical procedures. The tag is being checked during surgery validation and is already applied to appropriate clothing items.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check implementation and usage of the new surgery tag echo "Checking surgery tag implementation..." rg -A 5 "PermissibleForSurgery" "Resources/"Length of output: 916
Script:
#!/bin/bash # Search for surgery-related systems and components echo "Checking surgery system implementation..." rg -l "surgery" "Content.Server/" "Content.Shared/" echo -e "\nChecking for tag usage in surgery code..." rg -A 5 "HasTag|GetComponent.+Surgery|Surgery.+Component" "Content.Server/" "Content.Shared/"Length of output: 87678
Resources/Prototypes/Catalog/VendingMachines/Inventories/secdrobe.yml (1)
29-29
: LGTM! Good addition of cold weather gear.The addition of cold weather ponchos (
ClothingNeckCWPSec
) enhances the security team's ability to operate in cold environments.Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml (2)
33-33
: LGTM! Consistent implementation of anesthesia.The addition of the Anesthesia component to BaseSimpleMob ensures all derived mobs can be properly anesthetized during surgical procedures.
112-112
: Verify anesthesia behavior for SimpleMobBase.The Anesthesia component is correctly added, but let's verify its interaction with other status effects.
✅ Verification successful
Anesthesia component is properly integrated with SimpleMobBase status effects.
The component is correctly defined and allowed alongside other status effects like SlowedDown, Stutter, and ForcedSleep. No conflicts were found with existing status effects in the SimpleMobBase implementation.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for potential conflicts between Anesthesia and other status effects ast-grep --pattern 'type: StatusEffects allowed: $$$ - Anesthesia $$$'Length of output: 86
Script:
#!/bin/bash # Search for Anesthesia component definitions and usage rg -l "Anesthesia" --type yaml # Search for StatusEffects configurations in YAML rg "type: StatusEffects" --type yaml -A 5 # Search specifically for SimpleMobBase status effects rg "SimpleMobBase" --type yaml -A 10Length of output: 51755
Script:
#!/bin/bash # Check Anesthesia component definition and related status effects rg "Anesthesia" -A 5 --type yaml # Check for any status effect definitions rg "- type: StatusEffect" -A 5 --type yamlLength of output: 3261
Resources/Prototypes/Entities/Mobs/Species/reptilian.yml (1)
34-34
: LGTM! Enhanced species-specific roleplay.The addition of the 'Hiss' emote to reptilian species improves immersion and roleplay opportunities.
Resources/Prototypes/Maps/asterisk.yml (1)
47-49
: LGTM! Well-balanced medical role distribution.The reduction in MedicalDoctor slots is appropriately balanced by the addition of a dedicated Surgeon role, maintaining overall medical coverage while adding specialization.
Resources/Prototypes/Maps/lighthouse.yml (1)
56-59
: LGTM! Appropriate scaling of medical roles.The job slot adjustments are well-balanced for the station size:
- Reduction of one maximum MedicalDoctor slot
- Addition of up to two Surgeon slots
- Maintains MedicalIntern slots for training
Resources/Prototypes/Maps/tortuga.yml (1)
41-41
: LGTM! Well-balanced medical staff distribution.The reduction in MedicalDoctor slots (from [7,9] to [6,8]) is appropriately balanced by the addition of [1,2] Surgeon slots, maintaining a reasonable total medical staff capacity while introducing specialized roles.
Also applies to: 46-46
Resources/Prototypes/Maps/arena.yml (1)
41-41
: LGTM! Consistent medical staff distribution.The reduction in MedicalDoctor slots and addition of a Surgeon role maintains good balance while aligning with the new surgery mechanics.
Also applies to: 46-46
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Duplicate key 'version' found while parsing map file
Resources/Prototypes/Maps/glacier.yml (1)
58-58
: Review medical staff balance.While adding the Surgeon role is consistent with other maps, consider adjusting the MedicalDoctor slots to maintain staff balance across all maps. Other maps reduce MedicalDoctor slots when adding Surgeons.
Resources/Prototypes/Maps/hive.yml (1)
42-42
: LGTM! Consistent medical staff adjustments.The changes maintain good balance and are consistent with other maps' medical staff distribution.
Also applies to: 47-47
Resources/Prototypes/_DV/Entities/Clothing/Belt/belts.yml (1)
107-107
: LGTM! Enhanced paperwork functionality.Adding HandLabeler and Stamp to the paperwork belt's whitelist improves its utility for medical documentation, which is particularly relevant with the introduction of surgery systems.
Also applies to: 110-110
Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml (1)
44-46
: LGTM! Security measure properly implemented.The blacklist implementation effectively prevents entities with
Unborgable
components from being inserted into brain slots, which is a robust way to prevent unauthorized brain transfers.Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml (1)
1-110
: LGTM! Well-structured uniform definitions.The uniform entities are consistently structured with proper component definitions and appropriate sprite mappings.
Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpskirts.yml (1)
1-110
: LGTM! Consistent implementation with jumpsuits.The skirt variants maintain proper consistency with their jumpsuit counterparts, including component structure and sprite mappings.
Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml (3)
65-72
: LGTM! Well-defined material requirements.The poncho recipe properly specifies material requirements with appropriate quantities.
74-77
: Verify inheritance of material requirements.The
ClothingNeckCWPSec
recipe inherits fromClothingNeckCWPArctic
. Ensure this is intentional and that the material requirements should be identical.
Line range hint
1-62
: Verify the impact of removing jumpsuit recipes.Multiple jumpsuit recipes have been removed. Please ensure that these items remain obtainable through alternative means.
Run the following script to check for alternative sources:
✅ Verification successful
Security uniforms remain obtainable through appropriate channels
The removal of jumpsuit recipes from the lathe is safe as all uniforms remain obtainable through their intended distribution methods:
- Security officers can obtain uniforms through secdrobe vending machines (3 units each) and job loadouts
- Wardens have their uniforms available through job loadouts
- Both blue and grey variants remain accessible where appropriate
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if removed jumpsuits are available through other means # Search for the removed jumpsuit IDs in vending machines and loadouts echo "Checking vending machines..." rg "ClothingUniformJumpsuitSecBlue|ClothingUniformJumpsuitSecGrey|ClothingUniformJumpsuitWardenBlue|ClothingUniformJumpsuitWardenGrey" "Resources/Prototypes/Catalog/VendingMachines" echo "Checking loadouts..." rg "ClothingUniformJumpsuitSecBlue|ClothingUniformJumpsuitSecGrey|ClothingUniformJumpsuitWardenBlue|ClothingUniformJumpsuitWardenGrey" "Resources/Prototypes/*/Loadouts"Length of output: 758
Script:
#!/bin/bash # Comprehensive search for warden jumpsuits and additional sources echo "Checking all potential sources for warden uniforms..." rg "ClothingUniformJumpsuitWarden(Blue|Grey)" Resources/Prototypes echo -e "\nChecking for security uniform spawn points..." rg "ClothingUniformJumpsuit(Sec|Warden)(Blue|Grey)" Resources/Prototypes --type yamlLength of output: 4145
Resources/Prototypes/Catalog/Cargo/cargo_vending.yml (1)
46-46
: Cost adjustment looks reasonable.The increase from 2100 to 2200 for AutoDrobe restock is a minor balance adjustment that maintains profit margins while accounting for inventory changes.
Resources/Prototypes/Recipes/Reactions/chemicals.yml (1)
365-365
: Yield increase aligns with anesthesia changes.Increasing ChloralHydrate yield from 1 to 3 makes it more cost-effective to produce, which is reasonable given its role in the new anesthesia system.
Resources/Prototypes/Reagents/gases.yml (1)
310-321
: Verify interaction between ForcedSleep and Anesthesia effects.The addition of the Anesthesia effect alongside the existing ForcedSleep effect raises questions about their interaction.
✅ Verification successful
Both effects are intentionally designed to work together
ForcedSleep handles the unconsciousness mechanic while Anesthesia interfaces with the surgery system. The effects are properly separated and serve different purposes.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for any other components that might interact with both ForcedSleep and Anesthesia ast-grep --pattern 'component: $COMP $$$ conditions: $$$ - !type:ReagentThreshold reagent: NitrousOxide'Length of output: 124
Script:
#!/bin/bash # Search for NitrousOxide reagent effects rg -l "NitrousOxide" --type yaml # Search for ForcedSleep and Anesthesia components/systems rg "ForcedSleep|Anesthesia" --type yaml -A 5 -B 5 # Search for component definitions fd "\.cs$" --exec rg -l "ForcedSleep|Anesthesia"Length of output: 24831
Resources/Prototypes/Entities/Mobs/Species/base.yml (1)
149-149
: Status effect registration looks good.The Anesthesia status effect is properly registered in the allowed list, following the existing pattern for status effects.
Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs (4)
4-4
: LGTM! Added import for UnborgableSystem.The import is correctly placed and follows the existing import organization pattern.
40-41
: LGTM! Added UnborgableSystem dependency.The system is properly initialized in the constructor using the entity system manager.
Also applies to: 62-63
190-191
: LGTM! Added unborgable status check.The check is correctly integrated into the existing alert condition logic.
215-221
: LGTM! Added unborgable alert message.The alert message follows the same pattern as other alerts in the system.
Resources/Prototypes/Reagents/toxins.yml (2)
58-58
: LGTM! Adjusted ChloralHydrate metabolism rate.The slower metabolism rate (0.25) is appropriate for surgical applications, allowing the anesthesia to last longer.
73-82
: LGTM! Added anesthesia effect to ChloralHydrate.The implementation is well-structured with:
- Appropriate minimum threshold (10 units)
- Non-refreshing effect
- Reasonable duration (4.0 seconds)
Resources/Prototypes/Loadouts/loadout_groups.yml (5)
341-344
: LGTM! Added new bartender uniforms.The additions provide appropriate variety for the bartender role.
400-401
: LGTM! Added cream suit variants.Consistently applied to both librarian and lawyer roles.
Also applies to: 417-418
465-466
: LGTM! Added funeral suit variants for chaplain.Thematically appropriate additions for the role.
706-707
: LGTM! Added Mr. Space Wide uniform variants for musician.Appropriate additions that expand musician role customization.
1348-1351
: LGTM! Added detective uniform variants.The Miami Vice and Detective suit variants provide good variety for the role.
Resources/Changelog/DeltaVChangelog.yml (8)
3752-3759
: LGTM! New painkillers with balanced mechanics.The addition of purchasable painkillers with a nausea side effect provides a good balance between accessibility and gameplay consequences.
3768-3774
: LGTM! Enhanced surgery facilities.The surgery room extension and equipment additions improve medical gameplay capabilities.
3775-3781
: LGTM! New medical fabrication option.Adding tank harnesses to the medical techfab improves equipment accessibility.
3789-3795
: LGTM! Security equipment rebalancing.Removing medical cybernetic eyes from security techfab helps maintain equipment role boundaries.
3842-3849
: LGTM! New security clothing options.The addition of cold weather ponchos expands security's clothing options appropriately.
3833-3841
: Verify anesthesia mechanics implementation.The switch from forced sleep to anesthesia for surgery is a major change that needs verification.
✅ Verification successful
Anesthesia mechanics implementation verified
The switch from forced sleep to anesthesia is properly implemented across surgery system and chemical reagents. The three anesthetics (chloral hydrate, nitrous oxide, and nocturine) are correctly configured to provide the required anesthesia effect for surgery.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for surgery and anesthesia implementation rg -A 5 "surgery.*sleep|anesthesia|chloral.*hydrate|nitrous.*oxide|nocturine"Length of output: 27393
3760-3767
: Verify integration with existing brain-related systems.The Machine Incompatible trait needs to be checked for proper interaction with existing brain transfer mechanics and MMI-related code.
✅ Verification successful
Integration with brain-related systems verified
The Machine Incompatible trait is properly integrated with existing brain transfer mechanics and MMI-related code through:
- UnborgableComponent that handles brain blacklisting
- Health analyzer integration that warns about incompatible brains
- Proper component transfer from body to brain
- Full integration with MMI and borg chassis systems
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for brain transfer and MMI-related code that might need updates rg -A 5 "MMI|brain.*transfer|brain.*removal"Length of output: 39433
3782-3788
: Verify trait implementation details.The RP Depression trait should be checked for proper implementation and effects.
✅ Verification successful
Trait implementation verified and properly configured
The Depression trait is correctly implemented as an RP-focused trait with:
- Clear description indicating no mechanical effects
- Appropriate medical roleplay support (Neurozenium medication)
- Proper integration with the traits system
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for trait implementation details ast-grep --pattern 'trait $_ { $$$ depression $$$ }'Length of output: 60
Script:
#!/bin/bash # Search for files containing depression-related code rg -i "depression" --type-add 'code:*.{cs,yml,json,toml}' -t code -C 2 # Find trait-related files fd -e cs -e yml -e json "trait" --type f # Search for trait configuration patterns rg -i "trait.*depression" -C 2Length of output: 3878
Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs (1)
24-24
: LGTM! The TagSystem dependency enables surgery through specific clothing.The addition of the TagSystem dependency allows the surgery system to check for clothing items that are tagged as permissible for surgery operations.
Also applies to: 51-51
Resources/Prototypes/Entities/Structures/Machines/lathe.yml (1)
1350-1352
: LGTM! New poncho recipes added to the uniform printer.The addition of poncho recipes follows the existing pattern and is properly integrated into the uniform printer's static recipes list.
Resources/Prototypes/Entities/Mobs/NPCs/animals.yml (2)
1518-1518
: LGTM! Enhanced kobold emote capabilities.Added 'Hiss' to the allowed emotes for kobolds, which is consistent with their reptilian nature.
1905-1915
: LGTM! Added speech and vocal capabilities to lizards.The changes enhance lizard entities with:
- Kobold accent for speech replacement
- Lizard sounds and Reptilian speech verb
- Male/Female/Unsexed reptilian vocal sounds
- type: entity | ||
parent: ClothingNeckCWPSec | ||
id: ClothingNeckCWPArctic | ||
name: cold weather poncho | ||
description: The Cold Weather Poncho, advertised as a masterpiece of elemental protection. The truth is that it's itchy, stuffy, and a little baggy - but at least it's not cold. | ||
components: | ||
- type: Sprite | ||
sprite: _DV/Clothing/Neck/Misc/cwparctic.rsi | ||
- type: Clothing | ||
sprite: _DV/Clothing/Neck/Misc/cwparctic.rsi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Consider balance implications of inheriting from security variant
The arctic poncho inherits all properties from ClothingNeckCWPSec
, including its temperature protection and armor values. This might create balance issues since civilian equipment typically has lower protection values than security equipment.
Consider creating a separate base poncho entity and having both variants inherit from it, with security variant adding extra protection:
- parent: ClothingNeckCWPSec
+ parent: ClothingNeckBase
+ components:
+ - type: Sprite
+ sprite: _DV/Clothing/Neck/Misc/cwparctic.rsi
+ - type: Clothing
+ sprite: _DV/Clothing/Neck/Misc/cwparctic.rsi
+ - type: Item
+ size: Normal
+ - type: TemperatureProtection
+ heatingCoefficient: 1.0
+ coolingCoefficient: 0.2
Committable suggestion skipped: line range outside the PR's diff.
@@ -1,4 +1,5 @@ | |||
job-description-medical-borg = Half-human, Half-machine. Follow your laws, serve the crew, and assist the medical department. | |||
job-description-surgeon = Fix missing limbs, tend to emergency patients, try not to play god and get fired. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Consider revising the surgeon job description.
The current description "try not to play god" might encourage unethical behavior. Consider a more professional description focusing on medical ethics and responsibilities.
Suggested revision:
-job-description-surgeon = Fix missing limbs, tend to emergency patients, try not to play god and get fired.
+job-description-surgeon = Perform surgical procedures, repair limb injuries, and provide emergency medical care while adhering to medical ethics.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
job-description-surgeon = Fix missing limbs, tend to emergency patients, try not to play god and get fired. | |
job-description-surgeon = Perform surgical procedures, repair limb injuries, and provide emergency medical care while adhering to medical ethics. |
// technically this will apply for any organ not just brain, but assume nobody will be evil and do that | ||
return _body.GetBodyOrganEntityComps<UnborgableComponent>(ent).Count > 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Security concern: Potential component abuse.
The comment "assume nobody will be evil" suggests a potential security vulnerability. The system should enforce strict validation rather than relying on assumptions.
Consider implementing proper validation:
-// technically this will apply for any organ not just brain, but assume nobody will be evil and do that
-return _body.GetBodyOrganEntityComps<UnborgableComponent>(ent).Count > 0;
+var organs = _body.GetBodyOrganEntityComps<UnborgableComponent>(ent);
+return organs.Any(organ => HasComp<BrainComponent>(organ.Owner));
Committable suggestion skipped: line range outside the PR's diff.
using Content.Shared.Body.Organ; | ||
using Content.Shared.Body.Systems; | ||
using Content.Shared.Examine; | ||
using Content.Shared.Movement.Components; // TODO: use BrainComponent instead of InputMover when shitmed is merged |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
TODO comment is stale - BrainComponent is available
The code is still using InputMoverComponent
even though BrainComponent
is now available in the codebase (Content.Server/Body/Components/BrainComponent.cs). The TODO comment should be addressed by updating the implementation to use BrainComponent
.
Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs
: ReplaceInputMoverComponent
withBrainComponent
in both the import statement andGetBodyOrganEntityComps<>
call.
🔗 Analysis chain
Address TODO comment regarding BrainComponent.
The comment indicates a temporary solution using InputMoverComponent. This should be updated when shitmed is merged.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check if BrainComponent is available
echo "Searching for BrainComponent..."
rg -l "BrainComponent"
echo "\nChecking shitmed merge status..."
git log --oneline | rg -i "shitmed"
Length of output: 600
Script:
#!/bin/bash
# Check the current implementation in UnborgableSystem.cs
echo "Checking UnborgableSystem.cs implementation..."
rg -A 10 "InputMover" "Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs"
echo "\nChecking BrainComponent usage..."
rg -A 10 "BrainComponent" "Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs"
Length of output: 1669
- !type:GenericStatusEffect # DeltaV: anesthesia | ||
key: Anesthesia | ||
component: Anesthesia | ||
refresh: false | ||
type: Add |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add threshold condition for Anesthesia effect.
The Anesthesia effect is added without any conditions, unlike the ForcedSleep effect above it which has a minimum threshold. This could cause unintended anesthesia effects with minimal exposure.
Apply this diff to add appropriate conditions:
- !type:GenericStatusEffect
+ conditions:
+ - !type:ReagentThreshold
+ reagent: Nocturine
+ min: 8
key: Anesthesia
component: Anesthesia
refresh: false
type: Add
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
- !type:GenericStatusEffect # DeltaV: anesthesia | |
key: Anesthesia | |
component: Anesthesia | |
refresh: false | |
type: Add | |
- !type:GenericStatusEffect # DeltaV: anesthesia | |
conditions: | |
- !type:ReagentThreshold | |
reagent: Nocturine | |
min: 8 | |
key: Anesthesia | |
component: Anesthesia | |
refresh: false | |
type: Add |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 7
🔭 Outside diff range comments (2)
Resources/Maps/hive.yml (1)
Line range hint
192684-192767
: Fix negative door state change timers.Multiple doors have large negative values for
secondsUntilStateChange
(-179934.36, -179657.98, etc.). This could cause unexpected behavior with door states.Apply this fix to all affected doors:
- secondsUntilStateChange: -179934.36 + secondsUntilStateChange: 0Resources/Prototypes/Maps/arena.yml (1)
Multiple duplicate version keys detected in map file
Found multiple version keys in
Resources/Maps/arena.yml
:
- Numerous instances of
version: 6
- Two instances of
version: 2
This confirms the pipeline error. The map file needs to be regenerated or manually fixed to ensure version keys are properly structured and not duplicated within the same YAML scope.
🔗 Analysis chain
Line range hint
1-100
: Fix map loading failure: Duplicate 'version' key detected.The pipeline is failing due to a duplicate 'version' key in the map file. This needs to be addressed before merging.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for duplicate version keys in map files rg -A 1 '(?m)^version:' Resources/Prototypes/Maps/Length of output: 52
Script:
#!/bin/bash # Check if the files exist and search for version keys in all YAML files echo "=== Checking file existence ===" fd -e yml -e yaml arena echo "=== Searching for version keys in YAML files ===" fd -e yml -e yaml -x rg -l '(?m)^version:' echo "=== Checking map content ===" fd -e yml -e yaml -x rg -l 'mapPath.*arena\.yml'Length of output: 709
Script:
#!/bin/bash # Examine the actual map file content echo "=== Map file content ===" cat Resources/Maps/arena.yml | head -n 20 echo "=== Checking for any version-like keys ===" rg -i 'version|ver:|v:' Resources/Maps/arena.ymlLength of output: 2984
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Map loading failed due to duplicate 'version' key in map file
🧹 Nitpick comments (20)
Resources/Prototypes/Voice/speech_emote_sounds.yml (1)
95-96
: Fix typo in collection name.The collection name "ReptillianHiss" contains a typo (double 'l'). It should be "ReptilianHiss" to maintain consistency with the standard spelling.
- collection: ReptillianHiss # Impstation + collection: ReptilianHiss # ImpstationAlso applies to: 121-122
Resources/Locale/en-US/_DV/borg/borg.ftl (1)
5-5
: Consider making the message more specific about MMI compatibility.While the current message is clear, consider being more specific about MMI compatibility to align with the UnborgableComponent functionality:
-brain-cannot-be-borged-message = [color=red]This brain is damaged beyond use.[/color] +brain-cannot-be-borged-message = [color=red]This brain cannot be transferred to an MMI.[/color]Resources/Locale/en-US/_DV/job/job-description.ftl (1)
3-3
: Fix typo in chief-justice description.There's a typo in the word "receives".
-job-description-chief-justice = Manage the justice department, act as a judge, and ensure everyone recieves fair and just treatment. +job-description-chief-justice = Manage the justice department, act as a judge, and ensure everyone receives fair and just treatment.Resources/Locale/en-US/_DV/traits/traits.ftl (2)
36-37
: LGTM! Consider adding more context to the description.The trait name and description are clear, but consider adding more context about why certain brains are incompatible with MMIs.
-trait-unborgable-desc = Your brain cannot be put into a man-machine interface. +trait-unborgable-desc = Due to unique neural patterns, your brain cannot be integrated into a man-machine interface.
39-40
: Consider adding a warning about potential gameplay impact.While the trait states "No mechanical effect", depression can significantly impact roleplay. Consider adding a content warning.
-trait-depression-desc = No mechanical effect. The world is dark but there is a light somewhere, calling to you. +trait-depression-desc = [Content Warning] No mechanical effect. The world is dark but there is a light somewhere, calling to you.Content.Client/Doors/DoorSystem.cs (1)
84-89
: LGTM! Good optimization.Replacing the loop through AllLayers with a direct BaseRSI assignment is more efficient. Consider removing the commented-out code since it's tracked in version control.
- args.Sprite.BaseRSI = res?.RSI; // DeltaV - /* DeltaV: just set BaseRSI instead - foreach (var layer in args.Sprite.AllLayers) - { - layer.Rsi = res?.RSI; - }*/ + args.Sprite.BaseRSI = res?.RSI;Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs (1)
166-168
: Consider adding pain sounds even with anesthesia.While the patient shouldn't scream under anesthesia, consider adding muffled sounds or monitoring beeps for immersion.
if (HasComp<AnesthesiaComponent>(args.Body)) // DeltaV: anesthesia - return; + _chat.TryEmoteWithChat(args.Body, "machine-beep");Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs (2)
40-40
: Consider initializing system dependencies together.The
_unborgable
system initialization is separated from other system initializations in the constructor. Consider grouping it with other system dependencies for better code organization.private readonly IPrototypeManager _prototypes; private readonly IResourceCache _cache; - private readonly UnborgableSystem _unborgable; // DeltaV + private readonly UnborgableSystem _unborgable; // Shitmed Change StartAlso applies to: 62-62
190-191
: Extract complex condition into a descriptive method.The alert visibility logic is becoming complex with multiple conditions. Consider extracting it into a separate method for better readability.
- var unborgable = _unborgable.IsUnborgable(_target.Value); - var showAlerts = msg.Unrevivable == true || msg.Bleeding == true || unborgable; + var showAlerts = ShouldShowAlerts(msg); + private bool ShouldShowAlerts(HealthAnalyzerScannedUserMessage msg) + { + if (_target == null) + return false; + + return msg.Unrevivable == true + || msg.Bleeding == true + || _unborgable.IsUnborgable(_target.Value); + }Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs (1)
286-288
: Define tag as a constant and improve comment style.The tag string should be defined as a constant for maintainability, and the comment should follow XML documentation style.
+ private const string PermissibleForSurgeryTag = "PermissibleForSurgery"; + + /// <summary> + /// Checks if surgery can be performed through clothing items. + /// Some items (e.g., surgical drapes) are designed to be operated through. + /// </summary> if (!containerSlot.ContainedEntity.HasValue) continue; - if (_tagSystem.HasTag(containerSlot.ContainedEntity.Value, "PermissibleForSurgery")) // DeltaV: allow some clothing items to be operated through - continue; + if (_tagSystem.HasTag(containerSlot.ContainedEntity.Value, PermissibleForSurgeryTag)) + continue;Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/bartender.yml (1)
1-8
: Consider documenting the time requirement rationale.The 52-hour requirement (1 hour per week for 1 year) for senior bartender is well thought out, but consider adding this explanation in the comment for future reference.
- time: 187200 # 52 hrs (1 hour per week for 1 year) + time: 187200 # 52 hrs (calculated as 1 hour per week for 1 year to ensure consistent engagement)Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml (1)
6-7
: Consider standardizing inventory quantities.While funeral suits are appropriate additions, they have a quantity of 4 each while other clothing items have 2 each. Consider standardizing the quantities unless there's a specific reason for the higher amount.
- ClothingUniformFuneralSuit: 4 #imp - ClothingUniformFuneralSuitSkirt: 4 #imp + ClothingUniformFuneralSuit: 2 #imp + ClothingUniformFuneralSuitSkirt: 2 #impResources/Prototypes/_DV/Entities/Clothing/Neck/misc.yml (1)
26-32
: Consider adjusting temperature protection values.The current values might make the poncho too effective at cold protection (0.1 cooling coefficient) while providing minimal heat protection (1.1 heating coefficient).
Consider adjusting the values to be more balanced:
- type: TemperatureProtection - heatingCoefficient: 1.1 - coolingCoefficient: 0.1 + heatingCoefficient: 0.9 + coolingCoefficient: 0.3Resources/Prototypes/Catalog/VendingMachines/Inventories/secdrobe.yml (1)
Line range hint
1-29
: LGTM! Consider documenting item relocations.The reorganization of security clothing items improves consistency with the art direction. The removal of incongruous items and addition of formal/weather-appropriate gear enhances the theme.
Consider adding a comment in the SecTech inventory file to document that body armor was moved there from SecDrobe.
Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml (1)
4-6
: Consider revising the description.The "contract killer" reference might be inappropriate for the game's tone.
Resources/Prototypes/Reagents/gases.yml (1)
310-321
: Review the new anesthesia effect implementation.The new anesthesia effect for NitrousOxide parallels the existing ForcedSleep effect. However, consider:
- Should the duration (200) be configurable?
- Should the effect be refreshable for continuous anesthesia?
Consider making the duration configurable through a constant or configuration value:
time: 200 + # time: !type:ConstantFloat + # constant: AnesthesiaDurationResources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/lawyer.yml (1)
1-9
: Consider clarifying the purpose of the "#imp" comment.The "#imp" comment appears to be a marker but its meaning is not immediately clear. Consider either removing it if unnecessary or adding a more descriptive comment explaining its purpose.
Resources/Prototypes/Entities/Structures/Machines/lathe.yml (3)
1138-1138
: Verify the order of recipe additions.The recipe additions at lines 1138 and 1350-1352 appear to be inserted at seemingly random positions in the file. Consider grouping related items together for better maintainability.
Also applies to: 1350-1352
Line range hint
1138-1352
: Consider adding comments for recipe grouping.The recipe list is quite long and would benefit from comment headers grouping related items (e.g., "# Medical Equipment", "# Security Equipment", etc.) for better organization.
Line range hint
1138-1352
: Consider adding documentation for the medical biofabricator.This appears to be a significant new feature. Consider adding:
- Usage documentation
- Recipe requirements
- Integration testing guidelines
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (109)
Resources/Audio/_Impstation/Voice/Reptilian/reptillian_hiss1.ogg
is excluded by!**/*.ogg
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/equipped-NECK.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/equipped-NECK.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/equipped-INNERCLOTHING-monkey.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/equipped-INNERCLOTHING.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/inhand-right.png
is excluded by!**/*.png
📒 Files selected for processing (82)
Content.Client/Doors/DoorSystem.cs
(1 hunks)Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
(5 hunks)Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs
(3 hunks)Content.Shared/_DV/Surgery/AnesthesiaComponent.cs
(1 hunks)Content.Shared/_DV/Traits/Assorted/UnborgableComponent.cs
(1 hunks)Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs
(1 hunks)Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs
(1 hunks)Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs
(2 hunks)Resources/Audio/_Impstation/Voice/Reptilian/attributions.yml
(1 hunks)Resources/Changelog/DeltaVChangelog.yml
(1 hunks)Resources/Locale/en-US/_DV/borg/borg.ftl
(1 hunks)Resources/Locale/en-US/_DV/job/job-description.ftl
(1 hunks)Resources/Locale/en-US/_DV/medical/components/health-analyzer-component.ftl
(1 hunks)Resources/Locale/en-US/_DV/prototypes/catalog/fills/crates/medical-crates.ftl
(1 hunks)Resources/Locale/en-US/_DV/traits/traits.ftl
(1 hunks)Resources/Maps/arena.yml
(28 hunks)Resources/Maps/byoin.yml
(86 hunks)Resources/Maps/hive.yml
(35 hunks)Resources/Maps/tortuga.yml
(12 hunks)Resources/Prototypes/Catalog/Cargo/cargo_vending.yml
(1 hunks)Resources/Prototypes/Catalog/Fills/Items/briefcases.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/bardrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/lawdrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/secdrobe.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml
(2 hunks)Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml
(1 hunks)Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml
(1 hunks)Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
(2 hunks)Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
(2 hunks)Resources/Prototypes/Entities/Mobs/Species/base.yml
(1 hunks)Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml
(1 hunks)Resources/Prototypes/Entities/Structures/Machines/lathe.yml
(2 hunks)Resources/Prototypes/Loadouts/loadout_groups.yml
(7 hunks)Resources/Prototypes/Maps/arena.yml
(1 hunks)Resources/Prototypes/Maps/asterisk.yml
(1 hunks)Resources/Prototypes/Maps/byoin.yml
(1 hunks)Resources/Prototypes/Maps/glacier.yml
(1 hunks)Resources/Prototypes/Maps/hive.yml
(1 hunks)Resources/Prototypes/Maps/lighthouse.yml
(1 hunks)Resources/Prototypes/Maps/tortuga.yml
(1 hunks)Resources/Prototypes/Reagents/gases.yml
(1 hunks)Resources/Prototypes/Reagents/narcotics.yml
(1 hunks)Resources/Prototypes/Reagents/toxins.yml
(2 hunks)Resources/Prototypes/Recipes/Reactions/chemicals.yml
(1 hunks)Resources/Prototypes/Voice/speech_emote_sounds.yml
(2 hunks)Resources/Prototypes/_DV/Catalog/Cargo/cargo_medical.yml
(1 hunks)Resources/Prototypes/_DV/Catalog/Fills/Crates/medical.yml
(1 hunks)Resources/Prototypes/_DV/Entities/Clothing/Belt/belts.yml
(1 hunks)Resources/Prototypes/_DV/Entities/Clothing/Neck/misc.yml
(1 hunks)Resources/Prototypes/_DV/Entities/Markers/Spawners/Random/laws.yml
(1 hunks)Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml
(1 hunks)Resources/Prototypes/_DV/Recipes/Lathes/medical.yml
(1 hunks)Resources/Prototypes/_DV/Traits/disabilities.yml
(1 hunks)Resources/Prototypes/_DV/status_effects.yml
(1 hunks)Resources/Prototypes/_DV/tags.yml
(1 hunks)Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpskirts.yml
(1 hunks)Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/bartender.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/chaplain.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/lawyer.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/librarian.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/musician.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Security/detective.yml
(1 hunks)Resources/Prototypes/_Impstation/Loadouts/Jobs/Wildcards/reporter.yml
(1 hunks)Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml
(1 hunks)Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/meta.json
(1 hunks)Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/meta.json
(1 hunks)Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/meta.json
(1 hunks)
⛔ Files not processed due to max files limit (9)
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brownsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/creamsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/detectivesuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/funeralsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/hitmansuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/miamivice.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/mrspacewide.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/nightclubsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/senior_bartender.rsi/meta.json
✅ Files skipped from review due to trivial changes (19)
- Resources/Locale/en-US/_DV/medical/components/health-analyzer-component.ftl
- Resources/Textures/_DV/Clothing/Neck/Misc/cwparctic.rsi/meta.json
- Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi/meta.json
- Resources/Textures/_DV/Clothing/Neck/Misc/cwpsec.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi/meta.json
- Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/musician.yml
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi/meta.json
- Resources/Locale/en-US/_DV/prototypes/catalog/fills/crates/medical-crates.ftl
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/brosblazer.rsi/meta.json
- Resources/Audio/_Impstation/Voice/Reptilian/attributions.yml
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi/meta.json
- Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/librarian.yml
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi/meta.json
- Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi/meta.json
🧰 Additional context used
🪛 GitHub Actions: Build & Test Debug
Resources/Prototypes/Maps/arena.yml
[error] Map loading failed due to duplicate 'version' key in map file
Resources/Maps/arena.yml
[error] Map loading failed due to duplicate 'version' key in map file
🔇 Additional comments (72)
Resources/Prototypes/Voice/speech_emote_sounds.yml (1)
95-96
: Verify sound collection dependency.The changes reference a 'ReptillianHiss' collection. Let's verify that this collection is properly defined.
Also applies to: 121-122
✅ Verification successful
Sound collection dependency verified successfully
The 'ReptillianHiss' collection is properly defined in
Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml
and correctly references the existing audio file.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if the ReptillianHiss sound collection is defined rg -l "ReptillianHiss" "Resources/Prototypes/_Impstation/SoundCollections/" # Check if the referenced audio file exists fd "reptillian_hiss1.ogg" "Resources/Audio/_Impstation/Voice/Reptilian/"Length of output: 273
Script:
#!/bin/bash # Check the content of the reptilian.yml file cat "Resources/Prototypes/_Impstation/SoundCollections/reptilian.yml"Length of output: 183
Resources/Prototypes/Entities/Mobs/NPCs/animals.yml (2)
1518-1518
: LGTM! Consistent emote addition.The addition of 'Hiss' to the allowedEmotes list for MobBaseKobold is consistent with the sound emotes defined in speech_emote_sounds.yml.
1905-1915
: LGTM! Well-structured component additions.The new components added to MobLizard are well-structured and properly configured:
- ReplacementAccent with kobold accent
- Speech component with appropriate sounds and verbs
- Vocal component with gender-specific sound configurations
Resources/Prototypes/Entities/Mobs/Species/reptilian.yml (2)
34-34
: LGTM! The YAML changes look correct.The addition of 'Hiss' to allowedEmotes is properly formatted and placed within the Speech component configuration.
34-34
: Verify the 'Hiss' emote dependencies.Please ensure that all required assets and definitions for the 'Hiss' emote are in place:
- Sound assets for the hissing sound
- Emote definition in the emotes configuration
- Integration with the Vocal and BodyEmotes components
✅ Verification successful
All required dependencies for the 'Hiss' emote are properly configured.
- Sound asset exists at
Resources/Audio/_Impstation/Voice/Reptilian/reptillian_hiss1.ogg
- Sound collection
ReptillianHiss
is properly defined and references the sound file- Emote is properly defined with appropriate chat triggers and icon
- Species configuration includes the emote in
allowedEmotes
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the existence of required 'Hiss' emote assets and configurations # Check for hiss sound assets echo "Checking for hiss sound assets..." fd -e ogg -e wav . Resources/Audio/ -x echo "Found sound file: {}" # Check for hiss emote definition echo "Checking for hiss emote definition..." rg -l "Hiss" Resources/Prototypes/Emotes/ # Check for other reptilian entities that might need the hiss emote echo "Checking for other reptilian entities..." rg "species: Reptilian" Resources/Prototypes/Length of output: 66110
Script:
#!/bin/bash # Search for emote definitions and reptilian content # Find all YAML files that might contain emote definitions echo "Searching for emote definition files..." fd -e yml -e yaml . Resources/ -x echo "Found YAML file: {}" # Search for hiss emote definitions with proper YAML syntax echo -e "\nSearching for hiss emote definitions..." rg -i "hiss.*emote|emote.*hiss" -g "*.yml" -g "*.yaml" # Search for reptilian species references with proper YAML syntax echo -e "\nSearching for reptilian species references..." rg -i "species:\s*[\"']?Reptilian[\"']?" -g "*.yml" -g "*.yaml" # Search for references to the hiss sound file echo -e "\nSearching for references to hiss sound file..." rg -i "reptillian_hiss1" -g "*.yml" -g "*.yaml"Length of output: 66338
Script:
#!/bin/bash # Broader search for hiss and reptilian related content # Search for any hiss-related content in YAML files echo "Searching for hiss-related content..." rg -i "hiss" -A 5 -B 5 -g "*.yml" -g "*.yaml" # Search for sound collection definitions echo -e "\nSearching for sound collections..." rg -i "sound.*collection|collection.*sound" -g "*.yml" -g "*.yaml" # Search for reptilian with more flexible pattern echo -e "\nSearching for reptilian references..." rg -i "reptilian" -g "*.yml" -g "*.yaml"Length of output: 66405
Content.Shared/_DV/Surgery/AnesthesiaComponent.cs (1)
1-9
: LGTM! Well-structured component implementation.The component is properly implemented with appropriate attributes and documentation. The empty component pattern is suitable for this status effect use case.
Content.Shared/_DV/Traits/Assorted/UnborgableComponent.cs (1)
1-10
: LGTM! Well-documented trait component.The component is properly implemented with clear documentation explaining its purpose and behavior. The implementation follows best practices for trait components.
Resources/Locale/en-US/_DV/job/job-description.ftl (1)
2-2
: LGTM! Surgeon description maintains appropriate tone.The description effectively communicates the role's responsibilities while maintaining the game's characteristic humor.
Content.Shared/_DV/Traits/Assorted/UnborgableSystem.cs (2)
48-50
:⚠️ Potential issueFix the inverted condition in OnExamined.
The current condition prevents showing the message when a BodyComponent exists, which seems incorrect based on the comment.
- if (!args.IsInDetailsRange || HasComp<BodyComponent>(ent)) + if (!args.IsInDetailsRange || !HasComp<BodyComponent>(ent)) return;Likely invalid or redundant comment.
5-5
: Address the TODO comment before merging.The comment indicates waiting for "shitmed" to be merged. This dependency should be resolved before merging this PR.
Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs (1)
147-149
:⚠️ Potential issueValidate damage calculation with anesthesia.
The damage calculation with anesthesia needs bounds checking to prevent potential exploits.
if (HasComp<AnesthesiaComponent>(args.Body)) // DeltaV: anesthesia - damageChange = damageChange * ent.Comp.SleepModifier; + damageChange = damageChange * Math.Max(0, Math.Min(1, ent.Comp.SleepModifier));Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs (1)
215-221
: Verify localization key exists.Ensure that the localization key "health-analyzer-window-entity-unborgable-text" is defined in the localization files.
✅ Verification successful
Localization key verified
The key "health-analyzer-window-entity-unborgable-text" is properly defined in the DeltaV localization files.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check if the localization key exists rg "health-analyzer-window-entity-unborgable-text" -g "*.ftl"Length of output: 269
Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs (1)
24-24
: LGTM! Clean dependency injection.The TagSystem dependency is properly injected and follows the established pattern.
Also applies to: 51-51
Resources/Maps/hive.yml (4)
Line range hint
308-324
: LGTM: Map structure changes for the delivery area.The new tile configurations and delivery node with decals are well-organized and properly configured.
Also applies to: 4299-4311
163213-163235
: LGTM: Surgeon spawn points are well-configured.The spawn points for the new Surgeon role are properly positioned and include correct rotations.
136874-136895
: LGTM: Device link configurations for door control.The device link sources and sinks are properly configured with correct port mappings for door status toggling.
20858-20867
:⚠️ Potential issueCheck for duplicate entity UIDs.
Several entity UIDs (30104-30111) appear multiple times in the file. This could cause entity resolution issues at runtime.
Run this script to verify unique UIDs:
Also applies to: 59969-60058
Resources/Maps/byoin.yml (5)
117-117
: Verify the tile modifications for the surgery area.The tile data has been modified significantly. Please ensure that:
- The floor plan changes align with the medical facility requirements
- The tile connections are properly configured
- There are no gaps or misaligned tiles
Also applies to: 157-157
Line range hint
315-2125
: Room structure looks good!The surgery room is properly enclosed with:
- Corner tiles at all four corners
- Continuous wall tiles connecting the corners
- Consistent positioning forming a rectangular space
Line range hint
3235-3480
: Atmospheric system configuration is properly structured.The atmospheric indices are correctly configured to support the surgery room's ventilation requirements.
3667-3681
: Gas mixture configuration is appropriate for medical use.The atmospheric settings are suitable for a surgery room:
- Temperature: 20°C (293.15K)
- Standard breathable air mixture
Line range hint
6123-47661
: Medical equipment layout is comprehensive and well-organized.The surgery room is properly equipped with:
- Secured access through medical airlocks
- Essential surgical equipment and monitoring systems
- Medical gas supply systems
- Storage for surgical supplies
Please verify that the equipment placement aligns with standard medical protocols and procedures.
Resources/Maps/tortuga.yml (3)
148185-148196
: Review surgeon spawn point distribution and equipment access.The configuration adds multiple surgeon spawn points and dedicated lockers. Consider:
- The spawn points (5 locations) seem excessive given the typical surgeon count of [1, 2] mentioned in the AI summary
- Verify that surgeon lockers are conveniently accessible from spawn points
- The purpose of SpawnMobSmile in the medical context needs clarification
Consider reducing the number of spawn points to match the maximum number of surgeons allowed (2) to prevent unused spawn points and maintain a cleaner configuration.
Also applies to: 185545-185551, 186592-186618
18830-18836
: Verify medical facility zoning and privacy considerations.The addition of surgery-specific airlocks and various colored curtains suggests a well-structured medical facility. However, please ensure that:
- The curtain placements provide adequate privacy for patients
- The color-coding of curtains follows a consistent scheme for different medical zones
- The surgery area is properly isolated from general medical areas
Also applies to: 73401-73424, 73430-73492, 73527-73536, 73569-73592
✅ Verification successful
Medical facility layout verification successful
The medical facility layout demonstrates proper isolation and privacy considerations:
- Surgery area is well-isolated with dedicated airlock (pos: -81.5,2.5)
- Separate zones are clearly defined with appropriate access control
- Surveillance system provides comprehensive coverage while maintaining patient privacy through dedicated zone monitoring
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Analyze the medical facility layout # Check if surgery area is properly isolated with airlocks and curtains # Look for any direct paths to surgery area that bypass airlocks rg -l "Transform.*pos:.*[-]8[0-9],.*[0-9]" | while read -r file; do echo "=== $file ===" rg "Transform.*pos:.*[-]8[0-9],.*[0-9]" "$file" done # Verify curtain placement around patient areas rg -l "Curtains.*Transform.*pos:" | while read -r file; do echo "=== $file ===" rg "Curtains.*Transform.*pos:" "$file" doneLength of output: 110
Script:
#!/bin/bash # First, let's understand the structure by looking for medical-related entities echo "=== Medical and Surgery Related Entities ===" rg -i "type:.*(?i)(medical|surgery|airlock|curtain)" Resources/Maps/tortuga.yml # Then look for coordinate patterns in the relevant sections echo -e "\n=== Coordinate Patterns Around Medical Areas ===" rg -A 5 -B 5 "(?i)(medical|surgery)" Resources/Maps/tortuga.yml # Check for airlock patterns specifically echo -e "\n=== Airlock Patterns ===" rg -A 3 "type:.*[Aa]irlock" Resources/Maps/tortuga.ymlLength of output: 14602
215466-215509
: Review turret coverage and behavior changes.The renaming from
WeaponTurretAllHostile
toWeaponTurretAI
suggests a behavior change. Please ensure:
- The new AI behavior is properly documented
- The turret positions provide adequate coverage without overlapping fields of fire
- The rotation values create an effective security perimeter
✅ Verification successful
Turret placement and behavior changes verified.
The WeaponTurretAI implementation is properly documented and strategically placed:
- Turrets are deployed in pairs for redundant coverage
- Positions are at strategic defensive points
- Rotation values provide overlapping fields of fire
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Analyze turret placement and coverage # Check for documentation of new turret AI behavior rg -l "WeaponTurretAI" | while read -r file; do echo "=== $file ===" rg -B2 -A2 "WeaponTurretAI" "$file" done # Analyze turret positions and rotations for coverage gaps rg "WeaponTurretAI.*Transform" -A 3Length of output: 1840
Script:
#!/bin/bash # Search for turret positions and rotations in map files for map in "lighthouse.yml" "tortuga.yml" "hive.yml" "glacier.yml" "arena.yml"; do echo "=== $map ===" rg -B5 -A10 "proto: WeaponTurretAI" "Resources/Maps/$map" done # Search for any additional turret configuration rg -l "WeaponTurretAI" | xargs rg "Transform|Position|Rotation" -B2 -A2Length of output: 68221
Resources/Maps/arena.yml (4)
Line range hint
9852-10027
: LGTM!The coordinate and property adjustments appear to be routine position refinements.
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Map loading failed due to duplicate 'version' key in map file
Line range hint
1-190608
: Fix duplicate 'version' key in map file.The pipeline is failing due to a duplicate 'version' key in the YAML file. This is a critical issue that needs to be resolved.
Run this script to locate the duplicate keys:
After identifying the duplicates, ensure only one 'version' key exists at the root level of the YAML file.
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Map loading failed due to duplicate 'version' key in map file
20555-20574
: Verify security implications of new entities.Multiple new entities have been added in what appears to be a secure area. These entities are linked to security systems (turrets, cameras, and lockable buttons).
Run this script to analyze the security layout:
✅ Verification successful
Security configuration follows standard patterns
The new entities form a standard secure area layout with:
- Surveillance cameras positioned at strategic corners (-70.5,-75.5 and -76.5,-70.5)
- Integrated device network monitoring
- Standard parent-child relationships
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Analyze security-related entities and their positions # Look for patterns that might create security vulnerabilities # Search for security-related entities and their positions rg -A 5 "proto: (WeaponTurret|SurveillanceCamera|LockableButton)" Resources/Maps/ # Check for any existing security measures in the same area rg -A 5 "pos: -7[0-9]\.[0-9],-7[0-9]\.[0-9]" Resources/Maps/Length of output: 67746
Script:
#!/bin/bash # Search for entities and security measures in the target area # Look for parent entity references and nearby security components # Find all entities around the target coordinates rg "pos: -7[0-9]\.[0-9],-7[0-9]\.[0-9]" -B 2 -A 2 Resources/Maps/arena.yml # Look for parent entity references rg "parent: 6747" -B 2 -A 2 Resources/Maps/arena.yml # Search for security-related components near target area rg "(WeaponTurret|SurveillanceCamera|LockableButton).*pos: -7[0-9]" -B 2 -A 2 Resources/Maps/arena.ymlLength of output: 76562
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Map loading failed due to duplicate 'version' key in map file
162460-162476
: Verify surgeon spawn point placement.The addition of surgeon spawn points aligns with the new surgical mechanics. However, ensure that the spawn locations (5.5,-38.5, 11.5,-31.5, 11.5,-33.5) are appropriately placed relative to the medical facilities.
Run this script to verify the spawn point placement:
✅ Verification successful
Surgeon spawn points are appropriately placed
The spawn points are well-integrated within medical facilities, with direct access to:
- Medical hallways and treatment areas
- Surgical equipment and supplies
- Medical storage and vendors
- Hospital facilities and patient areas
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify surgeon spawn points are near medical facilities # Search for medical-related entities near spawn points rg -A 5 "pos: (5\.5,-3[89]|11\.5,-3[123])" Resources/Maps/ # Look for medical facility markers in the vicinity ast-grep --pattern 'proto: (Medical|Surgery|Hospital)' Resources/Maps/Length of output: 67813
Script:
#!/bin/bash # Search for medical-related entities and markers near spawn points # Look for medical-related terms in broader context around spawn coordinates rg -i "medbay|clinic|infirmary|surgery|medical|hospital|doctor" -C 5 "pos: (5\.5,-3[89]|11\.5,-3[123])" Resources/Maps/ # Search for medical equipment and facilities ast-grep --pattern 'proto: $_(Medical|Surgery|Hospital|Medbay|Operating|Clinic|Doctor|Infirmary)$_'Length of output: 81126
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Map loading failed due to duplicate 'version' key in map file
Resources/Prototypes/_DV/status_effects.yml (1)
12-14
:⚠️ Potential issueVerify impact of removing core medical status effects
The removal of addiction and pain mechanics without apparent replacement systems could significantly impact:
- Medical gameplay balance
- Character progression
- Existing medical items and procedures
Run this script to check for remaining references to removed effects:
Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml (1)
15-16
: Please clarify the purpose of "#imp" comments.The "#imp" comments next to the new clothing items are ambiguous. If these are implementation notes, consider removing them or providing more descriptive comments.
Resources/Prototypes/_DV/Catalog/Fills/Crates/medical.yml (1)
12-21
: Review painkiller crate quantity and description.The description "Running out of these is not an option" suggests these are critical medical supplies, but:
- The crate only contains 3 painkiller canisters
- This might create resource scarcity issues during extended medical emergencies
Consider:
- Increasing the quantity to match the critical nature described
- Adjusting the description if the limited quantity is intentional
Resources/Prototypes/_DV/Catalog/Cargo/cargo_medical.yml (1)
21-29
: Review painkiller crate cost balancing.The cost of the painkiller crate (1000) needs review:
- It's 2x more expensive than the removed scrubs crate (500)
- Each canister effectively costs ~333 credits
- Consider if this pricing aligns with the intended medical economy balance
Resources/Prototypes/_DV/Entities/Markers/Spawners/Random/laws.yml (1)
14-27
: Review law board selection implications.The random spawner includes multiple law board variants that could significantly impact gameplay:
- Some combinations might create conflicting directives (e.g., Asimov vs. Corporate)
- Certain law sets might be too permissive or restrictive for balanced gameplay
Consider:
- Grouping compatible law boards together
- Adding weights to control spawn probabilities
- Documenting the intended balance between different law sets
Resources/Prototypes/Catalog/VendingMachines/Inventories/bardrobe.yml (1)
13-14
: LGTM! Appropriate additions for bar attire.The new nightclub suit variants enhance the bartender's wardrobe options.
Resources/Prototypes/Catalog/VendingMachines/Inventories/lawdrobe.yml (1)
12-13
: LGTM! Good addition to lawyer wardrobe.The cream suit variants complement the existing color options nicely.
Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml (1)
23-26
: LGTM! Verify new clothing items are properly configured.The new detective and Miami Vice suits look good. The #imp tag suggests these are important replacements for the removed items.
Let's verify these new clothing items are properly configured:
✅ Verification successful
All new detective clothing items are properly configured ✓
The detective and Miami Vice suits (both regular and skirt variants) have complete configurations:
- Entity definitions with sprites in _Impstation prototypes
- Integration in detective loadouts and loadout groups
- Correct vending machine inventory entries
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if the new clothing items have their required entity definitions rg "ClothingUniformDetectiveSuit|ClothingUniformDetectiveSuitSkirt|ClothingUniformMiamiVice|ClothingUniformMiamiViceSkirt" -A 5Length of output: 5756
Resources/Prototypes/Catalog/Fills/Items/briefcases.yml (1)
28-28
: LGTM! Thematically appropriate change.Replacing the lawyer's suit with a hitman suit in the sniper bundle makes more thematic sense.
Resources/Prototypes/_DV/Entities/Clothing/Neck/misc.yml (1)
34-43
: LGTM! Good inheritance structure.The arctic variant properly inherits from the security variant while overriding only the necessary components.
Resources/Prototypes/Maps/byoin.yml (1)
40-40
: LGTM! Surgeon role properly configured.The addition of the Surgeon role with [1, 1] availability is consistent with other specialized medical positions in the station.
Resources/Prototypes/_DV/tags.yml (2)
Line range hint
1-109
: LGTM! Comprehensive cleanup of unused tags.The removal of deprecated tags, particularly those related to Borg security components and craftable weapons, helps maintain a clean codebase.
111-112
: LGTM! Well-defined surgery tag.The new
PermissibleForSurgery
tag is clearly described and aligns with the PR's enhanced surgery mechanics.Let's verify the tag's usage:
✅ Verification successful
Tag implementation and usage verified successfully
The
PermissibleForSurgery
tag is properly integrated into the surgery system and currently applied to select clothing items in vests and misc categories.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check which items are tagged as PermissibleForSurgery rg "PermissibleForSurgery" -A 2Length of output: 937
Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml (1)
33-33
: Verify AnesthesiaComponent implementation.The addition of the Anesthesia status effect to both mob bases is appropriate for the new surgical mechanics. However, we should verify the component's implementation.
Also applies to: 112-112
✅ Verification successful
AnesthesiaComponent implementation verified successfully
The component is properly implemented as a networked status effect and correctly integrated with the surgery system, providing both damage reduction and pain suppression during surgical procedures.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify AnesthesiaComponent implementation and its integration with the surgery system ast-grep --pattern 'class AnesthesiaComponent { $$$ }' # Check for surgery system integration ast-grep --pattern 'class SurgerySystem { $$$ Anesthesia $$$ }'Length of output: 130
Script:
#!/bin/bash # Find all files containing Anesthesia references rg -l "Anesthesia" --type-add 'cs:*.cs' --type cs # Search for component registration patterns rg -A 5 "IComponent|Component>" --type cs # Look for anesthesia-related systems rg -l "Surgery|Medical|Anesthesia" --type yamlLength of output: 76175
Script:
#!/bin/bash # Get AnesthesiaComponent implementation with context rg -C 10 "class AnesthesiaComponent" Content.Shared/_DV/Surgery/AnesthesiaComponent.cs # Look for anesthesia usage in surgery system rg -C 5 "Anesthesia" Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.csLength of output: 1441
Resources/Prototypes/Maps/asterisk.yml (1)
47-49
: LGTM! Verify role dependencies.The redistribution of medical staff slots and addition of the Surgeon role improves specialization while maintaining overall medical coverage.
✅ Verification successful
Role properly integrated and dependencies verified
The Surgeon role is fully implemented with proper department integration, equipment loadouts, and consistent slot allocation across all maps. The recent addition (PR DeltaV-Station#2645) includes all necessary role dependencies and access configurations.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for surgeon role definition and dependencies rg -A 10 "Surgeon:" Resources/Prototypes/Roles/Jobs/Medical/Length of output: 60
Script:
#!/bin/bash # Find all role-related files and search for surgeon fd -e yml -e yaml | xargs rg -i "surgeon" -A 5 # Specifically look for role definitions ast-grep --pattern 'Surgeon:'Length of output: 31575
Resources/Prototypes/Maps/lighthouse.yml (1)
56-59
: LGTM! Well-balanced role distribution.The adjustment of medical slots and addition of Surgeon role maintains appropriate medical coverage for the station size while adding specialization.
Resources/Prototypes/Maps/tortuga.yml (1)
41-46
: LGTM! Proportional staff adjustments.The reduction in MedicalDoctor slots and addition of Surgeon role maintains appropriate medical coverage for Tortuga's high player capacity while adding surgical specialization.
Resources/Prototypes/Maps/arena.yml (1)
41-46
: LGTM: Job slot adjustments are reasonable.The reduction in MedicalDoctor slots and addition of the Surgeon role maintains a balanced medical staff composition.
🧰 Tools
🪛 GitHub Actions: Build & Test Debug
[error] Map loading failed due to duplicate 'version' key in map file
Resources/Prototypes/Maps/glacier.yml (1)
58-58
: LGTM: Surgeon role properly integrated.The Surgeon role is correctly placed in the medical section with appropriate slot allocation.
Resources/Prototypes/Maps/hive.yml (1)
42-47
: LGTM: Medical staff adjustments are consistent.The changes maintain consistency with other map configurations for medical staff composition.
Resources/Prototypes/_DV/Entities/Clothing/Belt/belts.yml (2)
107-110
: LGTM: Enhanced paperwork belt functionality.Added HandLabeler and Stamp support improves the belt's utility for administrative tasks.
Line range hint
42-65
: Verify storage grid expansion impact.The storage grid dimensions have been expanded. Please ensure this doesn't cause UI overflow or item accessibility issues.
✅ Verification successful
Storage grid changes align with standard belt layout pattern
The storage grid expansion follows the established "Split Inventory" pattern used across multiple belt types in the codebase, with identical dimensions (0,0,3,1 and 5,0,8,1) and spacing. The modest size increase and consistent gap between segments suggests this is a tested and safe configuration.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for similar storage grid configurations rg -A 2 'grid:.*\d+,\d+,\d+,\d+' Resources/Prototypes/Length of output: 56
Script:
#!/bin/bash # Search for Storage components in belt-related files fd belt.yml --exec grep -A 10 "type: Storage" {} \; # Search for grid patterns with more flexible matching rg -U "(?s)type: Storage.*?grid:" Resources/Prototypes/ # Search specifically in the Clothing directory fd . Resources/Prototypes/Clothing --exec grep -A 10 "type: Storage" {} \;Length of output: 71645
Script:
#!/bin/bash # Search for belt storage configurations fd belt -e yml --exec grep -B 2 -A 4 "grid:" {} \; # Search for storage grid patterns in belt files ast-grep --pattern 'type: Storage grid: - $$$'Length of output: 2528
Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml (1)
94-97
: Verify surgery system compatibility.The addition of PermissibleForSurgery tag needs verification against the surgery system implementation.
✅ Verification successful
Tag implementation verified and working as intended.
The PermissibleForSurgery tag is correctly integrated into the surgery system in
SharedSurgerySystem.Steps.cs
, allowing surgery to be performed through tagged clothing items.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for PermissibleForSurgery tag usage in surgery system ast-grep --pattern 'PermissibleForSurgery' # Search for other items with surgery permission rg -l 'PermissibleForSurgery' Resources/Prototypes/Length of output: 548
Script:
#!/bin/bash # Search for surgery-related systems and components rg -l "surgery|Surgery" Content.Server/Medical/ # Look for tag checks in surgery-related code ast-grep --pattern 'HasTag($_)' ast-grep --pattern 'HasComp<TagComponent>' # Find surgery-related YAML configurations rg -l "surgery|Surgery" Resources/Prototypes/Length of output: 251
Script:
#!/bin/bash # Broader search for surgery-related code rg -l "surgery|Surgery" Content.Server/ rg -l "surgery|Surgery" Content.Shared/ # Search for tag validation patterns in surgery context rg -C 2 "PermissibleForSurgery" Content.Server/ rg -C 2 "PermissibleForSurgery" Content.Shared/ # Look for surgery-related systems fd -e cs -e yml ".*Surgery.*"Length of output: 10771
Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml (1)
44-46
: LGTM! Verify Unborgable component.The blacklist implementation for preventing unborgable brains in MMI is correct.
Let's verify the existence of the Unborgable component:
✅ Verification successful
Verification successful: Unborgable component exists and is properly implemented
The component is correctly defined and its purpose aligns perfectly with its usage in the MMI blacklist.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the Unborgable component exists and is properly defined rg -l "UnborgableComponent"Length of output: 140
Script:
#!/bin/bash # Check the component implementation cat Content.Shared/_DV/Traits/Assorted/UnborgableComponent.csLength of output: 426
Resources/Prototypes/_Impstation/Entities/Clothing/Uniforms/jumpsuits.yml (1)
1-110
: Verify sprite resources exist.The implementation looks good, but let's verify the sprite resources exist.
✅ Verification successful
All sprite resources verified successfully
All referenced sprite files exist at the correct location under Resources/Textures/_Impstation/Clothing/Uniforms/Jumpsuit/.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify all referenced sprite files exist fd -e rsi "_Impstation/Clothing/Uniforms/Jumpsuit/"Length of output: 51
Script:
#!/bin/bash # First, let's find any .rsi files to understand the directory structure fd -e rsi # Then search for any files matching jumpsuit pattern case-insensitively fd -i jumpsuitLength of output: 73393
Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml (1)
28-29
: LGTM! Inventory additions are properly structured.The new clothing items are correctly added to the AutoDrobeInventory with appropriate quantities.
Also applies to: 111-114
Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml (2)
65-72
: LGTM! Material costs are well-balanced.The poncho recipe is properly defined with appropriate material costs.
74-77
: Verify impact of security clothing recipe removals.While the new poncho recipes are good, the removal of security jumpsuit/jumpskirt recipes might affect gameplay.
✅ Verification successful
Security uniform availability is maintained despite recipe removals
While the lathe recipes for security jumpsuits are being removed, the uniforms remain readily available through:
- SecDrobe vending machines (3 of each variant)
- Security officer and warden loadout options
- Additional variants (formal, senior) are also accessible
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check if removed security clothing items are available through other means rg -l "ClothingUniformJumpsuit(Sec|Warden)(Blue|Grey)"Length of output: 1010
Script:
#!/bin/bash # Check the specific security uniform recipes that were removed rg "ClothingUniformJumpsuit(Sec|Warden)" Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml -B 2 -A 2 # Check availability in vending machines rg "ClothingUniformJumpsuit(Sec|Warden)" Resources/Prototypes/Catalog/VendingMachines/Inventories/secdrobe.yml # Check security locker contents rg "ClothingUniformJumpsuit(Sec|Warden)" Resources/Prototypes/Catalog/Fills/Lockers/security.yml # Check security officer and warden loadouts rg "ClothingUniformJumpsuit(Sec|Warden)" Resources/Prototypes/Loadouts/Jobs/Security/security_officer.yml Resources/Prototypes/Loadouts/Jobs/Security/warden.ymlLength of output: 2460
Resources/Prototypes/Catalog/Cargo/cargo_vending.yml (3)
46-46
: LGTM!Minor cost adjustment for AutoDrobe restock crate.
Line range hint
149-149
: Verify the significant cost increase for ChemVend restock.The cost has been increased by 65% (from 3820 to 6300). While this appears to be coordinated with rebase PR #53, please ensure this substantial increase is balanced with the medical gameplay economy.
Line range hint
365-365
: Consider updating the Seeds restock price.The comment indicates that the price needs to be higher due to more seeds, but no change has been made yet.
Resources/Prototypes/Recipes/Reactions/chemicals.yml (1)
365-365
: Verify the balance impact of increased ChloralHydrate yield.Tripling the yield of ChloralHydrate could significantly affect medical gameplay balance, especially in conjunction with the new anesthesia system. Please ensure this doesn't make anesthesia too easily accessible.
✅ Verification successful
Balance changes to ChloralHydrate appear well-considered
The increased yield is appropriately balanced by its anesthesia threshold (10 units) and toxic effects at higher doses (20+ units). The slower metabolism rate makes it more practical for its intended surgical use, aligning with the new anesthesia system.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for ChloralHydrate usage in medical/surgery systems rg -A 5 "ChloralHydrate.*anesthesia|ChloralHydrate.*surgery" # Check for any balance-related comments or configurations ast-grep --pattern 'ChloralHydrate: $$$ metabolismRate: $_'Length of output: 128
Script:
#!/bin/bash # Search for all ChloralHydrate references rg -i "chloral.?hydrate" -A 5 # Find reagent definitions fd "reagents" --type f --exec rg -l "Chloral" # Look for medical/surgery related files that might use sedatives fd . --type f --exec rg -l "sedative|anesthesia|unconscious"Length of output: 18724
Resources/Prototypes/Entities/Mobs/Species/base.yml (1)
149-149
: LGTM!The Anesthesia status effect is appropriately added to the allowed effects list, maintaining consistency with other medical effects like pain and addiction systems.
Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml (1)
281-284
: Verify the surgery permission system implementation.The addition of the PermissibleForSurgery tag suggests a new system for handling clothing during surgery. The comment indicates tank harnesses are also permitted, but this needs verification.
✅ Verification successful
Surgery permission system implementation is correctly implemented
The PermissibleForSurgery tag is properly defined, documented, and consistently used across hospital gowns and tank harnesses. The surgery system correctly handles these items by checking for the tag during surgery operations.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for other items with PermissibleForSurgery tag rg "PermissibleForSurgery" # Check the surgery system's handling of this tag ast-grep --pattern 'type: SharedSurgerySystem $$$ PermissibleForSurgery $$$'Length of output: 617
Resources/Prototypes/Reagents/narcotics.yml (1)
337-341
: LGTM! Anesthesia effect properly integrated.The addition of anesthesia effect to Nocturine aligns with the new surgery system requirements, while maintaining its existing forced sleep functionality.
Resources/Prototypes/Reagents/toxins.yml (1)
58-58
: LGTM! Well-balanced anesthesia configuration.The changes to ChloralHydrate are well thought out:
- Slower metabolism rate (0.25) helps maintain anesthesia during surgery
- Minimum threshold of 10 units provides control over activation
- 4 second non-refreshing duration allows for monitoring
Also applies to: 73-82
Resources/Prototypes/Loadouts/loadout_groups.yml (1)
341-344
: LGTM! Nice variety of new uniform options.The new uniform additions provide good role customization options while maintaining thematic consistency for each job role.
Also applies to: 400-401, 417-418, 465-466, 706-707, 1348-1351, 1628-1629
Resources/Changelog/DeltaVChangelog.yml (1)
3752-3849
: LGTM! Changelog entries match code changes.Resources/Prototypes/_Impstation/Loadouts/Jobs/Wildcards/reporter.yml (1)
1-9
: LGTM!The loadout configurations are well-structured and consistent with other loadout files.
Resources/Prototypes/_Impstation/Loadouts/Jobs/Civilian/chaplain.yml (1)
1-9
: LGTM!The loadout configurations maintain consistency with the established pattern.
Resources/Prototypes/_Impstation/Loadouts/Jobs/Security/detective.yml (1)
1-19
: LGTM!The loadout configurations are well-structured and provide good variety with both Miami Vice and Detective suit variants.
Resources/Prototypes/Entities/Structures/Machines/lathe.yml (2)
Line range hint
1138-1352
: Verify sprite assets.The medical biofabricator references sprites in the
_Shitmed
directory. Ensure these assets are properly included in the PR.
Line range hint
1138-1352
: Verify recipe dependencies.Some of the new recipes might require additional materials or components. Ensure that all dependencies are properly defined and available.
✅ Verification successful
All recipe dependencies are properly configured.
The new recipes use standard materials (Steel, Glass, Plastic, Cloth, Durathread) that are already established in existing medical lathe recipes, with quantities within normal ranges for similar items. No additional material dependencies need to be defined.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for recipe dependencies in material definitions rg -A 5 "TankHarness|ClothingNeckCWPSec|ClothingNeckCWPArctic" Resources/Prototypes/Length of output: 27849
Script:
#!/bin/bash # Search for LauncherSyringe and MiniSyringe recipe definitions rg -A 5 "id: (LauncherSyringe|MiniSyringe)$" Resources/Prototypes/ # Check material definitions in lathe rg -B 5 "materials:" Resources/Prototypes/Entities/Structures/Machines/lathe.ymlLength of output: 2117
Script:
#!/bin/bash # Check materials used in medical lathe recipes rg -A 3 "materials:" Resources/Prototypes/_DV/Recipes/Lathes/medical.yml Resources/Prototypes/Recipes/Lathes/medical.yml # Check if the lathe has material whitelist/blacklist rg "materialWhitelist|materialBlacklist" Resources/Prototypes/Entities/Structures/Machines/lathe.ymlLength of output: 5818
{ | ||
// technically this will apply for any organ not just brain, but assume nobody will be evil and do that | ||
return _body.GetBodyOrganEntityComps<UnborgableComponent>(ent).Count > 0; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Security concern: Validate organ type in IsUnborgable.
The comment "technically this will apply for any organ not just brain" indicates a potential security issue. The method should explicitly check for brain organs to prevent misuse.
public bool IsUnborgable(Entity<BodyComponent?> ent)
{
- // technically this will apply for any organ not just brain, but assume nobody will be evil and do that
- return _body.GetBodyOrganEntityComps<UnborgableComponent>(ent).Count > 0;
+ var brainOrgans = _body.GetBodyOrganEntityComps<BrainComponent>(ent);
+ return brainOrgans.Any(brain => HasComp<UnborgableComponent>(brain));
}
Committable suggestion skipped: line range outside the PR's diff.
if (_tagSystem.HasTag(containerSlot.ContainedEntity.Value, "PermissibleForSurgery")) // DeltaV: allow some clothing items to be operated through | ||
continue; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Consider adding validation for the contained entity.
The code assumes the contained entity is valid. Consider adding explicit validation.
if (!containerSlot.ContainedEntity.HasValue)
continue;
+ var containedEntity = containerSlot.ContainedEntity.Value;
+ if (!_entityManager.IsAlive(containedEntity))
+ continue;
+
- if (_tagSystem.HasTag(containerSlot.ContainedEntity.Value, "PermissibleForSurgery"))
+ if (_tagSystem.HasTag(containedEntity, PermissibleForSurgeryTag))
continue;
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
if (_tagSystem.HasTag(containerSlot.ContainedEntity.Value, "PermissibleForSurgery")) // DeltaV: allow some clothing items to be operated through | |
continue; | |
if (!containerSlot.ContainedEntity.HasValue) | |
continue; | |
var containedEntity = containerSlot.ContainedEntity.Value; | |
if (!_entityManager.IsAlive(containedEntity)) | |
continue; | |
if (_tagSystem.HasTag(containedEntity, PermissibleForSurgeryTag)) | |
continue; |
|
||
- type: latheRecipe | ||
id: TankHarness | ||
result: ClothingOuterVestTank | ||
completetime: 2 | ||
materials: | ||
Plastic: 300 | ||
Steel: 100 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
The removed items have active dependencies that need to be addressed:
- AACTablet: Has active system implementation in
Content.Server/_DV/AACTablet/
and UI components - LauncherSyringe: Referenced in weapons (pneumatic cannon) and multiple maps
- MiniSyringe: Referenced in chemistry systems and maps
Please ensure these removals are part of a coordinated change that includes updates to all dependent systems and maps.
🔗 Analysis chain
Verify impact of removed medical items.
While the addition of TankHarness looks good, the removal of AACTablet, LauncherSyringe, and MiniSyringe could impact existing medical gameplay. Please ensure:
- These items are no longer referenced in other systems
- Their removal aligns with the new medical mechanics
- Any dependent crafting recipes or medical procedures have been updated
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for references to removed items
echo "Searching for references to removed items..."
for item in "AACTablet" "LauncherSyringe" "MiniSyringe"; do
echo "References to $item:"
rg -l "$item"
done
Length of output: 1695
Script:
#!/bin/bash
# Check recent changes to medical systems and related files
echo "Checking for related changes in medical systems..."
git log -n 1 --name-only --pretty=format:"" | grep -iE "medical|syringe|tablet|chemistry"
echo -e "\nChecking for potential replacement systems..."
rg -l "(?i)(medical|syringe|tablet).*system" Content.Server/
Length of output: 769
- type: Transform | ||
anchored: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix unanchored transform.
The Transform component is set to anchored: false
, which could lead to unintended movement of the spawner. Consider anchoring it to prevent displacement.
- type: Transform
- anchored: false
+ anchored: true
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
- type: Transform | |
anchored: false | |
- type: Transform | |
anchored: true |
- type: trait | ||
id: Depression | ||
name: trait-depression-name | ||
description: trait-depression-desc | ||
traitGear: PillCanisterNeurozenium | ||
category: Disabilities | ||
components: [] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Depression trait needs components for behavior implementation
All other traits with traitGear in the codebase have specific components that implement their behavior:
- InPain trait has Pain component
- Scottish Accent has ScottishAccent component
- Vision-related traits have PermanentBlindness component
The empty components list for Depression trait is inconsistent with this pattern and may prevent the trait from functioning properly.
🔗 Analysis chain
Depression trait needs components definition.
The Depression trait has traitGear defined but no components. This might cause issues if the trait behavior is expected to be handled by components.
Let's verify if other traits with traitGear have components defined:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for traits with traitGear to verify component patterns
rg "traitGear:" -A 5 "Resources/Prototypes" | grep -E "traitGear:|components:"
Length of output: 895
Script:
#!/bin/bash
# Get full context for traits with traitGear
rg "traitGear:" -B 2 -A 7 "Resources/Prototypes"
Length of output: 3218
|
||
- type: trait | ||
id: Unborgable | ||
name: trait-unborgable-name | ||
description: trait-unborgable-desc | ||
category: Disabilities | ||
components: | ||
- type: Unborgable # Automatically gets moved to the brain |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Update required across multiple systems for InPain removal
The removal of the InPain trait requires coordinated updates in several core systems:
- Pain System (
SharedPainSystem.cs
,InPain.cs
) - Status Effects System (
status_effects.yml
) - Reagent Effect System (EntityEffect implementation)
Please ensure these systems are either updated or removed to maintain consistency.
🔗 Analysis chain
Verify impact of removing InPain trait.
The removal of the InPain trait and addition of Unborgable trait represents a significant gameplay change. Ensure all systems previously depending on InPain trait are updated.
Let's check for any remaining references to the removed traits:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for references to removed traits
echo "Checking for InPain references..."
rg "InPain" -l
echo "Checking for Uncloneable references..."
rg "Uncloneable" -l
echo "Checking for Addicted references..."
rg "Addicted" -l
Length of output: 1294
Script:
#!/bin/bash
# Check implementation details of pain system
echo "=== SharedPainSystem.cs ==="
rg "InPain" -C 5 Content.Shared/_DV/Pain/SharedPainSystem.cs
echo -e "\n=== status_effects.yml ==="
rg "InPain" -C 5 Resources/Prototypes/_DV/status_effects.yml
echo -e "\n=== InPain.cs ==="
cat Content.Server/_DV/EntityEffects/Effects/InPain.cs
Length of output: 1887
Script:
#!/bin/bash
# Check reagent files for InPain references
echo "=== Checking reagent files for InPain effect usage ==="
rg "InPain" Resources/Prototypes/Reagents/ -C 5
echo -e "\n=== Checking DV-specific reagent files ==="
rg "InPain" Resources/Prototypes/_DV/Reagents/ -C 5
Length of output: 319
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi | ||
|
||
- type: entity | ||
parent: [ClothingUniformBase] | ||
id: ClothingUniformFuneralSuitSkirt | ||
name: funeral suitskirt | ||
description: For when no color is allowed and all must be mourned. | ||
components: | ||
- type: Sprite | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi | ||
- type: Clothing | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/funeralsuit.rsi | ||
|
||
- type: entity | ||
parent: [ClothingUniformBase] | ||
id: ClothingUniformNightclubSuitSkirt | ||
name: nightclub suitskirt | ||
description: ID please? | ||
components: | ||
- type: Sprite | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi | ||
- type: Clothing | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/nightclubsuit.rsi | ||
|
||
- type: entity | ||
parent: [ClothingUniformBase] | ||
id: ClothingUniformMrSpaceWideSkirt | ||
name: mr space wide suitskirt | ||
description: The unspoken attire for any hotel, motel, or branded inn activities. | ||
components: | ||
- type: Sprite | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi | ||
- type: Clothing | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/mrspacewide.rsi | ||
|
||
- type: entity | ||
parent: [ClothingUniformBase] | ||
id: ClothingUniformBrownSuitSkirt | ||
name: brown suitskirt | ||
description: Not even the worst coffee spills will show up on this puppy, guaranteed. | ||
components: | ||
- type: Sprite | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi | ||
- type: Clothing | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/brownsuit.rsi | ||
|
||
- type: entity | ||
parent: [ClothingUniformBase] | ||
id: ClothingUniformCreamSuitSkirt | ||
name: cream suitskirt | ||
description: A suit fit for a humble, small town gentleman with something to say. | ||
components: | ||
- type: Sprite | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi | ||
- type: Clothing | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/creamsuit.rsi | ||
|
||
- type: entity | ||
parent: [ClothingUniformBase] | ||
id: ClothingUniformDetectiveSuitSkirt | ||
name: detective suitskirt | ||
description: Now excuse me, if I may just have a moment of your time... | ||
components: | ||
- type: Sprite | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi | ||
- type: Clothing | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/detectivesuit.rsi | ||
|
||
- type: entity | ||
parent: [ClothingUniformBase] | ||
id: ClothingUniformMiamiViceSkirt | ||
name: miami vice suitskirt | ||
description: When you need to arrest the clown at twelve o'clock and boogie board at one. | ||
components: | ||
- type: Sprite | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi | ||
- type: Clothing | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/miamivice.rsi | ||
|
||
- type: entity | ||
parent: [ClothingUniformBase] | ||
id: ClothingUniformSeniorBartenderSkirt | ||
name: senior bartender suitskirt | ||
description: But you are the bartender, you've always been the bartender. | ||
components: | ||
- type: Sprite | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi | ||
- type: Clothing | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/senior_bartender.rsi | ||
|
||
- type: entity | ||
parent: [ClothingUniformBase] | ||
id: ClothingUniformBrosBlazerSkirt | ||
name: BROS blazer and jeans skirt | ||
description: BROS... Two! | ||
components: | ||
- type: Sprite | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi | ||
- type: Clothing | ||
sprite: _Impstation/Clothing/Uniforms/Jumpskirt/brosblazer.rsi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Sprite paths need to be updated with correct prefix
All sprite files exist but the paths in the YAML need to be prefixed with Resources/Textures/
. Please update all sprite paths to match the actual file locations.
Example correction:
- type: Sprite
sprite: Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi
- type: Clothing
sprite: Resources/Textures/_Impstation/Clothing/Uniforms/Jumpskirt/hitmansuit.rsi
🔗 Analysis chain
LGTM! Verify skirt variant sprites.
The skirt variants are properly implemented, mirroring the jumpsuit versions.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify all referenced skirt variant sprite files exist
fd -e rsi "_Impstation/Clothing/Uniforms/Jumpskirt/"
Length of output: 52
Script:
#!/bin/bash
# Check if _Impstation directory exists and look for any .rsi files
fd -e rsi -p "_Impstation/"
# Search for specific sprite names
fd "hitmansuit.rsi|funeralsuit.rsi|nightclubsuit.rsi|mrspacewide.rsi|brownsuit.rsi|creamsuit.rsi|detectivesuit.rsi|miamivice.rsi|senior_bartender.rsi|brosblazer.rsi"
Length of output: 3219
Summary by CodeRabbit
Based on the comprehensive changes, here are the release notes:
New Features
Gameplay Changes
Bug Fixes
Refactors