* Remove explicit runtime check in monkey business test (#71513)
I knew this was redundant at first but kept it anyway because I thought
it was fine.
However, for some code I'm writing to make issues for flaky tests, this
is going to be an issue. I'm making sure it can intelligently create
collated issues for multiple failures (rather than generating an issue
for every individual shapeshift failure, for instance), but also a more
obviously titled issue if it's only one failure. With this assertion, it
always guarantees multiple failures, and would make issues harder to
read.
To be clear, runtimes during a test ALWAYS mean failure. This check was
never necessary, I just didn't mind it.
* Remove explicit runtime check in monkey business test
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* [MDB Ignore] Unit Tests for Invalid Space Turfs (Area Bullshit Edition)
* should probably make tests pass
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* JSON Savefiles | Player Saves use JSON
* few fixups
* yeah this will need a migration in the future to use a different tree for skyrat stuff
* this can be null
* forgot to sanitize these ones
* TM st
* get it working
* Update code/modules/client/preferences_savefile.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Unit tests radio, saymode, and language prefix keys (#71328)
## About The Pull Request
This PR unit tests radio/saymode prefixes together, and language
prefixes on their own, for any possible overlaps and duplicates
Moved mafia saymode key to :1 and holopad key to :2, we're running out
of radio keys and i'm too afraid to move to 2-letter
## Why It's Good For The Game
1. Unit tests are good
2. https://github.com/tgstation/tgstation/pull/71326 this is bad
🆑
spellcheck: Mafia changeling say prefix is now :1, and holopad say is
now :2
/🆑
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Unit tests radio, saymode, and language prefix keys
* guild now uses :p
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
* Adds more logging to shapeshift test failure (#71384)
Maybe will help us find the source of the spontaneous test failure.
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds more logging to shapeshift test failure
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Improve the naming of the element argument hash index selector (#71319)
So confusing name
* Improve the naming of the element argument hash index selector
* sr sync
Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Unit Tests Overstuffing Reagent Containers with more than their defined volume (#71327)
## About The Pull Request
Simple Unit Test that seeks to ensure that we don't put too much of a
reagent in a container when the container doesn't have enough volume to
accept all of it. Nothing bad would happen, but it's just silly really.
I also fixed all of the instances that this was broken in.
## Why It's Good For The Game
Prevents buggy regressions, such as those found in #71206.
```txt
[2022-11-18 03:32:30.736] FAILURE #1: Canned Laughter (/obj/item/reagent_containers/cup/soda_cans/canned_laughter) has 50 units of reagents, but only 30 units of space. at code/modules/unit_tests/container_sanity.dm:21
- FAILURE #2: T-Borg's tonic water (/obj/item/reagent_containers/cup/soda_cans/tonic) has 50 units of reagents, but only 30 units of space. at code/modules/unit_tests/container_sanity.dm:21
- FAILURE #3: The soda water (/obj/item/reagent_containers/cup/soda_cans/sodawater) has 50 units of reagents, but only 30 units of space. at code/modules/unit_tests/container_sanity.dm:21
```
## Changelog
🆑
fix: Canned Laughter, T-Borg's Tonic Water, and Soda Water cans should
all come with the expected marketed 50 units of goodness, rather than
cheaping out on materials for only 30 units of can volume.
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Unit Tests Overstuffing Reagent Containers with more than their defined volume
* fix SR containers
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Fixes horrible CI times (#71295)
## About The Pull Request
Ok so like, I was using an assoc list in the unit test to map turfs to
their tracked area parent.
This was foolish because unless the test fails we will be doing this for
EVERY TURF IN THE GAME.
Assoc lists are red black tress, so insert time, more then just the list
expansion cost, also just scales with the amount of keys, since we need
to binary search them all to ensure we don't already exist.
This is really slow, and was costing us like actually 300 seconds or
something.
I've switched to storing this information in just the turf. It should
bring this down to like 6 seconds instead of 6 minutes.
Remember, assoc lists are dumb for high scales kids
* Fixes horrible CI times
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Refactors Rabbits to be a Basic Mob (#71205)
## About The Pull Request
Back in #64175, I reworked rabbits such that their base behavior was
just a cute fluffy snuggle monster, and not have the "easter" variant be
the default. Now that we're transitioning everything from simple_animal
to basic, I figured now was the time to shift that over too.
Pretty much everything should be the same as it was before, I even took
some time to add behavior to some elements to allow it to work (let me
know if I should handle it a different way) but rabbits as a
simple_animal and rabbits as a basic mob should now not be very
distinguishable (beyond the fact that they only speak via subtrees).
I also got rid of the single-letter icon_states in the DMI and
accomodated the code to fix because I finally got irritated enough to do
something about that.
## Why It's Good For The Game
Although I didn't really have any pressing urge to add more complex AI
behavior to rabbits than just pretty much re-implementing what they had
as a simple_animal, this is an excellent first-step to allowing much
more extensible behaviors to these fuzzy creatures.
Also, it takes three more mobs off "the frozen list". Whoopie!
## Changelog
🆑
fix: Dead Black Space Rabbits should now properly have a sprite.
/🆑
The UpdatePaths is useless for the maps we have on our repository
(holodecks use a spawner code-side), but I'm going to be nice to
downstreams who need it.
* Refactors Rabbits to be a Basic Mob
* Fixed the CI and the rabbit on VoidRaptor
* Oops, forgot to remove it from here too
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* /mob/living/simple_animal is now frozen. Add a unit test to block all new simple_animal subtypes. (#70669)
* Add a unit test to block all new simple_animal subtypes
* Remove TEST_FOCUS
* Just To Be Sure
* /mob/living/simple_animal is now frozen. Add a unit test to block all new simple_animal subtypes.
* Whitelist! Begin!
* Really
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Easy's Super Omega "unarmed strike based species var moved to limbs" refractor, unarmed strike striking with specific body parts rather than it just being flavor, and brain based attacking limb selection extra chunky edition. And also bodypart traits.
* Removed all the conflicts, and started converting all the arms and legs to the proper typepaths
* Actually makes the game compile :)
* Makes the maps compile too!
* Early mirror of #71143 because it's more relevant to us
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* NtOS Emojipedia - PDA Emoji Messaging For All (#70829)
An Emojipedia app has been added to tablets, given to Mimes and Curators by default, allowing anyone to know all emojis. Additionally, emojis can be used in tablets by every job now.
* NtOS Emojipedia - PDA Emoji Messaging For All
* update emoji list to be valid
* animated emojis
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Refactors how duplicate handling with traitor objectives work. Adds a 'can_generate_objective' function. Adds a limit to kidnapping objectives (#70758)
* Refactored how duplicates are handled in traitor objective code. This will fix destroy heirloom and eyesnatching objectives from only ever being available once.
* Fixed destroy heirloom and eyesnatching objectives never generating
* Kidnapping objective can only be taken a maximum of 3 times within 15 minutes. This puts it in line with the assassinate and eyesnatching objectives.
* Refactors how duplicate handling with traitor objectives work. Adds a 'can_generate_objective' function. Adds a limit to kidnapping objectives
* update kill pet and smuggling
* smug
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Adds unit test for items that can be equipped to suit storage slots that are missing sprites (#70643)
* Adds unit test for items that can be equipped to suit storage slots that are missing sprites
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Changing species now maintains Brain traumas, Cybernetic implants, Liver traits, organ damage, and Heretic Living Heart (#70530)
About The Pull Request
Implements additional code in before_organ_replacement in additional places, to better maintain cohesion when species changes take place.
Brain traumas will now carry over on species change
Having synthetic / cybernetic organs will now carry over on species change
Liver job traits will also carry over on species change
Organ damage will, in most cases, carry over on species change (only if the new organ is identical to the old)
The heretic's Living Heart will attempt to carry over to species change, if it's valid
Some species will still not, as it will attempt to give heart -> liver or something and be invalid
Heretic Living Heart is now a cooldown action. Still not really content with the current state of it, it could use some improvements.
Fixes#42308Fixes#35539Fixes#69574
Why It's Good For The Game
Removes a lot of exploits involving using forced species change to get rid of stuff like quirks / permanent brain traumas and similar.
* Changing species now maintains Brain traumas, Cybernetic implants, Liver traits, organ damage, and Heretic Living Heart
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes Some Incredulously Fucked Up Recycler Behavior (#70638)
* test one
Hey there!
Did you know that if you toss someone into a recycled emagger, that we delete _all_ of that mob's contents? You probably didn't because this shit is broken broken. Like, ow.
That's because we manually moved an item to nullspace, which caused a _slew_ of odd behavior in the Destroy chain for `obj/item` since it moves it to nullspace at a very specific point in time and makes all of it's assumptions on when you move the thing to nullspace. If it's in nullspace before you call qdel, you would shit out the ass with hanging references stuck on the mob (like `w_uniform` pointing to something in nullspace, like the image above).
All fixed now, though.
* I FUCKING LOVE UNIT TESTS
THIS SHIT WILL NEVER BREAK AGAIN!!!
* i blanked
my guy hasn't moved for twenty minutes
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* wrong documentation
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fixes Some Incredulously Fucked Up Recycler Behavior
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Cleans up the fallout from plane cube (#70235)
* Cleans up the fallout from plane cube
Alright.
Makes cleaning bubbles respect planes
Adds support for updating overlays on move, fixing an issue with pointing at items
Adds better error messages for failing to provide args for mutable_appearance()
Fixes a bug where string overlays were not respecting insertion order
* Adds documentation for offset spokesman and offset_const
* Better stack trace
* Removes some redundant uses of cached MAs
At this scale, attempting to cache MAs like this has 0 impact on anything
And just makes things more messy then they need to be
* ensures fullscreen objects START offset, so things are always proper
* ensures chatmessages always have the right offset
* fixes compile
* whoops, the above lighting plane should actually be ABOVE the lighting plane
* fixes compile, also cleans up the fire overlay a tad
* Adds a unit test for plane masters that are shrunk by multiz being double shrunk
This is slightly hacky because of how I'm handing the plane master
group, but it's not THAT bad, and gives me some real good coverage
* Properly targets the seethrough plane at the game world plate. This fixes unit tests, and also just makes more sense
* whoops
* oh
* adds datum support for allocate(), cleans up a harddel from testing
* Makes camera chunks index at 1, and also makes them support non powers of two sizes, since that was unneeded
* fixes runtime in allocate
* Cleans up the fallout from plane cube
* liquid tweaks
* oop
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Adds clearer modularity support to the inhands unit test. (#70440)
cl ShizCalev
server: Added clarified downstream modularity support for the inhands unit test.
/cl
Sorry to our downstreams for not being clear about how to add additional locations for the test.
You can now just set a var with the path (example provided) and add make sure you also add the path to your deploy.sh.
If you need additional locations ontop of that, just add another line with generate_possible_icon_states_list("your/inhands/folder/path"), and make sure that path is also in deploy.sh
* Adds clearer modularity support to the inhands unit test.
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Update inhands.dm
* ci fix
* ew
* wew
* ew
* wew
* wew
* some hats
* rings and donator clothing
* more guns, pillows, devices
* crush hammer
* Fixing the inhands for the fake announcement device
* traitor_announcer
* Just a handful more fixes, for now.
* lost track of what I changed
* more
* weh
* Okay, now will you pass?
* Update code/modules/projectiles/guns/ballistic/bow.dm
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Adds unit test to check for spritesheet issues (#70351)
* Adds a new spritesheet unit test to catch edge-cases that caused problems in the past.
* Adds unit test to check for spritesheet issues
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Updates the Reagent Name unit test to also ensure searching by reagent name returns the correct reagent (#70223)
* Updates the Reagent Name unit test to also ensure searching by reagent name returns the correct reagent
Co-authored-by: pizzie11 <arandom11111@gmail.com>
* Unit tests powernets to make sure the whole station is connected. (#70090)
* Unit tests powernets to make sure the whole station is connected.
* fixes cable tests for blueshift and raptor
* single cable misplacement
* hard map reset
* hec
* tramstation armory stray cable
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
* Removes network cards and printers from tablets
* merge tablet_presets
* printer.dm should have been deleted, missed change
* update contractor tablet
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Gets rid of an annoying sporadic CI failure on closets by actually properly checking if they're qdeleted or not, no matter their typepath (#70116)
* Gets rid of an annoying sporadic CI failure on closets by actually properly checking if they're qdeleted or not, no matter their typepath
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* SECURITY RESPRITE - DARE.
* [MDB IGNORE][THIS SHOULD BE PR'D TO AN ALREADY OPEN MIRROR] Security Resprite - conflict fixes and modular changes (#16367)
* No Head?
* comemt clena
* boot stuff mostly
* Im done touching this file it makes me sad
* I hate overrides :(
* Kill off the now obsolete vest
* How long has this not even worked for? /mob/ linked in Icon? Why?
* low-key just committed so the PR could re-run checks
* Fixes Blueshift not compiling!
Co-authored-by: axietheaxolotl <86872535+axietheaxolotl@users.noreply.github.com>
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>