* (code bounty) The tram is now unstoppably powerful. it cannot be stopped, it cannot be slowed, it cannot be reasoned with. YOU HAVE NO IDEA HOW READY YOU ARE
* fex
* fex
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Rename "Delimber" anomaly to "Bioscrambler" anomaly. (#67886)
Renames all occurrences of "delimber", "delimber_anomaly", "delimbering", etc. to "bioscrambler", "bioscrambler_anomaly", and "bioscrambling", etc.
* Rename "Delimber" anomaly to "Bioscrambler" anomaly.
Co-authored-by: skylord-a52 <skylord-a52@users.noreply.github.com>
* The transition between the cubic powerloss and linear powerloss for the supermatter is now smooth. (#67515)
* Smooths the transition.
Changes the supermatter's linear powerloss function to occur when the derivative of the cubic power loss is equal to the rate of the linear power loss. Offsets the linear powerloss function so the transition between the two functions is completely smooth.
Also adds defines for powerloss related magic numbers.
Change the requirement for the linear powerloss to occur when the derivative of the cubic powerloss is equal to the rate of the linear powerloss. Offsets linear powerloss to make the transition between the two functions completely smooth. Adds defines for the powerloss magic numbers. Changes the powerloss inhibitor stuff to just reduce the powerloss instead of reducing the functions, meaning that reducing it by 90% would always reduce it by 90%.
Well, the consequence of powerloss being a cubic function means at one point the derivative of power minus powerloss will be negative, and at one insane point, this could make adding more emitters (or extremely high temperature) actually cause the SM to have lower power than if they didn't add emitters (or extremely high temperature), because linear powerloss doesn't occur in time.
This should make the powerloss function for high power supermatters to be more intuitive, where powerloss doesn't punish giving the supermatter high power to the point of being worse than giving it lower power. Changing powerloss inhibition related stuff will make it more intuitive for people to understand.
* The transition between the cubic powerloss and linear powerloss for the supermatter is now smooth.
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* APC balloon alerts (#67755)
Changes the to_chat messages from building/repairing/deconstruction/etherealing APCs to balloon alerts.
I tried to standardize the multiple names that some items get into one, example: control board or electronics into just board.
Renamed other things just to be cleaner on what tools to use, example: power terminal was change to cable terminal.
And added ! at the end of all error messages so it is easier to know that your attempt failed.
* APC balloon alerts
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
* This tail refactor turned into an organ refactor. Funny how that works.
* Firstly, fixing all the conflicts.
* Fixes all our maps (hopefully)
* Actually, this should fix pod people hair :)
* Almost everything is working, just two major things to fix
* Fixed a certain kind of external organ
* Cleaning up some more stuff
* Turned tail_cat into tail because why the fuck are they separate?
* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file
* Adds relevant_layers to organs to help with rendering
* Makes stored_feature_id also check mutant_bodyparts
* Fixes the icon_state names of ALL the tails (pain)
* Fixes wagging, gotta refactor most mutant bodyparts later on
* I Love Added Failures
* Fixed some organs that slipped through my searches
* This could possibly fix the CI for this?
* It doesn't look like it did fix it
* This will make it pass, even if it's ugly as sin.
* Fixed Felinids having a weird ghost tail
* Fixes instances of snouts and tails not being properly colored
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Nerfs pre-loaded pacman plasma sheets (#67614)
* PACMANs are now loaded with 15 sheets of plasma roundstart, brought down from 50 sheets.
* Nerfs pre-loaded pacman plasma sheets
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Roundstart engineering SMESes start with ROUGHLY 4-5 more minutes of power (#67391)
eyeballin'
* Roundstart engineering SMESes start with ROUGHLY 4-5 more minutes of power
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* improves SM cascade performances and fixes announcement text (#67240)
Changes the cascade walls from turfs to objects to improve the performances of the roundending cascade.
The issue was that ChangeTurf() was a pretty expensive proc to be called that many times so i moved the cascade wall into an object. It doesn't delete anything other than living mobs and the portal to prevent edge case runtimes.
Plus remove a span_bold() from the announcement text since it wasn't making the text bold but was leaving behind
* improves SM cascade performances and fixes announcement text
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Moves APC Mapping Checks to Mapload rather than New (CI IS SAVED EDITION) (#67193)
* Moves APC Mapping Checks to Mapload rather than New
We've been dealing with this issue for a few months now, and I've grown tired of explaining the problem after I figured it out and decided to finally fix it today.
Basically, this check ran at _all_ times, rather than just on mapload (even though it logs to log_mapping). Not good, let's fix that by shuffling some stuff around. I tested this code and I was able to organically create an APC, and all the APCs on load didn't appear to be absolutely fucked in some horrific way.
* dmdoc
* Moves APC Mapping Checks to Mapload rather than New (CI IS SAVED EDITION)
Co-authored-by: san7890 <the@san7890.com>
* [MDB IGNORE] More /area/ typepath organization and cleanup (#67107)
This further continues what I did in b4fb8f3ed1 (but instead of just stations, its now every (most) applicable area in the game
* [MDB IGNORE] More /area/ typepath organization and cleanup
* wew
* e
* Update CentCom_skyrat.dmm
* wew
* ews
Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* cascade rift is a proper portal now (#67162)
Centcom managed to open the rift during a cascade to bring you to safety, now it will teleport you there instead of dusting you. The cascade duration has been changed to make it so that people can still reach the portal in time. Once the portal gets eaten, the one minute countdown starts.
To try and prevent the rounds from going too long, the number of walls spawned has been increased to a random between 4 and 6 all around the station.
* cascade rift is a proper portal now
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Oldstation overall improvements (#66975)
* Revamps oldstation
- Adds a supermatter chamber (very barebones to allow players to set the SM up themselves
- Adds a Gravity generator (the ruin is no longer magically given gravity)
- Adds a custodial closet
- Adds an external exit to Deltastation, so you don't have to blast a hole in the wall to move machines over due to them not fitting in the transit tubes
- Replaced Plasma canisters in SM storage, with SMES parts and an emitter reflector
- Shuffles around Beta storage room
- Moves the emergency power room's cables/APC around
- Adds plumbing
- Fixes lack of vents in the bathrooms
- Adds a third RTG
* adds area over the third RTG (lol)
* Adds a biogenerator to botany
* adds a plating to help gravity gen users
* removes repeat cable coil
* sets vendors to off-station mode
* multi cyclelink + dirtier SM room
* Requested san fixes
* airless, firelocks and AI sat floors.
Oldstation is one of my favorite spawners and my biggest problem with it is people leave when they feel they 'beat' the ruin. Adding more Engineering stuff and improving Service stuff could potentially help with this, as it would feel more worthwhile to spend your time on working towards these projects and goals, rather than just leaving.
There also used to just have 2 rooms in the northwest that just didn't have anything. I assume the hallway left is supposed to be 'alpha' station which is completely gone, but the room north (which is now going to be gravity generator) had no real purpose other than to accidentally depressurize the only pressurized room in Beta since it had no firelocks. It just wasn't really worth being there.
* Oldstation overall improvements
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* SM cascade is viable with gas and more visually interesting (#67079)
Fixes the check for antinob+hypernob cascade for the total amount of gases from the combined_gas to the environmental one.
Allows more damage to the crystal while the cascade is going
Made the antinob and hypernob heat penalty in similar but opposite amounts (15 anti, -13 hyper)
Added transmit modifiers to both gases (-5 anti, 3 hyper)
Increased the amount of crystal shards that spawns from the explosion to a max of 5 and min 2
Added light breaking and random light on emergency mode + maint emergency access when the cascade occurs
* SM cascade is viable with gas and more visually interesting
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* PACMAN buff to make it usable as backup generator again (#67062)
* PACMAN buff to make it usable as backup generator again
Co-authored-by: fippe <julius.salonen@cs.tamk.fi>
* improve speed of cascade walls, better description for them + CL for cascade antag (#66800)
Cascade walls were processing on object subsystem, they are now in their own subsystem that ticks once per second and should be more reliable even in case of high td
better description for the walls to be more interesting
* improve speed of cascade walls, better description for them + CL for cascade antag
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* The supermatter cascade now takes one minute to end the round instead of 5 minutes to end the round, to put it on par with Blob and such. (#66832)
* The supermatter cascade now takes one minute to end the round instead of 5 minutes to end the round, to put it on par with Blob and such.
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
* Supermatter Cascades are not Universe-Destroying Events (#66804)
* Supermatter Cascades are not Universe-Destroying Events
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* SM delamination flux nerf (#66752)
Lower the amount of anomalies spawned from the SM delamination
Lower the probability of getting a flux anomaly
Flux anomalies spawned by the SM in this way will have the explosion size reduced by 4
* SM delamination flux nerf
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Refactors the Charge wizard spell (#66599)
This PR refactors the "charge" spell to be signal based instead of looping over held items + istype checks.
This was atomized out of my proc holder removal PR. Figured it was small enough to handle on its own.
* Refactors the Charge wizard spell
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* fixes some grammar and clarifies the explanation for the turbine (#66759)
I've noticed some complaints regarding the explanation of the new turbine and its parts, and while I don't think it's that unclear, it could be better. I figured I'd improve the text slightly to be clearer, and fix some small grammar issues while I was around the relevant files.
* Fixes some grammar and clarifies the explanation for the turbine
Co-authored-by: Unit2E <41054578+Unit2E@users.noreply.github.com>
* SM damage and balance (#66692)
Change how opening a hole in the chamber will affect the SM, increasing the dangers it will have by having more damage dealt, increase the power of the SM by 250 and stopping the SM healing from low moles/cold.
Increased the heat released by lowering the THERMAL_RELEASE_MODIFIER from 5 to 4
Increased the plasma released by lowering the PLASMA_RELEASE_MODIFIER from 750 to 650
Lowered the oxygen released by increasing the OXYGEN_RELEASE_MODIFIER from 325 to 340
Increased the REACTION_POWER_MODIFIER from 0.55 to 0.65 increasing the power generated
* SM damage and balance
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Refactors firestacks into status effects (#66573)
This PR refactors firestacks into two status effects: fire_stacks, which behave like normal firestacks you have right now, and wet_stacks, which are your negative fire stacks right now. This allows for custom fires with custom behaviors and icons to be made.
Some fire related is moved away from species(what the fuck was it even doing there) into these as well.
Oh and I fixed the bug where monkeys on fire had a human fire overlay, why wasn't this fixed already, it's like ancient.
Also changed some related proc names to be snake_case like everything should be.
This allows for custom fire types with custom behaviours, like freezing freon fire or radioactive tritium fire. Removing vars from living and moving them to status effects for modularity is also good.
Nothing to argue about since there's nothing player-facing
* Hud Image Culling By Z Level: Theft edition (#65189)
* makes hud images only apply by z level
* makes some of the atom_hud procs have better names
* fixes warning with the hud_user list and adds better documentation
* better docs for hud_images
* removes TODOs
* docs for hud_list
* adds support for linked z levels so mobs can see lower ones
* fixes merge conflict and shittily makes only shocked airlocks get added
* adds support for setting images in the hud as active and inactive
* gets rid of unatomic spatial grid change
* maybe i should actually try COMPILING my changes
* fixes merge skew and makes it compile again
* fixes huds refusing to remove from users who changed z level
* improves z level and registration logic
* fixes antag huds not appearing
* Fixes antag huds not properly setting. We now use hud_list in init, so it needs to be set before the new call, not after. Not sure why the use of appearance key was split like this, but none else knows either so none can stop me
* Ensures that hiding a basic appearance also hides the atom's active list too
* Fixes antag huds going poof
Ensures that remove_atom_from_hud will return false if the passed atom
isn't managed by it
This fixes antag huds disappearing randomly, since they assumed that if
the parent call of remove_atom_from_hud returned true, we should delete
ourselves. This is a safe assumption for them to make, since they should
only ever have one atom.
Does kinda bork if we call remove_atom_from_hud in a way that is unsure
if the passed atom is actually in that list. We were forced into doing
this by how atom huds use the qdeleting signal.
* makes basic alternate_appearance's only update themselves when setting their hud image to active and makes them not add themselves to the global huds_by_category list
* fixes mistake with hud_users list being set non associatively (bad)
* as anything in bot path loops
* Fixes merge skew problems
* Makes bot paths non global
This way they can show themselves to only the bot that "owns" them, ya
feel me?
* Fixes huds not showing up sometimes, cleans up some code
Post Kapu's limb refactor, we were calling prepare_huds twice in a human
init call chain. What was happening was this:
call prepare_huds() // Human
I gained a new hud image
I set active hud icons to mirror it
call prepare_huds() // Living
I overwrote the new hud image
I attempted to set active hud icons, which failed because it assumes
this can never happen
*cries*
* Renames add_hud_to_atom to show_to
My hope is this will make understanding hud code a bit easier, by tying
the behavior to a "verb" more closely. Also renamed a few vars
* remove_hud_from_mob -> hide_from
* Nitpicks a few comments
* Whoops/fuck/shit/damn it all/hhhhhhhhhhhh
* Moves check down, improves stack trace a bit
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
* small touch-up
* this should do it
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
* Tesla coil upgrade nerf (#66623)
Slight nerf to the tesla coils stock parts upgrade going from a max 85% efficiency to a max 50% efficiency when converting power from the zaps with t4 parts. Roundstart setups remains untouched, but just upgrading the coils will yield 35% less power.
* Tesla coil upgrade nerf
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Anomaly expansion - part 1 - Hallucination anomaly (#66392)
New anomaly, the hallucination anomaly. It has small bursts of hallucinations while alive followed by a big one in the moment of the end.
More anomalies are fun, i'm planning to add more of these
added the hallucination anomaly, spawnrate similar to the flux one, can spawn from the SM if eer are over 5000, can spawn when the SM delams (higher rate than the grav one), you can make the hallucination reactive armor
* Anomaly expansion - part 1 - Hallucination anomaly
* Update hud.dm
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Adds a power consumption multiplier to help downstreams change their consumption easily (#66476)
* Adds a power consumption multiplier to help downstreams change their consumption easily
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* updateDialog and updateUsrDialog cleanup (#66494)
This PR focuses on cleaning up two procs - updateDialog and updateUsrDialog. Both of which are/were used updating for old HTML UIs. As these UIs got converted to TGUI over time, these old code fragments started to pile up, often due to coders simply overlooking them. This resulted in them being dead code doing nothing when called, or randomly opening up windows when they shouldnt, for example when a vending machine is screwdrivered and UI cannot even be interacted with.
However, there were also some desirable uses - like opening a window when an ID is inserted into civilian bounty console, which you are then gonna obviously use to pick a bounty. I kept these uses and replaced them with proper ui_interact, so they now always work, instead of them working only when you had them set as a currently used machine on mob. The list of these changes is:
Civilian Bounty Console will now always bring up its UI when you insert the ID.
Air Alarm and APC will now always bring up its UI when you unlock their controls.
Portable Chem Mixer, Chem Dispenser, Chem Heater, Improvised Chem Heater, Chem Spectometer and Chem Master will now always bring up their UI when you add or replace beaker to them.
Two old /Topic calls were cleaned up as well, as they were no longer relevant.
Removes dead or outdated code, adds sensible UX when working with certain UIs.
* updateDialog and updateUsrDialog cleanup
Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
* rebalance sm delamination anomalies amount (#66390)
* rebalance sm delamination anomalies amount
* changed from 0.01 to 0.005, so at 1500 MeV 8 anomalies will spawn around the station
fixed grav anomaly weight
added vortex anomaly at 1 weight
* is called bhole
* rebalance sm delamination anomalies amount
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Adds MC initialization stages. Earlier stages can fire while later ones init. Fixes tgui chat reconnection banner showing during init. (#66473)
* Adds MC initialization stages. Earlier stages can fire while later ones init.
Removes TICK_LIMIT_MC_INIT config for barely doing anything to speed up init and being inconvenient to work with if fires and inits can happen at the same time.
* Adds MC initialization stages. Earlier stages can fire while later ones init. Fixes tgui chat reconnection banner showing during init.
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
* supermatter/Bump() (#66395)
* Makes supermatter dusting independent of the reference frame.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Activating the Supermatter with a projectile now logs who did it and with what weapon. (#66363)
* Activating the Supermatter with a projectile now logs who did it and with what weapon.
* Activating the Supermatter with a projectile now logs who did it and with what weapon.
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
* increase roundstart power available to SM rooms (#66393)
Swap the normal APC cell for a high grade one for all maps SM rooms to allow more time to setup the SM
* [NO GBP]increase roundstart power available to SM rooms
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>