Commit Graph

1375 Commits

Author SHA1 Message Date
Atlantiscze
3ee4747502 Supermatter delamination tweaks
- In short, delamination changed to more or less mirror effects it has on Bay.
- All of the new delamination effects can be easily tweaked in the future using set of defines.
- In general, aim is to make supermatter delamination a more or less "recoverable" event with enough materials and manpower. Before it was just a mangled irrepairable mess of scuttled steel.
- This brings a LOT of performance improvements and runtime error fixes (grav pull of anchored items which were never meant to move tends to cause runtimes)

Detailed changes:
- Supermatter (and also S5/S6 singularity in the event someone manages to build one, they share the proc) no longer pull anchored items. This brings a MASSIVE reduction in delamination lag (from few second freezes to quite smooth) and prevents things from breaking (i saw dozens of various runtimes when delamination occured as it forcibly dragged things around that weren't supposed to be dragged).
- Delamination crashes the station's power grid, shutting down all APCs for few minutes. Critical areas get shut down only for fraction of that time (we don't want to one-hit the AI). This includes healthcare facilities, which are likely to be very important given the other effects.
- Delamination irradiates and briefly weakens all mobs on the station (not only on the same Z level). I have verified that this is enough to kill an unprotected human if no kind of medical care (at least dylovene, ideally something against rads) is administered.
- Delamination will break a bunch of lights. Nuisance, but easily repairable. Adds to the atmosphere.
- Delamination breaks part of the solar arrays, reducing their output by roughly 60%. This is way less than required to run the station. Puts more emphasis on delamination being engineering-centric emergency, with power rationing being a necessity until solars can be fixed, or other power source secured. Rewards engineering if they managed to stockpile some energy in the SMESes around the station.
- Delamination's explosion is quite weaker than it used to be. It should still be enough to pretty much destroy the engine room (see attached screenshots below), and cause some minor damage in adjacent rooms. It should still, however, be repairable with enough resources and some time.
- Supermatter no longer has additional 99% flat modifier to miss a station Z level when ejected. Emergency core ejection is a last resort measure. It does have its risks. With other changes in this PR, delamination on outer hull is significantly less dangerous than it would be before. It still has various secondary risks, however, such as the radiation or temporary power outage, but with considerably mitigated damage (explosion in space, mostly on outer grilles is generally weaker)

Screenshots:
https://i.imgur.com/K7nBd8a.png    (Standing directly where the core was. Engine room has heavy structural damage and all pipes/machinery are pretty much devastated)
https://i.imgur.com/SGBdTRo.png     (Standing in engine control room. Damage nearby is quite minor (occassional snapped wire or wall panel), but quite widespread).
https://i.imgur.com/JqzF4pW.png     (Solar arrays are heavily damaged. They still provide /some/ power but only a fraction of the original)
2020-04-28 02:49:09 +02:00
Aronai Sieyes
b3e9960029 Move machines to use default_apply_parts() 2020-04-27 11:57:43 -04:00
Heroman
b3476340fe Ports tg cablecoils instead of bay's 2020-04-27 10:50:56 -04:00
Aronai Sieyes
51846b4bfe Port some power sprites from Bay 2020-04-27 10:50:56 -04:00
Aronai Sieyes
bc1fa7bd05 Refactor Move() code 2020-04-27 10:08:55 -04:00
Neerti
c5c0888d8e Tweaks and fixes for the new new event system. 2020-04-26 07:21:56 -04:00
Neerti
2dee403370 Removes limits on eating, centralizes nutrition changing. 2020-04-26 05:30:32 -04:00
Atermonera
ec79adad68 Merge pull request #7026 from VOREStation/vplk-update-power-usage
More machinery power update_var() proc usage
2020-04-25 12:54:30 -07:00
Atlantiscze
2a9547f3d9 Implements additional feedback 2020-04-23 08:02:51 +02:00
Atlantiscze
b3d866c4d5 Adds updated version of power debugging items
- Infinite powersource, Infinite grid load (powersink without boom) and APC dummy load.
- Not buildable, intended primarily for debugging or admin shenanigans. For mapped-in variants setting show_extended_information = FALSE is recommended.
2020-04-23 07:48:53 +02:00
Leshana
21c8c94971 Fix remaining code that directly modified use_power to call update_use_power. 2020-04-21 13:15:32 -04:00
Leshana
66b40b2c71 Call update procs instead of directly setting idle_power_usage or active_power_usage.
- Adds the update_idle_power_usage() and update_active_power_usage() procs for the respective vars.
- Switches all places modifying those vars directly to call the procs instead.
- This will let us react to the change appropriately, paving the way towards static area power.
- Adds update_power_channel proc for the sake of completeness, but no machines actually modify it so far.
2020-04-21 12:53:05 -04:00
Atlantiscze
252719c5f0 Implements feedback 2020-04-21 10:03:07 +02:00
Atlantiscze
fbf33fc5df Final tweaks
- Refactors some code to more modern standards, fixes problem with PSUs not reacting to UI input.
- Adds cable coil recoloring using multitool (Bay went the path of having dedicated cable painter device but that really feels as too much of a hassle having to carry another device for this - lets just say the paint is electrically reactive in some way).
- Adds changelog
2020-04-20 08:16:19 +02:00
Atlantiscze
78925e2993 Ports over power-related enhancements and tweaks i coded for Bay a while back
- Please fasten your seatbelts, this will be a long one as it joins few older Bay PRs into one.

1. Ports https://github.com/Baystation12/Baystation12/pull/12626
- SMES units may now be damaged and destroyed. Charged SMES units fail quite violently. Damage can be fixed by welding tool.
- PSUs completely refactored, ghetto variant no longer exists.
- Cell rack PSUs now can be considered a hybrid between large battery charger and a SMES. They actually use the cells to store power (so you can hot-swap the cells to get more juice simply via the UI without deconstructing the whole machine), but in comparison to SMES have poor throughput and capacity in general (cells are simply too small). They are also somewhat limited in configuration options (lacks the precision electronics of a SMES). Better matter bin lets you put in more cells, up to 9.
- Cell rack PSU also has a mode that allows charge-balancing all inserted batteries (moves energy around so each battery has the same charge %)

2. Ports https://github.com/Baystation12/Baystation12/pull/11977
- SMES units now have full load balancing capability, getting rid of that annoying "One SMES charges at full, other SMES gets nothing" problem. If insufficient power is available on input, all inputting SMESes will now charge at same percentage. If more SMESes power a single output, they will all output equal percentage of their setting.
- This appears to have a pleasant side effect of fixing the issue where SMESes could starve APCs of energy. SMESes are ALWAYS last to input power on a powernet.
- This also appears to have fixed weird values displayed in SMES output/input load readings in the UI. By weird values i mostly mean inputs/outputs actually higher than the SMES is set to have.

3. Ports https://github.com/Baystation12/Baystation12/pull/18137
- SMES units (and subtypes, therefore effectively also PSUs from previous entry) can now have more than one terminal. This effectively allows a setup where two (or more) sources feed a single SMES, which then feeds the output. SMESes can not exceed input setting even with multiple terminals.
- Typical example of use in practice would be SMES that runs something important (for example an AI, telecomms, pick whatever you want). It could have one input from the power grid, and second input from a PACMAN generator set up nearby as a backup. Before the generator would have to be wired into main grid, therefore main grid would siphon off power from it. Now the generator can be separate and dedicated for whatever use you want.
2020-04-17 08:26:29 +02:00
Atlantiscze
56e28ec2aa Fixes supermatter monitoring EPR indicator showing Undefined
- This mirrors original sources from Bay. Nano file was apparently moved from there, but code file was not.
- As for intent of this function (i coded it originally on Bay), EPR can be considered "Amount of canisters worth of gas in the core chamber", hence the weird 23.1 constant. Unlike pressure reading, this does not change with temperature, so it can be used to accurately monitor actual amount of gas in the chamber without having to take temperature in effect.
- I know the constant is kind of shady. It could possibly be recalculated using atmos constants, but i suck at math too much to do that. If anyone who knows atmos math can find a better alternative, i will gladly toss it in instead.
2020-04-17 06:06:06 +02:00
Neerti
ba56f7951f Hopefully fixes conflicts. 2020-04-05 17:07:37 -04:00
Atermonera
3473522d5a Merge pull request #6904 from VOREStation/pol-cleanup
Clean up various things
2020-04-03 00:13:32 -07:00
Aronai Sieyes
a209989e2f Merge remote-tracking branch 'upstream/master' into pol-baycomps 2020-03-31 10:47:47 -04:00
Neerti
87c53a75af Updates to master and makes gravity event code be current. 2020-03-26 04:10:51 -04:00
Neerti
f5383410ea Events ported, now for cleanup if needed. 2020-03-26 03:20:16 -04:00
Aronai Sieyes
ad5f0485f7 Clean up things 2020-03-25 22:10:56 -04:00
Atermonera
95ac99c514 Merge pull request #6882 from VOREStation/vplk-machinery-use-power
Machinery: Always use update_use_power()
2020-03-23 20:20:41 -07:00
Leshana
938384cb1b In fact lets use the constants instead of bare numbers for use_power everywhere. 2020-03-21 19:41:01 -04:00
Leshana
c2d16acdca Always call update_use_power() instead of directly setting the use_power var.
- This will let us react to the change appropriately.
- While we're here, lets define some constants so we can stop using bare numbers.
- Always use those constants when calling update_use_power()
2020-03-21 16:40:22 -04:00
Atermonera
28f34f1e51 Merge pull request #6820 from Meghan-Rossi/Emergency-Lighting
Emergency lighting
2020-03-21 13:38:32 -07:00
Meghan-Rossi
d40e9732d3 update /obj/machinery/light_construct/attack_hand(..) 2020-03-21 12:28:19 +00:00
Neerti
33657c9e11 Event system rewrite started. 2020-03-19 07:31:30 -04:00
Aronai Sieyes
f56c8b344d Port Bay computer icons
Modular and non-modular, laptops too, and a few extra tablet icons.
2020-03-16 20:58:16 -04:00
Leshana
b0f01961de Make area.gravitychange not require being passed a reference to... itself. (#6838) 2020-03-16 02:31:09 -07:00
Atermonera
22e28f29fe Merge pull request #6804 from Cerebulon/bigsounds
Big Bastard Incidental Sound Port
2020-03-15 11:38:44 -07:00
Cerebulon
2670a1c0e4 Adds more machine button sounds (#6802)
* Adds more machine button sounds

* chang
2020-03-11 17:30:42 -07:00
Cerebulon
52e6669bf9 Big Bastard Incidental Sound Port 2020-03-08 23:25:45 +00:00
Aronai Sieyes
167f947e95 Boring minor things (#6792)
* Touch up bed/chair/stool icon updating

* Brighter permanent light

* Improve SMES icon handling

* Powernet cable nodes work on shuttles
2020-03-08 12:20:26 -08:00
Neerti
6898823361 Fixes various lightning strike bugs. 2020-02-25 21:49:38 -05:00
Meghan-Rossi
67f6442218 Let AIs flicker lights via alt-click 2020-02-23 02:38:05 +00:00
Meghan-Rossi
f860c76792 Fix newly constructed lights always having cells 2020-02-23 02:25:52 +00:00
Arokha Sieyes
5b15917d32 to_chat replacing stream operator 2020-02-17 13:14:08 -05:00
Shadow
32ae9e406b Emergency Lighting 2020-02-10 17:24:25 -06:00
Heroman
bf8cf75785 Applies same restrictions as first aid to external synth repair 2020-02-04 09:17:09 +10:00
Atermonera
09a8cde7af Merge pull request #6603 from Rykka-Stormheart/shep-dev-sm-delam-alarm
Add an audible alarm sound to SM Delamination
2020-01-25 19:25:04 -08:00
Atermonera
9684db1fe4 Merge pull request #6636 from SpaceManiac/patch/syntax
Fix various syntactic problems
2020-01-20 22:05:25 -08:00
Tad Hardesty
7bd3208cc6 Fix loop and control flow syntax 2020-01-18 23:01:36 -08:00
Tad Hardesty
644347cfeb Remove stray . and ..() 2020-01-18 23:01:36 -08:00
Shadow
6088899908 Round One 2020-01-11 02:25:38 -06:00
Rykka
43918ab1f3 Upstream port of SM Delamination Alert 2020-01-05 00:06:43 -07:00
Atermonera
11a8f3ef82 Merge pull request #6580 from Shadow-Quill/APC-AirAlarm-Alt-Click
APCs/Air Alarms can be (un)locked via altclick
2019-12-21 22:57:59 -08:00
Shadow
c10aade16f The Altening 2019-12-20 23:02:32 -06:00
Atermonera
a511a098fc Examining power cells state their name and size (#6577) 2019-12-19 21:44:52 -08:00
Nalarac
33c07f0ee6 Protolathe Power Cells Tweak
Fixes power cells and device cells not having the empty-charge icon when made.

Tweaks the protolathe so all items that come with power cells start empty (such as energy weapons)
2019-11-28 15:46:52 -06:00