-
Notifications
You must be signed in to change notification settings - Fork 30
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
base: master
Are you sure you want to change the base?
Колизей #111
Conversation
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
/gemini summary |
Warning Gemini encountered an error creating the summary. You can try again by commenting |
Много букав |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
WalkthroughThis 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
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
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
Suggested labels
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms (5)
🪧 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 (
|
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: 1
🔭 Outside diff range comments (2)
Resources/Maps/Corvax/Shuttles/Coliseum/dragon.yml (1)
1222-1230
: 🛠️ Refactor suggestionGeneral 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 suggestionPrototype 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 specificThe 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:
- Making the default value null (since it's already nullable) to force explicit setting
- 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 specificThe 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 forColiseumCoin
This new material is well-defined with all necessary properties, includingstackEntity
,icon
,color
, andprice
, 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 lineThere'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 collectionsInstead 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 fileYAML 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 fileYAML 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 fileYAML 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 FileYAMLlint 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 DefinitionThe vessel entity for
Kerefo
is well-structured with all necessary fields such asid
,parent
,name
,price
,category
,group
, andshuttlePath
.
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 FormattingThe gameMap entity for
Kerefo
is clearly defined with details includingmapName
,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 JSONThis 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 VerificationThe vessel definition for "Crater" is well-formed with all the expected attributes. One minor suggestion is to consider using a lowercase
null
for theguidebookPage
value if it is meant to represent a null value consistently throughout the codebase.
11-26
: Game Map Block & EOF NewlineThe 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 VerificationThe vessel configuration for "Bite" is clear and includes all the necessary fields. As a consistency improvement, consider using a lowercase
null
for theguidebookPage
if a null value is intended.
11-26
: Game Map Block & EOF NewlineThe 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 VerificationThe vessel setup for "Faceless" follows the established pattern. For uniformity with YAML best practices, you might consider replacing
Null
with lowercasenull
for theguidebookPage
attribute.
11-26
: Game Map Block & EOF NewlineThe 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 VerificationThe 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 lowercasenull
for consistency.
11-26
: Game Map Block & EOF NewlineThe 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 VerificationThe 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 lowercasenull
might be preferable for consistency.
11-27
: Game Map Block & EOF NewlineThe 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-FrontierResources/Prototypes/Corvax/PointsOflnterest/Colisei.yml (3)
8-8
: Consider clarifying the inline commentThe 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 sectionThe 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 fileAdd 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 fileThere 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 fileAdd 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 fileAdd 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 failsCurrently, 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 validationThe 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 grammarThe 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 consistencyThe
ColiseumCoinBlocked
entity doesn't inherit fromBaseItem
unlike its counterpartColiseumCoin
. 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 fileThe 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 fileThe 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 fileThe 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 whitespaceRemove 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 consistencyUnlike the other shipyard consoles that inherit from
ComputerShipyardBase
, this console inherits directly fromBaseComputer
. 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 whitespaceRemove 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 thestaticRecipes
Block.
The list items understaticRecipes
(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 theMaterialStorage
Block.
Thetags
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 theDestructible
Component.
The list item starting at line 60 is under-indented. According to the YAML style guidelines used by the linter, list items undercomponents
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 thetrigger
Block.
The block underthresholds
(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 theChangeConstructionNodeBehavior
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 IDColiseumGrenadeBaton
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 keycopyright
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 conventionsThe implementation logic for generating coliseum POIs on a separate map looks solid, but:
- Method name
Generatecolisei
should follow C# PascalCase convention (should beGenerateColisei
)- 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 entityThe 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 fileThe 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-linkingThe 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: ColiseumMagazineGrenadeEmptyThis 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 thetags
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: ColiseumMagazineGrenadeFragThe 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: ColiseumMagazineGrenadeEMPThe 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: ColiseumMagazineGrenadeFlashThis 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: ColiseumMagazineGrenadeBlastThe 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: ColiseumMagazineGrenadeBatonThis prototype is defined in line with its peers; however, pay attention to two issues:
- YAMLlint warns at line 91 about incorrect indentation (expected 6 but found 8).
- 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: StairsPortalThe 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 thetags
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: PortalAutoLinkBlueThe 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: ReinforcedWindowColiseumThis 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: ReinforcedWindowDiagonalColiseumThe 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 DataThe “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 DecalsThe 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 UniqueMixesThe 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 DataIn 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 DecalGridThe 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 MaintainabilityThe 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 PlaceholderWithin 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 flagpostmapinit: 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) usesparent: 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
⛔ 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 AdditionThe 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 csLength 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 coinThe 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 tagsColiseumGrenade
,ColiseumMagazineGrenade
, andColiseumCoin
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 goodThe 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 structuredThe 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 appropriateThe 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 goodThe 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 goodThis 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 theAccess
attribute, but I don't see the implementation of this system in the provided files. Please ensure thatExpansionMapSystem
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 csLength 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 csLength 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 correctlyThe 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 quantitiesThe 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 goodThe 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 SpaceCash25000The 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 coinsThe 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 ShipVoucherColiseumThe 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 CoinThe localization file correctly defines both
ent-ColiseumCoin
andent-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 MachineThe 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:
- Removing the file if it's not needed
- Adding a comment at the top explaining why it's commented out
- 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 existsThe 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 entitiesThe 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 definitionsCurrently, 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 goodThe 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 correctThe 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 goodThe system properly imports the required dependencies and follows the namespace convention for the Corvax feature area.
11-21
: Event subscription looks correctThe 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: StairStagePortalThe 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: StairWhitePortalThis entity’s definition is straightforward and properly organizes its sprite component. It meets the design requirements.
47-56
: Review Entity: StairStageWhitePortalThe prototype for the stage white portal is defined correctly, with proper sprite and drawdepth settings.
57-66
: Review Entity: StairDarkPortalThe 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: StairStageDarkPortalThis entity is configured with the expected sprite and drawdepth attributes. Everything appears well integrated.
77-86
: Review Entity: StairWoodPortalThe wood portal entity is correctly structured with clear inheritance and component details.
87-96
: Review Entity: StairStageWoodPortalThe stage variant for the wood portal is defined properly and its component structure is consistent.
97-106
: Review Entity: PortalAutoLinkRedThe 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 & TilemapThe 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: ColiseumCoinBlockedA 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: ColiseumShuttleGunFriendshipThe 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: ComputerTabletopShuttleThe 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.ymlThe 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 ConfigurationThe 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 ConfigurationThe 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 SectionThe 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 ConfigurationThe 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 -dLength 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 -cColiseum 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.
Content.Server/_NF/GameRule/Components/NFAdventureRuleComponent.cs
Outdated
Show resolved
Hide resolved
…t.cs Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
НЕ МЕРЖИТЬ ДО ОБНОВЛЕНИЯ КАРТЫ
About the PR
По сути для обычных смертных ничего нет, кроме колизея. Для мапперов добавлена возможность делать этажи для карт и порталы между ними
Why / Balance
Новый интересный способ заработка, а не эти ваши дальнобои
Media
Summary by CodeRabbit
New Features
Localization