* Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed
* Fixing conflicts
* Makes it compile, yeet all the RAD armor from everywhere (thanks RegEx!)
* Removing more lingering rad armor (woo)
* Damnit powerarmors
* Bye bye rad collectors!
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* You can now enter da vim (#62211)
Small fix, it checks if you're either not a simple animal or not a simple mob, if you're not one of either, you can't enter.
* You can now enter da vim once again
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Adds SHOULD_NOT_SLEEP to Destroy. Why didn't we do this before. (#61943)
* Adds SHOULD_NOT_SLEEP to Destroy. Why didn't we do this before.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* fixes penetrator rounds phasing through vehicles (#61907)
When I gave vehicles the PASSMACHINE flag in #61793 I forgot that penetrator rounds existed leading to them completely ignoring mechs. This time I created a new flag for vehicles, added it to water particle effects, and excluded it from the penetrator rounds.
Additionally this flag has been added to the heretic's phasing ability.
* fixes penetrator rounds phasing through vehicles
Co-authored-by: Invalid <51190031+InvalidArgument3@users.noreply.github.com>
* [TM Candidate] Overhauls orbit and POI code to fix part of issue #61508 where players could observe /mob/living/new_player on the lobby.
* E
* Missed merge
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Removes Tactical Resting (#61552)
About The Pull Request
If you are on combat mode, your bullets will hit people lying down or stunned, otherwise they pass through.
Why It's Good For The Game
The original PR that added it was labeled a fix (#55495) only mentioning it in the changelog once, when it was a balance change, as resting to avoid bullets was intentionally removed after we added crawling and a rest button, for being fucking stupid.
The thing that original pr "fixed" was mobs being bullet sponges, which you can now prevent by switching off combat mode, so it is no longer needed.
Avoiding people shooting at you while also having guns of your own you are perfectly able to shoot is stupid.
It makes mobs like beepsky super annoying, where unless youre in a large area the robot chasing you with one of the only hardstuns left in the game will be really hard to hit.
Changelog
cl
balance: If you are on Combat Mode, your bullets no longer pass through prone people
/cl
* Removes Tactical Resting
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Slight refractor to borg reboot boards, allows them to be reusable (#61232)
Refractors the cyborg reboot module to be an independent item rather than a subtype of cyborg upgrades. The new item is no longer consumed during use.
Rebooting now makes a different sound when rebooting an AI shell or ghostless borg, rather than no sound at all.
A recent PR fixed a longstanding apparent bug that allowed reboot boards to be resused. A bug it may have been, but the reboot board being a single-use item is kinda terrible, and doesn't make a lot of sense that the board is somehow destroyed when used. Mothblocks, who merged the bugfix PR, has given me permission to PR this change.
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
* Slight refractor to borg reboot boards, allows them to be reusable
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
* Fix broken mech delay (#61163)
This seems to have been supposed to be a delay for god knows what reason
I assume it was supposed to slow you down or something but its not needed or useful and currently breaks changes your speed
* Fix broken mech delay
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* mechas have their 5 default damage back (#61167)
mechas used to have 5 force, this was broken in the mecha refactor making the non-combat ones do no damage with punches
* mechas have their 5 default damage back
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* large refactor of machine/power code to cut down on processing time and wasted lists (#60317)
original pr here: #59789 (Closed because he didn't think it was good enough)
came back to this because i realized that
all machines were area sensitive, meaning they had a list with at least a reference to themselves (assuming they arent in the contents of another movable which most arent) for the purposes of handling power differences when their area changes
pipes are machines
there are ~14k machines and ~6k pipes
i made this problem worse with a recent pr by making it a nested list
so i needed to track what machines needed power, and this pr had work already done that could be used for that purpose. now machines that have use_power == NO_POWER_USE do not have this extra memory overhead for no reason
currently every machine that uses power draws that amount from its area from a dynamic channel via auto_use_power() which is called every SSmachines fire(), then in apc/process() the area's dynamic power draw is reset and the power is used. with static power its not calculated then reset every loop, its just taken from the grid. so now machines handle updating their static power usage from their current area (this doesnt touch power machines that require a wire connection). in order to allow this, use_power, idle_power_usage, and active_power_usage have setters to track state correctly and update the static power usage on the machines current area and handle area sensitivity.
also goes through a lot of heavy abusers of SSmachine processing time and tries to make it faster. makes airalarm/process() into a signal handler for COMSIG_TURF_EXPOSE since air alarms only need to process for changes.
Why It's Good For The Game
SSmachines isnt the heaviest hitter in terms of total cpu and certainly not in terms of overtime, but its not a lightweight. it frequently takes > 50ms to complete a run and seems to be in the top 5 or so of subsystem costs looking at some round profilers
also gets rid of a few thousand lists since every pipe no longer has two useless lists each (and any other machines that dont use power)
Love ya kyler
Co-authored-by: Rohesie <rohesie@ gmail.com>
* large refactor of machine/power code to cut down on processing time and wasted lists
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
* lava and weather immunities refactor (also jump boots fix) (#61003)
In remembrance of all those people who used jump boots to cross lava unaware of an issue c*ders wouldn't fix....
EDIT: This is now a lava and weather immunities refactor:
Weather immunities are now status traits since they have a multitude of sources (especially for lava) which might conflict with one another otherwise.
The lava burn_stuff proc has also been been refactored in different procs, mostly because of that snowdin subtype with inconsistent, old checks.
Weather datums should now use can_weather_act instead of weather_act to check if something can be affected by weather or not, as they should.
All movables can protect contained mobs if they have the relative weather immunity traits. This works at any contents depth.
No more snowflake weather_protection variable for closets.
Removed the weather_immunities list from living mobs (simple animals still have it but it's only for traits assignment on init because way too many child types lack the immunities of their parents).
Removed some unused defines.
Renamed some variables as per guidelines.
It has been tested.
And yea, jump boots fixed because that's the original scope of this PR.
(Initially just made throwing make you fire immune, that was blocked because it breaks perma stuff, instead it ended up be a refactor to make jumpboots usable with weather immumnity stuff
* lava and weather immunities refactor (also jump boots fix)
* Update Ashwalkers.dm
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Del The World: Unit testing for hard deletes (#59612)
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* Del The World: Unit testing for hard deletes
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* Fixes Oingo Boingo Punch-face! not displacing airlocks (#60820)
Gives the relevant safe_throw MOVE_FORCE_EXTREMELY_STRONG so it can overcome airlock resistance restoring its intended "sends atoms flying (including anchored ones and things that make no sense to move because -clowns-)" behavior.
* Fixes Oingo Boingo Punch-face! not displacing airlocks
Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
* Gold wheelchair (item) is now actually made of gold like the vehicle. (#60704)
* Folded gold wheelchairs are now actually made of gold like unfolded ones.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Exosuit Proto-kinetic Accelerator (#60384)
Adds new equipment for mechas: the Exosuit Proto-kinetic Accelerator, unlocked with the mining tech research. Compared to the standard one, it is able to hit 5 tiles away with a low cooldown.
However, unlike the handheld version, it draws a considerable amount of power from the battery, pretty much requiring you to bring generator equipment or upgraded parts.
The projectile is identical to the standard handheld version otherwise and will do little damage in pressurized environments.
* Exosuit Proto-kinetic Accelerator
Co-authored-by: InvalidArgument3 <51190031+InvalidArgument3@users.noreply.github.com>
* Fixes ridden skateboards crashing back-to-back when bumping a dense atom while another is behind them. (#60480)
This also fixes some "max recursions reached" warnings for admin hoverboards, which have zero instability.
* Fixes ridden skateboards crashing back-to-back when bumping a dense atom while another is behind them.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Vim, but ready for merge now (#60334)
Minature little mecha for critters (tiny simple animals) to ride around in. Comes with headlights, and the ability to chime or buzz (in case you cannot speak gal com)
Old PR #59736
I got the sprites for it now!
* Vim, but ready for merge now
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* cuts down honker mech ui pasta and fixes their lack of an equipment menu. (#60115)
This will fix#59726 (Honk mechs being unable to drop equipment)
* cuts down honker mech ui pasta and fixes their lack of an equipment menu.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Ban posibrains and mmis from savannah ivanov (#59772)
Savannah Ivanov cannot have mmis or posibrains in them.
Now I know that sounds BAD... but I originally intended to do this as it removes a huge trust element and bypasses recruiting people for cooperation. I simply uuuh genuinely forgot to include this, so sorry for the DRAMA.
I was considering blocking the AI too, but AIs are actually more likely to be turned against you than fellow crewmembers
Co-authored-by: coiax <yellowbounder@ gmail.com>
* bans posibrains and mmis from savannah ivanov
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@ gmail.com>
* introduce advanced sucking functionality to custodians (+ bonus GAGging) (#59925)
* base sucking functionality
* functional upgrade and upgrade refactor
* minor tweak here
* finish overhaul of upgrades, add gags-ified upgrades
* add documentation (you love to see it)
* update sucking sound
* do some of the requested cleanup, fix key going into trash bag, add right click func
* introduce advanced sucking functionality to custodians (+ bonus GAGging)
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>