From 7c77f2d2e3b7c90c8f1a54f6b4bf5b2a0835b233 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Thu, 3 Oct 2019 08:57:35 +0200 Subject: [PATCH] testing... --- code/__DEFINES/status_effects.dm | 2 +- .../code/modules/arousal/genitals.dm | 14 +++++++++++--- .../code/modules/arousal/organs/breasts.dm | 4 ++-- .../code/modules/arousal/organs/penis.dm | 10 ++++++---- .../code/modules/arousal/organs/testicles.dm | 15 +++++---------- modular_citadel/icons/obj/genitals/hud.dmi | Bin 2019 -> 1992 bytes 6 files changed, 25 insertions(+), 20 deletions(-) diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 05309333af..135a8eb679 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -74,7 +74,7 @@ #define STATUS_EFFECT_BREASTS_ENLARGEMENT /datum/status_effect/chem/breast_enlarger //Applied slowdown due to the ominous bulk. -#define STATUS_EFFECT_PENIS_ENLARGEMENT //More applied slowdown, just like the above. +#define STATUS_EFFECT_PENIS_ENLARGEMENT /datum/status_effect/chem/penis_enlarger //More applied slowdown, just like the above. ///////////// // NEUTRAL // ///////////// diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index 593874496a..d94f70ecef 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -16,7 +16,7 @@ var/aroused_state = FALSE //Boolean used in icon_state strings var/aroused_amount = 50 //This is a num from 0 to 100 for arousal percentage for when to use arousal state icons. var/obj/item/organ/genital/linked_organ - var/linked_organ_slot //only one of the two organs needs this to be set up. update_link() will handle linking the rest. + var/linked_organ_slot //used for linking an apparatus' organ to its other half on update_link(). var/layer_index = GENITAL_LAYER_INDEX //Order should be very important. FIRST vagina, THEN testicles, THEN penis, as this affects the order they are rendered in. /obj/item/organ/genital/Initialize(mapload, mob/living/carbon/human/H) @@ -114,7 +114,6 @@ /obj/item/organ/genital/proc/update_appearance() if(!owner || owner.stat == DEAD) aroused_state = FALSE - return /obj/item/organ/genital/on_life() if(!reagents || !owner) @@ -138,9 +137,13 @@ /obj/item/organ/genital/proc/update_link(removing = FALSE) if(!removing && owner) + if(linked_organ) + return linked_organ = owner.getorganslot(linked_organ_slot) if(linked_organ) linked_organ.linked_organ = src + linked_organ.upon_link() + upon_link() return TRUE else if(linked_organ) @@ -148,11 +151,15 @@ linked_organ = null return FALSE +//post organ duo making arrangements. +/obj/item/organ/genital/proc/upon_link() + return + /obj/item/organ/genital/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = TRUE) . = ..() if(.) update() - RegisterSignal(owner, COMSIG_MOB_DEATH, .proc/update) + RegisterSignal(owner, COMSIG_MOB_DEATH, .proc/update_appearance) /obj/item/organ/genital/Remove(mob/living/carbon/M, special = FALSE, drop_if_replaced = TRUE) . = ..() @@ -313,6 +320,7 @@ genital_overlay.color = "#[H.dna.features["vag_color"]]" if(layer == GENITALS_FRONT_LAYER && CHECK_BITFIELD(G.genital_flags, GENITAL_THROUGH_CLOTHES)) + genital_overlay.layer = -GENITALS_EXPOSED_LAYER LAZYADD(fully_exposed, genital_overlay) // to be added to a layer with higher priority than clothes, hence the name of the bitflag. else standing += genital_overlay diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index fe502ab66e..6299f68b6c 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -68,7 +68,7 @@ /obj/item/organ/genital/breasts/modify_size(modifier, min = -INFINITY, max = INFINITY) var/new_value = CLAMP(cached_size + modifier, min, max) - if(new_value == prev_size) + if(new_value == cached_size) return prev_size = cached_size cached_size = new_value @@ -97,7 +97,7 @@ var/status_effect = owner.has_status_effect(STATUS_EFFECT_BREASTS_ENLARGEMENT) if(enlargement && !status_effect) owner.apply_status_effect(STATUS_EFFECT_BREASTS_ENLARGEMENT) - else if(status_effect) + else if(!enlargement && status_effect) owner.remove_status_effect(STATUS_EFFECT_BREASTS_ENLARGEMENT) if(rounded_cached < 16 && owner)//Because byond doesn't count from 0, I have to do this. diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index 5df9f30fdd..6b9e5024df 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -7,6 +7,7 @@ slot = ORGAN_SLOT_PENIS masturbation_verb = "stroke" genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH + linked_organ_slot = ORGAN_SLOT_TESTICLES fluid_transfer_factor = 0.5 size = 2 //arbitrary value derived from length and girth for sprites. layer_index = PENIS_LAYER_INDEX @@ -17,13 +18,13 @@ /obj/item/organ/genital/penis/modify_size(modifier, min = -INFINITY, max = INFINITY) var/new_value = CLAMP(length + modifier, min, max) - if(new_value == prev_length) + if(new_value == length) return prev_length = length length = CLAMP(length + modifier, min, max) update() -/obj/item/organ/genital/penis/update_size() +/obj/item/organ/genital/penis/update_size(modified = FALSE) if(length < 0)//I don't actually know what round() does to negative numbers, so to be safe!! if(owner) to_chat(owner, "You feel your tallywacker shrinking away from your body as your groin flattens out!") @@ -51,10 +52,11 @@ var/status_effect = owner.has_status_effect(STATUS_EFFECT_PENIS_ENLARGEMENT) if(enlargement && !status_effect) owner.apply_status_effect(STATUS_EFFECT_PENIS_ENLARGEMENT) - else if(status_effect) + else if(!enlargement && status_effect) owner.remove_status_effect(STATUS_EFFECT_PENIS_ENLARGEMENT) if(linked_organ) - linked_organ.update_size(new_size - size) + linked_organ.size = CLAMP(size + new_size, BALLS_SIZE_MIN, BALLS_SIZE_MAX) + linked_organ.update() size = new_size if(owner) diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index 06f40b5b51..547674a5f1 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -14,7 +14,6 @@ fluid_id = "semen" masturbation_verb = "massage" layer_index = TESTICLES_LAYER_INDEX - var/size_linked = FALSE /obj/item/organ/genital/testicles/generate_fluid() if(!linked_organ && !update_link()) @@ -23,16 +22,12 @@ if(. && reagents.holder_full()) to_chat(owner, "Your balls finally feel full, again.") -/obj/item/organ/genital/testicles/update_link(removing = FALSE) - . = ..() - if(. && !size_linked) - size = linked_organ.size - update() - size_linked = TRUE +/obj/item/organ/genital/testicles/upon_link() + size = linked_organ.size + update_size() + update_appearance() -/obj/item/organ/genital/testicles/update_size(new_size) - if(new_size) - size = CLAMP(size + new_size, BALLS_SIZE_MIN, BALLS_SIZE_MAX) +/obj/item/organ/genital/testicles/update_size(modified = FALSE) switch(size) if(BALLS_SIZE_MIN) size_name = "average" diff --git a/modular_citadel/icons/obj/genitals/hud.dmi b/modular_citadel/icons/obj/genitals/hud.dmi index bf2adcb1fcdb9c7ca35d186f72e62ced787db730..f8c8643fe0c9a7fc80760f703b441094123a338e 100644 GIT binary patch delta 1163 zcmV;61a$l356BOYBmu{YCy699jBp11#Esqz2-1Q1C? zK~!jg?U?6VQehZ}A2X76S#Sd|E;(z}bamFdHE8JG$h|R-Z=HNzV{$fZ;O4Av(zID~ z504g}UM;=N)4QdYXA2LH=FOTman1``wHAs*K5g3iip^8(+qR95NF;3CO5mLLYv&)( zzC*`Oox61H)*YZnx2|0}e|PHGp?!dVJHP+oB|V8=z5Dd(9VqP^M7{_7puW;T^X^6T zlvrLszy1RT4jMdo(2(GvA;X4`7#T7&c!+rq9MHet|L}xNAeSo?a=B6w8pf4KLlsKv z7RU&*A2oW+*l`xdPnZ}oX>!QK3FEDM?3mG`&^>30QlYY-mWPKyoOP4KQzHDjfTD)lC0{k8#B3G=m zvx=l_t%!`k?_u?tsI?SCtyzuVLv+l#^%Sg&iN^0CcEiR^6l~lOi{Arm-m;Z~Et{F} zuxv^XGwuOy+)TT5+rq81J8{f=fV=nZKX^#;;QqZwf0f|@9zS{d?D_L&PoF%l z91rm5MS4a?`U{HJhu@RDeD&((A2fCk@cMP-dX}mSV&9{B)V@dcsC|#>>G~bFr|oy# zp03|g=opNzuK6%ZOfm3r*`&*2%r z2!G>?k@w5LB7^ zFV^|WNlYX%U!C}0JbK?3XP0FC_>onTUHoqzfB%aEWhEuDK#HH=0`C6j5(M{89)JHA dQ@;IGmY>1YmMPi=>Q(>%002ovPDHLkV1j69TRs2) delta 1190 zcmV;X1X=sY591GzBmv5?C9ncB0RI4yk&%v$j*^m+m6es3mzR{3lxS#Zo}QkXnwpN0 zG{yh`00DGTPE!Ct=GbNc005Aa1p|VABw8g-g~|%9elFn12LL#klEB&BPI&+T1S?5I zK~!jg?U?6Rl3^H!?=q97Eoj)Xz>@Zk-b%7vHW=DoV0-VKrK#;{d+)vX-n*>S5JNHQ zl#=#8^fJUu-fr^YdHo>Qx8J!q@WA05xE=rxR*Dt(DqbRYmSAVG|MA`>eM$;{a;Jcu z-v8mfN|i2CwoJM5zP9OGz8pJCm-2Ge`&6h{sdA+%LXmBXgjLvCv4W4QzG}7VHT?W) z)~a2nu4UG(Q@d78KffB)t5tQ)``4>4mPi5`Gz^qlrZli&g8+#{T)&>bYrawACQX|) zZ_%<<>o#rM0km)1rgf{9Et)rfYuco7BX@XN2c~1E&Ye32$-4xzpMfa2i#*7(J2D+) z)&q3y*1bp1UcGwu?$bA$DX(pb?d!$ZdkLc^7RTH98s$5_6J zzILXH3DO0CSpE_l-eNLP(ejI%dGiJ`3J;%=6dGqJbo13#{&zd=dzJ~=17cF+M zge7+^TDX9|ho#FRmU9rXY$<&YD zrOQ{Y+PQN18t)$9`i+~nZdPh>a)MNcl+oSzX z+hhGs+k^C-HeP5$qkRA2<9nsXKI66Tr1U+A65trHcUiJNoCAHbjNFs=y*fqDL5kWHPu%yP z4Tcn_7!03X@#KB4O-*x3s@646z5k7A>8VagPc!EH9MbOpFDCKVe27h7ay<3^_ZFJI ziT~o8N%+TK63_jB=YGI~=YGI*KVZdkKj5M0Li>IIfp-6YW6K)e4j==VPcY2Ty$k3rh^c>iON_C4DF7+AlPdK|3ZNj(bI z@1!0_r~hvHkq6UviOzi<$C#eMEwhoc_