Ports ability to make press camera drones
Ports https://github.com/Baystation12/Baystation12/pull/14875
1. Get Robot head
2. Infrared sensor (like you would for TTV or grenades) -> Makes the assembly. Looks like robot head.
3. Add robot camera (from fabricator)
4. Add Tape recorder
5. Add 6 wires
6. Use wirecutters on assembly
7. Add 1 steel
8. Done
Tested on current build, works like a charm. Works with both empty and full tape recorder.
Sleevecards don't normally get the directives window, so! This makes it so their directives UI button lets them know that they don't have any directives!
This also allows sleevecards to be emagged! An emagged sleevecard gets directives and the typical pAI card use screen that lets someone register themselves as their master and set directives.
This also modifies the pAI card use screen a little bit, to make the name more prominent, and colored the same as the pAI screen/eye color! Also added the current pAI health to the screen.
Several tweaks and changes for pAI:
pAI banning:
clicking pAI cards and using the pAI alert ghost verb checks to see if you are banned from playing pAI now. Before only the original recruit prompt checked to see if you were banned from playing pAI! Now all existing forms of joining or asking to play as a pAI should check.
folding and bellies:
now if you end up in a belly as a pAI and you fold up, your card will land in the belly, instead of on the floor (unfolding already has a check to make it impossible to unfold while in a belly, since there's not enough space)
self add to recruit list:
Now when you click a pAI card as a ghost, or use the pAI alert ghost verb, you will be given the option of adding yourself to the pAI recruit list. If you do this, then anyone who checks their pAI cards could choose to pick you! You can of course also just not do this, and use both options as normal otherwise.
Originally you could only add yourself to the recruit list after someone had activated a pAI card and requested personalities. (And then promptly forgot to actually ever check back in with the device again. UWU)
pAI radio:
previously the pAI radio had just been a normal shortwave radio, with all the complications and limitations that implies
thanks to heroman's help though, pAIs now have a normal radio! It's channel access even still gets expanded or restricted based on its present available access, rather than dealing with headset keys! (since it needs to get that access from working with someone anyway)
With this, pAIs have access to juuuuuust about all the basic features one would kind of expect them to.
There's still plenty of things to tweak and add, but these changes should bring them much more in line with what I think can be called 'complete'
All their stuff works I think!!!
Screen Message allows a pAI to display a message on their screen.
This makes it so the message can be read if you open the card interface, and, if you happen to be holding the card in one of your inventory slots that isn't a container of something else (or if you have them in your PDA or tummy), then it will print the message in the chat.
I decided to let it work for the tummy thing despite not making logical sense because people use bellies for all kinds of stuff, and it's not like you can powergame this so WHATEVER!!!!!!!!!!!!!!!
Logs anything you write to this into say, annnnd. Yeah!
This should let people who like to play mute pocket friends (me) quietly talk to the person holding the card, even when comms are down! (wow!)
Makes a 'Save Configuration' verb, that saves your name, flavortext, eye color, chassis, and card emotion!
Then, to go with this, updates the various ways to become a pAI to allow you to load your configuration data into the pAI, rather than having to manually enter it every time.
Also makes the ghost notification verb and the 'new personality submitted' message both print the same message, and puts it on a 5 minute cooldown so it can't be spammed too often (the ghost one still makes the screens light up as often as you push it, it just only prints the message in the chat every so often)
Additionally, tweaks the release all proc so that it won't trigger the release message and sound when the only targets inside of you are absorbed and it's not releasing absorbed people.
Also removes the admin notification when people use the 'Adjust Mass' verb to not deliver an admin notification, because it doesn't reeeally matter? It's the kind of message we never pay any attention to. So! Instead I changed it to log it instead, so it can still be investigated if need be, but without clogging up chat.
Gives them some of the UWUey verbs and wiggles a few things around to better account for pAIs, such as:
Devouring and digesting pAI cards now respects the player's prefs on the matter
Characters that are absorbed do not get released when the card folds up.
Additionally, pAIs get the dominate predator/prey verbs
also pAIs have another new chassis
Changes some things around!
Removes the 'wipe' button from pAI's interface, since I think there being an instant 'kill player' button is pretty lame, especially since most pAIs activate on their own without a master. They're easy enough to kill or contain without this, so I don't see it as necessary. If you want to kill your pAI friend just eat them. :U
Removes the 'pAI Suicide' verb, and renames the 'Wipe Personality' to 'Enter Storage' and moved it from the OOC tab to the pAI Commands tab. Killing a pAI deletes the card and all that, where the 'Enter Storage' verb deletes the card and spawns a new one that can be used, which! I think it more appropriate.
Makes it so that, when damaged, pAIs will slowly regenerate while folded up, at a rate of 0.5 brute and burn per life tick, where previously it had been impossible to recover health outside of admin intervention.
Updated the Universal Translator with many of the newer languages that aren't obviously for events or hivemind type things.
Added the same emotes that humans can use to pAIs
Added an alternative pAI card style, and rearranged the expressions for the cards a little bit, and added one more.
Plan to add more pAI chassis to play with
Adds Regenerating + Hatch thrown alerts, similar to stunned/weakened/buckled, and clicking will show the remaining time to revive, or allow you to hatch.
Defibrillators will now apply halloss to Xenochimera and set them feral on revive.
Defibrillators will now apply halloss (pain) to everyone on revive.
Medscanners will now display if a Xenochimera is regenerating or needs more protein, and if a 'chimera is dead, will warn that they require sedation.
Reconstitution cooldown reduced from 1 hour to 10 minutes.
Regeneration will no longer handle ferality in the middle of it, preventing edge-case *twitches while clearly regenerating.
Regeneration will now have an audible + visible cue that plays on a 2% chance.
Xenochimera have gained the Lick Wounds Verb.
Lick Wounds has been modified to allow treating self-injuries, and injuries of the mob next to you. Given how limited the use is and how often bandages + chems are just flat-out better, this shouldn't be a huge balance issue, IMO.
So, I am not sure how much this will help or hurt.
We have noticed that, there is a lot of lag that happens under heavy radio use, and Ascian noted that the playsound proc was seriously overloaded during those times.
Notably, presently every radio in the game uses playsound to play the radio sound any time anything sends a radio message, even if the radio in question doesn't have the channel the message was sent to.
And if you are unaware, playsound figures out who's in range of every source of sound and their distance from its source to adjust the sounds so that it sounds like it's coming from the right place in the world.
Problem is, if the server's decently busy, that's possibly a hundred things doing that work every time any message comes over a radio.
I thought it would be better if, since the radio systems are ALREADY doing the work of figuring out who can see the radio message, that playsound doesn't actually need to do that work again for tons of different sources.
ADDITIONALLY, the thing to determine if the sound should be played based on preferences is also a part of playsound, meaning that it STILL RUNS PLAYSOUND EVEN IF THE PREFERENCE IS OFF
So! I used byond's direct sound thing which, I THINK just makes your client play the sound and ought to use next to no extra server resources for it.
The only downside is that we lose pitch shifting on the radio sounds, and we lose the sense of 'audio presence' for the sounds in the world.
In short, this means that the radio sound will just, always sound the same no matter where it is in relation to your character. If you receive a radio message, the sound will play on your client.
The sound should also only ever play once for you per message, rather than stacking like it does when lots of people/radios are in the same place.
ASSUMING THIS WORKS HOW I THINK IT DOES, this should reduce a lot of computer work for playsound on busy shifts. (And ideally, increase performance)
This change does also use and respect the same preference that already exists for radio sounds, so there will be no change in how that works.
You can now destroy the crystal to release whatever is inside of it.
You can now relinquish ownership ownership (without releasing the mob)
You can now toggle ghost join on and off on AI controlled mobs who have been caught by the capture crystal, rather than it being automatically on. (Once a ghost joins, it cannot be turned on again, of course)
And generally cleans up some of the interactions.