Commit Graph

8293 Commits

Author SHA1 Message Date
SkyratBot
db35fc9a89 [MIRROR] Fixes some stupid airlock sleeps [MDB IGNORE] (#21931)
* Fixes some stupid airlock sleeps

* Fixes the conflicts before checking the merge conflicts

* Converts another wires = to set_wires() and removes another issue

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-07-01 15:33:12 -04:00
SkyratBot
b72c6e29f4 [MIRROR] Fix runtime from bilingual curators [MDB IGNORE] (#21987)
* Fix runtime from bilingual curators (#76199)

## About The Pull Request

`pick` from an empty list, because curators already know all the
languages the quirk can give you

## Why It's Good For The Game

Runtime fix

## Changelog

🆑 Melbert
fix: Fix a runtime involving Bilingual Curators
qol: Bilinguals get a message on spawn reporting which language they've
learned, or a message reporting they have learned no language if they're
already fluent in all possible ones.
/🆑

* Fix runtime from bilingual curators

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-01 15:27:39 -04:00
SkyratBot
90f2ff4854 [MIRROR] Moves species brutemod and burnmod to be handled by bodyparts [MDB IGNORE] (#21903)
* Moves species brutemod and burnmod to be handled by bodyparts

* Fixes compilation issues and updates the brute and burn mods on our own species

* Re-ticks the ashwalker bodyparts

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-07-01 15:25:44 -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
12044e8d70 [MIRROR] Plasmamen can now get HMS [MDB IGNORE] (#22112)
* Plasmamen can now get HMS (#76352)

As plasmaman it is not currently possible to get HMS, despite being able
to pick it as a trait roundstart and being able to get infected by
traitors with the objective, this will fix two issues in one, removing
yet another free points, this time 12, AND making them suffer the
consequences of the syndicate.

* Plasmamen can now get HMS

---------

Co-authored-by: FunnyToilet <117867244+Funnytoilet@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-01 14:16:38 -04:00
SkyratBot
d3347d7fab [MIRROR] Adds an element for noisy movement (wheelchairs, office chairs, trashcarts etc. etc.) [MDB IGNORE] (#22172)
* Adds an element for noisy movement (wheelchairs, office chairs, trashcarts etc. etc.) (#76378)

## About The Pull Request
Converts generic, copypasted behavior into an element.

## Why It's Good For The Game
I'd rather not have someone just copypaste the old thing, since there're
a few more things to take into account now than just whether the item
has gravity, and if that ever has to change, we will only have to modify
one line than several.

## Changelog

🆑
fix: Fixed the office chair being silent. My bad.
/🆑

* Adds an element for noisy movement (wheelchairs, office chairs, trashcarts etc. etc.)

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-07-01 14:15:34 -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
1298260b04 [MIRROR] HMS, once again. [MDB IGNORE] (#22144)
* HMS, once again. (#75654)

## About The Pull Request

Bug reports seem to come in after the last fix gets merged. It makes me
sad.

## Why It's Good For The Game

The EHMS injector no longer continues to inject no matter what.

Fixes #75776

## Changelog
🆑 Chadley
fix: fixes the EHMS injector's do_after()
code: Improves the code for the disease scan proc (thank you fikou)
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

* HMS, once again.

---------

Co-authored-by: Charlotte <98856144+orthography@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2023-06-30 23:17:21 -07:00
SkyratBot
d195a9c830 [MIRROR] Moves ui references from the tgui subsystem to datums themselves [MDB IGNORE] (#21985)
* Moves ui references from the tgui subsystem to datums themselves (#76215)

## About The Pull Request

Unused vars have 0 memory cost, and the ref and list lookup here is
REALLY expensive, for both init and foam spreading.

## Why It's Good For The Game

Saves 0.2s off a station flood on meta, and 0.17s off init. More time in
other qdel heavy areas
Pulled off #76104 for the sake of cleanliness

* Moves ui references from the tgui subsystem to datums themselves

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-30 21:47:11 -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
Nerevar
6b57e50614 Makes Podpeople Hair Recolorable 3-D: The Revenge (#19908)
* wew

* hell yes fuck yes

* Replace podhair with modular tricolor podhair

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

* help me oh my god

* we're cooking

* done

* what if i were to purchase fast food

* yeah baby

* so true bestie

* let's fucking go

* screenshot tests updated

* wew

* thanks in_phaze !

* we put our whole coderussies into this

* weird but ok

---------

Co-authored-by: Snakebittenn <12636964+Snakebittenn@users.noreply.github.com>
Co-authored-by: Penelope Haze <out.of.p.haze@proton.me>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-28 15:59:19 -04:00
SkyratBot
85faba1a0f [MIRROR] Maptext 2023: I can see clearly now [MDB IGNORE] (#22100)
* Maptext 2023: I can see clearly now

* skyrat edit

* Update tgstation.dme

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-27 21:05:25 -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
9809383a20 [MIRROR] Buffs Wizarditis [MDB IGNORE] (#22046)
* Buffs Wizarditis (#76156)

## About The Pull Request

Basically, reworks Wizarditis so you randomly cast real (weakened)
spells instead of just saying random invocations + doing a hardcoded
version of teleport.

Spells include Teleport, Disable Tech (small radius), Mutate, Knock,
Forcewall, Blink, Smoke, Spacetime Distortion (much smaller radius),
Timestop (radius of 1 (haha)), Repulse (small radius), Blind, Lightning
Bolt (weaker bolt), and Swap

Makes anti-magic counter wizarditis, but not cure it.

Adds some more minor tells that one may be infected. Removes some old
messages in favor of newer ones.

## Why It's Good For The Game

Wizarditis is very lackluster for how difficult it is to obtain.

Initially this started as de-hardcoding / optimizing the in built
teleport function to use the actual scyar nila, but I realized how easy
it would be to expand this, so I did it.

Because it's funny.

## Changelog

🆑 Melbert
add: Wizarditis Improved. Those infected will now randomly cast one of
the following (weakened) spells at max stage: Teleport, Disable Tech,
Mutate, Knock, Forcewall, Blink, Smoke, Spacetime Distortion, Timestop,
Repulse, Blind, Lightning Bolt, or Swap
add: A source of antimagic will prevent Wizarditis's ill effects, but
won't cure you.
/🆑

* Buffs Wizarditis

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-27 19:55:10 -07:00
theOOZ
f8afe4d8c6 [Semi-modular] (The big) Akula species revamp (#20131)
* initial i think

* stuff

* test

* fix

* close to publishing

* k

* raise akula tail 1 px

* beginning of clothing

* akula species trait initial

* reviews and CI

* head.dm runtime

* some reviews

* oops

* oops 2x

* review

* job equipping

* clothing flavor

* forgot the .dme

* runtime test

* foundation to more clothing

* errors

* almost ready now

* forgot

* new loadout species restriction

* null runtime

* runtime test

* sprite error

* atleast fill this in

* screenshot test

* lots of descriptions

* i forgot to add job clothing values

* get_species_lore

* prepare_human_for_preview fix

will need new screenshot test probably

* screenshot test fix

https://github.com/Skyrat-SS13/Skyrat-tg/issues/20284

* loreupdate

* write it better

* forgor 💀

* dixel fix

* sprite fix

* job outfit armor changes

* reviews

* extra

* desc formatting

* linter

* reviews part 1

* forgot

* reviews part 2

* reviews part 3

* reviews part 4

* forgot

* fixes

* fix for aquatic digilegs

* small

* fire/water balancing like yin and yang

* modularity thing

* aquatic rename

* A fix and change

* moves sphere 1px and loadout thing

* hair bugfiex

* Te Velu Akko

* head internals

* more patches

* akula eyenudge
2023-06-27 18:19:38 +01:00
lessthanthree
418e0ede0f Increased alcohol/nicotine tolerance (#21546)
* booze

* Update mobs.dm

* nya

* Revert "nya"

This reverts commit faa0b97c0522a2860fb265d37ddd80f71e6a68c8.

* remove from master_files/sr defines

* better comment

* Update generic_addictions.dm

* reduce messages

* reduced nicotine rate
2023-06-26 20:54:37 +00: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
fcfdbfc975 [MIRROR] Fix colossus finale firing like 100 fewer projectiles than it should be [MDB IGNORE] (#21969)
* Fix colossus finale firing like 100 fewer projectiles than it should be (#76202)

## About The Pull Request

![image](https://github.com/tgstation/tgstation/assets/51863163/b7d831db-dd38-4a60-b8e3-9a02c0101d40)

## Changelog

🆑 Melbert
fix: The colossus's finale attack is now 100x more lethal, because it
was firing 100x fewer projectiles than intended
/🆑

* Fix colossus finale firing like 100 fewer projectiles than it should be

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-23 16:10:08 -07:00
SkyratBot
e03e6e9436 [MIRROR] Fixes a runtime when attacking non-carbon mobs with a cuffsnapper [MDB IGNORE] (#21968)
* Fixes a runtime when attacking non-carbon mobs with a cuffsnapper  (#76190)

## About The Pull Request

The cuffsnapper component now checks to make sure the target is a carbon
before running the rest of the cuffsnapping process on them.

target.handcuffed is checked (handcuffed is defined on carbon), but
nowhere is it actually asserted that the target is a carbon, so a
runtime would occur when attacking non-carbon mobs.
## Why It's Good For The Game

This runtime fix was brought to you by https://runtimes.moth.fans
## Changelog
🆑
fix: attacking non-carbon mobs with a cuffsnapping object will no longer
runtime.
/🆑

* Fixes a runtime when attacking non-carbon mobs with a cuffsnapper

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2023-06-23 16:09:21 -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
7eedc90a99 [MIRROR] The honorbound trauma now makes use of the relay_attackers element. [MDB IGNORE] (#21961)
* The honorbound trauma now makes use of the relay_attackers element. (#75908)

## About The Pull Request
Whoever made the relay_attackers element, thank you for streamlining the
bucketload of signals that had to be registered for everything that
counted as an attack. It's very much needed.

Beside, I only had to add a few flags to be sent by the
ATOM_WAS_ATTACKED signal, so that stamina and shoving doesn't
automatically make the attacker guilty.

Oh, one more thing I have forgot to mention. Currently medical staff is
immune to "guilt" altogether, while the comments suggest they should be
affected by declaration but not attacking. This PR also covers that
issue.

## Why It's Good For The Game
This will fix #75904.

## Changelog

🆑
fix: Fixed the honourbound trauma not reacting to attacks from basic
mobs
fix: Fixed the "Declare Evil" spell not working against the medical
department.
/🆑

* The honorbound trauma now makes use of the relay_attackers element.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-06-23 16:06:06 -07:00
SkyratBot
47ddd30381 [MIRROR] Makes Godwoken Syndrome VoG commands ignore spam filter [MDB IGNORE] (#21956)
* Makes Godwoken Syndrome VoG commands ignore spam filter (#76146)

## About The Pull Request
they're basically forced speech and should not account for the spam
filter

## Why It's Good For The Game
fixes #55392

## Changelog
🆑
fix: fixed Godwoken Syndrome VoG commands triggering the spam filter
/🆑

* Makes Godwoken Syndrome VoG commands ignore spam filter

---------

Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
2023-06-23 16:03:46 -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
SkyratBot
76e3348760 [MIRROR] Replaces the Reaper Scythe with the Vorpal Scythe (also the Morbid trait) [MDB IGNORE] (#21958)
* Replaces the Reaper Scythe with the Vorpal Scythe (also the Morbid trait)

* fix

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-22 20:21:36 +00:00
SkyratBot
529b8b4464 [MIRROR] Lighting object oddities [MDB IGNORE] (#21945)
* Lighting object oddities (#76009)

## About The Pull Request

Fire stacks status effect no longer uses a weakref for the mob light, I
am pretty sure there was no real reason to use a weakref there.
Deleted weird luminescent glow dummy, now it just uses the standard
moblight obj.
Put all /obj/effect/dummy/lighting_obj together in a single file and
added a comment explaining why they exist.

(I severely dislike the /obj/effect/dummy typepath, but I am very much
unsure if just replacing all of them with /obj/effect/abstract would
break shit)

## Why It's Good For The Game

Code organization good

* Lighting object oddities

* Update kindle.dm

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-20 14:06:48 -07:00
SkyratBot
068089fb52 [MIRROR] Standardize Welder Fuel Usage [MDB IGNORE] (#21943)
* Standardize Welder Fuel Usage (#76021)

Remove welder fuel usage from all actions except attacking and leaving
it on
most welder tasks require a minimum of 1u of fuel, some longer tasks
require a minimum of 2 or 3u welders now drain 1u every 5 seconds
they're active
## About The Pull Request
Prior to this PR welder fuel usage was random, a lot of tasks didn't use
any welder fuel and welders were basically near infinite so long as you
didn't use them for combat, it took 26 seconds of activity to drain 1u
of fuel, that means an emergency welder alone could run for 5 minutes
straight before needing a refuel

After this PR all welders will drain 1u every 5 seconds instead of every
26 seconds, but welding objects won't require extra fuel anymore, making
the fuel usage much more consistent.

resolves #55018
## Why It's Good For The Game
Actually makes fuel tanks useful and relevant without making it
obnoxious to do repetitive quick tasks like turn rods into plates,
there's actually a reason to upgrade off the emergency welder now since
it lasts 50 seconds rather than 5 minutes
## Changelog
🆑
qol: Welders now have a more consistent fuel usage
/🆑

* Standardize Welder Fuel Usage

---------

Co-authored-by: Couls <coul422@gmail.com>
2023-06-20 09:39:49 -07:00
SkyratBot
48f31f0eb1 [MIRROR] Adds the current server name from the config to the world status [MDB IGNORE] (#21939)
* Adds the current server name from the config to the world status (#76014)

## About The Pull Request
Adds the server name from the configuration to the world's status topic.

## Why It's Good For The Game
We don't currently expose the server's short name (e.g. `Sybil`,
`Manuel`) anywhere. This fixes that. This is mostly to support external
tools.

* Adds the current server name from the config to the world status

---------

Co-authored-by: Nick <nick@nfreader.net>
2023-06-20 09:39:26 -07:00
SkyratBot
3d4b8e19ba [MIRROR] Fix further/MetaStation [MDB IGNORE] (#21944)
* Fix further/MetaStation (#76158)

## About The Pull Request

Typo fixes. Further and fixes MetaStation's default name to match the
JSON.

## Changelog

🆑 LT3
spellcheck: Fixed a few typos
/🆑

* Fix further/MetaStation

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-20 09:32:47 -07:00
SkyratBot
a863e7787d [MIRROR] Unit tests now catch decals in walls/space [MDB IGNORE] (#21862)
* Unit tests now catch decals in walls/space

* the fuck

* vr

* vr

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-06-20 10:28:46 -04:00
SkyratBot
bcb7bcc5c5 [MIRROR] Food gets stink lines when about to go rotten [MDB IGNORE] (#21925)
* Food gets stink lines when about to go rotten (#76038)

## About The Pull Request

Title says it all, food that decomposes gets stink lines halfway
through.

![image](https://github.com/tgstation/tgstation/assets/82850673/ae90220c-4b27-49dd-873a-6f349055f891)

![image](https://github.com/tgstation/tgstation/assets/82850673/c982055d-ed69-4935-bda5-7851836fad2c)

Moldy messes always gets stink lines.

## Why It's Good For The Game

1. It's funny
2. It's a visual indicator for food going bad which is kinda nice

## Changelog

🆑
add: Food now gets stink lines when going bad. Uh oh, stinky.
/🆑

---------

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

* Food gets stink lines when about to go rotten

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-06-19 17:34:53 -04:00
SkyratBot
4a451d4e24 [MIRROR] Removes some boilerplate from transforming component [MDB IGNORE] (#21885)
* Removes some boilerplate from transforming component

* conflicts

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-19 17:14:10 -04:00
Tom
15b7c7bf71 removes sneaky merge conflict marker (#21919)
remove marker
2023-06-19 17:00:29 -04:00
SkyratBot
e10c569414 [MIRROR] Acid particles (+unsorted acid/burning/thermite component changes) [MDB IGNORE] (#21874)
Acid particles (+unsorted acid/burning/thermite component changes)

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 15:19:40 +00:00
SkyratBot
b416eaa605 [MIRROR] Burner can be crafted from any open container [MDB IGNORE] (#21832)
* Burner can be crafted from any open container (#75978)

![image](https://github.com/tgstation/tgstation/assets/3625094/042ef40c-512f-40c5-8e65-a7dc842108fd)

## About The Pull Request

Expands the options for making burners (makeshift igniters) by requiring
any open container (bottles, cans, cups) instead of beaker subtypes.

## Why It's Good For The Game

Makes ghetto recipe a bit more ghetto-friendly

## Changelog
🆑
qol: Chemical burner can be crafted from any open container, not just
beakers
/🆑

* Burner can be crafted from any open container

* null modular icon

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 16:04:02 +01:00
SkyratBot
7bac58e2fc [MIRROR] Renames COMSIG_ITEM_ATTACK_OBJ to COMSIG_ITEM_ATTACK_ATOM [MDB IGNORE] (#21916)
* Renames COMSIG_ITEM_ATTACK_OBJ to COMSIG_ITEM_ATTACK_ATOM

* conflicts

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 14:51:14 +00:00
SkyratBot
94aff1857c [MIRROR] Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements [MDB IGNORE] (#21872)
* Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements (#75913)

## About The Pull Request

This standardizes fugitive hunter IDs, making all hunter packs use the
same subtype and giving them to hunters who would spawn with no ID at
all.

The badass flaming ID color that the OG Bounty Hunter team got are now
the standard for fugitive hunter IDs. Additionally, these IDs now come
with a radical skull trim.

(Spacepol Officers don't get the badass flaming skull ID, and instead
get a more modest Police Officer ID).

**These IDs come with access, too. Airlocks, bolt buttons, shuttle
controls, and shutters on all of the hunter shuttles now require a
hunter's ID to operate.**

While I was in the area doing mapping stuff to get the accesses in
place, I made a few other very minor changes to the shuttles. These
include:

- The Bounty Hunter shuttle now has an oxygen dispenser. Two walls have
been moved to make space.
- The Russian Hunter shuttle now gets enough oxygen tanks to share with
everyone.
- The Psyker Hunter spawners now have proper spawner menu text. This was
due to duplicate-but-not-really subtypes existing, and me mistakenly
putting the wrong ones there in a previous PR.
- The cut ai wire helpers from the Russian/Psyker shuttles have been
extended to the Bounty/Spacepol shuttles.
- Every hunter shuttle now has a shuttle pinpointer on it somewhere, and
is no longer exclusive to a single Bounty Hunter's loadout.
## Why It's Good For The Game

Some of the hunter IDs would spawn without trims or coloration, and some
hunters wouldn't spawn with IDs at all. Now, everyone gets a credible,
cool-looking ID that lets everyone know what you're here to do at a
glance.

One of these is a crazed larper with an unregistered firearm, the other
is a certified bounty hunter.

As for the hunter access, it's pretty nonsensical that anyone can just
walk into the hunter ship and set up shop. At least the pirates get
turrets! Not to mention, it's hard to balance or give hunters new
equipment in good conscience when their entire domain is public-access
and anything they can't carry is considered forfeit to the crew. Now it
can be used as a base of operations, storage area, etc. more securely.

Locking down the shuttle with accesses isn't going to stop a determined
gamer with a toolset, but it'll at least make it more interesting and an
actual risk. If the fugitives want to try and loot/hijack the shuttle,
it will require the effort of taking down one of their hunters first.

While hunters stand out for the differences/imbalances between each
group, I don't see the shuttle pinpointer as something that contributes
positively to the OG bounty hunter's uniqueness. There's no reason why
the other hunters shouldn't also be able to track their ship.

* Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-06-18 15:21:47 +01:00
SkyratBot
bbf349ce34 [MIRROR] Machine's correctly eject signaller's attached to it's wires [MDB IGNORE] (#21836)
* Machine's correctly eject signaller's attached to it's wires (#75928)

## About The Pull Request

Fixes #72053
the signaller is made part of the machine's `component_parts` now so it
doesn't get moved out when `dump_inventory_contents()` is called like in
the case of microwave when it has finished cooking
This fix also applies for other machine's that call this proc

Fixes #72132
Clear's out the `holder` & `connected` vars from the signaller when the
wire's get destroyed allowing the signaller to be picked up

## Changelog
🆑
fix: microwave's(after it has finished cooking) & other machine's that
spit out contents don't spit out assemblies/signallers attached to it's
wires.
fix: signallers can be picked up if you attached them to a machine's
wire & later deconstructed that machine without detaching it first.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>

* Machine's correctly eject signaller's attached to it's wires

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
2023-06-18 14:57:02 +01:00
SkyratBot
c5f16715fb [MIRROR] Adds runtime safety into cinematic code to stop everyone locking up [MDB IGNORE] (#21827)
* Adds runtime safety into cinematic code to stop everyone locking up (#76025)

## About The Pull Request

Separates these two sections of cinematic code out in their own procs to
add some runtime protection.

![image](https://github.com/tgstation/tgstation/assets/51863163/b664d887-1aea-45e7-85f2-aa2e6c997c83)

This keeps happening and I have really no idea why. There shouldn't be
any `null`s in this list of weakrefs. I asked Lemon a while ago and they
said it was a bug in some other code. So I'm just doing this instead.
Because I don't know where to hunt down that issue and try-catches
aren't real.

Closes #76024

## Why It's Good For The Game

Runtiming in these procs is really bad because it handles setting all
mobs to `notransform`. Which blocks all movement and acting and stuff.

## Changelog

🆑 Melbert
code: Adds some runtime safety to Cinematic code
/🆑

* Adds runtime safety into cinematic code to stop everyone locking up

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-18 14:51:47 +01:00
SkyratBot
124ff7955c [MIRROR] Improves mob resizing (and UpdatePaths). [MDB IGNORE] (#21726)
* Improves mob resizing (and UpdatePaths).

* updatepaths

* conflicts

* update modular

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 14:23:05 +01:00
SkyratBot
6dfe17306c [MIRROR] Pulls apart the vestiges of components still hanging onto signals [MDB IGNORE] (#21738)
* Pulls apart the vestiges of components still hanging onto signals

* update modular

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 13:18:23 +00:00
SkyratBot
da5da42a18 [MIRROR] Refactors the worst list ever, Stun Absorptions, into status effects + makes status flags more accurate (making certain mobs more vulnerable to incapacitations?) [MDB IGNORE] (#21884)
* Refactors the worst list ever, Stun Absorptions, into status effects + makes status flags more accurate (making certain mobs more vulnerable to incapacitations?) (#76000)

## About The Pull Request

- Refactors the stun absorption list into a status effect

- Does a fair bit of cleanup around stun code

Weird thing involved in this.
Check out this define.
`IS_STUN_IMMUNE(source, ignore_canstun) ((source.status_flags & GODMODE)
|| (!ignore_canstun && (!(source.status_flags & CANKNOCKDOWN) ||
HAS_TRAIT(source, TRAIT_STUNIMMUNE))))`
Notice anything odd about it?
It only checks for `CANKNOCKDOWN`.
What does this mean?
Well, *every single* one of the stun procs used this macro for checking
stun immunity. Which means every method of stun checked the
`CANKNOCKDOWN`.
This means that, say you have a mob which has `CANSTUN` but not
`CANKNOCKDOWN`.
Intuitively this means that the mob cannot be knocked down, but can be
stunned.
But instead, this means the mob can't be stunned either.
This doesn't affect humans, they have all the status flags, but it does
affect some other mobs.
Alien adults (not queens) have `CANUNCONSCIOUS|CANPUSH`. Before, they
didn't have `CANKNOCKDOWN`, so they were fully immune to stuns and
sleeps. But now, they can be knocked unconscious.
However, overall it doesn't change much, as most mobs that flipped off
`CANKNOCKDOWN` flipped off the others too.
For consistency though it makes sense for these flags to work as they
imply.

- `incapacitate` didn't have a signal, now it does

## Why It's Good For The Game

More consistent, better code? I may use this in the future.

## Changelog

🆑 Melbert
refactor: Refactored Stun Absorptions (Bastard Sword, His Grace)
refactor: Refactored Stun Immunity. Note this means that some mobs
which, prior, were immune to all forms of incapacitation are now
vulnerable to some. Notably, adult non-queen xenomorphs are now
vulnerable to falling unconscious.
/🆑

* Refactors the worst list ever, Stun Absorptions, into status effects + makes status flags more accurate (making certain mobs more vulnerable to incapacitations?)

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-18 14:18:06 +01:00
SkyratBot
06b9606beb [MIRROR] Fixes stowing suit storage jetpacks when retracting modsuit chestplates [MDB IGNORE] (#21888)
* Fixes stowing suit storage jetpacks when retracting modsuit chestplates (#75844)

## About The Pull Request

This is a bizare bug I discovered while trying to develop another
feature, so let's just get into the reproduction steps:
- Wear a modsuit and extend it's parts
- Put a jetpack in the suit storage slot and turn it on. Currently, the
only jetpack that fits in the storage slot on TG is the captain's
jetpack.
- While the jetpack is activated, deactivate your modsuit using the UI,
which stows the jetpack into your storage module automatically.
- This fails to unregister some signal thing because it can't find the
user.

My fix *could* be shitcode, so any feedback would be appreciated.

Jetpack activation and deactivation signals now pass a user.
`/datum/component/jetpack/proc/activate(datum/source, mob/user)`
`/datum/component/jetpack/proc/deactivate(datum/source, mob/user)`

Some jetpack `pre_move_react` thing now has a check to see if it's
argument is null.
```
if(!trail)
	return FALSE
```

## Why It's Good For The Game

Stops a crash/runtime.
## Changelog
🆑 stonetear
fix: jetpack signals now pass a user argument. This fixes an error when
automatically stowing a captain jetpack into your modsuit.
/🆑

* Fixes stowing suit storage jetpacks when retracting modsuit chestplates

---------

Co-authored-by: Stonetear <89315023+Stonetear@users.noreply.github.com>
2023-06-18 14:03:59 +01:00
SkyratBot
5d904e1b9a [MIRROR] Fixes coin values [MDB IGNORE] (#21889)
* Fixes coin values (#76066)

## About The Pull Request

This brings coins values back from being severely undervalued after
#75437. Coins are supposed to be made of and worth 400 units of mats,
but the numbers weren't updated and so they were made of significantly
less than that.

## Why It's Good For The Game

Brings coins back to what they're supposed to be worth.
## Changelog
🆑
fix: After destroying unfathomable quantities of excess coins, their
value is back to what it's supposed to be!
/🆑

* Fixes coin values

---------

Co-authored-by: Nick <42454181+Momo8289@users.noreply.github.com>
2023-06-18 14:03:28 +01:00
SkyratBot
9ae188c939 [MIRROR] Glass jaw quirk minor oversight fix [MDB IGNORE] (#21890)
* Glass jaw quirk minor oversight fix (#76088)

## About The Pull Request

The knock out message will no longer appear if the quirk holder is
already unconscious

## Why It's Good For The Game

Less confusing combat messages!

## Changelog

🆑
fix: Glass joes will no longer appear to get knocked out, while already
knocked out.
/🆑

* Glass jaw quirk minor oversight fix

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-06-18 14:03:04 +01:00
SkyratBot
8b7bdc4959 [MIRROR] Shuttle events [MDB IGNORE] (#21917)
Shuttle events

Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-18 15:02:04 +02:00
SkyratBot
cefedcfec2 [MIRROR] Fix debug code in progressbar.dm [MDB IGNORE] (#21910)
* Fix debug code in progressbar.dm (#76106)

## About The Pull Request
exceptions need to be thrown

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

* Fix debug code in progressbar.dm

---------

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2023-06-18 13:42:36 +01:00