-
Notifications
You must be signed in to change notification settings - Fork 18
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
[Port] Gondola / Гондола #96
Conversation
WalkthroughThis pull request introduces multiple localization changes across various files for both English (US) and Russian languages. New entries are added to localization files for roles, reagents, and items, specifically enhancing support for a "Gondola" entity and its associated effects. The changes include new strings for descriptions and names, updates to existing entries, and the introduction of new entities related to the gondola theme. Changes
Possibly related PRs
Suggested reviewers
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
💤 Files with no reviewable changes (1)
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 a8cb741 merging into 4b6a3dd Resources/Textures/_White/Mobs/Animals/gondola.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: 15
🧹 Outside diff range and nitpick comments (9)
Resources/Locale/en-US/_white/reagents/tranquility.ftl (1)
1-1
: Consider enhancing the effect description.The localization string is grammatically correct and follows proper Fluent format. However, consider making it more descriptive about the actual gameplay effects for better player understanding.
Consider one of these alternatives:
-tranquility-effect = You feel strangely calm... +tranquility-effect = You feel strangely calm, all your worries melting away...or
-tranquility-effect = You feel strangely calm... +tranquility-effect = A wave of tranquility washes over you...Also, consider adding a translator comment to provide context:
+# Effect shown when a character is affected by the tranquility reagent tranquility-effect = You feel strangely calm...
Resources/Prototypes/_White/Accents/full_replacements.yml (2)
1-4
: Add documentation for the accent configuration.While the accent configuration is structurally correct, it would be helpful to add a comment explaining the purpose of this gondola accent and how it affects the text replacement.
- type: accent id: gondola + # Defines text replacements for the gondola character's speech pattern fullReplacements: - accent-words-gondola-1
5-5
: Remove extra empty lines at the end of the file.The file contains multiple empty lines at the end. It's recommended to keep only one newline at the end of the file.
- type: accent id: gondola fullReplacements: - accent-words-gondola-1 - - +Resources/Locale/en-US/_white/reagents/meta/fun.yml (1)
1-2
: Add newline at end of file.The localization strings look good, but please add a newline at the end of the file to follow YAML best practices.
reagent-name-tranquility = tranquility -reagent-desc-tranquility = Emits a strange aura of tranquility... +reagent-desc-tranquility = Emits a strange aura of tranquility... +🧰 Tools
🪛 yamllint
[error] 2-2: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Catalog/Fills/Crates/npc.yml (1)
9-9
: Add newline at end of file.Add a newline character at the end of the file to comply with YAML standards.
- id: MobGondola +
🧰 Tools
🪛 yamllint
[error] 9-9: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Entities/Markers/Spawners/mobs.yml (1)
1-13
: Fix YAML formatting issues.There are a few formatting issues to address:
- Incorrect indentation in the lists (lines 8 and 13 should use 4 spaces)
- Missing newline at end of file
Apply this diff to fix the formatting:
- type: entity parent: MarkerBase id: SpawnMobGondola name: Gondola spawner components: - type: Sprite layers: - - state: green - - sprite: _White/Mobs/Animals/gondola.rsi + - state: green + - sprite: _White/Mobs/Animals/gondola.rsi state: icon - type: ConditionalSpawner prototypes: - - MobGondola + - MobGondola +🧰 Tools
🪛 yamllint
[warning] 8-8: wrong indentation: expected 4 but found 6
(indentation)
[warning] 13-13: wrong indentation: expected 4 but found 6
(indentation)
[error] 13-13: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Entities/Objects/Consumable/Food/meat.yml (2)
32-32
: Complete the item description.The description ends with an ellipsis, suggesting it's incomplete. Please provide a complete and meaningful description.
6-7
: Consider the ethical implications and game rating impact.The implementation of consumable Gondola meat, especially with descriptions like "You're a monster", might affect the game's rating or player experience. Consider:
- Adding content warnings if necessary
- Reviewing the feature against the game's target age rating
- Providing alternative gameplay paths
Also applies to: 31-32
Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl (1)
28-29
: Consider using proper Russian quotation marks.The implementation looks good, but consider using proper Russian quotation marks («Спокойствие») instead of straight quotes ("Спокойствие") for better localization.
-uplink-gondola-desc = Ящик, содержащий одну стандартную Гондолу. Мясо Гондолы содержит реагент "Спокойствие". +uplink-gondola-desc = Ящик, содержащий одну стандартную Гондолу. Мясо Гондолы содержит реагент «Спокойствие».
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
⛔ Files ignored due to path filters (11)
Resources/Audio/_White/Voice/Gondola/ehh.ogg
is excluded by!**/*.ogg
Resources/Audio/_White/Voice/Gondola/ehh2.ogg
is excluded by!**/*.ogg
Resources/Audio/_White/Voice/Gondola/ehh3.ogg
is excluded by!**/*.ogg
Resources/Textures/_White/Mobs/Animals/gondola.rsi/gondola_body_long.png
is excluded by!**/*.png
Resources/Textures/_White/Mobs/Animals/gondola.rsi/gondola_body_medium.png
is excluded by!**/*.png
Resources/Textures/_White/Mobs/Animals/gondola.rsi/gondola_body_short.png
is excluded by!**/*.png
Resources/Textures/_White/Mobs/Animals/gondola.rsi/gondola_moustache_large.png
is excluded by!**/*.png
Resources/Textures/_White/Mobs/Animals/gondola.rsi/gondola_moustache_large_short.png
is excluded by!**/*.png
Resources/Textures/_White/Mobs/Animals/gondola.rsi/gondola_moustache_small.png
is excluded by!**/*.png
Resources/Textures/_White/Mobs/Animals/gondola.rsi/gondola_moustache_small_short.png
is excluded by!**/*.png
Resources/Textures/_White/Mobs/Animals/gondola.rsi/icon.png
is excluded by!**/*.png
📒 Files selected for processing (29)
- Resources/Locale/en-US/_white/ghost/roles/ghost-role-component.ftl (1 hunks)
- Resources/Locale/en-US/_white/reagents/meta/fun.yml (1 hunks)
- Resources/Locale/en-US/_white/reagents/tranquility.ftl (1 hunks)
- Resources/Locale/en-US/_white/store/uplink-catalog.ftl (1 hunks)
- Resources/Locale/ru-RU/_white/ghost/roles/ghost-role-component.ftl (1 hunks)
- Resources/Locale/ru-RU/_white/prototypes/catalog/fills/crates/npc.yml (1 hunks)
- Resources/Locale/ru-RU/_white/prototypes/entities/markers/spawners/mobs.ftl (1 hunks)
- Resources/Locale/ru-RU/_white/prototypes/entities/mobs/npcs/gondola.ftl (1 hunks)
- Resources/Locale/ru-RU/_white/prototypes/entities/objects/сonsumable/food/meat.ftl (1 hunks)
- Resources/Locale/ru-RU/_white/reagents/fun.ftl (0 hunks)
- Resources/Locale/ru-RU/_white/reagents/meta/fun.yml (1 hunks)
- Resources/Locale/ru-RU/_white/reagents/meta/physical-desc.ftl (0 hunks)
- Resources/Locale/ru-RU/_white/reagents/tranquility.ftl (1 hunks)
- Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl (1 hunks)
- Resources/Locale/ru-RU/prototypes/white/entities/markers/spawners/mobs.ftl (0 hunks)
- Resources/Locale/ru-RU/prototypes/white/entities/objects/consumable/food/meat.ftl (0 hunks)
- Resources/Prototypes/_White/Accents/full_replacements.yml (1 hunks)
- Resources/Prototypes/_White/Catalog/Fills/Crates/npc.yml (1 hunks)
- Resources/Prototypes/_White/Catalog/uplink_catalog.yml (1 hunks)
- Resources/Prototypes/_White/Entities/Markers/Spawners/mobs.yml (1 hunks)
- Resources/Prototypes/_White/Entities/Mobs/NPCs/gondola.yml (1 hunks)
- Resources/Prototypes/_White/Entities/Objects/Consumable/Food/meat.yml (1 hunks)
- Resources/Prototypes/_White/Palettes/brown.yml (1 hunks)
- Resources/Prototypes/_White/Polymorphs/polymorph.yml (1 hunks)
- Resources/Prototypes/_White/Reagents/fun.yml (1 hunks)
- Resources/Prototypes/_White/Recipes/Construction/Graphs/food/steak.yml (1 hunks)
- Resources/Prototypes/_White/Voice/speech_sounds.yml (1 hunks)
- Resources/Prototypes/_White/Voice/speech_verbs.yml (1 hunks)
- Resources/Textures/_White/Mobs/Animals/gondola.rsi/meta.json (1 hunks)
💤 Files with no reviewable changes (4)
- Resources/Locale/ru-RU/_white/reagents/fun.ftl
- Resources/Locale/ru-RU/_white/reagents/meta/physical-desc.ftl
- Resources/Locale/ru-RU/prototypes/white/entities/markers/spawners/mobs.ftl
- Resources/Locale/ru-RU/prototypes/white/entities/objects/consumable/food/meat.ftl
✅ Files skipped from review due to trivial changes (5)
- Resources/Locale/en-US/_white/ghost/roles/ghost-role-component.ftl
- Resources/Locale/ru-RU/_white/ghost/roles/ghost-role-component.ftl
- Resources/Locale/ru-RU/_white/prototypes/entities/markers/spawners/mobs.ftl
- Resources/Locale/ru-RU/_white/prototypes/entities/mobs/npcs/gondola.ftl
- Resources/Textures/_White/Mobs/Animals/gondola.rsi/meta.json
🧰 Additional context used
🪛 yamllint
Resources/Locale/en-US/_white/reagents/meta/fun.yml
[error] 2-2: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Locale/ru-RU/_white/prototypes/catalog/fills/crates/npc.yml
[error] 2-2: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Locale/ru-RU/_white/reagents/meta/fun.yml
[error] 2-2: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Catalog/Fills/Crates/npc.yml
[error] 9-9: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Catalog/uplink_catalog.yml
[warning] 121-121: wrong indentation: expected 4 but found 2
(indentation)
[error] 121-121: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Entities/Markers/Spawners/mobs.yml
[warning] 8-8: wrong indentation: expected 4 but found 6
(indentation)
[warning] 13-13: wrong indentation: expected 4 but found 6
(indentation)
[error] 13-13: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Entities/Objects/Consumable/Food/meat.yml
[error] 54-54: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Palettes/brown.yml
[error] 8-8: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Polymorphs/polymorph.yml
[error] 11-11: no new line character at the end of file
(new-line-at-end-of-file)
🔇 Additional comments (32)
Resources/Locale/ru-RU/_white/reagents/tranquility.ftl (1)
1-1
: LGTM! Translation is accurate and properly formatted.The Russian translation is grammatically correct and accurately conveys the same meaning as its English counterpart ("You feel strangely calm..."). The FTL syntax is correct, and Cyrillic characters are properly encoded.
Resources/Locale/ru-RU/_white/reagents/meta/fun.yml (1)
1-2
: LGTM! Translations are accurate and consistent.The Russian translations for the tranquility reagent are correctly implemented:
- "спокойствие" is the accurate translation for "tranquility"
- The description maintains the mystical tone of the original while being naturally expressed in Russian
Let's verify the consistency with English locale:
✅ Verification successful
Translations are accurate and consistent with English locale
The verification confirms that the Russian translations perfectly match their English counterparts in both structure and meaning:
- English: "tranquility" → Russian: "спокойствие"
- English: "Emits a strange aura of tranquility..." → Russian: "Излучает странную ауру спокойствия..."
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the English locale has corresponding entries rg "reagent-(name|desc)-tranquility" "Resources/Locale/en-US/_white/reagents/meta/"Length of output: 292
🧰 Tools
🪛 yamllint
[error] 2-2: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Palettes/brown.yml (1)
1-8
: LGTM! Well-structured color palette definition.The palette is well-organized with clear naming and appropriate color values that provide a good range of brown shades, which should work well for the Gondola feature.
🧰 Tools
🪛 yamllint
[error] 8-8: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Locale/ru-RU/_white/prototypes/entities/objects/сonsumable/food/meat.ftl (2)
1-2
: Verify if the moral judgment in description is intentional.The description "Ты чудовище" (You are a monster) implies a strong moral judgment. Please confirm if this aligns with the intended narrative and game design for the Gondola feature.
3-4
: Check if the ellipsis is intentional.The description ends with an ellipsis ("..."), which might suggest incomplete text. Please verify if this is intentional or if the description should be completed.
✅ Verification successful
Based on the search results, I can see that ellipsis ("...") is commonly used in descriptions across the codebase for various entities, items, and messages. The usage appears to be a deliberate stylistic choice to convey trailing off, uncertainty, or suspense in descriptions. This is particularly evident in similar food item descriptions like:
- "Приготовленное мясо Гондолы..." (Cooked Gondola meat...)
- "Он смотрит на тебя в ответ..." (It stares back at you...)
- "Пахнет медью... это кость?" (Smells like copper... is that a bone?)
Let me generate the final response:
The ellipsis in the Gondola steak description is intentional and consistent with the game's style
The use of ellipsis in "Приготовленное мясо Гондолы..." follows a common stylistic pattern throughout the codebase where descriptions trail off to create suspense or uncertainty, particularly for unusual food items.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for similar usage of ellipsis in other descriptions rg -g "*.ftl" "\.{3}" Resources/Locale/Length of output: 63858
Resources/Prototypes/_White/Voice/speech_verbs.yml (2)
1-6
: LGTM! The YAML structure is well-formed.The speech verb definition follows the correct format with all required fields properly defined.
3-6
: Verify localization keys exist.Let's ensure the localization keys are properly defined in both en-US and ru-RU locale files.
✅ Verification successful
Let me generate additional scripts to check for these localization keys in the locale files specifically, as the current results only show their presence in the speech_verbs.yml file.
This script will:
- First find all .ftl locale files (which are commonly used for localization)
- Then search for our specific keys within the locale directory
This will help us verify if these keys are properly defined in the localization files.
All localization keys are properly defined in ru-RU locale files
The verification shows that all three required localization keys are defined in
Resources/Locale/ru-RU/_white/chat/managers/chat-manager.ftl
:
- chat-speech-verb-name-gondola = "Гондола"
- chat-speech-verb-gondola-1 = "уставляется взглядом"
- chat-speech-verb-gondola-2 = "тяжело дышит"
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check if the localization keys exist in both locale files # Expected: All three keys should be found in both locale files # Define the keys to search for keys=( "chat-speech-verb-name-gondola" "chat-speech-verb-gondola-1" "chat-speech-verb-gondola-2" ) echo "Searching for localization keys..." for key in "${keys[@]}"; do echo "Checking key: $key" rg "$key" --type yaml doneLength of output: 922
Script:
#!/bin/bash # Search specifically in locale directories for these keys echo "Searching for locale files first..." fd "\.ftl$" Resources/Locale echo -e "\nChecking content of locale files for the keys..." keys=( "chat-speech-verb-name-gondola" "chat-speech-verb-gondola-1" "chat-speech-verb-gondola-2" ) for key in "${keys[@]}"; do echo -e "\nSearching for key: $key" rg "$key" Resources/Locale doneLength of output: 178415
Resources/Prototypes/_White/Voice/speech_sounds.yml (1)
1-8
: LGTM! Configuration structure follows the standard format.The speech sounds configuration for the Gondola entity is well-structured and includes all necessary sound types (say, ask, exclaim) with consistent path naming.
Resources/Prototypes/_White/Catalog/Fills/Crates/npc.yml (1)
9-9
: Verify that MobGondola entity exists.Please ensure that the
MobGondola
entity is properly defined elsewhere in the codebase to prevent runtime errors.✅ Verification successful
Based on the search results, I can generate the final response since we have sufficient information. The search shows that
MobGondola
entity is properly defined inResources/Prototypes/_White/Entities/Mobs/NPCs/gondola.yml
and is consistently referenced across multiple files including spawners and polymorphs.MobGondola entity exists and is properly integrated
The entity is well-defined and consistently used across the codebase:
- Main definition in
Resources/Prototypes/_White/Entities/Mobs/NPCs/gondola.yml
- Referenced in spawners, polymorphs, and crate fills
- Usage pattern indicates it's a fully integrated NPC type
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for MobGondola entity definition echo "Searching for MobGondola entity definition..." rg -l "id:\s*MobGondola" --type yaml # Search for any references to ensure it's used consistently echo -e "\nSearching for MobGondola references..." rg "MobGondola" --type yamlLength of output: 777
🧰 Tools
🪛 yamllint
[error] 9-9: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Entities/Markers/Spawners/mobs.yml (2)
1-4
: LGTM! Entity definition is well-structured.The entity definition follows the standard pattern with appropriate parent and clear naming.
11-13
: Verify MobGondola prototype existence.The ConditionalSpawner references
MobGondola
. Let's ensure this prototype is properly defined.#!/bin/bash # Description: Verify the existence of the MobGondola prototype # Test: Search for MobGondola entity definition rg -l "id:\s*MobGondola" Resources/Prototypes🧰 Tools
🪛 yamllint
[warning] 13-13: wrong indentation: expected 4 but found 6
(indentation)
[error] 13-13: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Recipes/Construction/Graphs/food/steak.yml (4)
1-3
: LGTM! Graph definition follows the standard format.The construction graph is properly defined with a unique identifier and start node.
9-10
: Verify the sound effect path exists.The sound effect path needs to be verified to ensure it exists and follows the correct format.
#!/bin/bash # Description: Verify the sound effect file exists and is referenced consistently # Test 1: Check if the sound file exists fd "sizzle.ogg" # Test 2: Check for other references to this sound file to ensure consistent usage rg -l "/Audio/Effects/sizzle.ogg"
13-14
: Verify the entity reference exists.Need to ensure the
FoodMeatGondolaCooked
entity is properly defined elsewhere in the codebase.#!/bin/bash # Description: Verify the entity definition exists # Test: Search for the entity definition ast-grep --pattern 'id: FoodMeatGondolaCooked'
11-12
: Verify the cooking temperature requirement.The minimum temperature of 345 degrees seems arbitrary. Please verify if this temperature:
- Matches other meat cooking temperatures in the game
- Is in the correct unit (Celsius/Fahrenheit/Kelvin)
✅ Verification successful
Let me try to gather more comprehensive information about temperature requirements and related recipes.
The previous search was too narrow. This broader search will help us:
- Understand the recipe structure and temperature units used across recipes
- Find any temperature-related configuration or documentation
- Compare cooking requirements across different food items
Let me try one more search to find any documentation or configuration files that might specify the temperature units or requirements.
This will help us understand:
- If there's any documentation about cooking mechanics
- Whether temperature units are specified in configuration files
- Related cooking mechanics that might provide context about temperature requirements
Let me try one final search to find any temperature-related configuration or documentation specifically about cooking mechanics.
This will help us understand:
- If there's any documentation about cooking temperature units
- Compare cooking temperatures across different meat recipes
- Find any related cooking mechanics configuration
Based on the search results, I can now provide a final response since we have found clear evidence about meat cooking temperatures across different recipes.
The cooking temperature of 345 degrees is consistent with other meat recipes in the game.
Looking at the construction graphs for various meats:
- Regular meat steak: 335 degrees
- Chicken steak: 345 degrees
- Penguin steak: 345 degrees
- Bear steak: 345 degrees ("apparently trichinellosis is a concern" - from comments)
- Lizard steak: 345 degrees
- Bacon: 345 degrees
- Duck steak: 335 degrees (with comment "duck is actually culinarily red meat IRL and has a lower min temp than other poultry")
The 345-degree requirement for Gondola steak matches the standard cooking temperature used for most meats in the game, particularly poultry and high-risk meats. The temperature appears to be an intentional game mechanic with consistent internal logic, where most meats require 345 degrees, while some specific meats like duck and regular steak use a lower 335 degrees.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Find other temperature requirements in construction graphs # Test: Search for temperature requirements in other food recipes rg "minTemperature:" "Resources/Prototypes/_White/Recipes/Construction/Graphs/food/"Length of output: 433
Script:
#!/bin/bash # Search for all yml files in food directory to understand the recipe structure fd -e yml . "Resources/Prototypes/_White/Recipes/Construction/Graphs/food/" -x cat {} # Also search for temperature-related keywords in the entire codebase rg -i "temperature|celsius|fahrenheit|kelvin" "Resources/Prototypes/_White"Length of output: 563
Script:
#!/bin/bash # Search for documentation files and configuration fd "README|CONTRIBUTING|config|settings" -e md -e txt -e yml -e yaml -e json . -x cat {} # Search specifically in the cooking/food related documentation fd "cooking|food|recipe" -e md -e txt -e yml -e yaml -e json . -x cat {} # Look for other cooking-related mechanics rg -i "cook|heat|burn|grill" "Resources/Prototypes/_White"Length of output: 106830
Script:
#!/bin/bash # Search for cooking/temperature documentation rg -i "temperature|celsius|fahrenheit|kelvin|degree|cook" "Resources/Prototypes/_White" -A 3 -B 3 # Look for other meat cooking recipes for comparison fd "meat|steak|cook" -e yml . "Resources/Prototypes/_White/Recipes/Construction/Graphs/" -x cat {}Length of output: 175246
Resources/Prototypes/_White/Reagents/fun.yml (2)
1-40
: Verify external dependenciesThe configuration references several external components that need to be verified:
- Localization keys (reagent-name-tranquility, reagent-desc-tranquility, etc.)
- The "Gondola" prototype
- Required components (Muted, Pacified)
✅ Verification successful
Let me gather more information to verify the component definitions since the previous search didn't find them.
The previous results confirmed:
- Localization keys exist in both en-US and ru-RU
- Gondola prototype exists
- But we need to verify the component definitions with different patterns
Let's check the specific content of status_effects.yml since it's the most likely location for these component definitions.
I can now generate the final response as we have verified all the dependencies.
External dependencies verification completed
All required external dependencies are present in the codebase:
- Localization keys
reagent-name-tranquility
andreagent-desc-tranquility
exist in both en-US and ru-RU locale files- The "Gondola" prototype is referenced in the codebase
- Both
Muted
andPacified
are properly defined as status effects inResources/Prototypes/status_effects.yml
The configuration is safe to use as all external dependencies are properly defined.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for required localization keys echo "Checking localization keys..." rg -l "reagent-(name|desc)-tranquility" Resources/Locale/ # Check for Gondola prototype echo "Checking Gondola prototype..." rg -l "prototype: Gondola" Resources/Prototypes/ # Check for required components echo "Checking component definitions..." rg -l "type: Component\s+id: (Muted|Pacified)" Resources/Prototypes/Length of output: 545
Script:
#!/bin/bash # Check for Muted and Pacified components with different patterns echo "Checking for Muted component..." rg -l "Muted" Content/Server/ rg -l "Muted" Content/Shared/ echo "Checking for Pacified component..." rg -l "Pacified" Content/Server/ rg -l "Pacified" Content/Shared/ # Also check if these are defined in any YAML files echo "Checking YAML definitions..." rg -l "(Muted|Pacified)" Resources/Prototypes/Length of output: 1505
Script:
#!/bin/bash # Check content of status effects file echo "Checking status effects definitions..." cat Resources/Prototypes/status_effects.yml # Also check for any direct references to these components in the found files echo "Checking component usage in relevant files..." rg "(Muted|Pacified)" Resources/Prototypes/status_effects.yml -A 5 -B 5Length of output: 1787
9-11
: Review metabolism type selectionThe reagent uses the "Poison" metabolism type despite having non-harmful effects. This could interact unexpectedly with poison-related game mechanics or antidotes.
Resources/Prototypes/_White/Entities/Objects/Consumable/Food/meat.yml (3)
44-51
: Review Tranquility reagent behavior.The Tranquility reagent quantity increases from 10 to 15 units after cooking. Please verify if this amplification effect is intentional and balanced.
#!/bin/bash # Check for other instances of Tranquility reagent transformations rg -A 5 "ReagentId: Tranquility" "Resources/Prototypes/_White/"
21-24
: Verify the GondolaSteak construction graph.Ensure the referenced construction graph exists and properly defines the cooking transformation process.
✅ Verification successful
Let me search for the construction graph definition to verify its existence and proper definition.
Let me try searching in the construction graphs directory specifically, as these are typically stored in a dedicated location.
The GondolaSteak construction graph is properly defined and referenced
The construction graph exists in
Resources/Prototypes/_White/Recipes/Construction/Graphs/food/steak.yml
and correctly defines:
- The graph ID as
GondolaSteak
- A start node with an edge to "gondola steak"
- Proper transformation steps including temperature requirements
- Sound effects for the cooking process
The references in
meat.yml
correctly align with the graph's nodes and structure.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if the GondolaSteak graph is properly defined rg -g "*.yml" -g "*.yaml" "graph: GondolaSteak" "Resources/"Length of output: 1115
Script:
#!/bin/bash # Search for GondolaSteak construction graph definition rg -g "*.yml" -g "*.yaml" -B 2 -A 10 "GondolaSteak:" "Resources/"Length of output: 63
Script:
#!/bin/bash # Find construction graph files fd "construction|graphs?" --type f -e yml -e yaml # Then search for GondolaSteak definition in those files rg -g "*.yml" -g "*.yaml" -B 2 -A 10 "GondolaSteak" "Resources/"Length of output: 3258
14-20
: Consider rebalancing reagent quantities.The total quantity of reagents (28 units) seems high compared to typical raw meat items. This might create balance issues, especially with the Tranquility reagent.
Let's check other meat configurations for comparison:
Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl (1)
28-29
: Verify terminology consistency across Russian localization.Let's ensure the terms "Гондола" and "Спокойствие" are used consistently across other Russian localization files.
✅ Verification successful
Based on the search results, I can now generate the final response:
Terminology is consistent across Russian localization files
The term "Гондола" is used consistently across all Russian localization files, appearing in various contexts (mob spawner, food items, ghost roles, etc.) with proper grammatical cases. The reagent "Спокойствие" only appears once in the uplink catalog description, which is expected as it's specifically related to the Gondola meat's special property.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for related terms in Russian localization files echo "Searching for Gondola references in Russian localization:" rg -g "*.ftl" "Гондол[аы]" Resources/Locale/ru-RU/ echo -e "\nSearching for Tranquility reagent references in Russian localization:" rg -g "*.ftl" "Спокойствие" Resources/Locale/ru-RU/Length of output: 1720
Resources/Locale/en-US/_white/store/uplink-catalog.ftl (2)
31-32
: LGTM: Gondola catalog entriesThe new gondola entries follow the established naming convention and provide clear descriptions that align with the PR objectives.
27-29
:⚠️ Potential issueRemove duplicate blood dagger entries
The blood dagger entries appear twice in the file. Duplicate keys in localization files can cause unpredictable behavior depending on which entry gets loaded.
Apply this diff to remove the duplicate:
uplink-blood-dagger-name = Blood dagger uplink-blood-dagger-desc = A dagger of pain and blood. It has deadly accuracy, allowing you to deal critical damage and extract blood from opponents, treating the owner in proportion to the sucked blood. When absorbing the owner's blood, it briefly enhances his valuable profuse bleeding. -uplink-blood-dagger-name = Blood dagger -uplink-blood-dagger-desc = A dagger of pain and blood. It has deadly accuracy, allowing you to deal critical damage and extract blood from opponents, treating the owner in proportion to the sucked blood. When absorbing the owner's blood, it briefly enhances his valuable profuse bleeding.Likely invalid or redundant comment.
Resources/Prototypes/_White/Catalog/uplink_catalog.yml (2)
116-117
: Verify the sprite path and entity existence.Ensure that the referenced sprite path and entity exist:
#!/bin/bash # Check if the sprite file exists fd "gondola.rsi" "Textures/_White/Mobs/Animals/" # Check if the crate entity is defined rg "type: entity.*?CrateNPCGondola" --type yaml
112-121
: Review the pricing and category placement.The Gondola crate is priced at 2 Telecrystals, which seems unusually low compared to similar utility items (e.g., EMP flashlight at 3 TC). Consider if this pricing aligns with the game's balance, especially given that it provides both a mob and a reagent.
Let's check other crate prices in the uplink catalog:
✅ Verification successful
The previous command might have failed because we need to be more specific with the file path. Let's also check other uplink-related items to get a better understanding of the pricing structure. This will help us verify if 2 TC for a Gondola crate is appropriately priced compared to similar items in the game.
Note: I'm focusing on finding price comparisons within uplink catalogs to make an informed decision about the balance concern raised in the review comment.
The previous commands might have failed due to complex regex patterns. Let's try with simpler commands to get the content of the files and analyze the pricing structure, particularly focusing on utility items.
Based on the search results, I can now make an informed assessment about the pricing of the Gondola crate. Looking at other utility items in the uplink catalog:
- Voice Mask: 2 TC
- Syndicate HUD: 2 TC
- Hypo Dart Box: 2 TC
- Chest Rig: 1 TC
- Radio Jammer: 4 TC
- Binary Translator Key: 1 TC
The 2 TC price for the Gondola crate is consistent with other utility items in the same category.
The pricing appears to be appropriate because:
- It aligns with other utility items in the 1-4 TC range
- Similar "creature" items like the dehydrated space carp are also available in the uplink
- The price point makes it accessible without being too cheap
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for other crate listings and their costs rg -U "type: listing[\s\S]*?CrateNPC.*?cost:[\s\S]*?Telecrystal: \d+" --multilineLength of output: 213
Script:
#!/bin/bash # Let's search for all listings in the uplink catalog to compare prices rg -U "type: listing.*?cost:.*?Telecrystal: \d+" --multiline Resources/Prototypes/_White/Catalog/ # Also search for any other uplink catalog files that might contain listings fd "uplink.*\.yml" Resources/Prototypes/Length of output: 360
Script:
#!/bin/bash # Let's check the content of all uplink catalogs to compare prices echo "=== Main Uplink Catalog ===" rg -U "type: listing.*?cost:.*?Telecrystal: \d+" --multiline Resources/Prototypes/Catalog/uplink_catalog.yml echo -e "\n=== DeltaV Uplink Catalog ===" rg -U "type: listing.*?cost:.*?Telecrystal: \d+" --multiline Resources/Prototypes/DeltaV/Catalog/uplink_catalog.yml echo -e "\n=== Nyanotrasen Uplink Catalog ===" rg -U "type: listing.*?cost:.*?Telecrystal: \d+" --multiline Resources/Prototypes/Nyanotrasen/Catalog/uplink_catalog.yml echo -e "\n=== White Uplink Catalog ===" rg -U "type: listing.*?cost:.*?Telecrystal: \d+" --multiline Resources/Prototypes/_White/Catalog/uplink_catalog.yml # Also specifically look for other utility category items to compare prices echo -e "\n=== Utility Category Items ===" rg -U "type: listing.*?categories:.*?UplinkUtility.*?cost:.*?Telecrystal: \d+" --multiline Resources/Prototypes/Length of output: 959
Script:
#!/bin/bash # Let's try a simpler pattern to find any listings with costs echo "=== Main Uplink Catalog ===" cat Resources/Prototypes/Catalog/uplink_catalog.yml | grep -A 5 "type: listing" echo -e "\n=== White Uplink Catalog ===" cat Resources/Prototypes/_White/Catalog/uplink_catalog.yml | grep -A 5 "type: listing" # Let's also specifically look for utility items echo -e "\n=== Utility Items ===" cat Resources/Prototypes/Catalog/uplink_catalog.yml | grep -A 10 "UplinkUtility"Length of output: 35818
🧰 Tools
🪛 yamllint
[warning] 121-121: wrong indentation: expected 4 but found 2
(indentation)
[error] 121-121: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_White/Entities/Mobs/NPCs/gondola.yml (7)
1-10
: LGTM! Well-structured entity definition with appropriate inheritance.The entity inherits from essential mob-related prototypes that provide respiratory, atmospheric, bloodstream, and flammability features. The description effectively captures the character's theme.
55-60
: LGTM! Standard health configuration for a biological entity.The bloodstream volume and damage configuration align with typical biological entity patterns.
40-54
: Review physics configuration values.The current configuration might cause issues:
- The fixture radius (0.2) seems too small for a mob entity, potentially causing collision detection issues
- The density (50) is quite high, which might affect movement and interactions unexpectedly
#!/bin/bash # Search for typical fixture configurations in other mob entities rg -A 5 'type: Fixtures' --type yaml
61-74
: Verify the purpose of the VimPilot tag.The
VimPilot
tag seems unusual for this entity type. Please clarify if this tag is intentionally added and what functionality it enables.#!/bin/bash # Search for other entities using the VimPilot tag rg -B 5 'VimPilot' --type yaml
75-84
: Verify the entity price for game balance.The price of 1000 should be reviewed for game balance. Please compare with similar entities to ensure consistent pricing.
✅ Verification successful
Let me try a different search strategy to find price configurations in the codebase.
This should help us find price configurations in YAML files within the Resources directory, which is where entity configurations are typically stored. The pattern looks for "price:" followed by numbers, with some context lines before and after.
Based on the search results, I can now provide a verification of the price value for the gondola entity. Let me analyze similar mob/animal entities for price comparison:
Price appears balanced for a living creature
The gondola's price of 1000 is consistent with similar living entities in the game:
- Basic living creatures are valued at 1000 (simplemob base price)
- Regular animals range from 50-200 (mice, corgi, etc.)
- Special/rare creatures range from 2500-3000 (regal rat at 2500, slimes at 3000)
The gondola's price of 1000 places it in a reasonable tier between common animals and rare creatures, considering it's a unique but not particularly powerful mob.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for MobPrice configurations in other entities rg -B 2 'type: MobPrice' --type yamlLength of output: 95
Script:
#!/bin/bash # Search for MobPrice configurations with a broader pattern and include more context rg -B 3 -A 1 'price: \d+' --type yaml Resources/Length of output: 163700
85-94
: Verify localization key existence.Please ensure the following localization keys are defined:
ghost-role-information-gondola-name
ghost-role-information-gondola-description
✅ Verification successful
Let me try a different approach to search for these localization keys.
Based on the search results, I can now provide a final response since I found both the localization keys and their values in the codebase.
Localization keys are properly defined
The localization keys are defined in both English and Russian localization files:
English (Resources/Locale/en-US/_white/ghost/roles/ghost-role-component.ftl):
ghost-role-information-gondola-name = Gondola
ghost-role-information-gondola-description = You're a gondola.
Russian (Resources/Locale/ru-RU/_white/ghost/roles/ghost-role-component.ftl):
ghost-role-information-gondola-name = Гондола
ghost-role-information-gondola-description = Ты Гондола
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for the localization keys in .ftl files rg "ghost-role-information-gondola-(name|description)" --type ftlLength of output: 95
Script:
#!/bin/bash # Search for the localization keys in all files, as we're not sure about the file extension rg "ghost-role-information-gondola-" --type-list # First, let's see what file types are available # Then search in all files rg "ghost-role-information-gondola-(name|description)" # Also search for other ghost role localization patterns to understand the convention rg "ghost-role-information-" -A 1Length of output: 100314
11-39
: Verify the color value consistency.The color value
"#6e4e40"
is used for the gondola's body. Please ensure this matches the intended color scheme across other entities and UI elements.✅ Verification successful
Let me generate a new script to search for color values in the codebase, particularly focusing on brown shades and entity colors:
This script will help us:
- Find all hex color values in YAML files to check for color consistency
- Look for any "Browns" color collection definitions that might define the standard brown shades for entities
Based on the search results, I can now provide a final response:
The color value
#6e4e40
is consistent with the codebase's brown color palette.The color is defined in
Resources/Prototypes/_White/Palettes/brown.yml
as the base brown color, and it's being correctly used in the gondola entity. This is part of a consistent brown color scheme where:
#6e4e40
is the base brown#593d31
is brown1#6e4330
is brown2#73422d
is brown3The color choice for the gondola's body is appropriate and follows the established color standards in the codebase.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for similar color values in other entity definitions rg -i '"#6e4e40"' --type yamlLength of output: 21129
Script:
#!/bin/bash # Search for color values in hex format, particularly focusing on browns and entity colors rg -i '"#[0-9a-f]{6}"' --type yaml # Also search for the "Browns" color collection since it's referenced in the RandomSprite component rg "Browns:" --type yaml -C 3Length of output: 186500
Resources/Locale/ru-RU/_white/prototypes/catalog/fills/crates/npc.yml
Outdated
Show resolved
Hide resolved
Resources/Locale/ru-RU/_white/prototypes/entities/objects/сonsumable/food/meat.ftl
Outdated
Show resolved
Hide resolved
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: 2
🧹 Outside diff range and nitpick comments (1)
Resources/Prototypes/_White/Entities/Objects/Consumable/Food/meat.yml (1)
33-33
: Revise description to align with tranquility effects.The description "Smells primal" seems contradictory to the tranquility-inducing properties of Gondola meat.
Consider:
- description: A cooked slab of meat. Smells primal. + description: A perfectly cooked slab of Gondola meat. Emanates a calming aroma.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (5)
- Resources/Locale/en-US/_white/reagents/meta/fun.ftl (1 hunks)
- Resources/Locale/en-US/_white/store/uplink-catalog.ftl (1 hunks)
- Resources/Locale/ru-RU/_white/prototypes/entities/objects/сonsumable/food/meat.ftl (1 hunks)
- Resources/Locale/ru-RU/_white/reagents/meta/fun.ftl (1 hunks)
- Resources/Prototypes/_White/Entities/Objects/Consumable/Food/meat.yml (1 hunks)
✅ Files skipped from review due to trivial changes (2)
- Resources/Locale/en-US/_white/reagents/meta/fun.ftl
- Resources/Locale/ru-RU/_white/reagents/meta/fun.ftl
🚧 Files skipped from review as they are similar to previous changes (1)
- Resources/Locale/en-US/_white/store/uplink-catalog.ftl
🧰 Additional context used
🪛 yamllint
Resources/Prototypes/_White/Entities/Objects/Consumable/Food/meat.yml
[error] 56-56: no new line character at the end of file
(new-line-at-end-of-file)
🔇 Additional comments (4)
Resources/Locale/ru-RU/_white/prototypes/entities/objects/сonsumable/food/meat.ftl (2)
3-3
: Review the naming convention for consistency.Based on the previous review comment by PuroSlavKing, consider using a regular meat name with "Гондола" as a suffix to maintain gameplay balance.
1-3
: 🛠️ Refactor suggestionVerify the entity references and consider unique description for Gondola meat.
The current implementation inherits both name and description from
ent-FoodMeatCooked
, which might not accurately represent the unique properties of Gondola meat (particularly its tranquility reagent mentioned in the PR context).Let's verify the entity references and available descriptions:
Consider:
- Creating a dedicated entity for Gondola meat instead of inheriting from regular cooked meat
- Adding a specific description that mentions its unique properties
Resources/Prototypes/_White/Entities/Objects/Consumable/Food/meat.yml (2)
54-56
: Verify construction graph existence.The entity references a construction graph "GondolaSteak" which needs to be verified.
Let's check if the construction graph exists:
#!/bin/bash # Search for GondolaSteak graph definition rg "graph: GondolaSteak" Resources/Prototypes/_White/Recipes/Construction/Graphs/🧰 Tools
🪛 yamllint
[error] 56-56: no new line character at the end of file
(new-line-at-end-of-file)
48-53
: Verify reagent quantities and effects.The Tranquility reagent increases from 10 to 15 when cooked. Please verify if this 50% increase is intentional and balanced.
Let's check other tranquility-containing foods for consistency:
✅ Verification successful
Let me try a different approach to search for Tranquility reagent usage in food items.
This will help us:
- Find all files containing Tranquility reagent
- See the context around Tranquility mentions to compare quantities
- Determine if the 50% increase to 15 is consistent with other food items
Based on the search results, I can now provide a final response:
Tranquility reagent increase appears to be intentional
The search results show that meat.yml is the only food item containing the Tranquility reagent, and it appears in two contexts:
- Raw meat: Contains 10 units of Tranquility
- Cooked meat (current change): Contains 15 units of Tranquility
Since this is the only food item with Tranquility, and the increase from 10 to 15 units represents a consistent 50% boost when cooked (similar to how cooking often enhances food properties), this change appears to be an intentional design decision for this specific item.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for other food items containing Tranquility reagent rg -l "ReagentId: Tranquility" Resources/Prototypes/_White/Entities/Objects/Consumable/Food/Length of output: 218
Script:
#!/bin/bash # Search for files containing Tranquility reagent in the entire repository rg -l "ReagentId: Tranquility" # Also get the context when Tranquility is mentioned to see the quantities rg -B2 -A2 "ReagentId: Tranquility"Length of output: 1099
Описание PR
Порт Гондолы и реагента спокойствия.
Изменения
🆑 Spatison