Since climb_time is multiplied by 0.8, climb_stun should also be. Not much point in taking it if whoever is chasing you can still arrive with you stunned on the table and simply pull you off it. If this is too much taken off in total, in my opinion, the stun time should be adjusted, rather than the climb time.
Also reduces the ZImpactDamage knockdown multiplier. Right now both with freerunning and without you get knocked down the same amount, now with it you're actually better at catching yourself on those z level falls and so suffer less of a knockdown.
Currently takes 1 second before withdrawal starts, which is enough to start withdrawal while still using the drug. I changed it to 1 minute before you need your fix again (old addiction was 30 seconds but could be microdosed).
Also buffed junkie pills to 3u and nerfed addiction requirement to 1u, from 2u (effctively still 2u since addiction tends to check after the 2u has already been metabolized).
Also clears disgust from opiods after quenching your addiction, because otherwise you're gonna spent the next 20 minutes being vomitlocked in place
It's the second try! (First: #48456)
Drones are little robots inspired by Keepers from the Mass Effect games. With laws to maintain both the station, and their distance from the matters of others, they were a great ghost role that let you fix up the station when you were otherwise out of the round. They were in the game for quite a while, but were abused. The abusive players completely ignored the laws and did whatever they wanted. Being tiny ventcrawlers, this became a huge issue for admins.
I attempted to bring them back, this time with some gameplay restrictions to enforce their laws a bit better. It seemed to go well, but I required headmin approval, and this all happened near a headmin election, so the project died.
Recently, some people have wanted to bring drones back. So, they gave me a ring, and I started a discussion with the admin team to see what other changes they would want in addition to the previous ones.
Here are those changes:
They can't interact at all when close to another being, living or dead
Their binary chat has been removed to separate them from AI and borgs
They can only hold a whitelist of items necessary to do their job
They can only interact with machines necessary to do their job
The drone satchel is gone, and drones now have built in basic tools
They also can't interact in some blacklisted high risk areas
Finally, you must play 40 hours total as a Silicon role in order to play as a drone
Additionally, the drone dispenser is not mapped, and the drones must be researched to be constructed.
Why It's Good For The Game
Drones are a fun way to pass the time, and this time they have a lot less freedom. You can still perform the basic function of maintaining the station, but not without difficulty and tedium. This will allow other station roles to perform much better than the drones, while still letting them chug along at their slower pace.
* Resolve open position issues in crew manifest
* Use the classes helper for multiple classes
Co-authored-by: celotajstg <celotajstg@users.noreply.github.com>
* Nonfunctional greyscale code
* Functional greyscale sprites via filter
Probably going to set the icon instead later
* Switches to greyscale json config
* Adds the reference layer type and converts the other canister types
* Working previews
* Adds readme
* Fixes overlays and breaking
* Removes old canister sprites
* Removes an unused var
* Fixes tgui lints
* Removes a bunch of the old canister icon states
Yeah I need to fix relabeling as well
* Removes some debug sprites
* Sorts canister type list and breaks up base shader step
* Removes an unnecessary preview hack
* Makes prototype canister greyscale
* Properly sizes the ui
* Fills in the canister map sprite
* Adds some more warnings to layers
* Makes broken overlay more prominent
* Removes a preview var that isn't needed anymore
* Cleans up client ref in Destroy
* Cleans up the tgui window a bit
* Update GreyscaleModifyMenu.tsx
* Animates the canister falling over
* Removes a commented out line that's no longer needed
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
as x doesn't work properly when used in for loops over special lists.
One instance of as anything in get_turf() in crafting code was removed as entirely redundant. It was an untyped for loop anyway.
Two instances of as anything in contents changed for wheelchairs with warnings added to change them to as anything loops when we upgrade to 514.
* Deletes recipient_reagents_holder on del
* Cleans up recipient refs when recipient dels
* no one saw that
* Makes plumbing listen to component signal for finishing
* Unregisters enable call
Shielded hardsuits (like the syndie ones) and shielded cult robes, despite functioning very similarly, were actually implemented twice in their own pockets of clothing code. This merges them into one component that lets you block a certain number of attacks while your suit has charges, and have the suit recharge itself after going so long without being hit (optional, cult robes still don't regain lost charges).
This PR also fixes harmless kiss projectiles consuming charges on shielded suits, I'm sure to much disappointment. They'll now pass directly through though, so you can still try your luck to see if love truly conquers all (it probably won't).
One casualty of this is that you can no longer toggle the shield color of syndie hardsuits with a multitool since that it was annoying to componentize, not something that affected gameplay, and probably something noone knew you could do anyway.
Fixes: #57723
* IM DONE LOOKING AT THE WIKI FOR BASIC SNIZZLE
* microwaved, too
* HOOH
* LINT, review
* review but this time im not lying :trollface:
* maybe i should just like test or something
* reviews i missed
* 🐑
Refactors the limbgrower to modernize the code. Now, the limbgrower can accept any type of reagent in limbgrower designs.
Adds simple plumbing demand to the limbgrower, so you can pipe synthflesh into it.
Adds monkey tails, felinid ears and tails, lizard digitigrade legs, lizard tongues, fake lizard tails (unusable in lizard-wine and similar recipes), plasmaman organs, and ethereal organs (minus the heart) to the limbgrower via limbgrower design disks. These disks can be printed from the medical lathe once the required technology has been researched.
Adds a technology node to unlock the limbgrower design disks after advanced biotech, xenoorgan biology. In the future, this could have an experiment requirement - maybe to scan multiple types of species.
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
## About The Pull Request
Changes up some layer and plane defines for no particular reason lol
## Why It's Good For The Game
Planes actually override layers, and layers control ordering within planes. A lot of the usage of plane and layer was wholly unnecessary. This refactor helps future maintainability while also being needed staging for _future features._
Each of these lines is punctuated by an audio sting every 8 seconds without refrain.
So, this PR adds a new vocalisation limiter to tourist bots who can't find a seat. Instead of always vocalising every 8 seconds, they're now guaranteed to vocalise the first time and then have a 60% chance to have vocalised again each minute thereafter.
Tourists waiting for food now have an approx 40% chance to have vocalised in any given minute. This should be considered alongside the fact that multiple (up to 10) tourists can be present at any given point in time and with the difficulty in players killing them, they can create a lot of unnecessary audio spam. If the tourists are being served rapidly, they're also giving regular guaranted audio stings on top of that which compounds the chances any given bot will output an audio cue.
The AI controller now passes the larger value between the behaviour's `action_cooldown` in real seconds (as opposed to deciseconds) and delta_time when performing behaviours. This has no gameplay changes outside of those documented in this PR, since no AI behaviours with cooldowns greater than the AI controller's delta_time attempted to use delta_time.
Finally, customers now have 10 minutes of patience before leaving instead of 100 minutes of patience due to a minor oversight where their patience was in deciseconds while delta_time was subtracted in seconds.
* Gibs/Dead bodies no longer produce miasma
Miasma production as it is now is too little over too long a time span, and it just ends up spreading across the
station and having little effect. My goal here is to remove a source of uninteresting gas from the station's
air, and make corpses and gib piles more infectious.
I've placed the cap on disease payout at a strength of 7, so there's a slight chance of a positive disease, but
I think it's counteracted by the danger presented by just infecting yourself till you get what you want.
I've rewriten the rot component to just run a percent chance to infect someone with a disease based on the type
of rot, and moved almost all of its behavior to signals. There's one portion I can't rewrite without making
significant changes to how I handle atmos sensitivity, so that'll come later.
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
A new side-job for cargo. Prepare and launch exploration drones at distant sites to encounter weird adventures, collect loot and expand the station cargo network. Adventures - the main content type here, can be written by anyone without any knowledge of programming. The purpose here is creating an way of interesting way of delivering lore (and adding some new job content/cargo expansion method).
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Completely removes show_inv and replaces it with /datum/element/strippable. It takes a list of instantiated /datum/strippable_item which communicate which slots are available and how to interact with them. This element has been added to humans, alien humanoids, parrots, and corgis.
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* Ref Tracking: Revengance
Fixes reference tracking ignoring self references due to a poorly thought out tick checking system.
Fixes reference tracking ignoring the contents of assoc lists
Makes the reference tracking printouts actually describe what list the ref is in, rather then just saying "list"
Adds REFERENCE_TRACKING_DEBUG, a define which toggles tracking info for the ref tracking procs, which allows for
oversight on how the proc is working
Allows for direct calls of qdel_and_find_ref_if_fail(), makes it use ref rather then REF(), fixing it breaking
for mobs. (Ditto for the qdel hint which does the same thing)
Moves REAGENTS_TESTING out of the reftracking define block
Makes unit tests define REFERENCE_TRACKING, REFERENCE_TRACKING_DEBUG, and FIND_REF_NO_CHECK_TICK
Adds a unit test that sanity checks the reference finder proc
This PR makes sure all MouseEntered() procs call their parent, which handles the status bar. This fixes instances where the status bar was missing, for example when you hovered over the ghost buttons, you would not be shown a name of the button, but completely different object, like "space", which was very misleading. This also means that the new status bar should have better parity the with the old status bar, which also showed these things.
We take Gotham from the corrupt! The rich! The oppressors of generations who have kept you down with myths of opportunity, and we give it back to you...the people...Gotham is yours. None shall interfere, do as you please!