Commit Graph

457 Commits

Author SHA1 Message Date
SkyratBot
20d03b6483 [MIRROR] Avoid creating string list of turf platings, rename some of the APIs, and improve focused test support - 160ms+ (more on prod) of init savings [MDB IGNORE] (#18357)
* Avoid creating string list of turf platings, rename some of the APIs, and improve focused test support - 160ms+ (more on prod) of init savings (#72056)

Looking at some stuff that uses `Join` right now as targets, this one's
pretty straight forward.

`/turf/open/floor/Initialize`, called 20,000 times without ruins,
creates a string list of the broken and burnt states. This carries the
fixed cost of `Join`, which is very expensive, as well as some (not
crazy, but not negligible) proc overhead.

These vars were used for effectively nothing, and have been replaced
with just using the list when necessary, which only adds an extra
millisecond of cost to update_overlays.

This was also used to automatically set `broken` and `burnt` at runtime.
However, this looks like it has gone completely unused. Adds a unit test
which adds it as a static field to the only type that cared about it,
which was abductor tiles, which is wrong anyway, but Whatever. I want to
support people making a subtype of floor tiles that are pre-broken
without it messing up stuff silently, so the test is there.

While I'm at it, renames `setup_broken_states` and `setup_burnt_states`
to remove `setup_`, since they don't really do that anymore (and never
did).

Also also, adds support for `PERFORM_ALL_TESTS` to work with multiple
focuses.

For reviewing, basically all of the changes are in floor.dm, aside from
test stuff, which is unit_test.dm.

* Avoid creating string list of turf platings, rename some of the APIs, and improve focused test support - 160ms+ (more on prod) of init savings

* a

* FUCK

* nope

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-01-12 11:39:51 -05:00
SkyratBot
c2fb78284c [MIRROR] Basic Faithless Mob [MDB IGNORE] (#18616)
* Basic Faithless Mob (#72479)

## About The Pull Request
Turns the faithless mob into a basic mob with unique behaviors, it will
now break lights and drag around victims bodies. Can also punch open
airlocks if they can be opened.
## Why It's Good For The Game
Now the faithless mob has its own unique behavior and it is cool to see
more AI variety.
## Changelog
🆑
add: Faithless will now also break lights and drag victims around
refactor: Faithless into basic mob
/🆑

* Basic Faithless Mob

* SR

Co-authored-by: Comxy <tijntensen@gmail.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2023-01-11 18:01:48 -08:00
SkyratBot
509b89f45c [MIRROR] Contextual tutorials for swapping hands and dropping items [MDB IGNORE] (#18604)
* Contextual tutorials for swapping hands and dropping items

* Fixes

* Oops

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2023-01-10 14:26:08 +01:00
SkyratBot
be18901411 [MIRROR] [ready] unit tests all worn icons [MDB IGNORE] (#18491)
* [ready] unit tests all worn icons (#72370)

Fixes #71692

🆑 ShizCalev
code: Added a unit test for ALL worn icons.
fix: Fixed a bunch of broken worn icons!
/🆑

* [ready] unit tests all worn icons

* Should have fixed most of the failures now

* Here, hopefully that should fix what was left

* Okay maybe it just hadn't been fixed yet

* I can be a bit dumb sometimes

* Okay, now it's going to work, I promise

* I'm so tired of this

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-01-09 21:10:28 -05:00
SkyratBot
ce22bf5dc7 [MIRROR] Makes flags_inv better at actually hiding things when used on non-suit clothing [MDB IGNORE] (#18356)
* Makes `flags_inv` better at actually hiding things when used on non-suit clothing

* big diff

* fixes

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 14:01:12 -05:00
SkyratBot
8e8002b555 [MIRROR] Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars [MDB IGNORE] (#18348)
* Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars

* merge conflicts

* adjust_eye_blur and set_eye_blur_if_lower

* adjust drowsiness overdoses

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 13:14:47 -05:00
SkyratBot
7c2e0227e2 [MIRROR] Converts ghosts mobs to a basic mob, slightly changes how ghosts are given their identities [MDB IGNORE] (#18550)
* Converts ghosts mobs to a basic mob, slightly changes how ghosts are given their identities (#72196)

## About The Pull Request

Performs a very simple conversion of ghosts to basic mobs. They're
relatively lacking in unique behavior in their current state, but they
didn't really have any when they were simple animals either. They
retaliate, they float, they do everything they did before, but now as a
basic mob.

Kilostation and Derelict Station 6 have had their mapped-in ghosts
converted to the new type as well. I'm unsure if there are any other
mapped instances of ghosts that will need changing, but please let me
know if there are.

Also in this PR is a slight rework of how ghost's get their hair/name.
As an ADDED BONUS, ghosts now get random hair to gow ith their randomly
generated names, rather than hair only being only possible through
varediting. (Thank you tattle for helping me figure this out).
## Why It's Good For The Game

Strikes another simple_animal from existence. Gives ghost mobs a bit
more _visual flair_.
## Changelog
🆑
code: Ghosts are now basic mobs! You might not notice any difference,
but...
code: Ghost mobs now spawn with hair and sometimes facial hair.
/🆑

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

* Converts ghosts mobs to a basic mob, slightly changes how ghosts are given their identities

Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 09:10:43 -05:00
SkyratBot
7ee524f748 [MIRROR] Basic Mob Carp Part VIII: Basic Mob Carp [MDB IGNORE] (#18344)
* Basic Mob Carp Part VIII: Basic Mob Carp

* maps

* missed killing main carp file

* shorki and ocean biomes

* shorki 2: pet-a-boogaloo

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 05:48:50 -05:00
Zonespace
e38eee6dee holopara qol update (#72042) (#18438)
holoparasite types have improved code
admins can now give someone a holoparasite through a new menu in vv
dropdown
alt click holopara abilities were moved to right click (support's beacon
wasn't, but support's heal mode was)
holoparas have less hardcoded stuff so admins can edit them easier
holoparasites now get their light color from their guardian color
holoparasites no longer have the hostile faction, things will attack
them
holoparasites now have a damage overlay, so you can see how much your
summoner is damaged
holoparasite health updating is now event based rather than running on
life, so you'll see health changes everytime they happen, rather than
every 2 seconds
holoparasites fly properly again (they cant spacewalk, but count as
flying for stuff like chasms)
holoparasite creation now uses a radial menu with tooltips for each
subtype. it also shows ghosts which type you picked
holoparasites can no longer be fugu'd
adds support for ownerless holoparasites
fixes mildly related bugs along the way

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-01-09 05:39:54 -05:00
SkyratBot
3af3989a89 [MIRROR] Makes biological states for wounding limb based, not species based [MDB IGNORE] (#18257)
Makes biological states for wounding limb based, not species based (#71745)

I noticed something pretty terrible when playing around with some humans
locally.
As it turns out, limbs did not preserve their biological state when
amputated - This meant that a skeleton limb on a normal human, still
behaved as if it had a bunch of flesh and veins on it.
I didn't like that, and it seems like an oversight, so I decoupled the
biological state from the species and made it limb based.

What does this mean?
Skeleton limbs on a human will not bleed, but will still break (and be
more prone to breaking)
Human limbs on a skeleton will not bleed, however they will get cuts and
pierces that will not clot and need to be treated to go away - These
limbs will have the same requirements for dismemberment on a skeleton as
they have on a human.

This makes limbs behave according to how they look instead of causing
mild confusion.

🆑 Big chungus wholesome 100
fix: Amputated and reattached limbs now get wounded based on their own
biology, not the current owner's biology.
/🆑

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-01-09 17:24:08 +13:00
GoldenAlpharex
a21d202f02 Fixes screenshots properly this time + bonus fixes (#18596)
* Fixes compile stack_trace about invalid armor on Interdyne

* Makes humans (the mobs, not the species) actually update their body when their species is set

* Fixes roundstart slimes (Xenobiological Slime Hybrids) having three eyes instead of two

* Updates four of our screenshots that weren't correct

* Updates the blob infection screenshot too
2023-01-08 17:02:12 -08:00
Zonespace
c48e48027a Revert "[MIRROR] Adds the Venom Antagonist [MDB IGNORE]" (#18602)
Revert "[MIRROR] Adds the Venom Antagonist [MDB IGNORE] (#18436)"

This reverts commit 1ea35425c0.
2023-01-08 19:25:45 -05:00
SkyratBot
1ea35425c0 [MIRROR] Adds the Venom Antagonist [MDB IGNORE] (#18436)
* Adds the Venom Antagonist (#72346)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
adds the venom antagonist

dont review this its not worth it

## Why It's Good For The Game

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
venom they wont know what hit em
![image](https://media.tenor.com/dmz548-c-WgAAAAC/venom-venom-antag.gif)

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: Venom antag
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

* Adds the Venom Antagonist

* Update venom.dm

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-08 11:34:01 -08:00
Tastyfish
01b1dafbf8 [MIRROR][Cherrypicked] Reworks how legs are rendered yet again because it was very convaluted i hated it (#18557)
* Reworks how legs are rendered yet again because it was very convaluted i hated it

* merge conflicts

* correct comment

* Fixes husk appearances not working, adds a screenshot test for it (#72190)

## About The Pull Request

Fixes #72159

Before this proc used to early return when the limb was husked
The leg refactor changed it to no longer early return and as a result it
overrided the generated husk icon with a normal limb icon
So I just wrapped even more of the proc in `!is_husked`, since like most
of it is not supposed to run

Screenshot tests husks too

## Why It's Good For The Game

Husks are good(?)

## Changelog

🆑 Melbert
fix: Husked bodies look husked again
/🆑

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-01-07 23:35:56 -08:00
SkyratBot
7263765bd4 [MIRROR] Jellypeople and stargazers use the correct eyes sprite. [MDB IGNORE] (#18305)
* Jellypeople and stargazers use the correct eyes sprite. (#72175)

## About The Pull Request

Jellypeople and stargazers both have three eye sockets on their sprites,
but due to the way eyes work, they use the incorrect eyes on their
sprite. This leads to both of these species looking fairly ugly, with
the wrong arrangement of eyes. This PR adds a unique eyes organ, "jelly
eyes", to these two species. This organ has no special properties, but
makes them properly display three eyes.

![image](https://user-images.githubusercontent.com/105025397/209075852-226ef72d-4f67-4b59-8438-c9aa72d07976.png)
_The current jellyperson eyes appearance vs. the new one, in obnoxious
pink for visibility._

![image](https://user-images.githubusercontent.com/105025397/209075951-23f317ab-63e7-482a-b843-b9a0246d3231.png)
_The new "jelly eyes"._

Incidentally, jelly eyes _can_ be implanted into other species to give
them three eyes. This can look somewhat odd depending on how a
particular species's eye sockets are drawn, but this is also an
extremely niche interaction - so most _likely_ not a problem.
## Why It's Good For The Game

The jelly eyes _already_ have existing on-mob sprites, so I can only
assume they stopped working due to a refactor in how eyes worked. These
species look better with the correct eyes sprites restored.
## Changelog
🆑
fix: Implemented "jelly eyes" to make jellypeople and stargazers use the
proper eyes sprite.
/🆑

* Jellypeople and stargazers use the correct eyes sprite.

* screenshot

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2023-01-07 22:31:08 -08:00
SkyratBot
011fefdd81 [MIRROR] Refactors armor into dedicated subtypes [MDB IGNORE] (#18291)
* Refactors armor into dedicated subtypes

* start

* most tg things

* pain (#18584)

* shit

* non-mod changes

* compile

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

* #18291

* compile fix

* ???

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 20:06:16 -08:00
SkyratBot
cf660f2b1e [MIRROR] Unit Tests Door/Airlock Access Working [MDB IGNORE] (#18568)
* Unit Tests Door/Airlock Access Working (#72461)

I screwed up with my access changes (on my local, I made sure I could
still open doors rather than be kept out of places), and #72458 fixes
that. However, let's also add a unit test to prevent that regression
again. We just do five different access "checks", and see if all five
different scenarios should work as intended.

As you can see, this PR will not pass unit tests. This is supposed to
happen, because at the time of this PR is opened, we will be in a
regression state that the aforementioned PR fixes. When the
aforementioned PR is merged, it should clear CI without any difficulties
(I know this because I ran the unit test myself)

* Unit Tests Door/Airlock Access Working

Co-authored-by: san7890 <the@san7890.com>
2023-01-07 08:29:10 -08:00
SkyratBot
bccf824a6c [MIRROR] Turned most syndicate mobs (+ viscerators) into basicmobs [MDB IGNORE] (#18270)
* Turned most syndicate mobs (+ viscerators) into basicmobs (#71871)

## About The Pull Request
Turns the syndicate simpleanimals into basicmobs: (+ stormtrooper, +
space variants) Base Mob, Knife syndies, pistol syndies, SMG
syndies,shotgun syndies, viscerators
also changes some instances of the simple_animal path into the basicmob
ones
Removes civillian syndicates which were useless and also completely
unused
Also removes mech pilots:
![2022-12-09
20_02_18-Window](https://user-images.githubusercontent.com/70376633/206777829-2e49e445-3532-4e8e-8e7c-8d9b0a3a14d0.png)

Also,
makes the basic targetting datums health check configurable
basic attack behavior can now fire in bursts

https://user-images.githubusercontent.com/70376633/206766607-cf2e3659-0c5e-4117-9af7-e573e35bdf80.mp4

https://user-images.githubusercontent.com/70376633/206766630-15b4469f-68be-44c7-9394-1f2b6fe07811.mp4

https://user-images.githubusercontent.com/70376633/206766613-69b42457-a03b-449d-a1b8-a5aa556c76e5.mp4

https://user-images.githubusercontent.com/70376633/206766619-5560a178-8d2f-4b22-adf1-22ace6f63a51.mp4

https://user-images.githubusercontent.com/70376633/206766627-e671d064-fd9e-4204-b823-aa2e07f7fc26.mp4

https://user-images.githubusercontent.com/70376633/206766633-108c1574-3554-4bc1-a9ac-8faed0ec4062.mp4
## Why It's Good For The Game

simpleanimal stinks basic mob good
syndicate AI was really bad to begin with so here we are

## Changelog
🆑
code: Turned most syndicate mobs into basicmobs, making their AI better
and (possibly) more deadlier!
del: Removed syndicate mech pilots and syndicate civvies
/🆑

Co-authored-by: kawoppi <94711066+kawoppi@ users.noreply.github.com>

* Turned most syndicate mobs (+ viscerators) into basicmobs

* map

* code

* Update syndibase.dmm

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: kawoppi <94711066+kawoppi@ users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-01-07 02:48:07 -05:00
SkyratBot
144b40c0df [MIRROR] Small changes to some card-related debug verbs [MDB IGNORE] (#18534)
* Small changes to some card-related debug verbs (#72361)

## About The Pull Request

Test Card Distribution debug verb has been altered slightly to prevent
runtimes. Backing out of any one of the menus would send null as an
argument, and cause a runtime.

The Validate Cards verb now returns a message if no errors are found. I
kept mistakenly clicking this verb thinking it was the Cardpack
Distribution one, and would get confused whenever nothing happened. Now
it returns a message!

Also converts some of the stuff I touch into snake case because pretty
code is nice.

## Why It's Good For The Game

Closes #66987. Feedback for the random debug buttons I accidentally
click is good.
## Changelog
🆑 Rhials
fix: backing out of the Test Card Packs debug menu will no longer cause
a runtime
fix: Validate Cards debug verb now gives feedback if no errors are
detected.
/🆑

* Small changes to some card-related debug verbs

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-01-06 08:48:33 -08:00
SkyratBot
625b66bd0c [MIRROR] Refactors bar drink icons into datum singletons / unit tests them [MDB IGNORE] (#18140)
* Refactors bar drink icons into datum singletons / unit tests them (#71810)

- Refactors bar drink icons.
- Juice boxes no longer have a hard-coded list of a bunch of reagent
types in their update state, and use a system similar to bar drinks.
- Glass and shot glass icon information are no longer stored on the
drink. Instead, they are now stored in glass style datums. These datums
store name, description, icon, and icon state of a certain container +
reagent type.
- Glass styles are applied via the `takes_reagent_appearance` component.
Glasses, shot glasses, and juice boxes have this component.
- This comes with support for being able to have drink icons from
different files, rather than requiring the drinks DMI.
- The britmug is now a subtype of mug.
   -  1 new icon: britmug filled.
- Various small code clean-up around drink reagents.
- Unit tests icon state setups for glass styles as well as all `/drink`
reagent container subtypes.
- Splits up the massive `drinks.dmi` into separate files.

*Disclaimer: Much of the drinking glass datums were written via script
automatically, so there may be errors present.*

- Much easier to add new drink styles, much more modular.
- It is no longer necessary for new drinks to be added to the massive
`drinks.dmi`. People working with drinks in the future can simply add
their glass style datum and point it to their file wherever it may be.
- Expandable system. Adding a new type of reagent container that works
similarly to bar drinks but for different types of icons is a breeze.
- Ensures going forward no bar drinks have invisible sprites.

🆑 Melbert
refactor: Refactored how bar drinks set their icons. Juice boxes now use
the same system.
/🆑

* Well that's all of them, unit tests prove me wrong

* now its a mapping pr lmao

* SHUT THE FUCK UP

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-01-04 09:10:12 -08:00
SkyratBot
78ebbb6f6e [MIRROR] (Hopefully) makes the plantgrowth_test not actually garbage [MDB IGNORE] (#18477)
* (Hopefully) makes the `plantgrowth_test` not actually garbage

* Update plantgrowth_tests.dm

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
2023-01-03 17:31:04 +00:00
SkyratBot
147f3a296c [MIRROR] some modsuits now have some modules pinned by default [MDB IGNORE] (#18384)
* some modsuits now have some modules pinned by default (#72258)

## About The Pull Request
cleans up some modsuit code i dont like about their modules
removes mod theme blacklists, they are unused and weve not needed them
at all so far
adds support for premade suits to have modules they pin by default
the default pins currently are:

advanced suit: jetpack
loader suit: clamp, magnet, hydraulic arms
mining suit: sphere transformation
safeguard suit: jetpack
magnate suit: advanced jetpack
traitor suit: armor booster, jetpack
elite traitor suit: armor booster, advanced jetpack
nukie suit: armor booster, advanced jetpack
elite nukie suit: armor booster, advanced jetpack
spetsnaz pyro suit: armor booster, advanced jetpack, flamethrower
prototype suit: tether, kinesis
apocryphal suit: jetpack
chrono suit: timestopper, rewinder, timeline jumper, kinesis plus,
timeline eradication
ninja suit: advanced stealth, star dispenser, emp pulse, weapon recall,
adrenaline boost, energy net

## Why It's Good For The Game
quickens some stuff up

## Changelog
🆑
qol: some modsuits now have some modules pinned by default
/🆑

* some modsuits now have some modules pinned by default

* SR modsuits

* word

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2023-01-02 08:15:57 -08:00
SkyratBot
115083352e [MIRROR] replaces chaos holoparasite with gaseous holoparasite [MDB IGNORE] (#18226)
* replaces chaos holoparasite with gaseous holoparasite (#72049)

## About The Pull Request
replaces chaos holopara with the gaseous holopara (if someone has a
better name suggest it)
instead of the fire and hallucinations, it can now expel gas from
itself, flooding an area with one of the following:
o2, n2, n2o, co2, h2o, bz or plasma
its punches cause sparks and it regulates the user's temperature and
extinguishes them
https://streamable.com/leukv5

## Why It's Good For The Game
chaos holopara is very underwhelming, the hallucinations arent really
that good and ss13 fires arent either, also there was no real theme tied
around it, what do hallucinations and fire have in common?
this may be more fun and it plays more with the sandbox, lets see!

## Changelog
🆑 fikou
del: chaos holoparasite
add: gaseous holoparasite, it can expel various gases from its body and
stabilizes the users temperature
/🆑

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

* replaces chaos holoparasite with gaseous holoparasite

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
2022-12-31 10:10:40 -08:00
SkyratBot
7fcdc4966f [MIRROR] Frog Basic Mob Refactor [MDB IGNORE] (#18378)
* Frog Basic Mob Refactor (#72044)

## About The Pull Request
Refactors the frog into a basic mob. The frog now does the same as the
old frog and can now properly be commanded by the regal rats.
## Why It's Good For The Game
## Changelog
🆑
refactor: Refractors the frog into a basic mob
/🆑

* Frog Basic Mob Refactor

Co-authored-by: Comxy <tijntensen@gmail.com>
2022-12-31 08:27:56 -08:00
SkyratBot
5c6c91144c [MIRROR] Changes the missing food icon test to cover ALL /obj's [MDB IGNORE] (#18139)
* Changes the missing food icon test to cover ALL /obj's

* Update implant.dm

* Hopefully fixes all the failing integration tests!

* Fixes more missing icons

* Even more icon fixes

* Hopefully that was all of them

* Okay now SURELY that's all of them

* I'm tired of this shit man

* Hopefully that's all, for real this time!

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-12-28 19:30:05 -05:00
SkyratBot
f04eab51d9 [MIRROR] tweaks the ninja modsuit helmet [MDB IGNORE] (#18370)
* tweaks the ninja modsuit helmet (#72259)

## About The Pull Request
the ninja modsuit helmet was weirdly inconsistent across the different
directions, all of them had different elements that werent seen in other
directions
this pr makes it consistent across all, and slightly tweaks the design

## Why It's Good For The Game
i like it :)

## Changelog
🆑
imageadd: tweaks the ninja modsuit helmet
/🆑

* tweaks the ninja modsuit helmet

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-12-28 07:49:37 -08:00
Paxilmaniac
f304c5f0f5 Moves modular uplink items into a module rather than master files + Removes some of the goofy ahh items we had available to traitors (#17813)
* oh the misery epic remix

* these arent here anymore

* how did we reach this point i wonder

* almost forgor

* how could i be such a fool

* ok

* may god have mercy on your wretched soul

* oops
2022-12-28 07:41:31 -08:00
SkyratBot
a388d294a6 [MIRROR] Saycode refactor, unit tests, and fixes [MDB IGNORE] (#18032)
* Saycode refactor, unit tests, and fixes

* parrot

* SR tweaks

* say tests from pstream/71873

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-12-15 15:00:29 -05:00
Tastyfish
a32245bd98 [MODULAR] Bumbles is now a basic mob. (#18136)
Bumbles is now basic.
2022-12-14 22:42:45 -08:00
SkyratBot
5ffc3c2dc8 [MIRROR] Fixes cursed duffelbag's permanent curse (again), unit tests it. [MDB IGNORE] (#18146)
* Fixes cursed duffelbag's permanent curse (again), unit tests it. (#71969)

## About The Pull Request

Curse of hunger did some funky stuff by checking for
`slot_equipment_priority` (which ONLY BUCKETS use) and registering
certain signals based on that

The signals they were using instead didn't pass the unequipper, so the
curse never got removed on unequip.

Replaced them with just equip and drop, as equipped and dropped work
just fine for it.

Unit tests this.

## Why It's Good For The Game

Infinite curse of clumsy and pacifism is kinda bad

## Changelog

🆑 Melbert
fix: Dufflebag Curse no longer lasts forever after the bag is destroyed.
fix: Dufflebag Cursing someone already afflicted properly doesn't try to
add the curse again
/🆑

* Fixes cursed duffelbag's permanent curse (again), unit tests it.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-12-14 22:39:53 -08:00
Rimi Nosha
c53f28969e [99% MODULAR] Synth and IPC Unification and Extended Customization! (#16967)
* What am I looking at?

* Okay, now limbs and switching to the three other types of synth!

* Hey, it compiles, but *definitely* doesn't work!

* Has a slight chance of working now!

* Actually compiles properly now!

* Nice one, dork

* Fuck limb code.

* And this is the story behind where the last 8 hours of my life went!

* My code will now throw the rattle if you do dumbdumb.

* I'M SORRY, MODULARITY

* Final code, maybe?

* Hmm, yes, today I will leave debug logs in my commits.

* Hmmm, maybe not enable that by default.

* Oh yea, nice one, dork.

* Oh yea, digitigrade exists. Also fixes all known runtimes. Also fixes me forgetting a couple of *very* important things.

* I feel special.

* Small bit of code cleanup!

* Android parts!

* Go away Blueshift compile error!

* E

* More code fixes!

* Synthliz fix

* Haha, shitcode go brrrr

* AAAAAAAAAAAAAAA

* Fix screenshot tests!

* Listen here you little shit-

* idontknowwhythisisbreakingantennasbutyoucankeepthenameiguess

* FUCK

* Turns out some antennas *do* use more than one colour, ugh.

* Nice one, genius.

* Address reviews, and also change IPC antennas to tri_bool instead of toggle- woops!

* Now that I know roughly how sprite accessories work, let's fix this at long last so I can finally get this merged.

* Oh yea, this!

* Oops, nice catch, unit tests!

* Very cool, PDA update

* Yeet!

* Apply suggestions!

* Oops!

* WHY DIDN'T YOU COMMIT

* I'm getting tired of fixing these conflicts.

* Ugh.

* Fix my shitcode, also make erp genitals check less intensive

* FUCK

* I am still suffering

* Fix

* e

* Fucking LEGS

* Fucking GREYSCALE

* REMOVE THIS BEFORE MERGE, DUMBASS

* Nevermind, this is unironically the best way to do it due to how our really weird prefscode works... pain.

* Stupid organic interface code edit
2022-12-14 18:22:55 -05:00
SkyratBot
fbc214d26a [MIRROR] Moves space initialization check to unit test - Saves 0.065s of init time [MDB IGNORE] (#18126)
* Moves space initialization check to unit test - Saves 0.065s of init time (#71796)

This hasn't been hit in a long time and this is an extremely hot proc,
doing these checks in unit tests should catch any cases, though
unlikely.

This has zero cost at runtime because `if (FALSE)` statically compiles
out.

* Moves space initialization check to unit test - Saves 0.065s of init time

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-12-13 20:59:00 -08:00
SkyratBot
86e811f782 [MIRROR] Adds a modular computer subsystem to shift modPCs away from radios [MDB IGNORE] (#17942)
* Adds a modular computer subsystem to shift modPCs away from radios (#71732)

## About The Pull Request

Adds the modular computer subsystem which is meant to replace mod PC's
reliance on networks and radios, specifically the network subsystem, the
ntnet interface, and /datum/ntnet. This PR removes station_root ntnets
entirely, but I tried to keep it small.

This PR also removes a ton of unused vars and defines, such as NTNet
channels that were unused (peer2peer and systemcontrol), atmos networks
(as they were removed a while ago) and NTNet var on relays (its stated
purpose is so admins can see it through varedits, but that's useless now
that it's a subsystem)

I also removed ``setting_disabled`` as a thing the RD can do, it turned
off ALL ntnet systems. However, this was when there were 4 different
ones, now that there's only 2 I thought it was redundant and he could
just click 2 buttons to close them.

## Why It's Good For The Game

``/datum/ntnet``, ``/datum/component/ntnet_interface``, and
``/datum/controller/subsystem/networks`` are all old-code messes that
depend on eachother and is hard for people to understand what exactly it
adds to the game. 90% of its features is allowing the Wirecarp app to
see all the ruins that spawned in-game, which I don't think is something
that we even WANT (why does the RD need to know that oldstation spawned?
Why should they know this anyway??)

This hopefully starts to simplify networks/ntnet to make it easier to
remove in the future, because surely there are better alternatives than
**this**

## Changelog

🆑
refactor: Modular computers NTnet and applications run on its own
subsystem, please report any new bugs you may find.
/🆑

* Adds a modular computer subsystem to shift modPCs away from radios

* Fixed contractor uplink

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-12-12 18:36:54 -05:00
SkyratBot
565af6876b [MIRROR] Makes dog a basic mob [MDB IGNORE] [MDB IGNORE] (#17930)
* Makes dog a basic mob [MDB IGNORE]

* conflict

* map updatepaths

* minor banana spider improvement

* unnecessary SR edit, minor path stuff

* chadian, borgi

* tram conflict

* fixes after testing

Co-authored-by: Tastyfish <crazychris32@gmail.com>
2022-12-12 16:45:23 -05:00
SkyratBot
a43afbd7e8 [MIRROR] [FUCK] Linters work again, V3 [MDB IGNORE] (#17950)
* [FUCK] Linters work again, V3

* i don't think these are all of them

* heehhooo there go the fucking m aps!

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2022-12-11 20:10:27 -05:00
SkyratBot
14b5fd6134 [MIRROR] Allows for offloaded tests to be focused [MDB IGNORE] (#17977)
* Allows for offloaded tests to be focused (#71719)

Focusing a test through TEST_FOCUS allows you to only run that one test.
It's very useful for developing. However, we have a bunch of offloaded
tests in `#ifdef UNIT_TESTS` that would not be focused. This changes it
so that those tests will now only run if either no test is focused, or
if their specific "focus only" test is focused.

This is done through a `PERFORM_ALL_TESTS` macro that replaces the
`#ifdef UNIT_TESTS`. This is completely free because `if (FALSE)`
constant folds.

Hide whitespace mode recommended.

* Allows for offloaded tests to be focused

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-12-09 03:52:12 +00:00
SkyratBot
13e3929ba1 [MIRROR] Food icon unit test [MDB IGNORE] (#17979)
* Food icon unit test (#71765)

I'm tired of #71736 happening

Closes #71743

![image](https://user-images.githubusercontent.com/6209658/205794116-bd87a14f-c3db-460e-8c1d-438fe9284e04.png)

* Food icon unit test

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2022-12-09 03:51:05 +00:00
SkyratBot
d141f8d6c3 [MIRROR] Atmospheric machineries now interact with each other directly, rather than going through a radio layer -- saves about 0.4s of init time [MDB IGNORE] (#17881)
* Atmospheric machineries now interact with each other directly, rather than going through a radio layer -- saves about 0.4s of init time

* updatescript maps

* Merge conflicts

* Tarkon atmos

* tick file

* that file was supposed to be removed

* tarkon cringe

* tarkon tweaks after testing

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-08 16:39:24 -05:00
SkyratBot
7835d891e4 [MIRROR] Flatten mech/combat and mech/medical [MDB IGNORE] (#17946)
* Flatten mech/combat and mech/medical (#71494)

## About The Pull Request

The only thing mech combat has is the reload helper that should be on
mech proper anyway and the medical subtype isnt even defined outside of
ody code

Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>

* Flatten mech/combat and mech/medical

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
2022-12-08 07:52:21 -08:00
SkyratBot
fba9e99fac [MIRROR] turns axolotls into basic mobs [MDB IGNORE] (#17982)
* turns axolotls into basic mobs (#71778)

## About The Pull Request
Changes axolotls from simple mobs to basic mobs. I'm not well versed on
the differences between simple and basic mobs but it looks like axolotls
are still working as before. Their idle movement may be slightly
different compared to before and now they don't move away while you're
pulling them.
## Why It's Good For The Game
Basic mobs are better for AI and probably some other stuff as well and
there's the freeze thing also.
## Changelog
🆑
code: turned axolotls into basic mobs, their idle movement may be
slightly different and they won't move while you're pulling them anymore
/🆑

* turns axolotls into basic mobs

Co-authored-by: kawoppi <94711066+kawoppi@users.noreply.github.com>
2022-12-08 15:17:46 +00:00
theOOZ
54f7aad37c MOD Hardlight (Refactors how sprite accessories handle MODs) (#17372)
* initial test

* continued cleanup

* hide mutant part refactor

* slight oopsie

* ux

* more ux

* even more ux

* mask

* mod stuff

* almost done with the code

* 🤠

* fixes

* time for art

* fixes

* forgor

* optimize

* more optimizing

* better rendering

* hardlight tex

* another tex

* file name change

* oopsie with the names

* better colors

* transparency edit

* Revert "transparency edit"

This reverts commit 2c8700ec64e469283d685003997e1413fc4a2bce.

* technically TM ready

* review

thank you!

* small

* test

* Revert "test"

This reverts commit 6abda60fc3a82a19a43e323371afff0dd6cccc16.

* the lizard incident

* Revert "the lizard incident"

This reverts commit 5951a3b0eb324a73538f9ca95ef5caeedd10e0cf.

* updates the liz screenshot cuz apparently i fixed something

* art done

* is_hidden ear fix

* write it better

* extra streamlining

* adds two more mod_themes

* a fix and texture tweak
2022-12-07 13:31:50 -05:00
SkyratBot
2b800b9a23 [MIRROR] Removes tablets (not PDAs) entirely. [MDB IGNORE] (#17880)
* Removes tablets (not PDAs) entirely.

* contractor changes

* map changes

* Update assistant.dm

* conflicts

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-07 01:07:02 +00:00
SkyratBot
6756631e75 [MIRROR] The Mining vendor now works like the Chef produce console (has to go through Cargo) [MDB IGNORE] (#17852) 2022-12-01 14:34:56 -08:00
SkyratBot
7fbcd4901b [MIRROR] New Station Trait: Cybernetic Revolution + Body Purist Quirk [MDB IGNORE] (#17472)
* New Station Trait: Cybernetic Revolution + Body Purist Quirk

* Mirror!

* A hidden lint!

* Properly fixes this, and ensures that it has no impact on the game should it ever be bussed in for whatever reason

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-12-01 17:09:54 -05:00
SkyratBot
810fef5fde [MIRROR] This kills the deep fried foods holder. Refactors deep frying to just make the thing edible but still functional. [MDB IGNORE] (#17848)
* This kills the deep fried foods holder. Refactors deep frying to just make the thing edible but still functional. (#71551)

## About The Pull Request

Refactors deepfrying, removing the gross Deep Fried Foods Holder Object
and replacing it with the edible component.

Now, deep frying a food will simply make the item edible directly. This
means it's still functional and doesn't become a dead item.

This follows the same method that grilling uses when applying its
effects. Tweaks grilling a bit so they line up better. Also, silver
foods can make grilled items.

![image](https://user-images.githubusercontent.com/51863163/204105022-ee66889b-f843-4dc2-b0dc-5f1eb5ba19c3.png)

I swear this is unrelated to the other 2 fried foods related PRs. I
started this a few weeks ago.

## Why It's Good For The Game

Tangibly better code (doesn't have to copy a million vars! Less
abusable!) at the price of removing a soulful piece of code. Also means
that deep frying an item doesn't irreversibly make it unusable / dead.
This is sad, but... damn the holder object sucks.

Unfortunate side effect is that anything that overrides `attack` to not
send signal will *not* be edible when deepfried. Maybe this encourages
better signal use?

Either that or fried foods can override `pre_attack` to hook directly
into eating. I can do that as well.

## Changelog

🆑 Melbert
refactor: Refactored deep fried foods. Deep fried foods are still
""usable"" as their normal item, but are just edible.
qol: Silver Slime stuff can spawn grilled as well as fried.
/🆑

* This kills the deep fried foods holder. Refactors deep frying to just make the thing edible but still functional.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-12-01 01:11:20 +00:00
SkyratBot
4508a1cbf5 [MIRROR] Fixes dragons not dropping their consumed mobs on despawn [MDB IGNORE] (#17792)
* Fixes dragons not dropping their consumed mobs on despawn (#71537)

## About The Pull Request

This was fixed a while back, but was accidentally reverted / regressed
due to a refactor

Basically, the dragon needs to be killed before being deleted, being
killed will drop all of their stuff and handle "dragon is dead" events,
then it can be fully deleted and removed as expected

Unit tests it, since this is a regression

Fixes #71536

## Why It's Good For The Game

Having a lot of mobs deleted is kinda really bad

## Changelog

🆑 Melbert
fix: Fixes dragon despawn deleting all the people they consumed
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Fixes dragons not dropping their consumed mobs on despawn

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2022-12-01 01:01:42 +00:00
SkyratBot
2127bb5c61 [MIRROR] Unit Tests use a consistent human subtype [MDB IGNORE] (#17772)
* Unit Tests use a consistent human subtype

* sr dummy

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 13:50:05 -05:00
SkyratBot
3f5f271988 [MIRROR] Strange Reagent correctly revives station pets, (and humans), correctly again. [MDB IGNORE] (#17723)
* Strange Reagent correctly revives station pets, (and humans), correctly again.

* Update code/modules/mob/living/carbon/carbon_update_icons.dm

* centaur shitcode

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 12:24:54 -05:00
SkyratBot
1132a363ae [MIRROR] Revert "Unit tests radio, saymode, and language prefix keys" [MDB IGNORE] (#17793)
* Revert "Unit tests radio, saymode, and language prefix keys" (#71474)

Reverts tgstation/tgstation#71328 (@ Zonespace27 )

Departmental shorthand (.h/:h) is a convenience alias that should apply
to all jobs and all race types and all classifications. ITS SUPPOSE TO
FUCKING CONFLICT.

if you are ai and not in a holopad, it should go to binary.

if you are ai and in a holopad, it should go to the holopad.

if you are borg it should go to binary

if you are xeno it should go to alien

Removing it from the AI over a stupid need to made universal broad
reaching rules that can be declared upon the code was stupid.

This entire unittest is needlessly overboard and over generic putting
"rules" that are not backed up by logic on the codebase in a way that
hinders making good UX, not help.

The datumized saymode system not being able to handle this complexity
when the old hardcoded system could is a problem with the datumized
saymode system and not the fucking :h shortcut for holopad.

🆑 Common fucking sense
fix: The changes to Mafia and holopad say prefixes was reverted.
spellcheck: Mafia changeling say prefix has no longer been changed to
.1, and has been returned to .j
spellcheck: AI Holopad say has no longer been changed to .2, and has
been returned to .h
/🆑

* Revert "Unit tests radio, saymode, and language prefix keys"

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2022-11-28 06:30:50 +00:00
SkyratBot
a101d66658 [MIRROR] Allows Fully Heal to be passed a series of flags, fixes Adminordrazine being horrible [MDB IGNORE] (#17535)
* Allows Fully Heal to be passed a series of flags, fixes Adminordrazine being horrible

* Apply suggestions from code review

* few more flag bits

* our shit

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-11-28 00:09:31 +00:00