Commit Graph

14397 Commits

Author SHA1 Message Date
SkyratBot
896c19face [MIRROR] More Food Sorting (#5236)
* More Food Sorting (#58649)

* Organizing

Moves the following:
Enchiladas, from MEAT, to MEXICAN
Meat Bun, from PASTRIES, to MEAT
Hotdog, from PASTRIES, to SANDWICHES
Melon Bowl, from MISC, to SALADS
Oatmeal, from SALAD, to SOUPS (And changes the object path to match.)

Does the traitorous task of adding the GRAIN tag to Enchiladas. May god have mercy on my soul.

* Adds a trailing new line

Co-authored-by: Winter Flare <7543955+Owai-Seek@ users.noreply.github.com>

* More Food Sorting

Co-authored-by: Winter Flare <7543955+Owai-Seek@users.noreply.github.com>
Co-authored-by: Winter Flare <7543955+Owai-Seek@ users.noreply.github.com>
2021-04-27 00:56:40 +01:00
SkyratBot
01af3694ce [MIRROR] Emissive system refactor (#5234)
* Emissive system refactor (#58130)

The emissives system is the system that both lets computer screens and vendors glow in the dark and lets mobs and items block those glows. The current implementation relies on using filters to let mobs and items mask out the glow in the dark overlays on some structures. This is difficult to extend properly without massively increasing maptick. This PR changes the emissives system to use BYONDs native image layering to mask emissive overlays. This should prove to be a more extensible option.

tldr; There exists a system that lets computer screens glow on the dark and lets mobs and items block the glow. It isn't very extensible and this PR attempts to make it more extensible.

How emissive overlays used to work

Currently emissive overlays and the emissive blockers that mask those overlays are handled using a system of inter-masking planes. The emissive overlays and the emissive blockers are placed on separate, hidden plane masters. These are essentially rendering layers and groups. The emissive blocker plane is then used to mask the emissive overlay plane which effectively allows the emissive blockers to block the emissive overlays from being seen. After is has been masked the emissive overlay plane is used to mask the lighting plane, essentially creating holes in the shadows wherever an unblocked glowing thing exists.

Why this is a potential problem

This system works fine. In fact it works great! The computer screens glow, any person or item that winds up on a computer blocks the glow, and everything just works. However, this system runs into some issues when you try to extend it to work on things other than structures. Namely, the current system only supports emissive overlays on structures and emissive overlays that are completely unblockable by any means. As a result, several interesting uses to the system require extending the system.

As a result, if you want to apply emissive overlays to items (which exist between structures and mobs) or emissive overlays to turfs (which exist below structures) you must extend the emissives system to get the emissive overlays and emissive blockers to properly function. Doing this naively, by adding extra emissive overlay and emissive blocker planes and applying all of the relevant masking filters, is not exactly performant.

Maptick is a major contributor to lag and the higher the maptick the more free lag you, the player, get delivered fresh to your client. Trying the naive method resulted in #55782 (1f1b58bb26), an attempt to add glowing carpet to the game. Since the PR revolved around adding glowing carpet it had to extend the emissives system to allow for emissive turfs and emissive blocking structures. Extending the system was done naively as described above and you can see the results. 1.5 times the maptick across the board. Ouch.

So, we know that extending the system in it's current form is impractical. At least if done naively. Thus we are stuck.

tldr; The emissive system currently uses inter-plane masking to allow for emissive blockers to function. This is difficult to reasonably extend without murdering maptick. See #56496 (1f1b58bb26) for the results of naively extending this system.

How emissive overlays are going to work

Alright, so we know that the current system of using planes to let the emissive blockers mask the emissive overlays is difficult to extend in it's current form. The solution is to change how the system works so that it can be extended in a more efficient manner. What we want is a system that allows one set of images to be out masked by another set of images and for the first set of images to be capable of masking the light plane. Preferably, we would also like the ability to interleave the masking effect between emissives and emissive blockers with almost arbitrary layering.

Conveniently, this layering and masking is something BYOND already does to normal items and objects. If we put the emissive overlays and the emissive blockers on the same plane we can use their layers to interleave them almost arbitrarily like any normal structures and items! All we need is a way to mask away the emissive blockers from the resulting rendered plane and we can mask the lighting plane with the remaining emissive overlays.

Luckily, BYOND has provided a single filter that is capable of this task. The color matrix filter. This filter can be used to apply a color matrix to an image! Provided that the emissive overlays and the emissive blockers are different colors we can use a color matrix filter to effectively mask out the emissive blockers from the plane! The resulting emissive plane can be applied as an alpha mask to the lighting plane as it used to, to the same effect. The best part is, we get layering practically for free!

This is exactly what this PR does. It converts the emissives system from the old plane and masking based blocking to a new layer-based system which uses BYONDs native layer handling to mask the emissive overlays.

* Emissive system refactor

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-04-27 00:03:46 +01:00
SkyratBot
6eb42f889d [MIRROR] Fixes incorrect unwrapping message, and now mail doesn't get sent to... BAD recipients. (#5232)
* mail fixes 😎 (#58716)

now mail doesn't get sent to... BAD recipients. (Antags arm, just say antags)
fixes incorrect unwrapping message (bad usage of a visible message)
mail recipients wasn't shuffling either. I'm fairly certain this was leading to some people always getting mail and some never getting it.

* Fixes incorrect unwrapping message, and now mail doesn't get sent to... BAD recipients.

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-04-27 00:01:18 +01:00
SkyratBot
eaf3dd34fa [MIRROR] screwdrivers no longer randomize their pixel_y on initialize (#5231)
* screwdrivers no longer randomize their pixel_y on initialize (#58707)

removes the 75% chance on screwdrivers initialize to have a random pixel_y between 0 and 16

it looks bad now that the screwdriver is centered on the tile

* screwdrivers no longer randomize their pixel_y on initialize

Co-authored-by: Fikou <piotrbryla@onet.pl>
2021-04-27 00:00:56 +01:00
SkyratBot
4ff4b5d15b [MIRROR] Convert jumpsuits, jumpskirts and sneakers to GAGS (#5181)
* Convert jumpsuits, jumpskirts and sneakers to GAGS (#58514)

* Convert jumpsuits, jumpskirts and sneakers to GAGS

* Update maint_loot_common.dm

Co-authored-by: Celotajs <81999976+celotajstg@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-26 23:59:18 +01:00
SkyratBot
32c7ef7574 Smarter pipes (#5228)
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
2021-04-26 22:59:05 +01:00
SkyratBot
803ac55d32 [MIRROR] Stops hangover station trait from making bottles spawn in the walls/windows/dense objects (#5218)
* Stops hangover station trait from making bottles spawn in the walls/windows/dense objects (#58681)

* Stops hangover station trait from making bottles spawn in the walls/windows/dense objects

Co-authored-by: Seth Scherer <supernovaa41@protonmail.com>
2021-04-26 12:01:32 +01:00
SkyratBot
3d4f861a32 [MIRROR] Fixes Chameleon Projector Dummies escaping containers (#5205)
* Fixes Chameleon Projector Dummies escaping containers (#58683)

You can see why this is bad from the issue, but it applies a lot of other places you can cram the projector into. Like transit tubes! Or vehicles! Or free escapes from welded lockers! Spooky.

* Fixes Chameleon Projector Dummies escaping containers

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-04-26 11:58:58 +01:00
SkyratBot
c8e824a1df [MIRROR] Fixes an infinite RCD material exploit (#5189)
* Fix infinite RCD bug (#58669)

* Fixes an infinite RCD material exploit

Co-authored-by: Urumasi <Urumasi@email.cz>
2021-04-26 11:55:57 +01:00
SkyratBot
2ab15aecb5 [MIRROR] Remove all gamemodes except Dynamic (#5173)
* Remove all gamemodes except Dynamic

* qaaaaaaaa

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-25 21:20:30 +01:00
SkyratBot
c418b139be [MIRROR] Ports Mail From Kiwi Take 2: Arconomy Class Mail (#5172)
* Ports Mail From Kiwi Take 2: Arconomy Class Mail

* Update wardrobes.dm

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-25 21:20:20 +01:00
SkyratBot
03db312b96 [MIRROR] Tool Resprite? (#5165)
* Tool Resprite (#58616)

* Tool Resprite?

Co-authored-by: Kokonut <38844529+maxymax13@users.noreply.github.com>
2021-04-25 03:30:29 +01:00
Gandalf
708c5e42e9 ACTUALLY make latejoin prisoners start in the prison :/ (#5160)
* this time they won't spawn in brazil

* Update prisoner.dm

* 0

* aaaa
2021-04-24 19:01:00 +01:00
FlamingLily
210c09cf6e Update belt.dm (#5159) 2021-04-24 18:20:39 +01:00
SkyratBot
16cc1c4a1e [MIRROR] Fixes ?. nonsense. (#5152)
* Fixes ?. nonsense. (#58630)

Co-authored-by: Fikou <piotrbryla@ onet.pl>

* Fixes ?. nonsense.

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@ onet.pl>
2021-04-24 13:54:25 +01:00
SkyratBot
3d97efcce6 [MIRROR] Fixes full unrestrained interaction while buckled to a xeno nest. (#5144)
* Fixes full unrestrained interaction while buckled to a xeno nest. (#58617)

* Fixes full unrestrained interaction while buckled to a xeno nest.

Co-authored-by: Seth Scherer <supernovaa41@protonmail.com>
2021-04-24 01:27:08 +01:00
SkyratBot
886e4b56d3 [MIRROR] Mexican Food Tab, Food Tagging Tweaks (#5141)
* Mexican Food Tab, Food Tagging Tweaks (#58622)

* Tagging Fixes, Food Moves

Fixes Food Tags on a bunch of burritos. (3/4 don't use MEAT. They were tagged with MEAT.)
Fixes Food Tag and renames Egg Wrap (It doesn't use Tortillas. No GRAIN)
Moves Scotch Egg and Egg Wrap to EGG foods.

Makes a Mexican Food Tab, and moves burritos, tacos, and nachos into it.

* Mexican Food Tab, Food Tagging Tweaks

Co-authored-by: Winter Flare <7543955+Owai-Seek@users.noreply.github.com>
2021-04-24 00:41:35 +01:00
SkyratBot
2d4b83f6d4 [MIRROR] Dummies equipping outfits no longer call equipped (#5140)
* Dummies equipping outfits no longer call equipped (#58597)

* Dummies equipping outfits no longer call equipped

Co-authored-by: Trigg <36010999+TriggeredBoi@users.noreply.github.com>
2021-04-24 00:22:56 +01:00
SkyratBot
b826379ef8 [MIRROR] Changes reinforced window deconstruction to right click (#5114)
* Changes reinforced window deconstruction to right click

* Update weldingtool.dm

Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-23 22:14:08 +01:00
FlamingLily
6dc2a67768 Disables the electrical welder and brings back OG e-welder, pending fixes. (#5045)
* Update tool_designs.dm

* Update electric_welder.dm

* Update belt.dm

* fuck
2021-04-23 21:49:37 +01:00
SkyratBot
9e19dc298a [MIRROR] nitrile gloves buff (#5098)
* nitrile gloves buff (#58594)

* nitrile gloves buff

Co-authored-by: manofpepsi <71612753+manofpepsi@users.noreply.github.com>
2021-04-23 21:46:37 +01:00
BluBerry016
623efa69d7 AAAAAA (#5014) 2021-04-23 21:45:50 +01:00
Winter Flare
e4160263a6 Makes Gear Harness craftable. Adds Loincloth to Dorm Vend. (#5103)
* Dorm Vend Tweaks

Adds Dorm Vendor Repack to Cargo
Adds Loincloth to Vendor
Adds Gear Harness to Leather Crafting

* Fixed Sheetcrafting
2021-04-23 21:45:29 +01:00
SkyratBot
7770901227 [MIRROR] Fixes a bunch of invalid icon states (#5126)
* Fixes a bunch of invalid icon states. There's more, but my brain isn't fried enough for that. (#58608)

gibup1 and gibdown1 don't exist
items_and_weapons.dmi doesn't have an icon state called his_grace_ascended, in fact nothing does
items_cyborg.dmi doesn't have an icon state called laser, it  does however have an icon state called
laser_cyborg
no porta_turret has an icon state with the _unpowered suffix, in fact I'm convinced none of them ever have

* Fixes a bunch of invalid icon states

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-04-23 13:50:26 +01:00
SkyratBot
a88004c4f6 [MIRROR] Allows you to repair trophy cases (the ones found in the library) (#5107)
* Allows you to repair trophy cases (the ones found in the library) (#58588)

Apparently you haven't been able to repair these for the last four years.
Fixes #27926 (Trophy cases being perma broken)

All other display cases can be repaired, why shouldnt this one be able to.

* Allows you to repair trophy cases (the ones found in the library)

Co-authored-by: Seth Scherer <supernovaa41@protonmail.com>
2021-04-23 13:47:04 +01:00
SkyratBot
8f2801ce64 [MIRROR] Tank holders can be anchored and have better examine descriptions. (#5094)
* Tank holders can be anchored and have better examine descriptions. (#58348)

* Tank holders can be anchored

* Better description

* One word

* Requested change

* Tank holders can be anchored and have better examine descriptions.

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
2021-04-22 20:11:30 +01:00
SkyratBot
336c6524c8 [MIRROR] Fixes painted directional window opacity bug (#5082)
* Prevents jank directional window opacity bugs (#58577)

* Fixes painted directional window opacity bug

Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
2021-04-22 05:09:39 +01:00
SkyratBot
c961925acc [MIRROR] Exorcises shitcode demons out of an unobtainable piece of farm equipment (#5069)
* Exorcises shitcode demons out of an unobtainable piece of farm equipment (#58568)

* Removes code that does nothing

* Adds comments

Co-authored-by: Your mother <mothmilk666666666666@ tfwno.gf>

* Exorcises shitcode demons out of an unobtainable piece of farm equipment

Co-authored-by: interestingusernam3 <51925758+interestingusernam3@users.noreply.github.com>
Co-authored-by: Your mother <mothmilk666666666666@ tfwno.gf>
2021-04-21 18:33:57 +01:00
SkyratBot
0f4938bf5c [MIRROR] Adds comments to handcuffs.dm (#5067)
* Adds comments to handcuffs.dm (#58478)

* update

* Adding changes made to file in #58456

* Comments handcuffs in handcuffs.dm

* Comments for legcuffs stuff

* Final touches

* Adds two newlines that make the code a bit prettier

* Changed handcuff subtype comments

Mostly removing useless extended descriptions from cablecuff subtypes

* Alien handcuffs comment now actually states what they are

* IT'S BLAND YOU SAY?

* Removes bloat

Co-authored-by: BuildTools <unconfigured@ null.spigotmc.org>
Co-authored-by: MothMilk666 <mothmilk666666666666@ tfwno.gf>

* Adds comments to handcuffs.dm

Co-authored-by: interestingusernam3 <51925758+interestingusernam3@users.noreply.github.com>
Co-authored-by: BuildTools <unconfigured@ null.spigotmc.org>
Co-authored-by: MothMilk666 <mothmilk666666666666@ tfwno.gf>
2021-04-21 18:33:47 +01:00
SkyratBot
d5bf2b0b4e [MIRROR] Converts screwdrivers to GAS (#5058)
* Converts screwdrivers to GAS (#58453)

* Basic GAS setup

* Compile fix

* Fixes, inhands, belt icons

* New procs

* New version of GAGS

* Inhand for subtypes

* Typo fix

* Converts screwdrivers to GAS

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
2021-04-21 05:53:17 +01:00
SkyratBot
68d376d367 [MIRROR] Fixes some typos in frozen.dm descriptions (#5056)
* Fixes some typos in frozen.dm descriptions (#58539)

* Fixes some typos in frozen.dm descriptions

Co-authored-by: Swept <sweptwastaken@protonmail.com>
2021-04-21 04:08:37 +01:00
SkyratBot
d0510f16c8 [MIRROR] Reverse bear trap resprite (#5042)
* Reverse bear trap resprite (#58411)

imageadd: added new icons for reverse bear trap

* Reverse bear trap resprite

Co-authored-by: Greniza <61635418+Greniza@users.noreply.github.com>
2021-04-20 16:29:14 +01:00
SkyratBot
26f7af3e1a [MIRROR] Fixes chicken and exotic meats not processing into meatballs. (#5035)
* Fixes chicken and exotic meats not processing into meatballs (#58509)

* Fixes chicken and exotic meats not processing into meatballs.

Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
2021-04-20 05:04:38 +01:00
OrionTheFox
344f11b9c6 FIX FOR Eyepatch Left/Right Toggle! (#4949) (#5001)
* toggleable eyepatch side

the day we've been waiting for.,

* HAHAHAHHA WHOOPS

I FORGOT A CHECK TO MAKE SURE THAT ALL EYEWEAR SPRITES DIDNT TRY TO ADD _R TO THE END
2021-04-20 01:29:32 +01:00
SkyratBot
16112497c8 [MIRROR] Completely removes unused caution sign from code (#5026)
* Completely removes unused caution sign from code (#58532)

Tiny atomic pr that zaps the old unused caution sign out of both its icon file, the code, that one random map file it was still in, metastation, and rearranged metastation. You can now properly wear caution signs from all sources!

* Completely removes unused caution sign from code

* removes obj/item/caution

Co-authored-by: Kokonut <38844529+maxymax13@users.noreply.github.com>
Co-authored-by: KathrinBailey <evesovereign@hotmail.co.uk>
2021-04-19 21:58:26 +01:00
Gandalf
553b707ba3 aaa (#5016) 2021-04-18 21:31:42 +01:00
Gandalf
abfb646aa2 Removes assaultops (#4952)
* aAAA

* aaa
2021-04-18 20:47:10 +02:00
SkyratBot
6c8b4ddcd4 [MIRROR] Scrolling layers for RPD is more snappy. It is also no longer flipped. (#4995)
* Scrolling layers for RPD is more snappy. It is also no longer flipped. (#58493)

* Scrolling layers for RPD is more snappy. It is also no longer flipped.

Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
2021-04-18 14:27:48 +01:00
Gandalf
6b8a912840 Item use power and cell component refactor (#4900)
* aaaaaaa

* Update cell_component.dm

* Update cell_component.dm

* Update cell_component.dm

* aaaaa

* aaaaaaaaaaaaaaaaaaaaa

* Update flashlight.dm

* Update flashlight.dm

* aaaaaaaaaaaaaaaaaaaaaaaaaaaa

* AAAAAAAAAA

* Update _wires.dm

* aaaa

* AAAAAAAAAAAAAAAAA

* aaa

* Update cell_component.dm

* aaaa

* AAAAAAAAAAAAAAA

* AAAAAAAAAA

* AAAAAAAA

* Update youtool.dm

* aaaaaaaa

* aaaa

* aaaa

* asaa

* HOLY FUCK YOU GUYS ARE ALL SO LAZY JESUS FUCKING CHRIST

* aaaaa

* Update cell_component.dm

* Update cell_component.dm

* Update cell_component.dm

* Update cell_component.dm

* Update cell_component.dm

* Update traitordevices.dm

* aaa

* Update traitordevices.dm

* Update traitordevices.dm

* aaa

* Update cell_component.dm

* POWER CELLS VERSION 2

* OH YEAH BABY

* A

* Update cell_component.dm

* Update flashlight.dm

* AAAAAA

* Update flashlight.dm

* Update atoms.dm

* aa

* AAAAAAAAAAAAA

* aa

* Update multi_cell_charger.dm

* Update flashlight.dm

* Update flashlight.dm

* Update multi_cell_charger.dm

* aaa

* Update _wires.dm

* Update electric_welder.dm

* aaaaa

* Update tools.dmi
2021-04-18 15:09:13 +02:00
Cheshify
c18a157715 [NONMODULAR] Head Of Security Nerf/Fix (#4972)
* HoS Nerf

* Typo Fix

* aaa

Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-17 21:43:13 +01:00
Gandalf
9decfc49f6 Revert "toggleable eyepatch side (#4949)" (#4986)
This reverts commit 774824da18.
2021-04-17 19:45:43 +01:00
SkyratBot
129f09b657 [MIRROR] Hollowpoints and similar attacks/weapons double existing armor, not add total armor, to the their targets (#4984)
* Hollowpoints and similar attacks/weapons double existing armor, not add total armor, to the their targets (#58114)

* Hollowpoints and similar attacks/weapons double existing armor, not add total armor, to the their targets

* a

* Update tools.dmi

* Update tools.dmi

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-17 17:18:04 +01:00
OrionTheFox
774824da18 toggleable eyepatch side (#4949)
the day we've been waiting for.,
2021-04-17 16:01:42 +01:00
Gandalf
b40d89db02 Security boot crunch (#4967)
* aaa

* Update miscellaneous.dm

* aaaa
2021-04-17 15:50:12 +01:00
SkyratBot
0618a7d95e [MIRROR] Minor code readability improvement to default values of the breakouttime var (#4982)
* Minor code readability improvement to default values of the breakouttime var (#58456)

Replaces time expressed in deciseconds with time expressed in deciseconds but with use of the MINUTES and SECONDS defines for readability.

* Minor code readability improvement to default values of the breakouttime var

Co-authored-by: interestingusernam3 <51925758+interestingusernam3@users.noreply.github.com>
2021-04-17 15:45:57 +01:00
SkyratBot
c59647463a [MIRROR] Carved statue rotation bug fix (#4975)
* Allows rotating statues (#58462)

* Carved statue rotation bug fix

Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
2021-04-17 14:03:13 +01:00
SkyratBot
fa8e5628e6 [MIRROR] Move eyestabbing to an element, rather than as part of core combat code (#4964)
* Move eyestabbing to an element, rather than as part of core combat code

* Update item_attack.dm

* Update item_attack.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-17 01:57:45 +01:00
SkyratBot
3ef3c1193c [MIRROR] Adds worn overlay y offset variable. (#4930)
* Adds worn overlay y offset variable. (#58400)

Co-authored-by: Krysonism <49783092+Krysonism@ users.noreply.github.com>

* Adds worn overlay y offset variable.

* Update human_update_icons.dm

* Update human_update_icons.dm

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Krysonism <49783092+Krysonism@ users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2021-04-16 13:26:07 +02:00
SkyratBot
1f0092aa3a [MIRROR] Removes the slur from a possible smoke bomb description (#4936)
* Removes the slur from a possible smoke bomb description (#58360)

* Removes the slur from a possible smoke bomb description

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2021-04-16 00:55:50 +01:00
SkyratBot
665d46688c [MIRROR] Insulating gloves gives chunky fingers trait (#4931)
* Insulating gloves gives chunky fingers trait (#58407)

* Insulating gloves gives chunky fingers trait

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
2021-04-15 19:58:56 +01:00