81Denton totally opened a competing PR mere moments before I
finished this one.
Why? It's not important enough to actually make a sound, ghosts can't
interact with the bombs, they just watch it.
This notifies ghosts whenever a bomb gets activated and lets them jump to it.
It's always hilarious watching people try to defuse bombs, or Ricky playing out
hostage situations.
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.
Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove
cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
Fixes#39976
A good number of things were missing various parts of the logging (going to GLOB.bombers, not going to client logs, not logging to game, ect), or doing incorrect things like passing admin verbs to saved logs.
Unified all the necessary actions under a single proc log_bomber() which handles everything in most use cases. This way the log isn't all jumbled up with inconsistent messages, everything's one format so you can quickly find what you need to bwoink the right person.
* Refactor several log lines to use datum_info_line and atom_loc_line
* Add default return strings from datum_info_line and atom_loc_line
* Add parentheses around atom_loc_line data
* Change more logs to use atom_loc_line
* Add check in atom_loc_line for turfs to avoid calling get_turf on them
* Re-add removed 'at'
* Replace datum_info_line with key_name and atom_loc_line with loc_name
* Refactor logging functions
* Avoid double-logging self-interactions
* Fallback to simple stringification if all else fails in key_name()
* Rewrite muscle spasm logging to use log_message
* Standardize logging of martial arts
* Tweak individual logging panel look
* Fix individual logging panel source
* When I typed || I really meant &&
* Fix Telecomms logging always showing client logs in the panel
* Reverts addition of buggy ownership log to panel
* Remove colon
* Fix missing log_directed_talk tag
* Add warning for missing type in log_direted_talk
* Change warnings to stack_traces
* Add square brackets around fallthrough key_name() case to help parsing
* Allow atom arguments/src in log_*() functions
* Change log_combat call with null argument to log_message
* Change mecha types' log_message() arguments to match atom and mob version
* Add key_name() case for atoms
* Fix resist_grab() unsetting pulledby before log_combat gets a chance to use it
* Fix log_globally logic
* Add logging for hitting objects with items
* Move log_combat() to atoms.dm
* Use utility functions for object stringification in log_combat()
* Use utility functions for object stringification in log_combat()
* Add missing logs for interacting with display cases
* Rewrite log_combat() comment
* Add missing space in log_combat()
* Add logging for hitting grilles barehanded
* Add missing ..()
Chem grenade casing descs are just "A do it yourself [initial(name)]!", which
means players have to either pull up the wiki or code dive to find out what the
hell they actually do.
I gave empty casings detailed descs so aspiring pyromaniacs can quickly see
what casings do.
* adds signal and modifies each call of afterattack to call it's inherited proc
* uses new macro for sendsignal()
* map fuck
* skip precommithooks
* combine and negate 2 ifs
* High Gravity - First Draft
* Replaces has_gravity defines for areas.
* Default gravity ztrait
* Adds some gravity effect and skips damage at gravity = 2
* Paralysis icon
* Antigravity grenades for some abuse
* Makes the damage treshold a define and makes alert description more accurate.
* Bluh
The component is initialized with any combination of three flags, EMP_PROTECT_SELF protects against effects that target the object itself, EMP_PROTECT_WIRES protects against wires being messed with similar to the NO_EMP_WIRES_1 flag which this PR removes, EMP_PROTECT_CONTENTS protects against things that are inside the object like organs, internal "non-virtual" power cells and the like
This enables (but doesn't introduce) new mechanics such as adding EMP shielding at runtime to any atom, or taking it away.
* kill BANG_PROTECT_2
* let's put this back in
* dirty
* kill OMNITONGUE_2
This is a write-only variable, probably leftover from some refactor years ago
* kill flags_2
* Slime Crossbreeding!
* Shifts a few things around.
* Prismatic extracts!
* Self-sustaining extracts!
* Consuming extracts!
* Recurring extracts!
* Whups!
* Regenerative extracts!
* Stabilized (unfinished)
* More stabilized!
* This took more effort than it should have.
* Industrial extracts!
* Icons!
* Colors the crosses.
* Bugfixes galore!
* Burning extracts!
* Sounds!
* Starts on burning extracts.
* Charged extracts!
* Minor adjustments to the adamantine shield.
* Fixes map! Ready!
* Fixes problem children, changes consuming extracts
* I'm an idiot.
* Fixes playsounds, unnecessary srcs.
* Removes a gross text2path
* Resolves a conflict
* More AnturK fixes.
* Fixes two other things, too.
* Burning black extracts use shapeshifting now.
* Love Potion now mostly RP in use, aligns user factions.
* Iterative discovery of status effects.