diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 2931e18245..0726baab9b 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -153,9 +153,9 @@ var/force_out = force + force_modifier if(force_out <= 0) - playsound(loc, pokesound, get_clamped_volume(), 1, -1) + playsound(loc, safepick(pokesound), get_clamped_volume(), 1, -1) else if(hitsound) - playsound(loc, hitsound, get_clamped_volume(), 1, -1) + playsound(loc, safepick(hitsound), get_clamped_volume(), 1, -1) M.lastattacker = user.real_name M.lastattackerckey = user.ckey diff --git a/code/game/objects/hand_items.dm b/code/game/objects/hand_items.dm index 6c050452a1..6652151006 100644 --- a/code/game/objects/hand_items.dm +++ b/code/game/objects/hand_items.dm @@ -62,6 +62,27 @@ action_verb_ing = "touching" can_taste = FALSE +/obj/item/hand_item/healable/kisser + name = "kisser" + desc = "A kisser, for smooching things." + icon = 'icons/obj/in_hands.dmi' + icon_state = "kisser" + attack_verb = list("kissed", "smooched", "snogged") + hitsound = list( + 'sound/effects/kiss.ogg', + 'modular_splurt/sound/interactions/kiss/kiss1.ogg', + 'modular_splurt/sound/interactions/kiss/kiss2.ogg', + 'modular_splurt/sound/interactions/kiss/kiss3.ogg', + 'modular_splurt/sound/interactions/kiss/kiss4.ogg', + ) + healthing = /obj/item/stack/medical/bruise_pack/lick/touch + needed_trait = TRAIT_HEAL_TOUCH + tend_word = "smooching" + action_verb = "kiss" + action_verb_s = "kisses" + action_verb_ing = "kissing" + can_taste = FALSE + /obj/item/hand_item/healable/licker name = "tongue" desc = "Mlem." @@ -136,6 +157,10 @@ span_notice("I hear [action_verb_ing]."), LICK_SOUND_TEXT_RANGE ) + var/list/sounds2play = list() + sounds2play += hitsound + sounds2play += pokesound + playsound(licked, safepick(sounds2play), 85, TRUE) if(can_taste && iscarbon(user)) lick_flavor(atom_licked = licked, licker = user) diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index cb0aa23d9d..f0ccfa1a08 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -198,6 +198,25 @@ else qdel(touchy) +/datum/emote/living/carbon/kiss + key = "kiss" + key_third_person = "kisses" + restraint_check = TRUE + +/datum/emote/living/carbon/kiss/run_emote(mob/user) + . = ..() + var/obj/item/I = user.get_active_held_item() + if(istype(I, /obj/item/hand_item/healable/)) + I.melee_attack_chain(user, user) + // else if(I) + // to_chat(user, span_warning("My active hand is full, and therefore you can't touch anything!")) + // return + var/obj/item/hand_item/healable/kisser/touchy = new(user) + if(user.put_in_hands(touchy)) + to_chat(user, span_notice("I get ready to smooch something.")) + else + qdel(touchy) + /datum/emote/living/carbon/tend key = "tend" key_third_person = "tends" diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 53d189412d..d65c5c2e34 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -345,6 +345,7 @@ message = "grimaces." message_param = "grimaces at %t." +/* /datum/emote/living/kiss key = "kiss" key_third_person = "kisses" @@ -361,6 +362,7 @@ if(. && iscarbon(user)) var/mob/living/carbon/C = user return !C.silent && (!C.mind || !C.mind.miming) +*/ /datum/emote/living/audible/laugh key = "laugh" diff --git a/icons/obj/in_hands.dmi b/icons/obj/in_hands.dmi index f1005cc991..8dbad29449 100644 Binary files a/icons/obj/in_hands.dmi and b/icons/obj/in_hands.dmi differ