Feat/edison rework#2
Open
rebaserHEAD wants to merge 21 commits into
Open
Conversation
…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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
Requirements
How to test
Breaking changes
None expected.
SectorBankAccountgains anEdisonmember (appended, existing values unchanged).LedgerEntryType.PowerTransmissionis inserted before the expense range, which renumbers expense entries; the ledger is round-scoped and never persisted, so nothing stored is affected.atmos.tickrateand two supermatter cvars are now replicated (previously server-only) so the client console can compute real rates.Changelog
🆑
🆑