Commit Graph

3371 Commits

Author SHA1 Message Date
SkyratBot
2e3bb5ce31 [MIRROR] You can now pull tails, it makes the person happy! [MDB IGNORE] (#9409)
* You can now pull tails, it makes the person happy! (#62763)

About The Pull Request

You can now pull on tails and it makes the person happy! It was supposed to just be felinid but it changed when mothblocks requested I check for tails!
Why It's Good For The Game

Cute interaction with our cat friends. And Lizards. And anything with a tail.
Changelog

cl
add: You can now pull on a felinid's tail to make them happy!
/cl

* You can now pull tails, it makes the person happy!

* no

Co-authored-by: Cimika/Lessie/KathyRyals <65850818+KathyRyals@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2021-11-12 07:25:19 -05:00
SkyratBot
94c42253b2 [MIRROR] Felinids don't like getting sprayed with water. [MDB IGNORE] (#9399)
* Felinids don't like getting sprayed with water. (#59506)

This PR is an ode to @ Ryll-Ryll, who inspired me to try and find fun, silly things to PR to try and make people smile.
About The Pull Request

Felinids now get a SMALL and SHORT mood debuff when getting sprayed with water. The intent of this PR is not to provide content to grief felinid (flashback to the "Felinids hate water" pr), but rather to provide a funny interaction.

Bonus point (Suggested by Ninja) : Getting sprayed with water interrupts do_after. Felinid climbing on your table ? Pssshttt. Straight in the face.

PR with permission from @ ninjanomnom
Why It's Good For The Game

Light-hearted fun and a bit of flavour to felinids.
Changelog

cl
add: Felinids don't like getting sprayed with water.
code: Adds a new status effect, incapacitated, which causes your do_afters to stop.
/cl

* Felinids don't like getting sprayed with water.

* Yes

Co-authored-by: Cimika/Lessie/KathyRyals <65850818+KathyRyals@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-11-11 19:09:20 -05:00
Azarak
3877f2a70c Pollution changes (#9372)
* Pollution changes

* Define
2021-11-11 11:17:41 -05:00
SkyratBot
71b5f92eda [MIRROR] [MDB IGNORE] dir sanity, primarily on WALLITEMs [MDB IGNORE] (#9315)
* [MDB IGNORE] dir sanity, primarily on WALLITEMs (#62601)

About The Pull Request

Wall items mostly use the direction from the floor to the wall in the named mapping helper. Wall items mostly use the direction from the wall to the floor for the internal dir variable.

This leads to a headache when it comes to working out what conflicts with what, and what needs placing where.

Wall frames provided a member, inverse, which specified whether or not to invert the direction of the item when looking for conflicts. It was also used to specify whether to look for conflicts outside of the wall (cameras and lights appear external to the wall) or inside the wall (most wall items). This flag was set for Intercoms, APCs, and Lights. Since APCs and Lights expect a floor-to-wall direction, and Intercoms expect a wall-to-floor direction, this means that APCs and Lights were getting the correct direction, and Intercoms were getting the wrong direction.

Some implications of this setup were:

    You could build an APC on top of another wall item, provided there was nothing external attached to the wall and the area didn't have an APC.
    You could stack Intercoms indefinitely on top of the same wall, provided you weren't in a one-tile wide corridor with something on the opposite wall.

Or both! Here's twenty Intercoms placed on the wall, and a freshly placed APC frame after placing all Intercoms and deconstructing the old APC:

endless-stack-of-intercoms

Not everything used this inverse variable to adjust to the correct direction. For example, /obj/machinery/defibrillator_mount just used a negative pixel_offset to be visually placed in the correct direction, even though the internal direction was wrong, and never set! This also let you stack an indefinite number of defib mounts on the same wall, provided it wasn't a northern wall... except you could do this to northern walls too, since defibs weren't considered a wall item for the purposes of checking collisions at all!

Ultimately, every constructable interior wall item either used this inverse variable to adjust to the correct placement, set a negative pixel_offset variable to have its offset adjusted to the correct placement, or overrode New or Initialize to run its own checks and assignment to pixel_x and pixel_y!
Inventory: Table of various paths, related paths, and the adjustments they used

Unfortunately, untangling /obj/structure/sign is going to be another major headache, and this has already exploded in scope enough already, so we can't get rid of the get_turf_pixel call just yet. This also doesn't fix problems with the special 2x1 /obj/structure/sign/barsign.

Some non-wall items have been made to use the new MAPPING_DIRECTIONAL_HELPERS as part of the directional cleanup.

tl;dr: All wall mounted items and some directional objects now use the same direction that they were labelled as. More consistent directional types everywhere.
Why It's Good For The Game

fml
Changelog

cl
refactor: Wall mounted and directional objects have undergone major internal simplification. Please report anything unusual!
fix: You can no longer stack an indefinite amount of Intercoms on the same wall.
fix: Defibrillator Mounts, Bluespace Gas Vendors, Turret Controlers, and Ticket Machines are now considered wall items.
fix: Wall mounted items on top of the wall now consistently check against other items on top of the wall, and items coming out of the wall now consistently check against other items coming out of the wall.
fix: The various directional pixel offsets within an APC, Fire Extinguisher Cabinet, Intercom, or Newscaster have been made consistent with each other.
fix: The pixel offsets of Intercoms, Fire Alarms, Fire Extinguisher Cabinets, Flashers, and Newscasters have been made consistent between roundstart and constructed instances.
fix: Constructed Turret Controls will no longer oddly overhang the wall they were placed on.
qol: Defibrillator mounts now better indicate which side of the wall they are on.
fix: Some instances where there were multiple identical lights on the same tile have been fixed to only have one.
/cl

* [MDB IGNORE] dir sanity, primarily on WALLITEMs

* apc directionals

* bluespace vendor fix

* defib fix

Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
2021-11-10 17:17:26 -05:00
SkyratBot
08bd01ea3d [MIRROR] Overhauls job eligibility checking and improves job debug logging. [MDB IGNORE] (#9348)
* Overhauls job eligibility checking and improves job debug logging.

* Fixing conflicts

* Makes Veteran the first check since it's the most likely.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2021-11-10 16:39:42 -05:00
SkyratBot
ec31da7756 [MIRROR] Allow manual crafting of many atmos devices with the crafting menu [MDB IGNORE] (#9378)
* Allow manual crafting of many atmos devices with the crafting menu (#62676)

* Allow manual crafting of many atmos devices with the crafting menu

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
2021-11-10 16:34:50 -05:00
SkyratBot
4eb10ac1fc [MIRROR] Locker Shoving Re-Reloaded [MDB IGNORE] (#9350)
* Locker Shoving Re-Reloaded (#62618)

* Locker Shoving Re-Reloaded

The signals here were weird, converted them to connect loc. I did my best to make sure behavior matched what
existed pre arcane pr
Unshat shove code considerably, believe it or not it used to be worse.

* Locker Shoving Re-Reloaded

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-11-09 16:44:40 -05:00
Seris02
985e677b91 [semi-modular] thieving gloves (#8772)
* yeet

* goddamn fucking trailing newline

* edit: I reread the bounty

* leftover from: I reread the bounty

* *more* leftover from: I reread the bounty

* speedup

* here too

* empty commit for linter reruns

* there

* remembered the newline this time

* okay I forgot that
2021-11-09 15:42:28 -05:00
SkyratBot
4b14699c6a [MIRROR] Fixes missing award icons by filling the assets list on runtime. Plus new icons and unit test. [MDB IGNORE] (#9340)
* Fixes missing award icons by filling the assets list on runtime. Plus new icons and unit test.

* Feexing conflicts

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-11-09 09:40:55 -05:00
SkyratBot
bd39aef673 [MIRROR] Deletes magic armor [MDB IGNORE] (#9330)
* Deletes magic armor (#62594)

* Deletes magic armor

* removes arcane barrage's 0 armor penetration

* makes magic use NO flags. Get fucked.

* Deletes magic armor

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2021-11-09 08:09:46 -05:00
SkyratBot
d2535a19c7 [MIRROR] Smoking DLC - Bad Lungs Pack [MDB IGNORE] (#9328)
* Add smoking quirk realism (#62662)

* Smoking DLC - Bad Lungs Pack

Co-authored-by: Tim <timothymtorres@gmail.com>
2021-11-08 23:34:56 -05:00
SkyratBot
4179614ebb [MIRROR] Made admin circuits more abstract, they no longer end up in the contents of the shell. [MDB IGNORE] (#9318)
* Made admin circuits more abstract, they no longer end up in the contents of the shell. (#62630)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Made admin circuits more abstract, they no longer end up in the contents of the shell.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-11-08 22:26:45 -05:00
SkyratBot
8978adde4a [MIRROR] Add the known alts panel, which prevents suspicious login logs for whitelisted ckeys [MDB IGNORE] (#9306)
* Add the known alts panel, which prevents suspicious login logs for whitelisted ckeys

* fixed

* ops, missed one conflict

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2021-11-08 22:26:02 -05:00
SkyratBot
e598a0dd33 [MIRROR] Beepsky refactor and Bot code improvement [MDB IGNORE] (#9304)
* Beepsky refactor and Bot code improvement

* Feex

* Fixing the maps so they work :)

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2021-11-08 21:28:35 -05:00
SkyratBot
adf877b0ce [MIRROR] Blacklists some reagents that are about unobtainable short of RNG seeds and antagonists from randomized recipes. [MDB IGNORE] (#9313)
* Blacklists some reagents that are about unobtainable short of RNG seeds and antagonists from randomized recipes. (#62611)

* Blacklists some reagents that are about unobtainable short of RNG seeds and antagonists but are still synthetizable from randomized recipes.

* Update toxin_reagents.dm

* Blacklists some reagents that are about unobtainable short of RNG seeds and antagonists from randomized recipes.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2021-11-08 15:51:59 -05:00
SkyratBot
5d5428ed6d [MIRROR] Add healing aura component [MDB IGNORE] (#9303)
* Add healing aura component (#62526)

* Add healing aura component

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-11-08 06:45:41 -05:00
SkyratBot
bef73b445b [MIRROR] Adds yawn propagation [MDB IGNORE] (#9305)
* Adds yawn propagation (#62639)

* Adds yawn propagation

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-11-08 06:43:58 -05:00
YakumoChen
b32a825ac1 Thanks G (#9296) 2021-11-07 22:23:23 +00:00
SkyratBot
95b502809a [MIRROR] Use Passive Vents for waste output in Space [MDB IGNORE] (#9044)
* Use Passive Vents for waste output in Space (#62239)

* Use Passive Vents for waste output in Space

* I hate this

* ugh

Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
2021-11-07 11:14:16 -05:00
SkyratBot
551fa984bb [MIRROR] Map load unit testing and directory whitelisting - Mojave Sun is a really cool downstream, like and subscribe for longer PR names. oranges was here and made this github PR name much longer, thereby proving once and for all that upstreams do add value to the downstream not just endless amounts of refactoring because we can't write any api's in a modular fashion the first time around so have to update them later to be modular. Anyway do you think a taco counts as a sandwich? [MDB IGNORE] (#9290)
* Map load unit testing and directory whitelisting - Mojave Sun is a really cool downstream, like and subscribe for longer PR names. oranges was here and made this github PR name much longer, thereby proving once and for all that upstreams do add value to the downstream not just endless amounts of refactoring because we can't write any api's in a modular fashion the first time around so have to update them later to be modular. Anyway do you think a taco counts as a sandwich? (#62620)

About The Pull Request

This is a fix for map not load anymore because of security changes
Why It's Good For The Game

Maps are good as they encourage gameplay and differentiate ss13 from a classic MUD game
Changelog

cl
add: unit test for map load
add: directory param to map load + whitelist for data and _maps
add: advertising for mojave sun in tg commit logs
/cl

* Map load unit testing and directory whitelisting - Mojave Sun is a really cool downstream, like and subscribe for longer PR names. oranges was here and made this github PR name much longer, thereby proving once and for all that upstreams do add value to the downstream not just endless amounts of refactoring because we can't write any api's in a modular fashion the first time around so have to update them later to be modular. Anyway do you think a taco counts as a sandwich?

Co-authored-by: AndrewL97 <andrewjlove97@gmail.com>
2021-11-07 08:09:43 -05:00
Seris02
99a6fe31f2 [SEMI-MODULAR?][TESTMERGE FIRST] Glow in the dark markings/bodyparts/eyes (#8960)
* FUCKIN WOOO

* much better

* yesssssss

* yeetus deletus the merge conflictus dies

* fug that was an oops

* better

* linters are weird

* woops I erased tesh tails

* better

* wingfix

Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-11-06 22:41:29 -04:00
SkyratBot
ec8ac5f18f [MIRROR] Makes maps be able to load correctly again [MDB IGNORE] (#9276)
* Makes maps be able to load correctly again

* Feex

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-11-06 15:27:52 -04:00
SkyratBot
d45e3ce55f [MIRROR] [s] Security vulnerability patch [MDB IGNORE] (#9256)
* [s] Security vulnerability patch (#62568)

About The Pull Request

In my personal, subjective opinion; trialmins should not, in fact, be able to read and delete server/box configuration files on a whim.

cl
server: Patches multiple(?) arbitrary file related vulnerabilities
/cl

* [s] Security vulnerability patch

Co-authored-by: TheFakeElon <59686430+TheFakeElon@users.noreply.github.com>
2021-11-06 19:47:20 +13:00
SkyratBot
c4f64adb2c [MIRROR] Splits init profiles into a seperate log file [MDB IGNORE] (#9253)
* Splits init profiles into a seperate log file (#62545)

* Splits init profiles into their own file, so we can better track where pain points come from.
After all there's no point in knowing that sprite sheets generate 32 seconds of overtime during init if you
only care about inround, or vis versa.

(I'm tired of people freaking out about blends that are only done during init)

* Whoops

* Splits init profiles into a seperate log file

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-11-05 17:18:15 -04:00
SkyratBot
5fc2085cef [MIRROR] custom say emotes, or in other words, radio emotes [MDB IGNORE] (#9260)
* custom say emotes, or in other words, radio emotes

* Update code/game/objects/items/devices/radio/radio.dm

Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>

* Feeeex

Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-11-05 17:16:58 -04:00
SkyratBot
91fd0e9145 [MIRROR] Adds the color matrix editor [MDB IGNORE] (#9265)
* tgui: Color matrix editor (#62413)

* adds the color matrix editor

* weakrefs and add_atom_color

* a little ui polish

* Adds the color matrix editor

Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
2021-11-05 16:57:04 -04:00
SkyratBot
6a8301da8b [MIRROR] Locker based combat, evolved. [MDB IGNORE] (#9212)
* Locker based combat, evolved. (#60000)

* Locker bullying, reloaded.

* Start work on refactoring the whole gosh damn thing

* I'm stuck.

* Checkpoint

* Restart work: Lets get this scrap to compile

* Workin on it, having to swtich back to walls project

* Revert "Restart work: Lets get this scrap to compile"

This reverts commit baa1814fd1ed2c86f2009a54a90d9306264762fc.

* Compiles (Check), Signals are backwards (Fix)

* 90% complete yet again I have grown powerful

* I HAVE GOT IT WORKING PERFECTLY

* Removes a small part of commented code

* Perfection*

* Locker based combat, evolved.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2021-11-02 23:12:40 +00:00
SkyratBot
cd3e86ad7d [MIRROR] Champions of Evil + (Plus sorts the traitor flavor json and global lists) [MDB IGNORE] (#9206)
* Champions of Evil + (Plus sorts the traitor flavor json and global lists) (#62429)

Adds a traitor flavor with a new faction, the Champions of Evil. They're hell bent on 1. Evil and 2. Recruiting evildoers. They, uh, kind of larp a lot. No judgements, ok?

Requested and almost got into flavor traitors 1.0, but I dunno what happened but they never made it in. They're suggesting a total classic gimmick: Buy a syndicate headset, meet up with other evildoers, and get shot by them and looted! Which I've been doing and loving since 2015.

* Champions of Evil + (Plus sorts the traitor flavor json and global lists)

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-11-02 23:11:26 +00:00
SkyratBot
49f3307e14 [MIRROR] Fixes issue with catwalk floors being added to each other ad infinitum. (#9185)
* Fixes issue with catwalk floors being added to each other ad infinitum. (#62236)

## About The Pull Request

You could place catwalk_floors on each other ad infinitum because they were a plating subtype. This changes them to a floor, and sets their intact = false so that wires wont be hidden by undertile/proc/hide. Fixes #62105 .

Also fixes a smaller issue where "remove cover first!" wasn't being outputted to the user when they tried crowbarring a catwalk floor.

Thanks to arm for his help with this!

## Why It's Good For The Game

Fixes  #62105

* Fixes issue with catwalk floors being added to each other ad infinitum.

* Fixes the catwalks eveywhere else

Co-authored-by: Coconutwarrior97 <40315842+Coconutwarrior97@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2021-11-02 10:59:48 -04:00
SkyratBot
e90627be0e [MIRROR] Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed [MDB IGNORE] (#9176)
* Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed

* Fixing conflicts

* Makes it compile, yeet all the RAD armor from everywhere (thanks RegEx!)

* Removing more lingering rad armor (woo)

* Damnit powerarmors

* Bye bye rad collectors!

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2021-11-02 10:36:46 -04:00
SkyratBot
6cdf152a84 [MIRROR] Made integrated circuits duplicatable through the module printer [MDB IGNORE] (#9198)
* Made integrated circuits duplicatable (#62302)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Made integrated circuits duplicatable through the module printer

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-11-02 08:04:25 -04:00
SkyratBot
401b09e207 [MIRROR] Changes Plasmamen belt tanks volume and the rate that their lungs consume plasma to 1/4 of the previous value. [MDB IGNORE] (#9197)
* Changes Plasmamen belt tanks volume and the rate that their lungs consume plasma to 1/4 of the previous value. (#62081)

Plasmamen belt tank volume is 24, the extended engineering one is 6 and the emergency internals are 3.
The issue balance wise is that all of those have the same pocket size and can be printed at the same Research tier, this results on smart atmos/engineers printing a plasmamen belt tank and filling it with O2 so their internals can last for almost 2 hours instead of the 24 minutes of the extended O2.

Now they have the same volume but plasmamen lungs were rebalanced to consume plasma at a lower rate. To be clear, it will have no effect on how long the internal last for a plasmamen.

Removes a no skill trick that gives you internals that will last for all shift, you can still make those but it will take a tiny bit of effort now.

Also a small step to make internals balanced.

* Changes Plasmamen belt tanks volume and the rate that their lungs consume plasma to 1/4 of the previous value.

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
2021-11-02 08:00:32 -04:00
SkyratBot
e78c84689d [MIRROR] Patches out the latest BRPED remote bombing exploit. [MDB IGNORE] (#9160)
* Patches out the latest BRPED remote bombing exploit. (#62447)

Reagent containers in BRPEDs can no longer have reagents inserted into them.

Does this by adding a signal for pre-reagent adding that accepts a cancel flag, which will stop the reagents being added.

Transferring reagents to things now actually checks the return value of add_reagent to stop people pouring chems that weren't added into the ether.

* Patches out the latest BRPED remote bombing exploit.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-10-31 22:34:00 +00:00
SkyratBot
a31e4bedfa [MIRROR] Tackles various problems with keyed_list config entries, fixing broken roundstart races and more! [MDB IGNORE] (#9131)
* Tackles various problems with keyed_list config entries, fixing broken roundstart races and more! (#62359)

While helping RaveRadbury debug some issues with enabling Halloween species early via the brute force method of enabling them in the config rather than the gentleman's solution of testmerging a PR that changes the Halloween date, we discovered something dreadful.

Cloth golems cannot be enabled! Infact, any species with a space in the ID cannot be enabled.

It uses the splitter despite VALUE_MODE_FLAG being set. So a key entry like ROUNDSTART_RACES cloth golem would get parsed as cloth = golem, then entered into the config as cloth = TRUE
NEW AND IMPROVED PART HERE

I've re-written how keyed_list config entries are parsed, splitting it into a number of procs to do some discrete block of logic.

Based on feedback from MSO, he expected that VALUE_MODE_FLAG keyed_list entries could have elements overridden. However, this functionality was not present in the code.

I have implemented it. We now support 3 methods of setting VALUE_MODE_FLAGS.

Implicitly enable the config entry: CONFIG_ENTRY config_key_goes_here
Explicitly enable the config entry: CONFIG_ENTRY config_key_goes_here 1
Explicitly disable the config entry: CONFIG_ENTRY config_key_goes_here 0

There have been functionality changes too. Previously, everything before the first splitter was the key and everything after was the value. However, in ambiguous config entries (Such as ROUNDSTART_RACES cloth golem 0) it would be unclear if the intent was (cloth, golem 0) or (cloth golem, 0) or indeed if the intent was (cloth golem 0, 1).

As a result, there is now the following paradigm in place: Everything after the LAST splitter is the value, everything before is the key and a log_config warning is now given explaining the problem and showing how it was resolved.

[2021-10-27 19:48:12.840] WARNING: Multiple splitter characters (" ") found. Using "cloth golem" as config key and "1" as config value.

This warning will trigger if multiple splitters are present for any keyed_list config entry, and will trigger on implicit VALUE_MODE_FLAGS entries that have splitters. The example above is it triggering on ROUNDSTART_RACES cloth golem - It has detected that there is potential ambiguity between (cloth, golem) or (cloth golem, 1), has picked a sensible option for the data type and has warned about it.

The intent is that no config entry should be ambiguous. It should be clear what is key and what is value when dealing with keyed_list config entries.

There's probably more work to do on other config entries to bring them up to this standard, but this is the thing I'm hitting in this PR.

Similarly, I have improved the validation aspect of keyed_list config entries with additional logging in general.
[2021-10-27 19:47:53.135] ERROR: Invalid KEY_MODE_TYPE typepath. Is not a valid typepath: /mob/living/carbon/monkey

I have added a unit test to make sure species IDs do not contain splitters from the two keyed_list subtypes relating to species.

I have added sanity checking to the race config subtypes since we have a big dick global list of all races sorted by ID, so a race not existing will fail validation and output a meaningful config log entry.

I have removed /datum/config_entry/keyed_list/probability from the code as it is unused with the removal of all game modes except Dynamic.

The config change necessitated the renaming of all golem species IDs. Doing so and renaming the clothgolem.ts file to match has fixed the broken cloth golem page too.

* Tackles various problems with keyed_list config entries, fixing broken roundstart races and more!

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-10-29 21:07:21 +01:00
SkyratBot
462690826c [MIRROR] Drops Ordnance/Toxins and Atmos accesses from command level to common level. [MDB IGNORE] (#9118)
* Drops Ordnance/Toxins and Atmos accesses from command level to common level. (#62402)

Quick hot swap for the ordnance and atmos accesses to common.

The armory will stay command level and ID cards gaining access to it is expected to be under the exclusive oversight of the HoP or Captain.

This gives CEs and RDs a little bit more control over their own departments.

* Drops Ordnance/Toxins and Atmos accesses from command level to common level.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-10-29 11:16:23 -04:00
SkyratBot
b6ffb1e31b [MIRROR] Refactor /turf/var/intact [MDB IGNORE] (#9114)
* Refactor /turf/var/intact (#62331)

Turfs have a variable, intact, which conflates three meanings:

    Determining whether there's something that can be pried out, such as directly with a crowbar or indirectly with a tile stack and a crowbar off-hand.
    Determining whether underfloor pieces are visible.
    Determining whether underfloor pieces can be interacted with - by players with tools, through interaction with effects like chemical acid, or foam.

When plating is hit with a stack of tiles, /turf/open/floor/attackby checks whether the turf is intact, and if so, ends the attack chain regardless of whether or not the attempt to hotswap a turf (with a crowbar) is successful or not. However, turfs which want the underfloor to be visible - such as catwalks and glass - set the intact variable to FALSE, and so can be repeatedly placed over one another, as if they were the first tile to be placed over the plating.

This refactors /turf/var/intact into two distinct variables:

    /turf/var/overfloor_placed, for whether or not there is something over plating.
    /turf/var/underfloor_visible, for whether or not the various underfloor pieces should be invisible, visible, or both visible and interactable.

All references to /turf/var/intact have been replaced with an equivalent overfloor_placed or underfloor_visible reference, depending on which check is appropriate. underfloor_accessibility can take one of UNDERFLOOR_HIDDEN, UNDERFLOOR_VISIBLE, or UNDERFLOOR_INTERACTABLE. This prevents cases such as acid foam or tools phasing through glass floors to affect the underfloor pieces underneath, and covers all kinds of unusual, not-wiring-visiblity usage such as Holodeck completeness, Revenant interaction, or station integrity checking.

* Refactor /turf/var/intact

* Thank

Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
2021-10-30 00:19:21 +13:00
SkyratBot
d79a997673 [MIRROR] Traits given by Elements now have element trait as their source. [MDB IGNORE] (#9110)
* Traits given by Elements now have element trait as their source. (#62134)

Hopefully the code is more organized and consistent this way.

* Traits given by Elements now have element trait as their source.

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2021-10-28 18:23:44 -04:00
SkyratBot
c9b268a72a [MIRROR] Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers [MDB IGNORE] (#9107)
* Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers (#62287)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-10-28 15:49:34 -04:00
SkyratBot
5d7e1140c9 [MIRROR] Change ishumanbasic to not count felinids, fixes felinid heads of staff [MDB IGNORE] (#9095)
* Change ishumanbasic to not count felinids (#62376)

ishumanbasic allowed felinids (human subtypes) to pass. This is something every check of ishumanbasic does not account for (some even check isfelinid explicitly!)

* Change ishumanbasic to not count felinids, fixes felinid heads of staff

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-10-28 12:59:56 -04:00
SkyratBot
a8270ae919 [MIRROR] Revert "Basic ID cards with job trims can now hold higher level accesses to their own departments." [MDB IGNORE] (#9086)
* Revert "Basic ID cards with job trims can now hold higher level accesses to their own departments."

* Fixing conflict

Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-10-27 18:35:24 -04:00
SkyratBot
305ba1c142 [MIRROR] Basic ID cards with job trims can now hold higher level accesses to their own departments. [MDB IGNORE] (#9067)
* Basic ID cards with job trims can now hold higher level accesses to their own departments.

* Update jobs.dm

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
2021-10-27 17:20:05 +01:00
NotRanged
143dea00eb [Semi-modular] Adds Teshari (#8663)
* Initial commit, first PR added, small sprite tweaks done myself

* hardsuit tail sprite and more modifications

* Language and stuff, most of second PR

* idk what I did here because I slept between commits but probably a lot

* Adds many many matrix coloured earsprites fuck me this was a lot of work

* Species page, body markings and final cosmetic changes

* Small tail tweak

* Small clothing sprite tweak

* Linter: trailing newline

* schechi icon made, code clothing moved to modular/master file

* Some suggestions implemented

* Comments etc

* snake_case

* Changes var names, rejects body size modification

* again but properly this time

* Moves clothing pixel stuff into defines

* Quirks can be restricted for some species now

* And now it actually works

* Move to modular file

* removes species quirk stuff

* Fixed Schechi

* Fixes 0 damage punch, made a husk sprite

* improves clothing sprites, fixes offsets of 'certain' bodyparts... :/

* Nevermind, it just doesn't work, no dicks for you

Co-authored-by: Ranged <nickvanderkroon@gmail.com>
2021-10-26 17:28:13 +01:00
Iamgoofball
fd577e0227 GoofSec: Departmental Guards, Stamina Crit Fixes, Armory Rework, 3-Hit-Stamcrit Batons, Flashbang fixes (#8524)
* GoofSec: Departmental Guards, Stamina Crit Fixes, Armory Rework, 3-Hit-Stamcrit Batons, Flashbang fixes

* More realism changes to the guns.

* "lmao lets just make bullets do double damage!!!!!"

* maint-fu properly restored

* fixes disabler desc

* sagwfwdqdqa

* Departmental Guard Drip + Fixing Guard Rolling Antags

* adds the trims for the guards

* haha yes i totally forgot the knockdown

* Brute damage hardlight bullets + map fixes!

* afwefqdqwd

* fixes security armor balance lmfao

* NICE FUCKIN MERGE CONFLICT

* Big Security Armor Rework + Fixing cell swapping issues

* Space Police!

* removes 2hand from the guns for now

* Fixes Guard antag rolling.

* Stamina crit filter is back!

* Fixed vendors, 911 overhaul, Re-added sec crates to cargo

* whoops haha

* afwvwsadcwaed

* efWEFwedqadq

* bank error, you have been rewarded 20 thousand credits

Co-authored-by: Funce <funce.973@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-10-26 17:17:20 +01:00
SkyratBot
a937abb309 [MIRROR] Beds and Benches: The Aesthetic Revolution [re-PR'd With EOB's Blessing] [MDB IGNORE] (#9022)
* Beds and Benches: The Aesthetic Revolution [re-PR'd With EOB's Blessing]

* Update code/game/objects/items/stacks/sheets/sheet_types.dm

Co-authored-by: Zytolg <33048583+Zytolg@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-10-26 17:00:31 +01:00
SkyratBot
be35f9e0a4 Über Kommen Sie (#9050)
* ubercume

* Update arousal_system.dm

* Update arousal_system.dm

* kill me pleaase

* Update arousal_system.dm

* Update arousal_system.dm

* bad sound touch
2021-10-26 04:38:38 +01:00
SkyratBot
6b74fd7fc4 [MIRROR] Atoms that initialize immediately now initialize other atoms it makes immediately. [MDB IGNORE] (#9035)
* Fixes bcis runtiming on mapload (#62281)

* Atoms that initialize immediately now initialize other atoms it makes immediately.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-10-25 22:34:04 -04:00
SkyratBot
82e5f9571f [MIRROR] Re-organizes robot defines file [MDB IGNORE] (#9030)
* Re-organizes robot defines file (#62223)

It currently looks like a mess, I tried to mess with it locally and it bugged me how jumbled up everything is.
I moved all the main defines that affects all bots at the top, and the rest organized by bot.

* Re-organizes robot defines file

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2021-10-25 13:44:29 -04:00
SkyratBot
48a0861eae [MIRROR] Adds The Secret Brainwashing Technique-Chip [MDB IGNORE] (#9017)
* Adds The Secret Brainwashing Technique-Chip (#62295)

Adds a skillchip found in maint that lets you put brains in washing machines, and scrub em back into good health. Brains now get maximum damage if put in a washing machine OTHERWISE.

VERY heavily inspired by this video:
https://www.youtube.com/watch?v=88po7PY14E8

> I believe having a brain successfully washed should give its brainmob an achievement for exposure of this feature.

can be done in a separate pr

* Adds The Secret Brainwashing Technique-Chip

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-10-24 15:14:38 -04:00
gonenoculer5
a06b09b6e0 [Semi-Modular] SEVA Fixes (#8631)
* Migrates SEVA away from explorer subtype

Migrates the SEVA Suit from /obj/item/clothing/suit/hooded/explorer/seva to /obj/item/clothing/suit/hooded/seva and make appropriate migrations of code from explorer to ensure it inherits the correct temperature flags and such, to prevent inconsistancies.

* Adds the goliath stun time

Adds the goliath stun time to the SEVA suit. I got bored.

* Adds the funny define

[screaming]

* SKYRAT EDIT

* SKYRAT EDIT

* Literally one space was messing with linters. Nice

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Jérémie Hakier <jerego1234@hotmail.com>
2021-10-24 14:56:20 -04:00
death and coding
b749f88ffa white women (#8996)
Co-authored-by: louiseedwardstuart <bonniefluff>
2021-10-23 21:24:56 +01:00