Commit Graph

42509 Commits

Author SHA1 Message Date
Dani Glore
e8c4334f86 Fix: AI Hologram Copying Station Members (#81701)
## About The Pull Request

This PR fixes a bug which disables the AI hologram's ability to copy the
appearance of crew members. Fixes #78403

The bug was caused by developer error in PR #72725 when the typepath
`/datum/record/crew` was used to access `GLOB.manifest.locked`, which is
a list of `/datum/record/locked`. To fix the bug I replaced the
erroneous typepath with `/datum/record/locked`.

## Why It's Good For The Game

This PR fixes the broken feature that used to allow the AI to select
from the crew records to set its hologram's appearance.


![image](https://github.com/tgstation/tgstation/assets/17753498/f6cdca47-0795-4b41-8c6c-922a38f597ee)
![image](https://github.com/tgstation/tgstation/assets/17753498/bfb49bf6-2842-405c-b88f-70b707f5d109)

## Changelog

🆑 A.C.M.O.
fix: Fixed the AI hologram's ability to copy the appearance of crew
members.
/🆑
2024-02-28 03:01:02 +01:00
Ghom
f8dcbe06be "Freshness Jars full of Natural Bait" is now a goodie and costs 200 instead of 2000 (#81555)
## About The Pull Request
All other fishing-related packs (fishes are considered livestock) are
goodies, and none of them costs anywhere this much.

## Why It's Good For The Game
That's some overpriced jar of ~~kronkaine pills (1u)~~ fishing baits.

## Changelog

🆑
balance: "Freshness Jars full of Natural Bait" is now a goodie and costs
200 credits instead of 2000
/🆑
2024-02-27 15:52:16 -05:00
KingkumaArt
42a657169d Makes vending machines no longer crush chairs - fixed (#81653)
THIS IS A FIXED VERSION OF PR #79775

Does what it says, vending machines no longer damage chairs or
conveyors.
Likely an unintended side effect of vendor crushes being updated to do
integrity damage.

## Why It's Good For The Game


![cbt](https://github.com/tgstation/tgstation/assets/69398298/c4695266-4bf5-4cfb-a51c-0c63e4e71d50)

Jokes aside the fact I have this gif below permanently saved to my pc
means it's memorable enough to add back in.
Not really a thing that's possible to powergame with either, because
there are far easier ways of RRing someone, this is just funny enough to
be worth it.

## Changelog

🆑
add: a list of items called vendor_nocrush that vendors dont deal
integrity damage to upon hitting them.
fix: Makes vending machines no longer crush chairs and conveyors.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2024-02-27 15:01:24 +01:00
DrTuxedo
35242b4985 NEW TRAIT ROLE: Veteran Advisor (#81667)
## About The Pull Request
Adds a new Trait Job (jobs which only appear when the station gets a
trait for it) - Veteran Advisor.
The weight of the trait is 2 which makes it very rare.

Veteran Security Advisor is a role designated as a (duh) Advisor for the
HoS and Captain, as well as a mentor for all of the Officers. This is
because it has an experience requirement of **100 SECURITY HOURS**, so
no green Veterans.

Veteran Security Advisors are paraplegic (bonded to a wheelchair) and
with PTSD which freezes their mood and sometimes causes hallucinations.
They get an M1911 pistol in a holster because that's badass.

<details>
<summary>THE IMAGES</summary>

ADVISOR
![veteran advisor
chair](https://github.com/tgstation/tgstation/assets/42353186/e094669c-002f-4552-9692-c8f055a042eb)

THINGS HE SPAWNS WITH
![veteran advisor
shit](https://github.com/tgstation/tgstation/assets/42353186/27ed7e8a-bcd0-4ec2-9504-135a443492f0)

HIS UNIQUE MOODLET
![veteran advisor
desentized](https://github.com/tgstation/tgstation/assets/42353186/6fc04a24-b4fc-40bd-938f-c32389ac9eab)

SIGNUP BUTTON
![signup
button](https://github.com/tgstation/tgstation/assets/42353186/f10020c7-69fe-47f0-aa5f-7b56dfbc8200)

</details>

## Why It's Good For The Game
More funny Trait Jobs to the game!
There is a certain lack of those, there is only Cargorilla and Bridge
Assistant.

This job has big opportunities. Advisors can behave themselves like
drill sergeants, or wise old mentors. Because they are kinda, as people
only with 100 Security hours (yes those masochists exist) could play it
when it appears. This will also open opportunities for retired Sec mains
to tutor new generations without being directly involved in all of the
stress.
I mostly took a look at the Goonstation "Nanotrasen Security Consultant"
and Baystation "Senior Enlisted Advisor" as inspiration.

I tried to cut down any chances of this role being abused by power
gamers for its M1911 pistol and Bridge access, due to this they are
paraplegic so power gamers get disgusted, and if someone does somehow
win Antagonists while in a wheelchair - props to them, pure skill.

**REMEMBER THAT THIS IS A TRAIT JOB!** This means they won't appear
every round, but rather rarely! So they fit in as an occasional extra
fun for the round.
## Changelog
🆑
add: NEW TRAIT JOB: Veteran Security Advisor! Advise HoS and Captain on
Security matters, mentor Security Officers. Note that they are
paraplegic and fully emotional desensitized due to their past
experience.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-27 03:59:36 +00:00
Ghom
871cec76aa Adds a multi-dimensional bomb payload to the black market. (#81562)
## About The Pull Request
This PR adds a !!!FUN!!! bomb payload to the blackmarket, which, upon
detonation, transmutates all terrain in a range like the dimensional
anomaly would. You can also select the dimensional theme to use by using
it in your hand.

I believe however, this thing should cost a fuckton to get and only show
up occasionally. 8k to 10k was my original idea, but I think that's
perhaps not high enough given its flagrant potential. Perhaps I should
also make it so the more dangerous themes yield a shorter range than
others. Suggestions are welcome.

Screenshot of what happens when you don't set the theme:

![chaotic_mess](https://github.com/tgstation/tgstation/assets/42542238/e4c3264d-17e0-45b6-90c2-3c30a592ae2d)

This PR also turns dimension themes into singletons so we access them
more easily. Nothing to write home about.

## Why It's Good For The Game
The black market could always use some extra thingy or two anyway, and
this thing could either be a source of emergent gameplay, or a recipe
for a disaster. Perhaps second to the Big Slappy for how funny it could
be.

## Changelog

🆑
add: Added a multi-dimensional bomb payload to the black market. It's
very expensive.
/🆑
2024-02-26 19:48:57 -06:00
lessthanthree
73733d44cf Tram mob throwing adjustments (#81617)
## About The Pull Request

- Corrects grille breaking related to PR
https://github.com/tgstation/tgstation/pull/81594
- Throw chance moved to a var on the controller instead of hardcoded
- Corrects a bit of documentation on tram controller landmarks
- Fixes the collision multiplier being set to a static value during
malfunction instead of the intended multiplier
- Includes throw chance in tram malfunction
- Cursed mobs now guaranteed to be thrown

## Changelog

🆑 LT3
code: Tram throwing now breaks grilles consistently
code: Tram malfunction lethality/throw chance are now a multiplier
instead of flat value
code: Tram throw chance can be adjusted
code: Unlucky trait is now used in tram throw calculation 
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-27 01:33:12 +00:00
Iamgoofball
b2007c17d1 Xenomorph stomachs and vore will no longer destroy items directly, refactored it to use acid_act() (#81534)
## About The Pull Request

senomorph stomachs and vore will no longer destroy items and mobs
directly, refactored it to use acid_act()
fixes xenomorph vore accidentally destroying mobs it wasn't supposed to
destroy, im thinking this was modified list in place shenanigans

## Why It's Good For The Game

this shit is jank as hell and better done this way and results in less
weird edge cases, and also makes xenomorphs feel less bullshit

## Changelog

🆑
balance: xenomorph stomachs will no longer destroy items directly,
refactored it to use acid_act()
fix: fixes xenomorph vore accidentally destroying mobs it wasn't
supposed to destroy, im thinking this was modified list in place
shenanigans
/🆑
2024-02-27 02:23:25 +01:00
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
PapaMichael
633a1e8a5d Fugitive Hunters can spawn early if emergency shuttle is called (#81612)
## About The Pull Request
In the event of a shuttle call, fugitive hunters will spawn early.
(Hunters will still spawn 10 minutes after the fugitives if the shuttle
is idle)
## Why It's Good For The Game
Hunters are currently able to spawn way too late to ever have a chance
to interact with the fugitives, this is lame for both parties involved.
## Changelog
🆑 PapaMichael
balance: Fugitive hunters will spawn early if the emergency shuttle is
called.
/🆑
2024-02-27 02:08:43 +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
L0pz
5ba0361d7d Battery acid pie (#81663)
## About The Pull Request

I added a battery acid pie you make with 2 batteries and one plain pie


![image](https://github.com/tgstation/tgstation/assets/55806451/f7d4ed6f-9d71-46ea-ac62-0035c28612d7)


## Why It's Good For The Game

The game had a very noticeable and substantial lack of battery acid pies
(plus I wanted there to be more dishes for ethereals)

edit: sorry I couldn't figure out how to add labels

## Changelog
🆑 
add: Added the battery acid pie
/🆑
2024-02-26 18:46:50 +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
MrMelbert
153c3fe734 Fixes paddy claw missing sanity checks / action checks / usage log (#81596)
## About The Pull Request

Paddy mech claw didn't
- Call `action_checks`
- istype the right type 
- call parent (no signal, no log) 

This fixes that. 

## Changelog

🆑 Melbert
fix: The Paddy's Claw should be properly unusable in situations which it
should be properly unusable.
/🆑
2024-02-26 18:39:55 +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
jimmyl
decf0af776 deathmatch ui qol and deathmatch plasmamen are made humans (#81629)
## About The Pull Request

![2024-02-22 18_33_26-Space Station
13](https://github.com/tgstation/tgstation/assets/70376633/3eeb086a-ce07-4677-8ac0-a319ba3e47f6)

there is a new option in the loadout dropdown "Randomize", using it
picks a random loadout
also the UI scrolls now so it can survive more players
and plasmamen are set into humans as to not need to create more
plasmaman specific outfits

## Why It's Good For The Game

player list going out of its section = bug bad
plasmamen getting lit on fire instantly and dying = bad
Closes #81622
## Changelog
🆑
add: Added an option to deathmatch loadout dropdown that allows you to
pick a random loadout
fix: In deathmatch, plasmamen are made humans and the UI supports more
players
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-02-26 18:27:06 +01:00
Ben10Omintrix
29437e3559 fix mob ai using attacks while inside pokeballs (#81671)
## About The Pull Request
fixes pokemon AI still being active while inside the pokeball closes
#81669

## Why It's Good For The Game
fixes pokemon AI still being active while inside the pokeball

## Changelog
🆑
fix: fixes pokemon ai still being active when inside the pokeball
/🆑
2024-02-26 17:59:25 +01:00
ArcaneMusic
69138fb204 Logs holochip credits worth zero or less credits and prevents them from spawning. (#81605) 2024-02-26 04:46:26 -07: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
jimmyl
cd69473295 fixes a two for one deal in the outfit sanity test (less runtimes) (#81645)
## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/70376633/ac833396-b6ee-4cbc-8226-b15e90cc3db1)
this is dumb


## Why It's Good For The Game

i think that was a bug

![image](https://github.com/tgstation/tgstation/assets/70376633/40081a6f-54e9-42ee-92be-e3349fc389ae)


## Changelog
2024-02-25 22:24:17 +01:00
_0Steven
72949f2495 Fix runtime when food processor handles items without reagents (#81646)
## About The Pull Request

### Alternate title: "Stop the popsicle stick maximizer."

<details>
<summary>The popsicle stick maximizer in question</summary>


![image](https://github.com/tgstation/tgstation/assets/42909981/29f636f3-6509-4cf9-9093-9fcd0ea5de4f)

</details>

So when using the food processor to produce popsicle sticks from logs,
it seemed to never actually delete the log, letting you create more and
more and more and more and more and etc popsicle sticks.
This seemed to be caused by the popsicles not actually having reagents
to clear nor copy to, and thus it caused a runtime before it got the
opportunity to delete the log.

<details>
<summary>Runtime</summary>


![image](https://github.com/tgstation/tgstation/assets/42909981/bd853870-64e9-4b47-aead-38e6955b7dab)

</details>

Adding a check to make sure neither of these are null before proceeding
to use them resolves this issue.
## Why It's Good For The Game

Less runtimes, less popsicle stick maximizing.
Fixes #81644.
## Changelog
🆑
fix: Disabled the popsicle stick maximizer. (Producing popsicle sticks
actually deletes the input logs.)
/🆑
2024-02-25 22:24:08 +01:00
Higgin
50bb186431 updates bb convert objective text (#81658)
## About The Pull Request

adds some explainer text to BB conversion.

## Why It's Good For The Game

I've run into several people recently having issues with this - not
knowing who they can convert or what to do if they lose/break their
flash without successfully converting. Adds a little bit of text to
hopefully help.

## Changelog

🆑
qol: Blood Brother convert objective now explains who you can convert
and what to do if you mess up with your flash.
/🆑
2024-02-25 22:23:19 +01:00
MrDas
74b35c2172 Fixed Typo in Mech Construction Steps (#81664)
## About The Pull Request
Removes the servo tier in mech construction examine text, so it's more
consistent with other parts.
## Why It's Good For The Game
I hate inconsistency of servos containing tier in mech construction.
## Changelog
🆑 MrDas
spellcheck: The tier of servo in mech construction is no longer
explicitly stated.
/🆑
2024-02-25 18:15:02 +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
EEASAS
705e6a5af6 buff corporate modsuit (#81525)
buffs the corporate modsuit's armor
also expands the other-description on it because flavor mmm yum yum
munch
2024-02-25 05:45:52 +00:00
Cheshify
218b823cf8 Meatwheat Made Consistent (#81639)
## About The Pull Request
Removes the GRAIN foodtype from meatwheat, it's just meat.
## Why It's Good For The Game
In the current iteration of meatwheat, it flip-flops between foodtypes
while you're preparing it.

First it's meat and wheat
![Screenshot 2024-02-22
212818](https://github.com/tgstation/tgstation/assets/73589390/3a4da0ef-9550-4551-8ec7-6057b93f4d8e)
then it's wheat
![Screenshot 2024-02-22
212854](https://github.com/tgstation/tgstation/assets/73589390/7bd07c16-503b-4ab3-8df8-6d99951c0429)
then it's meat!
![Screenshot 2024-02-22
212909](https://github.com/tgstation/tgstation/assets/73589390/0a570619-7ad4-4041-b887-8019b78a2e91)

This should JUST be meat, it's meatwheat not wheatwheat, and the
reagents don't hint towards it being wheat.
## Changelog
🆑
fix: meatwheat is now firmly made out of meat, instead of sometimes
being wheat and sometimes being meat and sometimes being both.
/🆑
2024-02-24 21:40:13 -08:00
bigfatbananacyclops
b22ed7188c Adds floortile camouflage equipment as hidden cargo crate (#81512) 2024-02-24 01:50:46 -05: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
ArcaneMusic
161b96c99d Fixes mining cyborg ore scanner shutting off when stored. (#81604) 2024-02-23 09:44:57 -07: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
_0Steven
6aad4f5551 Alternate job titles (chef, department security) actually imprint this title onto your PDA (#81602) 2024-02-22 18:12:52 -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
Bloop
bf56a7a1ba Fixes CI runtime/race condition with forensics (#81610)
## About The Pull Request

Just a quick fix for the following CI runtime, and additionally passes
through the rest of this file's weakref instances for any other
potential bugs.


![image](https://github.com/tgstation/tgstation/assets/13398309/a58be18a-21e4-40b2-92e0-1a961108c939)

## Why It's Good For The Game

Bugfix

## Changelog

Nothing player facing

---------

Co-authored-by: san7890 <the@san7890.com>
2024-02-22 13:32:08 +01: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
MrMelbert
961482c6bd Removes some easily accessible sources of Mythril (#81595)
## About The Pull Request

- Deletes Mythril coins from random spawners, redestributes its weight
where relevant
- Deletes Mythril Sheets from icebox fishing, replaces it with Runite,
which is far less harmful (literally just a strong material)

## Why It's Good For The Game

Mythil's not supposed to be easily player available

Literally the first coin I spawned in testing was summoning, the most
gamebreaking one.

Also see this for more information
https://github.com/tgstation/tgstation/pull/75199#issuecomment-1537836361


![image](https://github.com/tgstation/tgstation/assets/51863163/e5d3b569-4d29-4cd5-bb1e-36f94cbbea84)

With 2 sheets you can farm any prefix you want by combining and
splitting sheets. Nope!

## Changelog

🆑 Melbert
del: Deletes Mythril Coins from random coin spawners
del: Replaces Mythril sheets in icebox vent fishing with Runite sheets
/🆑

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2024-02-21 20:19:20 -07:00
MrMelbert
0a03741a35 Comprehensive frame refactor to fix being unable to thwack frames with brute force to break them (#81477) 2024-02-21 12:35:23 -07:00
Derpguy3
ce34635a9f Adds a missing servo into the MK1 Ripley crate ordered from cargo (#81587)
## About The Pull Request
So cargo can order a box containing all the components you need to build
a ripley mech from the ground up.

Except a servo, which is required in the building process, and is needed
for the mech to move around anywhere.
This adds the missing part, so that the only thing you need is metal and
tools. (And a battery.)
## Why It's Good For The Game
If you order a crate containing (almost) all the components you need to
build a mech, and its missing a key part, I wouldn't call that a very
complete set. So having the servo included makes it complete.

Also, the chances are this crate was forgotten about when the servos
became a needed part of mech construction, so this fixes the
consistency.
## Changelog
🆑
fix: Adds a missing servo component into the MK1 Ripley Crate ordered
from cargo.
/🆑
2024-02-21 19:06:27 +01: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
MrMelbert
115fda380d Half fixes organ blood dna not updating (#81584)
## About The Pull Request

Organs have this mechanic where they store the first mob who owned it's
DNA

Anyways it was broken from the organ nullspace refactor because they
intended a block of code that shouldn't have been indented

But this only *half* fixes the issue, you see a problem here?


![image](https://github.com/tgstation/tgstation/assets/51863163/886dd926-3242-4305-825b-a715d6848281)

Yeah there's an order of operation thing going on here because you get
your organs before you get your species bloodtype
This only affects species with weird blood types (like lizards)
I'm not fixing it in this PR because it was certainly broken before and
needs a bit more unwinding somewhere

## Changelog

🆑 Melbert
fix: Organs have the blood DNA of their owns on them again
/🆑
2024-02-20 20:21:54 -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
eab332e07e [NO GBP] fixing issues with cutouts and potted plants (#81570)
## About The Pull Request
This should fix #81560 and fix #81561,

## Why It's Good For The Game
Oh no, another invisibility exploit.

## Changelog

🆑
fix: fixed an issue with tactical appearance (potted plants / cardboard
cutouts) not going away after giving the item to someone else.
fix: Fixed slaughter demon cutouts being invisible. Also fixed another
issue with the tactical appearance not going away when the cardboard
cutout is pushed down.
/🆑
2024-02-20 19:30:06 +00:00
jimmyl
7e03599010 [no gbp] marks deathmatch areas as NOTELEPORT, and abductor and event proof (#81557)
## About The Pull Request

marks deathmatch areas as NOTELEPORT, and abductor and event proof

## Why It's Good For The Game

ok just incase they shouldnt be able to get out of here
2024-02-20 12:20:27 -06:00
jimmyl
10ecb9e0be [no gbp] deathmatch does not preserve mind (but you can still return to your body) (#81567)
## About The Pull Request

deathmatch no longer preserves mind
also gives traits TRAIT_CANNOT_CRYSTALIZE, TRAIT_PERMANENTLY_MORTAL to
prevent shenanigans
fixes #81550

## Why It's Good For The Game

it took two minutes for the russians to start scheming on how to get to
CC
2024-02-20 12:19:00 -06:00
Ghom
717209899b Paintings update: Curators get a cut on patronage + zoom in/out buttons on UI (#81500)
## About The Pull Request
(Roundstart) Curators now get a 22.5% cut on credits spent on painting
patronages (divided by the number of curators). The service department
also gets another, 12.5% cut.

This PR also adds zoom in/out buttons to the painting canvas UI. So you
don't have to stare at a blob of such enormous squares while the UI is
open, which is only good when drawing.

Screenshot copypaste in paint:

## Why It's Good For The Game
The painting feature is mostly an end in itself, which is totally fine.
I've put quite a few quality-of-life changes into it through the years,
and I still want to kick in some stuff. However, I think the curator
should actually benefit from them in a more "mechanical" way.
Furthermore, I personally prefer them over the random written crap that
players make.

Also, as I said above, the canvas UI can feel a tad too big at times.
2024-02-19 11:49:03 -06: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