diff --git a/hyperstation/code/modules/arousal/arousalhud.dm b/hyperstation/code/modules/arousal/arousalhud.dm
index 802f43c90..264735710 100644
--- a/hyperstation/code/modules/arousal/arousalhud.dm
+++ b/hyperstation/code/modules/arousal/arousalhud.dm
@@ -140,7 +140,7 @@
T.toggle_visibility(picked_visibility)
if(href_list["masturbate"])
- if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
+ if (H.arousalloss >= H.isPercentAroused(33)) //requires 33% arousal.
H.solomasturbate()
return
else
@@ -148,7 +148,7 @@
return
if(href_list["container"])
- if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
+ if (H.arousalloss >= H.isPercentAroused(33)) //requires 33% arousal.
H.cumcontainer()
return
else
@@ -156,7 +156,7 @@
return
if(href_list["clothesplosion"])
- if (H.arousalloss >= (H.max_arousal / 100) * 33) //Requires 33% arousal.
+ if (H.arousalloss >= H.isPercentAroused(33)) //Requires 33% arousal.
H.clothesplosion()
return
else
@@ -164,7 +164,7 @@
return
if(href_list["climaxself"])
- if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
+ if (H.arousalloss >= H.isPercentAroused(33)) //requires 33% arousal.
H.climaxself()
return
else
@@ -172,7 +172,7 @@
return
if(href_list["climax"])
- if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
+ if (H.arousalloss >= H.isPercentAroused(33)) //requires 33% arousal.
H.climaxalone(FALSE)
return
else
@@ -180,7 +180,7 @@
return
if(href_list["climaxover"])
- if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
+ if (H.arousalloss >= H.isPercentAroused(33)) //requires 33% arousal.
H.climaxover(usr.pulling)
return
else
@@ -188,7 +188,7 @@
return
if(href_list["climaxwith"])
- if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
+ if (H.arousalloss >= H.isPercentAroused(33)) //requires 33% arousal.
H.climaxwith(usr.pulling)
return
else
@@ -196,7 +196,7 @@
return
if(href_list["impreg"])
- if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
+ if (H.arousalloss >= H.isPercentAroused(33)) //requires 33% arousal.
H.impregwith(usr.pulling)
return
else
diff --git a/hyperstation/icons/obj/genitals/butt.dmi b/hyperstation/icons/obj/genitals/butt.dmi
index 55f746287..186dfffbd 100644
Binary files a/hyperstation/icons/obj/genitals/butt.dmi and b/hyperstation/icons/obj/genitals/butt.dmi differ
diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm
index 34e2dbbe9..7bd960a09 100644
--- a/modular_citadel/code/modules/arousal/arousal.dm
+++ b/modular_citadel/code/modules/arousal/arousal.dm
@@ -62,7 +62,6 @@
/mob/living/proc/handle_arousal()
-
/mob/living/carbon/handle_arousal()
if(canbearoused && dna)
var/datum/species/S
@@ -110,6 +109,9 @@
if(updating_arousal)
updatearousal()
+/**
+ * despite the name of this, it actually returns a number between 0 and 100
+ */
/mob/living/proc/getPercentAroused()
var/percentage = ((100 / max_arousal) * arousalloss)
return percentage
@@ -127,7 +129,6 @@
/mob/living/carbon/updatearousal()
. = ..()
-
for(var/obj/item/organ/genital/G in internal_organs)
if(istype(G))
var/datum/sprite_accessory/S
@@ -142,7 +143,7 @@
S = GLOB.breasts_shapes_list[G.shape]
if(S?.alt_aroused)
G.aroused_state = isPercentAroused(G.aroused_amount)
- if(getArousalLoss() >= ((max_arousal / 100) * 33))
+ if(getArousalLoss() >= isPercentAroused(33))
G.aroused_state = TRUE
else
G.aroused_state = FALSE
@@ -166,41 +167,13 @@
return FALSE
else
if(hud_used.arousal)
- if(stat == DEAD)
- hud_used.arousal.icon_state = "arousal0"
- return TRUE
- if(getArousalLoss() == max_arousal)
- hud_used.arousal.icon_state = "arousal100"
- return TRUE
- if(getArousalLoss() >= (max_arousal / 100) * 90)//M O D U L A R , W O W
- hud_used.arousal.icon_state = "arousal90"
- return TRUE
- if(getArousalLoss() >= (max_arousal / 100) * 80)//M O D U L A R , W O W
- hud_used.arousal.icon_state = "arousal80"
- return TRUE
- if(getArousalLoss() >= (max_arousal / 100) * 70)//M O D U L A R , W O W
- hud_used.arousal.icon_state = "arousal70"
- return TRUE
- if(getArousalLoss() >= (max_arousal / 100) * 60)//M O D U L A R , W O W
- hud_used.arousal.icon_state = "arousal60"
- return TRUE
- if(getArousalLoss() >= (max_arousal / 100) * 50)//M O D U L A R , W O W
- hud_used.arousal.icon_state = "arousal50"
- return TRUE
- if(getArousalLoss() >= (max_arousal / 100) * 40)//M O D U L A R , W O W
- hud_used.arousal.icon_state = "arousal40"
- return TRUE
- if(getArousalLoss() >= (max_arousal / 100) * 30)//M O D U L A R , W O W
- hud_used.arousal.icon_state = "arousal30"
- return TRUE
- if(getArousalLoss() >= (max_arousal / 100) * 20)//M O D U L A R , W O W
- hud_used.arousal.icon_state = "arousal10"
- return TRUE
- if(getArousalLoss() >= (max_arousal / 100) * 10)//M O D U L A R , W O W
- hud_used.arousal.icon_state = "arousal10"
- return TRUE
- else
- hud_used.arousal.icon_state = "arousal0"
+ var/arousal_state = "arousal0"
+ if(!stat == DEAD)
+ var/arousal_percent = getPercentAroused()
+ var/arousal_rounded = FLOOR(arousal_percent, 10)
+ arousal_state = "arousal[arousal_rounded]"
+ hud_used.arousal.icon_state = arousal_state
+ return TRUE
/obj/screen/arousal
name = "arousal"
@@ -227,12 +200,12 @@
if(mb_cd_timer <= world.time)
//start the cooldown even if it fails
mb_cd_timer = world.time + mb_cd_length
- if(getArousalLoss() >= ((max_arousal / 100) * 33))//33% arousal or greater required
+ if(getArousalLoss() >= isPercentAroused(33))//33% arousal or greater required
src.visible_message("[src] starts masturbating!", \
- "You start masturbating.")
+ "You start masturbating.")
if(do_after(src, 30, target = src))
src.visible_message("[src] relieves [p_them()]self!", \
- "You have relieved yourself.")
+ "You have relieved yourself.")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
setArousalLoss(min_arousal)
else