Skip to content

New shuttle "JSS-MED Apotherkerin" - #5169

Merged
Rinary1 merged 19 commits into
ss14Starlight:starlight-devfrom
Infiniteb1u3:starlight-dev
Jul 28, 2026
Merged

New shuttle "JSS-MED Apotherkerin"#5169
Rinary1 merged 19 commits into
ss14Starlight:starlight-devfrom
Infiniteb1u3:starlight-dev

Conversation

@Infiniteb1u3

@Infiniteb1u3 Infiniteb1u3 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Short description

Adds a new small Chem/botany shuttle to shipyard console, priced at 40k Spesos, 18x11 in size

Why we need to add this

Adding a new shuttle to the Shipyard inventory.
Allows chemists or botany players to focus on producing chems/plants that they are primarily interested without affecting the station's workflow

Media (Video/Screenshots)

image image image

Checks

  • I do not require assistance to complete the PR.
  • Before posting/requesting review of a PR, I have verified that the changes work.
  • I have added screenshots/videos of the changes, or this PR does not change in-game mechanics.
  • I affirm that my changes are licensed under the MIT License and grant permission for use in this repository under its conditions.

Changelog
🆑

  • add: new shuttle JSS-MED Apotherkerin to Shipyard console.

A shuttle designed for chemistry botany cooperation
…sos, 18x11 in size

Why we need to add this:
Adding a new shuttle to the Shipyard inventory and allowing chemists or botany players to focus on producing chems/plants that they are primarily interested in directly
@Infiniteb1u3
Infiniteb1u3 requested a review from a team July 17, 2026 12:16
@github-actions github-actions Bot added size/XL S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. Changes: Map Changes: C# Changes: Prototypes and removed S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. labels Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds the JSS MED Apotherkerin shuttle map, registers it in the shipyard catalog, and includes it in APC grid-load integration tests.

Changes

Apotherkerin shuttle content

Layer / File(s) Summary
Medical Apotherkerin layout and catalog
Resources/Maps/_Starlight/Shuttles/JSS_MED_Apotherkerin.yml, Resources/Prototypes/_Starlight/Catalog/default_shipyard_catalog.yml
Adds the shuttle’s grid, atmosphere configuration, devices, furnishings, infrastructure, interactions, and vessel catalog entry.
APC grid-load test coverage
Content.IntegrationTests/Tests/_Starlight/Power/GridPowerTests.cs
Adds the Apotherkerin map to the parameterized APC grid-load test inputs.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Suggested reviewers: cawsforconcern, redmushie, rinary1

🚥 Pre-merge checks | ✅ 6 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
No Magic Numbers ⚠️ Warning Nice shuttle work overall, but StationCargoOrderDatabaseComponent adds a bare Capacity = 70 business limit; GunneryConsoleWindow.xaml.cs also hardcodes MinHeight = 24. Extract the cargo order cap into a named constant (and any UI sizing literal kept in code-behind), then use those names instead of raw numbers.
Avoid Service Locator ⚠️ Warning Nice feature work, but the diff still uses IoCManager.Resolve<IPrototypeManager>() in CargoProductPrototype getters, which is service-locator usage. Refactor those prototype lookups to avoid static resolves—pass IPrototypeManager through injection/construction or move the lookup into an injected service.
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed Matches the main change: it announces the new JSS-MED Apotherkerin shuttle.
Description check ✅ Passed The description clearly describes the new shuttle, its price, size, and purpose, so it aligns with the changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
No Hardcoded Ecs Parameters ✅ Passed The gameplay tunables moved into component/prototype data (MaxPressure, PalletType, gas fields, cannon Category), and the touched systems read those values instead of hardcoding them.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
Resources/Maps/_Starlight/Shuttles/JSS_MED_Apotherkerin.yml (1)

506-524: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider using proper airlock linking instead of directional fans.

This shuttle layout is absolutely fantastic, and I really appreciate the detailed atmospherics setup you've built here! Just a small heads-up regarding project conventions: based on learnings, directional fans are intended to be deprecated for SS14 mapping. Instead of using them, we should recommend proper airlock/door prototype usage and ensure the correct DeviceLinkSource prototype is used with a matching linkedPorts pairing to establish the intended door/airlock link behavior. You might want to safely remove these fans since your airlocks already look to be properly placed!

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Maps/_Starlight/Shuttles/JSS_MED_Apotherkerin.yml` around lines 506
- 524, Remove the AtmosDeviceFanDirectional prototype and its entities (uids 16,
17, and 18) from the shuttle layout. Preserve the existing airlock and door
placements, relying on their proper DeviceLinkSource and linkedPorts
configuration for airlock linking instead of directional fans.

Source: Learnings

Resources/Maps/_Starlight/Shuttles/JSS_Apothekerin.yml (1)

491-509: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove deprecated directional fans and use proper external airlocks.

What a fantastic and cozy shuttle design! I really love the layout and how you've neatly set up the different departments.

However, please note that the use of directional fans (AtmosDeviceFanDirectional) to prevent space leaks is deprecated. Based on learnings, reviewers should recommend proper airlock/door prototype usage (e.g., using AirlockExternalGlassLocked or the appropriate shuttle external equivalent for space-facing doors) and ensure the correct DeviceLinkSource prototype is used with a matching linkedPorts pairing to establish the intended airlock link behavior.

Please consider removing these fans and ensuring the overlapping shuttle airlocks are of the correct external-facing variants.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Maps/_Starlight/Shuttles/JSS_Apothekerin.yml` around lines 491 -
509, Remove the AtmosDeviceFanDirectional entities from the shuttle and replace
the associated space-facing openings with the appropriate external airlock/door
prototypes, such as AirlockExternalGlassLocked or the shuttle-specific
equivalent. Update the corresponding DeviceLinkSource and linkedPorts pairing so
each airlock link retains the intended behavior, and ensure overlapping shuttle
airlocks use external-facing variants.

Source: Learnings

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@Resources/Maps/_Starlight/Shuttles/JSS_Apothekerin.yml`:
- Around line 491-509: Remove the AtmosDeviceFanDirectional entities from the
shuttle and replace the associated space-facing openings with the appropriate
external airlock/door prototypes, such as AirlockExternalGlassLocked or the
shuttle-specific equivalent. Update the corresponding DeviceLinkSource and
linkedPorts pairing so each airlock link retains the intended behavior, and
ensure overlapping shuttle airlocks use external-facing variants.

In `@Resources/Maps/_Starlight/Shuttles/JSS_MED_Apotherkerin.yml`:
- Around line 506-524: Remove the AtmosDeviceFanDirectional prototype and its
entities (uids 16, 17, and 18) from the shuttle layout. Preserve the existing
airlock and door placements, relying on their proper DeviceLinkSource and
linkedPorts configuration for airlock linking instead of directional fans.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: a1970fcb-45ff-46d5-80ae-6a3cbfbebb1e

📥 Commits

Reviewing files that changed from the base of the PR and between 9e53d79 and b34b528.

📒 Files selected for processing (4)
  • Content.IntegrationTests/Tests/_Starlight/Power/GridPowerTests.cs
  • Resources/Maps/_Starlight/Shuttles/JSS_Apothekerin.yml
  • Resources/Maps/_Starlight/Shuttles/JSS_MED_Apotherkerin.yml
  • Resources/Prototypes/_Starlight/Catalog/default_shipyard_catalog.yml

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 17, 2026
@CawsForConcern CawsForConcern self-assigned this Jul 17, 2026
@CawsForConcern CawsForConcern added T: New Content and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Jul 17, 2026

@CawsForConcern CawsForConcern left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

review

shuttle itself looks good - i like the decals. didn't find any issues with the layout / distro / waste. the "shuttle keys" are a fun touch

Image

categorization and pricing is fine. only comment is about the non-MED version included in this PR that doesn't seem to be utilized. judging by the fact that it seems almost identical to the JSS_MED version, I'm assuming this might be a left over from development

will approve after the extra shuttle file is addressed!

Comment thread Resources/Maps/_Starlight/Shuttles/JSS_Apothekerin.yml
@CawsForConcern CawsForConcern added the S: Awaiting Changes Status: Changes are required before another review can happen label Jul 18, 2026

@CawsForConcern CawsForConcern left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

also you have two invalid devices in this shuttle

[ERRO] entity_deserializer: Encountered invalid EntityUid reference while reading entity 200, component: DeviceNetwork
[ERRO] entity_deserializer: Encountered invalid EntityUid reference while reading entity 208, component: DeviceNetwork

to fix it, remove these bits from the .yml file:

      configurators:
      - invalid

these errors are caused by failing to clear your admin ghost multitool before you use savegrid (or savemap).

Comment thread Resources/Maps/_Starlight/Shuttles/JSS_MED_Apotherkerin.yml Outdated
Comment thread Resources/Maps/_Starlight/Shuttles/JSS_MED_Apotherkerin.yml Outdated
Removed extra files left over from development,
Removed invalid configurations left over from mapping,
Changed shuttle key names to reflect the latest name for shuttle
@github-actions github-actions Bot added S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. and removed S: Awaiting Changes Status: Changes are required before another review can happen labels Jul 18, 2026

@CawsForConcern CawsForConcern left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

approved!

@github-actions github-actions Bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Jul 21, 2026
@CawsForConcern CawsForConcern removed the S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. label Jul 21, 2026
@Rinary1
Rinary1 enabled auto-merge July 22, 2026 07:18
@Infiniteb1u3

Copy link
Copy Markdown
Contributor Author

Shard 1 fail was due to plasma shuttle, which was not touched in this PR. Looks to be unrelated

Shard 6 looks like a generic shard 6 failure

@Infiniteb1u3

Copy link
Copy Markdown
Contributor Author

Was told that shard 6 was fixed by WonderfulNewWorld

Merged to hopefully fix the test issue
image

@Infiniteb1u3
Infiniteb1u3 requested a review from Rinary1 July 24, 2026 19:55
@github-actions github-actions Bot added the S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. label Jul 24, 2026
@coderabbitai coderabbitai Bot mentioned this pull request Jul 25, 2026
4 tasks
@Infiniteb1u3

Copy link
Copy Markdown
Contributor Author

I think i am out of my depth here and require assistance to solve the shard 6 issue

I have no clue why it keeps failing

@Mackamuir

Mackamuir commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Test is just flat failing, even locally, looking into it.

redmushie added a commit to Infiniteb1u3/space-station-14 that referenced this pull request Jul 28, 2026
## Short description
<!-- What do you propose to change with your PR? -->

JobWeightTest disconnects the pair, but does not dirty the pair. The
rest of the tests rely on them being connected

## Why we need to add this
<!-- What is the reason for adding these changes? Please post links to
Discussions as well as Bug Reports here. Please describe how this will
change the game balance. -->

Failing lots, e.g. on
ss14Starlight#5169

## Media (Video/Screenshots)
<!--
If your PR contains in-game changes you must provide screenshots/videos
of the changes.
-->

## Checks
<!-- check boxes for faster reviewing of your PR -->

- [x] I do not require assistance to complete the PR.
- [ ] Before posting/requesting review of a PR, I have verified that the
changes work.
- [x] I have added screenshots/videos of the changes, or this PR does
not change in-game mechanics.
- [x] I affirm that my changes are licensed under the [MIT
License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT)
and grant permission for use in this repository under its conditions.

Not user facing, no CL

@redmushie redmushie left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Test should theoretically pass now..

@Rinary1
Rinary1 added this pull request to the merge queue Jul 28, 2026
Merged via the queue into ss14Starlight:starlight-dev with commit 76f71b6 Jul 28, 2026
23 checks passed
starlightgithub Bot added a commit that referenced this pull request Jul 28, 2026
Limerent-Sun pushed a commit to Blimpuf-Station/BlimpufStation that referenced this pull request Aug 5, 2026
## Short description
<!-- What do you propose to change with your PR? -->

JobWeightTest disconnects the pair, but does not dirty the pair. The
rest of the tests rely on them being connected

## Why we need to add this
<!-- What is the reason for adding these changes? Please post links to
Discussions as well as Bug Reports here. Please describe how this will
change the game balance. -->

Failing lots, e.g. on
ss14Starlight#5169

## Media (Video/Screenshots)
<!--
If your PR contains in-game changes you must provide screenshots/videos
of the changes.
-->

## Checks
<!-- check boxes for faster reviewing of your PR -->

- [x] I do not require assistance to complete the PR.
- [ ] Before posting/requesting review of a PR, I have verified that the
changes work.
- [x] I have added screenshots/videos of the changes, or this PR does
not change in-game mechanics.
- [x] I affirm that my changes are licensed under the [MIT
License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT)
and grant permission for use in this repository under its conditions.

Not user facing, no CL
Limerent-Sun pushed a commit to Blimpuf-Station/BlimpufStation that referenced this pull request Aug 5, 2026
## Short description
Adds a new small Chem/botany shuttle to shipyard console, priced at 40k
Spesos, 18x11 in size

## Why we need to add this
Adding a new shuttle to the Shipyard inventory.
Allows chemists or botany players to focus on producing chems/plants
that they are primarily interested without affecting the station's
workflow

## Media (Video/Screenshots)
<img width="602" height="802" alt="image"
src="https://github.com/user-attachments/assets/34d9e8ad-aee6-40e7-9c55-8a32d17c7072"
/>
<img width="513" height="797" alt="image"
src="https://github.com/user-attachments/assets/cbad3dfd-3696-4add-b5fd-0d5ef1718c5e"
/>
<img width="510" height="808" alt="image"
src="https://github.com/user-attachments/assets/c3979b0a-bac5-48df-8cb7-12040cb34681"
/>



## Checks
<!-- check boxes for faster reviewing of your PR -->

- [x] I do not require assistance to complete the PR.
- [x] Before posting/requesting review of a PR, I have verified that the
changes work.
- [x] I have added screenshots/videos of the changes, or this PR does
not change in-game mechanics.
- [x] I affirm that my changes are licensed under the [MIT
License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT)
and grant permission for use in this repository under its conditions.

**Changelog**
:cl:
- add: new shuttle JSS-MED Apotherkerin to Shipyard console.

---------

Co-authored-by: Red Mushie <82113471+redmushie@users.noreply.github.com>
Co-authored-by: Rinary <rinary.super@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: C# Changes: Map Changes: Prototypes S: Approved Status: Reviewed and approved by at least one maintainer or dev; a PR may require another approval. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/L T: New Content

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants