diff --git a/GainStation13/code/mobs/emote.dm b/GainStation13/code/mobs/emote.dm index 451115cb31..647908b79e 100644 --- a/GainStation13/code/mobs/emote.dm +++ b/GainStation13/code/mobs/emote.dm @@ -1,2 +1,33 @@ /datum/emote/proc/get_sound(mob/living/user) return sound //by default just return this var. + + +/datum/emote/speen + key = "speen" + key_third_person = "speeeeens!" + restraint_check = TRUE + mob_type_allowed_typecache = list(/mob/living, /mob/dead/observer) + mob_type_ignore_stat_typecache = list(/mob/dead/observer) + +/datum/emote/speen/run_emote(mob/user) + . = ..() + if(.) + user.spin(20, 1) + + if(iscyborg(user) && user.has_buckled_mobs()) + var/mob/living/silicon/robot/R = user + var/datum/component/riding/riding_datum = R.GetComponent(/datum/component/riding) + if(riding_datum) + for(var/mob/M in R.buckled_mobs) + riding_datum.force_dismount(M) + else + R.unbuckle_all_mobs() + +/datum/emote/speen/run_emote(mob/living/user, params) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'GainStation13/sound/voice/speen.ogg', 50, 1, -1) + . = ..() + diff --git a/GainStation13/sound/voice/speen.ogg b/GainStation13/sound/voice/speen.ogg new file mode 100644 index 0000000000..b01f86b517 Binary files /dev/null and b/GainStation13/sound/voice/speen.ogg differ