diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 99f1813f3c..805e72cfcb 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -70,6 +70,7 @@ #define TRAIT_PHOTOGRAPHER "photographer" #define TRAIT_MUSICIAN "musician" #define TRAIT_CROCRIN_IMMUNE "crocin_immune" +#define TRAIT_NYMPHO "nymphomania" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index eb16e4f6ec..870dfc2ebc 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1451,7 +1451,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) target.forcesay(GLOB.hit_appends) /datum/species/proc/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) - // CITADEL EDIT slap mouthy gits + // CITADEL EDIT slap mouthy gits and booty var/aim_for_mouth = user.zone_selected == "mouth" var/target_on_help_and_unarmed = target.a_intent == INTENT_HELP && !target.get_active_held_item() var/target_aiming_for_mouth = target.zone_selected == "mouth" @@ -1461,7 +1461,22 @@ GLOBAL_LIST_EMPTY(roundstart_races) user.visible_message("[user] slaps [target] in the face!", "You slap [target] in the face! ",\ "You hear a slap.") - stop_wagging_tail(target) + if (!target.has_trait(TRAIT_NYMPHO)) + stop_wagging_tail(target) + return FALSE + var/aim_for_groin = user.zone_selected == "groin" + var/target_aiming_for_groin = target.zone_selected == "groin" + if(aim_for_groin && (target_on_help_and_unarmed || target_restrained || target_aiming_for_groin)) + playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) + user.visible_message("[user] slaps [target]'s ass!", + "You slap [target]'s ass! ",\ + "You hear a slap.") + if (target.canbearoused) + target.adjustArousalLoss(5) + if (target.getArousalLoss() >= 100 && ishuman(target) && target.has_trait(TRAIT_NYMPHO) && target.has_dna()) + target.mob_climax(forced_climax=TRUE) + if (!target.has_trait(TRAIT_NYMPHO)) + stop_wagging_tail(target) return FALSE else if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) to_chat(user, "You're too exhausted.")