* (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc
* WHEW THAT WAS EASY
* Update ammo.dm
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Fixes a fuck ton more harddels (#58779)
Redoes how geese handle eating shit, it was fucking stupid and caused harddels, and while this method is technically slower in the best case, it's a fucking goose
Fixes action related harddels, I hate how they work but at least this way they won't hold refs.
Fixes the hierophont causing its beacon to harddel
Removes the M variable from megafauna actions, it was used like a typed owner and caused harddels, so I burned it
Fixes target and targets_from harddels, replaces all setters of target with LoseTarget and GiveTarget, which should help maintain behavior. I'm not sure if this breaks anything, but if it does we should fix the assumptions that code makes instead of reverting this change
Fixes more area_senstive_contents related harddels, we need to allow the mob to move before clearing out its list.
Fixes marked object harddels (I'm coming for you admin team)
Fixes a language based human harddel
Fixes managed overlay related harddels (This was just emissive blockers, but I think this is a good safety net to have. If we clear the overlay list we should clear this one as well)
Fixes bot core harddels, I hate the fact that this exists but it has no reason to know who its owner is
Adds a walk(src, 0) to simple_animal destroy, it's the best bang for the buck in terms of stopping spurious harddels. Walk related harddels aren't that expensive in the first place, since byond does the same thing I'm doing here, but this makes finding mob harddels easier, so let's go with it
I fixed another source of part harddels, I hate fullupgrade so much
Fixes all the sound loop harddels
* Fixes a fuck ton more harddels
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* the backfire effect of killer tomatoes no longer requires the liquid contents trait (#58880)
* e
* accidentally modified the wrong one, whoops
* the backfire effect of killer tomatoes no longer requires the liquid contents trait
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Removes some boiler plate from working with atmos code (#58885)
Everything that called turf.assume_air and turf.remove_air was already updating turfs, and all that not tying
the two together did was add more boiler plate, and break things when people forgot about it.
This shouldn't add any overhead outside of hotspots, but I think that's trivial
* Removes some boiler plate from working with atmos code
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* whole bunch of shit
-gives quaaludes and opium more distinct effects
-adds pcp
-adds thc
-replaces space drugs in weed plants with thc
-adds hash
-adds dabs
-rebalances amount of drugs you can produce
* Update opium.dm
* newlines
* runtime fix
* runtime fix attempt 2
* amazing
* i dont recall the variable names being this fucked
* I FUCKING HATE GIT
* please so help me god
* Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)
* Adds explosion SFX to the blastcannon and explosive compressor
- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.
* Miscellaneous changes
- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments
- Removes a whole bunch of argname = 0 in explosion calls.
* Removes named callback arguments.
* Changes the explosion signals to just use the arguments list
Adds a simple framework to let objects respond to explosions occurring inside of them.
Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.
Makes the explosive compressor and blastcannon actually use the TTVs they are given.
Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments
*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.
* Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* High-danger plants like deathnettles now require botanical gloves to hold instead of any glove type (#58503)
* High-danger plants like deathnettles now require botanical gloves to hold instead of any glove type
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Implements Plant Biotype (#57108)
Implements a plant biotype for plant based mobs. Changes the wood golem mob to be an organic, humanoid, and plant biotype---because wood is an organic substance, not a mineral.
This additionally adds the ability for plantbgone/weedkiller to deal damage to plant biotypes.
Why It's Good For The Game
There's a curious lack of a defined plant biotype, despite plants sharing a unique number of traits. Ideally, this behavior can be more consistently implemented with something like biotypes. A minor example of this is utilized in this PR: weedkiller and plantbgone impacting plant-like mobs, which is what you'd expect.
Changelog
cl
add: Plant-like mobs are now impacted and take damage from plant-b-gone and weedkiller reagents
add: Plant-like mobs can be health scanned with a plant analyzer
add: Plant-like mobs are impacted by the floral gun in the same manner pod people are
/cl
* Implements Plant Biotype
Co-authored-by: Fox McCloud <Fox-McCloud@users.noreply.github.com>
* Fix plant trash from grown food not inheriting their proper seeds (#57924)
This PR fixes plant trash not getting the seed from their parent.
trash_type is a type path, not an instantiated object. istype always fails trying to use it on trash_type. ispath is the correct helper to use here, because it's a type path and not an object.
* Fix plant trash from grown food not inheriting their proper seeds
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Some explosions code cleanup (#57493)
Clears out two deprecated explosions systems (explosion ids and explosion levels)
Refactors a bunch of contents_explosions procs to be maybe slightly faster.
Cleans up a bunch of ex_act code.
Slightly cleaner code
A few less unused vars on /atom and /turf
* Some explosions code cleanup
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Fixes food trash element not generating trash, including fixing gatfruits not dropping guns. (#57590)
* Fixes food trash element not generating trash, including fixing gatfruits not dropping guns.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Adds a hotkey that puts you in throw mode aslong as you hold it (#57331)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds a hotkey that puts you in throw mode aslong as you hold it
* a
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Remove sleep() from hydroponics.dm (#57344)
remove sleep() from a couple of hydroponic procs, use addtimer and callbacks instead, closes#56435
* Remove sleep() from hydroponics.dm
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Small plant tweaks, addition of chemicals to under utilized plants (#57302)
* Small plant tweaks, addition of chemicals to under utilized plants.
Co-authored-by: carshalash <carshalash@gmail.com>
* Adds a new type of botany experiment that tests plants. (#57166)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds a new type of botany experiment that tests plants.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* lowers the size of torches, and lets them be made with leafy mushrooms (#56877)
* lowers the size of torches, and lets them be made with leafy mushrooms
Co-authored-by: Elli-Skala <69182855+Elli-Skala@users.noreply.github.com>
* Moves the plant analyzer chem mode to right click + lets you read out a tray's chemical contents
* Update growninedible.dm
* Update grown.dm
* Create grown.dm
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Syringe toggle has been replaced with left-click to inject, right-click to draw. You can also now change transfer amount. (#56865)
* Syringe toggle has been replaced with left-click to inject, right-click to draw. You can also now change transfer amount.
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
* Refactors plant traits to use signals + autodocs a lot of plant gene stuff and better vars all over (#56841)
Refactors plant traits to use signals instead of looped proc-calls copy-pasted on both types of plant.
Comments / autodocs a lot of the plant genes and their procs.
Renamed a bunch of vars to be more descriptive.
* Refactors plant traits to use signals + autodocs a lot of plant gene stuff and better vars all over
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Refactor can_inject, and introduce try_inject (#56816)
Splits can_inject into can_inject and try_inject. The latter can perform side effects, while the former cannot. Moved the show_error bool parameter to a flag that try_inject checks.
Changes the signature to can_inject(mob/user, target_zone, injection_flags). This was previously redefined in several places, making it impossible to use named parameters. This refactor now allows named parameters to be used, and thus avoiding the ugliness of TRUE, FALSE, FALSE in parameters.
* Refactor can_inject, and introduce try_inject
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
* Increase hatchet throw range to 7 and allows them to embed (#56705)
I think it would be fun if you could throw hatchets and get them
embedded in your victims, I was surprised that it wasn't a thing in the
first place.
Co-authored-by: Sparkezel <1haslo4@ gmail.com>
* Increases hatchet throw range to 7 and allows them to embed
Co-authored-by: Sparkezel <53384660+Sparkezel@users.noreply.github.com>
Co-authored-by: Sparkezel <1haslo4@ gmail.com>
* Adds mouth slot sprites for roses (#56715)
This is a very important feature of roses that was neglected prior.
* Adds mouth slot sprites for roses
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* A Big Hydroponics Update: A Rose by any other name (2 new plants, 4 new traits, new genes, and more!)
* Update grafts.dm
* Update grafts.dm
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Fixes minor logging issue with hydroponics trays (#56381)
Hydroponics trays have a var, lastuser, that it's supposed to use in logging as the last person who modified a tray's reagents
this variable was only set if you transferred reagents to the tray via composting, so it was null 99% of the time.
The var is now set when any reagents are transferred and the logging for spawning spiders now uses this var.
The var is now a weakref, to prevent hydroponics trays from harddels.
"null last modified a tray's contents that spawned spiderlings." Not very helpful to admins, is it.
* Fixes minor logging issue with hydroponics trays
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes for the invasive spreading trait (#56300)
Fixes invasive spreading overtaking same type plants (It was checking for dead plants instead of alive ones)
Fixes invasive spreading going through glass (It only checked plants one step away, regardless of adjacency)
Better var names (HY -> spread_tray, H -> our_tray)
Slight visual feedback when plants are destroyed
TRUE / FALSE instead of 1 / 0
* Fixes for the invasive spreading trait
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Patches gene shears click stack exploit (#56301)
Fixes#55390 by checking the plant's heath again after the input is done and before the gene is removed. I'm not sure if it's the cleanest way to get around stacking inputs to exploit the health, but it works?
* Patches gene shears click stack exploit
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Barrels work with science goggles (#56035)
Barrel have TRANSPARENT flag when open instead of AMOUNT_VISIBLE letting you see the contents with reagent scanners
* Barrels work with science goggles
Co-authored-by: spessbro <51048066+spessbro@users.noreply.github.com>
* Fix chemical grafts (#56000)
Fixes chemical grafts in botany so their seeds actually gain the reagents they offer.
For those who didn't know, Spaceman's Trumpet is the only plant (for now) that allows you you graft it and get a chemical instead of a trait (Polypyrylium Oligomers). Only this graft doesn't work. It shows up in the plant, but on harvest there is none of that chemical inside of it. Now it works.
* Fix Botany chemical gene grafts
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* fixes densified (#55967)
Densified Chemicals broke with the food refactor. Food has a max_volume var that it uses to create the reagent container which was overriding the reagents.maximum_volume change. Now it changes the proper var and works again.
* Fixes Densified Chemicals
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fix hydroponics tray examine messages (#55861)
Some oversights when examine procs were changed to return lists of
strings, rather than using `to_chat()`, meant that the examine for
hydroponics was printing some messages in the wrong order.
In addition, examining the tray when close to it was only printing the
`to_chat()` messages, so it has been changed to `examinate`.
* Fix hydroponics tray examine messages
Co-authored-by: coiax <yellowbounder@gmail.com>
* Fix onyo (#55650)
Regular onions no longer turn into red onion slices when cut
* Regular onions no longer turn into red onion slices when cut
Co-authored-by: Dex <60656530+Ewwmewgewd@users.noreply.github.com>
* Adds hydroponics shrubs, allowing botanists to grow hedges. (#55496)
Replaces one of the rainbow seeds in the exotic seeds crate with a pack of shrub seeds.
Adds a new, growable seed species for shrubs. Shrubs, when planted (similar to kudzu!) plants a solid, weak barrier in hedges.
These hedges block vision, unless trimmed. Thankfully, we already have a hedge trimming skillchip, so using a sharp implement on the hedge will make it non-opaque.
* Adds hydroponics shrubs, allowing botanists to grow hedges.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>