* Better emotes and auto-punctuation.
* Making ' and " work, adding ' to the characters that cause the space to get removed
* Making one part use RegEx
* Makes this even better.
* Removing auto-punctuation
* Improving subtler code, again.
* Time to test this out instead
* Properly fixing it, while also making it more efficient, yeet!
* Lets Player-Controlled Monkeys Make Noise When Using *Screech (#62206)
This PR lets player-controlled monkeys make screeching noises using *screech.
Under the hood, this PR also adds a new proc to emotes called, should_play_sound. What this does by default is the same check run_emote used to do with only_forced_audio, but now that it's in a proc you can override it if you want to. Though, let's be real here, this is only going to get used for this PR because the only reason you'd want to bypass that check is if you're doing something for monkeys. The amount of extremely specific circumstances which even warranted something like this could only stem from some stupid monkey/alien specific crap anyway, BUT JUST IN CASE YOU NEED IT, here it is.
Considering all the screeching AI monkeys do, it's a big shame that currently player monkeys can't do similar.
Considering that monkeys are valid salad and that AI monkeys already screech a lot anyway, I don't think letting players get in on the fun is a bad idea. If need be, we can just tune up the sound cooldown on *screech but I don't think it's really that abusable to begin with.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Lets Player-Controlled Monkeys Make Noise When Using *Screech
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Drugs of the 26th century. Three new hella rad drugs, one less lame drug and more!
* Update traits.dm
* Update maint_loot_trash.dm
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* stops dchat clog from clientless mobs (#60772)
bug fix, because obviously the user.client check in the emote proc was supposed to work for this, but they forgot to put it in manual_emote as well.
also moved the user.client check in the emote proc a few lines above, for sliiiightly better performance, ghosts will still get the message from visible_message, but only if nearby, so it has the same effect as where it was before.
* stops dchat clog from clientless mobs
Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
* Fixes a bug with pronoun swapping inside of names (#60266)
fixes#60253
the above issue showcased a really weird issue with "manual_emote()" which took an emote and then changed the pronoun mid-use, which on its own is ok, but some mobs include names with their emote, hence changing "pronouns" in the middle of peoples names
this method of using manual_emote() is dumb because theres already a proc for changing pronouns in a string, as well as dedicated procs for inserting the correct pronoun for the given mob DIRECTLY in the emote string itself
so what I did was remove the part of the code in manual_emote() that swapped pronouns, it wasnt needed, and instead went to every single emote string that used it and used the [p_they()] procs to get the correct pronouns.
while i was at it, i also touched up descriptions and other miscallaneous emotes and mob communication to get rid of "It's". mobs are by default plural, they arent objects, instead replaced with "they're" etc... a mobs and mob subtypes gender WAS respected
also gave the male gender to two very specific clown mobs which are clearly coded male. gave the void_corgi a neuter gender, since its description makes it a reference to the "void stares back" phrase, which makes it genderless as the void is not a noun.
EDIT: oh, and i did fix an issue with the replace_pronouns() proc, which uses "msg" as its var, but one if statement was "message".
* Fixes a bug with pronoun swapping inside of names
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
* Update emotes.dm
* Update emotes.dm
* Update emotes.dm
* Fix spacing, redo some checks, fix bugs
* Add PR to readme, add new file overwrite, fix styling
* Add cooldown to long silicon emotes
* Fixes a metric fuckton, adds global cooldown, etc.
* cry
* unit test makes me cry
* Readd global cooldown on /datum/emote
* Overwrite /emote/beep modularily, instead of having two
* Bugfixes, mixed gender noises, refactors
* Add requested cooldown and volume change, move code about, blahblahblah
* Remove unnecessary cooldown vars from silicon emotes
* Update and prettify readme further.
* Switch default emote gender to female, no sound for non-carbons on certain emotes
* Add volume var and vary to scream run_emote
Co-authored-by: Avunia Takiya <git@takiya.cloud>
* Makes GHOST_SIGHT not show messages from mobs that dont have a client to reduce chatspam (#53707)
* Makes GHOST_SIGHT not show messages from mobs that dont have a client to reduce chatspam
Co-authored-by: Azarak <azarak10@gmail.com>
* Petting more animals now causes floating hearts and a moodlet, borgs can now pet animals. (#52594)
* Petting.
* Oops.
* Update code/modules/mob/living/simple_animal/friendly/penguin.dm
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Working on underlying redo.
* More.
* Fixing to work with new emote system.
* Move proc and defines to living instead of mob.
* ...Moves it to simple_animal instead.
* Revert cat crate fix (other PR handling), fixes emote thing.
* Appveyor did not care for that.
* Comment typo.
* Very descriptive var name.
* Borgs can now commit pet.
* sweeps up missing manual_emotes, adds a hop to link for ghosts, and moves the name preface to ghost only
* More descriptive vars and proc name.
* Better descriptive vars.
* Making the borg code slightly nicer.
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Petting more animals now causes floating hearts and a moodlet, borgs can now pet animals.
Co-authored-by: uomo <51800976+uomo91@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Adds a coder override emote so manual custom emotes work properly (#52602)
* Adds a coder override emote to skip dumb shit with me
* I know this sucks, I can't comprehend how to do this cleanly without a full rewrite
* cleaner now
* Adds a coder override emote so manual custom emotes work properly
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
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.
* 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 ..()
* Makes Mimes's Bane use the new EMOTEMUTE trait
It randomly occured to me that I should do this.
Mime's Bane is currently a reagent currently only used in cloning pods
to stop growing clones from gasping from crit/lack of air (since they're
in a pure nitrogen environment).
* 2 Mime's Bane = 1 Mute Toxin + 1 Nothing
* Mutetoxin + nothing + radium
This way you can add/remove traits without fear of other sources overriding them. Now you can add TRAIT_STUNIMMUNE to somebody without what if hulk
Notable changes:
Fakedeath now updates instantly, instead of waiting for the next life tick.
Fakedeath now sets time of death when acquired.
Removed extremely snowflake code in reagents that checked if you had morphine to remove slow immunity and so on.
Hulk no longer overrides status_flag changes, in case there are any.
* Adds locations to speech and related communications
Refactors how logging is handled for these.
* changes
* ahhhhh
* preemptive merge conflict undoing maybe?
* Let's not delay this further