Skip to content
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

[Feature] Advanced Body Bags / Продвинутые Мешки для Тел #120

Merged

Conversation

PuroSlavKing
Copy link
Member

@PuroSlavKing PuroSlavKing commented Nov 5, 2024

Описание PR

  • Добавлено 5 новых мешков для тел, они печатаются в медфабе.
    • Блюспейс мешок, что логично вмещает в себя больше чем обычные мешки, 1 -> 50.
    • Противорадиационный мешок не позволяет чему-то радиоактивному облучать всё вокруг.
    • Мешок синдиката, вмещает больше обычного, 1 -> 3.
    • Тюремный мешок и мешок НТ не имеют никаких особенностей.
      • Коробка с тюремными мешками появляется в шкафу смотрителя и бригмедика.
      • Коробка с противорадиационными мешками появляется в шкафу НРа.
    • Мешок синдиката (Второй слева) не исследуется, он открывается емагом медфаба.

Медиа

Список

image


Изменения

🆑 PuroSlavKing

  • add: Added 5 new variations of body bags / Добавлено 5 новых вариаций мешков для тел.

Copy link
Contributor

coderabbitai bot commented Nov 5, 2024

Walkthrough

This pull request introduces multiple changes across various localization files, adding new entries for body bags and their respective boxes in both English (US) and Russian. It also updates locker contents in YAML files, introduces new recipes for crafting body bags, and adds metadata files for texture resources. The changes enhance the inventory and crafting systems by providing detailed descriptions and specifications for new items, ensuring consistency in localization and functionality.

Changes

File Path Change Summary
Resources/Locale/en-US/_white/catalog/fills/boxes/medical.ftl Added new entries for body bag boxes: ent-BoxBodyBagBluespace, ent-BoxBodyBagNanoTrasen, ent-BoxBodyBagPrisoner, ent-BoxBodyBagRadiation, ent-BoxBodyBagSyndicate.
Resources/Locale/en-US/_white/entities/objects/specific/medical/bodybags.ftl Added new entries for body bags: BodyBagBluespace, BodyBagBluespaceFolded, BodyBagNanoTrasen, BodyBagNanoTrasenFolded, BodyBagPrisoner, BodyBagPrisonerFolded, BodyBagRadiation, BodyBagRadiationFolded, BodyBagSyndicate, BodyBagSyndicateFolded.
Resources/Locale/ru-RU/_white/catalog/fills/boxes/medical.ftl Added Russian translations for body bag boxes: ent-BoxBodyBagBluespace, ent-BoxBodyBagNanoTrasen, ent-BoxBodyBagPrisoner, ent-BoxBodyBagRadiation, ent-BoxBodyBagSyndicate.
Resources/Locale/ru-RU/_white/object/specific/medical/bodybags.ftl Added Russian entries for body bags: BodyBagBluespace, BodyBagBluespaceFolded, BodyBagNanoTrasen, BodyBagNanoTrasenFolded, BodyBagPrisoner, BodyBagPrisonerFolded, BodyBagRadiation, BodyBagRadiationFolded, BodyBagSyndicate, BodyBagSyndicateFolded.
Resources/Prototypes/Catalog/Fills/Lockers/heads.yml Added and updated locker entities, including new items and modifications to existing ones.
Resources/Prototypes/Catalog/Fills/Lockers/security.yml Updated locker contents, including the addition of BoxBodyBagPrisoner and renaming of LockerBrigmedicFilled.
Resources/Prototypes/Entities/Structures/Machines/lathe.yml Added new entities related to lathes and their functionalities.
Resources/Prototypes/Research/civilianservices.yml Added new recipe unlocks for body bags in research technologies.
Resources/Prototypes/_White/Catalog/Fills/Boxes/medical.yml Introduced new entity definitions for body bag boxes.
Resources/Prototypes/_White/Entities/Objects/Specific/Mech/mech_equipment.yml Added new mech drill entity configuration.
Resources/Prototypes/_White/Entities/Objects/Specific/Medical/bodybags.yml Added new definitions for various body bags.
Resources/Prototypes/_White/Recipes/Lathes/body_bags.yml Introduced new lathe recipes for crafting body bags.
Resources/Textures/_White/Objects/Specific/Medical/BodyBags/bluespace.rsi/meta.json Added metadata for bluespace body bag texture.
Resources/Textures/_White/Objects/Specific/Medical/BodyBags/nanotrasen.rsi/meta.json Added metadata for NanoTrasen body bag texture.
Resources/Textures/_White/Objects/Specific/Medical/BodyBags/prison.rsi/meta.json Added metadata for prisoner body bag texture.
Resources/Textures/_White/Objects/Specific/Medical/BodyBags/radiation.rsi/meta.json Added metadata for radiation body bag texture.
Resources/Textures/_White/Objects/Specific/Medical/BodyBags/syndicate.rsi/meta.json Added metadata for Syndicate body bag texture.

Suggested labels

Changes: Localization, Changes: YML, Changes: Sprite, Status: Needs Review

Suggested reviewers

  • Remuchi

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?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

github-actions bot commented Nov 5, 2024

RSI Diff Bot; head commit 3716e25 merging into 7c4566f
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_White/Objects/Specific/Medical/BodyBags/bluespace.rsi

State Old New Status
bluespacebag Added
bluespacebag_folded Added
label_overlay Added
open_overlay Added

Resources/Textures/_White/Objects/Specific/Medical/BodyBags/nanotrasen.rsi

State Old New Status
label_overlay Added
ntbag Added
ntbag_folded Added
open_overlay Added

Resources/Textures/_White/Objects/Specific/Medical/BodyBags/prison.rsi

State Old New Status
label_overlay Added
open_overlay Added
prisonerbag Added
prisonerbag_folded Added

Resources/Textures/_White/Objects/Specific/Medical/BodyBags/radiation.rsi

State Old New Status
label_overlay Added
open_overlay Added
radiationbag Added
radiationbag_folded Added

Resources/Textures/_White/Objects/Specific/Medical/BodyBags/syndicate.rsi

State Old New Status
label_overlay Added
open_overlay Added
syndicatebag Added
syndicatebag_folded Added

Edit: diff updated after 3716e25

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

🧹 Outside diff range and nitpick comments (13)
Resources/Locale/en-US/_white/catalog/fills/boxes/medical.ftl (2)

1-2: Maintain consistent capitalization for "Bluespace".

The term "Bluespace" should be capitalized as it's a proper noun in the game's universe.

-ent-BoxBodyBagBluespace = bluespace body bag box  
+ent-BoxBodyBagBluespace = Bluespace body bag box  

1-10: Consider customizing descriptions to reflect special features.

Currently, all boxes share the same generic description (ent-BoxBodyBag.desc). Consider adding unique descriptions that highlight the special features of each type:

  • Bluespace bag's 50-unit capacity
  • Radiation-resistant properties
  • Syndicate bag's 3-unit capacity

Example for Bluespace bag:

 ent-BoxBodyBagBluespace = Bluespace body bag box  
-    .desc = { ent-BoxBodyBag.desc }  
+    .desc = A box containing body bags enhanced with bluespace technology, capable of storing up to 50 units.
Resources/Locale/ru-RU/_white/catalog/fills/boxes/medical.ftl (1)

9-10: Consider revising the translation for Syndicate bag box.

The current translation "красных мешков" (red bags) might not accurately convey that these are Syndicate bags. Consider using "синдикатских мешков" instead to maintain consistency with the faction naming.

-ent-BoxBodyBagSyndicate = коробка красных мешков для тел
+ent-BoxBodyBagSyndicate = коробка синдикатских мешков для тел
Resources/Prototypes/_White/Entities/Objects/Specific/Mech/mech_equipment.yml (1)

1-5: Enhance the description to be more informative.

The current description is quite basic. Consider adding more details about the drill's capabilities, such as its effectiveness against different materials or its intended use cases.

- description: Gives the mech the ability to drill.
+ description: A heavy-duty mechanical drill attachment that enables mechs to bore through solid materials and engage in mining operations. Effective against structural elements.
Resources/Prototypes/_White/Recipes/Lathes/body_bags.yml (2)

17-22: Consider differentiating prisoner bag from NT bag.

Both the prisoner bag and NT bag have identical recipes (300 Plastic, 3 time units) and no special features. Consider either:

  1. Merging them into a single basic bag type
  2. Adding distinctive characteristics to justify separate recipes

24-30: Consider increasing completion time for radiation-resistant bag.

While the material costs are appropriate (especially the use of Uranium for radiation resistance), the completion time (3) is the same as basic bags. Consider increasing it to reflect the advanced nature of this specialized bag.

  completetime: 3
+  completetime: 4
Resources/Locale/en-US/_white/entities/objects/specific/medical/bodybags.ftl (1)

6-11: Clarify NT abbreviation in display name.

The entity ID uses "NanoTrasen" but the display name uses just "blue body bag". Consider being explicit about it being a NanoTrasen bag for clarity.

-ent-BodyBagNanoTrasen = blue body bag
+ent-BodyBagNanoTrasen = NanoTrasen body bag
Resources/Locale/ru-RU/_white/object/specific/medical/bodybags.ftl (2)

1-5: Capitalize "Блюспейс" in the Russian translation

In Russian game translations, "Блюспейс" is typically capitalized as it's considered a proper noun.

-ent-BodyBagBluespace = блюспейс мешок для тела
+ent-BodyBagBluespace = Блюспейс мешок для тела

12-16: Improve Russian phrasing for prison facilities

The phrase "в тюремных структурах" sounds unnatural in Russian.

-    .desc = Пластиковый мешок, предназначенный для хранения и транспортировки трупов, и предотвращения их гниения в тюремных структурах.
+    .desc = Пластиковый мешок, предназначенный для хранения и транспортировки трупов, и предотвращения их гниения в тюремных учреждениях.
Resources/Prototypes/_White/Catalog/Fills/Boxes/medical.yml (1)

1-89: Consider enhancing descriptions to differentiate box types.

The description "Contains body bags." is identical for all box types and doesn't communicate the unique properties of each bag type (e.g., bluespace's larger capacity, radiation resistance). This could lead to confusion for players.

Consider applying this pattern for descriptions:

- description: Contains body bags.
+ description: Contains bluespace body bags capable of holding up to 50 units.

Similar descriptive text should be added for other specialized bags.

Resources/Prototypes/_White/Entities/Objects/Specific/Medical/bodybags.yml (2)

33-64: Consider renaming for consistency with description.

The entity is named "blue body bag" but the description refers to it as an "NT bag". Consider renaming to "NT body bag" or "NanoTrasen body bag" for better clarity and consistency with the description.

-  name: blue body bag
+  name: NT body bag

1-161: Consider implementing an abstract base entity for specialized bags.

While the current implementation is functional, consider creating an abstract base entity for specialized body bags that extends BodyBag. This would help reduce duplication in common components (Sprite layers, EntityStorage, etc.) and make it easier to maintain consistent behavior across variants.

Example structure:

- type: entity
  id: SpecializedBodyBagBase
  abstract: true
  parent: BodyBag
  components:
  - type: Sprite
    layers:
    - map: ["unfoldedLayer", "enum.StorageVisualLayers.Base"]
    - map: ["foldedLayer"]
      visible: false
    - map: ["enum.StorageVisualLayers.Door"]
    - map: ["enum.BodyBagVisualLayers.Label"]

Then each specialized bag would only need to define its unique properties.

Resources/Prototypes/Catalog/Fills/Lockers/security.yml (1)

29-29: LGTM, but please clarify the comment.

The addition of prison body bags to warden lockers aligns with the PR objectives. However, the comment # WD needs clarification - consider using a more descriptive comment.

Also applies to: 58-58

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 7c4566f and 549e914.

⛔ Files ignored due to path filters (20)
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/bluespace.rsi/bluespacebag.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/bluespace.rsi/bluespacebag_folded.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/bluespace.rsi/label_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/bluespace.rsi/open_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/nanotrasen.rsi/label_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/nanotrasen.rsi/ntbag.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/nanotrasen.rsi/ntbag_folded.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/nanotrasen.rsi/open_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/prison.rsi/label_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/prison.rsi/open_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/prison.rsi/prisonerbag.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/prison.rsi/prisonerbag_folded.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/radiation.rsi/label_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/radiation.rsi/open_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/radiation.rsi/radiationbag.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/radiation.rsi/radiationbag_folded.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/syndicate.rsi/label_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/syndicate.rsi/open_overlay.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/syndicate.rsi/syndicatebag.png is excluded by !**/*.png
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/syndicate.rsi/syndicatebag_folded.png is excluded by !**/*.png
📒 Files selected for processing (17)
  • Resources/Locale/en-US/_white/catalog/fills/boxes/medical.ftl (1 hunks)
  • Resources/Locale/en-US/_white/entities/objects/specific/medical/bodybags.ftl (1 hunks)
  • Resources/Locale/ru-RU/_white/catalog/fills/boxes/medical.ftl (1 hunks)
  • Resources/Locale/ru-RU/_white/object/specific/medical/bodybags.ftl (1 hunks)
  • Resources/Prototypes/Catalog/Fills/Lockers/heads.yml (2 hunks)
  • Resources/Prototypes/Catalog/Fills/Lockers/security.yml (4 hunks)
  • Resources/Prototypes/Entities/Structures/Machines/lathe.yml (1 hunks)
  • Resources/Prototypes/Research/civilianservices.yml (2 hunks)
  • Resources/Prototypes/_White/Catalog/Fills/Boxes/medical.yml (1 hunks)
  • Resources/Prototypes/_White/Entities/Objects/Specific/Mech/mech_equipment.yml (1 hunks)
  • Resources/Prototypes/_White/Entities/Objects/Specific/Medical/bodybags.yml (1 hunks)
  • Resources/Prototypes/_White/Recipes/Lathes/body_bags.yml (1 hunks)
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/bluespace.rsi/meta.json (1 hunks)
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/nanotrasen.rsi/meta.json (1 hunks)
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/prison.rsi/meta.json (1 hunks)
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/radiation.rsi/meta.json (1 hunks)
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/syndicate.rsi/meta.json (1 hunks)
✅ Files skipped from review due to trivial changes (5)
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/bluespace.rsi/meta.json
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/nanotrasen.rsi/meta.json
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/prison.rsi/meta.json
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/radiation.rsi/meta.json
  • Resources/Textures/_White/Objects/Specific/Medical/BodyBags/syndicate.rsi/meta.json
🔇 Additional comments (24)
Resources/Locale/ru-RU/_white/catalog/fills/boxes/medical.ftl (1)

1-10: Verify the existence of the base description reference.

All entries reference ent-BoxBodyBag.desc for their descriptions. Let's verify that this base description exists in the localization files.

✅ Verification successful

Let me search for the base description in other localization files to ensure we find the actual description text.


Base description reference exists and is properly defined

The base description ent-BoxBodyBag.desc is defined in Resources/Locale/ru-RU/prototypes/catalog/fills/boxes/medical.ftl with the text "Содержит мешки для тел." All variant boxes correctly reference this base description, making the localization structure consistent and properly maintained.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for the base body bag box description in all localization files
rg "ent-BoxBodyBag =" "Resources/Locale"
rg "BoxBodyBag\.desc" "Resources/Locale"

Length of output: 1177


Script:

#!/bin/bash
# Search for the base body bag box description in all localization files
rg "ent-BoxBodyBag =" "Resources/Locale" -A 1

Length of output: 253

Resources/Prototypes/_White/Entities/Objects/Specific/Mech/mech_equipment.yml (1)

17-18: Standardize the audio path format.

The audio path uses forward slashes which might cause compatibility issues. Consider using a consistent path format across the codebase.

Resources/Prototypes/_White/Recipes/Lathes/body_bags.yml (2)

1-8: Well-balanced recipe for the bluespace body bag.

The resource costs and completion time are appropriately scaled for a high-capacity (50 units) bag. The use of exotic materials (Silver, Uranium) aligns well with bluespace technology.


10-15: LGTM! Standard recipe for basic NT bag.

The resource cost and completion time are appropriate for a basic body bag without special features.

Resources/Locale/en-US/_white/entities/objects/specific/medical/bodybags.ftl (1)

1-27: Verify string references in game code.

The localization strings use entity IDs (e.g., ent-BodyBagBluespace). Let's verify these match the actual entity definitions in the game code.

✅ Verification successful

All entity IDs in the localization file match their corresponding prototypes

The entity IDs in the localization file (bodybags.ftl) perfectly match the prototype definitions found in Resources/Prototypes/_White/Entities/Objects/Specific/Medical/bodybags.yml. All variants (Bluespace, NanoTrasen, Prisoner, Radiation, and Syndicate) and their folded counterparts are properly defined with matching IDs, names, and descriptions.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for entity definitions matching the localization keys
echo "Searching for entity definitions..."
rg "id: BodyBag(Bluespace|NanoTrasen|Prisoner|Radiation|Syndicate)" -A 5

Length of output: 8835

Resources/Locale/ru-RU/_white/object/specific/medical/bodybags.ftl (3)

6-11: LGTM!

The NanoTrasen bag translations follow proper Russian localization standards and use the correct abbreviation "НТ".


17-21: LGTM!

The radiation bag translations use correct Russian scientific terminology and proper localization patterns.


22-27: LGTM!

The Syndicate bag translations maintain consistency in terminology and follow proper Russian localization patterns.

Resources/Prototypes/_White/Catalog/Fills/Boxes/medical.yml (4)

19-36: LGTM! Configuration aligns with requirements.

The NanoTrasen body bag box configuration is appropriate for a standard variant with no special features.


37-54: Verify prisoner bag box placement in lockers.

The box configuration is correct, but we should verify that it's properly placed in the warden's and brig physician's lockers as specified in the PR objectives.

#!/bin/bash
# Search for warden and brig physician locker configurations
rg -A 10 "BoxBodyBagPrisoner" # Search for box placement in locker contents

1-18: Verify bluespace bag capacity configuration.

The box configuration looks correct, but we should verify that the referenced BodyBagBluespaceFolded entity is configured with the 50-unit capacity mentioned in the PR objectives.

✅ Verification successful

Let me search for the actual entity definition to verify the capacity configuration.


Let me check the specific file content for the bluespace body bag entity.


Bluespace body bag capacity is correctly configured

The BodyBagBluespace entity is properly configured with a capacity of 50 units as required in the PR objectives:

- type: EntityStorage
  capacity: 50

This configuration is inherited by the folded variant (BodyBagBluespaceFolded) which is used in the box.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for the BodyBagBluespace entity definition to verify its capacity
rg -A 10 "BodyBagBluespace[^F]" # Search for unfolded variant

Length of output: 5795


Script:

#!/bin/bash
# Search for BodyBagBluespace entity definition
rg -l "BodyBagBluespace" Resources/Prototypes/

# Then look for capacity/storage configuration
ast-grep --pattern 'id: BodyBagBluespace
  $$$
  components:
    $$$'

Length of output: 310


Script:

#!/bin/bash
# Check the bodybags.yml content
cat "Resources/Prototypes/_White/Entities/Objects/Specific/Medical/bodybags.yml"

Length of output: 4625


73-89: ⚠️ Potential issue

Missing emag restriction for Syndicate box.

According to PR objectives, the Syndicate body bag should only be accessible via emag on the medical fabricator. However, there's no restriction mechanism defined here. This could allow unauthorized access to Syndicate bags.

Additionally, verify that the BodyBagSyndicateFolded entity is configured with the correct 3-unit capacity:

Resources/Prototypes/_White/Entities/Objects/Specific/Medical/bodybags.yml (3)

1-32: LGTM! Bluespace bag implementation matches requirements.

The implementation correctly defines a high-capacity (50 units) body bag with proper sprite layers and folded variant, matching the PR objectives.


65-96: LGTM! Prisoner bag implementation is correct.

The implementation provides a standard body bag with proper sprite layers and folded variant, matching the PR objectives.


97-130: ```shell
#!/bin/bash

Search for radiation-related code to understand the significance of resistance values

rg -g '!.yml' -g '!.yaml' "RadiationBlockingContainer" -A 5 -B 5


```shell
#!/bin/bash
# Look for any radiation system configuration files
fd -e yml -e yaml | xargs rg "radiation" -l | xargs cat
#!/bin/bash
# Search for radiation resistance values in tests or documentation
rg "radiation.*resistance" -A 3 -B 3
Resources/Prototypes/Research/civilianservices.yml (2)

134-136: LGTM! Appropriate technology placement for basic body bag variants.

The placement of NT, Prisoner, and Radiation body bags in the BiochemicalStasis technology (Tier 2) is logical, as it aligns with the technology's focus on biological preservation and stasis.


235-235: LGTM! Verify bluespace capacity implementation.

The placement of BluespaceBodyBag in the BluespaceChemistry technology (Tier 3) is appropriate given its advanced storage capabilities.

Let's verify the implementation of the 50-unit capacity mentioned in the PR objectives:

✅ Verification successful

Verified: BluespaceBodyBag has 50-unit storage capacity

Found the implementation in Resources/Prototypes/_White/Entities/Objects/Specific/Medical/bodybags.yml which confirms the 50-unit capacity:

- type: EntityStorage
  capacity: 50

This matches the PR objectives and is appropriately placed in Tier 3 BluespaceChemistry technology.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the bluespace body bag capacity implementation
# Expected: Find the entity definition with storage component showing capacity of 50

# Search for the bluespace body bag entity definition
rg -A 10 "BluespaceBodyBag:" 

Length of output: 28


Script:

#!/bin/bash
# Let's try different search patterns and locations

# Search for BluespaceBodyBag in all yml files
fd -e yml -x rg -l "BluespaceBodyBag"

# Search for any mentions of BluespaceBodyBag
rg "BluespaceBodyBag"

# Search for body bag related entities that might contain the implementation
rg -i "bodybag" -A 10

Length of output: 88904

Resources/Prototypes/Catalog/Fills/Lockers/security.yml (3)

142-142: LGTM on body bag additions.

The addition of prison body bags to both regular and hardsuit corpsman lockers aligns with the PR objectives.

Also applies to: 176-176


142-142: Verify terminology change impact.

The change from "brigmedic" to "corpsman" appears to be a significant terminology update. Please ensure this change is consistently applied across all related files (localization, documentation, etc.).

#!/bin/bash
# Search for any remaining instances of "brigmedic" to ensure consistent renaming
rg -i "brigmedic"

Also applies to: 176-176


Line range hint 1-1: Verify implementation of all body bag types.

The PR objectives mention 5 new body bag types (Bluespace, Radiation-Resistant, Syndicate, Prison, and NT bags) but this file only shows the distribution of prison bags. Please ensure:

  1. The radiation-resistant bags are properly added to NR's locker (likely in a different file)
  2. The Syndicate bag's emag-only restriction is implemented in the fabricator
  3. The remaining bag types (Bluespace and NT) have appropriate distribution methods
✅ Verification successful

The previous search was interrupted. Let's try a more focused search to find body bag related content in YAML files specifically, which is where entity definitions and fabricator contents are typically defined.


All body bag types are properly implemented and distributed

The search results confirm that all 5 new body bag types mentioned in the PR are properly implemented and distributed:

  1. Prison bags: Added to security lockers (BoxBodyBagPrisoner in security.yml)
  2. Radiation-resistant bags: Added to heads' lockers (BoxBodyBagRadiation in heads.yml)
  3. Syndicate bags: Available in lathe with emag restriction (SyndicateBodyBag in lathe.yml)
  4. Bluespace bags: Available in medical lathe (BluespaceBodyBag in lathe.yml)
  5. NT bags: Available in medical lathe (NTBodyBag in lathe.yml)

All body bag types have their corresponding entity definitions in _White/Entities/Objects/Specific/Medical/bodybags.yml and recipes in _White/Recipes/Lathes/body_bags.yml.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for other body bag definitions and distributions
echo "Searching for body bag definitions..."
rg -i "bodybag"

echo "Searching for fabricator definitions..."
rg -i "fabricator.*emag"

Length of output: 23818


Script:

#!/bin/bash
# Search for body bag related definitions and distributions
echo "Searching for body bag definitions..."
rg -i "bodybag" --type yaml

echo "Searching for fabricator definitions that might contain body bags..."
rg -i "fabricator.*contents" --type yaml

Length of output: 12152

Resources/Prototypes/Catalog/Fills/Lockers/heads.yml (2)

273-273: LGTM! The addition of radiation-resistant body bags to Research Director's lockers is appropriate.

The placement of radiation-resistant body bag boxes in the Research Director's lockers aligns well with their role in handling potentially hazardous materials. The consistency between both hardsuit and non-hardsuit variants is maintained.

Let's verify the radiation-resistant body bag implementation:

Also applies to: 296-296

✅ Verification successful

Radiation-resistant body bag implementation verified and properly configured

The radiation-resistant body bag is correctly implemented with:

  • A RadiationBlockingContainer component with resistance value of 5
  • Proper entity definitions for both unfolded (BodyBagRadiation) and folded (BodyBagRadiationFolded) states
  • Appropriate sprite and visual configurations
  • Box container entity (BoxBodyBagRadiation) for storage and distribution

The addition to the Research Director's lockers is appropriate given the radiation protection feature.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the radiation-resistant body bag implementation
# Test 1: Check if the body bag entity and its box are properly defined
rg -l "BoxBodyBagRadiation"
rg -l "BodyBagRadiation"

# Test 2: Check if the radiation-resistant property is implemented
ast-grep --pattern 'component:
  type: RadiationBlocker'

Length of output: 130


Script:

#!/bin/bash
# Let's try a different approach to verify the implementation

# Check for body bag and box definitions in prototypes
fd -e yml -e yaml | xargs rg "BoxBodyBagRadiation|BodyBagRadiation" -A 5

# Check for radiation-related components and entities
fd -e yml -e yaml | xargs rg "RadiationBlocker|radiation.*resist" -i -A 5

Length of output: 77083


Script:

#!/bin/bash
# Let's verify the radiation-resistant body bag implementation in more detail

# Check for the radiation-resistant body bag entity definition
fd -e yml -e yaml | xargs rg "BodyBagRadiation:$" -A 10

# Check for any radiation-related components in the body bag
fd -e yml -e yaml | xargs rg "parent: BodyBagRadiation" -B 10 -A 10

Length of output: 2166


273-273: Verify placement of radiation-resistant body bags.

The PR objectives mention that radiation-resistant bags should be in the "NR's locker", but they are currently implemented in the Research Director's locker. Please clarify if this is intentional or if the placement needs to be adjusted.

Let's check for NR's locker definition:

Also applies to: 296-296

Resources/Prototypes/Entities/Structures/Machines/lathe.yml (2)

1030-1033: LGTM! New body bag recipes added correctly.

The new body bag recipes are properly added to the MedicalTechFab's dynamicRecipes section, maintaining alphabetical order.


1034-1036: LGTM! Syndicate body bag correctly restricted to emagged fabricators.

The SyndicateBodyBag recipe is properly added to emagDynamicRecipes, ensuring it's only available when the medical fabricator is emagged, which aligns with the specified requirements.

Copy link
Member

@Spatison Spatison left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну тут два файла убрать и можно мержить

@PuroSlavKing
Copy link
Member Author

Merge my fucking PR 🐩

@PuroSlavKing PuroSlavKing changed the title [Feature] Advanced Body Bags [Feature] Advanced Body Bags / Продвинутые Мешки для Тел Nov 9, 2024
@DVOniksWyvern
Copy link
Collaborator

False-positive на тесте, карта запустилась по итогам на дебаге. Мержу.

@DVOniksWyvern DVOniksWyvern merged commit 8e92f15 into WWhiteDreamProject:master Nov 14, 2024
11 of 12 checks passed
@PuroSlavKing PuroSlavKing deleted the AdvancedBodyBags branch November 14, 2024 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants