#61980 (694c2999b0) has uncovered a few issues with our dna datum code. Mainly the lack of support for ui/uf blocks of different sizes.
So, in order to fix this issues, I had to create four global lists, two for UI and UF blocks which sizes differ from DNA_BLOCK_SIZE and two more that store the points in the ui and uf strings where different dna blocks start (this way we avoid having to calculate them every getter and setter proc call).
This will add support for heterogeneous ui/uf block sizes and make 24-bit color features and identities possible.
To the maintainers of downstream codebases: Remember to add your modular code ui and uf color blocks to the identity_block_lengths and features_block_lengths global lists respectively ... Unless you have rewritten dna code on your end. If that's so, good luck.
Tested and working (unless CI says otherwise).
Saturday morning, calm shift.
I spend most of my time staring at CANARY waiting for an atmos alarm to pop up while I sit at the foyer hearing what random craziness Poly is spewing and wondering about the previous and more interesting shifts.
When suddenly, an atmos alarm pops up at the Incinerator.
"Fucks sake, I bet the other atmos are torching the place again..."
I rush there expecting to fix a fire, but instead I find the start of something great...
The madman kidnapped an Ethereal to use as an organic Hydrogen farm, nothing I haven't seen before but... my hands start shaking, a spark of brilliance and potential in my eyes as I mumbled the words:
"I always hear that organic things are healthier... so what if we throw the Electrolyzer away and instead, print Etheral lungs in the limbgrower and implant them on monkeys..."
To our sadness, Ethereal lungs weren't added to the Ethereal disk design, this fixes that!
About The Pull Request
image
Worn T-shirts, found in maintenance are now susceptible to shrinkage after repeated washing machine washings.
Too many machine washes can cause the shirts to shrink to the point that they simply disappear to the laundry dimension, as does real clothes in real life.
Why It's Good For The Game
Fun little hidden interaction with laundry machines due to my having noticed that laundry machines exist in the code still.
Changelog
🆑
expansion: Laundry machines can shrink particularly old, worn t-shirts. Remember kids, hand wash only.
/🆑
Continues the journey of #61730. This time, all map templates will see their area lighting objects created upon getting loaded if they have static_lighting = TRUE. This means that places like Hilbert's hotel, as well as any map placed by an admin during the round, will now be able to properly have dynamic lights without any need for VV shenanigans.
Tested and working, I tested with Hilbert's hotel and by spawning a couple of other map templates to confirm.
Fixes#61558, closes#61340 (kinda not, but it's already fixed anyway, and loosely related to this) and should be the final nail in the coffin of #61349.
Courtesy ping to @TiviPlus, just in case you had anything to say about it.
About The Pull Request
Previous PR (Closed Because I'm a Git Newbie)
https://youtu.be/AFa1-kciCb4
Ever wondered why we had cowboy boots in the autodrobe and clothesmate, but no hats?
Ever wanted to start a posse but the fluorescent lighting was beating down on your head?
Ever wanted to run your bar like an old-timey saloon but you were too ashamed of your bald spot?
Ever wanted to say "See you Space Cowboy" and actually mean it?
This is the PR for you!
image
Left to Right: Desperado Hat, Drifter Hat, Sheriff Hat (with Sheriff Vest), Ten-Gallon Hat, & Deputy Hat
All hats are craftable using two sheets of leather. The vest can be crafted with four sheets, and can be attached to jumpsuits.
The drifter hat and the ten-gallon can be found in the clothesmate. The others can be found in the autodrobe.
Every item has in-hand sprites!
This PR does not alter fugitive bounty-hunter items in any way.
Why It's Good For The Game
It always puzzled me that we had so many western-themed items, clothing, and references, but no hats to back it up. Now we can run cowboy gimmicks to our heart's content, and admins have more than enough to cobble together an event straight out of the old-space-west.
Changelog
cl
imageadd: Due to lobbying pressure from the Yee-haw Conservation Society, Nanotrasen vending machines now stock five new cowboy hats and an old-west vest.
/cl
Refactors Sign Language code so instead of copy-pasting the same giant wall of checks we can just use a proc.
Also now checks to see if your limb is disabled, which fixes people with disabled robotic limbs being able to sign still.
Finally, the tongue only has ORGAN_UNREMOVABLE if you attained it from the trait. I've been told that the tongue could be attained from meateors and I think that's funny as hell so I swapped that over.
* Repath wall reagent dispensers
This changes /obj/structure/reagent_dispensers/{virusfood,peppertank}
to be subpaths of /obj/structure/reagent_dispensers/wall.
The WALLITEMS test now checks for all wall mounted reagent dispensers,
instead of just peppertank specifically.
> git ls-files '*.dmm' | xargs -d\\n sed -i 's@/obj/structure/reagent_dispensers/peppertank@/obj/structure/reagent_dispensers/wall/peppertank@g'
> git ls-files '*.dmm' | xargs -d\\n sed -i 's@/obj/structure/reagent_dispensers/virusfood@/obj/structure/reagent_dispensers/wall/virusfood@g'
Made both drinking and shot glasses use the generic reagent_containers/update_overlay() method. Standardized drinking and shot glasses update_icon_state().
About The Pull Request
Closes#62465
Also makes ghost poly technically designated as a boss in the code as their sentience type, as far as I can tell this doesn't actually change anything other than the ability to make it sentient, but it also makes sense for a creature effectively incapable of death to be designated as a boss in the code.
Why It's Good For The Game
As funny as it is, mindswapping (blood into a rainbow slime extract gives you a mindswap potion) into ghost poly, or otherwise making ghost poly sentient, is an exploit that should be patched. Ghost poly is as fast as a ghost, can move through walls, has godmode, and if you give it a fugu gland it can beat people up. It can also pick up things, such as the nuke disk, which would make nukeops rounds pretty unfair and unfun.
Changelog
cl
fix: Aspiring xenobiologists and ambitious wizards can no longer mindswap into ghost poly or otherwise make them sentient in an attempt to gain godmode + ghost speed + the ability to go through walls.
/cl
Renames conveyor2.dm to conveyor.dm, and removes the historical comment about "new conveyor belts". As a reminder, comments should be about what the code is now, not what it used to be. (Muh history -Lemon)
Moves conveyor belts to their own SS with an identical wait. It is very common, as an admin, for me to want to adjust conveyor belt processing, either to make it faster (for laughs) or to disable it when it is causing heavy lag. It is very difficult to do this (especially the former) because it just uses fast process.
AI's doing research is logged to the RD, but Cyborgs doing it just shows up as 'Unknown', which makes no sense because some AI can order a Cyborg to do research on their behalf so the RD doesn't know who did it.
It also makes the RD's job easier to find out what rogue cyborg is doing research when told not to.
* Makes PDA crew manifest and crew monitoring computer respect trims for ordering and sorting
* Fix static typecheck issue
* Added initial rank tracking for IC command
Adds a blank printing system.
Virtually every Space Station 13 server has its own system of bureaucracy. As a rule, it is some kind of Wiki page with markup tags and a few sample forms. And that's usually the end of it. With stamps and a filing system in place, people rarely use them. This PR takes it upon itself to remedy this situation by introducing form standards into the game itself and adding the ability to print them.
Co-authored-by: twilightwanderer <twilightwanderer@users.noreply.github.com>
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
About The Pull Request
Cargo exports will now start deleting the thing and its contents only after everything has been sold and hopefully stop objects from being deleted before getting sold (no export datum actually deletes anything on sell_object()). This PR also removes a variable only used in one place (an admin only item created by ExcessiveUseOfCobblestone, who probably didn't know there's an argument that stops unsold items from getting deleted) and that may be source of harddels.
Why It's Good For The Game
This will fix#62644, perhaps some harddels and other oddities.
Changelog
cl
fix: Cargo exports will now start deleting items only after everything is sold. This will fix issues such as unachievable exports (like machine ones) and getting less credits than what export scanners says.
/cl
About The Pull Request
Makes the "Ian Adventure" station trait more interesting by giving him deadchat control (democracy mode, 3 seconds cooldown on inputs) and a couple extra lives* to survive early round tiding.
*Basically, a new component that respawns the critter when he dies. The component itself is simple enough, but it sends a signal each respawn to allow other datums to expand this behavior how they want. I've contemplated adding a signal that can stop death, dusting and gibbing instead of respawning the mob at first but because death(), dust() and gib() were made with the assertion that the mob is always going to die I've quickly realized it'd require a refactor that's way too big and out of scope.
The deadchat control of corgis only include commands to change and drop hats, "speak" (random lines from the speak list of the mob) and spin (other than cardinal movement) for now. I'd have loved to add more complex commands (like, argumented) that can potentially be relayed to the AI controller, but I guess that'll have to wait until the thing gets refactored a little.
Why It's Good For The Game
"Ian's Adventure" is a really bland station trait at the moment. All it does is move Ian somewhere else at the start of the round. Even by the station traits standard of being small things this is insignificant, and also pretty bad considering Ian is not actually going on an adventure since he lacks the initiative to do anything being an npc dog.
This PR aims to breath fresh air into this station trait and push it toward a slighty more engaging direction, though it relies on observers to work, while still being a small """"cute"""" station trait.
Changelog
cl
expansion: The "Ian's Adventure" station trait now makes Ian deadchat controllable and gives him a couple extra lives (to survive early round tiding)
/cl
There is still the potential for false positives since the way diagonal
cameras were made didn't exactly line up with where their direction was.
However, this brings functionality back to parity with before the
dir-sanity PR.
This PR is the first of a few were i'll be merging similar working gases into one.
This time is Nitryl and Stimulum. They'll be merged into Nitrium , a brown gas with both features of the two gases
The main scope is to add dept to atmos by removing bloated content and/or repeated content that has never seen the lights of the day (how many times have you seen both gases made and used at the same time?)
The PR so far:
-removed nitryl
-removed stimulum
-merged them into Nitrium (Nitrium is now made with trit, nitrogen and bz from a minimum temperature of 1500 K)
-made Nitrium have both gases features such as fast movements and sleep and stun immunity but increased damage taken
-Nitrium can make crystals that spread the chemicals with a cloud (is still far more efficient to just breathe the gas)
Less rare gases, going towards a better atmos gameplay loop
Was looking for a way to make a cache list when I noticed the assoc_literal component wasn't in the lathe
I rather cache a list of stuff than continuously run foreach/searchs on data from the ntnet or otherwise.
About The Pull Request
This PR adds small and large plates and allows you to break plates by throwing them.
bild
bild
Why It's Good For The Game
Having larger plates allows you to more easily run the buffet gimmick as you can fit more items on the large plates.
Having large plates also allows for more space for creative food plating.
The small plates lets the chef serve small food items such individual cake slices without the plate looking mismatched.
Plate breaking improves immersion and allows unsavoury characters such as mimes and syndicates to stir up trouble.
Changelog
cl
expansion: Small and large plates have been added to the kitchen vend.
expansion: Plates will now break when thrown.
/cl