## About The Pull Request
Requires the MULEbot to actually be immobile for the "whirs to life"
branch to be taken, so it doesn't print every time you cut a motor wire
## Why It's Good For The Game
It's annoyingggg
## Changelog
Nah who cares
## About The Pull Request
Classic case of `[src]` in a datum
Fixes#88206
## Changelog
🆑 Melbert
fix: Mulebot wire hacking is less fourth wall breaking
/🆑
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/87640
## Why It's Good For The Game
feedback is cool
## Changelog
🆑 grungussuss
qol: added feedback for cutting mulebot wires
/🆑
## About The Pull Request
This PR does many things, I'll try to explain the basic/background stuff
to the main thing first:
1. Adds a new remote that allows a human to function like an AI. It
controls a fly that will fly around the station slowly, and when it
reaches a machine then the person can interact with it as if they were
an AI. This required changing a lot of silicon/AI checks with one that
also checks for this remote, and some messing with shared ui state.
2. Moves req_access from the obj and bot to ``/atom/movable`` which lets
it be shared between the two, no more copy-paste and one side lacking
features/checks/signals the other has.
3. Adds a check for AI config for AI-related station traits, which was
lacking prior
Now for the good part...
Adds a new station trait that replaces the AI with a Human.
This person is equipped with an AI headset (including Binary), an
advanced camera console, an omni door wand, the machine controller, and
their laws.
They are immune to the SAT's turrets (even if set to target borgs) and
are slow outside of the SAT, mimicing the actions of the AI.
They interact with the world through their advanced camera console,
which allows them to do most AI stuff needed, and the holopad they can
connect to without having to ring first (like Command can).
They are given a paper with the laws they must follow, but since they
are human they are able to bend it. Cyborgs that run the default lawset
are "slaved" to them via an unremovable law 0, so the Human AI can bend
the laws if they really need to (for their own survival n such), and
make the cyborgs obey their commands above laws, but in general this
shouldn't be a frequent occurrence. This does take into account the
unique AI trait, so it's not guaranteed Asimov.
When this station trait rolls, all Intellicards, AI uploads, and AI core
boards are destroyed and are unresearchable. They can be spawned by
admins in-game if necessary. Maybe in the future we can also exclude
Oldstation from this but I haven't really decided.
Extra perks:
Human AI spawns with a Robotic voicebox (unless they are a body purist)
and teleport blocking implant, so they can't use teleporters to bypass
their on-station slowdown.
They also have an infinite laser pointer that can be used to blind
through their camera console. This is unfortunately nerfed from the
recent borg balance PR that removed its stun. This was meant to be the
alternative to no longer being able to permanently lock borgs down like
AIs can (or more than one, for that matter).
They aren't affected by Roburgers, Acid, and Fuel's toxicity.
Bots salute them like they do Beepsky (which is now a trait)
They spawn with SyndEye to replace the AI's tracking ability
They do not have a bank account
### The machine remote
The machine remote has a little fly in it that flies to the machines it
is pointed to, working as the arms and legs of the Human AI. It scans
the machine and punches in the action the AI does, and is how the AI
accesses basically anything. This fly slowly moves from one machine to
the next, and can be recalled with Alt Click.
It works on machines and bots.
### Video (Low quality to fit Github)
https://github.com/tgstation/tgstation/assets/53777086/e16509f8-8bed-42b5-9fbf-7e37165a11e8
## Why It's Good For The Game
I've seen a funny screenshot one day of a person replacing the AI by
using a bunch of door remotes, camera console, crew monitoring console,
and a few other things. I've been thinking about that for a few years
and really wanted to make it official if not easier to make possible,
because it is an incredibly funny interaction.
This makes it a reality, and while they aren't as powerful as regular
AIs, I think it makes for better and funnier in-game moments. With the
same weight as Cargorilla (1), I hope this wouldn't be rolling too often
and ruin rounds, but instead show off the different capabilities that
Humans and AIs can do, to do the job of an AI. You win some you lose
some.
## Changelog
🆑 JohnFulpWillard, Tattax
add: Adds a new station trait job: The Human AI.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Prevailing feedback has been:
- The player base cannot be trusted to control MULEbots.
- It should be clearer what bots can and can't do.
The former is easy to fix.
The latter is sort of a matter for policy but I'm going to investigate
giving bots a rudimentary laws system. Plus that sounds much more
controversial than this so I am going to atomise this outside of that
PR.
MULEbots can still be set to allow sentience by cargo technicians, but
don't start that way.
ADDITIONALLY this PR just changes it so that MULEbots do not crush
people unless:
- They have been emagged.
- Their safety wire has been cut.
Either means works, so it's not too hard to access for nefarious
purposes, but hard to do to yourself.
Otherwise they just slow down for a few seconds instead.
Also fixed an unrelated name bug while I was there.
Closes#76926
## Why It's Good For The Game
Players would take them, not deliver any cargo, and repeatedly ask
people to lie down in front of them.
Plus Tram has 5 of the things which is frankly too many to be wandering
around the bar.
## Changelog
🆑
balance: You can't possess a MULE as soon as the round starts, someone
will have to give you permission.
balance: MULEbots no longer crush prone characters unless they have been
hacked (or emagged).
fix: Bots can put numbers in their names, what with being robots.
admin: Adds attack logging when certain wires are cut (for instance:
MULEbot safeties)
/🆑
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.
Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.
(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
cl ShizCalev
refactor: Optimized a good chunk of MULEbot code, fixing things such as it rebuilding it's overlays/icons 5 times every second while moving to a destination. Less free lag!
fix: Fixed MULEbots closing crates when the crate doesn't actually get loaded onto it.
fix: Fixed the maintenance hatch on MULEbots visually closing for a moment when emagged.
fix: Paranormal MULEbots will no longer briefly turn into a normal MULEbot when emagged.
fix: Fixed interface exploits involving paranormal MULEbots carrying ghosts.
fix: Fixed MULEbot blood tracks sometimes facing the wrong direction.
fix: Player controlled MULEbots will now leave bloody tracks if they've run over a mob.
fix: Fixed players riding MULEbots sometimes appearing underneath it instead of ontop of it.
fix: Fixed AI's making a chiming noise when they receive a remote notification from a MULEbot. Now only the AI will hear the notification's sound.
fix: Fixed MULEbots dropping mobs off at their current location instead of at their dropoff point.
fix: Fixed a minor runtime related to MULEbots dropping off deleted items/mobs.
fix: Fixed mobs having the wrong height offset when riding MULEbots.
fix: Fixed mobs sometimes ending up underneath MULEbots while riding them.
fix: Fixed mobs not falling off MULEbots when stunned / incapacitated.
fix: Fixed inducers not recharging MULEbots.
fix: Fixed MULEbots leaving bloody tracks in space.
fix: Fixed MULEbots leaving multiple blood tracks in the same spot if they failed to move.
fix: Fixed hacked MULEbots spamming messages about knocking down a mob when they didn't actually do it.
fix: Fixed MULEbot commands not resetting when they were turned off.
fix: Fixed MULEbots not turning off properly when their maintenance hatch is opened.
fix: Fixed MULEbots not turning off properly when they ran out of power while moving.
fix: Fixed MULEbots flashing their external warning lights while they're turned off when their avoidance wire is cut.
fix: Fixed mobs being able to walk right over MULEbots when they turn off.
fix: MULEbots will now try to put their powercell in your hands when you remove them with a crowbar.
fix: Fixed the interface for MULEbots briefly looking like you turned it on successfully even though it was out of power.
fix: MULEbots will now provide feedback if they fail to turn on due to their maintenance panel being open.
fix: MULEbots will no longer flash and beep when their wires are pulsed if they don't have power.
fix: MULEbots will now actually flash when their external warning lights are pulsed.
tweak: MULEbots will now flash when they beep / buzz.
add: Added a bit more examine text to MULEbots.
/cl
Fixes#42918Fixes#46030fixes#38594
Several of the greps were missing the `-P` switch which caused them to
fail to match things. The EOL grep also wasn't working right so I
replaced it with the one I added to TGMC.
Goonchat will use the asset cache, you now have to specify who to send the icons too.
Goonchat will now load icons in the background, displaying them once they load. this prevents the message from being delayed while the icons are sent.
Icons that aren't preloaded using the asset cache system will not render on ie8 clients. This is because of a ie8 bug that prevents changes on runtime created images from rendering.
- Facehuggers will now let you open the bag even if you're wearing facehugger proof gear.
- Added some sanitizing to signal().
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5756 316c924e-a436-60f5-8080-3fe189b3f50e
- Wire datums arrive! These are wire datums which allows you to easily add wires in a maintainable manner. All wires by default will be allowed to have a signallers attached to it. I have converted cyborg wires, airlock wires, camera wires and mulebot wires to the new system.
- Cameras will no longer have random wires for each camera. The power wire will toggle the power of the camera when pulsed.
- Robots have a new wire! The lockdown wire will toggle the lockdown status of robots. You can now fix cyborgs that have been locked down and had the robotics computer destroyed. Should be interesting now that you can remotely pulse all datum wires.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5663 316c924e-a436-60f5-8080-3fe189b3f50e