reintroduces the intermittent queuing behavior found in #65791 since i can actually recover that part. now after MeasureText() puts us in the player input portion of the tick it will queue a callback for the next tick to resume chat message creation
generate_image() is a highly overtiming proc, now its less so
About The Pull Request
There are over a hundred items in the Autodrobe, barely organized. So I have reduced the chaos a bit, by introducing categories.
Costumes
The first category is simply called Costumes. Here we have historical costumes, the station's supers, the surviving family costumes, and a few odd cases like the delinquent hat and the nurse outfit (which I have moved next to the plague doctor outfit, because its funny).
Supernatural
The supernatural category contains wizard and chaplain gear.
Entertainers
The entertainers category contains clowns, mimes, jesters, singing showgirl costumes. Robbie Rotten's suit is here, because he was a great showman, and Doc Scratch outfit is here because he is an Excellent Host.
Fancy
The fancy category contains suits, dresses and other formal gear. I considered the schoolgirl clothes fitting for this category.
Animals
The main costume category was still a bit long, so I have moved the large number of animal related costumes to their own place.
Service
Some costumes were either roundstart clothes for service members, or they had access to them. Also moved the maid outfit here because it is funny.
Other
Finally, we have the Other category. Things here were either hard to categorize, or I could tenuously justify splitting them of the long Costumes category.
This sorting has also revealed that berets and waistcoats had duplicate entries, this has been taken care of.
Feedback is appreciated, for both sorting, and category icons used!
About The Pull Request
I was constructing mechs last night, and I was really annoyed by the need to constantly tab between the wiki and the game. So I have extended the descriptions of the mech steps, adding hints and instructions similar to the ones that pop up during wall building. Tell me if they are too direct, and not immersive enough, and I'll try to tweak them a bit.
I had to swap inner_plating and outer_plating to var/obj so I could get their names via initial(), I hope this is not a problem.
This does not effect unordered mech construction, as that one is straightforward enough. I also did not include deconstruction steps, as they are more intuitive, and usually people don't change their mind in the middle of construction.
Why It's Good For The Game
Not having to constantly swap between a wiki page (or the in game book that displays that wikipage) and the game is good.
* create_storage is now part of pocketprotector init, not just the full subtype of it.
* set_holdable now takes atom_storage into account when setting what can be held in them.
* Creates some new defines for constant values in the Messenger app
* Created a new type of preference, text preferences, with a FeatureShortTextInput TGUI component
* Uses said new preference to re-add a PDA ringtone preference.
A continuation of #68389 which addresses an issue that still bothers me to this day:
The orbit menu displays a player's name as a combo of name id transform. It can get lengthy to a point where the names clip the entire screen (as buttons do not multiline).
This PR shortens excessively long player names on the orbit menu and adds a tooltip that will show extended info like full name, health and job titles.
Mostly drawn from concerns brought up in the original.
* blob zombies created by the Distributed Neurons reagent and cyto no longer die instantly due to not having an associated factory
* This was done without reverting the fix to factories that caused blob zombies to never need a factory, either.
Advanced Trait user Monkeys (so clever mutation or admin ones) now don't attack_paw, meaning they'll act like a human and call attack_hand instead.
I think it would be funny if this was on base species, so all non-advanced human will attack_paw, but I haven't read attack_paw enough to want to go through with it.
They're intelligent now, so I don't see why they should be limited to attack_paw instead of human interactions. Now they can properly use defibrilators, water tanks, holosigns (for the janitor monkeys), crates (for cargo techs), and many other items, all without giving the ability to all monkeys and xenomorphs.
Also makes them more fitting for 'intelligent/advanced/clever', and makes more use out of monkeys being a species now.
* [s] Dead people can no longer communicate with the living
Thought listener, through chicanery, could let you still pass through valid strings (and not fail) if you were a mob/dead/observer occupying your mob/living body. god dammit. check to make sure the fucker is dead.
before_cast returns a bitflag, shouldn't return a bool. Bools will break it, TRUE especially cause it's the same as CANCEL_CAST. See
Fixes tesla blast #69394Fixes#70302
I'll see if this can be unit tested as well
The "They don't appear to be themselves" line on humans that have AI controllers is now controllable by the AI controller, and is only "They don't appear to be themselves" by default.
Monkeized human now have the line
* - Ninja and traitor console hacking can only be done in VALID_TERRITORY areas
* Balloonies
* Actually, it should check separately.
* We never checked this either apparently
* Feedback
* Boilerplate
* Return FALSE
* Balloons
About The Pull Request
Adds a bar to the UI of the biogen to show how full the container inside is
2022-10-08.23-47-27.mp4
I tidied it up a little bit but forgot to record it so here's a screenshot of how it looks now
image
Why It's Good For The Game
Helpful so you don't have to keep doing math over how many u's of reagents you'll have room for in a container
Changelog
cl Wallem
qol: The Biogen will show how full the container inside it is
/cl
Player Panel's Make AI Now Respects Closing
Hey there,
Before, this wouldn't respect it if the user calling this via the Player Panel just hit the X button, instead of "cancel" on the TGUI input message. If you hit the X button, it would just create an AI at the normal AI landmark anyways (very stupid!). I fell for this like twice in the last week, so let's get this outta here.
* Adds an Adjacency Check for untipping Vending Machines
Hey there,
Basically, if you were a cyborg, you could untip a vending machine from halfway across the world. There was no adjacency check for pretty much anyone to untip a vending machine, and since a cyborg will always pass through on anything that interacts with an `/obj/machinery`, it would always untip no matter how far away the person was. In fact, we even have an `isAI` check down the line because I think AI's could remotely untip any vending machine (lol).
Let's just pass in an adjacency check for this. Phew.
* an even earlier return
* alright let's actually not override base behavior
* updates the check later on in the chain
* Changing your PDA ringtone now has your current ringtone in your input box, like the previous PDAs used to.
* The incoming Messenger messages are now HTML encoded in message history, allowing it to display apostrophes and such.
* The prompt to send a PDA message now shows you the person you're trying to send a PDA message to.
* Jaunt code path reworked so that traits and other effects can be removed consistently regardless of how effect is ended.
Jaunts will more consistently clean themselves up (and unjaunt you) when you lose the spell.
If a shuttle lands on you while you are jaunted it will now kill you instead of crashing and fucking with the shuttle landing process.
Z travelling while inside an object or mob will now relay that direction instead, allowing you to jaunt up and down as well as cardinally.
Mirror walk button updates at correct times.
Blood and Shadow walk buttons have same functionality as Mirror Walk.
Töchtaüse berry juicer fix
removed grind_results since it's redundant and removed the itching powder reagent from the juice_results variable. Added nutriment to Töchtaüse berries for juicing purposes
* bileworm health patch
- bileworms start off easier
- vileworms are how they are now + a little tougher
- fixes bileworms breaking proximity spawn rules
- adds gold to bileworm loot
* ssticker
* diagonals readded to attacks\, map fix
* d-delete this
* Update evolutionary_leap.dm
* DONE
* Fixes Unreadable APC Balloon Alerts as Ethereals
Hey there,
So basically, when an ethereal on combat mode would try and discharge an APC, they would get this, which is completely unreadable:
So, let's add a small sleep at the end of `togglelock()` for ethereals, and then proceed to continue on with the proc chain of whatever an ethereal might want to do with an APC.
* swaps the balloon alerts to add timers
less elegant, but it does do the job nicely
* Hopefully fixes Cleaning
* Cleaning off window blood is now handled by the Window itself
* Cleanbots now have an advanced mop built into them, I am hoping in the future we can make cleanbots have their mops taken off, but I'm not good at spriting so it isn't a thing yet.
* Adds a pre_clean_callback to replace the should_clean arg (mostly)
* Removes the atom cleaning proc, replaces it with a signal for afterattack on a cleaning tool.
* Fixes and improvements
* adds a new define that allows pre_clean_callback to cancel cleaning entirely, used for mops to check for being wet or attacking buckets and such.
* Fixes cleanbots not properly working, removing their mop and just registering for a signal that bots send instead.
* Changes cleaner component to take proximity into account, that way we don't have to check it on each item's individual afterattacks, that way we don't have to call parent at the end either.
* Improves check_allowed_items a little bit because I hated how it was used for soap.
* Update cleaner.dm
* reviews