Triples the amount of HUDs, nitrile gloves and doubles the amount of medical belts in both lockers in Tramstation medbay. (3 Health HUDs, 3 pair of nitrile gloves and 2 medical belts for each lockers, for a total of 6 HUDs, 6 pair of gloves and 4 belts)
lets you uhhh scan papers i nto your notes app and also uhhh gives all heads the techweb app and also uhhh removes some role tablets because they dont really like need them anymore yeah cool awesome
coming one step closer to orange's vision of having techweb be heads only
Did you know that you could currently put a bunch of random shit in the lower levels of icebox and the map compile would be none the wiser?
I sure did.
I hate that it's done manually this way, but honestly it's not worth refactoring the whole action to make it work differently.
Ensuring that the lower levels work properly is, in fact, a good thing.
* Life() Optimization Part 1: Organ order
It turns out organ code is really quite dumb. Wastes a lot of time.
I'm going to be doing what I can to optimize it in this branch.
To start with:
If we can ensure organs are sorted according to organ_process_order inside
internal_organs_slot
We can do away with a needless get_organ_slot call in handle_organs, and
avoid needing to iterate over 30 entries, one per possible organ slot,
instead iterating just the ones we have
This saves roughly 5% of life
* Organ Optimization Part 2: base on_life()
Organ on_life, despite not looking it, is a remarkably hot proc. Called
something close to 9 times for each human on the map, it's worth taking
care to clean it up.
As things currently stand, we do two dumb things.
The first is manually checking for organ failure each iteration.
We do this because we allow organ damage to be modified outside of the
applyOrganDamage proc, which also calls check_failing_thresholds.
There's no reason to do this, so I've gone through and removed all
instances of it
The second is calling applyOrganDamage no matter what, to "heal" the
organ. Even if it isn't damaged.
The fix for this is simple, just an if check.
This saves roughly 10% of pre changes Life() cost
* Blood cleanup beta version
Blood code is slightly more sane, but it calls get_part_bleed_rate a
lot, and does other checks that are the same so long as the bleed rate
never changes. This is reasonably expensive
So, I'm going to make it event driven, and cache the bleed rate. But to
do that, I need to be able to react to limb ownership changes, and well,
there's a few that don't use the existing setter. This commit fixes that
* Blood cleanup beta 2.0
I'm starting on the work to make bleed rate cached
Adds NO_BLEED to the signal registration of set_owner
This lets us generically react to it
Makes changing your bleedstacks into a proc we can hook into
Fully implements it
* Blood optimization beta 3.0
Hooks into embedding/embed details updating, this ensures the embed
aspect of bleed rate is properly accounted for
* Blood optimization beta 4.0
Hooks wounds into refresh_bleed_rate, adds a setter for blood flow to
support this
I feel like there are places where this would be useful, but I'm not
totally sure
Kinda wanted to ask ryll
* Blood optimization, the final countdown
Fully caches bleed_rate. Because I can do this, we only need to call update_part_wound_overlay when bleed rate updates
This saves 15%! of human life tick. Get owned
* Optimizes body_temperature_alerts
It turns out that clearing alerts and sending signals every process is
wasteful. There's no reason to do it unless last process was a problem
one
The change for that is quite easy, literally just a new var on human.
Saves 2% of human life tick.
Very nice for the amount of time I put into it
BTW, I have a feeling that most of the overhead of bodytemp is caused by
human body temperature being higher then room temperature. Not sure
what to do about this though
* Does something similar to disgust
Basically, don't continusly send signals if you have no disgust
It's rare enough that this is all the caching we really need to do
Saves roughly 1% of life tick. Right on the edge of not worth it
* Some cleanup to how mob fires handle their lighting, adds a check to liver coder
* Cleans up update_gravity slightly
It's very close to outside a measurable deviation faster, but I honestly
just did it to make it easier to read
* Fuck you
* Very minor organ optimization
Instead of using internal_organs_slot for our organ iteration,
we use it to produce a sorted internal_organs list.
This is barely worth it, ends up being 0.7% of life saved.
I only did it because it makes a semi noticable impact on our current
numbers.
* Revert "Very minor organ optimization"
It turns out mutating internal_organs is important sometimes
The usefulness of this change is small enough that I don't want to spend
more time on it
So back it goes into the dirt
This reverts commit 622bd34adb8d8a3d5f2763ac659446ef3362e3cd.
* Properly returns false in IgniteMob
* Adds a parent call to setBleedStacks
I like it, it's a good idea
It was using update_user_power(NO_POWER_USE) to disable power use
while off, but that will actually unregister the power_change signal
(which is what the RND server uses to call this) so, it was
being called once and then never working again because it wasn't
receiving the signal to redo it
* Adds a discord bot command version of show-server-revision
This is to replace `!tgs revision` with something less lame.
* Update chat_commands.dm
* Update chat_commands.dm
* Update chat_commands.dm
* Update chat_commands.dm
* remove unneeded sanic
This PR adds the accounting console to the game, as a console that exists round start within the HOP's office. The accounting console allows for players to get 2 separate lists of information:
- A list of all the bank accounts associated with each crewmember on the station, listing their account balance, their job, and their paygrade modifier (Which is either 1 or 0.7, depending on their species)
- The audit log, a basic list of transactions of player purchases, listed listed in the following formal universally: [person] spent [cost]CR on [Purchase Source]. It's intentionally left without all the information so that players will need to investigate if they notice strange purchases coming from an account, as a kind of ghetto money forensics.
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.
Removes the old sniper rifle zoom, replaces it with a scope component. the scope activates on right click and lets your camera follow your mouse.
https://streamable.com/2c63u4 (due to byond rounding some shots were weirdly missed in that video, its fixed now)
Also adds sniper marksman ammo to the nukie uplink. It does slightly less damage, but it is hitscan and has one guaranteed ricochet shot, so you can shoot a wall and it could still hit someone.
* Wings require 31 or higher to work
* revert and then ill do the other thing
* This is going to get undone by #66075 and have to be readded pain
* does that thing I said I would do
* Kylerace Commit
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Kylerace "Kylerace Commit" Fix Commit
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Krokodil zombies now look like zombies again.
Transformation now correctly deals damage.
Ensures hair loss on transformation. (Goes with this spirit of skin falling off and it's how the transformation used to work.)
loops through possible places when you try to put an item in. If you happen to be holding a plascutter which is hot, its gonna try to insert it into the plasma stack and blow you up.
* 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
Makes Library access helper use Library access instead of Theatre
Adds a Theatre access helper for Theatre
Adds an Engine equip access helper for Engine equip (SMES/Grav gen, in the case of Pubby, aka the whole reason I made this PR).
Removes double crematoriums
It's nice when helpers work as they are supposed to, and if used in the future, will help our maps have less varediting. pretty cool.
* Updates Maps And Away Missions MD
Hey there,
This was outdated for a bit, so I decided to pretty it up and make a few things a bit more explicit.
I alphabetized the maps since we don't really prioritize one-over-the-other (except Meta now being the default map instead of the non-existent Box).
I also alphabetized Removed Station Maps, and removed the "outdated" (they are all outdated, or will definitely all be outdated by the time a reader reads this).
I elaborated a bit more on how station maps are loaded these days (correct me if I am wrong).
Standardized how we show code paths.
Gave explicit instructions on never using Dream Maker to map, and linking two programs that we tell anyone who wanders in on the Discord to use anyways (please do inform me if we should not do this- but Dream Maker just fucking sucks shit).
I also fixed up some language around the Away Missions part, and added a newer section for the Map Depot since I do not believe it is discussed elsewhere on the main repository (as well as a short warning on anyone who things they can get Phobos or something running out-of-the-box).
Alright, cool.