pregnancy test cleanup + condensing climax stat checks

This commit is contained in:
sarcoph
2022-05-04 12:40:29 -08:00
parent d9c1c0248a
commit d84debe29e
8 changed files with 28 additions and 33 deletions
@@ -1647,7 +1647,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
)
if (target.canbearoused)
target.adjustArousalLoss(5)
if (target.getArousalLoss() >= 100 && ishuman(target) && HAS_TRAIT(target, TRAIT_MASO) && target.has_dna())
if (target.can_climax() && HAS_TRAIT(target, TRAIT_MASO))
target.mob_climax(forced_climax=TRUE)
if (!HAS_TRAIT(target, TRAIT_NYMPHO))
stop_wagging_tail(target)
@@ -2005,7 +2005,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.update_damage_overlays()
if(HAS_TRAIT(H, TRAIT_MASO))
H.adjustArousalLoss(damage * brutemod * H.physiology.brute_mod)
if (H.getArousalLoss() >= 100 && ishuman(H) && H.has_dna())
if (H.can_climax())
H.mob_climax(forced_climax=TRUE)
else//no bodypart, we deal damage with a more general method.
+1 -1
View File
@@ -77,7 +77,7 @@
var/mob/living/carbon/human/B = src
if(HAS_TRAIT(B, TRAIT_CHOKE_SLUT))
B.adjustArousalLoss(7)
if (B.getArousalLoss() >= 100 && ishuman(B) && B.has_dna())
if (B.can_climax())
B.mob_climax(forced_climax=TRUE)
else
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation)
@@ -282,13 +282,13 @@
. = ..()
if(.)
return
if(chalice_taken == 1)
if(chalice_taken)
to_chat(user, "<i>You hear a voice in your head... <b>\"My chalice has already been taken, dear. I cannot give you another...\"</i></b>")
return
if(user.getArousalLoss() < 100)
to_chat(user, "<i>You hear a voice in your head... <b>\"You are not horny enough to receive my blessing, dear~\"</i></b>")
return
if (ishuman(user) && user.has_dna())
if (user.can_climax(0))
user.mob_climax(forced_climax=TRUE)
to_chat(user, "<i>You hear a voice in your head... <b>\"You are worth of my blessing dear~\"</i></b>")
to_chat(user, "<span class='userdanger'>You feel overpowering pleasure surge through your entire body.</span>")
+1 -1
View File
@@ -63,7 +63,7 @@
C.do_jitter_animation()
C.adjustArousalLoss(20) //make the target more aroused.
if (C.getArousalLoss() >= 100 && ishuman(C) && C.has_dna())
if (C.can_climax())
C.mob_climax(forced_climax=TRUE) //make them cum if they are over the edge.
return
+18 -23
View File
@@ -8,7 +8,6 @@
var/results = "null"
w_class = WEIGHT_CLASS_TINY
/obj/item/pregnancytest/attack_self(mob/user)
if(QDELETED(src))
return
@@ -16,29 +15,25 @@
return
if(isAI(user))
return
if(user.stat > 0)//unconscious or dead
if(user.stat > CONSCIOUS)//unconscious or dead
return
if(status == 1)
return //Already been used once, pregnancy tests only work once.
test(user)
Test(user)
/obj/item/pregnancytest/proc/force(mob/living/user)
//Force it negative
icon_state = "negative"
name = "[results] pregnancy test"
status = 1
to_chat(user, "<span class='notice'>You use the pregnancy test, the display reads negative!</span>")
/obj/item/pregnancytest/proc/test(mob/living/user)
/obj/item/pregnancytest/proc/Test(mob/living/user)
if(status)
return
var/_result = FALSE
var/obj/item/organ/genital/womb/W = user.getorganslot("womb")
if(!W)
return
if(W.pregnant == 1)
results = "positive"
icon_state = "positive"
name = "[results] pregnancy test"
status = 1
to_chat(user, "<span class='notice'>You use the pregnancy test, the display reads positive!</span>")
else
force(user)
return // no reason to waste the single-use on them
if(W.pregnant)
_result = TRUE
UpdateResult(user, _result)
/obj/item/pregnancytest/proc/UpdateResult(mob/living/user, _result)
var/result_text = _result ? "positive" : "negative"
results = result_text
icon_state = result_text
name = "[results] preganancy test"
status = TRUE
to_chat(user, "<span class='notice'>You use the pregnancy test, the display reads [results]!</span>")
+2 -2
View File
@@ -132,13 +132,13 @@ Code:
if(2) //med, can make you cum
to_chat(U, "<span class='love'>You feel intense pleasure surge through your [G.name]</span>")
U.do_jitter_animation()
if (U.getArousalLoss() >= 100 && ishuman(U) && U.has_dna())
if (U.can_climax())
U.mob_climax(forced_climax=TRUE)
if(3) //high, makes you stun
to_chat(U, "<span class='userdanger'>You feel overpowering pleasure surge through your [G.name]</span>")
U.Jitter(3)
U.Stun(30)
if (U.getArousalLoss() >= 100 && ishuman(U) && U.has_dna())
if (U.can_climax())
U.mob_climax(forced_climax=TRUE)
if(prob(50))
U.emote("moan")
@@ -25,7 +25,7 @@
if(ismob(M) && M.canbearoused && arousal_gain != 0)
var/orgasm = FALSE
if(arousal_gain > 0)
if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna())
if(M.can_climax())
var/mob/living/carbon/human/H = M
var/orgasm_message = pick("A sharp pulse of electricity pushes you to orgasm!", "You feel a jolt of electricity force you into orgasm!")
H.visible_message("<span class='warning'>\The [assembly] electrodes shock [H]!</span>", "<span class='warning'>[orgasm_message]</span>")
@@ -197,7 +197,7 @@
/datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M)
if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(33))
if(prob(5) && M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna())
if(prob(5) && M.can_climax())
if(prob(5)) //Less spam
to_chat(M, "<span class='love'>Your libido is going haywire!</span>")
if(M.min_arousal < 50)