* buffs the surgical toolset implant (#56253)
## About The Pull Request
The surgical toolset implant's circular saw and surgical drill now both have a force of 15 (as is normal for surgical tools of their respective types), instead of 10.
## Why It's Good For The Game
I don't really see any reason why these tools should be "dulled" for the surgical toolset implant, especially seeing how the integrated toolset implant (which contains much more generally-usefull tools than what the surgical toolset implant has) contains a 40u welder that has a force of 15, and that's not causing any balance problems. For combat purposes, both of these implants are outclassed by replacing your arm with a chainsaw (which has a force of 24).
Whirring saws and spinning drills that you can extend from your arm like wolverine and shank a guy with are fucking badass, and if a doctor wants to defend themselves with their integrated tools instead of carrying around an extra "normal" saw/drill in their backpack just for combat purposes, then by god, we shouldn't arbitrarily penalize them for doing that.
* buffs the surgical toolset implant
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Now brain trauma paralysis works in arms as intended (#56105)
Fixing issue #56076 making arms affected by the corresponding brain trauma. Fixing brain trauma paralysis in non-human limbs is impossible without a partial or complete refactor of paralysis code or species code, and since this situation happens very rarely, I doubt someone want to waste time in this. But if someone wants to do it anyway feel free to ask me about how it can be done.
* Now brain trauma paralysis works in arms as intended
Co-authored-by: Manybones <miguelbasket1@gmail.com>
* yay hopefully it's not fucking bugged
* better code
* keeping alpha + checking for same species
* oops
* Update modular_skyrat/modules/customization/modules/mob/living/carbon/human/human_update_icons.dm
* I'm a fucking idiot or...
I was setting the alpha of the markings back to the specific alpha after specifically not setting them in the proc beforehand
Co-authored-by: Azarak <azarak10@gmail.com>
* Regular CTF no longer has wounding (#56093)
🆑 coiax
tweak: Regular Capture-The-Flag players can no longer be wounded.
Simulated participants in the Medieval Shuttle can still be violently
murdered with wounds however.
/🆑
CTF is very fast paced, and if you've taken damage without your shield,
you are nearly dead most of the time. However, if you do survive, you're
supposed to slowly heal, but wounds are untreatable on the battlefield.
People still being able to be bloodily stabbed in the Medieval Shuttle
is definitely a feature.
- Aliens (xenomorphs) are still immune to wounds, but that immunity is
now done with a trait, rather than a typecheck.
* Regular CTF no longer has wounding
Co-authored-by: coiax <jack@billbuddy.co.uk>
* Rework job food/alchohol benefits into livers (#55721)
By moving the "special behaviour" of something like security officers
eating donuts, or engineers losing radiation by drinking Screwdrivers,
into traits on the liver, this makes the "origin" of that behaviour more
clearly defined, rather than something that's attached to the mind of
the person. (For example, now if a wizard mindswaps into a Security
Officer, they too can now digest donuts good.)
Having this behaviour be partially visible to the more medically
inclined members of the station (like doctors, and the chaplain for
"entrails reading mystic" themes), means that a dismembered liver tells
a story to those who know how to read it.
Some jobs have more "benefits" than others, for example the only thing
that the liver of a Quartermaster gives them is a sense of inadequacy
when consuming royal carpet.
Clowns having livers that honk make them easier to identify, and plays
into the retconned "bike horns are clown livers lore"? Also, why not cut
out a clown's liver then honk them with it? You monster.
* Rework job food/alchohol benefits into livers
Co-authored-by: coiax <jack@billbuddy.co.uk>
* Flesh to stone no longer makes you immune to bleeding, refactors bleedsuppress into a trait (#56078)
Being hit by the Flesh to Stone makes you bleed immune to prevent you from getting petrified while bleeding, and bleeding out while turned into stone. However, it doesn't make you vulnerable when you get unpetrified. This is a bug. This also makes bleedsuppress into a trait, as both is broken and should be a trait.
* Flesh to stone no longer makes you immune to bleeding, refactors bleedsuppress into a trait
Co-authored-by: Coffee <CoffeeDragon16@gmail.com>
* Default organ reagent stops forever flavor (#55966)
This makes the default reagent in stomachs not be nutriment, the flavor of nutriment was merged in to the nutriment that sits in the stomach add flavors to it.
New the default reagent of the stomach is organ_tissue, this will prevent compounding flavors.
* Default organ reagent stops forever flavor
Co-authored-by: NightRed <nightred@gmail.com>
* Flypeople say "s" as "z" and dont get disgusted by toxic food (#55802)
## About The Pull Request
Flypeople will now say "s" as "z" (They already say "z" as "zzz", but s -/> zzz) and arent disgusted by toxic food anymore.
I'm hoping that by the end of my changes, Flypeople could be considered a unique and viable race, being actually worth something other than "that one unmaintained race we have disabled" (best-case scenario is they become fit to be a proper roundstart race)
## Why It's Good For The Game
Flypeople is the forgotten race of /tg/, this makes them more unique and fits for them.
Not being disgusted by toxic food fits well due to Flypeople being considered disgusting and vile creatures.
* Flypeople say "s" as "z" and dont get disgusted by toxic food
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Merge pull request #55869 from LemonInTheDark/fixes-plasma-alerts
Fixes plasma alerts not showing up
* Fixes plasma alerts not showing up
Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
* Refactor plasmaman stomach typepath (#55716)
Skeleton and plasmaman stomachs now share the same code.
Skeletons now heal brute and burn damage from drinking milk, plasmamen
only heal brute damage.
* Refactor plasmaman stomach typepath
Co-authored-by: coiax <yellowbounder@gmail.com>
* Tweaks how some tongues have no taste (#55811)
Skeletons, abductors and ethereals have no sense of taste. Previously
they would taste something "indescribable", but instead, they will not
taste anything or get any message. This also means they will no longer
get mood buffs from eating/drinking high quality food.
Carbons without tongues also can no longer taste anything.
- The utility item "taster" has had some additional messages added.
* Remove can_taste proc
Instead of a single proc that is only used, so carbons can override it
with the missing tongue, just have carbons unable to taste anything by
default, and then have the tongue "supress" that.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Tweaks how some tongues have no taste
Co-authored-by: coiax <yellowbounder@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* wrinkling my brain (#55829)
#54939 removed a part of individual logging code that used the length of the individual's logging list as part of the index for storing a given line of logging.
The problem is, that number was important for avoiding collisions in the logging lists. Since the length of an atom's logging list can only ever increase by 1 every time a new line is logged, you were guaranteed to always have a unique index for each new line. Without the length in the index, if any logging event was triggered on the same atom multiple times in the same second (like if someone spoke once willingly and once by force from something like tourettes at the same time), two entries would be logged, but both of them would point to whichever one was processed last.
This was most noticeable with wound logging, since the victim would log both the attack itself and the wound it caused at the same time in the same category (LOG_ATTACK), meaning that the wound log would just be turned into a copy of the attack entry, but I believe this is the cause behind most (if not all) of the issues logging has had with duplicating some events and losing others entirely.
The fix is simple, just adding the length of the list to the end of the index. This still allows logs to be sorted by timestamp while ensuring that each log entry is unique.
* Fixes log collisions
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Add inacusiate to syndicate medical borgs (#55823)
Giving syndicate medical cyborgs access to the ear healing chemical
allos them to heal one of the most crippling problems that can afflict
an op; being unable to communicate effectively (through ear damage).
Being unable to communicate because they are a bad player is uncurable
through in-game methods however.
* Add inacusiate to syndicate medical borgs
Co-authored-by: coiax <yellowbounder@gmail.com>
* Make eye(s) of god NODROP only when equipped (#55651)
* 👀 Make eye(s) of god NODROP only when equipped
🆑 coiax
tweak: The "eye of god" only becomes unremovable when put in your eye.
/🆑
- The lavaland chest reward "eye of god", will only become NODROP (ie.
unremovable) when actually placed in someone's glasses slot, rather
than becoming immediately stuck in your hand.
- Eyes of god now hurt when implanted, causing temporary blindness and
screaming.
- A pre-doubled eye of god is now a typepath.
- Eyes of god are no longer made out of glass.
- Glasses colouring procs have been moved to the top of the glasses
file, but unchanged.
* Apply suggestions from code review
- Refactor out explicit `src` with implicit instance access.
- Use ternary string expression for burrow grammar
Co-authored-by: Fikou <piotrbryla@ onet.pl>
* Fix NODROP staying on beheading
Even though the item is NODROP, it can still be removed from someone,
such as when they're beheaded. We don't want it to remain sticky, so
remove the NODROP trait.
Co-authored-by: Fikou <piotrbryla@ onet.pl>
* Make eye(s) of god NODROP only when equipped
Co-authored-by: coiax <yellowbounder@gmail.com>
Co-authored-by: Fikou <piotrbryla@ onet.pl>
* Refactors how movetypes are added and removed, No timers this time. (#55444)
* Refactors how movetypes are added and removed, No timers this time.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Refactors how movetype flags are added and removed and the floating animation (#54963)
I wanted to refactor how movetype flags are added and removed into traits to prevent multiple sources of specific movement types from conflicting one other. I ended up also having to refactor the floating animation loop (the one that bobs up and down) code in the process.
Why It's Good For The Game
A way to avoid conflict from multiple sources of movement types.
This also stops melee attacks, jitteriness and update_transform() from temporarily disabling the floating movetype bitflag altogether until the next life tick.
Tested, but i'm pretty sure improvements could be made.
Changelog
cl
fix: jitteriness, melee attack animations and resting/standing up should no longer momentarily remove the floating movement type.
/cl
* Refactors how movetype flags are added and removed and the floating animation
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Small do-after refactor (#55172)
This is an alternative to the PR Ryll made, it does some things similar e.g. the default limit of 1 interaction per target for a person, however, it refactors do_afters to support overrides for max interaction counts and unique sources.
For example, stripping uses the item being stripped as the source, allowing you to strip multiple items, but not the same item multiple times.
I've also fixed most other edge-cases this could cause where balance would be affected, but feel free to point out any I might've missed, this'll probably require some longer-term testmerging.
* Small do-after refactor
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Detect if ghost reentered the brain (#54975)
* Fix misleading examine messages on the head without body
Co-authored-by: antropod <antropod@gmail.com>
* Fixes tool implant tools being storable in boxes (#54914)
* Moves storing tool implant items to use the drop hotkey rather than a dropped item event
* de-debugging
* Fixes tool implant tools being storable in boxes
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Adds a set of nanite storage protocols as a Bepis research, plus small nanite adjustments (#54710)
Adds a new set of nanite protocol programs as a researchable Bepis tech.
Protocol programs are programs that are mutually exclusive within their time, so remember that only one of the following can be active at once in the same host.
Hive Protocol: Makes nanites use space more efficiently, increasing maximum volume by 250 (500 -> 750)
Zip Protocol: Makes nanites use a compression routine when not in use, increasing maximum volume by 500 (500 -> 1000) but consuming 0.2 nanites per tick to perform the zipping/unzipping
Free-Range Protocol: Makes nanite use looser storage routines, reducing the maximum volume by 250 (500 -> 250) but gaining 0.5 nanite replication rate
S.L.O.P. (Safety Level Override Protocol): Removes nanite storage safety measures, allowing them to reach up to 2000 volume. However, when the volume surpasses the maximum recommended volume (500) the host will start to suffer from side effects, manifesting in slow organ damage. The more the nanite volume approaches the physical limit, the more harmful it becomes.
Replaced the Tinker Nanite Replication Protocol with the Pyramid Protocol, which gives an extra 1.2 regeneration rate, but only while the nanites are at 80% volume or above.
Renamed the Offline Production Protocol to Eclipse Protocol.
Chain detonation now uses dyn_explosion(), at a rate of 1 power per 50 nanite volume. The power level should be similar to how it was for normal nanite volumes, but it should scale more linearly when going above the limit with the new programs.
If nanite volume is suddenly significantly higher than the maximum allowed (likely caused by deleting an active storage protocol) the extra nanites will be forcefully expelled from the host's body, which can range from minor oozing, to vomiting puddles of nanites, to nanites rapidly bursting from eyes, ears, and skin pores.
Despite how it looks, this process causes no lasting damage, since it's a security feature made to prevent acute nanite poisoning.
Added some comments on a few nanite functions.
Refactored vomit code to make it a bit more customizable. The toxic arg (supposedly used to choose an alternate vomit icon, but in fact not functional) is now vomit_type, and purge (which determined vomit would remove 10% of reagents or 67% of reagents) is now purge_ratio, which accepts custom values. Made the refactor mostly to allow a 0% ratio, but it can be handy in other future uses.
Adds extra content to Bepis research, giving a little more reason to invest money into it.
Creates more options to customize a previously rigid parameter in nanites, maximum nanite volume. This opens up strategies that involve storing up large amounts of nanites for special occasions, or viceversa reducing the maximum rate to get more constant replication rate to sustain continued programs.
* Adds a set of nanite storage protocols as a Bepis research, plus small nanite adjustments
Co-authored-by: XDTM <heliumt@yahoo.it>
* Stomach food reagents on vomit (#55002)
Missed check for stomach food reagents in stomach vomit code causing pain.
Now vomit code checks that the reagents it has are not in the food reagents when applying damage.
fixes#55000
* Stomach food reagents on vomit
Co-authored-by: NightRed <nightred@gmail.com>
* Ensure reagent holder on stomachs (#55003)
Forgot that all stomachs are not organic and edible.
This ensures that the stomach has a reagent holder.
Fixes#54995
* Ensure reagent holder on stomachs
Co-authored-by: NightRed <nightred@gmail.com>
* Fixes disabled limbs from compound fractures, only robotic limbs can be disabled by pure damage now (#54922)
* Fixes disabled limbs from compound fractures, only robotic limbs can be disabled by pure damage now
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Reverts metabolism on stomachs, keep them as important to eating (#54632)
* [ready] Reverts metabolism on stomachs, keep them as important to eating
* Merge branch 'master' into upstream-merge-54632
* Update food_reagents.dm
* Update alcohol_reagents.dm
Co-authored-by: NightRed <nightred@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Re-assesses 99% of vending prices through Arconomics to match player resources and round-length. (#54715)
* The Re-pricening
* Rewritten and adjusted for paycheck defines.
* I made the map changes finally.
* And the refills too.
* "OH YEAH REPLACING IT ALL WITH DEFINES AND SCALING IT THE EXCEL DOCUMENT WILL BE EASY, ARCANE!!!"
* And the premium ones too.
* Accidently spoiled a future pr due to dme bleedover
* Re-assesses 99% of vending prices through Arconomics to match player resources and round-length.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Luminescent eyes no longer toggle back on with movement. Colour switching keeps light on. (#54873)
* Luminescent eyes no longer toggle back on with movement. Colour switching keeps light on.
Co-authored-by: prodirus <44090982+prodirus@users.noreply.github.com>
* [READY]Removes Nitryl burn damage and adds Nitryl decomposition reaction (#53821)
This PR removes the burn damage you accumulate when breathing nitryl and adds a reaction to breakdown nitryl into its components(excluding bz) when in contact with oxygen under 600k. This produces small amounts of heat.
Nitryl, as it stands, is barely made or used due to the constant damage you take from breathing it, which causes damage slowdown after less than a minute of use. By making nitryl unsafe or unable to breathe with oxygen present, users must turn to pluoxium while using it in tanks, or hyper-nobilium when filling a room with it. BZ is not refunded if you waste your nitryl.
You now burp while breathing nitryl instead of gasping because it no longer directly harms you.
Breathing nitryl will cause lung damage proportional to the amount you are breathing at a rate proportional to the amount you are breathing when it makes up more than 10% of your breath.
* [READY]Removes Nitryl burn damage and adds Nitryl decomposition reaction
Co-authored-by: Capsandi <38051413+Capsandi@users.noreply.github.com>
* removes hexane (#54437)
removes hexane gas from video game
(the ability to hear dchat got removed like half a day ago) (Lemons note, it's been more then half a day)
it will speed up atmos a bit with less reactions, the reagent from the gas does the same things as halon + bz and the reaction from it is pretty similar to halon, they are both gases that exist to stop fires, i dont think we need both
* removes hexane
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Activate Held Object and Drop hotkeys (Z and Q by default) now activate and store arm implant tools (#53893)
* Self_attack for arms if the hand is empty
* Oops
* Light runtime fix
This is not my runtime, but I will fix it all the same
* return better good
* How about a variable name that actually fits
* asdf
* Activate Held Object and Drop hotkeys (Z and Q by default) now activate and store arm implant tools
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* hexane refractor and rework (#54263)
Hexane no longer grant the ability to hear dchat (yep it was a bad idea) (Lemon's note: I am very dumb)
Hexane now gives the resist heat trait to fight fires better but can give you a lot of hallucinations
* hexane refractor and rework
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* Fix some potential sleeps as detected by SpacemanDMM improvements (#54230)
overrides weren't detected by should not sleep, i think i've mostly
fixed that with SpaceManiac/SpacemanDMM#214
Some of these are wacky but overall this pr is harmless
signals shouldnt sleep even in weird 1 in a million situations or due
to other people adding bad code
overrides of changeling can_sting() use alert() and input() and that's
just too fucked for me to fix in this pr
* Fixes some potential sleeps as detected by SpacemanDMM improvements
Co-authored-by: spookydonut <github@spooksoftware.com>