From bf991cd2da28a034e036b2dd16a76aa93625a7b7 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 17 Jun 2019 13:20:25 -0500 Subject: [PATCH] Underwear overlays Gentials, can toggle each seperately (#8602) * Gentials layered under underclothes * screm --- code/modules/client/preferences.dm | 3 ++ code/modules/mob/living/carbon/human/human.dm | 1 + .../mob/living/carbon/human/species.dm | 12 +++++++ .../code/modules/arousal/arousal.dm | 31 ++++++++++++++++++ .../code/modules/arousal/organs/genitals.dm | 4 ++- .../icons/obj/genitals/breasts_onmob.dmi | Bin 4932 -> 4864 bytes .../icons/obj/genitals/penis_onmob.dmi | Bin 3880 -> 3885 bytes .../icons/obj/genitals/testicles_onmob.dmi | Bin 762 -> 759 bytes .../icons/obj/genitals/vagina_onmob.dmi | Bin 1076 -> 1070 bytes 9 files changed, 50 insertions(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index a0eea344a3..501e9fc7cc 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2236,8 +2236,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.hair_style = hair_style character.facial_hair_style = facial_hair_style character.underwear = underwear + character.saved_underwear = underwear character.undershirt = undershirt + character.saved_undershirt = undershirt character.socks = socks + character.saved_socks = socks character.backbag = backbag diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 129e600b00..c03c0fc0a9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -8,6 +8,7 @@ /mob/living/carbon/human/Initialize() verbs += /mob/living/proc/mob_sleep verbs += /mob/living/proc/lay_down + verbs += /mob/living/carbon/human/proc/underwear_toggle //fwee //initialize limbs first create_bodyparts() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 62a4d42672..0a00bab3f4 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -490,11 +490,19 @@ GLOBAL_LIST_EMPTY(roundstart_races) //Underwear, Undershirts & Socks if(!(NO_UNDERWEAR in species_traits)) if(H.underwear) + if(H.hidden_underwear) + H.underwear = "Nude" + else + H.underwear = H.saved_underwear var/datum/sprite_accessory/underwear/underwear = GLOB.underwear_list[H.underwear] if(underwear) standing += mutable_appearance(underwear.icon, underwear.icon_state, -BODY_LAYER) if(H.undershirt) + if(H.hidden_undershirt) + H.undershirt = "Nude" + else + H.undershirt = H.saved_undershirt var/datum/sprite_accessory/undershirt/undershirt = GLOB.undershirt_list[H.undershirt] if(undershirt) if(H.dna.species.sexes && H.gender == FEMALE) @@ -503,6 +511,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) standing += mutable_appearance(undershirt.icon, undershirt.icon_state, -BODY_LAYER) if(H.socks && H.get_num_legs(FALSE) >= 2) + if(H.hidden_socks) + H.socks = "Nude" + else + H.socks = H.saved_socks var/datum/sprite_accessory/socks/socks = GLOB.socks_list[H.socks] if(socks) if(DIGITIGRADE in species_traits) diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm index 846a8cff62..27f7576e7f 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/modular_citadel/code/modules/arousal/arousal.dm @@ -14,6 +14,10 @@ var/saved_underwear = ""//saves their underwear so it can be toggled later var/saved_undershirt = "" + var/saved_socks = "" + var/hidden_underwear = FALSE + var/hidden_undershirt = FALSE + var/hidden_socks = FALSE /mob/living/carbon/human/New() ..() @@ -29,6 +33,33 @@ var/list/femcum_fluids = list("femcum") //Mob procs +/mob/living/carbon/human/proc/underwear_toggle() + set name = "Toggle undergarments" + set category = "Object" + if(ishuman(src)) + var/mob/living/carbon/human/humz = src + var/confirm = input(src, "Select what part of your form to alter", "Undergarment Toggling", "Cancel") in list("Top", "Bottom", "Socks", "All", "Cancel") + if(confirm == "Top") + humz.hidden_undershirt = !humz.hidden_undershirt + + if(confirm == "Bottom") + humz.hidden_underwear = !humz.hidden_underwear + + if(confirm == "Socks") + humz.hidden_socks = !humz.hidden_socks + + if(confirm == "All") + humz.hidden_undershirt = !humz.hidden_undershirt + humz.hidden_underwear = !humz.hidden_underwear + humz.hidden_socks = !humz.hidden_socks + + if(confirm == "Cancel") + return + src.update_body() + + else + to_chat(src, "Humans only. How the fuck did you get this verb anyway.") + /mob/living/proc/handle_arousal() diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 52508d7803..63d6834409 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -73,7 +73,7 @@ owner.exposed_genitals += src if("Hidden by clothes") through_clothes = FALSE - hidden = FALSE + hidden = TRUE if(src in owner.exposed_genitals) owner.exposed_genitals -= src if("Always hidden") @@ -303,6 +303,8 @@ for(var/obj/item/organ/O in H.internal_organs) if(isgenital(O)) var/obj/item/organ/genital/G = O + if(G.hidden) + return //we're gunna just hijack this for updates. if(G.is_exposed()) //Checks appropriate clothing slot and if it's through_clothes genitals_to_add += H.getorganslot(G.slot) //Now we added all genitals that aren't internal and should be rendered diff --git a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi b/modular_citadel/icons/obj/genitals/breasts_onmob.dmi index 69a531bd11511356b8a89b4057a1fc243f3e078e..c4b75b1172d112edf090c7b56d8b02a7745e7be4 100644 GIT binary patch delta 347 zcmV-h0i^!KCV(c8ZGS|1R9JLGWpiV4X>fFDZ*Bkpc%0SPy-ve090c$=ehRCdK`pQ{ zfKs6%(N~C^_z$tfN3mVt@kxo*x&y=AQfG^Y%Wt`yrOfsH>S4Xn_0w8?i4X4MUEk`P z%Y~}GosIo)xV}iHBN7Y8k0xq>hm+BiXVgVI(PAG8cjB`4D58&S@>Db)435n&mV*1x+|j3fDe& z#=<+FLWG3wd^ t9LvtD_`PwgAFtwzer6S4_mgOW>Rhij_1}-BU%erw-nXyUwX^;KMiKNiwb%dv delta 416 zcmV;R0bl-rCd4L?ZGVV*R9JLGWpiV4X>fFDZ*Bkpc$}q}%}#?r7)96c6r^2iT6OED zDJlywG49F0d=(OZDl=6dUkZc{CMM3A9V{*aHtaOiyvK3{lDfX&q3stO&n}5fL{Am$Kx@pbvD{-`I z)vFwz*MG*=Bvvw7$!Ha$Rg9(?O>^2Nz02~gKaS*twG-A(U^{{B)R}=h=z?qslvq+? zMTr$9YD&~$M6`<@iOw8tDYT{FmO@&79Fzv07-PN-`fFDZ*Bkpc$}@6!A`lXf6MgGlS)gi>dV1S6?v6p`;9D;Nq;gVUx0L0wfx$E# zj1yvcIv6L!5_K?0sO3(T@b}ZEC>@rkO;I{5O`C#rtF^?lv>--?C22v749n4iuun}D zTE4DTcaWlfRe!DJSABUksvjp$=}c()>y**yYWhM0j_S-2Jm+sE9f$RVn7TM4AjV8V zhQjJIGYO%r$wFaRjaHXOFw?9V3MGtvU_d|WI0gFgljq3I zZr@y|$?fw~{DR%qUsTL8aG;oVfYODmPEb05>)O@^3V&UWTMbAh5o+61NhJ}i>Byk- z7f7xNtdt1XOaoR*#M{mi(CKpA%0McKXxk}9Dv4l^BM>w?7_~ldLL$`T=;egWceNec z-OBR^clSBSD$)CHko$mtE2}@`vloi`Bx0qYC;?LT45bzel0)lsCK9(^upnBh-QKAs mgXGXUtr&L6tQs8FTjVg9$I;fFDZ*Bkpc$}@7K~KU!5QWd}uV~+zqiG(-6etLJ&BiM^369q$&3^F(PZ{GPonAbJp58sU2Mwe zJ{sQ+!{EEfbl$uWaTw&P_{jC&i&{&qn#bN&l|`NAyR|ISQGYs2A6{RQw_X@zMOC*& z!eCj+wQ8S7r>V*8X`W0WET&{JCli!Rpt8?$qqWN5AZ?BkqG8$`B}4P7Mu+BUVT=w<)55U7 zo+`C`UnyUlqJR0VTFIa0@ov!koUG%?X?#>?aJnO3bU-OjnqZ~>HFa3$BWf=*lmMx2 zPjVdEWw*63&e}aBh<0l20SxTMIme-mcEc6p%#frov`aIzz&F>;tg|36v(DCm#sghR zuD84PIb)84o0>Z+_8fCokiwW13Q{O=p&5U$(j~bQgMXG1(VD?aONn^9sSR6?Q1aa1 zwM4|-#^AL?$Y$TbR+r>X4_ZnDY&IP&CE`7-N!aOt)EUAmiD(b&nN>2MTeI4I(#w~- zuM%>Sc;6B7zrqz8^GAL0VbWBhP7{(7FlTRB@<5?Uyjy2yv1ba8;tksifIL=c67SX; hsNBiIf)f|C+K*<*bpLh1FA9)H{*n*@$FqI{uMFYc5Y7Mq diff --git a/modular_citadel/icons/obj/genitals/testicles_onmob.dmi b/modular_citadel/icons/obj/genitals/testicles_onmob.dmi index 581bcb0583434fd91c3ba9b8adec45d8bbe9c3f5..33659cf13cb42239e1fc3a2e8ccf3c02ff42ea26 100644 GIT binary patch delta 249 zcmVqL|1P8X}c8K}=|)*B3Cd zH0IB)UA#`;^k>pk6y>q1g}zk$X~*CngV>ARHskE&+vui^lAJl~I~PBj5SwVHWfEc zRj8>#O%=gZ5lr(n!H&!HLg&8~FwsycK z5ANDoZ@lZ9&KhA-vpb*kC1z3W20xv|qT5j2?X(s@Q9(yjlNEyjqP!UBE9UWt~FZ@*v~=r>gRpKK?*(E0pvc>~Slv6bxDibwze0h38Y WK~#90?b*R?!axuOP#d#g0ha+bkcN!_ diff --git a/modular_citadel/icons/obj/genitals/vagina_onmob.dmi b/modular_citadel/icons/obj/genitals/vagina_onmob.dmi index f5daa3fea1ba98eefe5f6bc9512d66a61ab9186a..c4cf891eacb33ec4b217986d85e5f9bf16ed0483 100644 GIT binary patch delta 286 zcmV+(0pb3%2(Ac_YJUfMR9JLGWpiV4X>fFDZ*Bkpc$~eIT?>LR6o#+euNZY(p)0%V zqA;SM{=zu4r2}2Dt)hS5>{F41O$cw!gy%dj?!`V{ELZCtPPS`w;Yy36#4|h@g($cR zW-@yi6BJ}zq?vghv;o8I*t*cN9Z5Kd9}gKc{VAM;OkD#QE)DE+-hpe$KKW*U29FzySh>i6tN)9&=t)iA{P-Z$ z&H2V&P>Z$+9nMN|=BoNoPA+`{=6s!R$i+0&UY)OC-CJ*$dG+3Mp3Se5-Mas`0@~1C k6|8cOKA##^uo6~VA1`;w<6nIT*!r)1O#Gu|vw#7#0@~ delta 292 zcmV+<0o(qr2($>0YJUxSR9JLGWpiV4X>fFDZ*Bkpc$~eI%L>9U5JlI`SA=$}($>e$ zjrhQY6~uiROl$)hC5cM^-qdF$SVp?0|RG0n{GR7gz4_n}Al!obeF;A90@_z^uvh0GqwSX-x>*y^O z)nPq-OE*yHG7cNv%NI9H4;kzk&+JVo$`!0O^eeLV1)b*$uJ*e|D^j*nVDI4x)>?>P zESQ4;CJKl7-LP6|6I&mIpu}G8!CC6bJrIZS-Z4A1rgTh01^h)GbUVjHXwo?ouk5#} q`0H9~>yC?AB^a$W-IlWgeozeXC>dV