|
434 | 434 | if(istype(dna.species, /datum/species/moth))
|
435 | 435 | M.mothdust += 10; // End WS edit
|
436 | 436 |
|
437 |
| - if(M.zone_selected == BODY_ZONE_PRECISE_MOUTH) // Nose boops! |
| 437 | + else if(M.zone_selected == BODY_ZONE_PRECISE_MOUTH) // Nose boops! |
438 | 438 | nosound = TRUE
|
439 | 439 | playsound(src, 'sound/effects/boop.ogg', 50, 0)
|
440 | 440 | if (HAS_TRAIT(M, TRAIT_FRIENDLY))
|
|
471 | 471 | null, span_hear("You hear the rustling of clothes."), DEFAULT_MESSAGE_RANGE, list(M, src))
|
472 | 472 | to_chat(M, span_notice("You wrap [src] into a tight bear hug!"))
|
473 | 473 | to_chat(src, span_notice("[M] squeezes you super tightly in a firm bear hug!"))
|
474 |
| - else |
| 474 | + else if((M.grab_state == GRAB_PASSIVE) && (M.pulling)) |
475 | 475 | M.visible_message(span_notice("[M] hugs [src] to make [p_them()] feel better!"), \
|
476 | 476 | span_notice("You hug [src] to make [p_them()] feel better!"))
|
| 477 | + else |
| 478 | + M.visible_message(span_notice("[M] pokes [src]."), \ |
| 479 | + span_notice("You poke [src].")) |
477 | 480 | if(istype(M.dna.species, /datum/species/moth)) //WS edit - moth dust from hugging
|
478 | 481 | mothdust += 15;
|
479 | 482 | if(istype(dna.species, /datum/species/moth))
|
|
497 | 500 | SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/bad_touch_bear_hug)
|
498 | 501 |
|
499 | 502 | // Let people know if they hugged someone really warm or really cold
|
500 |
| - if(M.bodytemperature > M.dna.species.bodytemp_heat_damage_limit) |
501 |
| - to_chat(src, span_warning("It feels like [M] is over heating as they hug you.")) |
502 |
| - else if(M.bodytemperature < M.dna.species.bodytemp_cold_damage_limit) |
503 |
| - to_chat(src, span_warning("It feels like [M] is freezing as they hug you.")) |
504 |
| - |
505 |
| - if(bodytemperature > dna.species.bodytemp_heat_damage_limit) |
506 |
| - to_chat(M, span_warning("It feels like [src] is over heating as you hug them.")) |
507 |
| - else if(bodytemperature < dna.species.bodytemp_cold_damage_limit) |
508 |
| - to_chat(M, span_warning("It feels like [src] is freezing as you hug them.")) |
509 |
| - |
510 |
| - if(HAS_TRAIT(M, TRAIT_FRIENDLY)) |
511 |
| - if (hugger_mood.sanity >= SANITY_GREAT) |
512 |
| - new /obj/effect/temp_visual/heart(loc) |
513 |
| - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/besthug, M) |
514 |
| - else if (hugger_mood.sanity >= SANITY_DISTURBED) |
515 |
| - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/betterhug, M) |
516 |
| - |
517 |
| - if(HAS_TRAIT(src, TRAIT_BADTOUCH)) |
518 |
| - to_chat(M, span_warning("[src] looks visibly upset as you hug [p_them()].")) |
| 503 | + if ((M.grab_state == GRAB_PASSIVE) && (M.pulling)) |
| 504 | + if(M.bodytemperature > M.dna.species.bodytemp_heat_damage_limit) |
| 505 | + to_chat(src, span_warning("It feels like [M] is over heating as they hug you.")) |
| 506 | + else if(M.bodytemperature < M.dna.species.bodytemp_cold_damage_limit) |
| 507 | + to_chat(src, span_warning("It feels like [M] is freezing as they hug you.")) |
| 508 | + |
| 509 | + if(bodytemperature > dna.species.bodytemp_heat_damage_limit) |
| 510 | + to_chat(M, span_warning("It feels like [src] is over heating as you hug them.")) |
| 511 | + else if(bodytemperature < dna.species.bodytemp_cold_damage_limit) |
| 512 | + to_chat(M, span_warning("It feels like [src] is freezing as you hug them.")) |
| 513 | + |
| 514 | + if(HAS_TRAIT(M, TRAIT_FRIENDLY)) |
| 515 | + if (hugger_mood.sanity >= SANITY_GREAT) |
| 516 | + new /obj/effect/temp_visual/heart(loc) |
| 517 | + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/besthug, M) |
| 518 | + else if (hugger_mood.sanity >= SANITY_DISTURBED) |
| 519 | + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/betterhug, M) |
| 520 | + |
| 521 | + if(HAS_TRAIT(src, TRAIT_BADTOUCH)) |
| 522 | + to_chat(M, span_warning("[src] looks visibly upset as you hug [p_them()].")) |
519 | 523 |
|
520 | 524 | else if((M.zone_selected == BODY_ZONE_L_ARM) || (M.zone_selected == BODY_ZONE_R_ARM))
|
521 | 525 | if(!get_bodypart(check_zone(M.zone_selected)))
|
522 | 526 | to_chat(M, span_warning("[src] does not have a [M.zone_selected == BODY_ZONE_L_ARM ? "left" : "right"] arm!"))
|
523 |
| - else |
| 527 | + else if((M.grab_state == GRAB_PASSIVE) && (M.pulling)) |
524 | 528 | M.visible_message(span_notice("[M] shakes [src]'s hand."), \
|
525 | 529 | span_notice("You shake [src]'s hand."))
|
| 530 | + else |
| 531 | + M.visible_message(span_notice("[M] pats [src] on the shoulder."), \ |
| 532 | + span_notice("You pat [src] on the shoulder.")) |
526 | 533 | else if((M.zone_selected == BODY_ZONE_L_LEG) || (M.zone_selected == BODY_ZONE_R_LEG))
|
527 | 534 | if(!get_bodypart(check_zone(M.zone_selected)))
|
528 | 535 | to_chat(M, span_warning("[src] does not have a [M.zone_selected == BODY_ZONE_L_LEG ? "left" : "right"] leg!"))
|
|
0 commit comments