* Fix wormhole jaunter behavior with chasms and EMP (#61055)
Wormhole jaunters will now save the user from a chasm if they fall in and it's on their belt. Wormhole jaunters also are affected by EMP correctly. Before it would only be affected by an EMP if it was in the belt storage area which made no sense.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
(Lots of good work here, thank you tim)
* Fix wormhole jaunter behavior with chasms and EMP
Co-authored-by: Tim <timothymtorres@gmail.com>
* makes fake artefacts better (#61185)
adds the lefthand and righthand icons to the artefact, and gets rid of the big blue x overlay
* makes fake artefacts better
Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
* Fixes a regression about skeleton pirates not having milk bottles. (#61217)
* Fixes a regression about skeleton pirates not having milk bottles.
* aaaa
* Fixes a regression about skeleton pirates not having milk bottles.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.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>
Repaths everything referring to "toxins" while actually meaning either the room in science or plasma gas. While this PR might be disrespectful to our forefathers, given this is (I believe) a holdover from as far back as the Exadv1 days, this has constantly irked me since I started working with the code. None of the player-facing stuff has referred to plasma as toxin since before 4407 hit, besides the Toxins Lab, and yet all of the type-paths are still pointing at toxins, making it a nightmare to search for in a map editor, and making the code needlessly easy to confuse with that of toxin damage. So this just fires it into the sun.
Anything relating to Toxins, the science subdepartment, now makes reference to Ordnance instead. This felt fitting enough given the focus of the subdepartment is around the creation of and testing of explosives.
Anything relating to plasma gas has, fittingly, been made to refer to plasma gas.
Edit: Ah yes, I feel I should probably apologise off the bat for the size of this PR- the code touched is mostly atmos machinery and simplemobs, a few sprites here and there, and of course the station maps + a few offstation maps.
Makes the code more legible and makes mapping less painful.
(The payment has been made)
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Fix staff of lava not terraforming lava (#61096)
Lava staffs were not terraforming regular lava into empty tiles. This is because it was only checking to see if the lava type was the same weak lava the staff spawns. It has now been fixed to check for all lava types.
* Fix staff of lava not terraforming lava
Co-authored-by: Tim <timothymtorres@gmail.com>
* Refactors connect_loc_behalf into a component (#60678)
See title. Also refactors caltrops into a component because they use connect_loc_behalf which requires them to hold the state.
This also fixes COMPONENT_DUPE_SELECTIVE from just outright not working.
connect_loc_behalf doesn't make sense as an element because it tries to hold states. There is also no way to maintain current behaviour and not have the states that it needs.
Due to the fact that it tries to hold states, it means the code itself is a lot more buggy because it's a lot harder to successfully manage these states without runtimes or bugs.
On metastation, there is only 2519 connect_loc_behalf components at roundstart. MrStonedOne has told me that datums take up this much space:
image
If we do the (oversimplified) math, there are only ever 5 variables that'll likely be changed on most connect_loc_behalf components at runtime:
connections,
tracked,
signal_atom,
parent,
signal_procs
This means that on metastation at roundstart, we take up this amount: (24 + 16 * 5) * 2519 = 261.97600 kilobytes
This is not really significant and the benefits of moving this to a component greatly outweighs the memory cost.
(Basically the memory cost is outweighed by the maint cost of tracking down issues with the thing. It's too buggy to be viable longterm basically)
* Update glass.dm
Co-authored-by: Watermelon914 <37270891+Watermelon914@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>
* Meat-hooks and changeling tentacle's firing pins are no longer visable (#60455)
Adds a Boolean to mark guns as "pinless" so they don't care about or show firing pins
* Meat-hooks and changeling tentacle's firing pins are no longer visable
* Update gun.dm
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Corrects the grammar of spectral blade ghost notifications (#60189)
Uses src.name instead of src in the spectral blade's ghost notifications so that you see "his/her/their spectral blade" instead of "his/her/their the spectral blade".
* Corrects the grammar of spectral blade ghost notifications
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* OH BOY
* Not even dying harder than possible will save you from being revived.
* weh
* more improvements
* more fixes and improvements
* adds le vendor options
* Adds cortical stacks to cargo
* aaaa
* syndie cortical
* oops
* DELACE MACHINE GOES BRRT
* Are you a believer?
* buffs cortical stack remover on traitors
* Update code/game/objects/items/devices/scanners.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update code/modules/mining/machine_vending.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update code/game/objects/items/devices/scanners.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update code/modules/mob/living/carbon/death.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/delacer.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/implanter.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/stack.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/stack.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/stack.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/stack.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update delacer.dm
* aa
* a
* Update stack.dm
* weh
* More featureees
* Believer bundle
* i am deranged
* Update implanter.dm
Co-authored-by: Yawet330 <memeusniceus@gmail.com>
Co-authored-by: Tom <tomforde4@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* makes a bunch of lists that use typecacheof() static. doesnt find out why its overtiming at all but what the hell it helps (#60147)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* makes a bunch of lists that use typecacheof() static. doesnt find out why its overtiming at all but what the hell it helps
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* hiero dash now doesnt work on blocked turfs (#59983)
* hierophant club dash now doesnt work on blocked turfs
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Reverts Entered() passing dir instead of old loc (#59910)
* Reverts Entered() passing dir instead of old loc
Co-authored-by: Rohesie <rohesie@gmail.com>
* Paradox bag resprite and rework (#59779)
Paradox bags can now be worn on the belt slot instead of the back, while being able to carry less (it can still fit inside bags).
Adds new sprites for the icon and belt.
* Paradox bag resprite and rework
Co-authored-by: Sheits <81964183+Sheits@users.noreply.github.com>
* Makes turfs persist their signals, uses this to optimize connect_loc (#59608)
* Makes turfs persist signals
* Splits connect_loc up into two elements, one for stuff that wishes to connect on behalf of something, and one for stuff that just wants to connect normally. Connecting on behalf of someone has a significant amount of overhead, so let's do this to keep things clear
* Converts all uses of connect_loc over to the new patterns
* Adds some comments, actually makes turfs persist signals
* There's no need to detach connect loc anymore, since all it does is unregister signals. Unregisters a signal from formorly decal'd turfs, and makes the changeturf signal persistance stuff actually work
* bro fuck documentation
* Changes from a var to a proc, prevents admemems and idiots
* Extra detail on why we do the copy post qdel
* Makes turfs persist their signals, uses this to optimize connect_loc
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Adds set_density()
Fixes one instance of a duplicate density assignment on an object.
Comments two hacky usages of density which will have to forgo using the setter for now.
Lets us append code to the event of density changing.
Pretty sure this is leading up to some multitile object thing -Lemon
Co-authored-by: Rohesie <rohesie@gmail.com>
* During unit tests, does extra verification on text based overlays (#59553)
This makes it so during unit tests, adding a text based overlay to something will runtime if the icon does not have an icon state matching that text. I would do this during normal compiles as well but getting the icon states from an icon is surprisingly expensive.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* During unit tests, does extra verification on text based overlays
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Adds Neon Carpet (#59140)
Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.
* 0
* A
* a
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Makes obj_integrity only updated through procs (#59474)
Having things updating integrity directly is just going to cause more problems down the line as more elements and components depend on being notified of integrity changes. It's an easy mistake to make so making it private should deal with the problem.
get_integrity() might be useful in the future but is mainly a side effect of making obj_integrity private as that also disallows reads.
* Makes obj_integrity private and only updated through procs
* Mirror!
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
* USE SIGNAL_HANDLER REEEEEE
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Kills BOTH /poison paths by turning poisonous into an element. (+fantasty prefix, sanity on attackingtarget signal, and more) (#58882)
* Kills BOTH /poison paths by turning poisonous into an element. (+fantasty prefix, sanity on attackingtarget signal, and more)
* AAAAAAAA
* Update spellbook.dm
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Gives botany plants a new formula for calculating bite size, fixes swallowing watermelons whole (#58795)
About The Pull Request
This PR gives botany plants a new formula for getting the size of their bites.
The formula is (potency / 20) * (max_volume / 100) * (modifier) + 1.
This brings your average 100 potency plant to a bite size of 6 units per bite. [(5 * 1 * 1) + 1] - For reference, a Tomato has 14 units of reagents with default genes at 100 potency, so this means a tomato is eaten in 3 bites.
This PR also goes through and audits all the plant's bite modifiers to bring them in line with the new formula. This makes the bite modifier actually a bite modifier instead of some weird constant var that lies about what it actually does.
Fixes#55527
Why It's Good For The Game
Currently, all plants are eaten in a single bite. Including watermelons and the dank weeds. This is bad.
image
This PR brings them all in line so you no longer swallow watermelons whole, so you stop accidentally getting fat.
I also audited all the plants so their relative bitesizes make sense with the new formula. Only apples and potatos are eaten in 1 bite. Plants with more reagents naturally should now have larger bitesizes, and plants with less reagents have smaller bitesizes. Balance is restored.
Changelog
🆑 Melbert
fix: You no longer eat all botany plants plants in 1 bite. Apples and Potatos retain their unique 1 bite behavior.
code: Botany plants use a new formula for calculating bite size. All botany plants have had their bite modifier adjusted to match.
/🆑
* Gives botany plants a new formula for calculating bite size, fixes swallowing watermelons whole
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>