Commit Graph

1936 Commits

Author SHA1 Message Date
SkyratBot
daba1d93ae [MIRROR] Hud screens now set hud owner in Initialize. [MDB IGNORE] (#22501)
* Hud screens now set hud owner in Initialize.

* Merge conflicts

* modular adjustments

* Missed one

* Make this easier to spot

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-18 16:41:01 -04:00
SkyratBot
cc3bcac7d7 [MIRROR] Fixes water-resistant creampies [MDB IGNORE] (#22343)
* Fixes water-resistant creampies (#76653)

## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/76641
Caused by the bodypart overlay being deleted before it got properly
removed on UnregisterFromParent()

## Why It's Good For The Game

One less hard delete and one less bug caused by said hard delete

## Changelog

🆑
fix: Creampies will no longer irreparably stain your face
/🆑

* Fixes water-resistant creampies

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-07-18 13:04:23 -04:00
Bloop
46d84e6119 [MANUAL MISSED MIRROR] Replaces lava and chasm's "safeties" and ignoring turf slowdown on catwalks with traits and a new element (#22384)
Replaces lava and chasm's "safeties" and ignoring turf slowdown on catwalks with traits and a new element. (#76376)

This adds a new element for movables that grants turfs they're in
traits, changes lava and the chasm component to check for traits
instead, ditto for turf slowdown. It also implements another trait that
prevents wet floor from slipping people, as well as some other changes
(feel free to opine on them really):
- Tables and conveyor belts now stop turf slowdown, much like catwalks,
as I imagine people walking on them are not really touching the floor.
(I'd include protection against lava too... until they melt, but that'd
mean finding a way to have these objects burn in the first place, and
lava code is still stupid despite a years old refactor I did)
- Tables also stop slippery turfs from slipping (bananas, soaps etc.
still apply). I wish there were a way to make some objects slippery by
coating them in water vapor or splashing water/lube, but that's outside
the scope of this PR.
- Fixed an edge case in which a mob standing on a lava turf would be
left permanently visually on fire if the lava is changed to another kind
of turf.
- Removed unused code from stone tiles.

I'm going to include these traits in that global list for admin-added
traits... tomorrow perhaps. 💤

Replacing some hard-coded mechanics with easier to use traits and an
element, which I also need for the submerge element PR.

🆑
refactor: Replaced hardcoded "safeties" for lava, chasms and ignoring
turf slowdowns on catwalks with traits.
balance: much like catwalks, tables and conveyors also disable turf
slowdowns.
balance: slippery turfs won't slip you when walking on a table.
fix: Fixed an edge case in which a mob standing on a lava turf would be
left visually but permanently on fire if the lava is changed to another
kind of turf.
/🆑

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-07-18 00:06:04 -04:00
SkyratBot
1b2c393ca6 [MIRROR] PAI Holochassis are now leashed to an area around their card [MDB IGNORE] (#22461)
* PAI Holochassis are now leashed to an area around their card

* Fix diffs

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-16 16:38:20 -04:00
SkyratBot
0ab6e150ec [MIRROR] Buffs deviant tastes quirk a bit. [MDB IGNORE] (#22504)
* Buffs deviant tastes quirk a bit. (#76864)

## About The Pull Request
Eating decaying fungus, liking the taste but caring about how dirty it
was is a bit strange.
## Why It's Good For The Game
Consistency.
## Changelog
🆑
qol: People with deviant tastes now don't care about dirt on the food.
/🆑

* Buffs deviant tastes quirk a bit.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-07-16 16:03:19 -04:00
SkyratBot
45c9acb684 [MIRROR] Basic mobs can emote when they get a new target [MDB IGNORE] (#22497)
* Basic mobs can emote when they get a new target (#76654)

## About The Pull Request

![image](https://github.com/tgstation/tgstation/assets/7483112/c16adf49-b075-42ee-a5e1-d998e0e77227)

Fixes #76624
Restores lost functionality for a mob to play an emote when it acquires
a new target.
Also I added a generic blackboard key change signal which could
potentially have other uses in the future.

## Why It's Good For The Game

It's good feedback to know when a mob has chosen to target something.

## Changelog

🆑
fix: Carp, Trees, and Festivus Poles will once more sometimes emote at
you if they think you are looking at them the wrong way, before they
come over to beat you up.
/🆑

* Basic mobs can emote when they get a new target

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-07-16 14:18:38 -04:00
SkyratBot
2f552919c1 [MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two

* Merge conflict resolution

* Modular path hell

* hmm

* Update 2022-10.yml

* Another modular thing

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-16 00:41:18 -04:00
SkyratBot
6b69b10361 [MIRROR] Bots no longer require PAIs to become sapient [MDB IGNORE] (#22361)
* Bots no longer require PAIs to become sapient

* Fixes merge conflicts

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 20:17:22 -04:00
Zergspower
bb3d041572 [Manual Mirror Fix] Removes shitty "status" variable on organs, makes them use organ_flag (#22480)
* Removes shitty "status" variable on organs, makes them use organ_flags instead (#76350)

Title.

Seriously this shit pisses me off, why are ORGAN_SYNTHETIC and
ORGAN_ROBOTIC two different things?

not applicable unless i fucked up

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>

* Modulars

* Some merge skew

* More diffs

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 17:27:49 -04:00
SkyratBot
21478d3e6c [MIRROR] Rewrites anti-magic slightly to stop spamming anti-magic effects on the same mob to silly levels [MDB IGNORE] (#22476)
* Rewrites anti-magic slightly to stop spamming anti-magic effects on the same mob to silly levels (#76616)

## About The Pull Request

Moves anti-magic effect off of the component and onto the mob. Fixes
some bugs while there.

Anti-magic effects will now only trigger on calls with a charge cost
associated.

If the user is under the effects of.. an antimagic effect, a new one
will not play. This cuts down on overlay and sound effect spam from
walking through forcewall or spacetime distortion, for example.

## Why It's Good For The Game

I just found it a little annoying to see a chaplain walk through a magic
effect and it just spams the fart sound over and over on repeat and
makes them completely impossible to see.

## Changelog

🆑 Melbert
fix: Anti-magic visual effects will no longer trigger overtop one
another
/🆑

* Rewrites anti-magic slightly to stop spamming anti-magic effects on the same mob to silly levels

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-07-15 12:46:42 -04:00
SkyratBot
74af69d062 [MIRROR] Adds cardboard IDs to the game: The broke man's agent ID. [MDB IGNORE] (#22341)
* Adds cardboard IDs to the game: The broke man's agent ID.

* Fixes some undocced edits, formats others to match spec

* Fixes a merge conflict

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 01:06:41 -04:00
SkyratBot
fcacebfe38 [MIRROR] Adds Roach Infusion to the DNA infuser [MDB IGNORE] (#22190)
* Adds Roach Infusion to the DNA infuser

* Icons

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-14 23:11:18 -04:00
GoldenAlpharex
7a827df807 [MIRROR] SPECIES NUKING 2023: Nukes species_traits, good night sweet prince [MDB IGNORE] (#22458)
* SPECIES NUKING 2023: Nukes species_traits, good night sweet prince (#76297)

IT'S OVER.

Species traits are a relic of a time before the trait system was added
to generalize this kind of behavior.
They are clunky and overall less useful than inherent_traits -
Converting these makes it easier to make these behaviors modular and
usable not only by species.

🆑
refactor: A significant species refactor happened, report any issues on
the github.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>

* Makes it all work

* Fix widespread vampirism (#76414)

## About The Pull Request

Removing code you think is not necessary but is actually is always a
recipe for disaster (#76297)


![image](https://github.com/tgstation/tgstation/assets/51863163/8ea9fdcc-2f95-47d4-a00f-cc8ebeb319f9)

## Changelog

🆑 Melbert
fix: Fix everyone being vampires
/🆑

* Whoops, missed one!

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-07-14 21:38:54 -04:00
SkyratBot
b6f130d011 [MIRROR] SPECIES NUKING 2023: Makes tongues handle liked/disliked food instead of species datum [MDB IGNORE] (#22066)
* SPECIES NUKING 2023: Makes tongues handle liked/disliked food instead of species datum

* Fixes all of the left-over issues

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/22137

https://github.com/tgstation/tgstation/pull/76359

* Applies https://github.com/Skyrat-SS13/Skyrat-tg/pull/22251

https://github.com/tgstation/tgstation/pull/76537

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-07-14 16:54:10 -04:00
SkyratBot
e3cd27ab6d [MIRROR] The Laser Musket (2023) (Settlement Helper Edition) [MDB IGNORE] (#22156)
* The Laser Musket (2023) (Settlement Helper Edition) (#76231)

## About The Pull Request
This adds a craftable laser musket to the game. It's slow and unwieldy,
but consistent! I'd be happy to tweak the numbers if it's too good/bad.

This PR also adds an independent militia ERT, who travels the spinward
sector to help defend stations!

TO DO LIST:

- [x] Finish worn sprites
- [x] Add a crafting recipe on par with the pipegun
- [x] Add bayonets
- [x] Separate charging into two stages and REDO THE AUDIO AAAA
- [x] Clean up code (Needs review, totally)

Scrapped:

- Possibly add overcharge mechanic (This is just beyond my skill level
for now)
- Find a unique sound for the weapon firing (We have a unique
projectile, and I can't a sound that fits more than the laser gun one)

![image](https://github.com/tgstation/tgstation/assets/73589390/40ee8f1d-5c1f-4638-af70-ff1215b85c9e)

![1211
(1)](https://github.com/tgstation/tgstation/assets/73589390/1a4b9856-a878-4500-96ce-4fd83587fa81)

![musket (2) (2)
(2)](https://github.com/tgstation/tgstation/assets/73589390/2ebdc2ed-6f78-4761-9deb-a1b2d337a02d)

![aaaa1
(1)](https://github.com/tgstation/tgstation/assets/73589390/6076edd3-97c9-41ec-a67a-90717f97eab0)

![image](https://github.com/tgstation/tgstation/assets/73589390/c47e44bd-3f4b-44b3-aaa5-9b1c25a72cad)

Inhands by RedSentry27
Suit sprite by Kinnebian
Prime Laser Musket sprites by RedSentry27

Balance Considerations (ew):
25 damage (30 on prime)
Normal wound
40 Stamina damage (45 on prime)
Weak to armour (prime not weak to armor)
2 second charge time, needs to be charged twice
No overcharge
Requires two hands to hold (like a chainsaw)

Crafting Recipe:
One rifle stock
Fifteen Cable Coils
Four Iron Rods
One micro laser
One capacitor
One pair of prescription glasses
One drinking glass
Craft for 10 seconds with a wirecutter and screwdriver

Prime crafting recipe: (REQUIRES READING MAINTENANCE LOOT: "journal of a
space ranger")
One laser musket
Fifteen cable coils
Five silver
One water recycler
Fifteen units of nuka cola
Craft for 30 seconds with a screwdriver while wearing cowboy boots and a
cowboy hat
## Why It's Good For The Game
The idea of assistants and revs forming firing lines in the halls to
shoot eachother sounds hilarious. Besides, we need a parallel to the
pipegun, and this is the funniest way to do so.
## Changelog
🆑 Cheshify, Kinnebian, and RedSentry27
add: Maintenance engineers have sent out blueprints across the sector
for a new laser musket.
admin: A new energy-gun toting ERT is available to send to the crew.

---------

Co-authored-by: carlarctg <53100513+carlarctg@ users.noreply.github.com>

* The Laser Musket (2023) (Settlement Helper Edition)

* Update guns.dm

* Update guns.dm

* Fixes vox/teshari greyscale config paths

---------

Co-authored-by: Cheshify <73589390+Cheshify@users.noreply.github.com>
Co-authored-by: carlarctg <53100513+carlarctg@ users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-14 15:21:42 -04:00
SkyratBot
35e28a5b4a [MIRROR] Goliath basic mob [MDB IGNORE] (#22412)
* Goliath basic mob (#76754)

## About The Pull Request

Converts Goliaths to the basic mob framework and gives them some new
moves because I can't leave things well enough alone.
I am planning on touching all the lavaland fauna and then maybe even the
icebox ones if I haven't got bored. The Golaith is the first because it
is iconic.

https://www.youtube.com/watch?v=JNcKvMwT4-Q
Here's me getting killed by one as a demonstration. Despite my poor
performance I would contend that they aren't a _lot_ more dangerous, but
they are a little more dangerous.

The chief difference here is that they have two new attacks which they
will only use in response to being attacked.
If fired at from range, they will target the attacker with a line of
tentacles (it doesn't track you, so is easily sidestepped).
If attacked in melee, they will surround _themselves_ with tentacles, on
a longer cooldown.

Something else you may notice in this video: I discovered that basic
mobs are actually _too smart_ to be Lavaland fauna.
Typically (unlike their old form) a mob on our new AI system is smart
enough to attack someone _the moment they come into range_ rather than
only checking on predictable ticks, which would make using the Crusher
an essentially unviable prospect.
To counteract this, Goliaths now have a delayed attack component which
gives you a visual warning and short duration to get out of range before
they swing at you. I will probably put this on all mining fauna that get
reworked, it wouldn't be a terrible thing to put on other mobs to be
honest.

Other changes: The goliath stun is now a status effect with _buckles_
you to the tentacle as if grabbed, as well as its previous effects.
While this seems purely worse, any nearby helpers can now help-click on
you to instantly remove the debuff.
Experiencing the effect of a Lobstrosity Rush Gland makes you immune to
being grabbed by tentacles and an implanted one will automatically
trigger and free you if you are hit, and the explosive effect of
Brimdust also causes the tentacle to retract (although you'd need to
take damage for this to happen). Using the tools of the land, you can
make these creatures less threatening.

The ability for a Goliath to chain-apply the ability has now also been
reduced, it won't refresh its duration if you are hit when already
buckled.

When not occupied hounding miners, Goliaths will intermittently dig up
the asteroid sand and eat any worms that this produces.
I also made some new sprites for riding a Goliath because they've been
broken since the Lavaland mob update and also kind of were ugly before
then anyway:

![image](https://github.com/tgstation/tgstation/assets/7483112/90580403-d82f-4c29-b3e1-6c462e01edda)

Other code changes:
- I made an element which only lets an attached object move every x
seconds. This is because Goliaths are far too slow to use the speed
system (the glide just looks bugged as hell) but one thing I am invested
in when converting these is to make sure that they share the same
behaviour when player or AI controlled. This is disabled while you're
riding them because it was interminably slow.
- The Goliath tentacle trail uses a supertype object now shared with the
Meteor Heart which did something kind of similar.

## Why It's Good For The Game

It begins the process of moving one of our larger subsets of NPCs onto
the newer framework for NPC behaviour.
It adds a little bit more life to an iconic but slightly uninteresting
foe which mostly just walked at you slowly.
This PR contains a few components I expect to apply more widely to other
mobs in the future.

## Changelog

🆑
refactor: Goliaths now use the Basic Mob framework, please report any
unusual behaviour.
add: Goliaths learned a couple of new attacks which they will use in
self-defence.
balance: Help-clicking a miner grabbed by Goliath tentacles will
immediately free them, as will the effect of several items you can
scavenge from around Lavaland.
image: New sprites for the Goliath saddle.
/🆑

* Goliath basic mob

* Update ash_rituals.dm

* fixes icon diff

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-14 03:10:50 +00:00
SkyratBot
02648adcd6 [MIRROR] Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests [MDB IGNORE] (#22348)
* Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests

* Fixing merge conflicts

* don't forget to ctrl+s!

* Another forgotten file

* urgh

* gets rid of vestiges of update_atom_languages()

and mind language holders

* No longer needed

* Fixes some modular grant_language calls

* Deprecated code

* This was up here before..

* Fixes failing unit tests, refactors silverscale lizards language a bit removing the need for skyrat edits

Removes some no longer needed code

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-13 22:38:45 -04:00
SkyratBot
44e8be8991 [MIRROR] SPECIES NUKING 2023: Mein leber! Allows livers to handle reagents in special ways, instead of the species datum doing it [MDB IGNORE] (#22047)
* SPECIES NUKING 2023: Mein leber! Allows livers to handle reagents in special ways, instead of the species datum doing it

* Fixes another conflict that it decided not to take in

* Fixes the linters!

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-07-13 19:12:37 -04:00
SkyratBot
2f5c7f8389 [MIRROR] Icon folder cleaning wave one [MDB IGNORE] (#22374)
* Icon folder cleaning wave one

* Fixe a merge conflict

* Fixes some more merge conflicts

* Fixes some modular icon paths

* Fixes even more modular icon paths...

Hopefully that's the last of them

* Fixes some merge discrepencies

* More merge issues

* ok

* not ok

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-13 16:24:33 -04:00
SkyratBot
f660441c43 [MIRROR] Post-revs win now ends the shift. [MDB IGNORE] (#22398)
* Post-revs win now ends the shift.

* Update revolution.dm

---------

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2023-07-13 12:05:44 -07:00
SkyratBot
a97aab7642 [MIRROR] Refactors bardrone area based godmode into an element [MDB IGNORE] (#22419)
* Refactors bardrone area based godmode into an element (#76619)

Let's this be used for more than just bardrones and for more than just
the exit shuttle in the future

* Refactors bardrone area based godmode into an element

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-07-13 08:57:14 -04:00
SkyratBot
cc594cbf00 [MIRROR] Golems can dig up the floor with their bare hands [MDB IGNORE] (#22322)
* Golems can dig up the floor with their bare hands (#76623)

## About The Pull Request

I'm atomising a different branch I'm working on so here comes a bunch of
goofy components.
This one lets mobs dig up floor by clicking on them.

![image](https://github.com/tgstation/tgstation/assets/7483112/723b712b-1d3d-4154-a116-7a0379e4e522)
I have justified the existence both of this component and of this system
by attaching it to golem arms.

## Why It's Good For The Game

If you can mine solid rock with your fists you should probably be able
to get sand too

## Changelog

🆑
add: Golems can scoop sand (or snow) off the floor by clicking on it.
/🆑

* Golems can dig up the floor with their bare hands

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-13 02:01:27 -04:00
Bloop
68ef9b4d31 [MISSED MIRROR] Various spider fixes (#76528) (#22395)
Various spider fixes (#76528)

## About The Pull Request

Fixes #76484
Then I noticed some weird stuff which slipped through the PR and poked
at that too.

- Spiderlings and Spiders once more have names ending in (###)
- Removed an unused property on Spiderlings.
- Rewrote the descriptions for a bunch of web-abilities and web-objects
to be clearer and have better capitalisation.
- Refactored the "Web Carcass" ability to not extend from "lay web" as
it didn't need to perform most of that behaviour.
- Also I renamed it and made the description give you a hint about why
you would want to instantly spawn a statue.
- The web effigy now despawns at the same rate as the ability cools down
so you're not dumping spider statues all over the place.
- I made spiderlings move at about the same speed as humans except if
they're on webs in which case they're still pretty fast.

To be honest I am not certain an instant statue spawning button is great
to begin with and I didn't even know it was added to the game but I am
not interested in messing much with the balance for now.

This made me look at spiderlings enough that I'm going to try and make a
new sprite for them that isn't awful.

## Why It's Good For The Game

Lets you differentiate individual spiders a little bit.
Makes usage of abilities clearer.

## Changelog

🆑
balance: Guard spider web statues despawn as the ability comes back off
cooldown.
balance: Spiderlings now only move at light speed if they're on webs,
stay safe little guys.
fix: Spiders once again have random numbers after their names.
/🆑

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-07-12 10:16:55 -07:00
Zergspower
68a899f5bd [Manual Mirror Fix] Coroner additions and tweaks (#76534) (#22380)
* Coroner additions and tweaks (#76534)

## About The Pull Request

Serrated bone shovels can be created with any kind of shovel now, not
just a spade (???)

Serrated bone shovels can be used in place of circular saw in most
surgeries.

Added a duller (still deadly) variant of the serrated bone shovel as
coroner mail.

Autopsy scanners now act as advanced health analyzers on dead and
seemingly-dead people.

Increased the force, throwforce, and wound bonus of inert ritual knives
and scythes.

Coroner gloves can quickly apply medicine like nitrile gloves.
## Why It's Good For The Game

> Serrated bone shovels can be created with any kind of shovel now, not
just a spade (???)

Weird ass bug.

> Serrated bone shovels can be used in place of circular saw in most
surgeries.

It's serrated, it's cool, it's rare, it has a fast toolspeed.

> Added a duller (still deadly) variant of the serrated bone shovel as
coroner mail.

Very thematic for the coroner, should probably also be a heirloom item
but whatevs. Weaker so there's still a reason to seek out the OG.

> Autopsy scanners now act as advanced health analyzers on dead and
seemingly-dead people.

Scanning corpses is pretty important during surgery - it tells you how
much blood they have, organ damage, diseases... these things don't
appear in the surgical computer readout, which means the coroner has to
go out of his cave to pick up a boring light blue meatbag wound scanner.
This also incentivizes coroners to do their job by giving them something
cool that only works on dead bodies.

> Increased the force, throwforce, and wound bonus of inert ritual
knives and scythes.

These two options in the MortiDrobe are pretty frickin' badass,
especially with how SICK the Coroner looks with them, double especially
in combat.


![image](https://github.com/tgstation/tgstation/assets/53100513/98c6f8a5-3e5a-41a9-8a9c-cb6b82ecc0b8)

However, there's the large issue that as actual weapons they're really,
really weak. Not enough damage, when I use them in combat I both feel
badass but also get a nagging feeling in the back of my mind that I'm
intentionally gimping myself, and with only 10 damage I can *really*
feel it. I find it unfair that these are objectively worse than a
welding tool or even a Butcher's Cleaver when they're a lot more
involved to find, and scarce besides. These arguments apply equally to
the Wizard's ritual knife, and the scythe.

Additionally on the scythe, the crew really needs more good ghetto
weaponry that isn't the boring same ol' of baseball bats, spears,
cleavers... and making scythes useful is a great way to help bridge that
gap. They deal a satisfying amount of damage now, with the clear
downside, of course, being that they're bulky and hard to lug around.

> Coroner gloves can quickly apply medicine like nitrile gloves.

'Fast medicine' doesn't just cover sutures, it also covers medical gel.
Specifically, sterilizer gel. I find it annoying that the Coroner is
encouraged to give up his drip for the boring life-saver nitrile gloves,
because the difference in applying time really does make a difference -
it makes gel applying go from annoying to smooth, which is important
considering the whole purpose of sterilizer gel is to make surgeries go
faster. The Coroner has surgery and thus medical locker access to begin
with, so this isn't a balance problem, (and nitrile gloves are found by
the dozen anyways) especially with how rare the coroner gloves are.
## Changelog
🆑
fix: Serrated bone shovels can be created with any kind of shovel now,
not just a spade (???)
add: Serrated bone shovels can be used in place of circular saw in most
surgeries.
add: Added a duller (still deadly) variant of the serrated bone shovel
as coroner mail.
add: Autopsy scanners now act as advanced health analyzers on dead and
seemingly-dead people.
add: Increased the force, throwforce, and wound bonus of inert ritual
knives and scythes.
add: Coroner gloves can quickly apply medicine like nitrile gloves.
/🆑

* Modular Scythes

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-07-11 22:07:31 -07:00
SkyratBot
4a779bb4b6 [MIRROR] Bibles, Lighters, and Cowboy Hats can block bullets [MDB IGNORE] (#22282)
* Bibles, Lighters, and Cowboy Hats can block bullets (#76521)

## About The Pull Request

If you are wearing a bible or lighter in your suit slot, or a cowboy hat
on your head, there is a small (2%) chance that bullets (only bullets,
not lasers) will hit them instead of you.
This destroys lighters, removes the storage capacity of the bible, or
sends the hat flying off your head.

The Bounty Hunter's cowboy hat has a significantly higher chance to
intercept bullets.

## Why It's Good For The Game

Adds some fun flavour to these items.

## Changelog

🆑
add: A bible or lighter in your suit slot, or cowboy hat on your head
will occasionally intercept a bullet.
/🆑

* Bibles, Lighters, and Cowboy Hats can block bullets

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-11 23:59:06 -04:00
SkyratBot
79eb1d4131 [MIRROR] Jousting now unregisters the current holder [MDB IGNORE] (#22291)
* Jousting now unregisters the current holder (#76589)

## About The Pull Request

Fixes the args of on_equip and on_drop for active items
Picking an item up will unregister from the old user (in case it
transfers inventory)
Unregister's signal from current holder instead of whoever drops it. It
should be the same in each case but there may have some edge case where
on drop isn't called? This is more to just be safe.

## Why It's Good For The Game

Jousting won't runtime as much.

## Changelog

🆑
code: Jousting now registers/unregisters properly on two-handed items.
/🆑

* Jousting now unregisters the current holder

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-07-11 20:08:24 -04:00
Bloop
df074b9966 [MANUAL FIXED MIRROR] 22129 and 22154 (#22379)
* Makes hoods into a component (#75977)

## About The Pull Request

Refactors the behaviour of "one clothing item deploying another clothing
item" from `/obj/item/clothing/suit/hooded` and makes it into a
component.
This allows you to make hooded items which are not part of that
typepath. It also means you could make (for instance) a hat which can
deploy a pair of sunglasses into the eye slot or a jumpsuit with
deployable clown shoes or something.

I need to pass in an assload of callbacks because we have a bunch of
special hoodies that want to do things when you raise and lower the
hood, but for a normal item you would not need these.

## Why It's Good For The Game

Frees people from the tyrrany of typepaths, mostly.
Plausibly you could use it to do something fun we don't currently do.

## Changelog

Not player facing, hopefully. As long as I did this all right.

* Makes hoods into a component

* [no gbp] Fixes item action buttons

* Update items.dm

* Fix mirror 22129

* Some last minute updates -- comment and small optimization

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-11 19:57:19 -04:00
SkyratBot
ec6b7aba1b [MIRROR] AddComponent() now throws a crash message when the comp type arg is not a component. [MDB IGNORE] (#22178)
* AddComponent() now throws a crash message when the comp type arg is not a component. (#76221)

## About The Pull Request
HEY! Did you know that the AddComponent() proc can complete without
throwing errors when the component type argument is actually not a type
or instance of a component? Me neither (until now), but I've recently
discovered that while working on #76219 (Make sure to merge that one
first).

Also adds early return checks to the AddElement and RemoveElement procs.

## Why It's Good For The Game
Silent bugs are awful.

## Changelog
N/A

* AddComponent() now throws a crash message when the comp type arg is not a component.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-11 16:35:47 -07:00
SkyratBot
2a7b436ab1 [MIRROR] Tend Wounds works on non-human mobs [MDB IGNORE] (#22198)
* Tend Wounds works on non-human mobs

* stabby stabby

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-11 16:29:34 -07:00
SkyratBot
59a38c4e16 [MIRROR] [NO GBP] Fixes the venomous element for projectiles, invisible arrows and something off with envenomable casings. [MDB IGNORE] (#22339)
* [NO GBP] Fixes the venomous element for projectiles, invisible arrows and something off with envenomable casings. (#76565)

## About The Pull Request
See #76551. The on hit effect component was treating the `hit_limb` arg
of the projectile on_hit signals as if it were a bodypart item rather
than a string. This wasn't my fault.
Also, invisible arrows because I forgot to set up their definition of
update_icon_state() and base icon state var.
Lastly, the envenomable casing registering a signal on the wrong atom,
and the arrow bullet subtype being defined twice.

## Why It's Good For The Game
This will close #76551.

## Changelog

🆑
fix: Fixes venomous projectiles for real, and invisible arrow sprites.
/🆑

* [NO GBP] Fixes the venomous element for projectiles, invisible arrows and something off with envenomable casings.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-11 19:15:35 -04:00
SkyratBot
958709ae1c [MIRROR] Change blocked mouth message to balloon [MDB IGNORE] (#22364)
* Change blocked mouth message to balloon (#76702)

I kept missing this message in chat like a dumbass, now it's a balloon

* Change blocked mouth message to balloon

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-07-11 15:32:34 -07:00
SkyratBot
b0e55b6857 [MIRROR] Janitor balloon alerts [MDB IGNORE] (#22087)
* Janitor balloon alerts

* Skyrat edits for liquid system

---------

Co-authored-by: Lufferly <40921881+Lufferly@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-11 15:57:18 -05:00
SkyratBot
3e79fe7d0a [MIRROR] Acid balance and fixes, Xeno's no longer instakill with their acid [MDB IGNORE] (#22048)
* Acid balance and fixes, Xeno's no longer instakill with their acid (#76227)

## About The Pull Request

Acid, when applied to a turf, does not immediately apply acid to the
turfs contents, instead just doing that in the acid component.
The acid component now does not destroy things under a turf, like pipes.
Alien acid no longer instakills mobs, Fixes #69577 (Acid component now
has an option not to apply acid to mobs on a turf).
Aliens can now touch acid.

## Why It's Good For The Game

Fixes some bugs with aliens and acid.
I don't really like how the acid now does not damage mobs at all, but
that seems to be what is intended.
I don't think that acid should be going through a turfs contents in
different places, plus I like the look of it not immediately applying
the acid to them better.

## Changelog

🆑 Seven
balance: Acid on a turf no longer immediately applies acid to its
contents
fix: Acid applied on a tile will no longer damage pipes below that tile
fix: Xeno's corrosive acid no longer instakills mobs
fix: Xenos can now touch acid
/🆑

* Acid balance and fixes, Xeno's no longer instakill with their acid

---------

Co-authored-by: Lufferly <40921881+Lufferly@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-11 14:48:38 -05:00
SkyratBot
78e26c3019 [MIRROR] Makes creampies use bodypart overlays [MDB IGNORE] (#22253)
* Makes creampies use bodypart overlays

* Update creamed.dm

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-09 12:56:53 -07:00
SkyratBot
250317a033 [MIRROR] Jetpack component & Modsuit module signal clean-up & fixes [MDB IGNORE] (#22153)
* Jetpack component & Modsuit module signal clean-up & fixes (#76133)

## About The Pull Request
1. Removed the `get_mover` callback, the mover can be retrieved during
activation itself
2. Fixes #76116
the user is passed correctly during activation & deactivation same for
modsuit modules and this also fixes the same bug for
`/obj/item/organ/internal/cyberimp/chest/thrusters` as it's signal was
also not registered correctly with the user
3. Timestop module on `on_module_triggered()` accepts user as 2nd param

## Changelog

🆑
fix: jetpack modules work on mod suits again
fix: jetpack cyber implants also work
refactor: removed `get_mover` callback, user is retrieved during
activation
refactor: timestop module on `on_module_triggered()` accepts user as 2nd
param
/🆑

* Jetpack component & Modsuit module signal clean-up & fixes

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-07-09 15:44:27 -04:00
SkyratBot
381549f2f7 [MIRROR] service borg cookin fixin update [MDB IGNORE] (#22325)
* service borg cookin fixin update (#76590)

## About The Pull Request
PR done for bounty:
https://tgstation13.org/phpBB/viewtopic.php?f=5&t=33988
borgs can now turn on stoves and griddles
borg click code has been reworked a bit to be closer to base mob, you
are now able to click on stuff within reach rather than just Adjacent
(might be buggy to introduce this? hopefully not. if anything we can
testmerge this), which lets us make the apparatus work to pick up stoves
on the range and such
Adds the Codex Cibus Mechanicus as an upgrade you can research in RnD
with the other service borg ones. When you use it it shows you the
cooking menu!

![image](https://github.com/tgstation/tgstation/assets/23585223/5f881387-e0ba-4bb8-a9d6-ddc9d8fa9272)

## Why It's Good For The Game
The service borg has the tools to prepare ingredients, but it can't
actually do anything with them, which severely limits it, only being
able to do slapcrafted foods.
The apparatus not working on items that are on top of stoves/griddles
seems to be just a bug with how cyborg click code is handled.

## Changelog
🆑 Fikou
fix: service borg apparatus now works on stoves and griddles and ovens
qol: borgs can now activate stoves and griddles
add: rnd can research a cookbook for service borgs
/🆑

* service borg cookin fixin update

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-07-09 11:16:10 -07:00
SkyratBot
fcaa706706 [MIRROR] Destroys /obj/vehicle/sealed/mecha/working with a W80 nuclear warhead [MDB IGNORE] (#22110)
* Destroys /obj/vehicle/sealed/mecha/working with a W80 nuclear warhead (#76296)

## About The Pull Request

Title.

Also, fixes https://github.com/tgstation/tgstation/issues/75568 at the
request of @ TheVekter

## Why It's Good For The Game

This subtype only exists to append ore box behavior and is clearly a
relic of pre-2020 mechcode.
Keeping it around will only make it harder in the future to add new
mechs with ore box support.

## Changelog

🆑
fix: Clarke ore box now has a less confusing dump contents button.
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>

* Destroys /obj/vehicle/sealed/mecha/working with a W80 nuclear warhead

* updatepaths

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-07-04 13:35:22 +00:00
SkyratBot
a1ea7f13db [MIRROR] Replaces ammo_casing/caseless and bullet/reusable with elements. [MDB IGNORE] (#22102)
* Replaces ammo_casing/caseless and bullet/reusable with elements.

* stupid

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-07-04 13:06:52 +00:00
SkyratBot
39dedb52a0 [MIRROR] Improves jousting and gives it to more weapons [MDB IGNORE] (#22184)
* Improves jousting and gives it to more weapons (#76321)

## About The Pull Request

I was reading over components and saw one called jousting, I vividly
remember it being mentioned every so often but I've never seen it
in-game. Turns out the SINGLE case for it is when you are using a spear
on a borg. The code itself was also very over the place, making it a
little confusing to figure out what it did.

I tried cleaning the file up as much as I could, and since I wanted to
see this in-game more often, I made some player-facing changes too:

- You can now joust from any vehicle, not just borgs (Secway, ATV,
scooter, Charger holoparasite)
- Added jousting to the broom, pitchfork, captain's sabre, and energy
sword while active (ONLY esword, NOT desword).
- Added examine text to indicate this feature exists.

Extra notes:
Esword gains half the damage increase and half the knockdown chance than
other ways of jousting
Broom only gets 25% damage increase from jousting, since the broom is
already pretty strong I thought it would be better off as something used
mostly to knockdown.
Spears have to travel a longer distance than other weapons to get their
jousting benefits (since it's supposed to be a ghetto weapon)
Jousting now takes the minimum distance needed into account when
handling knockdown chance & damage dealt, so travelling 5 tiles will no
longer be 100% chance of knockdown if you need a minimum distance of 3
tiles to joust (it will instead be 40%, since you've only traveled 2
tiles in 'jousting' mode).

## Why It's Good For The Game

This is an underused component and I thought it would bring some pretty
cool interactions, especially for Holoparasite & Janitors, as a new way
to use vehicles to your advantage when it's otherwise seen as just a
slowdown.

## Changelog

🆑
balance: Jousting now works on anything you're buckled to, not just
Cyborgs.
balance: Brooms, Pitchforks, the Captain's Sabre, and Energy swords can
now be used for jousting.
balance: Spears need to travel a longer distance to joust now.
balance: Jousting's knockdown and damage now only gets stronger after
you've traveled the minimum tiles needed to joust.
/🆑

* Improves jousting and gives it to more weapons

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-07-03 17:41:21 -04:00
SkyratBot
02e36ec18e [MIRROR] Expanding the Experimental MODsuit Bepis Node with three new modules. [MDB IGNORE] (#21851)
* Expanding the Experimental MODsuit Bepis Node with three new modules. (#75801)

## About The Pull Request
So, I've had this idea to make a contribution to the Bepis feature with
some modsuit stuff. The gimmicky stuff is ok and a good way to even out
the better content since it has game of chance design it has (you can
find those disks in space anyway so...). However, the Experimental
MODsuit node feels very underwhelming right now, compared to how big
that feature is.

This PR adds three MOD modules to the Experimental MODsuit node, plus
two more:
- Magneto Charger: While the Modsuit is activated, each step the user
takes will charge the installed power cell by a tiny bit, enough to
sustain a standard modsuit of generic slow speed with only a few, easy
modules installed. It won't work in zero G, while flying, pulled by
someone else, on a conveyor belt, riding a vehicle or crawling on the
floor, though.
- Recycler: It collects (most) garbage and casings off the ground and
recycles them into material sheets that can be dispensed on an adjacent
location or storage with with Middle Mouse Button. Doesn't clean debris,
and scuffed because most trash doesn't yield material anyway.
- - It also has two subtypes, unbound from the node: one that dispenses
riot foam darts and can be found on the black market, and another that
dispenses the more innocuous foam darts, rarely found in maints.
- Shooting Assistant: A configurable module. On Stormtrooper mode, it
will give the user a faster fire rate (the double tap trait) at the cost
of accuracy. On Sharpshooter mode, it will improve the user accuracy and
make their shots ricochet against walls at least once (if the hit atom
allows that, that is, e.g. lasers don't ricochet against iron walls), at
the cost of movement speed. Both modes also prevent the user from dual
wielding guns.

To make the Stormtrooper mode stackable with the poor aim quirk and
refrain from making a new trait for the sharpshooter mode, the gun
spread code in gun.dm has also received a little refactor and cleanup.
Also, it's been tested.

## Why It's Good For The Game
The Experimental MODsuit node is quite shabby and could use something
extra to make it more appealing to MODsuit enjoyers.

Also doubles down as a small addition to the black market and maint
loot, and code cleanup, since gun code gives off some garbled vibes.

## Changelog

🆑
add: Expanded the Experimental MODsuit Bepis node with three new
modules: Magneto Charger, Recycler and Shooting Assistant.
add: Added a Riot Foam Recycler module to the black market, as well a
more innocuous version as maint loot.
/🆑

* Expanding the Experimental MODsuit Bepis Node with three new modules.

* update modular, I hate this file btw

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-07-01 14:21:47 -04:00
SkyratBot
f485737ea1 [MIRROR] Eating from floor may cause disease [MDB IGNORE] (#22151)
* Eating from floor may cause disease

* Update turf.dm

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-01 01:30:17 -07:00
SkyratBot
9ac12f0f60 [MIRROR] Maptext 2023 tweaks [NO GBP] [MDB IGNORE] (#22149)
* Maptext 2023 tweaks [NO GBP] (#76397)

## About The Pull Request

- In PR https://github.com/tgstation/tgstation/pull/76356 missed a few
bits of maptext around, such as shuttle signs and the supermatter. Small
text adjustments/fixes here.
- Large amount of feedback about the context tooltips. Increases size,
lightens default color as to not be too imposing.

🆑 LT3
qol: Context tooltip size increased
fix: Fixed remnants of old maptext code on various things
/🆑

* Maptext 2023 tweaks [NO GBP]

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-29 23:56:47 -07:00
SkyratBot
86538a8356 [MIRROR] Mind link speech displays symbols correctly [MDB IGNORE] (#22069)
* Mind link speech displays symbols correctly (#76290)

Closes #71991
Removes a call to sanitize() in mind linker code because tgui_input_text() already sanitizes input by default, symbols now display correctly

* Mind link speech displays symbols correctly

---------

Co-authored-by: cnleth <113535457+cnleth@users.noreply.github.com>
2023-06-27 20:41:25 -07:00
SkyratBot
5801897271 [MIRROR] Glass bottles with reagents can be used for crafting, empty ones will be used as tools if possible [MDB IGNORE] (#22044)
* Glass bottles with reagents can be used for crafting, empty ones will be used as tools if possible (#76259)

## About The Pull Request
Fixes #76250

The problem was a glass bottle has `tool_behaviour = rollingpin` and so
it took priority in this if condition

93d4b6d6cd/code/datums/components/crafting/crafting.dm (L125-L134)
before it could check if its a reagent container

Now the priority is inverted, if the glass bottle has reagents inside it
then it is used as a reagent container else if it is empty then it used
as a rolling pin(i.e. checks for its tool behaviours)

## Changelog
🆑
fix: glass bottles with reagents can be used for crafting, empty glass
bottles will be used as tools(e.g. empty glass bottle as rolling pin)
fix: glass bottle with welding fuel can be used for crafting improvised
shotgun shells
/🆑

* Glass bottles with reagents can be used for crafting, empty ones will be used as tools if possible

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-06-27 19:56:30 -07:00
SkyratBot
132c1d2882 [MIRROR] Changes food storage to use a right-click instead of a left-click, adds context hints [MDB IGNORE] (#21979)
* Changes food storage to use a right-click instead of a left-click, adds context hints (#76110)

What it says on the tin. Currently, if you left-click a cake or bread
with anything small enough (including a knife) you store it inside and
have to remove it to actually use it. Now it uses a right-click which
makes significantly more sense because you're almost always going to be
trying to cut the piece of food and not embedding an object into it and
left-click actions should ideally be "what you're most likely to be
doing with the object 99% of the time".

Also adds context tips for slicing, embedding, and removing embedded
items. It'll always give a prompt to remove an item even if there isn't
one, so there's no concern about it giving away that something is
inside.

* Changes food storage to use a right-click instead of a left-click, adds context hints

---------

Co-authored-by: TheVekter <TheVekter@users.noreply.github.com>
2023-06-23 16:14:52 -07:00
SkyratBot
8e3d901049 [MIRROR] [NO GBP] Patches for material container [MDB IGNORE] (#21963)
* [NO GBP] Patches for material container (#75747)

**1. Meat hook**
#75422 gave auto lathe's the ability to consume an item AND it's
content's recursively so the autolathe can display multiple messages if
it founds item's in that object content's which it will also recycle.
This might catch player's off guard as they would not have expected that
item to contain other stuff inside it so now the auto lathe(and any item
implementing material container component) will display that item name &
it's material worth being consumed.

**New Format.**
Here i inserted 3 item's
1. Shotgun
2. Foam Box Riot(full ammo inside)
3. Stack of iron

The red line indicates where one item end's and the other one begin's.
Notice how every part of the shotgun(it's bean slugs and even it's
firing pin) are consumed and the same for the ammo box(the box + 40 of
it's bullets)

**2. Tentacle Gun**
this is an abstract item
So even though the auto lathe understood that & didn't touch it, it
still tried to consume it's contents leaving behind an non functional
tentacle gun.

Now it will early return if the item is an hologram/abstract and won't
touch any of that item's content's

**3. Other Patches**
- Indestructible item's inside an item's content's are not consumed but
forced moved out
- the total material worth of the item & it's contents are calculated
and we check if there is enough space for all of them before we attempt
to insert. This is important so we don't break an object by consuming
only some of it's contents and leaving out the rest

* [NO GBP] Patches for material container

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-06-23 16:10:43 -07:00
SkyratBot
1beff3980c [MIRROR] Air Sensor are Craftable, Removed from RPD UI, Have New Linking System [MDB IGNORE] (#21964)
* Air Sensor are Craftable, Removed from RPD UI, Have New Linking System (#75869)

## About The Pull Request

**1. Craftable & Removed from RPD UI**

1. Air sensor's are now craftable
2. You can turn them on/off with hand. Even though turning off the
sensor will change it to a diffrent type[from `obj/machinery/air_sensor`
-> `obj/item/air_sensor`] it's I/O port's are sill preserved when
turning them on although you have to assign it a new name again which is
usefull if you want to change the sensor's purpose in game.
3. They can now only be deconstructed by a welding tool and should be
wrenched in place to turn them on.
4. Turned off air sensor's once unwrenched can be picked up like any
regular item
5. Air sensor's are removed from the RPD UI because they don't go with
pipes so it logically doesn't make sense to group them with pipe related
device's

Removed unused code in the process

https://github.com/tgstation/tgstation/assets/110812394/3439a0f3-9c48-43ac-8f4b-98135435ec13

**2. New ID System**
The problem with air sensor's is that each sensor is assigned a unique
ID which is then stored in `GLOB.objects_by_id_tag` list. Each sensor
name it's assigned based on the gas it's trying to sense(for naming only
even though it can detect other gases) So if 2 sensor's having the same
ID are made they will overwrite each other in this list leaving one
sensor orphaned in the world which cannot be referenced because it's
value was overwritten by a new sensor having the same ID in this list.

The Solution? Rather than having all atmos computer's look up sensor's
from this 1 global list make each computer keep track of all sensor's
it's responsible for in it's own local list[which i called
`connected_sensor's`] this way 2 sensor's can have randomly generated
names in the global `GLOB.objects_by_id_tag` list but the computer will
know what sensor to look up in this list based on the stored sensor ID's
in the `connected_sensor's` list

Basically what i am getting at is now you can make as many air sensor's
as you wish but you will know have to connect that sensor to the
computer using a multitool.
Notice in the video how i made 2 sensor's called `Supermatter Chamber
Sensor's`] and every time you try to connect an sensor which has the
same name[`Supermatter Chamber Sensor's` in this case] they will
ovewrite the old sensor in it's list as shown in the video

https://github.com/tgstation/tgstation/assets/110812394/b5283c3b-c8a1-4b94-a6a8-8ba7a0007615

**Why it's good for the game**
![Screenshot
(247)](https://github.com/tgstation/tgstation/assets/110812394/6a7eb501-4414-4f01-a6ef-3e9b70f4af06)

I agree. Also air sensor's taking up a full Tab/Section in the RPD UI
wasted a lot of UI space so that's removed now. Also making the air
sensor's wrenchable and pickable item's was also requested in
https://github.com/tgstation/tgstation/pull/72019#issuecomment-1355499873
so you relate them to device's like meter's

Another huge issue was that the number of air sensor's you can make in
the world was limited because each sensor in the world must have a
unique ID but that's finally fixed now so yeah make as many sensor's as
you want.

## Changelog
🆑
add: air sensor's are craftable
refactor: air sensor's can now be turned off by hand and can only be
deconstructed by a welding tool
refactor: removed `Params()` proc
qol: unwrenched air sensors can be picked up & recycled like regular
item's
del: air sensor are removed from the RPD UI
qol: air sensor's are no longer restricted by their unique ID's which
mean you can craft as many air sensors as you want.
/🆑

---------

Co-authored-by: Time-Green <timkoster1@ hotmail.com>

* Air Sensor are Craftable, Removed from RPD UI, Have New Linking System

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
2023-06-23 16:06:45 -07:00
SkyratBot
8f2c771b5f [MIRROR] Autolathe, protolathe, mech fab and comp printer now use defines for matter bins values. Also some production ui do. [MDB IGNORE] (#21953)
* Autolathe, protolathe, mech fab and comp printer now use defines for matter bins values. Also some production ui do. (#76020)

Changed hardcoded matter bins values to use defined
`SHEET_MATERIAL_AMOUNT` for following stuff: autolathe, protolathe, mech
fabricator and component printer.

`Material Access Bar` and `MaterialIcon` used for protolathes, circuit
printers and etc. now also use defined `SHEET_MATERIAL_AMOUNT`, via
static ui data, to prevent same issues in future.

Also changed some notes in /// parts just because why not.

* Autolathe, protolathe, mech fab and comp printer now use defines for matter bins values. Also some production ui do.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-06-23 15:34:52 -07:00
SkyratBot
85203fcc2f [MIRROR] Fixes and adds an element for TC reimbursement. [MDB IGNORE] (#21950)
* Fixes and adds an element for TC reimbursement. (#75816)

## About The Pull Request

Fixed being unable to reimburse syndicate spawners via uplinks. This
includes nukie reinforcements, cyborgs, and holoparasite injectors.

Turned TC reimbursement into a bespoke element.

Tuned demon's blood message when there's no ghosts to pick to be a
little more understandable and sensible.

## Why It's Good For The Game

> Fixed being unable to reimburse syndicate spawners via uplinks. This
includes nukie reinforcements, cyborgs, and holoparasite injectors.

This bug was, to my knowledge, introduced with bubby traitors when
uplinks were turned into components, as the code no longer supported it
due to what I presume to be an oversight, since there's plenty of
references to it ingame still.

> Turned TC reimbursement into a bespoke element.

Seemed like the best way of doing this. Since for some godforsaken
reason attackby() is one-way only (no attackto() ), the uplink component
sends a signal to any item hit with it instead.

## Changelog

🆑
fix: Fixed being unable to reimburse syndicate spawners via uplinks.
This includes nukie reinforcements, cyborgs, and holoparasite injectors.
refactor: Turned TC reimbursement into a bespoke element.
spellcheck: Tuned demon's blood message when there's no ghosts to pick
to be a little more understandable and sensible.
/🆑

* Fixes and adds an element for TC reimbursement.

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-06-23 15:33:48 -07:00
SkyratBot
60e1129616 [MIRROR] Fix cyborg autofire [MDB IGNORE] (#22005)
* Fix cyborg autofire (#76240)

## About The Pull Request

Nothing implies this has to be an `iscarbon` check anywhere

Closes #76211

## Changelog

🆑 Melbert
fix: The Syndicate Assault Cyborg can autofire their LMG
/🆑

* Fix cyborg autofire

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-23 15:51:34 +01:00