* Nerfs bone wounds to make them less miserable (#61196)
So I've always kinda known that bone wounds are unpleasant to receive, but since paying some closer attention to how they affect peoples rounds in the last few months, I've realized that they need to be reigned in some more. So, let's break down the big changes...
General bone wound nerfs
Limping on a busted leg is now a chance with each step of that leg, instead of always happening: No matter how small the delay added to your move time after each step (like if it was just a dislocation), and even with slings, bone wounds on your leg crippled you with the constant slowdown, because they happened every time you stepped on that leg. Now, the chance to limp on any given step with that leg is higher with worse wounds, and applying a sling to that leg further lowers that chance, as well as lowering the delay from that limp. A dislocated leg, for example, only limps 30% of the time, while a compound fracture limps 70% of the time.
Skeletons and plasmamen (aka carbons with no flesh) can now use bone gel directly on cracked limbs to fix them, in 1/4th the time it takes the normal bone gel + surgical tape improvised fix to heal them, and with none of the damage. I felt bad that the ability for skeletons to stick dismembered limbs back into their slots was destroyed because the limbs would be critically wounded already, and still useless. Now, skeletons and plasmamen can be treated with just bone gel and some time. At some point after this is merged, someone should give the pirate ship some free bone gel.
The speed of the improvised bone gel + surgical fix for broken bones is even further improved by laying down and by sleeping than it was before, meaning the improvised fixes can be cut down further by laying down for a bit while it works.
Makes bone wounds less obnoxious, reducing their ability to single-handedly ruin your round when you suffer one. I want to go further in the future and add an easier improvised fix for hairline fractures soon, but those changes can come later after these are merged.
* Nerfs bone wounds to make them less miserable
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* the negative moodlet from being held at gunpoint will no longer last indefinitely under certain conditions (#61395)
* the negative moodlet from being held at gunpoint will no longer last indefinitely under certain conditions
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Fix lingering alpha issues when the Chameleon mutation is removed. (#61444)
The Chameleon mutation registers COMSIG_HUMAN_EARLY_UNARMED_ATTACK when it is gained, but never unregisters it when it is lost.
Mutation datums aren't necessarily deleted and can sit in the DNA dormant until activated, as a result there's no nice qdel() handler to clean up the mess.
An example of this is a changeling with Chameleon skin, that adds/activates/deactivates the Chameleon mutation as required.
Honestly, this could probably be refactored into a component since the behaviour is pretty generic and can mostly be applied to any atom. That is a bit more work for another day and a good first PR for someone to learn how to make components.
This at least fixes the underlying issue.
* Fix lingering alpha issues when the Chameleon mutation is removed.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes some problems with the stargazer slime link and an oversight shared with the mansus link. (#60966)
See #60870. For consistency, I also fixed a small oversight with mindshield implants not retroactively working against slime or mansus links. Furthermore, I renamed some variables accordingly to the guidelines. On top of that, another issue with being mindshield, protected against magic and/or dead as stargazer has been fixed (see cl).
EDIT: Somehow I haven't notice until now, but someone else seems to have already made a PR (#60960) to fix the aforementioned issue report (but not the rest). Feel free to merge it first, I'll resolve the conflicts and the cl later.
This also changes the var/obj/target variable on innate actions to be var/datum/target instead.
* Fixes some problems with the stargazer slime link and an oversight shared with the mansus link.
* Update polychromic.dm
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Baton refactor. item/melee/baton is now a subtype of item/melee/baton (formerly classic_baton)
* EEEE
* E
* follow the fucking guidelines
* E
* Update CentCom_skyrat.dmm
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Fixes GetComponents() returning a list with a null entry when there's no component of a given type (#61267)
Fixes GetComponents() returning a list with a null entry when there's no component of a given type
This can cause runtimes. The lists should only contains instances of a specific component type.
* Fixes GetComponents() returning a list with a null entry when there's no component of a given type
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* multiplies the chance to start dreaming each sleep tick by 5 (#61348)
Fixes#61214.
The chance for snoring looks a bit low as well, but changing that wouldn't be a direct fix to an issue.
* multiplies the chance to start dreaming each sleep tick by 5
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Revert "Revert "[MIRROR] Refactor area and turf lighting (#7775)" (#7902)"
This reverts commit 64c4c52d12.
* This should probably fix it
* I love linters
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* 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>
* "You step on the floor!" caltrop fixes (#61279)
The chat feedback for stepping on an object with a caltrop component still erroneously reads out the turf instead of the object.
* "You step on the floor!" caltrop fixes
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Componentizes/Elementalizes Pride Struck Hammer Behavior + Carp'Sie Plushie Behavior (#60728)
Title, please say hello to the element "chemical_transfer" and the component "faction_granter"
Componentized behavior is easier for admins to make events out of, more modular for code maintainability, lowers the possibility of future copy and paste, set me up with my wife, and more
One of the things I personally like the most about it is the ability for each behavior to properly be described on examine, which I loooooove!
Also, these should be fantasy affixes after the freeze is done
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Componentizes/Elementalizes Pride Struck Hammer Behavior + Carp'Sie Plushie Behavior
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Disables wrenching on money bot and scanner gate shells when they are locked (#61274)
* Tweaks to wrenching
* Addresses comments
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Disables wrenching on money bot and scanner gate shells when they are locked
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* restore removed individual logs and place them under LOG_VICTIM category (#61256)
it turns out that admins use the removed information in #61179 for faster live in-round logging, I've restored that information under a LOG_VICTIM category that should not interfere with mind-reading and ling absorb text
* restore removed individual logs and place them under LOG_VICTIM category
Co-authored-by: Couls <coul422@gmail.com>
* Rebalances watchers, base damage and status effect (#61223)
fixes#49999
Gives them a bit of base damage that's burn for carbons and brute for borgs so they can still self-repair
Gives them a slowdown on par with hardsuits that lasts just long enough to wear off if you dodge one more shot while under its effects
* Rebalances watchers, making them able to actually damage you
Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
* Changes the mouse_opacity of imaginary friend mobs to MOUSE_OPACITY_ICON (#61036)
* Sets the mouse_opacity of imaginary friend mobs to MOUSE_OPACITY_ICON
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* kills 4 object definitions that are inside of proc arguments (#61152)
thanks to putnam for reporting this in coderbus
/obj/machinery/smartfridge/drying_rack/load(/obj/item/dried_object)
looks pretty harmless right? youd think that this would make a proc argument called dried_object of type /obj/item but no, this defines a new /obj/item class definition called dried_object with zero changes from /obj/item
you can use this to do weird things, like /obj/machinery/smartfridge/drying_rack/load(/obj/item/var/dried_object = 3)
creates a new var on /obj/item called dried_object and is very cursed
gets rid of 4 of these abominations, they dont seem to have caused any bugs except for maybe behavior that relies on typesof(/some/path)
* kills 4 object definitions that are inside of proc arguments
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Reimagines the imaginary friend as a fancy new smite. (#61218)
Fixed imaginary friends being unable to turn by movement or holding down ctrl. I assume this was broken when abstract_move was implemented.
Makes some tweaks to the Imaginary Friend mob. It no longer cares about any brain traumas and can exist standalone.
Added the ability to take a set of datum prefs as an argument. It will attempt to create an imaginary friend as per those datum prefs.
This imaginary friend can be a cyborg or an AI core.
Takes this improved behaviour and packages it into a brand new smite that allows admins to inflict anyone with a permanent imaginary friend. This is not tied to a brain trauma. You can probably give imaginary friends imaginary friends. You can probably give the AI eye an imaginary friend. I have not tested this. It is probably a bad idea.
You can give simplemobs imaginary friends. Basic mobs. Silicons.
You choose whether the imaginary friend takes on the preferences of the person you choose to be the imaginary friend or is random
* Reimagines the imaginary friend as a fancy new smite.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* fixes bad arguments to /datum/footstep/Attach() (vary to sound_vary) (#61231)
#60479 changed the attach argument "vary" into "sound_vary" but didnt change the two associative arguments for vary to sound_vary. this does that. now Attach() wont runtime for the footstep element
* fixes bad arguments to /datum/footstep/Attach() (vary to sound_vary)
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Replaces bees and hivelord MOUSE_OPACITY_OPAQUE with a component. (#61032)
I have replaced the mouse opacity setting for bees and hivelord, its brood and legion skulls with a component that adds an almost (has to be 1 alpha to catch the click) invisible underlay to its target that doesn't block the entire turf.
The component prevents the underlay from shrinking or expanding above/below certain boundaries when the attached atom transform matrix is vv'd by an admin or if it's a mob being resized.
The component can be added to any atom, though there's no common signal for when objects are resized.
* Replaces bees and hivelord MOUSE_OPACITY_OPAQUE with a component.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes scanner gates (#61138)
Scanner gates will now properly function when anchored. This is done by having the signal id be COMSIG_MOVABLE_SET_ANCHORED instead of COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH.
Shells that require anchoring will now say they require anchoring.
* Fixes scanner gates
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Fix dir delay when riding something and turning (#61056)
Fixed invalid arguments being passed into vehicle_moved
* Fix dir delay when riding something and turning
Co-authored-by: BraveMole <bsouchu@gmail.com>
* R.field
* i hate modularization
* AAAAAAAAAAAAAAAAAAAAAAAA
* agony
* almost done
* h
* Delete admins.txt
* Add files via upload
* Update and rename admins.txt to config/admins.txt
* Update admins.txt
* rwrwawdaw
* fuckfuckfuck
* Apply (safe) suggestions from code review
not committing all of them, gonna test them on my PC first
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* asaaaaaaaaaa dont merge this aaaaaaaaaaa
* i hate gitignores with a passion./
* HATE> HATE GITIGNORE.
* final tweaks
* quite possibly the worst code i have ever written
* i forgot to remove this comment
* prefs
* THE SPAGHETTI CODE IS GONE (also more maintainable)
* Update readme.md
* why was it unticked
* more maintainability
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Fixes being able to spam ghost role notifications. (#61085)
There are methods that let players spam the everloving shit out of ghosts with BONG BONG BONG BONG BONG BONG BONG etc. through being able to constantly poll ghosts for roles with no restriction or cooldown.
Examples are laughter and slaughter demon antag_spawners.
It makes no sense to be able to concurrently poll for the same mob. As a result, I've now added a guard against this. The proc has been given a static list of mobs it's polling for ghost roles for. If it's already polling for ghost roles for a given mob, then it just early returns with an empty list, otherwise it adds the mob to the static list when the poll starts and removes it when the poll ends.
I've also done a little cleanup in var names and the proc name, with a find-and-replace done. There weren't many things calling it and none used named keywords in the args so should be fine.
There is also poll_candidates_for_mobs (also included in my cleanup) - This proc is basically only called by admins via sentience balloons and they have their own guards against spamming (the balloon pops and thus can only be used once)
Also fixes an issue in /mob/living/silicon/robot/proc/replace_banned_cyborg() where incorrect args were used in the proc call to poll for candidates.
* Fixes being able to spam ghost role notifications.
* a
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.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>
* Give admins the ability to put a popup notice for players in tickets (#61010)
Admins can now give players a popup if they are not responding to tickets.
Popup is cleared when player replies or ticket is resolved/closed.
As more and more of the chat screen is made irrelevant, new players read it less and less.
This means that a lot of new players are ignoring ahelps, which is something I've encountered myself.
* Give admins the ability to put a popup notice for players in tickets
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>