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

Колизей #111

Open
wants to merge 38 commits into
base: master
Choose a base branch
from

Conversation

FireFoxPhoenix
Copy link
Collaborator

@FireFoxPhoenix FireFoxPhoenix commented Jan 15, 2025

НЕ МЕРЖИТЬ ДО ОБНОВЛЕНИЯ КАРТЫ

About the PR

По сути для обычных смертных ничего нет, кроме колизея. Для мапперов добавлена возможность делать этажи для карт и порталы между ними

  1. Корабельные пушки для колизея
  2. Торгомат для колизея
  3. Колизейные жетоны
  4. Шаттлы для колизея
  5. Сам колизей от Autsaider
  6. Ваунчеры на шаттлы колизея
  7. Ступеньки порталы
  8. Этажи
  9. Обменник жетонов

Why / Balance

Новый интересный способ заработка, а не эти ваши дальнобои

Media

Summary by CodeRabbit

  • New Features

    • Introduces automated portal linking and additional map expansion systems.
    • Adds Coliseum-themed vessels, game maps, interactive consoles, new collectible coin items, vouchers, weapon variants, and crafting recipes.
    • Enhances shop and inventory systems with updated tags and themed content.
  • Localization

    • Expands Russian language support with updated text for vouchers, coins, grenades, vending machines, and other Coliseum-inspired elements.

@FireFoxPhoenix FireFoxPhoenix marked this pull request as ready for review February 5, 2025 05:17
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@Vonsant
Copy link

Vonsant commented Feb 26, 2025

/gemini summary

Copy link

Warning

Gemini encountered an error creating the summary. You can try again by commenting /gemini summary.

@Vonsant
Copy link

Vonsant commented Feb 26, 2025

Много букав

Copy link

github-actions bot commented Mar 1, 2025

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Copy link

coderabbitai bot commented Mar 10, 2025

Walkthrough

This pull request introduces several new components and systems that extend game functionality. A new portal auto-link system is implemented to automatically match and link portal entities during map initialization. Expansion map components and systems are added to dynamically load additional maps at round start. The adventure rule and point-of-interest systems now accommodate a new coliseum category. Numerous YAML files, localization entries, prototypes, and asset metadata changes equip the game with a comprehensive Coliseum-themed set of entities, vessels, and interactive elements.

Changes

File(s) Change Summary
Content.Server/Corvax/PortalAutoLink/PortalAutoLinkComponent.cs, Content.Server/Corvax/PortalAutoLink/PortalAutoLinkSystem.cs Added new portal component and system that auto-links portal entities by comparing their LinkKey during map initialization.
Content.Server/Corvax/StationDungeonMap/ExpansionMapComponent.cs, Content.Server/Corvax/StationDungeonMap/ExpansionMapSystem.cs Introduced a component and system to load extra expansion maps at the start of a round and during station initialization.
Content.Server/_NF/GameRule/Components/NFAdventureRuleComponent.cs, Content.Server/_NF/GameRule/NfAdventureRuleSystem.cs, Content.Server/_NF/GameRule/PointOfInterestSystem.cs Extended adventure rules by adding a new colisei points of interest list and methods for generating colisei POIs during game setup.
Content.Shared/Shipyard/SharedShipyardSystem.cs Added a new enumeration value Coliseum in the shipyard console UI key definitions.
Resources/Locale/ru-RU/ss14-ru/**/*.ftl Added new Russian localization entries for Coliseum-themed vouchers, coins, grenades, exchangers, computers, vending machines, and stairs.
Resources/Maps/Corvax/Shuttles/Coliseum/*.yml Introduced extensive YAML configurations for Coliseum-themed maps, vessels, and prototypes detailing entity placements, physics, and interactive components.
Resources/Prototypes/Corvax/**/*.yml Added new prototypes for ship vouchers, coins, grenade magazines, explosives, exchangers, computers, cannons, walls, windows, stairs, points of interest, recipes, and vessel definitions in the Coliseum context.
Resources/Prototypes/Corvax/tags.yml, Resources/Prototypes/Corvax/Stacks/Materials/coin.yml Defined new tags (ColiseumGrenade, ColiseumMagazineGrenade, ColiseumCoin) and added a stackable item for Coliseum coins.
Resources/Textures/**/meta.json Created and updated multiple asset metadata JSON files, including changes for coin assets, shipyard vouchers, launchers, exchangers, vending machines, and a new state for “shipyard_coliseum”.
Resources/Textures/_NF/Structures/Machines/computers.rsi/meta.json Updated copyright information and added a new state definition “shipyard_coliseum” with directional delays.

Sequence Diagram(s)

sequenceDiagram
    participant M as MapInitEvent
    participant PAS as PortalAutoLinkSystem
    participant E as Portal Entities
    participant LES as LinkedEntitySystem
    M->>PAS: Trigger map initialization
    PAS->>E: Iterate over PortalAutoLinkComponents (read LinkKey)
    E-->>PAS: Return LinkKey data
    PAS->>LES: Attempt to link matching entities
    LES-->>PAS: Return link success/failure
    PAS->>E: Remove PortalAutoLinkComponent upon success
Loading
sequenceDiagram
    participant S as StationPostInitEvent
    participant EMS as ExpansionMapSystem
    participant MLS as MapLoaderSystem
    S->>EMS: Trigger station post-initialization
    EMS->>MLS: For each ExpansionMapComponent, call CreateMap & TryLoad
    MLS-->>EMS: Return map load result
    EMS->>EMS: Log creation or error and clean up if necessary
Loading

Suggested labels

No C#, Audio, size/S

Poem

I’m a bunny with a joyful hop,
Code and maps, never gonna stop.
Portals link in a rhythmic tune,
Expanding maps ‘neath a crescent moon.
Coliseum dreams in every line,
My whiskers twitch at innovation divine.
Hopping through changes—let’s celebrate and shine!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7ba4afb and 504f25f.

📒 Files selected for processing (1)
  • Content.Server/_NF/GameRule/Components/NFAdventureRuleComponent.cs (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • Content.Server/_NF/GameRule/Components/NFAdventureRuleComponent.cs
⏰ Context from checks skipped due to timeout of 90000ms (5)
  • GitHub Check: Test Packaging
  • GitHub Check: YAML map schema validator
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: YAML Linter
  • GitHub Check: build (ubuntu-latest)

🪧 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 generate docstrings to generate docstrings for this 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

@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: 1

🔭 Outside diff range comments (2)
Resources/Maps/Corvax/Shuttles/Coliseum/dragon.yml (1)

1222-1230: 🛠️ Refactor suggestion

General Review of Dragon.yml Map File

This file introduces an extensive set of prototypes—including various environmental objects, devices, and interactive elements—to support the new Coliseum feature. Given its complexity and volume, please verify that all entity definitions, UID assignments, device link references, and Transform parameters have been thoroughly cross-checked against the updated gameplay design. In the long term, consider modularizing or splitting this file if maintainability becomes a concern.

Resources/Maps/Corvax/Shuttles/Coliseum/faceless.yml (1)

285-2784: 🛠️ Refactor suggestion

Prototype Entity Definitions:
This new file introduces a large number of prototype definitions (e.g. AirAlarm, AirCanister, AirlockExternalGlassShuttleLocked, etc.) each with their own nested entities and components. Key points to verify include:

  • UID Uniqueness: Ensure that all uid values are unique and that device lists correctly reference the corresponding UIDs.
  • Transform Consistency: Many components use a Transform with precise positional values and rotations (e.g., 3.141592653589793 rad). Confirm that these high-precision values are necessary and consistent with design standards.
  • Parentage: Most Transform components list parent: 1. Validate that the entity with uid 1 is the correct and intended container for these objects.
  • Maintainability: Due to the extensive and repetitive structure of these prototype definitions, consider splitting the file into smaller sub-files or using YAML anchors/aliases if supported, to improve readability and maintainability.
🧹 Nitpick comments (79)
Content.Server/Corvax/PortalAutoLink/PortalAutoLinkComponent.cs (2)

1-10: Default value should be more specific

The component is well-structured and follows the codebase's patterns. However, the default value for LinkKey is set to "ReplaceMe", which suggests it's a placeholder that should be replaced with a meaningful value in actual usage.

Consider either:

  1. Making the default value null (since it's already nullable) to force explicit setting
  2. Providing a more descriptive comment explaining the expected format of the key
- public string? LinkKey { get; set; } = "ReplaceMe";
+ public string? LinkKey { get; set; } = null; // Must be explicitly set to match portals

5-7: Component name could be more specific

The component name PortalAutoLinkComponent is somewhat generic. Based on the PR context about the Coliseum, this seems to be a specialized component for linking portals.

If this component is specific to the Coliseum feature, consider prefixing it with the feature name or adding clarifying documentation about its intended usage.

Resources/Textures/Corvax/Structures/Machines/coliseumexchanger.rsi/meta.json (1)

1-20: Spelling Correction Needed
There is a typo on line 4 in the copyright notice ("icon crated by FireFoxPhoenix"). Please correct "crated" to "created" to maintain a professional appearance in metadata.

Resources/Prototypes/Corvax/tags.yml (1)

39-39: Remove Trailing Whitespace
A trailing whitespace has been detected on line 39. Removing it will help the file pass YAML linting checks.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 39-39: trailing spaces

(trailing-spaces)

Resources/Prototypes/Corvax/Reagents/Materials/coin.yml (1)

1-7: Clear Material Definition for ColiseumCoin
This new material is well-defined with all necessary properties, including stackEntity, icon, color, and price, ensuring consistency with the overall asset framework. Please add a newline at the end of the file to satisfy formatting guidelines.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 7-7: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Textures/Corvax/Structures/Machines/coliseumvending.rsi/meta.json (1)

30-30: Consider removing trailing empty line

There's an empty line at the end of the file, which is a minor stylistic inconsistency. While it doesn't affect functionality, removing it would maintain consistency with other files.

Content.Server/Corvax/StationDungeonMap/ExpansionMapComponent.cs (1)

18-18: Consider using initialization syntax for empty collections

Instead of new() consider using = []; which is more concise in C# 10 and later.

- public List<ResPath> MapPaths = new();
+ public List<ResPath> MapPaths = [];
Resources/Prototypes/Corvax/Catalog/VendingMachines/Inventories/coliseum.yml (1)

15-15: Add a newline at the end of file

YAML files should end with a newline character as per convention. This was flagged by the static analysis tool.

 # Помогите я в рабстве..
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 15-15: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Stacks/Materials/coin.yml (1)

6-6: Add a newline at the end of file

YAML files should end with a newline character as per convention. This was flagged by the static analysis tool.

   maxCount: 10
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 6-6: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Recipes/Lathes/exchanger.yml (1)

13-13: Add a newline at the end of file

YAML files should end with a newline character as per convention. This was flagged by the static analysis tool.

     ColiseumCoin: 5
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 13-13: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Objects/Devices/Misc/ship_vouchers.yml (1)

19-19: YAML Formatting: Missing Newline at End of File

YAMLlint detected that there is no newline at the end of this file. Please add a newline at the end to conform with YAML formatting standards.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 19-19: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/kerefo.yml (2)

1-10: Vessel Entity Definition

The vessel entity for Kerefo is well-structured with all necessary fields such as id, parent, name, price, category, group, and shuttlePath.
Note: There appears to be an unexpected character (a Byte Order Mark) at the very start of line 1. Please verify that this BOM is intentional, as it may cause issues with some YAML parsers.


11-26: Game Map Entity Definition and Formatting

The gameMap entity for Kerefo is clearly defined with details including mapName, mapPath, minPlayers, and a station setup. The empty job list (availableJobs: {}) appears intentional; if not, please review its content. Also, YAMLlint noted that there is no newline at the end of the file (line 26), so please add one.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json (1)

1-39: Launcher Meta JSON

This JSON metadata file is well-constructed. It includes all expected fields: version, license, copyright information, size, and an array of states.
For consistency with best practices, consider appending a newline at the end of the file.

Resources/Prototypes/Corvax/Shipyard/Coliseum/crater.yml (2)

1-10: Vessel Block Configuration Verification

The vessel definition for "Crater" is well-formed with all the expected attributes. One minor suggestion is to consider using a lowercase null for the guidebookPage value if it is meant to represent a null value consistently throughout the codebase.


11-26: Game Map Block & EOF Newline

The game map configuration is structured correctly. To comply with YAMLlint recommendations, please add a newline at the end of the file (after line 26).

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/bite.yml (2)

1-10: Vessel Block Configuration Verification

The vessel configuration for "Bite" is clear and includes all the necessary fields. As a consistency improvement, consider using a lowercase null for the guidebookPage if a null value is intended.


11-26: Game Map Block & EOF Newline

The game map section is properly defined. Please ensure that a newline is added at the end of the file (after line 26) to address the YAMLlint warning about the missing new-line at the end of the file.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/faceless.yml (2)

1-10: Vessel Block Configuration Verification

The vessel setup for "Faceless" follows the established pattern. For uniformity with YAML best practices, you might consider replacing Null with lowercase null for the guidebookPage attribute.


11-26: Game Map Block & EOF Newline

The game map configuration is correctly implemented. To resolve the static analysis warning, please make sure to add a newline at the end of the file (after line 26).

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/fly.yml (2)

1-10: Vessel Block Configuration Verification

The vessel definition for "Fly" is consistent with the other entries. As before, if the intention is to denote a null value for guidebookPage, consider using lowercase null for consistency.


11-26: Game Map Block & EOF Newline

The game map portion is well-structured. To adhere to YAMLlint’s guidelines, please append a newline at the end of the file (after line 26).

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/skeleton.yml (2)

1-10: Vessel Block Configuration Verification

The vessel configuration for "Sceleton" (note the spelling) is defined in line with the established patterns. As a minor nitpick, if the guidebookPage is intended to be a null value, using lowercase null might be preferable for consistency.


11-27: Game Map Block & EOF Newline

The game map settings are properly set up. Please ensure the file ends with a newline character (currently missing after line 27) to satisfy the YAMLlint requirement.

Resources/Prototypes/Corvax/Shipyard/Coliseum/wild.yml (1)

1-26: Vessel and game map configuration looks good, but file needs minor fix.

The YAML configuration correctly defines both a vessel and game map for "Wild" (Дикий) for the Coliseum feature. The vessel inherits from BaseVessel, has appropriate pricing, and is correctly categorized. The game map configuration properly references the shuttle path and sets up the station with proper naming.

However, there is one minor issue:

 - type: StationJobs
   availableJobs: {}
+

Add a newline at the end of the file to comply with standard YAML formatting practices.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/dragon.yml (1)

1-26: Configuration is correct but requires newline fix.

The vessel and game map definitions for "Dragon" (Дракон) follow the same pattern as the other Coliseum entries, with appropriate configuration. All required properties are present and correctly structured.

 - type: StationJobs
   availableJobs: {}
+

Add a newline at the end of the file to address the YAML formatting issue flagged by the static analysis tool.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Content.Server/_NF/GameRule/NfAdventureRuleSystem.cs (1)

234-234: New generator method call for Coliseum POIs.

The call to _poi.Generatecolisei() follows the established pattern of other POI generators in the codebase.

Consider following C# naming conventions for method names. While other generator methods start with "Generate", the casing is inconsistent. "Generatecolisei" should be "GenerateColisei" to maintain consistency with C# PascalCase convention for method names.

- _poi.Generatecolisei(mapUid, coliseiProtos, out component.ColiseiPois); /// Corvax-Frontier
+ _poi.GenerateColisei(mapUid, coliseiProtos, out component.ColiseiPois); /// Corvax-Frontier
Resources/Prototypes/Corvax/PointsOflnterest/Colisei.yml (3)

8-8: Consider clarifying the inline comment

The inline comment #CorvaxFrontier on line 8 seems to be a reference or note. Consider either removing it if it's not needed or making it more explicit about its purpose to improve code readability.


31-33: Fix indentation in the components section

The indentation on line 31 should be 6 spaces to match the other component definitions within the stations section. Currently, it has 8 spaces.

- type: StationNameSetup
-          mapNameTemplate: 'Колизей'
+        - type: StationNameSetup
+          mapNameTemplate: 'Колизей'
🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 31-31: wrong indentation: expected 6 but found 8

(indentation)


35-35: Add a newline at the end of the file

Add a newline at the end of the file to follow YAML best practices. This is a common convention across many programming languages and helps prevent issues with some text processing tools.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 35-35: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/tobacco.yml (2)

1-1: Remove the Byte Order Mark (BOM) at the start of the file

There appears to be an invisible BOM character at the beginning of line 1. While many YAML parsers handle it correctly, it's best practice to remove it to prevent potential parsing issues.


26-26: Add a newline at the end of the file

Add a newline at the end of the file to follow YAML best practices. This is a common convention across many programming languages and helps prevent issues with some text processing tools.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/Machines/vending_machines.yml (1)

25-25: Add a newline at the end of the file

Add a newline at the end of the file to follow YAML best practices. This is a common convention across many programming languages and helps prevent issues with some text processing tools.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 25-25: no new line character at the end of file

(new-line-at-end-of-file)

Content.Server/Corvax/StationDungeonMap/ExpansionMapSystem.cs (2)

35-50: Consider continuing map loading when one map fails

Currently, if any map in the MapPaths list fails to load, the method returns immediately, preventing other maps from being loaded. You might want to consider continuing with the remaining maps even if one fails, unless this early return is intentional.

private void OnStationPostInit(Entity<ExpansionMapComponent> addMap, ref StationPostInitEvent args)
{
    if (!TryComp(addMap, out StationDataComponent? dataComp))
        return;

    foreach (var path in addMap.Comp.MapPaths)
    {
        var mapUid = _map.CreateMap(out var mapId);
        Log.Info($"Created map {mapId} for ExpansionMap system");
        var options = new MapLoadOptions { LoadMap = true };
        if (!_mapLoader.TryLoad(mapId, path.ToString(), out var roots, options))
        {
            Log.Error($"Failed to load map from {path}!");
            Del(mapUid);
-           return;
+           continue;
        }
    }
}

40-50: Consider adding path validation

The system doesn't validate the paths in MapPaths before attempting to load them. Consider adding validation to prevent errors when loading invalid paths.

foreach (var path in addMap.Comp.MapPaths)
{
+   if (string.IsNullOrEmpty(path.ToString()) || !_proto.HasIndex<EntityPrototype>(path.ToString()))
+   {
+       Log.Warning($"Invalid map path: {path}");
+       continue;
+   }

    var mapUid = _map.CreateMap(out var mapId);
    Log.Info($"Created map {mapId} for ExpansionMap system");
    var options = new MapLoadOptions { LoadMap = true };
    if (!_mapLoader.TryLoad(mapId, path.ToString(), out var roots, options))
    {
        Log.Error($"Failed to load map from {path}!");
        Del(mapUid);
        return;
    }
}
Resources/Prototypes/Corvax/Entities/Objects/Specific/Coliseum/coin.yml (3)

31-32: Improve the description grammar

The description has some grammatical issues that could be improved for clarity.

- description: Can be exchanged for money. But it blocked, wait a time for unlock it.
+ description: Can be exchanged for money. But it's blocked, wait some time for it to unlock.

29-32: Consider inheriting from BaseItem for consistency

The ColiseumCoinBlocked entity doesn't inherit from BaseItem unlike its counterpart ColiseumCoin. For consistency in behavior, consider adding this inheritance.

- id: ColiseumCoinBlocked
+ id: ColiseumCoinBlocked
+ parent: BaseItem
  name: blocked coliseum coin

72-72: Add newline at end of file

The YAML file is missing a newline at the end, which is flagged by the linter.

        restitution: 0.3
        friction: 0.2
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 72-72: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/wound.yml (2)

1-1: Remove zero-width character at start of file

The file starts with a zero-width non-breaking space character (U+FEFF), which could cause issues with some tools or parsers.

-- type: vessel
+- type: vessel

26-26: Add newline at end of file

The YAML file is missing a newline at the end, which is flagged by the linter.

        - type: StationJobs
          availableJobs: {}
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/Machines/Computers/computers_shipyard.yml (3)

48-48: Remove trailing whitespace

Remove the trailing spaces from this line.

-       
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 48-48: trailing spaces

(trailing-spaces)


51-52: Consider inheriting from ComputerShipyardBase for consistency

Unlike the other shipyard consoles that inherit from ComputerShipyardBase, this console inherits directly from BaseComputer. Consider using the same inheritance pattern for consistency unless there's a specific reason not to.

-  parent: [BaseStructureDisableToolUse, BaseStructureIndestructible, BaseComputer]
+  parent: [BaseStructureDisableToolUse, BaseStructureIndestructible, ComputerShipyardBase]

92-92: Remove trailing whitespace

Remove the trailing spaces from this line.

-  - type: Computer
-    board: Null
- 
+  - type: Computer
+    board: Null
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 92-92: trailing spaces

(trailing-spaces)

Resources/Prototypes/Corvax/Entities/Structures/Machines/Coliseum/exchanger.yml (2)

42-44: YAML Indentation Issue in the staticRecipes Block.
The list items under staticRecipes (lines 43–44) appear to be over-indented. YAMLlint expects these items to be indented with 4 spaces relative to the parent key rather than 6.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 43-43: wrong indentation: expected 4 but found 6

(indentation)


46-48: YAML Indentation and Newline Issue in the MaterialStorage Block.
The tags list (line 48) is indented by 8 spaces, but YAMLlint expects an indent of 6 spaces. Additionally, there is no newline at the end of the file. Please adjust the indentation and ensure a trailing newline to meet style guidelines.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 48-48: wrong indentation: expected 6 but found 8

(indentation)


[error] 48-48: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/Walls/walls.yml (4)

60-61: Indentation Issue in the Destructible Component.
The list item starting at line 60 is under-indented. According to the YAML style guidelines used by the linter, list items under components should have an indent of 4 spaces.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 60-60: wrong indentation: expected 4 but found 2

(indentation)


62-64: Indentation Issue in the trigger Block.
The block under thresholds (lines 62–64) is not indented enough; it should be indented by 6 spaces to properly nest under the parent mapping.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 62-62: wrong indentation: expected 6 but found 4

(indentation)


75-75: Indentation Issue in the ChangeConstructionNodeBehavior Block.
The list item at line 75 is under-indented (expected 8 spaces). Please increase its indentation to align with the behaviors list as per YAML style requirements.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 75-75: wrong indentation: expected 8 but found 6

(indentation)


86-86: Missing Newline at End of File.
The file does not end with a newline character. Please add a newline at the end to comply with YAML formatting standards.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 86-86: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml (2)

2-4: Entity Naming Consistency.
The entity with ID ColiseumGrenadeBaton uses the name "сoliseum baton grenade" (line 3) where the first character appears to be a Cyrillic letter instead of the expected Latin "C". Please verify that this naming is intentional and consistent with the overall style.


59-59: Missing Newline at End of File.
A newline character is missing at the end of the file (line 59). Adding a newline will ensure compliance with YAML file standards.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 59-59: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Textures/_NF/Structures/Machines/computers.rsi/meta.json (1)

4-5: Duplicate Key Issue in JSON.
The key copyright is declared twice (lines 4 and 5). Note that only the last declaration takes effect, which may lead to unintended loss of information from the first entry. Consider merging the two entries or renaming one if both are meant to be preserved.

🧰 Tools
🪛 Biome (1.9.4)

[error] 4-4: The key copyright was already declared.

This where a duplicated key was declared again.

If a key is defined multiple times, only the last definition takes effect. Previous definitions are ignored.

(lint/suspicious/noDuplicateObjectKeys)

Content.Server/_NF/GameRule/PointOfInterestSystem.cs (1)

232-257: Method naming and comments should follow project conventions

The implementation logic for generating coliseum POIs on a separate map looks solid, but:

  1. Method name Generatecolisei should follow C# PascalCase convention (should be GenerateColisei)
  2. Comments and log messages on lines 232 and 242 are in Russian, while the codebase appears to use English
- /// Corvax-Frontier Добавил группу для спавна гридов на отдельной карте. Да, оно работает
- public void Generatecolisei(MapId mapUid, List<PointOfInterestPrototype> poiPrototypes, out List<EntityUid> coliseiStations)
+ /// Added a group for spawning grids on a separate map for the Coliseum
+ public void GenerateColisei(MapId mapUid, List<PointOfInterestPrototype> poiPrototypes, out List<EntityUid> coliseiStations)
- Log.Info($"Создана новая карта {mapId} для системы SpawnPoiOnMap");
+ Log.Info($"Created new map {mapId} for the SpawnPoiOnMap system");
Resources/Prototypes/Corvax/Entities/Structures/Shuttles/cannons.yml (2)

98-112: Fix indentation in ColiseumShuttleGunFriendship entity

The entity definition looks good functionally, but there's an indentation issue on line 112 according to YAMLlint.

      whitelist:
        tags:
-        - ColiseumGrenade
+      - ColiseumGrenade
🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 112-112: wrong indentation: expected 6 but found 8

(indentation)


114-130: Add newline at end of file

The ColiseumShuttleGunDuster entity definition looks good, but the file is missing a newline character at the end. This is flagged as an error by YAMLlint.

          tags:
          - ColiseumMagazineGrenade
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 130-130: no new line character at the end of file

(new-line-at-end-of-file)

Content.Server/Corvax/PortalAutoLink/PortalAutoLinkSystem.cs (1)

22-43: Efficient implementation of portal auto-linking

The PortalAutoLink logic is well-implemented, searching for matching LinkKey values and removing the component from both entities after successful linking. One suggestion to consider:

You might want to add a debug log message when link attempts fail to help with troubleshooting:

                    if (_linkedEntitySystem.TryLink(entity, currentEntityUid, false))
                    {
                        RemComp<PortalAutoLinkComponent>(currentEntityUid);
                        RemComp<PortalAutoLinkComponent>(entity);
                        return true;
                    }
+                   else
+                   {
+                       Log.Debug($"Failed to link portal with key {entity.Comp.LinkKey}");
+                   }
Resources/Prototypes/Corvax/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml (6)

1-13: Review Entity Definition: ColiseumMagazineGrenadeEmpty

This new entity is defined to inherit from BaseMagazineGrenade and includes a BallisticAmmoProvider and a Tag component. However, YAMLlint detected an indentation issue at line 9 – it expected 6 spaces but found 8. Please adjust the indentation for the tags list to conform with the project’s YAML formatting guidelines.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 9-9: wrong indentation: expected 6 but found 8

(indentation)


14-30: Review Entity Definition: ColiseumMagazineGrenadeFrag

The definition for the frag grenade cartridge is clear and extends the base prototype. Note that the display name ("сoliseum frag grenade cartridge") seems to use an unexpected lowercase “с” (possibly a Cyrillic vs. Latin mix) which might be a typographical inconsistency. Also, YAMLlint flags an indentation problem at line 23 (expected 6 spaces but found 8) for the whitelist tags. Please adjust these indentations and verify the naming if it’s intentional.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 23-23: wrong indentation: expected 6 but found 8

(indentation)


31-47: Review Entity Definition: ColiseumMagazineGrenadeEMP

The EMP grenade cartridge’s entry follows the expected structure. However, YAMLlint reports an indentation issue at line 40 (expected 6 but found 8) for the tags under the whitelist key. Correcting this indentation will help maintain uniformity across magazine definitions.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 40-40: wrong indentation: expected 6 but found 8

(indentation)


48-64: Review Entity Definition: ColiseumMagazineGrenadeFlash

This entity’s definition is clear and mirrors the structure of similar grenade entries. Please note that YAMLlint complains about a wrong indentation at line 57 (expected 6 spaces but found 8). Adjusting that indentation will enhance readability and maintain consistency.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 57-57: wrong indentation: expected 6 but found 8

(indentation)


65-81: Review Entity Definition: ColiseumMagazineGrenadeBlast

The blast grenade cartridge appears well defined. Still, YAMLlint indicates an indentation warning at line 74. Please modify the indentation (to the expected 6 spaces) to comply with YAML style guidelines.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 74-74: wrong indentation: expected 6 but found 8

(indentation)


82-97: Review Entity Definition: ColiseumMagazineGrenadeBaton

This prototype is defined in line with its peers; however, pay attention to two issues:

  1. YAMLlint warns at line 91 about incorrect indentation (expected 6 but found 8).
  2. There is no newline at the end of the file (line 97), which could lead to formatting errors.
    Please correct these issues.
🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 91-91: wrong indentation: expected 6 but found 8

(indentation)


[error] 97-97: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/stairs.yml (2)

1-26: Review Entity: StairsPortal

The entity is structured to inherit from Stairs and includes several components (Portal, PortalAutoLink, InteractionOutline, Physics, Tag, and Fixtures). YAMLlint has flagged an indentation warning at line 14—expected 4 spaces but found 6 for the tags field under the Tag component. Please adjust the indentation to match the project’s style.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 14-14: wrong indentation: expected 4 but found 6

(indentation)


107-115: Review Entity: PortalAutoLinkBlue

The blue variant is similarly configured; however, YAMLlint reports that the file does not end with a newline (at line 115). Please add a newline at the end of the file.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 115-115: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/Windows/reinforced.yml (2)

1-57: Review Entity: ReinforcedWindowColiseum

This entity—for a reinforced window variant in the Coliseum—is clearly defined with numerous components (MeleeSound, WallMount, Tag, Sprite, Icon, Physics, Fixtures, Airtight, InteractionPopup, Appearance, StaticPrice, BlockWeather, DeleteOnTrigger, SpawnOnTrigger, RepeatingTrigger). YAMLlint highlights an indentation issue at line 20 (expected 4 spaces but found 6) in the Tag component. Please fix the indentation.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 20-20: wrong indentation: expected 4 but found 6

(indentation)


58-98: Review Entity: ReinforcedWindowDiagonalColiseum

The diagonal variant is configured with detailed components including a Fixtures section that uses a PolygonShape. YAMLlint reports a misindentation on line 81 (expected 10 spaces but found 12) in the vertices list and an error at line 98 due to a missing newline. Please adjust the indentation in the vertices array and add a newline at the end of the file.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 81-81: wrong indentation: expected 10 but found 12

(indentation)


[error] 98-98: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Maps/Corvax/Shuttles/Coliseum/kerefo.yml (3)

11-34: MapGrid and Chunk Data

The “entities” section starts by defining the base prototype (an empty proto) with a map grid. The grid’s chunks (lines 22–34) include very long tile strings along with an “ind” and “version” field.
• Verify that these long tile strings are correct and generated as expected.
• Consider whether the tile strings could be split into more manageable pieces or sourced from external files if they are used repeatedly.


47-304: DecalGrid – Detailed Nodes and Decals

The DecalGrid component (lines 47–304) defines many nodes with colors, IDs, and decal coordinate mappings.
• Verify that each node’s “id” (e.g. BrickTileSteelCornerNe, BrickTileSteelLineE, etc.) and the accompanying decal coordinate pairs match the artistic and gameplay design.
• The extensive list may be hard to maintain as the map evolves—consider if some of these definitions can be reused or parameterized.


313-393: GridAtmosphere and UniqueMixes

The GridAtmosphere block (lines 313–393) is set to version 2 and comes with detailed tile atmosphere data and uniqueMixes (e.g. volume, temperature, and moles).
• Confirm that these precise settings (including moles and chunkSize) match the simulation’s requirements.
• If similar settings are used in other maps (e.g. the forthcoming “crater.yml”), consider centralizing common atmospheric presets.

Resources/Maps/Corvax/Shuttles/Coliseum/crater.yml (2)

18-44: Initial Entity Setup and MapGrid Data

In the entities block (starting at line 18), the entity “jaraten” is defined along with its MapGrid chunk configuration.
• As with kerefo.yml, note the very long tile strings for each chunk. Verify their correctness, and consider an approach to better manage or reuse these strings if needed.


45-312: Environmental Physics and DecalGrid

The physics settings, gravity, and DecalGrid section (lines 45–... up to the GridAtmosphere block at line 314) mirror those seen in kerefo.yml.
• The DecalGrid (lines 57–... around line 266) now uses a different set of node IDs (e.g. GrayConcreteTrim* nodes) tailored to the crater’s surface textures. Please double‑check that these decal IDs, colors, and coordinate mappings accurately reflect the intended visual design.
• The GridAtmosphere section (lines 313–393) again defines a detailed atmosphere configuration. Consistency between this map and the “kerefo.yml” atmosphere settings might be desirable if they belong to a common theme.

Resources/Maps/Corvax/Shuttles/Coliseum/wound.yml (2)

1-10: Meta and Tilemap Configuration: Ensure Clarity and Future Maintainability

The meta section (lines 1–3) and the tilemap block (lines 4–11) are defined clearly and follow the expected format. However, consider adding inline comments to explain the significance of the tile indices (e.g. what “0: Space” versus “4: FloorDarkMono” represents) for future maintainers and mappers.


11-31: Entities Header & Empty Prototype Placeholder

Within the entities section (lines 11–31), note that the very first entity has:

- proto: ""

This empty prototype key is unusual. Please verify that this placeholder is intentional—if not, consider providing a proper identifier or removing it. Also, ensure that the associated MapGrid configuration (lines 21–31) aligns with the intended map design.

Resources/Maps/Corvax/Shuttles/Coliseum/faceless.yml (6)

1-11: Meta and Tilemap Configuration:
The YAML header and tilemap sections are structured correctly with a format version of 6. Please verify that the flag postmapinit: false and the numeric-to-tile mappings (e.g. “0: Space”, “6: FloorDarkPavement”, etc.) are fully aligned with the engine’s expectations.


12-27: MapGrid Setup and Parent Field:
The MapGrid configuration is defined using long tile strings for each chunk. Please confirm that the extensive tile string (e.g., line 26) is generated as intended. Also, note that the Transform component for uid 1 (line 21) uses parent: invalid—if this is a placeholder, consider either updating it or adding a comment explaining its purpose.


28-44: Physics and Component Configurations:
The physics-related components (Physics, Fixtures, Gravity) are provided with appropriate parameters such as angularDamping, linearDamping, and bodyType (Dynamic). The use of the custom YAML tag !type:SoundPathSpecifier for the gravityShakeSound on line 42 is acceptable provided your parser and engine support it.


44-97: DecalGrid and Visual Elements:
The DecalGrid component is configured with multiple nodes and decal definitions. The detailed positions and color codes (for example, '#0000008A' and '#FFFFFFFF') are clearly defined. Given the repetitive nature of these node definitions, you might consider reusing YAML anchors or breaking up the configuration into smaller, more maintainable segments if the file grows much larger in the future.


253-268: UniqueMixes and Environment Settings:
The uniqueMixes section defines two mixes with precise values for volume, temperature, and mole fractions. Double-check that the large arrays (including many zeroes) accurately reflect the intended default state for the environment.


285-2784: Additional Maintainability Improvement:
Given the sheer volume of Transform components repeating similar structure across many prototypes, you might explore using YAML anchors/aliases to reduce duplication. This can not only help with maintainability but also make future updates to common transformation properties easier to manage.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3551304 and 7ba4afb.

⛔ Files ignored due to path filters (24)
  • Resources/Textures/Corvax/Objects/Materials/Coliseum/coliseum_coin.rsi/coin.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Materials/Coliseum/coliseum_coin.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Materials/Coliseum/coliseum_coin.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Misc/shipyard_voucher.rsi/coliseum-inhand-left.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Misc/shipyard_voucher.rsi/coliseum-inhand-right.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Misc/shipyard_voucher.rsi/coliseum.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Misc/shipyard_voucher.rsi/vouchercoliseum.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-2100g.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-1.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-5.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-6.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Structures/Machines/coliseumexchanger.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Structures/Machines/coliseumexchanger.rsi/panel.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Structures/Machines/coliseumexchanger.rsi/unshaded.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Structures/Machines/coliseumvending.rsi/broken.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Structures/Machines/coliseumvending.rsi/normal-unshaded.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Structures/Machines/coliseumvending.rsi/off.png is excluded by !**/*.png
  • Resources/Textures/Corvax/Structures/Machines/coliseumvending.rsi/panel.png is excluded by !**/*.png
  • Resources/Textures/_NF/Structures/Machines/computers.rsi/shipyard_coliseum.png is excluded by !**/*.png
📒 Files selected for processing (59)
  • Content.Server/Corvax/PortalAutoLink/PortalAutoLinkComponent.cs (1 hunks)
  • Content.Server/Corvax/PortalAutoLink/PortalAutoLinkSystem.cs (1 hunks)
  • Content.Server/Corvax/StationDungeonMap/ExpansionMapComponent.cs (1 hunks)
  • Content.Server/Corvax/StationDungeonMap/ExpansionMapSystem.cs (1 hunks)
  • Content.Server/_NF/GameRule/Components/NFAdventureRuleComponent.cs (1 hunks)
  • Content.Server/_NF/GameRule/NfAdventureRuleSystem.cs (3 hunks)
  • Content.Server/_NF/GameRule/PointOfInterestSystem.cs (2 hunks)
  • Content.Shared/Shipyard/SharedShipyardSystem.cs (1 hunks)
  • Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/devices/misc/ship_vouchers.ftl (1 hunks)
  • Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/specific/coliseum/coin.ftl (1 hunks)
  • Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/weapons/guns/ammunition/explosives.ftl (1 hunks)
  • Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/weapons/guns/ammunition/magazines/grenade.ftl (1 hunks)
  • Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/coliseum/exchanger.ftl (1 hunks)
  • Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/computers/computers_shipyard.ftl (1 hunks)
  • Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/vending_machines.ftl (1 hunks)
  • Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/stairs.ftl (1 hunks)
  • Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/reagents/materials/coin.ftl (1 hunks)
  • Resources/Maps/Corvax/Shuttles/Coliseum/crater.yml (1 hunks)
  • Resources/Maps/Corvax/Shuttles/Coliseum/dragon.yml (1 hunks)
  • Resources/Maps/Corvax/Shuttles/Coliseum/faceless.yml (1 hunks)
  • Resources/Maps/Corvax/Shuttles/Coliseum/kerefo.yml (1 hunks)
  • Resources/Maps/Corvax/Shuttles/Coliseum/tobacco.yml (1 hunks)
  • Resources/Maps/Corvax/Shuttles/Coliseum/wound.yml (1 hunks)
  • Resources/Prototypes/Corvax/Catalog/VendingMachines/Inventories/coliseum.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Objects/Devices/Misc/ship_vouchers.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Objects/Specific/Coliseum/coin.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Structures/Machines/Coliseum/exchanger.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Structures/Machines/Computers/computers_shipyard.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Structures/Machines/vending_machines.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Structures/Shuttles/cannons.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Structures/Walls/walls.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Structures/Windows/reinforced.yml (1 hunks)
  • Resources/Prototypes/Corvax/Entities/Structures/stairs.yml (1 hunks)
  • Resources/Prototypes/Corvax/Maps/Outpost/corvax_frontier.yml (1 hunks)
  • Resources/Prototypes/Corvax/PointsOflnterest/Colisei.yml (1 hunks)
  • Resources/Prototypes/Corvax/Reagents/Materials/coin.yml (1 hunks)
  • Resources/Prototypes/Corvax/Recipes/Lathes/exchanger.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/bite.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/crater.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/dragon.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/faceless.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/fly.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/kerefo.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/nebulon.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/skeleton.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/tobacco.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/wild.yml (1 hunks)
  • Resources/Prototypes/Corvax/Shipyard/Coliseum/wound.yml (1 hunks)
  • Resources/Prototypes/Corvax/Stacks/Materials/coin.yml (1 hunks)
  • Resources/Prototypes/Corvax/tags.yml (1 hunks)
  • Resources/Textures/Clothing/Neck/Misc/pins.rsi/meta.json (1 hunks)
  • Resources/Textures/Corvax/Objects/Materials/Coliseum/coliseum_coin.rsi/meta.json (1 hunks)
  • Resources/Textures/Corvax/Objects/Misc/shipyard_voucher.rsi/meta.json (1 hunks)
  • Resources/Textures/Corvax/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json (1 hunks)
  • Resources/Textures/Corvax/Structures/Machines/coliseumexchanger.rsi/meta.json (1 hunks)
  • Resources/Textures/Corvax/Structures/Machines/coliseumvending.rsi/meta.json (1 hunks)
  • Resources/Textures/_NF/Structures/Machines/computers.rsi/meta.json (2 hunks)
🧰 Additional context used
🪛 YAMLlint (1.35.1)
Resources/Prototypes/Corvax/Reagents/Materials/coin.yml

[error] 7-7: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Objects/Devices/Misc/ship_vouchers.yml

[error] 19-19: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Recipes/Lathes/exchanger.yml

[error] 13-13: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/kerefo.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Stacks/Materials/coin.yml

[error] 6-6: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/wild.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/fly.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Catalog/VendingMachines/Inventories/coliseum.yml

[error] 15-15: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/PointsOflnterest/Colisei.yml

[warning] 31-31: wrong indentation: expected 6 but found 8

(indentation)


[error] 35-35: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/dragon.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/Walls/walls.yml

[warning] 60-60: wrong indentation: expected 4 but found 2

(indentation)


[warning] 62-62: wrong indentation: expected 6 but found 4

(indentation)


[warning] 75-75: wrong indentation: expected 8 but found 6

(indentation)


[error] 86-86: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/crater.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/Machines/Computers/computers_shipyard.yml

[error] 48-48: trailing spaces

(trailing-spaces)


[error] 92-92: trailing spaces

(trailing-spaces)

Resources/Prototypes/Corvax/tags.yml

[error] 39-39: trailing spaces

(trailing-spaces)

Resources/Prototypes/Corvax/Entities/Structures/Machines/Coliseum/exchanger.yml

[warning] 43-43: wrong indentation: expected 4 but found 6

(indentation)


[warning] 48-48: wrong indentation: expected 6 but found 8

(indentation)


[error] 48-48: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/wound.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/nebulon.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Objects/Specific/Coliseum/coin.yml

[error] 72-72: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/bite.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/stairs.yml

[warning] 14-14: wrong indentation: expected 4 but found 6

(indentation)


[error] 115-115: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/tobacco.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/Machines/vending_machines.yml

[error] 25-25: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml

[warning] 9-9: wrong indentation: expected 6 but found 8

(indentation)


[warning] 23-23: wrong indentation: expected 6 but found 8

(indentation)


[warning] 40-40: wrong indentation: expected 6 but found 8

(indentation)


[warning] 57-57: wrong indentation: expected 6 but found 8

(indentation)


[warning] 74-74: wrong indentation: expected 6 but found 8

(indentation)


[warning] 91-91: wrong indentation: expected 6 but found 8

(indentation)


[error] 97-97: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/Windows/reinforced.yml

[warning] 20-20: wrong indentation: expected 4 but found 6

(indentation)


[warning] 81-81: wrong indentation: expected 10 but found 12

(indentation)


[error] 98-98: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Shipyard/Coliseum/faceless.yml

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Structures/Shuttles/cannons.yml

[warning] 112-112: wrong indentation: expected 6 but found 8

(indentation)


[error] 130-130: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml

[error] 59-59: no new line character at the end of file

(new-line-at-end-of-file)

🪛 Biome (1.9.4)
Resources/Textures/_NF/Structures/Machines/computers.rsi/meta.json

[error] 4-4: The key copyright was already declared.

This where a duplicated key was declared again.

If a key is defined multiple times, only the last definition takes effect. Previous definitions are ignored.

(lint/suspicious/noDuplicateObjectKeys)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: Test Packaging
  • GitHub Check: build (ubuntu-latest)
🔇 Additional comments (50)
Resources/Prototypes/Corvax/Maps/Outpost/corvax_frontier.yml (1)

37-38: Trailing Newline Addition

The addition of a blank line at the end of the file complies with best practices (e.g., POSIX standards) and avoids potential newline-related issues in some environments. This minimal change is acceptable.

Content.Shared/Shipyard/SharedShipyardSystem.cs (1)

24-24:

❓ Verification inconclusive

Verify dictionary update in SharedShipyardSystem

The addition of the Coliseum entry to the ShipyardConsoleUiKey enum looks good. However, note line 10's comment: "when adding a new ui key, don't forget to modify the dictionary in SharedShipyardSystem". Ensure that any corresponding dictionary in the SharedShipyardSystem class (potentially in another file) has been updated to include this new enum value.


🏁 Script executed:

#!/bin/bash
# Check if there's a dictionary in SharedShipyardSystem that maps the enum values
rg -A 10 -B 10 "Dictionary.*ShipyardConsoleUiKey" --type cs

Length of output: 61


Action Required: Manual Verification of Dictionary Update

The recent addition of the Coliseum entry to the ShipyardConsoleUiKey enum looks acceptable. However, please ensure that the corresponding dictionary mapping within the SharedShipyardSystem (or any related file handling ShipyardConsoleUiKey values) has been updated accordingly. An automated search did not produce any confirmation of this update, so a manual review of the dictionary in SharedShipyardSystem is required to verify that the new enum value is properly handled.

  • Verify the dictionary in the SharedShipyardSystem class (or any file where the mapping is defined) includes an entry for Coliseum.
  • If the entry is missing, update the dictionary to include the new enum value as per the comment on line 10.
Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/reagents/materials/coin.ftl (1)

1-1: LGTM: Proper localization entry for coliseum coin

The Russian localization for the coliseum coin ("колизейный жетон") is appropriately implemented, aligning with the PR's focus on introducing Coliseum-related features.

Resources/Textures/Clothing/Neck/Misc/pins.rsi/meta.json (1)

9-95: Consistent JSON Formatting in "states" Array
The reformatting of the "states" array improves the uniformity and readability of the JSON. There are no logical changes; the modifications purely affect whitespace and indentation for consistency.

Resources/Textures/Corvax/Objects/Materials/Coliseum/coliseum_coin.rsi/meta.json (1)

1-20: Coin Asset Metadata Quality
The metadata for the coin asset is defined correctly with appropriate size, license, and state definitions. No changes to functionality are introduced.

Resources/Prototypes/Corvax/tags.yml (1)

31-38: Proper Addition of Coliseum Tags
The new tags ColiseumGrenade, ColiseumMagazineGrenade, and ColiseumCoin have been inserted in the correct location relative to existing tags.

Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/devices/misc/ship_vouchers.ftl (1)

1-2: Localization entries for Coliseum shuttle voucher look good

The Russian localization for the Coliseum shuttle voucher ("ваучер шаттла колизея") and its description are well-defined and consistent with the Coliseum feature being implemented.

Resources/Textures/Corvax/Objects/Misc/shipyard_voucher.rsi/meta.json (1)

1-23: RSI metadata for shipyard voucher is properly structured

The metadata file correctly defines the necessary states for the Coliseum voucher item, including the main sprite and in-hand variants. The attribution to Autsaider matches what was mentioned in the PR description.

Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/coliseum/exchanger.ftl (1)

1-2: Localization entries for token exchanger are appropriate

The Russian localization for the Coliseum token exchanger ("обменник жетонов") and its description properly explain the functionality of exchanging tokens for money, which aligns with the token exchange system mentioned in the PR objectives.

Resources/Textures/Corvax/Structures/Machines/coliseumvending.rsi/meta.json (1)

1-29: RSI metadata for Coliseum vending machine looks good

The metadata file correctly defines all necessary states for the vending machine (normal, broken, off, panel) and includes animation delays for the normal-unshaded state.

Content.Server/Corvax/StationDungeonMap/ExpansionMapComponent.cs (2)

1-20: ExpansionMapComponent implementation looks good

This component for loading additional maps at round start is well-structured and properly documented. It will be useful for implementing the Coliseum feature mentioned in the PR objectives.


11-11:

❓ Verification inconclusive

Verify ExpansionMapSystem implementation

The component is restricted to ExpansionMapSystem through the Access attribute, but I don't see the implementation of this system in the provided files. Please ensure that ExpansionMapSystem is correctly implemented and handles the loading of maps as expected.


🏁 Script executed:

#!/bin/bash
# Check if ExpansionMapSystem exists in the codebase
rg -i "public sealed class ExpansionMapSystem" --type cs

Length of output: 58


I'll generate an additional shell script to search more broadly for any declaration or reference to ExpansionMapSystem. This should help confirm whether the system is implemented even if it's not declared as a public sealed class.


🏁 Script executed:

#!/bin/bash
# Search for any class declaration of ExpansionMapSystem
echo "Searching for class declarations of ExpansionMapSystem..."
rg -i "class\s\+ExpansionMapSystem" --type cs

# Additionally, search for any mention of ExpansionMapSystem in the repository
echo "Searching for any occurrence of 'ExpansionMapSystem' in the repository..."
rg -i "ExpansionMapSystem" --type cs

Length of output: 617


ExpansionMapSystem Implementation Confirmed – Please Manually Verify Map Loading

The ExpansionMapSystem is implemented as a public sealed partial class in the file:

  • Content.Server/Corvax/StationDungeonMap/ExpansionMapSystem.cs

Since the component is restricted via the Access attribute to this system, please ensure that its map loading logic (and any related functionality) is fully verified—either via integration tests or a manual review—so that it meets the expected behavior.

Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/computers/computers_shipyard.ftl (1)

1-2: Localization for new Coliseum shipyard console added correctly

The translation for the new ent-ComputerShipyardColiseum entity follows the correct FTL format and maintains consistency with other shipyard console entries in the file. The description adds flavor text appropriate for the Coliseum feature mentioned in the PR objectives.

Resources/Prototypes/Corvax/Catalog/VendingMachines/Inventories/coliseum.yml (1)

1-14: Vending machine inventory uses extremely large quantities

The vending machine inventory is defined with a quantity of 4294967295 (maximum 32-bit unsigned integer value) for each item. While this effectively creates unlimited supply, consider if this is intentional from a game balance perspective. If this is by design for the Coliseum feature, then it's appropriate.

Resources/Prototypes/Corvax/Stacks/Materials/coin.yml (1)

1-6: Coliseum coin stack definition looks good

The stack definition for the Coliseum coin is properly structured with all required properties. The maximum stack count of 10 seems reasonable for a special currency item.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 6-6: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Recipes/Lathes/exchanger.yml (2)

1-6: Exchange rate for ColiseumCoin to SpaceCash25000

The recipe allows exchanging 1 Coliseum coin for 25,000 SpaceCash. Ensure this exchange rate aligns with the game economy design and Coliseum rewards structure.


8-13: Recipe for special plushie requires 5 Coliseum coins

The recipe for HolyPlushieOrangeFox requires 5 Coliseum coins, which is a reasonable premium for a collectible item. The completion time of 1 unit matches the other recipe for consistency.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 13-13: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/Corvax/Entities/Objects/Devices/Misc/ship_vouchers.yml (1)

1-19: Entity Definition for ShipVoucherColiseum

The new ShipVoucherColiseum entity is well-defined, clearly listing its parent, unique ID, name, description, and all necessary components (Sprite, Item, ShipyardVoucher, CargoSellBlacklist, and StaticPrice). The structure and properties effectively support its intended use in allowing the purchase of a shuttle for Coliseum combat.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 19-19: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/specific/coliseum/coin.ftl (1)

1-4: Localization Entries for Coliseum Coin

The localization file correctly defines both ent-ColiseumCoin and ent-ColiseumCoinBlocked along with their respective descriptions. This addition improves the Russian language support for the Coliseum feature.

Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/vending_machines.ftl (1)

1-2: Localization for Coliseum Vending Machine

The entries for ent-ColiseumVendingMachine and its description are concise and clear. Just ensure that the term КолизейМат is the intended label for this entity.

Resources/Prototypes/Corvax/Shipyard/Coliseum/nebulon.yml (1)

1-26: Commented-out configuration requires clarification.

This entire file contains commented-out code for a "Nebulon" (Небулон) vessel and game map. While the structure mirrors the other Coliseum configurations, it's completely disabled.

Is this intentionally disabled for future implementation? Consider either:

  1. Removing the file if it's not needed
  2. Adding a comment at the top explaining why it's commented out
  3. Uncommenting if it should be active

Also, add a newline at the end of the file:

#          availableJobs: {}
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Content.Server/_NF/GameRule/NfAdventureRuleSystem.cs (2)

201-201: New coliseum POI collection initialized correctly.

The new list for Coliseum points of interest follows the existing pattern in the code.


220-221: Added code branch to handle new Coliseum stations.

The conditional logic correctly identifies and collects points of interest with the "coliseiStations" spawn group.

Resources/Prototypes/Corvax/Entities/Structures/Machines/vending_machines.yml (1)

16-18: Verify the sprite file exists

The Sprite component references Corvax/Structures/Machines/coliseumvending.rsi. Ensure this file exists and contains all the required states (off, normal-unshaded, deny-unshaded, broken, panel) to prevent rendering issues at runtime.

Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/weapons/guns/ammunition/explosives.ftl (1)

1-10: LGTM: Proper localization for grenade entities

The localization entries are correctly formatted and consistently use the base grenade description reference { ent-BaseGrenade.desc }, which is good for maintaining consistency across similar items. Each grenade type has an appropriate Russian translation that clearly indicates its purpose for the coliseum.

Resources/Prototypes/Corvax/Shipyard/Coliseum/wound.yml (1)

16-26: Consider adding at least basic job definitions

Currently, the StationJobs component has an empty jobs dictionary. If players are expected to spawn on this station, you may want to add at least some basic job definitions.

Are players intended to spawn on this station? If so, please consider adding job definitions.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/weapons/guns/ammunition/magazines/grenade.ftl (1)

1-12: Localization Strings Validated.
The new grenade magazine localization entries are clear and consistent. The keys and their descriptions correctly reference the base descriptions. Excellent work!

Content.Server/_NF/GameRule/PointOfInterestSystem.cs (1)

23-23: Dependency injection looks good

The MapSystem dependency is properly injected and will be needed for creating a new map in the Generatecolisei method.

Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/stairs.ftl (1)

1-30: Localization entries look correct

The Russian localization entries for the new stair and portal entities follow the expected format and are consistent with the project's localization system. All entries include the necessary name, suffix, and description fields.

Content.Server/Corvax/PortalAutoLink/PortalAutoLinkSystem.cs (2)

1-10: Dependencies and namespace look good

The system properly imports the required dependencies and follows the namespace convention for the Corvax feature area.


11-21: Event subscription looks correct

The system correctly subscribes to the MapInitEvent for entities with the PortalAutoLinkComponent and calls the appropriate handler.

Resources/Prototypes/Corvax/Entities/Structures/stairs.yml (8)

27-36: Review Entity: StairStagePortal

The prototype for the stage portal using a steel suffix is clear with valid sprite settings and components. No issues were detected.


37-46: Review Entity: StairWhitePortal

This entity’s definition is straightforward and properly organizes its sprite component. It meets the design requirements.


47-56: Review Entity: StairStageWhitePortal

The prototype for the stage white portal is defined correctly, with proper sprite and drawdepth settings.


57-66: Review Entity: StairDarkPortal

The dark portal prototype is set up with an appropriate parent and sprite configuration. Ensure that the portal components function as intended in gameplay.


67-76: Review Entity: StairStageDarkPortal

This entity is configured with the expected sprite and drawdepth attributes. Everything appears well integrated.


77-86: Review Entity: StairWoodPortal

The wood portal entity is correctly structured with clear inheritance and component details.


87-96: Review Entity: StairStageWoodPortal

The stage variant for the wood portal is defined properly and its component structure is consistent.


97-106: Review Entity: PortalAutoLinkRed

The portal autolink entity for the red variant is set up with proper portal parameters. No issues noted.

Resources/Maps/Corvax/Shuttles/Coliseum/dragon.yml (4)

1-31: Review Map Configuration: Dragon.yml – Meta & Tilemap

The meta section and tilemap definitions are comprehensive and appear to set up the groundwork for the Coliseum shuttle map environment. Please confirm that the tile indices and associated asset references exactly match the new map design.


621-628: Review Prototype: ColiseumCoinBlocked

A new prototype for ColiseumCoinBlocked has been introduced with a clear Transform component. Verify that the provided position aligns with the intended placement within the new economy system.


629-636: Review Prototype: ColiseumShuttleGunFriendship

The shuttle gun friendship prototype is succinctly defined with the appropriate rotation and position settings. Please double-check that these parameters integrate properly with the overall shuttle mechanics.


637-643: Review Prototype: ComputerTabletopShuttle

The configuration for ComputerTabletopShuttle appears correct with its Transform settings. Ensure that this prototype’s functionality is validated during gameplay testing.

Resources/Maps/Corvax/Shuttles/Coliseum/tobacco.yml (2)

1-19: Review Map Metadata & Tilemap – Tobacco.yml

The meta and tilemap sections are defined clearly and set the foundation for the Coliseum-themed shuttle map. Please ensure that the tile assignments and graphical references accurately reflect the intended visual style.


20-43: Review Entity Group Configuration

The initial entity group (starting at uid 1) defines a MapGrid with extensive tile string data. Verify that the grid data is formatted correctly and that the tile patterns correspond to the new map aesthetic.

Resources/Maps/Corvax/Shuttles/Coliseum/kerefo.yml (2)

1-10: Meta and Tilemap Configuration

The metadata block (lines 1–3) and tilemap (lines 4–10) appear to be set up correctly for format 6. Please confirm that each tile mapping (e.g. “Space”, “FloorDarkPlastic”, etc.) is defined elsewhere in the project so that no tile type is missing.


35-46: Physics and Fixtures Section

The physics configuration (lines 35–41) is standard: the body is set as InAir with proper damping values, no fixed rotation, and dynamic type. Make sure the “Fixtures” section (line 42–43) is intentionally empty and that the Gravity setting (lines 44–46) uses the expected sound asset.

Resources/Maps/Corvax/Shuttles/Coliseum/crater.yml (1)

1-17: Meta and Tilemap Configuration

The crater map’s metadata (lines 1–3) and the tilemap settings (lines 4–13) define several new floor types (e.g. “FloorGrayConcrete”, “FloorMetalDiamond”, “FloorShuttleBlack”, etc.).
• Ensure that these new tile identifiers are documented and available in the game’s asset library.

Resources/Maps/Corvax/Shuttles/Coliseum/wound.yml (1)

223-2630:

❓ Verification inconclusive

New Prototype Additions for Coliseum Feature: Consistency, Organization & Verification

This file introduces an extensive set of new prototypes for the Coliseum (starting at line 223 and continuing through to the end). These definitions cover a wide range of game entities such as ship components, environmental devices, structural elements, and interactive elements. The YAML structure is generally consistent, with each block defining the prototype’s UID, a list of entities, and their associated components (e.g. Transform, DeviceList, AtmosPipeColor, etc.).

Please review and consider the following recommendations:

UID Uniqueness & Validity:
Verify that all UID values (for example, 299 for AirAlarm, 275 for AirCanister, 117 for AirlockBarGlassLocked, etc.) are unique and correctly fall within the expected ranges. A misconfigured UID could lead to conflicts during map initialization.

Maintainability and Organization:
Due to the file’s length and the high density of similar prototype definitions, consider one of the following:

  • Splitting by Category: Divide prototypes into separate YAML files based on their functional categories (e.g. environmental objects, ship components, interactive devices).
  • Using YAML Anchors/References: If many components (such as Transform setups) are repeated, YAML anchors could be used to reduce duplication.

Inline Documentation:
Adding comments above each prototype or grouping header (such as “-- Airlock Components --”, “-- Atmospheric Devices --”, etc.) will aid future developers and mappers in quickly identifying the purpose of each section.

Data Consistency:
Double-check that all transform coordinates, rotation values (noting the use of “rad”), and device lists are correct and conform to the game’s spatial and interactive requirements. Any mismatch here could impact gameplay behavior.

Overall, these additions successfully encompass the comprehensive Coliseum feature; just ensure that the organizational structure and data consistency are maintained for long‐term ease of support.


Below is a shell script to verify that all UID values in this YAML file are unique:

Once you run this script, if no duplicate UIDs are printed then the UID uniqueness check passes.


Coliseum YAML Prototypes Verified – Follow-Up Organizational Suggestions

  • UID Uniqueness:
    The UID values (e.g. 299, 275, 117, etc.) have been checked for duplicates (using the script above). Ensure that running this check in your environment confirms that all UID values are unique, as duplicate UIDs could lead to map initialization conflicts.

  • Maintainability & Organization:
    Given the file’s length and the similar format used across many prototypes, consider either:

    • Splitting the YAML definitions into separate files by category (e.g. environmental objects, ship components, interactive devices), or
    • Employing YAML anchors/references to reduce duplication for repeated component setups.
  • Inline Documentation:
    Adding descriptive comments or section headers (e.g. “-- Airlock Components --”, “-- Environmental Devices --”) immediately above groups of related prototypes will improve readability and future maintenance.

  • Data Consistency:
    Double-check that all transform coordinates, rotation values (noting the “rad” units), and device lists match the game’s spatial and logical requirements.

Overall, these additions for the Coliseum feature are comprehensive. Please review the organizational suggestions and verify data consistency in your environment to ensure long‐term maintainability.


🏁 Script executed:

#!/bin/bash
# Extract all UID numbers from the YAML file and list any duplicates.
grep -oP 'uid:\s*\K\d+' Resources/Maps/Corvax/Shuttles/Coliseum/wound.yml | sort | uniq -d

Length of output: 92


Below is an updated review comment based on our additional UID verification. Note that the initial UID check (using a grep/sort/uniq pipeline) produced no duplicates—which suggests—at least from this automated inspection—that all UID values are unique. However, please run a manual check (or the additional script below) to confirm the complete frequency counts, as the output was minimal:

#!/bin/bash
echo "UID frequency counts (each should be 1):"
grep -oP 'uid:\s*\K\d+' Resources/Maps/Corvax/Shuttles/Coliseum/wound.yml | sort -n | uniq -c

Coliseum YAML Prototypes: Consistency, Organization & Verification

  • UID Uniqueness:
    The automated check shows no duplicate UIDs (e.g. 299, 275, 117, etc.). Please perform a manual verification in your environment to confirm that each UID appears exactly once as expected to avoid any conflicts during map initialization.

  • Maintainability & Organization:
    Given the file’s extensive size and the density of similar prototype definitions, consider one of the following enhancements:

    • Splitting by Category: Divide the prototypes into separate YAML files based on functionality (e.g. environmental objects, ship components, interactive devices).
    • Using YAML Anchors/References: Utilize YAML anchors for recurring component setups (like common Transform configurations) to reduce duplication.
  • Inline Documentation:
    Adding clear inline comments or grouping headers (e.g. “-- Airlock Components --” or “-- Environmental Devices --”) before each section will help future developers and mappers understand the file’s structure.

  • Data Consistency:
    Verify that all transform coordinates, rotation values (using "rad" units), and device lists conform to the game’s spatial and interactive requirements. Inconsistencies here could lead to unexpected gameplay behavior.

Overall, the new prototypes successfully expand the Coliseum feature set. Please review the above recommendations and perform a manual verification of the UID frequencies and component data to ensure long‑term maintainability and consistency in the codebase.

Resources/Maps/Corvax/Shuttles/Coliseum/faceless.yml (1)

205-252: GridAtmosphere Configuration:
The GridAtmosphere block provides environmental data with tile values (e.g., 61152, 65522) and a version indicator. Please verify that all numerical values (including those under “tiles”) are within the expected ranges for proper simulation. Also, ensure that the overall structure matches the required schema for atmospheric calculations in the game engine.

…t.cs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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