diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm index 584acc6eb6..fa8f3f6ae1 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/modular_citadel/code/modules/arousal/arousal.dm @@ -36,9 +36,9 @@ if(canbearoused && dna) var/datum/species/S S = dna.species - if(S && SSmobs.times_fired%36==2 && getArousalLoss() < max_arousal)//Totally stolen from breathing code. Do this every 36 ticks. + if(S && !(SSmobs.times_fired % 36) && getArousalLoss() < max_arousal)//Totally stolen from breathing code. Do this every 36 ticks. adjustArousalLoss(arousal_rate * S.arousal_gain_rate) - if(dna.features["exhibitionist"]) + if(dna.features["exhibitionist"] && client) var/amt_nude = 0 if(is_chest_exposed() && (gender == FEMALE || getorganslot("breasts"))) amt_nude++ @@ -47,13 +47,16 @@ amt_nude++ if(getorganslot("vagina")) amt_nude++ - var/mob/living/M - var/watchers = 0 - for(M in view(world.view, src)) - if(M.client && !M.stat && !M.eye_blind && (locate(src) in viewers(world.view,M))) - watchers++ - if(watchers && amt_nude) - adjustArousalLoss((amt_nude * watchers) + S.arousal_gain_rate) + if(amt_nude) + var/watchers = 0 + for(var/mob/_M in view(world.view, src)) + var/mob/living/M = _M + if(!istype(M)) + continue + if(M.client && !M.stat && !M.eye_blind && (locate(src) in viewers(world.view,M))) + watchers++ + if(watchers) + adjustArousalLoss((amt_nude * watchers) + S.arousal_gain_rate) /mob/living/proc/getArousalLoss()