Skip to content

Feat/edison rework#2

Open
rebaserHEAD wants to merge 21 commits into
mainfrom
feat/edison-rework
Open

Feat/edison rework#2
rebaserHEAD wants to merge 21 commits into
mainfrom
feat/edison-rework

Conversation

@rebaserHEAD

Copy link
Copy Markdown
Owner

About the PR

Ports the Edison Power Plant from coyote-frontier (ARF-SS13/coyote-frontier @ 2f30035e): the reworked Edison map, the EE Supermatter engine and monitoring console, the power-sale machinery, and the Plant Manager / Plant Technician roles that run it. The station is now a fully staffed, self-funding industrial POI rather than set dressing.

High-level breakdown:

The plant. New Edison map with the supermatter chamber, radiation collector arrays, TEG, energy-to-plasma converter, AME fuel fabricator, and power transmission point. The transmission point sells delivered wattage into a new Edison sector bank account every 20 seconds (linear up to 5 MW, logarithmic past it). The AME fab and gas converter run on the same adjustable-power-draw system; their client UI (coyote's AdjustablePowerDrawBoundUserInterface) is ported so all three machines are actually configurable in game.

The crew. Plant Manager (the plant's chief engineer, ChiefEngineer access, answers to command) and Plant Technician roles under a new Industrial department, with their own job icons, PDAs, ID cards, office/lobby spawn points, and curated loadouts (engineering-appropriate subsets instead of the generic contractor catalogue, plus a priced tools group: gas analyzer and welder free, holofan/RPD priced, RCD behind the 30-hour tier). Spacer, Pilot, and Mercenary can also join at the plant.

The economy loop. The Edison account gets its own CreditFlow Lite tab and "Energy Exports" ledger row. The plant manager's request computer is wired end to end (the station proto now carries a cargo order database; orders beam onto the plant's telepads, paid from the buyer's own bank, with a tax cut flowing back to the Edison account). The plant ATM fronts the Edison account, withdrawable by the PM for wages.

Supermatter fixes found during shakedown: a tesla delamination spawned a new tesla ball every atmos tick forever (server killer, now one-shot with the crystal converting into the ball), the delam-type check vacuumed 15% of chamber gas per tick while past the delam point, a recovery on the countdown's final tick announced the delam as averted and detonated anyway, plus allocation cleanups on the per-tick gas passes and a 1 Hz throttle on the monitoring console (it pushed a full BUI state with a GasMixture to every viewer every tick).

Misc: join-menu station card for Edison, map fixes for two overlapping wall-button pairs and civilian spawn points that were stuck behind engineering access, and the ledger cartridge item renamed to match its program (CreditFlow Lite; the yml name escaped the spesos-to-Credits sweep).

Why / Balance

Edison gives engineering-minded players a place to actually work: the plant only pays out what the crew generates. The Edison account starts with the standard 8k and a 1/s trickle, so power sales are the real income (about $50/s at the 5 MW linear cap, diminishing past it, hard-capped at $150/s). Order-console purchases are paid from the buyer's personal account at cargo prices.

Media

edison-0

Requirements

  • I have read relevant guidelines/documentation to this PR found on our devwiki.
  • I have added media to this PR or it does not require an ingame showcase.
  • I can confirm this PR contains either no AI-generated content, or AI-generated content that meets our guidelines.

How to test

  1. Join a round and pick Edison Power Plant in the Join Game menu. The station card should show the engineering banner, description, and the plant roles plus Spacer/Pilot/Mercenary.
  2. Spawn as Plant Manager (wakes up in the office) or Plant Technician (lobby). Check the loadout menu offers the tailored engineering groups.
  3. Run the supermatter per the wiki guide. Feed power through SMES to the transmission point and watch Credits accrue on the Edison tab of the CreditFlow Lite PDA app.
  4. Right-click the transmission point, AME fab, and gas converter to confirm the power-draw UI opens and applies.
  5. Order something at the plant manager's request computer; the crate arrives on the adjacent cargo telepads.
  6. For the delam fixes: overheat the crystal with high power (>5000 MeV/cm3) and confirm a tesla delam spawns exactly one ball and consumes the crystal.

Breaking changes

None expected. SectorBankAccount gains an Edison member (appended, existing values unchanged). LedgerEntryType.PowerTransmission is inserted before the expense range, which renumbers expense entries; the ledger is round-scoped and never persisted, so nothing stored is affected. atmos.tickrate and two supermatter cvars are now replicated (previously server-only) so the client console can compute real rates.

Changelog
🆑

  • add: The Edison Power Plant has been reworked into a full industrial station: supermatter engine, radiation collectors, TEG, AME fuel fabricator, and an energy-to-plasma converter.
  • add: New Industrial department jobs at Edison: Plant Manager and Plant Technician, with their own loadouts, spawns, and PDAs. Spacers, Pilots, and Mercenaries can also join there.
  • add: Edison now has its own sector bank account. Selling power pays the plant, purchases at the plant's request computer kick back a cut, and the Plant Manager pays wages from the office terminal.
  • add: The CreditFlow Lite app shows an Edison ledger tab, and the plant's machines now have working power-draw controls.
  • fix: Supermatter tesla delaminations no longer spawn infinite tesla balls, and a delamination can no longer detonate after announcing it was averted.
  • fix: The supermatter monitoring console no longer refreshes every tick, and its gas readouts no longer break on gases the crystal ignores.
  • fix: The ledger PDA cartridge is now named CreditFlow Lite to match its program.
  • tweak: Edison's shutter buttons are labeled and no longer overlap, and civilian late-join spawns moved to the bus stop hall.
    🆑

TheRealMasterChief117 and others added 21 commits July 10, 2026 17:40
…ad-Sector#330)

Upstream rethrows a planning-job exception out of UpdateNPC, which aborts
every remaining NPC's update that frame and can take the whole server down
over one malformed domain or throwing operator.

Quarantine instead: log the full exception with entity and root task, sleep
the NPC, strip its HTNComponent, and continue the update loop. A brain that
throws during planning will throw again next cycle, so removal is the
correct containment; the NPC stays in-world as an inert mob. DebugTools.
Assert preserves the crash-loudly-in-dev property so bad domains still get
caught at the desk.
…40244) (Triad-Sector#331)

An HTN entity on a not-yet-initialized map has a live component but never
sees MapInitEvent, so its blackboard Owner was never set. The Mono
player-distance/grid-speed NPC waker activates exactly those NPCs, after
which every operator's GetValue(NPCBlackboard.Owner) throws
KeyNotFoundException per tick and aborts the rest of the NPC update loop
for that tick (prod: ~600k throws over July 8-10 via ShipMoveToOperator,
freezing fleet AI for hours at a time).

Port the upstream fix: Owner is set on ComponentStartup, which fires on
every add path regardless of map-init state; MapInit only wakes the NPC.
Also make the Mono waker skip pre-MapInit NPCs entirely, since MapInit
wakes them itself.
* feat(npc): faction-aware IFF for ship NPC targeting

NearbyNpcTargetsQuery picked the nearest ShipNpcTarget with no faction
check (the "consider factions" TODO), so friendly or neutral NPC traffic
was inexpressible; the only IFF lever was the ShuttleAIIgnore grid tag.

Add a friendly-skip to the query: targets sharing a faction with the
querying brain, or declared friendly, are ignored. The check consults the
target entity first, then its grid, so a faction stamped on the hull
covers everything aboard. Hostile, neutral, and factionless targets all
remain valid, so behavior is unchanged wherever no factions are authored
(IsEntityFriendly fails closed to "not friendly" when either side lacks
NpcFactionMember).

Give all NPC drone cores a new ShipDrone identity faction via the
NpcStationAiRammer root. Relations are empty and defaultHostileIncluded
is false, so no defaultHostile faction (carps, turrets) newly aggros the
cores; the faction exists purely so content can declare friendlies. The
player DroneController stays factionless deliberately: sharing a faction
with NPC drones would stop them engaging player carrier drones.

* chore(npc): drop resolved faction TODOs per review

Both "consider factions" TODOs are resolved by the IFF check; requested
in PR Triad-Sector#332 review.
* HZD Squire

* Added the Squire to a guncase and loadout, additionally adjusted the stats on the min, max, angle increase, and angle stability.

* Icon working, missing wielded and on back sprite now

* clean up, renames & refines

* fix wrong sprite on initial

* correct fold, state, and  rebalances correctly now, previously inverted on accuracy

* update SMGs.yml to smgs.yml

* fix wielded-inhand-right.png.png name

* reverted gun stats to early implementation

* adjusting stats once more

* Adds the HZD Pike, a heavy,researchable, burst rifle.

* Pike Sprites Initialize

* Mago Renamo

* fix sprite showing on wield, held, and stored

* Final adjustment of stats before taking off of draft.

---------

Co-authored-by: Wuffindy <71980308+Wuffindy@users.noreply.github.com>
Co-authored-by: Wuffindy <hendardi4212@gmail.com>
…ctor#335)

* Add new command for showing network links

* Use AllEntityQueryEnumerator to bypass EntityPaused check

* Localise description

Co-authored-by: BarryNorfolk <barrynorfolkman@protonmail.com>
Ports the Edison Power Plant POI from ARF-SS13/coyote-frontier @ 2f30035e:
the EE Supermatter engine and monitoring console, the power-sale machines
(transmission point, gas/entity spawn consumers), the reworked Edison map,
and the Plant Manager / Plant Technician roles under a new Industrial
department. Adds the Edison sector bank account and its CreditFlow tab,
wires the plant cargo console end to end, restores coyote job spawners,
adds the lobby join card, and fixes supermatter delamination, console
throttle, and rendering bugs found during the shakedown.
* Adding in SPS Ephemere (DoC) Ship and Adding dedicated Triad ship vouchers (D.S.I.D)

* DoC Ship + Voucher System (DSID)

* Cleanup Voucher DSID Code

* Capitalization Issue

* RSI fix Attempt 1

* Update Resources/Prototypes/_Triad/Shipyard/Medical/ephemere.yml

* Update Resources/Prototypes/_Triad/Entities/Objects/Devices/ship_vouchers.yml

* Fixes the capital name and add it to loadout

* remove ephemere for now

* Remove ephemere ship

* Remove the ephemere voucher from DoC

* whoops

* Update the tier 0

---------

Co-authored-by: Sigmund-Doppler <sigmunddoppler@gmail.com>
# Conflicts:
#	Resources/Locale/en-US/_Triad/job/job-names.ftl
#	Resources/Prototypes/_Triad/Roles/play_time_trackers.yml
The upstream merge resolution glued two playtime tracker entries into one
mapping (duplicate id key), which also cascaded into the prototype
serialization tests. Plant ID cards were missing their sprites entirely;
ported coyote's card sprite states. Dropped the EE-only allowSpriteOverwrite
field from the supermatter lightning arcs (BeamComponent here lacks it).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants