From cc1cb0553ebf1fbf5da1727cbc380ae028267a02 Mon Sep 17 00:00:00 2001 From: Rob Nelson Date: Sat, 22 Feb 2014 00:24:09 -0800 Subject: [PATCH] Add hugs. --- code/modules/mob/living/carbon/carbon.dm | 51 ++++++++++++------------ 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 288eb8f29db..1b64dd4d4fc 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -54,6 +54,14 @@ N.show_message(text("\red [M] bursts out of [src]!"), 2) . = ..() +/mob/living/carbon/proc/share_contact_diseases(var/mob/M) + for(var/datum/disease/D in viruses) + if(D.spread_by_touch()) + M.contract_disease(D, 0, 1, CONTACT_HANDS) + for(var/datum/disease/D in M.viruses) + if(D.spread_by_touch()) + contract_disease(D, 0, 1, CONTACT_HANDS) + /mob/living/carbon/attack_hand(mob/M as mob) if(!istype(M, /mob/living/carbon)) return if (hasorgans(M)) @@ -63,35 +71,13 @@ if(temp && !temp.is_usable()) M << "\red You can't use your [temp.display_name]" return - - for(var/datum/disease/D in viruses) - - if(D.spread_by_touch()) - - M.contract_disease(D, 0, 1, CONTACT_HANDS) - - for(var/datum/disease/D in M.viruses) - - if(D.spread_by_touch()) - - contract_disease(D, 0, 1, CONTACT_HANDS) - + share_contact_diseases(M) return /mob/living/carbon/attack_paw(mob/M as mob) if(!istype(M, /mob/living/carbon)) return - - for(var/datum/disease/D in viruses) - - if(D.spread_by_touch()) - M.contract_disease(D, 0, 1, CONTACT_HANDS) - - for(var/datum/disease/D in M.viruses) - - if(D.spread_by_touch()) - contract_disease(D, 0, 1, CONTACT_HANDS) - + share_contact_diseases(M) return /mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0) @@ -192,7 +178,7 @@ src.show_message(text("\t []My [] is [].",status=="OK"?"\blue ":"\red ",org.display_name,status),1) if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit)) H.play_xylophone() - else + else if(lying) // /vg/: For hugs. This is how update_icon figgers it out, anyway. - N3X15 var/t_him = "it" if (src.gender == MALE) t_him = "him" @@ -212,6 +198,21 @@ "\blue [M] shakes [src] trying to wake [t_him] up!", \ "\blue You shake [src] trying to wake [t_him] up!", \ ) + // BEGIN HUGCODE - N3X + else + if (istype(src,/mob/living/carbon/human) && src:w_uniform) + var/mob/living/carbon/human/H = src + H.w_uniform.add_fingerprint(M) + playsound(get_turf(src), 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + M.visible_message( \ + "\blue [M] gives [src] a [pick("hug","warm embrace")].", \ + "\blue You hug [src].", \ + ) + if(prob(10)) + src.emote("*fart") + M.reagents.add("paracetamol", 1) + share_contact_diseases(M) + /mob/living/carbon/proc/eyecheck() return 0