Repository: BeeStation/BeeStation-Hornet
Pull request #12476: Small emote fix and adjustments
Author: login: mrmanlikesbt
Labels: name: Tweak
name: Fix
name: Removal
Created: 2025-03-21T05:03:38Z | Merged: 2025-04-04T12:27:23Z

## About The Pull Request

- Bacon accidentally duplicated the jump emote on one of his PRs, I reverted that.
- Removes duplicated MMI emotes
- Renames *warn emote to *alarm

## Why It's Good For The Game

- Duplicated code is icky and was causing a bug
- Duplicated emotes are stupid, especially when the MMI ones didn't have any sound or flavor
- Kind of silly that an alarm is called *warn, also inconsistent with the emote message.

## Testing Photographs and Procedure

https://github.com/user-attachments/assets/d67b7e25-1bc5-4fc7-a10d-ec4912d25672

https://github.com/user-attachments/assets/99b009e7-9690-47bc-a438-d673a4b5ab53

## Changelog
:cl:
tweak: removed some duplicate MMI emotes
tweak: renames silicon *warn emote to *alarm
fix: fixed somebody jumping twice when using the jump emote
/:cl:



Diff:
diff --git a/code/modules/mob/living/brain/emote.dm b/code/modules/mob/living/brain/emote.dm
index c93e3acf4b24a..a3396f6340cbc 100644
--- a/code/modules/mob/living/brain/emote.dm
+++ b/code/modules/mob/living/brain/emote.dm
@@ -9,10 +9,6 @@
 	if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi))))
 		return FALSE
 
-/datum/emote/brain/alarm
-	key = "alarm"
-	message = "sounds an alarm."
-
 /datum/emote/brain/alert
 	key = "alert"
 	message = "lets out a distressed noise."
@@ -25,8 +21,3 @@
 /datum/emote/brain/notice
 	key = "notice"
 	message = "plays a loud tone."
-
-/datum/emote/brain/whistle
-	key = "whistle"
-	key_third_person = "whistles"
-	message = "whistles."
diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm
index 3903061cd2307..38fec53b2c071 100644
--- a/code/modules/mob/living/emote.dm
+++ b/code/modules/mob/living/emote.dm
@@ -124,20 +124,6 @@
 	message = "drools"
 	emote_type = EMOTE_VISIBLE
 
-/datum/emote/living/jump
-	key = "jump"
-	key_third_person = "jumps"
-	message = "jumps"
-	emote_type = EMOTE_VISIBLE
-	cooldown = 2 SECONDS
-
-/datum/emote/living/jump/run_emote(mob/user, params, type_override, intentional)
-	. = ..()
-	if(!isliving(user))
-		return
-	var/mob/living/living = user
-	living.do_jump_animation()
-
 /datum/emote/living/faint
 	key = "faint"
 	key_third_person = "faints"
@@ -722,6 +708,7 @@
 	emote_type = EMOTE_VISIBLE
 
 /datum/emote/living/whistle
+	mob_type_blacklist_typecache = list(/mob/living/simple_animal/slime)
 	key="whistle"
 	key_third_person="whistle"
 	message = "whistles a few notes"
diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm
index a0eddb1a65fbe..ef1ae61974ed0 100644
--- a/code/modules/mob/living/silicon/robot/emote.dm
+++ b/code/modules/mob/living/silicon/robot/emote.dm
@@ -51,8 +51,8 @@
 	message = "plays a sad trombone..."
 	sound = 'sound/misc/sadtrombone.ogg'
 
-/datum/emote/silicon/warn
-	key = "warn"
+/datum/emote/silicon/alarm
+	key = "alarm"
 	message = "blares an alarm!"
 	sound = 'sound/machines/warning-buzzer.ogg'
 
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 0d3a05cb13938..033e2ac9eb60d 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -137,7 +137,7 @@
 		post_tipped_callback = CALLBACK(src, PROC_REF(after_tip_over)), \
 		post_untipped_callback = CALLBACK(src, PROC_REF(after_righted)), \
 		roleplay_friendly = TRUE, \
-		roleplay_emotes = list(/datum/emote/silicon/buzz, /datum/emote/silicon/buzz2, /datum/emote/silicon/boop, /datum/emote/silicon/warn), \
+		roleplay_emotes = list(/datum/emote/silicon/buzz, /datum/emote/silicon/buzz2, /datum/emote/silicon/boop, /datum/emote/silicon/alarm), \
 		roleplay_callback = CALLBACK(src, PROC_REF(untip_roleplay)))
 
 	wires = new /datum/wires/robot(src)
diff --git a/code/modules/multiz/movement/mob/living_zmove.dm b/code/modules/multiz/movement/mob/living_zmove.dm
index 88fed285b5d7d..4d1ff3a19a528 100644
--- a/code/modules/multiz/movement/mob/living_zmove.dm
+++ b/code/modules/multiz/movement/mob/living_zmove.dm
@@ -135,27 +135,6 @@
 	else
 		balloon_alert(user, "movement was blocked")
 
-/// Offsets the mob up and then quickly has them fall back down, like a jump.
-/mob/proc/do_jump_animation()
-	set waitfor = FALSE
-	INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(do_jump_animation_on), src)
-	// Z-Mimic: copy jump animation
-	for(var/atom/movable/bound_overlay as anything in get_associated_mimics())
-		INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(do_jump_animation_on), bound_overlay)
-	addtimer(CALLBACK(src, PROC_REF(after_jump_animation)), 0.4 SECONDS)
-
-/mob/proc/after_jump_animation()
-	return
-
-/proc/do_jump_animation_on(atom/movable/target)
-	animate(target, 0.3 SECONDS, pixel_y = 16, transform = matrix() * 0.9, easing = QUAD_EASING)
-	sleep(0.3 SECONDS)
-	animate(target, 0.1 SECONDS, pixel_y = 0, transform = matrix(), easing = QUAD_EASING)
-
-/mob/living/carbon/after_jump_animation()
-	reset_lying_transform()
-	UPDATE_OO_IF_PRESENT
-
 /mob/living/carbon/proc/reset_lying_transform()
 	var/lying_prev_temp = lying_prev
 	lying_prev = 0


Reviews:
user: login: Rukofamicom
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-29T20:55:11Z
user: login: mrmanlikesbt
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-31T01:08:09Z
user: login: Rukofamicom
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T10:51:51Z
user: login: Rukofamicom
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T11:03:21Z
user: login: mrmanlikesbt
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-31T11:31:13Z
user: login: Rukofamicom
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T11:33:49Z
user: login: mrmanlikesbt
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-01T03:37:45Z
user: login: Rukofamicom
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T16:17:50Z
user: login: mrmanlikesbt
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-01T16:24:17Z
user: login: Rukofamicom
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T17:01:29Z
user: login: mrmanlikesbt
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-01T17:03:44Z
user: login: Rukofamicom
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T21:27:42Z

Review comments:
diff_hunk: @@ -1,32 +0,0 @@
-/datum/emote/brain
-	mob_type_allowed_typecache = list(/mob/living/brain)
-	mob_type_blacklist_typecache = list()
-	emote_type = EMOTE_AUDIBLE
-
-/datum/emote/brain/can_run_emote(mob/user, status_check = TRUE, intentional, params)
-	. = ..()
-	var/mob/living/brain/B = user
-	if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi))))
-		return FALSE
-
-/datum/emote/brain/alarm
-	key = "alarm"
-	message = "sounds an alarm."
-
-/datum/emote/brain/alert
-	key = "alert"
-	message = "lets out a distressed noise."
-
-/datum/emote/brain/flash
-	key = "flash"
-	message = "blinks their lights."
-	emote_type = EMOTE_VISIBLE
-
-/datum/emote/brain/notice
-	key = "notice"
-	message = "plays a loud tone."
-
-/datum/emote/brain/whistle
-	key = "whistle"
-	key_third_person = "whistles"
-	message = "whistles."
path: code/modules/mob/living/brain/emote.dm
user: login: Rukofamicom
body: These are not unused, please leave them. 
created_at: 2025-03-29T20:54:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,32 +0,0 @@
-/datum/emote/brain
-	mob_type_allowed_typecache = list(/mob/living/brain)
-	mob_type_blacklist_typecache = list()
-	emote_type = EMOTE_AUDIBLE
-
-/datum/emote/brain/can_run_emote(mob/user, status_check = TRUE, intentional, params)
-	. = ..()
-	var/mob/living/brain/B = user
-	if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi))))
-		return FALSE
-
-/datum/emote/brain/alarm
-	key = "alarm"
-	message = "sounds an alarm."
-
-/datum/emote/brain/alert
-	key = "alert"
-	message = "lets out a distressed noise."
-
-/datum/emote/brain/flash
-	key = "flash"
-	message = "blinks their lights."
-	emote_type = EMOTE_VISIBLE
-
-/datum/emote/brain/notice
-	key = "notice"
-	message = "plays a loud tone."
-
-/datum/emote/brain/whistle
-	key = "whistle"
-	key_third_person = "whistles"
-	message = "whistles."
path: code/modules/mob/living/brain/emote.dm
user: login: mrmanlikesbt
body: Agree to disagree, but I realize now "something not being used" isn't all that good of an excuse to remove it. I'll add the old emotes back but remove the ones that MMIs already get from the cyborg emotes (alarm and whistle) 
created_at: 2025-03-31T01:08:09Z
author_association: MEMBER
diff_hunk: @@ -1,32 +0,0 @@
-/datum/emote/brain
-	mob_type_allowed_typecache = list(/mob/living/brain)
-	mob_type_blacklist_typecache = list()
-	emote_type = EMOTE_AUDIBLE
-
-/datum/emote/brain/can_run_emote(mob/user, status_check = TRUE, intentional, params)
-	. = ..()
-	var/mob/living/brain/B = user
-	if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi))))
-		return FALSE
-
-/datum/emote/brain/alarm
-	key = "alarm"
-	message = "sounds an alarm."
-
-/datum/emote/brain/alert
-	key = "alert"
-	message = "lets out a distressed noise."
-
-/datum/emote/brain/flash
-	key = "flash"
-	message = "blinks their lights."
-	emote_type = EMOTE_VISIBLE
-
-/datum/emote/brain/notice
-	key = "notice"
-	message = "plays a loud tone."
-
-/datum/emote/brain/whistle
-	key = "whistle"
-	key_third_person = "whistles"
-	message = "whistles."
path: code/modules/mob/living/brain/emote.dm
user: login: Rukofamicom
body: Do you play silicon? I use them and so do others while we are sitting and waiting to be put into a shell. They're kind of the only thing we can do until that happens.
created_at: 2025-03-31T10:51:51Z
author_association: CONTRIBUTOR
diff_hunk: @@ -9,10 +9,6 @@
 	if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi))))
 		return FALSE
 
-/datum/emote/brain/alarm
-	key = "alarm"
-	message = "sounds an alarm."
-
path: code/modules/mob/living/brain/emote.dm
user: login: Rukofamicom
body: `sound = 'sound/machines/warning-buzzer.ogg'`

Is all this needs to be properly functional again with sound, likewise for the others that are lacking in sound. 
I don't know why or when they stopped making sound.

The whistle sound effect was changed to an obviously fleshy sound effect so I'm fine with it being removed, but this one should be fixed instead of removed. 
created_at: 2025-03-31T11:03:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -9,10 +9,6 @@
 	if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi))))
 		return FALSE
 
-/datum/emote/brain/alarm
-	key = "alarm"
-	message = "sounds an alarm."
-
path: code/modules/mob/living/brain/emote.dm
user: login: mrmanlikesbt
body: It should be. I can't check until later today but MMIs get silicon emotes and alarm is one of them.
created_at: 2025-03-31T11:31:13Z
author_association: MEMBER
diff_hunk: @@ -9,10 +9,6 @@
 	if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi))))
 		return FALSE
 
-/datum/emote/brain/alarm
-	key = "alarm"
-	message = "sounds an alarm."
-
path: code/modules/mob/living/brain/emote.dm
user: login: Rukofamicom
body: 👍 
created_at: 2025-03-31T11:33:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -9,10 +9,6 @@
 	if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi))))
 		return FALSE
 
-/datum/emote/brain/alarm
-	key = "alarm"
-	message = "sounds an alarm."
-
path: code/modules/mob/living/brain/emote.dm
user: login: mrmanlikesbt
body: https://github.com/user-attachments/assets/3fc4dd34-b7ee-4b87-b2aa-b36b968faf1b

created_at: 2025-04-01T03:37:45Z
author_association: MEMBER
diff_hunk: @@ -708,6 +708,7 @@
 	emote_type = EMOTE_VISIBLE
 
 /datum/emote/living/whistle
+	mob_type_blacklist_typecache = list(/mob/living/simple_animal/slime)
path: code/modules/mob/living/emote.dm
user: login: Rukofamicom
body: This change is not documented
created_at: 2025-04-01T16:17:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -708,6 +708,7 @@
 	emote_type = EMOTE_VISIBLE
 
 /datum/emote/living/whistle
+	mob_type_blacklist_typecache = list(/mob/living/simple_animal/slime)
path: code/modules/mob/living/emote.dm
user: login: mrmanlikesbt
body: Would it not fall under "removed some duplicate MMI emotes"?
created_at: 2025-04-01T16:24:17Z
author_association: MEMBER
diff_hunk: @@ -708,6 +708,7 @@
 	emote_type = EMOTE_VISIBLE
 
 /datum/emote/living/whistle
+	mob_type_blacklist_typecache = list(/mob/living/simple_animal/slime)
path: code/modules/mob/living/emote.dm
user: login: Rukofamicom
body: You're blacklisting slimes from the emote, slimes have nothing to do with MMI?
created_at: 2025-04-01T17:01:29Z
author_association: CONTRIBUTOR
diff_hunk: @@ -708,6 +708,7 @@
 	emote_type = EMOTE_VISIBLE
 
 /datum/emote/living/whistle
+	mob_type_blacklist_typecache = list(/mob/living/simple_animal/slime)
path: code/modules/mob/living/emote.dm
user: login: mrmanlikesbt
body: This is the default 'mob_type_blacklist_typecache' just without MMIs being blacklisted.

```
/datum/emote/living
	mob_type_blacklist_typecache = list(/mob/living/simple_animal/slime, /mob/living/brain)
```
created_at: 2025-04-01T17:03:44Z
author_association: MEMBER

PR comments:
user: login: Tsar-Salat
created_at: 2025-04-03T13:33:06Z
body: @mrmanlikesbt merge master
author_association: CONTRIBUTOR
user: login: mrmanlikesbt
created_at: 2025-04-03T17:09:11Z
body: @Tsar-Salat 
author_association: MEMBER