Commit Graph

2683 Commits

Author SHA1 Message Date
SkyratBot
6c978308c7 [MIRROR] Completing experiments after their associated nodes have been researched gives back a partial refund of the discount lost [MDB IGNORE] (#19743)
* Completing experiments after their associated nodes have been researched gives back a partial refund of the discount lost (#73814)

## About The Pull Request

So we're like simultaneously moving two vague directions with research.
One being "experisci grants discounts for prohibitively expensive nodes
so you want to do the experiments to discount them" and the other being
"Let's give Heads of Staff a way to research anything they want without
any communication to the research department, including the very
expensive nodes that scientists may be working on"

You already see the issue, right? You can't have your cake and eat it
too.

It sucks for scientists to be working on a complex experiment like
weapons tech for that huge 90% discount only for the HoS to stumble onto
the bridge and research it anyways. Your time is wasted and RND is
slowed down massively.

We can do something to assuage that.

This PR makes it so completing an experiment which discounts already
completed nodes will refund a partial amount of the discount that
would've applied.

For example, researching industrial engineering without scanning the
iron toilets will refund ~5000 points.

This can only apply once per experiment, so if an experiment discounts
multiple technologies, they will only get a refund based on the first
technology researched.

## Why It's Good For The Game

This accomplishes the following:

- Expensive research nodes with difficult experiments remain expensive
without completing the experiments. If no one does the experiment, they
act the same as before.
- Expensive research nodes with very easy experiments (but time
consuming) no longer put RND on a time crunch to beat the itchy trigger
finger of the Heads of Staff. Stuff like scanning lathes allow the
scientists to work more at their own pace: they can talk to people or
maybe stop at the bar or kitchen between departments without feeling
pressure to get it done urgently.
- Scientists are able to complete experiments which previously were no
longer deemed relevant if they need a point injection. Experiments left
behind are no longer completely useless bricks. Maybe even gives
latejoin scientists something to do.
- Scientists mid experiment can still complete it to not feel like their
time is wasted.

Overall I think this has many benefits to the current science system
where many have complaints.

## Changelog

🆑 Melbert
qol: Completing an experiment which discounts a researched tech node
will give a partial refund of the discount lost. For example,
researching the industrial engineering research without scanning iron
toilets will refund ~5000 points if you complete it afterwards. This
only applies once per experiment, so experiments which discount multiple
nodes only refund the first researched.
/🆑

---------

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

* Completing experiments after their associated nodes have been researched gives back a partial refund of the discount lost

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-09 20:08:46 +00:00
SkyratBot
6dc0ad75f8 [MIRROR] A worn item which has its color changed (such as by a slime potion) with now have its color change reflected on mobs. [MDB IGNORE] (#19544)
* A worn item which has its color changed (such as by a slime potion) with now have its color change reflected on mobs. (#73627)

## About The Pull Request

If I'm wearing an outfit and use a slime fireproof potion on it at
present it wont become blue until taking it off and putting it back on
again, this PR makes it so it changes immediately. Also means if an
admin VVs the color value of a worn item its icon worn color will update
to reflect this change immediately.
## Why It's Good For The Game

Bugfix!
## Changelog
🆑
fix: Any worn item that has its color changed will now have its color
change reflected on the item's worn icon immediately.
/🆑

* A worn item which has its color changed (such as by a slime potion) with now have its color change reflected on mobs.

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-02-26 15:24:34 -05:00
SkyratBot
9c809bd024 [MIRROR] Fixes overloading and deconstructing of the master RND server not affecting research rate [MDB IGNORE] (#19493)
* Fixes overloading and deconstructing of the master RND server not affecting research rate (#73569)

## About The Pull Request

Only a traitor removing the HDD would affect the income modifier of the
stored research web.

Updated it so `on_deconstruction` with an HDD present or a ninja
overloading with an HDD preset will also negatively affect the income
modifier.

## Why It's Good For The Game

Fixes #73338

Round impact!

## Changelog

🆑 Melbert
fix: Deconstructing (or overloading) the Master RND server with an HDD
preset will correctly half research rate
/🆑

* Fixes overloading and deconstructing of the master RND server not affecting research rate

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-02-22 14:39:30 -08:00
SkyratBot
01584fbe92 [MIRROR] Fixes NtosNet Downloader & App themes [MDB IGNORE] (#19433)
* Fixes NtosNet Downloader & App themes (#73500)

## About The Pull Request

NtOS' downloading app is the only application where PC device theme is
actually used by the app directly, instead of handled by NtOS Window. I
forgot about this, and removed it from the data, breaking the TGUI page.

Also two edits;
- NtosWindow now takes their theme directly from PC_device_theme, this
means we're not relying anymore on apps to individually give the theme
they want to have, and tablets will get alerts of downloading illegal
programs if they are on any theme but the syndicate one (instead of not
getting the message if theyre on any but the nt one).
- Removes bad uses of ``as anything`` on stored files, because it holds
more than just programs (like ordnance data).

## Why It's Good For The Game

the NtOS app now works again, sorry for the issue.

Closes https://github.com/tgstation/tgstation/issues/73493
Closes https://github.com/tgstation/tgstation/issues/73507

## Changelog

🆑
fix: NtOS program downloader now works again, and will now properly
alert you of downloading illegal ROMs if you change your theme to
anything that isn't Syndicate.
fix: NtOS themes are now recognized by all windows.
/🆑

* Fixes NtosNet Downloader & App themes

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-02-18 22:17:52 -08:00
SkyratBot
9e981753ca [MIRROR] Reworked PDA menu & NtOS themes [MDB IGNORE] (#19390)
* Reworked PDA menu & NtOS themes (#73070)

## About The Pull Request

This is a port/rework of
https://github.com/yogstation13/Yogstation/pull/15735 - I changed a lot
of how it acted (some themes are locked behind maintenance apps).

The original author allowed this port to happen, and I really liked how
it looked there so I'd like to add it here.

### Applications

Removes the hardware configurator application, as all it did was show
you your space and battery now that all hardware was removed. These are
things your PC does by default, so it was just a waste of space.
Adds a Theme manager application instead, which allows you to change
your PDA's theme at will.
Adds a new Maintenance application that will give a new theme, however
it will also increase the size of the theme manager app itself as it's
bloatware.

### Menu

There's now a bar at the top of the menu showing 'special' tablet apps
which, for one reason or another, should stand out from the rest of the
apps. Currently this is PDA messenger and the Theme manager

Flashlight and Flashlight color is now only an icon, and is shown on the
same line as Updating you ID

https://cdn.discordapp.com/attachments/961874788706574386/1069621173693972551/2023-01-30_09-10-52.mov

![image](https://user-images.githubusercontent.com/53777086/215501361-5ea3086e-2ff5-4ab1-bde4-8a3d14014fce.png)

### Themes

Adds a lot of themes to choose from, although SOME are hidden behind
Maintenance applications, which will give you a random theme. These are
bloatware however, so they come with some extra cost to the app's
required space storage.

Themes are now supported on ALL APPLICATIONS! If you have a computer
theme, you will have that theme in EVERY app you enter, rather than just
a select few.
ALSO also, emagging the tablet will automatically set & unlock the
Syndicate theme, which makes your PDA obvious but you can disguise it if
you wish through just re-painting it to something else.

https://cdn.discordapp.com/attachments/828923843829432340/1069565383155122266/2023-01-30_05-29-53.mov

### Preferences

This also adds a pref for theme, reworking the ringtone code to work
with it as well. I also removed 2 entirely unused PDA prefs just 'cause.

Screenshot not up-to-date, they now have proper names.

![image](https://user-images.githubusercontent.com/53777086/215463669-0fe9951a-71f8-4b71-a97d-b79b5a2f945a.png)

### Other stuff

Made defines for device_themes
Added support for special app-side checks to download files
Fixed programs downloading themselves TWICE because defines all had the
same definition
Removes the Chemistry computer disk as it was empty due to chemistry
app's removal
Removes the 'run_emag' proc, since apps can directly refer to the
computer to check for emag status instead.
Moved over and added better documentation on data computer files, and
moved the ordnance ones to the same file as the others.

## Why It's Good For The Game

It makes PDAs a lot more customizable while adding more features to
maintenance applications. I think the themes look cool and it fits with
PDAs being "personal" anyways.

I also explained most of my other arguments in the about section, such
as the hardware configuration application.

## Changelog

🆑 Chubbygummibear & JohnFulpWillard
add: A ton of new NtOS themes, which are accessible by the new Themify
application that comes with all PCs.
add: Emagging a PC now defaults it to the Syndicate option (and adds it
to go back to it if you wish)
add: There's a new maintenance app that gives you rarer themes
qol: The NtOS Main menu was moved around, added "header" applications
that are shown where the Flashlight is, such as your Theme manager and
PDA messenger.
code: Made defines for device_themes
code: Added support for special app-side checks to download files
code: Removes the 'run_emag' proc, since apps can directly refer to the
computer to check for emag status instead.
fix: Programs no longer download twice.
del: Removes the Chemistry computer disk as it was empty due to
chemistry app's removal
/🆑

---------

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

* Reworked PDA menu & NtOS themes

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-02-17 00:35:34 -08:00
SkyratBot
668bbcac4a [MIRROR] Adds the Ectoplasmic Outburst, a rare ghost-centric anomaly event [MDB IGNORE] (#19292)
* Adds the Ectoplasmic Outburst, a rare ghost-centric anomaly event (#73024)

## About The Pull Request

This PR description might be a bit rushed because I accidentally
submitted the PR and want to bang out a quick explanation of what this
is before people start asking questions.

Adds a new, rare, ghost-themed anomaly event -- The Ectoplasmic
Outburst.

![Animation](https://user-images.githubusercontent.com/28870487/215292488-cc5ce589-39be-490d-bd80-92a2ed6e948b.gif)

This event increases in power as more ghosts orbit it, with three
important thresholds to meet.

If 10% or more of all active observers are orbiting the anomaly, an
effect will occur in the nearby area akin to the revenant's defile
spell, damaging flooring, windows, and making a mess.

If 35% or more are orbiting the anomaly, nearby objects in the effect
radius have a chance to become haunted, and will fling themselves at
anyone nearby for a bit. Spooky!

Now, at 50% or more participation, things get serious. Ghosts orbiting
the anomaly will be polled to be brought back into the world for a brief
period as a vengeful spirit, anchored to a SUPER spooky ghost portal.
The portal closes after two minutes (alternatively, smash it with a
toolbox) and deletes all of the ghosts it spawned. Vengeful spirits are
mostly just meant to smash stuff and be a nuisance while they can. It's
a wonderful opportunity to let deadchat desalinate a little.

![spooky
ghosts](https://user-images.githubusercontent.com/28870487/215293550-f7bbede2-cfa0-49b1-87fe-f38ee45d1df8.gif)

Oh, also, the anomaly is deadchat controlled. With enough ghosts, you
could theoretically outrun anyone trying to neutralize it!

The associated reactive armor has an effect similar to the anomaly,
haunting nearby objects for a time when the wearer is struck. Not
particularly outstanding, but it can introduce an element of chaos into
a fight that your opponent might not expect.

## Why It's Good For The Game

Anomaly events are great for ghosts. Why not make one tailored just for
them!

Gives admins something to spawn when a wizard has killed half of the
crew but it's not quiiiite time for an ERT.

It's a bit of a silly event with a novelty reward, but I think it's rare
enough not to be a huge issue.

## Changelog

🆑 Rhials
add: Ectoplasmic Outburst anomaly event
add: Reactive Ectoplasm Armor
/🆑

* Adds the Ectoplasmic Outburst, a rare ghost-centric anomaly event

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-12 16:44:26 -08:00
lessthanthree
c7e7cb494f [MANUAL MIRROR] Lazarus Injected mobs don't fight each other (#19072)
* Dominate & Lazarus Inject basic mobs. Lazarus Injected mobs don't fight each other. (#72440)

Fixes #72404
The Lazarus Injector doesn't currently work on basic mobs, but should.

Problem:
The EMPed state of the Lazarus Injector is intended to make a revived
mob hostile to everyone except you, including other mobs you have
revived wtih an EMPed Lazarus Injector.
This is trivial to achieve for Simple Mobs which essentially all share
the same AI, but I could not think of a single workable solution for
Basic Mobs which don't, or at least any which didn't come with a tedious
requirement to closely consider this niche item when programming any
additional AI.

Solution:
Change the default behaviour of the Lazarus Injector so this is not a
problem.
If all it does it make the mob loyal to you _and_ friendly to other mobs
which are loyal to you, then it's pretty easy because we can just use
the existing faction flags.

This is unambiguously a buff to using the item for nefarious purposes as
now if you revive four ice drakes and fulton them onto the station they
won't kill each other until only one is left, but is the only workable
solution I could really think of.
A lot of the very dangerous mining fauna can't be dragged so
transporting your army to the station still poses a question.

The alternate solution was just to replace the AI controller of any
emp-revived basic mob with a "zombie" AI controller, but this has the
problem that
A- It would now make things like cows and dogs into hostile creatures
when they previously weren't.
B- It loses any interesting behaviour the mob previously had and for
cases like Bileworms doesn't even make any sense (they'd try to walk and
just get stuck in place).
This ultimately leads to needing to make bespoke versions for various
mobs, which doesn't seem desirable from a maintainability standpoint.

As a side note it's still not a great idea to revive Bileworms _anyway_
as, their ability to move is tied to their ability to attack so once
they don't have a target they will just kind of sit there and if they
_do_ get a target their attempts to help you fight are difficult to
distinguish from attempts to kill you... but at least being able to
revive them makes it easier to make one sapient if you really want to
trap a player's mind inside a body which is incapable of leaving
lavaland.

Additional edit:
At Fikou's suggestion I've also added a sentience comparison proc to
`mob/living` and removed some code duplication which dealt with this
problem in the sentience/mind transfer potions, as well as added it to
the Dominate spell.

This device is meant to revive mobs and it shouldn't be required for
players to memorise an arbitrary list of which mobs it does and doesn't
work on.
Especially as the goal is eventually that all simple mobs should be
basic mobs.
This way of working is more intuitive, even if it is also stronger. I
was surprised when I used EMPed injectors and my "new minions" just
killed each other.

🆑
fix: You can now revive 'basic mobs' with a Lazarus Injector, such as
dogs, cows, axolotls, or carp.
fix: The same category of mobs can also now be effected by the Runic
Golem Dominate spell.
fix: Basic Mobs will switch target if they can no longer attack their
current target; meaning that if you become a Bileworm's friend it will
stop attacking you.
balance: Mobs injected with the Lazarus Injector while it is EMPed will
no longer attack other mobs revived by EMPed Lazarus Injectors.
/🆑

* Update code/modules/research/xenobiology/xenobiology.dm

* Update code/modules/research/xenobiology/xenobiology.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-10 20:22:23 +00:00
Bloop
ab6db14578 [SEMI-MODULAR] Fixed Vox clowns not spawning with their job masks, added some job-related vox gas masks with new filters, and a misc balaclava fix (#18614)
* Vox clowns and mimes now spawn with their masks, added gas mask filters for vox

Fixed vox clowns and mimes not spawning with their job-related masks.

Added said job related masks.

* Moved the gas masks out from breath and into gasmask.dm

* Fixes unused proc from tg that is used on Skyrat

give_important_for_life() proc is a cleaner way to do the vox outfit-giving but I noticed it was not working. The proc itself was bugged, fixed it.

* Update species.dm

* Revert "Update species.dm"

This reverts commit 5b737965f573258211dc219fb6399284cdee8749.

* Revert "Fixes unused proc from tg that is used on Skyrat"

This reverts commit 3d8219a347cee0c17e99d4de32f5ebb3d70585cb.

* Fixes give_important_for_life() proc

give_important_for_life() proc is a cleaner way to do the vox outfit-giving but I noticed it was not working. The proc itself was bugged, fixed it.

* revert skyrat edit, wait for upstream PR to merge

* Fixes potential issue with null jobs, handle vox outfits properly for 'other vox'

* Removed gas filtering flags on the clown and mime masks

* Fixes a balaclava that made you go bald

* Created missing sprites for the alternate versions

Now you can change the style with the radial menu

* ocd edit

* No longer needed as it is handled within equip

* Merge conflict update..

* No longer needed after the update to equipOutfit

Opening internals in hand slots is now done automatically there #19054
2023-02-10 14:27:57 +00:00
Pinta
75692d71e6 [MODULAR] Replacces the NIFSoft Vendor with a PDA app (#18955)
* start

* It's now a PDA app

* Update nifsoft_catalog.dm

* nice

* 🦀

* NIF GHOST BOX NIF GHOST BOX

* price updates

* whoops

* Update modular_skyrat/modules/modular_implants/code/nifs.dm

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Update modular_skyrat/modules/modular_implants/code/nifs.dm

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Update nifsoft_catalog.dm

* a

* Update wardrobes.dm

* Update wardrobes.dm

* Update nifsoft_catalog.dm

* Update NtosNifsoftCatalog.js

* Update modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update wardrobes.dm

* Update nifsoft_catalog.dm

* Update wardrobes.dm

---------

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-02-08 02:31:00 +00:00
SkyratBot
4e56079d86 [MIRROR] Do not alert admins when an inert BoH is made [MDB IGNORE] (#19176)
* Do not alert admins when an inert BoH is made (#73185)

## About The Pull Request
Removes the `dangerous_construction` variable that was only used by the
BoH, as well as the admin message sent when an inert BoH was printed.

## Why It's Good For The Game
Since the bag of holding changes, admins don't need to know when an
inert BoH is printed.

## Changelog

🆑 Tattle
admin: Admins are no longer alerted when an inert BoH is printed
/🆑

---------

Co-authored-by: tattle <article.disaster@ gmail.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>

* Do not alert admins when an inert BoH is made

* Update bluespace_design.dm

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-05 12:48:58 +00:00
SkyratBot
bdd6e2e477 [MIRROR] Renames Datum Parts above tier 1 accordingly to their tier. [MDB IGNORE] (#18771)
* Renames Datum Parts above tier 1 accordingly to their tier.

* Makes it so all of our machine also use the datum stock parts, because that's also important

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-03 16:59:29 -05:00
SkyratBot
ebe38543ff [MIRROR] Adds nutriment factor to liquid gibs. [MDB IGNORE] (#19052)
* Adds nutriment factor to liquid gibs. (#73033)

## About The Pull Request

Over the years I've heard quite a few lizard players scratch their heads
in confusion due to the lack of gibs filling you up. I gave it a fairly
low value of 2 so people don't end up trying to power game it.

## Why It's Good For The Game

Adding an alternative use to gibs is always nice, at the moment it's
mostly just used for soap and cytology (Which barely anyone does.)

## Changelog

🆑
balance: Gibs now provide a small amount of nutriment.
/🆑

* Fixes the modular uses of liquid gibs

* Fixes an error that somehow slipped through.

---------

Co-authored-by: carshalash <carshalash@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-03 16:59:09 -05:00
SkyratBot
d6f1a76dea [MIRROR] Don't initialize stack components inside machines [MDB IGNORE] (#19043)
Don't initialize stack components inside machines (#72863)

## About The Pull Request

An attempt at the
[Initiative](https://github.com/tgstation/dev-cycles-initiative/issues/29)
all types/subtypes of `obj/item/stack` no longer exist inside any
machine. Only during deconstruction is the stack created from the
circuit boards requested components.

Also moved the component printer & module duplicator circuitboards into
`machine_circuitboards.dm` so they all are in one place

I was unable to do this for circuitboards because that still needs to
exist so we can use `apply_default_parts()` on the machine. I tried to
do the whole datum circuitboard approach just like with stock parts but
i'm unsure about it so maybe next time

## Changelog
🆑
refactor: stack components no longer exist inside a machine's
component_parts
refactor: move component printer & module duplicator circuitboards into
machine_circuitboards.dm
/🆑

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-02-03 15:26:01 -05:00
SkyratBot
cc9236a402 [MIRROR] Xenobiology regenerative sepia crossbreed usage's description is corrected [MDB IGNORE] (#19125)
* Xenobiology regenerative sepia crossbreed usage's description is corrected (#73143)

Changes the description of the "regenerative sepia crossbreed" to tell
what it actually does : Fully heal, then "déjà-vu" on the position it
was used.

* Xenobiology regenerative sepia crossbreed usage's description is corrected

---------

Co-authored-by: Tristrian <Tiago.A.C.9@hotmail.com>
2023-02-03 15:59:55 +00:00
OrionTheFox
dab6937942 [MANUAL MIRROR] Crafting light switches, request consoles, telescreens, and ticket machines (#19111)
Crafting light switches, request consoles, telescreens, and ticket machines (#72859)

## About The Pull Request
Breaking down #72371 because it's... unreasonably large.
So this PR adds recipes for light switches, request consoles,
telescreens, and ticket machines. Ticket machine frame by Kryson.

You can't print all of the telescreens, like the head of staff ones, but
the general department ones can be printed in their respective
departments.

## Why It's Good For The Game
Wallening compliance, and more of me on my shit breaking down long
files.

## Changelog
🆑 Tattle, Kryson
qol: light switches, request consoles, telescreens, and ticket machines
can now all be printed from lathes
/🆑

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@gmail.com>
2023-02-02 16:22:12 +00:00
SkyratBot
e964d26445 [MIRROR] Clarifies that TRAC bullets are not teleporter compatible [MDB IGNORE] (#19116)
* Clarifies that TRAC bullets are not teleporter compatible (#73141)

## About The Pull Request

The detective's TRAC bullets embeds tracking implants into people. This
implants works similarly to the injectable tracking implant, such as
with the Prisoner Console or the Bluespace Locator. However, it has
`allow_teleport` set to false, preventing it from being used on the
teleporter. This has not been communicated in game, unless if you take
out the implant from whoever you shot, and stuck it inside the implanter
pad to read its in detail description.

This PR updates the ammo box and the design datum's description, to make
this clearer.

## Why It's Good For The Game

Closes #73121 , if a future detective examines the box, they will know
not to walk into the teleporter room to set up an ambush.

## Changelog

🆑
spellcheck: Clarifies that TRAC bullets are not teleporter compatible
/🆑

* Clarifies that TRAC bullets are not teleporter compatible

---------

Co-authored-by: Profakos <profakos@gmail.com>
2023-02-02 16:14:00 +00:00
SkyratBot
0586d4c294 [MIRROR] [NO GBP] Lazy Template Cordoning | Double Runtime Fix [MDB IGNORE] (#19042)
[NO GBP] Lazy Template Cordoning | Double Runtime Fix (#72709)

## About The Pull Request

Adds automatic cordoning to block reservations.
Also fixes an issue where ChangeTurf would cause SSicon_smoothing to
throw runtimes by calling QUEUE_SMOOTH regardless of initialization
completion

## Why It's Good For The Game

## Changelog

---------

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-02-02 16:11:52 +00:00
SkyratBot
8f2f935f70 [MIRROR] Adds Axolotls to List of Cytology Creatures [MDB IGNORE] (#19058)
Adds Axolotls to List of Cytology Creatures (#72924)

## About The Pull Request
Adds axolotls to list of cytology creatures. Edits the name of the cells
for frogs by changing to "anura amphibian cells" and for axolotls,
"caudata amphibian cells." These mean both "frog" and "salamander"
amphibian cells respectively. Also makes axolotls swabbable, adds their
cell lines to fern's list, and they are now distinguishable from the
frog's reagent lists.
## Why It's Good For The Game
Adding more thing to cytology is always good. Frogs could be grown but
not axolotls despite them coming from the same place and are amphibians.
Adds more ways to get axolotls and another reason why you should do
cytology.

Reinforces the PR
([https://github.com/tgstation/tgstation/pull/72922](url)) I added for
amphibian cytology.
## Changelog
🆑
add: Axolotl lovers rejoice! I added axolotls to cytology and as such
are now swabbable.
add: Frog cells are now named "anura amphibian cells." This literally
means "frog amphibian cells."
add: Axolotl are "caudata amphibian cells." This literally means
"salamander amphibian cells."
/🆑

---------

Co-authored-by: ophaq <44999764+ophaq@users.noreply.github.com>
Co-authored-by: kawoppi <94711066+kawoppi@users.noreply.github.com>
2023-01-31 13:50:46 +00:00
SkyratBot
ce40d90888 [MIRROR] Add clown firing pin to techweb [MDB IGNORE] (#19013)
Add clown firing pin to techweb (#72930)

## About The Pull Request
This adds the clown firing pin to the `Clown Technology` node.

## Why It's Good For The Game

Clown technode should have all the funny clown items. The firing pin is
something you get from cargo, but I think it's okay to have it as a
techweb item since it requires `bananium` which is one of the rarest
ores in the game.

## Changelog
🆑
qol: Add clown firing pin to techweb
/🆑

Co-authored-by: Tim <timothymtorres@gmail.com>
2023-01-31 02:14:38 +00:00
SkyratBot
b652076529 [MIRROR] Add mining scanners to techweb [MDB IGNORE] (#19010)
Add mining scanners to techweb (#72931)

## About The Pull Request
This adds basic mining scanners to the `Mining Technology` node

## Why It's Good For The Game

A mining scanner is a basic tool, much like mesons or a bag.

It should be available to any person who wishes to mine for ore. There
are a limited number of them on the station that can run out and this is
a good way to encourage more people to mine since it's apart of the
basic kit.

## Changelog
🆑
qol: Add mining scanners to techweb
/🆑

Co-authored-by: Tim <timothymtorres@gmail.com>
2023-01-31 02:13:55 +00:00
SkyratBot
7f87f5067d [MIRROR] Adds the universal scanner to lathes [MDB IGNORE] (#19044)
Adds the universal scanner to lathes (#73006)

## About The Pull Request
Adds the basic tool back to autolathes and cargo protolathe
This was in the game before #70314 so I think it's a fix more than an
addition, but whatever
## Why It's Good For The Game
Sometimes I like to sell things from custom vendors and I don't want to
have to hunt down a roundstart cargonian just to get a price tagger.
## Changelog
🆑
add: You can print universal scanners (export scanners, price taggers,
sales taggers) from the lathe again
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2023-01-31 02:11:18 +00:00
SkyratBot
3ec8063b1e [MIRROR] Checks if a machine has no research before connecting techweb [MDB IGNORE] (#19032)
Checks if a machine has no research before connecting techweb (#72944)

## About The Pull Request

Currently all machines, if the config to not have a techweb link is on,
will set their node to science even if they were meant to be connected
to another (like through subtypes). This fixes that by checking to
ensure they don't have a techweb connected already before giving them a
new one.

Also as a minor fix, RD consoles will now properly add themselves to the
list of accessing RD consoles if they aren't linking to the default.
This list currently does nothing but I can see good uses of it in the
future.

## Why It's Good For The Game

Fixes an error that was found on a downstream, it's a worthwhile fix
that thankfully was caught this early.

## Changelog

Nothing player-facing.

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-01-31 02:07:05 +00:00
SkyratBot
3a2dc61acb [MIRROR] Add advanced fire extinguisher to techweb [MDB IGNORE] (#19011)
Add advanced fire extinguisher to techweb (#72933)

## About The Pull Request
This adds the advanced fire extinguisher to the `Experimental Tools`
node.

## Why It's Good For The Game

There are several advanced engineering tools in this node. This is an
item that is considered a better version of a regular fire extinguisher
for atmos techs. It makes sense to put this with the other upgraded
tools in techweb, since ya know, it's technically an advanced version.
It does spawn empty, so it needs to be refilled with a foam tank
dispenser.

## Changelog
🆑
qol: Add advanced fire extinguisher to techweb
/🆑

Co-authored-by: Tim <timothymtorres@gmail.com>
2023-01-29 02:13:15 +00:00
SkyratBot
69bd792a4c [MIRROR] Mint can gib obese people again [MDB IGNORE] (#18987)
Mint can gib obese people again (#72970)

## About The Pull Request

Changes minttoxin(a toxin) to mintextract(a food).

## Why It's Good For The Game

Fixes https://github.com/tgstation/tgstation/issues/72969

The chef's mint is intended to gib fat people. Due to
https://github.com/tgstation/tgstation/pull/70764, liver functionality
was reworked so that instead of being purged rapidly, toxin's in a mobs
system with 3 units or less have no effect. Since the chef's mint only
has 2 units of mint toxin, it's intended functionality is impossible
under normal circumstances.

By changing the reagent type from toxin to consumable, it restores the
ability to gib.

## Changelog

🆑
fix: Mint Toxin(a toxin) has been changed to Mint Extract(a food). The
chef's mint can once again gib, fatties beware.
/🆑

Co-authored-by: the-orange-cow <76538214+the-orange-cow@users.noreply.github.com>
2023-01-28 20:17:09 +00:00
Funce
60bfb76832 [MIRROR] Dynamic Human Icon Generation For Simple/Basic Mobs (& Cardboard Cutouts) [MDB IGNORE] (#18884)
* Dynamic Human Icon Generation For Simple/Basic Mobs (& Cardboard Cutouts) (#72517)

revive of #68760
this time a proc, not an element
this time supports cardboard cutouts
this time supports mob corpses

![image](https://user-images.githubusercontent.com/23585223/211064291-81070650-189f-4afa-8116-81b687e3ea35.png)

prevents these icons ever being outdated, they'll always look what they
are supposed to, saves spriting work

🆑 Fikou, a hood by Viro
refactor: humanoid mobs and cardboard cutouts automatically generate
their sprites, they no longer will be outdated
/🆑

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

* Modular!

* Fix signal override merge skew (#72882)

Caused by https://github.com/tgstation/tgstation/pull/72517, with
https://github.com/tgstation/tgstation/pull/72561 raising an error that
was being hidden before

This changes equip logic somewhat so that set_wearer was being called
twice.

I don't think this should be being run in visualsOnly at all, as it does
a ton of stuff like registering signals, updating UI, etc etc etc. Don't
have time to investigate further.

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-01-27 13:56:00 -05:00
SkyratBot
406b6870bd [MIRROR] adds atmospheric gloves, small resprite of firefighter gear, repaths stupid glove paths [MDB IGNORE] (#18785)
* adds atmospheric gloves, small resprite of firefighter gear, repaths stupid glove paths (#72736)

repaths a lot of gloves off /color because they were incredibly stupid
firefighter gear has gotten an update (it doesnt cover hands anymore
though, you need something else)
firefighter helmets no longer hide your mask or glasses

![image](https://user-images.githubusercontent.com/23585223/212542599-c004d0e4-c141-40b4-a1bb-c838f9893c4b.png)
fixed engine goggles starting with darkness vision
to the atmos lockers adds atmospheric gloves, a pair of thick (chunky
fingers) gloves that are fireproof and fire protective, slightly shock
resistant and let you fireman carry people faster.
atmospheric firefighter helmets now are a subtype of welding hardhats,
you can enable a welding visor.
welding hardhats change mode with right click instead of altclick

im not a good spriter but i think this resprite makes them fit nicer
with other engi equipment
lets me firefighter rp

🆑
add: Atmospheric Gloves, thick gloves that are fully fireproof and fire
protective and let you fireman carry people faster.
fix: fixes engine goggles starting with darkness vision
qol: firefighter helmets can now enable a welding visor
qol: welding hardhats change mode with right click instead of altclick
balance: firesuits no longer protect your hands
/🆑

* Makes shit compile

* Updates the digi and snouted stuff to match the new sprites (thanks Halcyon!)

* Fixes a whole ton more issues that popped up

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-27 12:15:17 -05:00
SkyratBot
1d222a8cb1 [MIRROR] Add shovel to cargo lathe [MDB IGNORE] (#18961)
Add shovel to cargo lathe (#72937)

## About The Pull Request
This adds the shovel to the cargo lathe. It can now be printed from
autolathe, service lathe, or cargo lathe.

## Why It's Good For The Game
The shovel is a basic mining item that spawns in a few places. Mainly it
spawns in mining areas, but it also spawns in some gardens. It would be
a good idea to add it to the cargo lathe for consistency.

## Changelog
🆑
qol: Add shovel to cargo lathe
/🆑

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-01-26 16:44:43 -05:00
SkyratBot
3954fd1a94 [MIRROR] Adds the 2 new components to the techweb [MDB IGNORE] (#18953)
Adds the 2 new components to the techweb (#72910)

## About The Pull Request

Adds the 2 new components I made in my prior PR to the basic circuit
research

also fix an issue with associative pick list

## Why It's Good For The Game

 Being able to print them would be usefull

Reason I didn't notice was properly since I ran on debug station and it
never crossed my mind that they where research thingy

## Changelog
🆑
fix: You can print the new list pick and associative list pick
components
fix: Associative list pick works as intended now
/🆑

Co-authored-by: Autisem <36102060+Autisem@users.noreply.github.com>
2023-01-26 14:29:38 -05:00
Pinta
ae198af4d9 [MOSTLY MODULAR] NIFs (#18349)
* Revert "Merge remote-tracking branch 'upstream/master' into NIFs"

This reverts commit c2aea213fd400f9d6d12d955340cb0e7d2f9c36f, reversing
changes made to 1bb613b64a603c280abec40d9c82fde69248b196.

* Revert "Revert "Merge remote-tracking branch 'upstream/master' into NIFs""

This reverts commit 10a6f906f70857cfffd9ddef7b609fecc21da902.

* we don't need this (for right now)

* Update nifsoft_shop.dm

* new nif models

* Update nif_implants.dm

* we now have items

* nice

* logging and removers

* Update nifs.dm

* nif repair surgery

* death durability loss and EMPs

* more messages and NIF TGUI fix

* polish

* debug NIF and soulcatcher polish

* new phone action sprite

* NIFs for ghost roles

* Better EMP

* this doesn't really have a good reason to be here.

* lore

* Update modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm

Co-authored-by: Nerevar <12636964+Nerev4r@users.noreply.github.com>

* Update modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm

Co-authored-by: Nerevar <12636964+Nerev4r@users.noreply.github.com>

* Update code/controllers/subsystem/ticker.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update nif_implants.dm

* a

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update nifs_tgui.dm

* Update modular_skyrat/modules/modular_implants/code/nifsofts/hivemind.dm

* Update modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm

* Update modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* fixes an oversight

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* that wouldn't be good

* Update packs.dm

* Update nifs.dm

* Update nif_implants.dm

* Update nifs.dm

* Update nifs.dm

* Update nifs.dm

* Update nifs.dm

* Update misc_devices.dm

* Update dualboot.dm

* Update CentCom_skyrat_z2.dmm

* Update CentCom_skyrat_z2.dmm

* Update hivemind.dm

* Apply suggestions from code review

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Update packs.dm

* Update prop_summoner.dm

* Update shapeshifter.dm

* Update packs.dm

* Update nif_presistance.dm

* Update prop_summoner.dm

* Update dualboot.dm

* Apply suggestions from code review

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Tastyfish <crazychris32@gmail.com>

* static data

* Update persistence.dm

* Update persistence.dm

* Update persistence.dm

* uhoh

* Update nif_presistance.dm

* Update nifs.dm

* pain

* Revert "pain"

This reverts commit 3adc919f849b68de2ab4245c7db26a02e85bf0c6.

* I don't know why this was in here

* Update nifsofts.dm

* Update nifs.dm

* Update nifs.dm

* Update nifs.dm

* Update nifs.dm

* Update shapeshifter.dm

* Update nifs.dm

* Update nifs.dm

* Update modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Update prop_summoner.dm

* Update misc_devices.dm

* Delete BlueShift_upper.dmm

* Update prop_summoner.dm

* Update prop_summoner.dm

* vendor

* R&D

* Update nifsoft_shop.dm

* Update dualboot.dm

* Update NifPanel.js

* Update money_sense.dm

* I'm sorry for what I must do

* Update money_sense.dm

* cost adjustments

* theme

* Update nifsoft_shop.dm

* examine fix

* examine text change

* Money Sense is now a trait

* Revert "Money Sense is now a trait"

This reverts commit 16c124ffb2cb70136abe6eb41b330d389208afa7.

* component

* Update modular_skyrat/modules/modular_implants/code/nifs.dm

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Update nifs.dm

* Update nifs.dm

* Update nifs.dm

* Update nifs.dm

* Update nifs.dm

* Update nifs.dm

* we do a bit of file moving

* component

* Update nifs.dm

* Update hivemind.dm

* Update hivemind.dm

* Update prop_summoner.dm

* Revert "Merge remote-tracking branch 'upstream/master' into NIFs"

This reverts commit a7f7945eaa9c9ed6f9253b7cb71c6be79f3bf9e9, reversing
changes made to bca1a7f1811d3a82bf253c5a8d70431567c399a7.

* Revert "Merge remote-tracking branch 'upstream/master' into NIFs"

This reverts commit bca1a7f1811d3a82bf253c5a8d70431567c399a7, reversing
changes made to 2559afc7a9737863f7d96494e01216a1ea0f5428.

* Revert "Merge remote-tracking branch 'upstream/master' into NIFs"

This reverts commit e8293971b07a2ffbe61a7e17d5f9ac94b47ef5bc, reversing
changes made to dad4ef7a9ac697d0e887c336bd486c17fb54f2a8.

* whoops

* Revert "Revert "Merge remote-tracking branch 'upstream/master' into NIFs""

This reverts commit c607aca6bc3e55cc724f25fa6e38011b05ebc8c6.

* Revert "Revert "Merge remote-tracking branch 'upstream/master' into NIFs""

This reverts commit b42f89b9c647d845a17732f1caaf1a50dcdd4515.

* Revert "Revert "Merge remote-tracking branch 'upstream/master' into NIFs""

This reverts commit 1d6ffe92bcaa8035f8918dc533870ec4b74ed9a3.

* Apply suggestions from code review

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* fixes things

* Update nifs.dm

* QoL

* no more summoning infinite items

* start of componentization

* Update prop_summoner.dm

* FIRMLY GRASP IT!

* Update prop_summoner.dm

* Update prop_summoner.dm

* Update nifsofts.dm

* Update prop_summoner.dm

* Update nifsoft_shop.dm

* boy, I really hope somebody got fired for that blunder

* Update nif_presistance.dm

* mistakes were made.

* Delete CentCom_skyrat_z2.dmm

* Revert "Delete CentCom_skyrat_z2.dmm"

This reverts commit 8a1cdc4b065246fb07cbaf5461d01565e0ddbe06.

* Update CentCom_skyrat_z2.dmm

* Update CentCom_skyrat_z2.dmm

* It's a solution

* Update CentCom_skyrat_z2.dmm

* Update CentCom_skyrat_z2.dmm

* Update NifPanel.js

* Price changes

* Update nif_presistance.dm

* Such devastation, this was not my intention.

* Woooo!

* Documentation

* cryo fix

* I am sorry to anyone that had a NIF before the persistence change

* Update nif.dm

* I need to figure out why this is happening.

* Apply suggestions from code review

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* a

* Update modular_persistence.dm

* Update modular_persistence.dm

* Update nifs.dm

* Update nifs.dm

* I do the code

* Hopefully this helps

* Update ticker.dm

* Update modular_persistence.dm

* Removes client requirement

* Use brain, much better for allowing persistent organs and similar in the future.

* Did testing, it fucking works now.

* Update mind_linker.dm

* Update misc_devices.dm

* Update misc_devices.dm

* Update nifs_tgui.dm

* Thanks gamers :^)

* a

* Update nifsoft_shop.dm

* Update nifsofts.dm

* Update hivemind.dm

* Update hivemind.dm

* Update prop_summoner.dm

* whoops

* FUUUUCK

* FUCK x2

* this feels like cargo job gear

* stack trace

* roundstart fix

* Update modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.dm

Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>

* Update modular_persistence.dm

* Update nifs.dm

* Update hivemind.dm

* Update nifs.dm

* vital spelling fix

* whoopsie

* Update nif_persistence.dm

* power_refactor

* durability refactor

* a

* Update nifsofts.dm

* pain

* Update modular_skyrat/modules/modular_implants/code/nifs.dm

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Update nifsofts.dm

* Update packs.dm

* Update nifs.dm

* Update nifs.dm

Co-authored-by: Nerevar <12636964+Nerev4r@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
Co-authored-by: RimiNosha <riminosha@gmail.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
2023-01-24 14:27:00 -08:00
SkyratBot
c5ca08fd01 [MIRROR] Adds spaces around logical operators [MDB IGNORE] (#18776)
* Adds spaces around logical operators

* Update code/modules/admin/verbs/admingame.dm

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-01-21 22:16:43 -08:00
Zergspower
1c5549831e The great Unfuckening of all the tech/mechfab categories (#18673)
* Finally Sanity

* Update robot_items.dm

* leftover

* multi-cell oops

* tweak

* suggested

* Match upstream Research category for integrations sake

* Revert "Match upstream Research category for integrations sake"

This reverts commit 5ad819888368c07ee992bc9facf36872a12041fb.

* Fixes Newlines
2023-01-21 16:41:45 -05:00
SkyratBot
902caab964 [MIRROR] Stock Part Datumization Complete [MDB IGNORE] (#18639)
* Stock Part Datumization Complete (#72559)

So i accidently reverted all my commits in #72511 when resolving a merge
conflict So ummm yeah fuck my bad anyway

Finishes what was started in #71693 and completes the
[initiative](https://github.com/tgstation/dev-cycles-initiative/issues/1)

Except for `obj/item/stock_parts/cell` and its subtypes. All machines
now use `datum/stock_part` for its requested components & component
parts

Not sure if i caught every machine & stuff in the game so merge with
caution
🆑
code: datum stock part for every obj stock part
refactor: all machines & dependent experiments to use datum stock parts
/🆑

* Fixes a teeny tiny Funce mistake :)

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-19 17:09:19 -05:00
SkyratBot
2a8f93b2bf [MIRROR] Ties research servers to Techwebs and de-hardcodes research point gen [MDB IGNORE] (#18735)
Ties research servers to Techwebs and de-hardcodes research point gen

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-01-19 21:20:43 +00:00
SkyratBot
fbfe9150c5 [MIRROR] Categorizes uncategorized items in techweb, also recategorizes others for sanity reasons [MDB IGNORE] (#18822)
* Categorizes uncategorized items in techweb, also recategorizes others for sanity reasons (#72689)

## About The Pull Request

Mostly did this for my own sanity in trying to find stuff that's mixed
together in a blob of a subcategory (or completely not in one like the
grinder). This primarily affected the Cybernetics and implants as a
whole but touches some engineering stuff as well. I sort of
universalized the code to make it easier to visually adjust things - i
didnt touch existing stuff that i didnt need too however but if we want
that i can do that.

![image](https://user-images.githubusercontent.com/22140677/212407788-8629e9ba-6d05-43a8-a1d5-bceeada99bd1.png)


If you see any verbiage changes/category changes or want more broken
down (Security and Engineering have some i think that could be broken
apart i just couldnt think of the best way) let me know

## Why It's Good For The Game

Making things uniform across the board in appearance makes it easier for
people to find things, Now finding the organ you want will quickly show
the most advanced one you have for example.

<details>
<Summary>Some Screenshots of the new look</Summary>

Cyber Organs are now tiered based on their coding (Ears are oddly named
and i was thinking of fixing it to match but wanted input there)

![image](https://user-images.githubusercontent.com/22140677/212407076-e0b70fde-c036-4785-bd8e-db6b51d0912e.png)

The grinder now doesnt float in no-mans land at the top of protolathes

![image](https://user-images.githubusercontent.com/22140677/212407146-84dece64-b888-4f0f-b61e-e068adf0a9d9.png)

Electronics and Construction assemblies are segregated

![image](https://user-images.githubusercontent.com/22140677/212407278-03065101-29a0-4e37-a4b2-0d9d018e75e0.png)

Gas filters are no longer gas tanks and are just equipment now

![image](https://user-images.githubusercontent.com/22140677/212407165-04c529be-1f2a-487c-966f-83e7e30c56b5.png)
</details>

## Changelog
:cl:Zergspower
qol: Protolathes and the like had their printable items categorized
further
fix: fixes a few uncategorized items in protolathes and the like
refactor: Cleaner techweb code with more categories to break apart
individual printable items at proto/mech fabs
/🆑

* Updates the category define usages on our modular medical designs files

Co-authored-by: Zergspower <Griffinj88@yahoo.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-19 16:10:19 -05:00
SkyratBot
141234f0ad [MIRROR] Split the large autolathe design file [MDB IGNORE] (#18555)
* Split the large autolathe design file

* Delete Autolathe_designs.dm

* Calibre Rename from Autolathe

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-19 10:54:56 +13:00
Zergspower
d92ed5fec6 Adds Prescription Science glasses (#18790)
* Done

* Viro science loadout
2023-01-18 13:29:07 +00:00
SkyratBot
27492ff60d [MIRROR] Autounlock techwebs are shared between machines that use them. [MDB IGNORE] (#18734)
* Autounlock techwebs are shared between machines that use them. (#72515)

## About The Pull Request

Did you know that for every Autolathe, Limbgrower, Biogenerator, ORM,
and Smelter that was built, an entire new techweb was made? The average
round has 2 ORMs (smelters count) if not more from ORM deconstruction
objective, 2 biogenerators, several autolathes and generally 0-1
limbgrower, I think there's more techwebs being created than we need.

Creating a whole techweb was a pretty terrible way to optimize this, so
I made a global list that stores these techwebs. Created on demand,
these autounlocking techwebs now share between the machines that use
them. It also generate all hacked nodes which will be visible if the
machine is hacked, instead of 'researching' them for each hacked
individual machine.

The 'specialized' techweb subtype was removed because its sole purpose
was to allow autounlocking to be a subtype of it. Now autounlocking is
just the direct subtype. I also removed mechfab autounlocking type
because it wasn't used, mechfabs use techwebs directly.

Autolathes and Limbgrowers now locally store 'imported designs' which
are things uploaded from technology disks. Outside of this, the
autounlocking techweb subtype now stores 'hacked designs' which unlocks
when the machine is emagged.
While doing this, I saw ORMs and Biogenerators had disks you can insert
into them, but I did not find anything that can actually be uploaded to
them (I saw Alien Alloys as a possibility, but there's no such disk to
allow uploading this alloy to the machine, and I didn't think an entire
system for 1 single alloy was worth keeping around), so I removed this
unused feature from both machines.

I merged 'Hacked' and 'Emagged' categories because they served the same
purpose, 'hacked' being on hacked autolathes and 'emagged' being on
hacked (emagged) limbgrowers.

Tech disk techwebs (which is created every time a disk is made, however
I hope to change this in the future) into it's own subtype, so admins
understand where its from when looking in VV panel (because I was
confused when I saw them at first).

``autolathe_crafted`` proc was removed because it was entirely unused
too.

Now it looks like this, which I consider an improvement:

![image](https://user-images.githubusercontent.com/53777086/211052875-9215a84d-fb04-450b-a120-4d0316cec6ff.png)

## Why It's Good For The Game

We no longer initialize a brand new techweb for no reason whatsoever.
Each techweb made is making entire lists of experiments and research
papers, all of which is never to be seen in-game and is completely
useless to the player. Cutting down on these techwebs is a good first
step to this needless initializing.

## Changelog

🆑
qol: Removed the tech disk part of the ORM's UI as it was entirely
unused, now it's a little more compact with less scrolling needed.
refactor: Autolathes, Limb growers, Biogenerators, ORMs and Smelters now
share techwebs with other machines of their types, rather than all make
new techwebs each time. This means they only build their nodes once,
including hacked ones. Instead of researching nodes on hacking the
machine, they now show hacked ones depending on if it's hacked.
/🆑

Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>

* Autounlock techwebs are shared between machines that use them.

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
2023-01-14 18:54:19 -08:00
SkyratBot
090174da7a [MIRROR] Biogen shows default reagent container icons instead of beakers [MDB IGNORE] (#18503)
* Biogen shows default reagent container icons instead of beakers (#72247)

## About The Pull Request

With the new crafting menu some reagents now have default container
assigned.
I applied these to visualize reagents in biogen UI too.

<img alt="060ybChTkI"
src="https://user-images.githubusercontent.com/3625094/209483256-e4159a05-46ae-47b8-bc42-9d003cf6c303.png">

## Why It's Good For The Game

Better representation of a reagent.

## Changelog

🆑
qol: Biogenerator shows default reagent containers instead of beakers
/🆑

* Biogen shows default reagent container icons instead of beakers

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-13 16:18:14 -08:00
Zonespace
8fabd54ad6 Mirrors #72354 (#18654)
* [no gbp] removes all duplicate armor datums (#72354)

closes #72348
Title

My bad

Heres the script I used this time if you want to
```cs
var baseDir = Environment.CurrentDirectory;

var allFiles = Directory.EnumerateFiles($@"{baseDir}\code", "*.dm", SearchOption.AllDirectories).ToList();
var known = new Dictionary<string, List<KeyValuePair<string, int>>>();

foreach (var file in allFiles)
{
	var fileLines = File.ReadAllLines(file);
	for (var i = 0; i < fileLines.Length; i++)
	{
		var line = fileLines[i];
		if (line.StartsWith("/datum/armor/"))
		{
			var armorName = line.Replace("/datum/armor/", "").Trim();
			if (!known.ContainsKey(armorName))
				known[armorName] = new List<KeyValuePair<string, int>>();
			var knownList = known[armorName];
			knownList.Add(new KeyValuePair<string, int>(file, i));
		}
	}
}

Console.WriteLine($"There are {known.Sum(d => d.Value.Count)} duplicate armor datums.");

var duplicates = new Dictionary<string, List<int>>();
foreach (var (_, entries) in known)
{
	var actuals = entries.Skip(1).ToList();
	foreach (var actual in actuals)
	{
		if (!duplicates.ContainsKey(actual.Key))
			duplicates[actual.Key] = new List<int>();
		duplicates[actual.Key].Add(actual.Value);
	}
}

Console.WriteLine($"There are {duplicates.Count} files to update.");

foreach (var (file, idxes) in duplicates)
{
	var fileContents = File.ReadAllLines(file).ToList();
	foreach (var idx in idxes.OrderByDescending(i => i))
	{
		string line;
		do
		{
			line = fileContents[idx];
			fileContents.RemoveAt(idx);
		}
		while (!String.IsNullOrWhiteSpace(line));
	}
	File.WriteAllLines(file, fileContents);
}
```

* modular

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-01-13 18:05:12 -05:00
SkyratBot
a3d2bc53ae [MIRROR] RTD Rapid Tiling Device [MDB IGNORE] (#18546)
* RTD Rapid Tiling Device

* Update tool_designs.dm

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-12 22:15:08 +00:00
Zonespace
1135ac5e2c Mirror #72280 (#18648)
Add lints for idiomatic balloon alert usage (#72280)

Adds lints for `balloon_alert(span_xxx(...))` (which is always wrong),
and balloon alert where the first letter is a capital (which is usually
wrong). Fixes everything that failed them. As a reminder, abbreviations
like "AI" and "GPS" shouldn't be capitalized in a balloon alert.

In cases where this is intentional for flavor (there was one case), you
can `UNLINT` like so:

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-01-12 08:48:06 -05:00
SkyratBot
fe5c70fdc7 [MIRROR] RPED proximity Bug Fix [MDB IGNORE] (#18641)
* RPED proximity Bug Fix (#72616)

* RPED proximity Bug Fix

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-01-11 12:09:08 -08:00
SkyratBot
f4c8309e38 [MIRROR] RPED can pick up & install circuit boards in machine frames [MDB IGNORE] (#18627)
* RPED can pick up & install circuit boards in machine frames (#72540)

* RPED can pick up & install circuit boards in machine frames

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-01-10 07:38:32 -08:00
SkyratBot
7ee524f748 [MIRROR] Basic Mob Carp Part VIII: Basic Mob Carp [MDB IGNORE] (#18344)
* Basic Mob Carp Part VIII: Basic Mob Carp

* maps

* missed killing main carp file

* shorki and ocean biomes

* shorki 2: pet-a-boogaloo

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 05:48:50 -05:00
SkyratBot
ae713bf18a [MIRROR] Crafting/Cooking menu update [MDB IGNORE] (#18334)
* Crafting/Cooking menu update

* Yeeted away all of the merge conflicts, time to fix the code

* Okay, now it compiles, and after testing, it seems to work just fine

* Actually, early addition of an upstream fix, so those that don't have hunger can still open the cooking menu

* Fixes the units tests by removing the extra comma in the Stuffed Muli Pod recipe

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-01-08 15:02:18 -05:00
SkyratBot
00ecd5c250 [MIRROR] Removes the accounting console board from the sec lathe and moves it to the service lathe [MDB IGNORE] (#18582)
* Removes the accounting console board from the sec lathe and moves it to the service lathe (#72276)

## About The Pull Request
Removes the design for the accounting console circuit board. There is
now a replacement circuit board in the HoP locker.

This PR is mainly meant to address a downstream issue, but I figure I
should make the PR up here first.
## Why It's Good For The Game
It's the HoPs job to monitor and handle the accounting console, not
security's. This will encourage security to co-operate and talk with the
HoP if they need to monitor purchases.
## Changelog
🆑
balance: Moved the account console board to the service lathe
/🆑

Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>

* Removes the accounting console board from the sec lathe and moves it to the service lathe

Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
2023-01-07 22:34:39 -08:00
SkyratBot
011fefdd81 [MIRROR] Refactors armor into dedicated subtypes [MDB IGNORE] (#18291)
* Refactors armor into dedicated subtypes

* start

* most tg things

* pain (#18584)

* shit

* non-mod changes

* compile

Co-authored-by: John Doe <gamingskeleton3@gmail.com>

* #18291

* compile fix

* ???

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 20:06:16 -08:00
SkyratBot
80d1906bd1 [MIRROR] Basic Mobs can run away [MDB IGNORE] (#18196)
* Basic Mobs can run away (#71963)

## About The Pull Request

That's right I'm still atomising #71421, some day I might even post
something related to carp.
This PR adds various behaviours to basic mobs allowing them to run away,
in a couple of variations.

Mice will flee from anyone who doesn't share their factions, at all
times (so they will scatter from most humans, but not regal rats).
Rabbits and Sheep will flee from anyone who has attacked them.
Pigs will run away from people who have attacked them, but only if
they're below half health.

https://user-images.githubusercontent.com/7483112/207127135-d1737f91-d3f7-468a-ac60-7c7ae5d6623d.mp4

Mice are still plenty catchable because they don't run _very far_ (or
very fast) but I think the chase will be good enrichment.

To achieve this I had to change the signal COMSIG_CARBON_HEALTH_UPDATE
into COMSIG_LIVING_HEALTH_UPDATE but frankly the latter seems more
sensible anyway.

## Why It's Good For The Game

More behaviours to use later when designing mobs, gradually gives mobs
more things to do rather than just sort of moving aimlessly around the
area you left them in.
It'll give people hunting rats in maintenance some exercise.

## Changelog

🆑
add: Mice will now run away from you, you have to catch them if you want
to eat them. Use those traps!
add: Rabbits, Sheep, and Pigs likewise won't just sit there and let you
pulverise them if they can see an escape route.
/🆑

* Basic Mobs can run away

* Modular!

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-07 23:51:47 +13:00
SkyratBot
650d64f6d4 [MIRROR] afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item [MDB IGNORE] (#18519)
* afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item

* Update _neck.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 06:55:38 +00:00
SkyratBot
532be09dda [MIRROR] RPED tier-based parts dumping [MDB IGNORE] (#18561) 2023-01-06 18:57:29 -08:00