Commit Graph

15264 Commits

Author SHA1 Message Date
IndieanaJones
9f5bd0db4e Adds New Changeling Ability: Hive Head (#81502)
## About The Pull Request

This PR adds a new changeling ability to the game, entitled 'Hive Head'.
A basic description is shown below, as seen in-game.


![image](https://github.com/tgstation/tgstation/assets/47086570/4eed4f2e-3193-4522-b5ac-95b48e871346)

Hive Head is a two-point ability for Changeling which encases your head
in a bee hive. The bee hive is rather unremarkable as a defensive
utility, boasting extremely poor resistances to all damage types except
for BIO and providing flash resistance (your eyes are being covered).
Along with this, since Hive Head covers your head, you cannot use it
conjunction with chitinous armor, since it requires your head slot be
open. While this all sounds rather bad, the major reason to use this
ability is upon activation, you gain another ability which costs no
chemicals and operates on a cooldown: Release Bees.

Release Bees summons 6 bees on your location which will attack anything
that isn't you or directly allied to you for 20 seconds, which
afterwards the bees will vanish. By default, these bees are standard and
do not inject any sort of chemicals into your victims, so while they can
provide a good distraction and do some damage, they aren't really that
useful. The true value of this ability comes with the fact that the Hive
Head is also a reagent container, which stores up to 50 units of
whatever you want to put inside. While you can't get what you put into
the Hive Head out in any way, summoned bees will pull from the reagents
inside your Hive Head to inject into targets, increasing the amount of
!!FUN!! you can have with them drastically. For example, if you go into
the bar and dump a bunch of different drinks into the Hive Head, your
summoned bees will have equal chance to select any of those drinks to be
what they inject into people. Reagents inside the Hive Head will stay
there until it is dispelled, which upon re-using the ability, the Hive
Head will be empty.

Hive Head also has the additional utility that Release Bees works at any
time so long as you're still wearing it. However, only 1 bee will be
summoned whilst you are in hard crit or dead. Release Bees has a
cooldown of 30 seconds.

Additionally, if mixing chemical cocktails to have a swarm of bees
forcefully inject into people isn't to your liking, Hive Head provides
an alternate mode of use if a legion core is used on it. Using a legion
core on the Hive Head will cause it to mutate, changing its appearance
and functionality. The Legion Hive Head, as opposed to releasing 6 bees,
releases 4 legion skulls to fight for you instead. These legion skulls
do more damage than bees, but can be dispelled by any attack and only
last for 10 seconds as opposed to 20, but this also comes with the added
benefit of a shorter cooldown time of 15 seconds as opposed to 30. The
major benefit of this version of the ability is that if the skulls down
a humanoid target, the skulls will turn that person into an allied
legion, who will use their abilities to support you with healing and
additional skull summoning should they run into a target. Just as
disabling Hive Head normally removes chemicals, Hive Head will return to
normal upon deactivating and reactivating the ability, requiring another
legion core be used to access this version again.


![image](https://github.com/tgstation/tgstation/assets/47086570/d30b238c-caaa-4b45-9371-a2a1f0686378)

Additionally, this PR adds the sound of a swarm of bees for when the
ability gets activated, new sprites to facilitate implementing this
ability, and some changes to how the armor subset of changeling
abilities work internally in order to add ones that only apply a helmet
or armor as opposed to both. This PR also fixes a bug with bees having
an incorrect sprite offset (they look like they're one tile over to the
left currently).

As always, the numbers and mechanics can be changed if need be, and I'm
open to hearing others' thoughts about this.

## Why It's Good For The Game

Changeling hasn't received a new ability in a very long time, only
reworks to their existing kit, so there haven't been any new toys to
shake up the experience with. Hive Head is something new that fits
Changeling's preference for one-on-one combat (the bees pretty much
always aggro on the same target) while also playing into that weird
alien shapeshifter vibe. Along with this, being able to change what
chemicals the bees inject into people opens the door to creative ways of
using it alongside the rest of the sandbox, so it'll be interesting to
see what players come up with. The additional legion mode is just a
cherry on top, allowing people to play around with the cool legion skull
mechanics in an antagonistic setting.

## Changelog

🆑
add: New Changeling Ability: Hive Head
fix: Fixed bees having an improper sprite offset
/🆑
2024-02-27 02:20:10 +01:00
John Willard
126531d142 Smart monkeys now punch instead of bite (#81607)
## About The Pull Request

Split this off from https://github.com/tgstation/tgstation/pull/81598 in
hopes to keep it as atomic as I can.

Brought to you by the same guy that made monkeys able to do human things
if they were clever in https://github.com/tgstation/tgstation/pull/70331
you now also punch people if you are an intelligent monkey instead of
biting them, because you're now too civilized for such savagery.

I also replaced a PASSTABLE with PASSMOB because while it doesn't have
any in-game effects currently, it made no sense to check if a mob can
pass through a table to know if they should be knocking a mob over.

## Why It's Good For The Game

You're an intelligent being now, and you should be acting as such,
punching instead of biting sounded like an obvious addition to me but it
seems like it got left out and I didn't notice that until now.

## Changelog

🆑
qol: Intelligent monkeys now punch people instead of biting them.
/🆑
2024-02-27 02:13:14 +01:00
Pinta
275a4785ac TRAIT_DEAF now works on non-carbon mobs (#81624)
## About The Pull Request
This PR makes it so that the `can_hear` proc will return `FALSE` if the
proc is called on a non-carbon that has the deaf trait.
## Why It's Good For The Game
This makes it so that non-carbon mobs can have the TRAIT_DEAF added to
them and it will now work. There isn't anything that would currently
utilize this on here. But, I do have a project downstream where
TRAIT_DEAF is added to a non-carbon mob.
## Changelog
🆑
code: TRAIT_DEAF now works on non-carbon mobs
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-02-27 02:06:38 +01:00
Iamgoofball
98c9ff0bb0 Adds a 1 second delay to moving up and down with the verb/keybinds to disable z-level combat cheese (#81666)
## About The Pull Request

Adds a 1 second delay to moving up and down with the verb/keybinds to
disable z-level combat cheese

## Why It's Good For The Game

Fighting someone using keybinds to move between z-levels over and over
again is damn near impossible. Try it sometimes, it's as bullshit as if
we had bombs that were cross-Z-level.

## Changelog
🆑
balance: Adds a 1 second delay to moving up and down with the
verb/keybinds to disable z-level combat cheese
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-26 20:02:10 +00:00
Lucy
6a0f29f05c Constructs now reuse the victim's mind instead of just moving their client (#81665)
## About The Pull Request

This makes it so when someone becomes a construct, their _mind_ is
transferred, rather than just their ckey.

## Why It's Good For The Game

It's the same soul after all. Plus, this prevents clogging up the
roundend report.

## Testing Evidence

![2024-02-24 (1708802154) ~
dreamseeker](https://github.com/tgstation/tgstation/assets/65794972/5a33c1eb-55d4-4386-99ea-0c16f5efec3c)
![2024-02-24 (1708802162) ~
dreamseeker](https://github.com/tgstation/tgstation/assets/65794972/10429beb-4d54-4fb2-884b-42569802e0ee)
![2024-02-24 (1708802171) ~
dreamseeker](https://github.com/tgstation/tgstation/assets/65794972/967d99ac-d460-46a9-b7c9-f0c7c6c187d3)


## Changelog
🆑
qol: Constructs now reuse the victim's mind instead of just moving their
client
/🆑
2024-02-26 20:01:31 +01:00
IndieanaJones
1ed08fd957 Gorilla Buffs: King of the Jungle Edition (Funky New Mode!) (#81540)
## About The Pull Request

This PR buffs gorillas by making them more formidable threats while also
adjusting some of the related traitor items as well. The changes are as
listed:

- Gorillas now have the same understanding of language as monkeys. They
speak and understand monkey, and cannot speak but understand galactic
common.
- Gorillas are now slightly faster than humanoids when not holding
anything. While Usain Bolt may be slightly faster than a gorilla, you
are not.
- Gorilla damage increased from 18-20 to 25-30.
- Object damage doubled, going from 20 to 40.

These changes altogether make gorillas much more scary to come across,
as they'll be able to outpace you and get to the part where they maim
you much quicker. Crewmembers beware!

Furthermore, I've done some additional changes to the gorilla-related
traitor items as well:

- Gorilla cube box is replaced in the uplink by a singular gorilla cube.
Due to the changes above, this singular gorilla should be far more
useful than the 3 gorillas this item gave prior. The gorilla cube box
has been left in for any sort of mapping or admin shenanigans.

- Magillitis Serum Autoinjector has been buffed for self-use as a
consequence of the above changes, while nerfing its use against other
players to make them easier to kill. Additionally, Magillitis Serum
Autoinjector now also grants the resulting gorilla a self-regeneration
buff which kicks in after 12 seconds of not taking damage. I threw in
this additional buff as making yourself into a sentient gorilla pretty
much shows everyone you're valid salad, prevents you from using a lot of
traitor items and its cost of 15 is quite high.

## Why It's Good For The Game

Gorillas are fun, but in previous history we couldn't let them be too
powerful since it was relatively easy to mass-produce them via Genetics.
Since gorillas are pretty much traitor and admin-event exclusive now, we
can do more right by them by allowing them to be more like real-life
gorillas: faster than most humans, very powerful, and very scary if you
run into one who doesn't like you.

## Changelog
🆑
balance: Gorillas are faster, stronger, but not bigger too. Note while
holding an item, they are the same speed as they were prior.
balance: Gorillas now have the understanding of languages as monkeys do.
balance: The Gorilla Cube Box for traitors has been replaced with a
singular gorilla cube. Due to the aforementioned changes, this singular
gorilla should be as scary if not scarier than 3 gorillas were prior.
balance: Magillitis Serum Autoinjector now grants the resulting gorilla
a slow passive regeneration effect which kicks in after not taking
damage for 12 seconds.
/🆑
2024-02-26 18:43:45 +01:00
John Willard
aace5f46f4 You can do more things while floored (#81641)
## About The Pull Request

While on the floor, you can:
- Use the UIs of Atmos machinery (except thermomachine and bluespace gas
vendor), Holopads, Crayons (spray cans too), radios, and Disposal bins
- Close extinguisher cabinets with Right-Click
- Click and drag yourself onto a photocopier to climb onto it.

I also changed all instances of ``ui_status`` to have all the args it's
being passed, I was messing with it a bit but it's gonna be for a later
PR.

## Why It's Good For The Game

It's an extra layer of harmless realism, also nice QoL for people who do
not have functional legs and do not have a wheelchair.

## Changelog

🆑
qol: You can use atmos machines, holopads, crayons, spray cans, and
disposal bins while floored.
fix: You can close extinguisher cabinets while floored.
fix: You can climb onto a photocopier from the floor.
/🆑
2024-02-26 18:34:20 +01:00
necromanceranne
a074f8e7ce Riot armor and helmets (and similar gear) protect against more melee-based attacks (like RNG punches), bottles aren't near guaranteed knockdowns (#81365)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

### Riot Armor and Helmets (including SWAT armor and plate armor;
partially includes Syndicate modsuits and other suits with a module)

TRAIT_SHOVE_KNOCKDOWN_BLOCKED is now called
TRAIT_BRAWLING_KNOCKDOWN_BLOCKED. This is possessed by riot suits, SWAT
suits and now **plate armor**. Not the chaplain variety, because fuck
them I guess. (this was apparently deliberate so don't complain to me,
okay?)

Anyone with this trait is now unable to be knocked down by;

- Pure RNG on blunt objects attacks to the chest (Probability is
otherwise altered by melee armor already)
- Unarmed punches, both RNG and deterministic
- Bodies thrown at them. Instead, dealing stamina damage and causing
them to become staggered.

A new trait called TRAIT_HEAD_INJURY_BLOCKED, which protects from
various head injury related effects. This is possessed by riot helmets,
SWAT helmets, plate helmets, hardhats and applied to MODsuits with armor
boosters activated/the infiltrator suit while active.

The trait is also granted to anyone wearing a modsuit with the Head
Protection module installed. This can be printed from round start, and
comes pre-installed into all the engineering modsuits, security moduits,
research modsuit and magnate modsuit. (I had to bump up the security
modsuit complexity a bit to put it in iunno if we have a policy about
that)

Anyone with this trait is protected against:

- Bottle smashes to the head.
- RNG Blunt force trauma to the head by blunt objects (Probability is
otherwise altered by melee armor already)
- Partially protects against getting your spine snapped during a bad
tackle (this used to be a check ONLY for the riot helmet or hardhat)

### Bottle Smash

The bottle smash's chance of a knockdown is based on the force and
knockdown duration of the bottle, altered by relevant head melee armor.
It's no longer basically guaranteed due to weird math that would
determine whether or not you were knocked down only if your armor
exceeded certain values or not.

### Misc Changes

Any instance that would check either for riot armor or riot helmets
instead checks for the new traits.

## Why It's Good For The Game

People weren't particularly happy with the possibility of getting
ownzoned by a naked assistant or random toolbox-wielding tider while in
dedicated melee protection armor as a result of pure RNG jank. [There
was a whole thread here about
it](https://tgstation13.org/phpBB/viewtopic.php?f=83&t=35645) with
regards to unarmed combat.

If you're in riot gear, you should feel like you can confidently combat
improvised/blunt weapons at a cost of general protection from the more
serious dangers to your wellbeing (AKA lead poisoning or heatstroke. Get
it....it's bullets and lasers...)

For some reason, bottle smash knockdowns, despite using the values
just...conveniently don't get blocked by armor except for extreme
values? If at all? I felt like this was really weird for something with
such a hefty and fairly powerful knockdown effect, particularly one you
can lob at someones head at range. I remember, way back when I first
started playing, that this was a feature that used to stun, and one I
used a lot to get cheap kills. The amount of bullshit stuns I got on
people with it still haunt me to this day. It hasn't improved in the
current era, despite being a knockdown, simply because any knockdown
still takes several seconds to exit. An arbitrarily low knockdown is
still a several second one. It's time to bring this in line with similar
equipment.

Rather than using flat values that are _clearly_ meant to be only
applicable to riot armor the decade ago that the code was written, let's
use traits instead. That's way better than relying on magic numbers that
may become irrelevant when the code around it changes, which anyone
touching that code may not even be aware existed.

Since we're using a trait, we can actually allow modsuits to
occasionally fill defensive niches that aren't strictly armor values.
Handy.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
balance: Nanotrasen, in direct response to the increasing danger posed
by wannabe martial artists and rioters in the fringes of the Spinward
Sector, have upgraded the impact dampeners found in their riot armor.
Staff have also started to rediscover the value of medieval armor; it
isn't particularly easy to topple a knight in a suit of plate with just
your fists.
balance: Melee-focused armor is now more able to protect you from
various RNG-based knockdowns, such as critical hits from punches (as
well as the ones applied through the staggered status), shoves, critical
hits with a blunt weapon to the chest, and body throws.
balance: Melee-focused helmets also protect you from head injuries, such
as bottle smashes, accidentally hitting something dense during a tackle,
and critical hits from a blunt weapon to the head.
balance: Bottlesmash knockdowns are less reliable in general.
add: A new module, the Safety-First Head Protection module, protects you
from head trauma! Available in most modsuits expected to take hits to
the head often. And from roundstart exofabricators.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2024-02-25 22:55:45 +01:00
13spacemen
f9b7588bc4 bodytypes to do with body shape and sprite handling have their own var (#81590)
## About The Pull Request
Bodytypes like BODYTYPE_HUMANOID, BODYTYPE_MONKEY, etc that have to do
with the shape of a human body and sprite handling, now have their own
"bodyshape" var instead of being in bodytype along with stuff like
BODYTYPE_ORGANIC, BODYTYPE_ROBOTIC; which have nothing to do with shapes
and sprites
## Why It's Good For The Game
the way these are used in the code is totally different to
BODYTYPE_ROBOTIC, which determine whether you can heal a limb with
medicine etc.
## Changelog
🆑
refactor: Bodytypes to do with character sprite shape now have their own
bodyshape var, all sprite handling is done with bodyshape and not
bodytype anymore
/🆑
2024-02-25 17:34:53 +01:00
MrMelbert
2063703002 Fix some attack effects not playing / Fix apply_damage returning innacurate values (#81635)
## About The Pull Request
Seems to have been a merge skew between #78657 and #79207 .

When my PR was written they returned the damage being done, when their
PR was written they returned the change in health?

So apply damage was returning `-10` when it should've been returning
`10` for some cases.

## Changelog

🆑 Melbert
fix: Cyborgs spark and spit out oil when smacked again. Among other
things.
/🆑
2024-02-23 23:28:44 +00:00
John Willard
689f75cf7b Fixes larva examine text (#81630) 2024-02-23 09:44:01 -07:00
Dani Glore
0d83a2c67a Removes TRAIT_NOBREATH restriction from CPR, except from self-resp virus (#81522) 2024-02-22 18:16:55 -07:00
SgtHunk
1e4c827760 Fixes Summon Simian spell killing you as a monkey (#81619)
## About The Pull Request

The old logic worked like this: It checked for monkey faction (good),
however, monkey faction is given to roundstart monkey human subtypes
(bad) instead of using the inherent_factions variable on the species.

## Why It's Good For The Game

A spell advertised as not backfiring if you're a monkey should probably
not backfire if you're a monkey

## Changelog

🆑
fix: The Summon Simians spell will now properly check for monkey
faction, allowing people who are monkeys to not be mauled.
/🆑
2024-02-23 00:01:54 +01:00
13spacemen
ed6fced9b0 Footprint Sprites are BASED (on shoes and legs) (#81588)
Footprint sprites no longer have to be the same "shoe" sprite, they are
now based on what shoes you're wearing and what legs you have
They are also renamed, i.e., if they're paws, they're called pawprints
and not footprints
Shoes have priority over legs
I have changed monkey legs to have paw footprints

Code is from https://github.com/DaedalusDock/daedalusdock/pull/813,
except I renamed some defines and vars and tweaked it a bit

A future use for this is, adding human FOOT (not shoe) print sprites, so
people without shoes would make actual FEET print sprites
I didn't do this cuz I can't sprite, but it's possible now
Also didn't do this cuz I'd like to replace the existing footprints with
the more grimy Baystation footprints, they look much better, but that's
for a separate PR

Any lizard superfans could also sprite something for lizards, the
possibilities are endless
2024-02-22 18:04:08 +00:00
John Willard
3f44c2d816 Removes holographic monkey species (#81606)
## About The Pull Request

Split this off from https://github.com/tgstation/tgstation/pull/81598 in
hopes to keep it as atomic as I can.

Genericizes the things that holographic monkey species existed to
replace, so now we don't have to worry about having to copy paste this
to any future mob later down the line.

## Why It's Good For The Game

Removes a monkey species subtype, and a pretty bad one at that.
Preferably makes hologram mobs more consistent with eachother and
prevents copy paste happening everywhere in the future if any new mobs
ever gets added to the holodeck.

## Changelog

🆑
refactor: Holographic mobs now gives better feedback to players and
should more consistently not give any drops.
/🆑
2024-02-22 05:36:48 +00:00
Ghom
0e6808af9d sec-hailers no longer apply filters on TTS when pushed out of the way. (#81569)
## About The Pull Request
Previously, pushing the mask out of the way did not prevent TTS from
being filtered.

## Why It's Good For The Game
If the mask isn't in the way, it shouldn't do that. Simple as that.
2024-02-21 02:01:18 -06:00
MrMelbert
01c20ddc03 Fix dead mobs changing their mob tag causing obsever weakrefs to not function (#81585)
## About The Pull Request

Fixes #81578 
Fixes #81559
Fixes #81308

In #69634 mob tag generation was moved to `/mob/New`

But dead mobs also do this in initialize


![image](https://github.com/tgstation/tgstation/assets/51863163/ac5cc2fa-2360-4a5d-b992-0fe43e4f6122)

So dead mobs skipped over a tag

This is whatever, until it's not: 

If something makes a weakref of an observer in `/observer/Initialize`
before its parent call, which shuffles the mob tag around, uh oh now our
weakref points to a non-existent ref!

So what's making the weakref? No clue but apparently chasms

## Changelog

🆑 Melbert
fix: Chasms no longer break your verbs
/🆑
2024-02-20 20:22:47 -07:00
_0Steven
062294f27e Fix organs being replaced when not needed (#81575)
## About The Pull Request

So it seems `regenerate_organs` on species was actually replacing organs
not belonging to the species regardless, which was making it so the
`HEAL_ORGANS` flag which is supposed to heal your organs and supposedly
replace missing ones too.
However, this made it so anything using that would also remove and
replace all organs not native to your species, including prosthetic
organs, cybernetic organs, organs alien to your species, and the
nightmare heart itself when you're not a nightmare and it tries to
revive and convert you.

This just makes it mimic its behaviour when used to convert from one
species to another, which is to not replace organs alien to your
previous species, and making it also not replace those when
`replace_current = FALSE`.
## Why It's Good For The Game

Fixes #81546.
Fixes ethereal reviving eating your prosthetics.
## Changelog
🆑
fix: Ethereal heart revive doesn't delete organs alien to your species,
like prosthetics, cybernetics, and possibly itself.
fix: Nightmare heart revive doesn't delete organs alien to your species,
like itself, upon which it would stop the conversion to shadowperson.
/🆑
2024-02-20 23:22:08 +01:00
Ghom
a4cedb2dbe Adds an 'auto-reel' line reel to the fishing tech node. Minor gameplay changes to fishing. (#81407)
## About The Pull Request
This PR adds a new line reel, which speeds up the baiting phase of the
fishing minigame and skips the biting phase, thus starting the minigame
without the initial input from the player.
The auto-reel line will also throw items (or other people/things, if you
have the right hook) in your direction when snagged, with the added
bonus of catching the item mid-air. Turn your fishing rod into a
discount meat hook.

I've lowered the deceleration coefficient and bounce threshold of the
minigame by 1/4. My rationale is that these two numbers are a must lest
we end up with an uncontrollable mess of a minigame, though they also
feel like a sack of flour hitting gravel rn, making specific hooks like
the bi-directional one and the weighted other a bit useless.

Another change is to the baiting and biting phase. Previously, if you
clicked anywhere during the baiting phase, it'd reset the whole timer
back to any value between 1 and 30 seconds, spelling futility to the
time you've just spent waiting. Now, it'll simply add another 4 seconds
or so to the current timer, capping at 30s.

One last thing*. Once the biting phase start, the faster your input is,
the higher the starting completion of the minigame will be, and the
other way around, if you're very slow. The difficulty variable can also
lower the starting completion.

*I lied. I've also added a short cooldown to casting a fishing rod so
you can't just spam it.


## Why It's Good For The Game
Finetuning the minigame, quality of life and balance, making fishing
even more gimmicky.

## Changelog

🆑 Ghommie
add: Added a new fishing line reel that speeds up the first half of the
fishing minigame, and also let's you catch things from afar like a
discount meat hook.
balance: During the biting phase preceeding the actual minigame,
initiating it as soon as the "!!!" alert pops up will net you an
advantage. Conversely...
qol: Clicking during the baiting phase will no longer wholly reset it
and make you lose your patience. Instead, it'll delay the next phase by
about 4 seconds.
balance: The deceleration and bounce should feel less sudden and stiff,
meaning the controls are 25% more slippery again.
balance: Added a cooldown to spam-casting fishing rods.
imageadd: Resprited line reels a little.
/🆑
2024-02-19 15:51:32 +01:00
Ghom
32b2989d06 Circuit multitools can now mark (visible) items worn/held by a mob (#81215)
## About The Pull Request
Title. This includes a small change to the get_visible_items proc, only
used by phobias until now, to include worn accessories. Not really worth
of a changelog entry itself.

## Why It's Good For The Game
This makes the process of scanning oft worn equipment a bit easier,
perhaps weavering the need of consent for some pranks and shenanigans.


![immagine](https://github.com/tgstation/tgstation/assets/42542238/a0d62488-2ee1-4051-9737-62c9247a6137)

I've added a bit of contrast to the icon for the "mob" option since
then.

## Changelog

🆑
qol: Circuit multitools can now mark (visible) items worn/held by a mob.
/🆑
2024-02-18 13:08:54 -05:00
Ghom
7e8328c0d2 Cardboard cutouts are now tactical. (#81245)
## About The Pull Request
Basically, this means players holding cardboard cutouts will now assume
their appearance, just like for potted plants. Good for pranking.

I've had to tweak the tactical component and the waddling element a bit
to get them to work as intended while dealing with the multiple sources
of the waddling element.

## Why It's Good For The Game
![](https://media1.tenor.com/m/X1GimXmuByYAAAAd/tom-cruise-doorbell.gif)

## Changelog

🆑
add: Players holding cardboard cutouts will now assume their appearance,
just like for potted plants.
/🆑
2024-02-17 17:17:18 +00:00
LemonInTheDark
27d61bdf22 Fixes blocking movement being weird (#81505)
## About The Pull Request

I was failing to clear the input removal if we had no movement So you'd
step, stop moving, and retain it

Then whenever we rotate, we continue to hold onto that removal forever.
Weird.

Handles... part of? #81501

## Changelog
🆑
fix:Blocking movement works properly again
/🆑
2024-02-16 23:13:47 -07:00
jimmyl
683e2ecfbf bindable action buttons (#81371)
## About The Pull Request
### work started 12/12/2023


you may alt-click action buttons to bind them to a key
these are subject to click cooldown and if an action successfully
triggers click cooldown is triggered so you cant instantly do multiple
alt-click again to unbind
## Why It's Good For The Game

moving your mouse to the top left corner to do combat is not good
gameplay

## Changelog
🆑
qol: you may altclick action buttons to bind them to a key
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-02-16 23:10:15 +01:00
IndieanaJones
e6bd3f065c Blob Zombies Appear Correctly (#81485)
## About The Pull Request

Fixes #81414

This PR makes it so blob zombies no longer appear without their blob
heads. This bug made it extremely confusing to tell who was who for both
sides on a blob-coated battlefield.

## Why It's Good For The Game

This bug sucks and we shouldn't stand for its existence.

## Changelog
🆑
fix: Blob Zombies now render their blob heads correctly again.
/🆑
2024-02-16 18:31:00 +01:00
_0Steven
db5199e535 Fixes space cats not being able to survive in space. (#81482) 2024-02-16 01:45:28 -07:00
K4rlox
fa3dc02e65 Maintenance drones can use RCDs, RPEDs, Spray Bottles, and Holosign Projectors (#81219)
## About The Pull Request

makes maintenance drones able to pick up RCD and RPEDs in order to use
for upgrading and repairing the station as per their laws state

you used to be unable to pick these up due to "using this item may break
your laws"
which made no sense since they could be used to repair and upgrade
station gear

this fixes that
## Why It's Good For The Game

drones can now easily repair and maintain station equipment like they
are programmed to do so

additionally with the use of RCD they no longer need to carry around
metal sheets and glass sheets all the time, making their job way easier
## Changelog
🆑
balance: Maintenance drones now can use RPED, RCD, Holosign, and Spray
bottles
/🆑
2024-02-14 20:55:29 +01:00
LemonInTheDark
5c927e406b Makes AI tracking more snappy, improves API (AI movement change) (#81401)
## About The Pull Request

Ok so tracking (from the datum) worked, but when used to follow someone
it had a noticable delay from the datum needing to wait for process to
fire to do its work

This would be an expensive proc to run constantly, but we don't really
have to (there are not that many ai eyes in the world). So rather then
only processing to keep step, let's track the target mob by its
movement, and then fall back on a process loop to handle rechecking in
case of camera memes.

This does technically mean you won't "break" the track if the cameras go
out until the tracked mob moves, but I think that's a reasonable price
to pay for more responsive movement. I think I could make our current
system work with it too, though it would be a bit more wasteful. John if
you have opinions just lay into me.

I've also renamed/pulled apart the helper procs for the trackable datum,
with the hope of making how they are used more understandable at a
glance

Oh and rather then holding a weakref since I needed MOVED anyway I just
use QDELETING to free the ref if the mob goes away

### Edit:

#### Glide size touchups
Implements glide size mirroring so we move at the same speed as our
target

Also moves the existing signal to send to the trackable datum itself, as
appears intended from the doc comment

#### AI behavior changes

Rewrites ai movement to be less dumb

OK so 2 things here. One is a behavior change, the other is a visual QOL
thing.

The way ai movement works is we move graduated "steps". Either moving 1,
2, or 3 steps per tick.
We do this by, so long as input is held down, incrementing a number
called "sprint"
Currently it'll go from 10 to 50 (formula effectively looks like steps =
(sprint / 20) + 1))

Anyway, this is... not fine but ok, but the way we handle deceleration
is ass IMO. It's literally just wait 0.5 seconds and sprint resets.
I think this feels crummy, so instead I've made it decay depending on
how long you go between inputs, at 7x greater rate then it increases.

That's the behavior change. Visual change is a lot easier.
Ais were not gliding properly. They assumed they had 4 ticks to move a
tile, rather then 1. This meant they'd jump around constantly, to catch
up to where we expect them to be.
I've fixed this by giving them 1 tick instead. Should feel a lot better

## Why It's Good For The Game

Snappier response times, cleaner code

## Changelog
🆑
add: AI's acceleration now smoothly decays, instead of just falling back
down to 0 after 0.5 seconds
fix: AI's standard movement (non accelerated) is smooth now, instead of
constantly jumping around
fix: AIs will now follow their targets more closely, shouldn't have any
issues with them lagging behind anymore
/🆑
2024-02-14 13:41:22 +01:00
Lucy
081b84c631 Painkillers now actually induce analgesic effects (#81335)
## About The Pull Request

This adds a new trait, `TRAIT_ANALGESIA`, and makes various painkillers
(+ tenacity trauma) apply said trait.

This prevents various pain-related effects, such as screaming due to
pain, and also provides a speed bonus during surgery.

## Why It's Good For The Game

Gives more of an incentive to actually use reagents such as morphine or
miner's salve.

## Changelog
🆑
add: Painkillers (i.e morphine, miner's salve) now actually induce
analgesic effects, preventing various pain-related effects, such as
screaming due to pain, and also provides a speed bonus during surgery.
add: The tenacity trauma (traumatic neuropathy) also applies analgesic
effects.
refactor: Simplified code related to reagents adding traits.
/🆑
2024-02-14 01:01:06 +01:00
Bloop
75dacba586 Adds unit test for tail wag emote, fixes tail wag emote (#81437)
## About The Pull Request

<details> <summary>Funnier for who, Lemon?!</summary>


![image](https://github.com/tgstation/tgstation/assets/13398309/4cd755fa-ed92-4b99-802c-f22591f8238c)

</details>

https://github.com/tgstation/tgstation/pull/81400 broke the tail wag
emote. This will make it work again.

I did test it.  _cough_.


<details> <summary>Before</summary>


![image](https://github.com/tgstation/tgstation/assets/13398309/57589b8c-49b4-4d3f-81cf-e43432ac1a8c)

</details>

<details> <summary>After</summary>


![image](https://github.com/tgstation/tgstation/assets/13398309/3770d21f-4553-49c0-a60f-11c71be37430)

</details>

My fault for not writing a better unit test I guess.

## Why It's Good For The Game

Fixes a bug.

## Changelog

🆑
fix: *wag emote is now functional again
/🆑
2024-02-12 23:32:02 -07:00
siliconOpossum
6692314c1f Fixes various bloodied hand overlay related issues (#81430)
## About The Pull Request

Fixes #76900
I made it so bloodied hands use two separate overlays instead of jankily
swapping which icon is applied to the one overlay, because it was
literally never clearing the individual hand overlays, which is what
caused the linked issue

I also fixed your hands appearing bloodied when holding bloodied gloves,
this was caused by a _one character incorrect negation_
I remember this bug having been around for a long while I have no idea
how no one else has fixed this by now

Oh and also I think the overlays have never correctly updated when
removing or attaching limbs? Baffling, honestly.
## Why It's Good For The Game
Bugs are bad and these ones in particular were making me mad.
## Changelog
🆑
fix: Getting blood on your hand when you only have one no longer makes
your hands visually permanently bloody
fix: Holding bloodied gloves no longer makes your hands look bloody,
bloodied gloves now look bloody when worn, and damaged gloves now look
damaged when worn
fix: Gaining or losing an arm now correctly updates your hand overlays
/🆑
2024-02-12 21:53:11 +01:00
LemonInTheDark
70651816c2 Fixes complex lights not handling moving well, renames lighting defines (#81423)
## About The Pull Request

[Fixes static lights not
moving](ffef43c05a)

Worked fine when the owner moved, but if the owner was inside something
else, it would try and trigger an update on the PARENT's lights, which
are obviously not us.

[Renames MOVABLE_LIGHT and STATIC_LIGHT to better describe what they
do](de73a63bd4)

People keep trying to change the lighting system of lamps and it makes
me mad.
I choose OVERLAY_LIGHT and COMPLEX_LIGHT here, I couldn't figure out a
better name for turf matrix lighting. Suggestions welcome

## Why It's Good For The Game

Closes #80005
Hopefully improves understanding of lighting at a glance
## Changelog
🆑
fix: Fixes fancy lights not updating their source location when picked
up and moved
/🆑
2024-02-12 20:50:20 +01:00
LemonInTheDark
a15979a3ba Yeets CONSIG_ORGAN_WAG_TAIL (#81400)
## About The Pull Request

It was dumb. LITERALLY just a proc.

So let's replace it with a proc then, as a helper at least. I'll take
this chance to disambiguate tail code to make it a bit less messy, and
hand back usable args in case we want to react to our change in tail
status

## Why It's Good For The Game

Code's less shit (slightly)
2024-02-11 14:56:13 +01:00
jimmyl
fbe6e2ebba museum away mission (#81208)
## About The Pull Request

adds a new gateway map, the Nanotrasen Museum it is filled with
""""Mannequins"""" and Common Core lore
im not putting the preview here because you really should explore it
yourself but if youre that curious i think the Checks tab in mapdiffbot
would have it
this gateway map contains no combat unless you count falling into chasms
because you did not carry a light
or going into the boarded room with no loot or any incentive with
obvious signs that there is the sole enemy on the map in there
the loot is the lore ok thanks

also makes mines detonate if theyre detonated by a non-mob im pretty
sure this couldnt have been intentional
trams stop chasms
and also the relevant items

<details>
  <summary>on second thought if you want spoilers check this</summary>


![image](https://github.com/tgstation/tgstation/assets/70376633/41ab2db1-55ce-4371-8594-a1d8961c37c3)

</details>

## Why It's Good For The Game

more gateway maps = good

## Changelog
🆑
add: nanotrasen museum gateway map
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-11 03:17:55 +01:00
lessthanthree
0207210990 MuleBOT UI/ID Fixes (#81380)
## About The Pull Request

- Fixes https://github.com/tgstation/tgstation/issues/81363
- Fixes unable to set MuleBOT home from control panel
- Fixes missing MuleBOT ID from Botkeeper PDA app
- Adds input validation for changing MuleBOT ID from control panel
- Removes hardcoding of MuleBOT IDs and home destinations
- MuleBOT will now automatically set its home to the navigation beacon
on its initialization turf

## Changelog

🆑 LT3
fix: MULEbot will correctly display its loaded cargo on BotKeeper
fix: MULEbot home beacon can be set from control panel
code: MULEbot home location is automatically set on init
/🆑
2024-02-11 01:39:54 +01:00
John Willard
fdcd4d3979 Adds a signal to buying items from the uplink (& fixes TC misinfo) (#81372)
## About The Pull Request

Adds a signal when someone buys an item from the uplink and removes
single-letter vars from the ``spawn_item`` proc, and adds/standardizes
add/removing of telecrystals from uplinks (and admin setting how much TC
they have) to ensure the UI always has the right amount of telecrystals
displayed in it.

## Why It's Good For The Game

There are reasons why someone would want to hook up to a traitor's
uplink and listen to items they purchase to do any special effect
on-purchase, so this adds support to do anything in the future with it.
Also tells players how much TC they actually have without forcing them
to close/reopen the UI every time they insert some TC in it by hand.

## Changelog

🆑
fix: Uplinks now update their UI when you add telecrystals in them, so
you don't need to close and reopen it.
/🆑
2024-02-10 18:57:19 +01:00
MrMelbert
d9243d1016 Refactors fire overlays once again to make it not get stuck so often (#81367)
## About The Pull Request

Maybe finally fixes #77701 

A big reason why this kept happening is because fire uses standing
overlays. But fire isn't managed by mobs anymore. Meaning in some
situations, fire can cease to exist but the overlay can still be on the
mob. So it gets stuck.

So like, why use standing overlays anymore? We can just hook
`update_overlays` signal.
Isn't that neat. 

## Changelog

🆑 Melbert
refactor: Fire effects get added to mobs in a different way now. Maybe
it will get stuck less. Report any oddities.
/🆑
2024-02-09 17:26:00 -07:00
IndieanaJones
f73ed9c34c [NoGBP] Fixes Equipment Slowdown (#81352)
## About The Pull Request

Fixes #81350

#81321 wasn't done as tactfully as it should have, resulting in some
oddities like bolas in your pockets giving you slowdown. This PR cleans
up the code and makes it work as intended.

Thanks to Melbert for literally just giving me the code for this. I did
test it and added proc comments so I can guarantee everything works.

## Why It's Good For The Game

You shouldn't be slowed down from a bola in your pocket, and this logic
is much nicer than what we had before.

## Changelog
🆑
fix: Bolas in your pockets no longer slow you down.
/🆑
2024-02-09 12:18:44 -06:00
A miscellaneous Fern
44ce6d923d Adds an IS_CHANGELING helper (#81228)
## About The Pull Request

What it says on the tin. I also replaced checks with it everywhere I
found appropriate, hopefully without accidentally breaking anything.
## Why It's Good For The Game

We have a helper for most other antags, and it makes code a lot cleaner
and easier to read. I'm surprised we didn't have this one already.
## Changelog
🆑
code: added an IS_CHANGELING() helper and used it where applicable
/🆑
2024-02-09 08:56:57 -05:00
lessthanthree
55ba5842c2 Health analyzer displays blood alcohol content (#81306)
## About The Pull Request

Health analyzer includes a blood alcohol content if the scanned target
is inebriated.

## Why It's Good For The Game

It's useful to know, sometimes their blood is filtered, stomach pumped,
but this effect will still be in action.

## Changelog

🆑 LT3
qol: Health analyzer will now display blood alcohol content
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2024-02-08 22:40:43 -07:00
Swift
9dc8c12cb0 Adds head-only target hotkey (#81222)
## About The Pull Request

Adds a new optional hotkey that targets only the head and does not cycle
to eyes or mouth.

Currently the way the numpad hotkeys work on /tg/ is every key targets
one body part... except 8. Numpad 8 Currently cycles through
head-eyes-mouth, despite _**numpad 7 already handling mouth and numpad 9
already handling eyes**_. There's no head-only key.
2024-02-08 12:01:52 -06:00
IndieanaJones
bb1730503e Fixes Alien Hunter's Pounce Visuals (#81322)
## About The Pull Request

Currently on live, when an alien hunter goes for a pounce, once the
pounce is completed the hunter will rise quite a distance slowly from
the floor as setting body_position_pixel_y_offset now is done with
animation as opposed to being instant. This looked extremely stupid, so
I went and fixed it. Initially, I was going to add some form of trait to
cancel out the smoothing effect from a shifting y offset, until I looked
at the sprite for alien pouncing and realized it was 96x96 for no
reason. For reference, 96x96 is the size of Bubblegum's sprites.

So, I just made the sprites 48x32, got rid of the unused sprites
(sentinel and drone both had pounce sprites but neither ever had that
ability iirc) and adjusted some of the pounce ability's internal offset
stuff to compensate and it looks perfectly fine now. Somehow made the
image file larger by 243 bytes according to Github but I guess it is
what it is.

## Why It's Good For The Game

The alien hunter ascending from 2 tiles below where it actually was
whenever it pounced was incredibly jarring. This fixes the problem.

## Changelog
🆑
fix: Alien Hunter's pounce ability no longer has any weird offset issues
once the pounce is completed.
/🆑
2024-02-07 22:27:42 +01:00
IndieanaJones
bb7666467b Legcuffs on Aliens Work as Intended (#81321)
## About The Pull Request

Currently on live, if you throw a bola at a xenomorph or use a beartrap
on them, the legcuff will successfully attach itself to the xenomorph
but nothing will happen. It will not be present visually nor apply
slowdown to the xenomorph at all, and it also gives the xenomorph no
indication that it is attached to them or option to remove it. This PR
fixes that problem by moving some human-specific code downwards,
allowing xenomorphs to visually have legcuffs applied to them, be slowed
down by them and to take them off by themselves.

Note that as with all cuff-related items, xenomorphs will break the item
immediately upon attempting to resist it at all. Therefore, this PR
doesn't really do anything balance-related, although maybe you can buy
yourself a half-second while the xenomorph you just bola'd realizes they
need to take it off before chasing you down again.

Another thing to note is that queens and praetorians don't look right
with these overlays applied (they float to the left of their sprite),
but that's a bigger issue with a lot of the overlays in general (fire
being a big one), to be fixed in another PR.

## Why It's Good For The Game

This has bothered me for a while now, so its about time I do something
about it. Even if using bolas or beartraps on xenomorphs is practically
useless, if we're gonna let players do it then we're going to let them
do it right.

## Changelog
🆑
fix: Xenomorphs now have legcuffs applied to them properly.
/🆑
2024-02-07 22:16:06 +01:00
Higgin
1f195c5a05 [FIX] Prevents Buckling Megas, Blobs, Constructs, Slimes, and Dragons (#81287)
## About The Pull Request

fixes #80946 

not sure why it borrowed the wrong commit msg

## Why It's Good For The Game

on the one hand it's funny but on the other hand it's dumb to be able to
buckle massive mobs to tiny-sprite objects they might not be able to get
out of without just destroying their own chair - assuming they can,
which in the case of some things you can buckle to, you can't (looking
at roller beds.)

## Changelog

🆑
fix: removed ability to buckle megafauna, constructs, blob minions,
dragons, and slimes.
/🆑
2024-02-07 05:40:22 +01:00
LemonInTheDark
08734e4610 Better Ghost Hair (#81262)
## About The Pull Request

What we were doing before was basically just take the difference of each
component against 255, multiply it with 0.4, and then add that in.

This was bad, and looked bad. Fucked up hue something fierce, just not
good.

I noticed this in my rgb2num work, but it didn't occur to me to deal
with it.

Now seems like a good time tho.

We'll use hsv to deal w this. First, reduce the saturation by 15% and
bump luminosity by 15%.
Then we'll just clamp them to sensible max/minimums to prevent blowing
them out totally, and we good.

## Why It's Good For The Game

Should make ghost hair look a bit nicer, I'm happy with it


![image](https://github.com/tgstation/tgstation/assets/58055496/11370960-bce4-41bd-8e1c-3cc4d0760625)

![image](https://github.com/tgstation/tgstation/assets/58055496/7261f4d9-9578-4fb1-b67b-0c20367e08ab)

![image](https://github.com/tgstation/tgstation/assets/58055496/828eda46-4578-4102-a0d9-6aa01b2295cb)

![image](https://github.com/tgstation/tgstation/assets/58055496/d5ef493b-a1c9-4799-94c6-fc811da6b1ba)

![image](https://github.com/tgstation/tgstation/assets/58055496/4cc8a938-e0bc-4330-b8dc-3986bc849605)

![image](https://github.com/tgstation/tgstation/assets/58055496/1cbb9954-ecca-467e-98b7-ebfb22e52637)


Closes #81261

## Changelog

🆑
add: Ghost hair looks better now. Insert nerd shit about RGB vs HSL
color space here, go watch a youtube video or whatever.
/🆑
2024-02-07 05:12:05 +01:00
MrMelbert
12afcb911e Comprehensive cleanup of storage datum, replaces the weakrefs with just refs (because they were managed already) (#81120)
## About The Pull Request

- Large amount of storage datum cleanup.
   - Documentation.
   - Maybe more consistent use of parent vs real_location. 
   - Removes the weakrefs, replaces it with just references.
      - These were already managed references anyways so why bother?
- Removes a bunch of arguments no one used and would ever used so only
the most useful args are left.
 
- Some bugfixes. 

## Why It's Good For The Game

Aiming to make storage easier to work with. The whole intent of this was
to bugfix the whole "weight class" thing that keeps popping up but I had
to do this first.

## Changelog

🆑 Melbert
fix: When placing an item into storage (such as backpacks), all nearby
mobs now get a message, rather than just the first mob.
fix: TGC decks of cards should act a bit less odd when looking inside.  
refactor: Refactored a bit of storage, cleaned up a fair bit of its
code. Let me know if you notice anything funky about storage (like
backpacks).
/🆑
2024-02-05 11:42:03 -08:00
Bloop
6a64a1a645 Fixes a spurious runtime in AI code (#81253)
## About The Pull Request

Tin.


![300618628-255ded6c-09c8-4c5b-8557-2f8f2dfcc821](https://github.com/tgstation/tgstation/assets/13398309/4c30ab2d-cd15-411d-92fc-470effef8af3)

No more of this. It's been annoying downstream for the past few days, so
here's the fix. `find_this_thing()` should not be getting called when
`controller.pawn` is qdeleted so I just moved that check up a couple
lines.

## Why It's Good For The Game

Makes CI functional again. Tested downstream with 5 CI runs, the runtime
did not occur in any of them where it was happening just about every run
previously.

## Changelog

🆑
fix: fixes a runtime in AI search_tactic
/🆑
2024-02-05 12:15:49 -05:00
MrMelbert
e21dc5fec7 Kicks Martial Arts out of the attack chain (yippee), makes it use signals, plus a large clean up of existing martial arts (#81097)
## About The Pull Request

- Kicks Martial Arts out of the attack chain. 
- All Martial Arts attacks are now handled via unarmed attack or grab
signals
- This means all martial arts are now technically on the living level,
allowing any mob that can unarmed attack to martial arts. Sort of. YMMV.

- All martial arts block checking is now handled by the arts themselves,
meaning you can selectively decide for a martial arts strike to not be
blocked. Maybe good for the future.

- A comprehensive cleanup of all existing martial arts. Improving var
names, code, adding some missing animation calls, etc.

Fixes #74829

## Why It's Good For The Game

Untangles the mess that is martial arts, making it a lot easier to work
with the attack chain and making it overall a ton more consistent.

## Changelog

🆑 Melbert
refactor: Big martial arts refactor, they should now overall act a ton
more consistent. Also technically any mob can do martial arts. Let me
know if something is funky.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-01 14:18:46 +00:00
LemonInTheDark
18075704e9 Implements rgb2num, uses it to replace all our manual rgb reading. Redoes HSV management (#81182)
## About The Pull Request

[Converts all manual extraction of rbg with rgb2num. It's just
better](ae798eabd5)

[Yanks out old HSV management, replaces it with list
stuff](4997e86051)

There's this old lummy era clunky code that passed HSV as text

We can now cleanly replace it with passing hsv as lists from a rgb2hsv
proc

So let's just do that.

Also, cleans up spraytan code (and ethereal lighting)

## Why It's Good For The Game

Code better
2024-02-01 13:43:50 +01:00
John Willard
c5644cbbe0 Fixes some issues with slime feeding (#81166)
## About The Pull Request

Using feed while feeding on someone will now unbuckle you rather than
prompt you to buckle to someone else like it's supposed to
The list of people to buckle to no longer includes dead people (which is
beneficial for the last fix)
If there's only one person to buckle to then it will skip the UI and eat
that person.

## Why It's Good For The Game

Fixes to slime.

## Changelog

🆑
fix: Slimes using Feed while buckled now stops feeding.
fix: Slimes are no longer prompted to feed off of dead people.
fix: Slimes that can only feed onto one person now immediately feeds off
of them.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-01-31 10:30:19 +00:00
Vladin Heir
9317696b7d [NO GBP] Changes how the nukie medbot enables airplane mode (#81152)
## About The Pull Request
When I wrote #81113, I foolishly set the flags on the nukie medbot by
typing out all the parent flags and removing the one I did not want.
This PR changes that to use the `parent_type::` operator and get the
actual parent flags, then removing the one we do not want. Not player
facing.
## Why It's Good For The Game
Looks cleaner in the code and probably helps maintainability.
2024-01-29 18:50:02 +01:00