Commit Graph

16891 Commits

Author SHA1 Message Date
SkyratBot
9ca698b679 [MIRROR] Adds circuit for bank machine. [MDB IGNORE] (#22583)
* Adds circuit for bank machine.

* Update code/modules/research/techweb/all_nodes.dm

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2023-07-19 15:26:09 -04:00
SkyratBot
8f6dd1c466 [MIRROR] Adds in the smoothbore disablers. [MDB IGNORE] (#22528)
* Adds in the smoothbore disablers.

* Resolve merge conflicts + ammo HUD stuff

* No better way to do this than a skyrat edit since the proc sleeps

* Fixes a changed path

---------

Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-07-19 00:13:46 -04:00
SkyratBot
07fa5992a4 [MIRROR] Adds p_They (and friends) for capitalized pronoun helpers [MDB IGNORE] (#22555)
* Adds p_They (and friends) for capitalized pronoun helpers

* Fixes modular pronouns

* Merge conflict

* Update spank_related.dm

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-07-18 22:10:59 -04:00
Bloop
a9c80a29a3 [MISSED MIRROR] Implements a macro for checking mind traits (#76548) (#22447)
* Implements a macro for checking mind traits (#76548)

![image](https://github.com/tgstation/tgstation/assets/82850673/f85d0556-1806-40bf-92b8-597e46ccb4af)
Seeing this pattern repeated over various sections of code was starting
to piss me off

Lessens chance to cause errors with mind traits, ensures consistent
behavior, makes it easier to change how mind traits work if necessary.

hopefully not player facing

---------

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

* modular stuff

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2023-07-18 21:32:47 -04:00
SkyratBot
7f6a3cea58 [MIRROR] Removes side effects in Destroy from cyborgs, misc related code cleanup [MDB IGNORE] (#22575)
* Removes side effects in Destroy from cyborgs, misc related code cleanup (#76867)

## About The Pull Request

- Removes side effects from cyborg `Destroy`
- Right result in more cyborgs getting dusted... Will have to check this
out.

- General AI / cyborg code cleanup

Fixes #76855

## Why It's Good For The Game

Some more consistent, clean code

## Changelog

🆑 Melbert
fix: Cyborgs no longer drop their radio key when deleted, only when
deconstructed first
fix: Cyborgs no longer drop their MMI on deletion, only prior to
deletion. This may result in bad code rearing its ugly head, open an
issue report on the github if you're a cyborg and get ghosted when you
feel like you shouldn't
fix: Runtime from syndie cyborgs spawning
fix: AI deaths are reported to black box
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Removes side effects in Destroy from cyborgs, misc related code cleanup

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-07-18 20:58:40 -04:00
SkyratBot
4e4db212b9 [MIRROR] Fixes birdshots cannonballs not spawning by replacing the cannonballs with a stack [MDB IGNORE] (#22546)
* Fixes birdshots cannonballs not spawning by replacing the cannonballs with a stack (#76839)

## About The Pull Request

pretty much just as the Title says, birdshot used the
obj/projectile/bullet/cannonball path instead of having its own stack of
4 cannonballs, this made it so that it couldn't load the cannonballs as
bullet types don't load as actual items to use.

i have added a 4 stack of cannonballs to the obj/item/stack/cannonball
tree so that way they can get slotted in birdshot to replace 'em, also
for use later by whomever else wants a smaller amount of cannonballs as
the only other amount for regular cannonballs is 14 as used by the
skeletal pirate ship.

## Why It's Good For The Game

with birdshots intention to have originally been overrun by pirates i
assume it was meant to actually spawn because the cannon and gunpowder
barrels also spawn for usage, but the cannonballs themselves didn't.
allows players to find 'em in the area in maints they're supposed to be
found in so you can get up to some hijinks as i assume the creator
intended for all you maint dwellers.

## Changelog

🆑

fix: replaces the unspawnable cannonballs in birdshot maintenance with a
stack so that the 4 cannonballs properly spawn, make sure to point them
away from medical!

/🆑

* Fixes birdshots cannonballs not spawning by replacing the cannonballs with a stack

* Update birdshot.dmm

---------

Co-authored-by: Donglesplonge <120208006+Donglesplonge@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-18 19:23:36 -04:00
GoldenAlpharex
e5f29e7999 [MIRROR] SPECIES NUKING 2023 EXTRA: Makes skin tones a trait instead of a species variable [MDB IGNORE] (#22571)
* SPECIES NUKING 2023 EXTRA: Makes skin tones a trait instead of a species variable (#76410)

very similar to https://github.com/tgstation/tgstation/pull/76297, much
simpler though
removes the uses_skintones variable for similar reasons

Species variables are less useful and modular than traits.
If for some reason we ever add a mechanic that for some reason makes
your character use skin tones instead of whatever their original color
is, it will be much simpler to be handled.

not player facing

* Fixes all of the remaining issues

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-07-18 18:38:59 -04:00
SkyratBot
c8d8c34aee [MIRROR] Fixes mini-fridge name [MDB IGNORE] (#22570)
* Fixes mini-fridge name (#76927)

## About The Pull Request
mini_fridge becomes mini-fridge. Shrimple as that
Closes: #76890
## Why It's Good For The Game
Minor grammatical mistake 💀
## Changelog
🆑
spellcheck: Maints fridge doesn't have _ in its name anymore
/🆑

Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>

* Fixes mini-fridge name

---------

Co-authored-by: DaydreamIQ <62606051+DaydreamIQ@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
2023-07-18 18:14:39 -04:00
SkyratBot
49f61b14a9 [MIRROR] make the pinguen a basic animal [MDB IGNORE] (#22568)
* makes the pinguin a basic animal (#76790)

## About The Pull Request
the penguin now is a basic animal and also now he can go and layed
penguin eggs to make penguin babys also the baby have a new behavier he
will now go and looked for his mom and when he found his mom he will
went to her and be happy when he close to his mom or if he mom is died
he will went to her body and he will be sad and also i putted this
behavier in the baby chicken. also now the pinguen mom will go and
looked for her eggs and when she find a egg she will putted it in the
middile of her legs and walked with it
![penguin with a
eggs](https://github.com/tgstation/tgstation/assets/138636438/e5f3d741-edc0-438f-b1b3-9e4ed2280532)

## Why It's Good For The Game
the pinguen now is a advance ai
## Changelog
the pinguen now have a more advance

🆑
refactor: the penguin is a basic animal
add: the penguin now layed eggs
add: the penguin and the chicken babys will go look for adult penguin or
chicken and be happy when he is near the adult
/🆑

* make the pinguen a basic animal

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
2023-07-18 17:00:04 -04:00
SkyratBot
3fd2f8134b [MIRROR] Optimization pass focused on foam code (saves about 30% of cpu usage I think) [MDB IGNORE] (#22530)
* Optimization pass focused on foam code (saves about 30% of cpu usage I think) (#76104)

## About The Pull Request

Foam is crummy at high load rn, both because it runs on a low priority
background subsystem, and because it wastes a bit of time.
Let's reduce usage (while speeding up a bunch of other stuff too), and
give it more cpu generally.

[Optimizes reagent processing
somewhat](d409bd4afc)

Turns out most of the cost of foam is the reagents it carries, and the
varying effects they have
I'm doing my best here to optimize them without touching "user space"
too much

That means doing things like prechecking if we're gonna spawn on top of
an existing decal (from glitter, flour, etc), and using that same proc
to also avoid spawning on unacceptable turfs (I had to convert
inheritance to a bitflag system to make this work, but I think that's ok
since we want it imparative anyhow)

It's actually nice for code quality too, since it lets me clean up code
that was using raw locates and weird var pong.
god I wish I had implied types man

[Optimizes foam spreading in its most accursed aspect, reagent
copying](5cc56a64ad)

Holy shit reagent code is a lot.

I'm doing a bunch of small things here. istype in init -> typecache,
removing procs that are called once and loop over a list we JUST looped
over (ph and the caching for reactions in particular)

I am mainly trying to optimize copy_to here, since that's what foam
spams
As a part of this, I removed a pair of update_total and handle_reactions
calls that were done on the reagents we are copying FROM

I have no god damn idea why you would want to do that, but if anything
is relying on the copy proc modifying the source, then that code
deserves to break

Speaking of, I cleaned up handle_reaction's main filter loop a lot,
removed a lot of redundant vars and changed it from a full loop w
tracker vars to an early exit pattern

This meant using a loop label, which is unfortunate, but this is the
fastest method, and it does end up cleaning up the code significantly,
Which is nice

Oh also I made the required_other var function even if there is no atom
attached to the reaction, since I don't see why it wouldn't

This last bit is gonna get a bit esoteric so bear with me

Failing calls (which are most of them) to handle_reactions are going to
be fastest if they need to check as few reactions as possible

One reagent in a reaction's required list is marked as the "primary",
and thus gets to trigger checking it.
We need all the reagents to react anyhow, so we might as well only check
if we have one particular one to avoid double checking

Anyhow, in order to make most calls the fastest, we want these reactions
distributed as evenly as possible across all our reagents.
The current way of doing this is just taking the first reagent in the
requirements list and using it, which is not ideal

Instead of that, lets figure out how many reactions each reagent is in,
then divy reactions up based off that and the currently divvied
reactions

This doubles the reagent index count, and takes the most common reagent,
water, from 67 reactions to I think like 22

Does some other general cleaning in reagent code too, etc etc etc

[Fixes runtimes from the forced gravity element being applied more then
once](941d067611)

I feel like this element should take a trait source or something to make
them potentially unique, it's too easy to accidentally override one with
another

[Removes connect_loc usage in atmos_sensitive, replaces it with direct
reg/unreg](de1c76029d)

I only really used it because I liked the componentization, but it costs
like 0.2 seconds off init alone which is really stupid, so let's just do
this the very slightly harder way

[Micros foam code slightly by inlining a LinkBlockedWithAccess
call](744da3694c)

This is in the space of like 0.05 seconds kinda save so I can put it
back if you'd like, the double loop just felt silly

[Changes how foam processes
slightly](ee5e633e32)

Rather then treating spreading and processing as separate actions, we do
both in sync.
This makes foam fade faster when spreading, which is good cause the
whole spread but unclearing foam thing looks silly.
It also avoids the potential bad ending of foam spreading into itself,
backwards and forwards. This is better I promise.

[Bumps fluid priority closer to heavy eaters, moves it off
background](811797f09d)

Also fixes a bug where foam would travel under public access airlocks.

## Why It's Good For The Game

Saves a lot of cpu just in general, from both init and live.
In theory makes foam faster, tho I'd have to test that on live at
highpop to see if I've actually succeeded or not. Guess we'll see.

* Optimization pass focused on foam code (saves about 30% of cpu usage I think)

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-18 16:49:51 -04:00
SkyratBot
6968c4889c [MIRROR] Blacklist abductor posters from spawning [MDB IGNORE] (#22538)
* Blacklist abductor posters from spawning (#76876)

* Blacklist abductor posters from spawning

---------

Co-authored-by: BlueMemesauce <47338680+BlueMemesauce@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-18 16:43:28 -04:00
Bloop
46d84e6119 [MANUAL MISSED MIRROR] Replaces lava and chasm's "safeties" and ignoring turf slowdown on catwalks with traits and a new element (#22384)
Replaces lava and chasm's "safeties" and ignoring turf slowdown on catwalks with traits and a new element. (#76376)

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

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

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

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

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-07-18 00:06:04 -04:00
Bloop
b674e72ef1 [MISSED MIRROR] Macros multi-z code, removes the false premise of manual offsets (#76248) (#22531)
* Macros multi-z code, removes the false premise of manual offsets (#76248)

## About The Pull Request

[Removes the pretense of relative multiz
levels](0293fdc2bd)

Our multiz system does not support having a z level that is only
connected one way, or which goes down backwards or anything like that.

That's a fiction of the trait system, the actual backend has never
really supported this.

This pr removes the assumptions we were making backend around this, and
uses that to save cpu time.

I am also converting multiz_levels from an assoc list to a pure one,
which saves significantly on access times and cleans up the code
somewhat.

Also I'm making the get_below/get_above procs into macros, for the sake
of cpu time.

[Converts the starlight disease to use BYOND's directional defines
instead of our
own](7d698f02d9)

To some extent spurred on by
https://github.com/DaedalusDock/daedalusdock/pull/298, tho it was known
before

## Why It's Good For The Game

Faster multiz code, faster init, etc etc etc

* modular files how very dare you

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-07-18 02:28:15 +00:00
GoldenAlpharex
4aec91cc06 [MANUAL MIRROR] Fixes carbon bodytypes not always being synchronized with bodyparts + Fixes dumb usage of TRAIT_LIVERLESS_METABOLISM i caused [MDB IGNORE] (#22519)
* Fixes carbon bodytypes not always being synchronized with bodyparts (#76522)

Fixes https://github.com/tgstation/tgstation/issues/76481
TLDR /mob/living/carbon/human/species subtypes were NOT updating their
bodytypes on spawn due to absurd and wacky carbon bodypart creation code
that meant try_attach_limb() never got called (What the FUCK?)

* Fixes CI too

* [NO GBP] Fixes dumb usage of TRAIT_LIVERLESS_METABOLISM i caused (#76500)

## About The Pull Request

TRAIT_LIVERLESS_METABOLISM should do what it implies, and make you
always metabolize as if you were liverless.
This was a stupid mistake on my part because I wasn't aware
TRAIT_STABLELIVER was a thing.

## Why It's Good For The Game

TRAIT_LIVERLESS_METABOLISM and TRAIT_STABLELIVER should not behave the
exact same.

## Changelog

Not quite player facing.

* I fucking swear I fixed this before

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-07-16 20:33:33 -04:00
GoldenAlpharex
9e1d33a309 [MANUAL MIRROR] SPECIES NUKING 2023: Head flags 3 & Knuckles: Fixes some growing pains with head flags [MDB IGNORE] (#22516)
* SPECIES NUKING 2023: Head flags 3 & Knuckles: Fixes some growing pains with head flags  (#76440)

Fixes https://github.com/tgstation/tgstation/issues/76422
This was caused by me somehow not using the wrapper there and not
noticing it

Also fixes hair gradients and facial hair gradients. I am pretty sure
they were uhh, being hidden behind the actual hair/facial hair. Oops.

Also also fixes spawning yourself as a human as admin and getting random
hair colors. That was just a failure to update the icon after updating
everything, I think?

Additionally, to totally babyproof all of this, ensures that head_flags
involved stuff gets applied AFTER species by creating a new preference
priority, and uses two separate wrappers to apply gradient style and
color.

Here's this absolute hellspawn to prove that everything works.

![image](https://github.com/tgstation/tgstation/assets/82850673/7ed29a68-cb60-4b28-996c-3be0e7331be8)

![image](https://github.com/tgstation/tgstation/assets/82850673/e57128be-0d7c-46ad-90dd-ee25981d0fea)

![image](https://github.com/tgstation/tgstation/assets/82850673/5c3619a8-fe6f-42b3-9fdc-12277d568e8d)

![image](https://github.com/tgstation/tgstation/assets/82850673/fdd13000-2220-47ad-8e02-44bc75a4a907)

Sorry for being so damn good at breaking this codebase.

Bugs are bad they make you mad

🆑
fix: Hair and facial hair gradients work again now
fix: Facial hair colors apply properly again
fix: Admin spawned characters will get hair color preferences applied
properly
/🆑

* Fixed a compile error (whoops)

* Whoops fixed that wrong

* Okay now I compiled and made sure it was fixed for real, I swear!

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-07-16 19:44:49 -04:00
SkyratBot
8de62993cb [MIRROR] New traitor item: Polarized Contacts [MDB IGNORE] (#22513)
* New traitor item: Polarized Contacts (#76752)

## About The Pull Request
Adds a new simple but sweet traitor item for 3 tc, polarized contacts.
Use them in hand to upgrade your eyes to have +tier 2 flash resistance.
Single use.
Now if you have welder protection of 2 or higher, and someone checks
your eyes with a flashlight, your pupils to not dilate. This is
potentially possible non-antagonistically through the use of upgraded
robotic eyes.
## Why It's Good For The Game
The idea behind this change is to allow traitors some counterplay
against revolutionaries and security. If a traitor thinks they are about
to go into combat with people with flashes, they will be rewarded for
preparing. It also fills a similar role as no-slip shoes as being a low
cost but always nice to have passive item, which I don't think we have
enough of.
Its arguable that this should only be worth 2 tc to be on-par with
noslips, or that it should be more because flash protection is more
valuable.
## Changelog
🆑 itseasytosee
add: A new traitor item has been added, Polarized Contacts!
/🆑

---------

Co-authored-by: Sealed101 <cool.bullseye@ yandex.ru>

* New traitor item: Polarized Contacts

---------

Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: Sealed101 <cool.bullseye@ yandex.ru>
2023-07-16 18:41:20 -04:00
GoldenAlpharex
db83be17da [MANUAL MIRROR] SPECIES NUKING 2023: Head flags 2: Electric Boogaloo (#76298) [MDB IGNORE] (#22506)
SPECIES NUKING 2023: Head flags 2: Electric Boogaloo (#76298)

Continues the work I started on
https://github.com/tgstation/tgstation/pull/76074
Fixes https://github.com/tgstation/tgstation/issues/73782

Implements a bunch of wrapper procs for hair style, facial hair style,
etc etc the whole nine yards.
Fixes many issues, especially with gradients because I did sloppy tired
code that didn't work there.
Makes head/get_limb_icon() not a disgusting mess (well, at least makes
it less of a disgusting mess).

Actually makes hair and lips depend entirely on the bodypart.

🆑
refactor: Head rendering code has been updated significantly... Again.
Please report any issues with hair, facial hair, lipstick and such.
/🆑

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-07-16 18:16:12 -04:00
SkyratBot
9fe6c1cee6 [MIRROR] Some iron floor fixes. [MDB IGNORE] (#22512)
* Some iron floor fixes. (#76785)

fixed that borgs cant merge their floor with other iron floor fixed
power amount floor tiles use
## About The Pull Request
- Changed energy cost for borgs so its not the same as for rods.
- Made cyborg's floor tiles merge with base floor tiles and not the
cyborg base ones, so you can pickup floortiles.
## Why It's Good For The Game
Things work like intended.
## Changelog
🆑
fix: fixed energy cost on floor tiles for engi borgs.
fix: engi borgs can now properly merge base floor tiles with other base
floor tiles.
/🆑

---------

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

* Some iron floor fixes.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@ users.noreply.github.com>
2023-07-16 18:08:53 -04:00
SkyratBot
e70a2b31f1 [MIRROR] Signalizes an AI card thing [MDB IGNORE] (#22507)
* Signalizes an AI card thing (#76869)

## About The Pull Request

Changes this code to be signalized on AI cards

76bddbd903/code/modules/mob/living/silicon/ai/death.dm (L44-L49)

Minor code improvements as well (Moving the sleep out from flushing into
its own async proc)

## Why It's Good For The Game

Cringe code

## Changelog

🆑 Melbert
code: AI cards should react more snap-ily to having their occupant
perish
/🆑

* Signalizes an AI card thing

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-07-16 16:42:23 -04:00
Bloop
e6ca973aea [MISSED MIRROR] Converts sec armories to using the (not) random mapping spawners (#76392) (#22485)
* Converts sec armories to using the (not) random mapping spawners (#76392)

## About The Pull Request
Title.

## Why It's Good For The Game
Armories aren't really a dense area mapping wise, just a few guns there,
armor there, and some fluff security stuff (like HUDs or whatever).

This PR just converts most of the heavy stuff (armor, helmets, guns)
into spawning helpers with the aim to make mapping armories just a tad
bit quicker and easier.

The only thing this does kinda nuke is the neatly stacked stuff, which
the mapping helpers kinda suck at doing, but its not totally woeful.

## Changelog

🆑 Jolly, timothymtorres
code: Jolly: Armories across all maps have been tweaked slightly. Report
to a Nanotrasen security advisor for any missing guns, armor, helmets or
anything else that was there previously (that means, post an issue on
Github if theres an issue!!)
code: timothymtorres: Random item spawners now support better control of
their X/Y pixel offset.
/🆑

---------

Co-authored-by: Tim <timothymtorres@gmail.com>

* Adds the spawners to the modular armories where applicable

* Update random_spawners.dmi

* grr

---------

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
2023-07-16 12:17:31 -04:00
SkyratBot
2f552919c1 [MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two

* Merge conflict resolution

* Modular path hell

* hmm

* Update 2022-10.yml

* Another modular thing

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-16 00:41:18 -04:00
SkyratBot
0a03e8a2a7 [MIRROR] Machine list is now stored in SSmachines | Remove excessive use of global lists for specific machine types [MDB IGNORE] (#22481)
* Machine list is now stored in SSmachines | Remove excessive use of global lists for specific machine types

* Resolve merge conflicts

* Modular adjustments

* destroy this double return on destroy

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 22:51:23 -04:00
SkyratBot
3fe9b06d4c [MIRROR] Imports and Contraband 2: Landfill Gacha Addiction (I put trash randomizers into cargo crates and called it content) [MDB IGNORE] (#22475)
* Imports and Contraband 2: Landfill Gacha Addiction (I put trash randomizers into cargo crates and called it content)

* Merge conflict

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 22:29:49 -04:00
Bloop
a6dc498a14 [MISSED MIRROR] Alcoholic quirk (#76510) (#22464)
Alcoholic quirk (#76510)

So you're telling me we have a smoker quirk and we DON'T have an
alcoholic quirk?
What a travesty! Time to fix that.

This quirk is essentially equivalent to smoker, but instead of a
favorite brand you get a favorite *brandy* (as in, favorite type of
booze).

![image](https://github.com/tgstation/tgstation/assets/82850673/f3883f76-414a-48a8-8f69-76f1bc01d020)

More quirk variety with decent roleplay value.
What will we do with a drunken sailor?

🆑
add: Added Alcoholic as a negative quirk.
/🆑

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2023-07-15 19:27:24 -04:00
Bloop
87d0fff3a8 [MISSED MIRROR] Fixes silly siding sprites (#76586) (#22439)
* Fixes silly siding sprites (#76586)

## About The Pull Request

Detaches siding code from the macro in #74171 because it wasn't doing
its job properly. I tried to fix it, but I'm not a very good coder and
opted to manually define each of the variations of siding. So this is
more of a bandaid fix than anything.

## Why It's Good For The Game

Fixes #76195, fixes #75059
Correct turf decals look better than wrong ones

look at how much nicer this corner looks now

![image](https://github.com/tgstation/tgstation/assets/73006946/39e78e69-e26f-4456-ac87-fecfe4d288ef)

## Changelog

🆑
image: Siding now uses the correct sprite on corners and endpieces.
/🆑

* Fixes modular icon states

---------

Co-authored-by: norsvenska <73006946+norsvenska@users.noreply.github.com>
2023-07-15 14:45:16 -07:00
Zergspower
bb3d041572 [Manual Mirror Fix] Removes shitty "status" variable on organs, makes them use organ_flag (#22480)
* Removes shitty "status" variable on organs, makes them use organ_flags instead (#76350)

Title.

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

not applicable unless i fucked up

---------

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

* Modulars

* Some merge skew

* More diffs

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 17:27:49 -04:00
SkyratBot
e264ee3644 [MIRROR] Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts [MDB IGNORE] (#22469)
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts

* Update communications.dm

* Modular override

* Some modular adjustments, removes 'emagged' vars in favor of obj_flags

* whoops, mobs don't have obj_flags.

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 16:46:17 -04:00
Bloop
bf30f6e31e [MISSED MIRROR] Robot suit hard-del / exited cleanup (#76583) (#22438)
Robot suit hard-del / exited cleanup (#76583)

## About The Pull Request

Constructed cyborgs seemed to hard delete pretty consistently due to
their robot suit having poor reference handing

Goes through and better implements exited for cyborgs and robot suits

Also a hard delete with forced AIs that may have resulted in some
metagaming

Also fixes 1 nodrop check for hats

## Why It's Good For The Game

Hard deletes are bad

## Changelog

🆑 Melbert
fix: Fixed some hard deletes involving constructed cyborgs
fix: Cyborgs with nodrop hats no longer lose them on tip
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2023-07-15 16:00:22 -04:00
Bloop
4ae00db524 [MISSED MIRROR] makes the rcd able to make girders (#76515) (#22466)
makes the rcd able to make girders (#76515)

## About The Pull Request

rcd can make girders at half the cost of making a wall in 1.3 seconds

## Why It's Good For The Game
more "rapid" than using iron for girders and putting whatever material
on it

## Changelog
🆑
add: rcd can make girders now
/🆑

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
2023-07-15 15:07:34 -04:00
Bloop
6ddf70316d [MISSED MIRROR] Hemiplegic quirk (#76526) (#22450)
* Hemiplegic quirk (#76526)

## About The Pull Request

Like paraplegic, but instead of a horizontal half of your body being
fucked, it's a vertical half!

![image](https://github.com/tgstation/tgstation/assets/82850673/aab1059e-9f5a-4778-a72a-c55c9fe75403)

![image](https://github.com/tgstation/tgstation/assets/82850673/2edf1a76-906f-41f5-984c-4260b65a279d)

## Why It's Good For The Game

Character customization and pure, undistilled human suffering.

## Changelog
🆑
add: Added Hemiplegic quirk.
/🆑

---------

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

* Update jobs.dm

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2023-07-15 10:39:27 -04:00
SkyratBot
fd2c6fb35b [MIRROR] Adds a new heavy weight space pirate variant: The space IRS! [MDB IGNORE] (#22365)
* Adds a new heavy weight space pirate variant: The space IRS!

* Fix merge conflicts, UpdatePaths

* Fixes some path changes

* Updates icon files, adds a new sprite for breacher slug box illustration

* Removes some skyrat edits and puts them in modular overrides instead

---------

Co-authored-by: Singul0 <127663818+Singul0@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 03:39:23 -04:00
SkyratBot
74af69d062 [MIRROR] Adds cardboard IDs to the game: The broke man's agent ID. [MDB IGNORE] (#22341)
* Adds cardboard IDs to the game: The broke man's agent ID.

* Fixes some undocced edits, formats others to match spec

* Fixes a merge conflict

---------

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

* Icons

---------

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

IT'S OVER.

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

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

---------

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

* Makes it all work

* Fix widespread vampirism (#76414)

## About The Pull Request

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


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

## Changelog

🆑 Melbert
fix: Fix everyone being vampires
/🆑

* Whoops, missed one!

---------

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

* Fixes all of the left-over issues

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

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

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

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

---------

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

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

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

TO DO LIST:

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

Scrapped:

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

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

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

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

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

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

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

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

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

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

---------

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

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

* Update guns.dm

* Update guns.dm

* Fixes vox/teshari greyscale config paths

---------

Co-authored-by: Cheshify <73589390+Cheshify@users.noreply.github.com>
Co-authored-by: carlarctg <53100513+carlarctg@ users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-14 15:21:42 -04:00
SkyratBot
5c70b67325 [MIRROR] Adds a new passive changeling ability - the Defibrillator Grasp. Adds support for 0 cost changeling abilities. [MDB IGNORE] (#22189)
* Adds a new passive changeling ability - the Defibrillator Grasp. Adds support for 0 cost changeling abilities.

* Merge conflict

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-14 09:13:59 -04:00
Iajret
b0898052b6 Fixes combat wrench (#22451)
Update wrench.dm
2023-07-14 08:58:22 -04:00
Pinta
42134eeeb5 [Mirror Mistake] Fixes Warden's bag not showing up inside of warden's locker (#22435)
Update security.dm
2023-07-14 01:15:29 -04:00
SkyratBot
7b4b687157 [MIRROR] Allows players to rename the skeleton model [MDB IGNORE] (#22431)
* Allows players to rename the skeleton model (#76776)

Allows players to change the name and description of the skeleton model
using a pen.

* Allows players to rename the skeleton model

---------

Co-authored-by: Vladin Heir <44104681+VladinXXV@users.noreply.github.com>
2023-07-14 03:42:51 +00:00
SkyratBot
35e28a5b4a [MIRROR] Goliath basic mob [MDB IGNORE] (#22412)
* Goliath basic mob (#76754)

## About The Pull Request

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

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

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

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

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

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

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

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

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

## Why It's Good For The Game

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

## Changelog

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

* Goliath basic mob

* Update ash_rituals.dm

* fixes icon diff

---------

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

* Fixing merge conflicts

* don't forget to ctrl+s!

* Another forgotten file

* urgh

* gets rid of vestiges of update_atom_languages()

and mind language holders

* No longer needed

* Fixes some modular grant_language calls

* Deprecated code

* This was up here before..

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

Removes some no longer needed code

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-13 22:38:45 -04:00
SkyratBot
5bb458c799 [MIRROR] Blood information will now always show in autopsy reports [MDB IGNORE] (#22426)
* Blood information will now always show in autopsy reports (#76780)

## About The Pull Request

Some (presumably) misplaced tabs in the autopsy report code resulted in
blood type and blood levels only showing if your blood was something
other than blood. So any blood-blooded corpse that didn't happen to have
any diseases would produce a completely empty "Blood" section in their
autopsy report. Such is no longer the case. I also moved the percent
sign inside the parentheses where it belongs.

![whatIfBloodWasReal](https://github.com/tgstation/tgstation/assets/44104681/3d6fc853-00df-4e1e-9fce-54b012eae71e)
## Why It's Good For The Game
autopsy report now does thing it is supposed to do 👍
## Changelog
🆑
fix: Autopsy reports will now correctly report blood type and level for
corpses who happen to have blood for blood.
/🆑

* Blood information will now always show in autopsy reports

---------

Co-authored-by: Vladin Heir <44104681+VladinXXV@users.noreply.github.com>
2023-07-13 22:31:34 -04:00
SkyratBot
2f5c7f8389 [MIRROR] Icon folder cleaning wave one [MDB IGNORE] (#22374)
* Icon folder cleaning wave one

* Fixe a merge conflict

* Fixes some more merge conflicts

* Fixes some modular icon paths

* Fixes even more modular icon paths...

Hopefully that's the last of them

* Fixes some merge discrepencies

* More merge issues

* ok

* not ok

---------

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

* Update revolution.dm

---------

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2023-07-13 12:05:44 -07:00
SkyratBot
0b21c78a89 [MIRROR] Elementises mining mob resistance to being attacked from off screen [MDB IGNORE] (#22362)
* Elementises mining mob resistance to being attacked from off screen

* Update code/__DEFINES/mobs.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2023-07-13 12:49:39 -04:00
SomeRandomOwl
962a73ff1d [ Semi-Modular ] Reconnects some sounds for event announcements (#22418)
Event Announcements
2023-07-12 22:30:39 -07:00
SkyratBot
a9ec5785cd [MIRROR] Fixes a runtime where deployable turrets were spawning projectiles with no source [MDB IGNORE] (#22416)
* Fixes a runtime where deployable turrets were spawning projectiles with no source (#76693)

## About The Pull Request

Title.
## Why It's Good For The Game

Runtimes bad.
## Changelog
🆑
fix: Deployable turrets no longer runtime when firing
/🆑

* Fixes a runtime where deployable turrets were spawning projectiles with no source

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
2023-07-13 01:37:19 +00:00
SkyratBot
6396947e2d [MIRROR] Roller bed inhand sprite [MDB IGNORE] (#22408)
* Roller bed inhand sprite (#76761)

* Roller bed inhand sprite

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-12 16:13:56 -07:00
SkyratBot
ee495653f8 [MIRROR] Puts garment bag in wardens locker as should [MDB IGNORE] (#22356)
* Gives Warden their own Garment Bag.

* Puts garment bag in wardens locker as should

* skyrat edits

* Merge conflict

---------

Co-authored-by: DATAxPUNGED <44149906+DATA-xPUNGED@users.noreply.github.com>
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-12 19:25:28 +00:00