From 540f738872af6dbcd1b2916e98147cd5b8883ca9 Mon Sep 17 00:00:00 2001 From: Cursor <102828457+theselfish@users.noreply.github.com> Date: Sun, 14 Jul 2024 15:35:56 +0100 Subject: [PATCH 1/6] Clown-Date: Hair and Markings (#1776) ## About The Pull Request Title. ## Why It's Good For The Game More options for Clown Characters. ![image](https://github.com/Bubberstation/Bubberstation/assets/102828457/b4a56bee-6c71-4575-8dda-8aa661e07a5b) ## Proof Of Testing ## Changelog :cl: add: Clown Hair! Woo! Markings too! /:cl: --- .../mob/dead/new_player/body_markings.dm | 16 +- .../mob/dead/new_player/sprite_accessories.dm | 144 +++++++++--------- .../icons/mob/body_markings/markings.dmi | Bin 3788 -> 3915 bytes .../icons/mob/species/human/humanface.dmi | Bin 20200 -> 20302 bytes 4 files changed, 89 insertions(+), 71 deletions(-) diff --git a/modular_zubbers/code/modules/mob/dead/new_player/body_markings.dm b/modular_zubbers/code/modules/mob/dead/new_player/body_markings.dm index 817c83f312d55..4ca7cbbe51b85 100644 --- a/modular_zubbers/code/modules/mob/dead/new_player/body_markings.dm +++ b/modular_zubbers/code/modules/mob/dead/new_player/body_markings.dm @@ -9,7 +9,7 @@ recommended_species = null /datum/body_marking/bubber/facedisc - name = "Face disc" + name = "Face Disc" icon_state = "facedisc" affected_bodyparts = HEAD @@ -19,7 +19,7 @@ affected_bodyparts = HEAD /datum/body_marking/bubber/verticalstripe - name = "Vertical stripe" + name = "Vertical Stripe" icon_state = "verticalstripe" affected_bodyparts = HEAD @@ -33,6 +33,18 @@ icon_state = "fangs" affected_bodyparts = HEAD +/datum/body_marking/bubber/clowncross + name = "Clown Cross" + icon_state = "clowncross" + affected_bodyparts = HEAD + gendered = FALSE + +/datum/body_marking/bubber/clownlips + name = "Clown Lips" + icon_state = "clownlips" + affected_bodyparts = HEAD + gendered = FALSE + /datum/body_marking/bubber/longsock name = "Longsock" icon_state = "longsock" diff --git a/modular_zubbers/code/modules/mob/dead/new_player/sprite_accessories.dm b/modular_zubbers/code/modules/mob/dead/new_player/sprite_accessories.dm index 639410bc84610..7aa13521909f1 100644 --- a/modular_zubbers/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/modular_zubbers/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -38,6 +38,81 @@ icon_state = "royal_curls" icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' +/datum/sprite_accessory/hair/bubberclown + name = "Clown" + icon_state = "hair_clown" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + +/datum/sprite_accessory/hair/emma + name = "Emma" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_emma" + +/datum/sprite_accessory/hair/immovable + name = "Ozen" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_immovable" + +/datum/sprite_accessory/hair/damsel + name = "Damsel" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_damsel" + +/datum/sprite_accessory/hair/wavylong + name = "Long Wavy" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_wavylong" + +/datum/sprite_accessory/hair/wavyovereye + name = "Wavy over eye" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_wavyovereye" + +/datum/sprite_accessory/hair/straightovereye + name = "Straight over eye" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_straightovereye" + +/datum/sprite_accessory/hair/straightside + name = "Side Straight" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_straightside" + +/datum/sprite_accessory/hair/straightshort + name = "Straight Long" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_straightshort" + +/datum/sprite_accessory/hair/straightlong + name = "Straight Long" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_straightlong" + +/datum/sprite_accessory/hair/straightfloorlength + name = "Straight Long (Very)" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_straightfloorlength" + +/datum/sprite_accessory/hair/deathhawk + name = "Deathhawk" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_deathhawk" + +/datum/sprite_accessory/hair/bedheadhline + name = "Bedhead (+hairline)" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_bedheadhline" + +/datum/sprite_accessory/hair/spicyalt + name = "Spicy (Alt)" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_spicyalt" + +/datum/sprite_accessory/hair/honse + name = "Honse" + icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' + icon_state = "hair_honse" + //Sprite from Monkestation: https://github.com/Monkestation/MonkeStation /datum/sprite_accessory/hair/marge name = "Marge" @@ -117,72 +192,3 @@ icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' recommended_species = list(SPECIES_PODPERSON, SPECIES_PODPERSON_WEAK) -/datum/sprite_accessory/hair/emma - name = "Emma" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_emma" - -/datum/sprite_accessory/hair/immovable - name = "Ozen" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_immovable" - -/datum/sprite_accessory/hair/damsel - name = "Damsel" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_damsel" - -/datum/sprite_accessory/hair/wavylong - name = "Long Wavy" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_wavylong" - -/datum/sprite_accessory/hair/wavyovereye - name = "Wavy over eye" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_wavyovereye" - -/datum/sprite_accessory/hair/straightovereye - name = "Straight over eye" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_straightovereye" - -/datum/sprite_accessory/hair/straightside - name = "Side Straight" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_straightside" - -/datum/sprite_accessory/hair/straightshort - name = "Straight Long" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_straightshort" - -/datum/sprite_accessory/hair/straightlong - name = "Straight Long" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_straightlong" - -/datum/sprite_accessory/hair/straightfloorlength - name = "Straight Long (Very)" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_straightfloorlength" - -/datum/sprite_accessory/hair/deathhawk - name = "Deathhawk" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_deathhawk" - -/datum/sprite_accessory/hair/bedheadhline - name = "Bedhead (+hairline)" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_bedheadhline" - -/datum/sprite_accessory/hair/spicyalt - name = "Spicy (Alt)" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_spicyalt" - -/datum/sprite_accessory/hair/honse - name = "Honse" - icon = 'modular_zubbers/icons/mob/species/human/humanface.dmi' - icon_state = "hair_honse" diff --git a/modular_zubbers/icons/mob/body_markings/markings.dmi b/modular_zubbers/icons/mob/body_markings/markings.dmi index d64ac5a24ece5aa61ec88cadbc08b90960eab262..eb298ef5d261332d8e28509f1bcc3a03f4262995 100644 GIT binary patch literal 3915 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 literal 3788 zcma)8c{r478-JxFj_4eFmeZ!}6k#xfNJu2xWDLb*A0ulcGt&`MN>a9(m?T+;s4Ov- zq$!4yC542{APi$2X3Y0G=X~GwU0;8E=e@4?S$^;R-uLhRJWQ$ z59`?ZYgByykQYUqa3?xVr0@T2R7^~cWUTohv&pwUc}fXxZETBO+N$1>_GqjJAtq;0 zKzk(cucUXOR`Z!o|<5~zVC0X`C=8SV2o$Q#oSCo-G8y)k(Ly`Ao{BZlH z6A|UxQzg@hXZLmSPPe(=;lGa9Rgw0HO*uJD*2ajDnSu(ZXzbnLC@yyL`{)#?wyBM! zxpT~enITw^2U8xHb5oIU)|ItW>!T;yW?ua69Fp`0ZTDiwDgo&(~$#9=;OkJ1*OkB z1i-c2d@40=aNK$;dd%Uqg?61Y{AaEqeB#`mjAEa{yOqoM)G>;tyk*@GIzhq$Y$FEQ9%i?0nkRS4|EO{iBQ^Z55dXZb`9q`q ze6KDb^>&z>)U+MNFz?*tNf42uS_Zre$GLU%o-H;b^tw2AxpJ9zQEXgyo5J*f9$B0qSGeaDWb=kJda5NDE*@UWu?lmVIA=K^}vxB8|yLK*`q z=wCfRNxLGMuNt<+Ib>D{Xu4Rt=x^j@5ioi>vbdl0;O=3%R-NZT2di5y8DPfu!k*Ai zpILy#!FtzWy{lwW-2?}XSng1np1biliTch+AnU>oVc^j5)JFA@6)mVX>el@%evht! z?!kYO$e%V%e}LJ*Gg@D!+_U{0mXS(>wO8z2vRUnPq{FuzkHvoEtBO(A8zeLS#3~ z25tFg*PXumU=i*@K`z^Yre9Uri#0aw;x0D#@>CeGNV+|J2k5q>?1QLpQ=n~R7j@d` z{(0;UHiU!OC0iq{Or-QhvU3Fh(UM}>pe=ry_r?EO1wh?a5D>Y`UODY_bHLJyVFAw4 zM?c8xSa(AC&f;qY zXd|GeI6>Y_cuAFz1Zz4k4HhXqk`VCp5t_dK`iVxYFI>8$=68?YdKY6>Wa?gVR7dw# z8LG?~MqU}Gd~cZ=o7{%*1MF2dYKy@gkmIBZ5ofQZ1|i8z9t>t@_A}L|`>|By9oV%# z){0MYMdp=3Abo0OUAMimpS2>YdA#V2r!-rz#{zjX39@%)37a&apeOK9+UbFSq|w*I zZM)5S!~WwF6(ptaxKTTN&>=_i=mn{8z1Br$X?vS>_JWsHu*`N%W zX-K*wN(lO~giTh9xpd`JSX$Ytpn5^THf>bBJOCgb6{-|{b}cF5ga!_Nh_TXa(GTHN z*s5kgN%#5A?M?O_G*n;lPJj^T4@l0=kI^WQ6k4yICg1*sOvbGsVB9XXq@^gA`)W=uVdp!ujYl?k>$yYd%scTK?W41^ zXxZfBBk%4W{B%E@QuvTCZs5T^Cj6((FpHLCQH;n*(P+QJ{GIF*rK|yNUB*S^{Cf)a zH-9xTAgkS9Po%D{j)~Luy5oL;hl4?}i-)dCXwmINIEWM_)0a`*y#S%sxVSg!9KAPIIL1px|^tPv`Pa zH&6(7xDe=CI&~qyz7yY7D?H)@EsbpPlU!1nzd-UzLg?%Bi$>9b(4WO9B(H54ownWO zbJN<|dZdG7Fp>h>5GE3dBO@(Dq|AT+fbh6EkH-(cnOrYXc~hgG9`7D$0^~ccLhrX( zl~1|0fUom=0ggYl?xH8&E=RUx~kt<-U zFZ)ZU2JgF_xz?*!y%ZNk0MR;B7u~YJeBaX5)iwEPa{vM*JH_OgZ|WVUqv|TUC$F*^ z`3;d>;W*BCrlG>lmhJ)v?aQ5yUJjuLzkCrH#;wmJ_=JXr(uVPT(|6owVG0TgSC^KS zFc^$PV#_(%cs;>4y5-tv*4bY%x(A)VuW7_g^)Zo{zx5%*?`BWrhoFu~EbK*me7qei6J@B7n4FwE#~yG0 z$i#8jsQ&(bL(_GzqN(c>>OVB#`5W{x4)3tYd~>sT)=3pVCDKWie0sKWTqqiyqZF1x z8^f@^Qoo14e;Lg}%BIlvTow1*Pa=`>vlD>!kv2a7WH7?$AQdD$8JKwk#?GkRT2Wms zqjJ}#e{j&`2%o{Y0Q$|>jGvyFNtlnhe1S@(AIO@l&4I>!kx!wizu3A}(q~p^ZgH~P zwP8>v_BCnPAyUAQ416abJh|YVVX(hn_{WbQHq4w1=DD~y)8OFXtLW<8 z1th{Vz#Ey&mGyV|1nk_o^A&@^xJPSPn<|m85Z=9ecm8V~Q#WWdIz0SY<&QmP3-lp? zou9+w@f@_U4VO8Gr&%mATwd)gbT+uFeLSVWWUZrIKLV27y^l45iFqkBJQD@uTy;)m z&o2Z?aOB)Jb`33*r2q)uGNIerk@a{!bg&`Lc(Vt8l6XaY|HuKBqirWC=UY9HY;0_t z3ohI{-;1+W-`@HD3dugz|M|1c$E|Es1_(~F?UH81N5-Hv!E%9z@1<2qZqpkc^aH3! z7CmG`^c-hqdgaFQx8`^qa4W``K+k+RSfwSzjX!u{pvd8LwPUVs6>x^~ZGTAZLVh%yR_?W<kqeeU6=?IVsf3Sxx?k$@>>%Z zL{Sxl$Lk%b(o7>E$%`e>=i{DouG_geKDsp zw`5T5!9l=yT#w32K;ZaN39n{puFf#dBl2W7vhhnwx0i=_qn-3{u$EJY;Qy0!^SjyX z#N7VPZ1Fs~v91xDQb>+OTe2$o;JCs97Nq7%g-uBaKF#WL!G8mz9SNN)Z>)_Q*Geg@q8MmQ1xHjs#I#2Yn zQ*VmIdji|~v8$e!!F(9iF0>;dkTS{nai3FoDI?sj3*nA^^^rJFAafmdygD26TqBpU Psf>-)Da$eo??3(pQ+da_ diff --git a/modular_zubbers/icons/mob/species/human/humanface.dmi b/modular_zubbers/icons/mob/species/human/humanface.dmi index 8d84e240d42b8462064acb552b579cf18dfc924e..71db7abad89bbbc76eb9dcbd2089f0630854c214 100644 GIT binary patch literal 20302 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 TK6nxc0SI!$+VK$G$~X3J3%fUY literal 20200 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 SJ^)^J2x4h&V^)SG-v1Zx7Y2_2 From f7d8f91fe9665c34be307aaacb6f5daaa8804694 Mon Sep 17 00:00:00 2001 From: Bubberbot <151680451+Bubberbot@users.noreply.github.com> Date: Sun, 14 Jul 2024 16:36:20 +0200 Subject: [PATCH 2/6] Automatic changelog for PR #1776 [ci skip] --- html/changelogs/AutoChangeLog-pr-1776.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1776.yml diff --git a/html/changelogs/AutoChangeLog-pr-1776.yml b/html/changelogs/AutoChangeLog-pr-1776.yml new file mode 100644 index 0000000000000..94bb25ef50e8f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1776.yml @@ -0,0 +1,4 @@ +author: "theselfish" +delete-after: True +changes: + - rscadd: "Clown Hair! Woo! Markings too!" \ No newline at end of file From b5912162fb16a45a6e6b3947e0a66151d844e33e Mon Sep 17 00:00:00 2001 From: xXPawnStarrXx <53197594+xXPawnStarrXx@users.noreply.github.com> Date: Sun, 14 Jul 2024 16:08:58 +0100 Subject: [PATCH 3/6] More deployable pods! (#1695) ## About The Pull Request I got caught in a rhythm ~~send me help, please, I can't stop making pods, they're so neato...~~, I've made a bunch of pods which are available via the NRI vendor, Izm-, Ish-, Izh- NRI guys... I can't remember the name... There are a few variants, but most of them are designed to be in sizes of 3, so they connect in a fairly modular fashion. Let's start at the top; 6x6, 3x3, Kitchen, Botany control, Botany trays, O2 harvester, fan and comfort cabin. ![image](https://github.com/Bubberstation/Bubberstation/assets/53197594/a77a1777-a9fd-4039-b6f7-ef08288f0007) The 6x6, Just primarily a large space for you to build in. 200cr ![image](https://github.com/Bubberstation/Bubberstation/assets/53197594/192d86b3-0ae5-405d-9e4a-cd48166a6de9) The 3x3, A smaller space for building and maybe making corridors to connect your pod base. 100cr. ![image](https://github.com/Bubberstation/Bubberstation/assets/53197594/cb01d7af-4803-4055-96e7-096b8200cfc0) The kitchen! A useful little deployable, let's you really start to make a home of it. 3x6. (the deploying tile will be between the oven and condimaster) 400cr. ![image](https://github.com/Bubberstation/Bubberstation/assets/53197594/39909a62-8965-4dc3-b32d-629a0ed878a9) The botany control capsule, this pod comes with a free tray capsule, as well as a set of basic farming tools and the machines you'll need to get yourself going. (Buy your own seeds though, we're not giving you everything) 400cr ![image](https://github.com/Bubberstation/Bubberstation/assets/53197594/e356c35d-90af-4cec-8995-917bf88d0603) Botany trays; This pod contains four trays. All basic, standard unupgraded trays and a light... That's about it. 200cr. ![image](https://github.com/Bubberstation/Bubberstation/assets/53197594/f3be2604-db3d-4277-ad0a-db8cc1659132) Here we have the O2 harvester. One of the only two pods with a fan to secure the atmosphere. This will pull O2 out of the atmosphere, filter it into a pump for your internals to be refilled from. 400cr. ![image](https://github.com/Bubberstation/Bubberstation/assets/53197594/0523daf0-1009-41f7-9df7-b70294bc951f) The smallest of all of the pods. The Fan, this is designed to be an airlock, place it outside of the doors if you want to keep the pressure inside. Coming at a cost of 100cr each, they're not cheap, but not expensive. ![image](https://github.com/Bubberstation/Bubberstation/assets/53197594/7326ac6a-2b96-4074-88f3-05a9d60b261a) The cabin, a nice, cosy cabin designed for NRI officers made of cheap wood but aesthetically pleasing enough. 200cr. ## Why It's Good For The Game I wanted accessable pods for people besides miners or medical, you want to have a nice little pod-glass base, you now can! ## Proof Of Testing Screenshots in description. ## Changelog :cl: add: Added new pods! /:cl: --------- Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> --- _maps/bubber/pods/listeningbasics.dmm | 107 ++++++++++ _maps/bubber/pods/shelter_3x3.dmm | 57 ++++++ .../{templates => bubber/pods}/shelter_4.dmm | 0 .../{templates => bubber/pods}/shelter_5.dmm | 0 _maps/bubber/pods/shelter_6x6.dmm | 112 ++++++++++ _maps/bubber/pods/shelter_botany.dmm | 83 ++++++++ _maps/bubber/pods/shelter_cabin.dmm | 168 +++++++++++++++ _maps/bubber/pods/shelter_fan.dmm | 9 + _maps/bubber/pods/shelter_kitchen.dmm | 128 ++++++++++++ _maps/bubber/pods/shelter_o2.dmm | 72 +++++++ .../{templates => bubber/pods}/shelter_s.dmm | 0 _maps/bubber/pods/shelter_trays.dmm | 73 +++++++ .../modules/mining/equipment/survival_pod.dm | 193 ++++++++++++++++++ .../code/modules/mining/shelters.dm | 8 +- 14 files changed, 1006 insertions(+), 4 deletions(-) create mode 100644 _maps/bubber/pods/listeningbasics.dmm create mode 100644 _maps/bubber/pods/shelter_3x3.dmm rename _maps/{templates => bubber/pods}/shelter_4.dmm (100%) rename _maps/{templates => bubber/pods}/shelter_5.dmm (100%) create mode 100644 _maps/bubber/pods/shelter_6x6.dmm create mode 100644 _maps/bubber/pods/shelter_botany.dmm create mode 100644 _maps/bubber/pods/shelter_cabin.dmm create mode 100644 _maps/bubber/pods/shelter_fan.dmm create mode 100644 _maps/bubber/pods/shelter_kitchen.dmm create mode 100644 _maps/bubber/pods/shelter_o2.dmm rename _maps/{templates => bubber/pods}/shelter_s.dmm (100%) create mode 100644 _maps/bubber/pods/shelter_trays.dmm diff --git a/_maps/bubber/pods/listeningbasics.dmm b/_maps/bubber/pods/listeningbasics.dmm new file mode 100644 index 0000000000000..176faac98e75f --- /dev/null +++ b/_maps/bubber/pods/listeningbasics.dmm @@ -0,0 +1,107 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/machinery/photocopier/gratis, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium, +/area/template_noop) +"c" = ( +/obj/machinery/computer/records/medical/syndie, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium, +/area/template_noop) +"m" = ( +/obj/machinery/computer/message_monitor, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium, +/area/template_noop) +"t" = ( +/obj/machinery/door/window/survival_pod/left/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/template_noop) +"y" = ( +/obj/effect/turf_decal/skyrat_decals/ds2/right, +/obj/structure/table/reinforced, +/obj/machinery/fax{ + allow_exotic_faxes = 1; + syndicate_network = 1; + name = "Menacing Fax Machine"; + color = "#FF0000"; + fax_name = "Unknown Syndicate Fax - PLP" + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/turf/open/floor/mineral/plastitanium/red, +/area/template_noop) +"C" = ( +/obj/effect/turf_decal/skyrat_decals/ds2/middle, +/obj/structure/chair/office/tactical{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/template_noop) +"F" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south{ + dir = 10 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium, +/area/template_noop) +"Q" = ( +/obj/effect/turf_decal/skyrat_decals/ds2/left, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/stamp/chameleon{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/pen/fourcolor{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/paper/monitorkey, +/obj/item/paper/crumpled/plap{ + pixel_x = 7 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/template_noop) +"W" = ( +/obj/machinery/computer/camera_advanced/syndie, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/template_noop) + +(1,1,1) = {" +m +Q +a +"} +(2,1,1) = {" +W +C +t +"} +(3,1,1) = {" +c +y +F +"} diff --git a/_maps/bubber/pods/shelter_3x3.dmm b/_maps/bubber/pods/shelter_3x3.dmm new file mode 100644 index 0000000000000..4c4229e2605d2 --- /dev/null +++ b/_maps/bubber/pods/shelter_3x3.dmm @@ -0,0 +1,57 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/machinery/light/floor, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"c" = ( +/obj/machinery/door/window/survival_pod/left/directional/south, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"d" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"k" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"m" = ( +/obj/machinery/door/window/survival_pod/left/directional/west, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"C" = ( +/obj/machinery/door/window/survival_pod/left/directional/east, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"E" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"H" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"K" = ( +/obj/machinery/door/window/survival_pod/left/directional/north, +/turf/open/floor/pod/light, +/area/misc/survivalpod) + +(1,1,1) = {" +H +m +d +"} +(2,1,1) = {" +K +a +c +"} +(3,1,1) = {" +k +C +E +"} diff --git a/_maps/templates/shelter_4.dmm b/_maps/bubber/pods/shelter_4.dmm similarity index 100% rename from _maps/templates/shelter_4.dmm rename to _maps/bubber/pods/shelter_4.dmm diff --git a/_maps/templates/shelter_5.dmm b/_maps/bubber/pods/shelter_5.dmm similarity index 100% rename from _maps/templates/shelter_5.dmm rename to _maps/bubber/pods/shelter_5.dmm diff --git a/_maps/bubber/pods/shelter_6x6.dmm b/_maps/bubber/pods/shelter_6x6.dmm new file mode 100644 index 0000000000000..16d7f87c6202e --- /dev/null +++ b/_maps/bubber/pods/shelter_6x6.dmm @@ -0,0 +1,112 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"c" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"d" = ( +/obj/machinery/door/window/survival_pod/left/directional/south, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"l" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"m" = ( +/obj/machinery/light/floor, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"o" = ( +/obj/machinery/door/window/survival_pod/left/directional/east, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"t" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"y" = ( +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"z" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"D" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"H" = ( +/obj/machinery/door/window/survival_pod/left/directional/north, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"I" = ( +/obj/machinery/door/window/survival_pod/left/directional/west, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"M" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"N" = ( +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"V" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) + +(1,1,1) = {" +c +I +V +V +I +z +"} +(2,1,1) = {" +H +m +N +N +m +d +"} +(3,1,1) = {" +M +N +y +y +N +t +"} +(4,1,1) = {" +M +N +y +y +N +t +"} +(5,1,1) = {" +H +m +N +N +m +d +"} +(6,1,1) = {" +l +o +D +D +o +a +"} diff --git a/_maps/bubber/pods/shelter_botany.dmm b/_maps/bubber/pods/shelter_botany.dmm new file mode 100644 index 0000000000000..178fba95b50e0 --- /dev/null +++ b/_maps/bubber/pods/shelter_botany.dmm @@ -0,0 +1,83 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/machinery/door/window/survival_pod/left/directional/east, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"c" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 6 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/machinery/seed_extractor, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"d" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 10 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/machinery/vending/hydroseeds{ + onstation = 0 + }, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"h" = ( +/obj/machinery/door/window/survival_pod/left/directional/south, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"j" = ( +/obj/machinery/door/window/survival_pod/left/directional/west, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"B" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 5 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/machinery/biogenerator, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"K" = ( +/obj/machinery/light/floor, +/obj/item/cultivator, +/obj/item/shovel/spade, +/obj/item/secateurs, +/obj/item/plant_analyzer, +/obj/item/reagent_containers/cup/bucket/wooden, +/obj/item/storage/bag/plants, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/item/survivalcapsule/trays, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"P" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 9 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/machinery/smartfridge, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"X" = ( +/obj/machinery/door/window/survival_pod/left/directional/north, +/turf/open/floor/pod/light, +/area/misc/survivalpod) + +(1,1,1) = {" +c +j +B +"} +(2,1,1) = {" +X +K +h +"} +(3,1,1) = {" +d +a +P +"} diff --git a/_maps/bubber/pods/shelter_cabin.dmm b/_maps/bubber/pods/shelter_cabin.dmm new file mode 100644 index 0000000000000..7f90a78decd6b --- /dev/null +++ b/_maps/bubber/pods/shelter_cabin.dmm @@ -0,0 +1,168 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/wood, +/area/misc/survivalpod) +"b" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/obj/structure/railing/wooden_fencing{ + dir = 7 + }, +/obj/machinery/light/floor, +/turf/open/floor/wood, +/area/misc/survivalpod) +"g" = ( +/obj/item/bedsheet/brown/double, +/obj/structure/bed/double, +/turf/open/floor/wood, +/area/misc/survivalpod) +"h" = ( +/turf/open/floor/carpet/orange, +/area/misc/survivalpod) +"q" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 1 + }, +/turf/open/floor/carpet/orange, +/area/misc/survivalpod) +"r" = ( +/obj/machinery/door/airlock/wood{ + id_tag = "cabin_deploy" + }, +/obj/structure/fans/tiny, +/turf/open/floor/wood, +/area/misc/survivalpod) +"s" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/turf/open/floor/wood, +/area/misc/survivalpod) +"w" = ( +/obj/structure/bookcase/random/adult{ + pixel_y = 20 + }, +/turf/open/floor/carpet/orange, +/area/misc/survivalpod) +"B" = ( +/obj/machinery/light/floor, +/obj/structure/table/wood/fancy/orange, +/turf/open/floor/carpet/orange, +/area/misc/survivalpod) +"D" = ( +/obj/structure/fake_stairs/wood, +/turf/open/floor/wood, +/area/misc/survivalpod) +"E" = ( +/turf/closed/wall/mineral/wood, +/area/misc/survivalpod) +"J" = ( +/obj/item/stack/sheet/mineral/wood/fifty, +/turf/open/floor/carpet/orange, +/area/misc/survivalpod) +"L" = ( +/obj/machinery/light/floor, +/turf/open/floor/wood, +/area/misc/survivalpod) +"N" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/rack/wooden{ + pixel_y = 10 + }, +/obj/item/wallframe/button, +/obj/item/wallframe/button, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/turf/open/floor/wood, +/area/misc/survivalpod) +"O" = ( +/obj/structure/fireplace, +/obj/effect/turf_decal/siding/wood/end, +/turf/open/floor/stone, +/area/misc/survivalpod) +"V" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 1 + }, +/turf/open/floor/carpet/orange, +/area/misc/survivalpod) +"Y" = ( +/obj/structure/chair/sofa/middle/brown{ + dir = 1 + }, +/turf/open/floor/carpet/orange, +/area/misc/survivalpod) + +(1,1,1) = {" +E +E +E +E +E +E +E +"} +(2,1,1) = {" +E +J +h +V +a +a +r +"} +(3,1,1) = {" +E +O +B +Y +L +a +E +"} +(4,1,1) = {" +E +w +h +q +a +a +E +"} +(5,1,1) = {" +E +s +s +b +N +a +E +"} +(6,1,1) = {" +E +g +a +a +D +a +E +"} +(7,1,1) = {" +E +E +E +E +E +E +E +"} diff --git a/_maps/bubber/pods/shelter_fan.dmm b/_maps/bubber/pods/shelter_fan.dmm new file mode 100644 index 0000000000000..078270c9a58ef --- /dev/null +++ b/_maps/bubber/pods/shelter_fan.dmm @@ -0,0 +1,9 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) + +(1,1,1) = {" +a +"} diff --git a/_maps/bubber/pods/shelter_kitchen.dmm b/_maps/bubber/pods/shelter_kitchen.dmm new file mode 100644 index 0000000000000..4c28dc2e2d7d2 --- /dev/null +++ b/_maps/bubber/pods/shelter_kitchen.dmm @@ -0,0 +1,128 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 9 + }, +/obj/machinery/reagentgrinder, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"h" = ( +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"l" = ( +/obj/machinery/light/floor, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"o" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 5 + }, +/obj/machinery/chem_master/condimaster, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"p" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 10 + }, +/obj/machinery/griddle/frontier_tabletop, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"t" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/machinery/smartfridge/food, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 9 + }, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"z" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 10 + }, +/obj/machinery/microwave/frontier_printed, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"F" = ( +/obj/machinery/door/window/survival_pod/left/directional/west, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"M" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 6 + }, +/obj/machinery/oven/range_frontier, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"P" = ( +/obj/machinery/door/window/survival_pod/left/directional/north, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"Q" = ( +/obj/machinery/door/window/survival_pod/left/directional/east, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"T" = ( +/obj/machinery/door/window/survival_pod/left/directional/south, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"X" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 6 + }, +/obj/machinery/chem_dispenser/frontier_appliance, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"Y" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 5 + }, +/obj/machinery/biogenerator/foodricator, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) + +(1,1,1) = {" +X +F +Y +"} +(2,1,1) = {" +P +l +T +"} +(3,1,1) = {" +p +h +a +"} +(4,1,1) = {" +M +h +o +"} +(5,1,1) = {" +P +l +T +"} +(6,1,1) = {" +z +Q +t +"} diff --git a/_maps/bubber/pods/shelter_o2.dmm b/_maps/bubber/pods/shelter_o2.dmm new file mode 100644 index 0000000000000..c131a5c802e57 --- /dev/null +++ b/_maps/bubber/pods/shelter_o2.dmm @@ -0,0 +1,72 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"g" = ( +/obj/machinery/light/floor, +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 8 + }, +/obj/item/tank/internals/emergency_oxygen/double, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"i" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/machinery/atmospherics/components/binary/pump/on/cyan{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"s" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/machinery/atmospherics/components/binary/pump/on/cyan/visible{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"y" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 8 + }, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"G" = ( +/obj/structure/fans/tiny, +/obj/effect/turf_decal/vg_decals/atmos/oxygen, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"T" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"V" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) + +(1,1,1) = {" +V +T +a +"} +(2,1,1) = {" +i +g +s +"} +(3,1,1) = {" +y +G +y +"} diff --git a/_maps/templates/shelter_s.dmm b/_maps/bubber/pods/shelter_s.dmm similarity index 100% rename from _maps/templates/shelter_s.dmm rename to _maps/bubber/pods/shelter_s.dmm diff --git a/_maps/bubber/pods/shelter_trays.dmm b/_maps/bubber/pods/shelter_trays.dmm new file mode 100644 index 0000000000000..cfc35685d772a --- /dev/null +++ b/_maps/bubber/pods/shelter_trays.dmm @@ -0,0 +1,73 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/machinery/door/window/survival_pod/left/directional/south, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"d" = ( +/obj/machinery/light/floor, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"k" = ( +/obj/machinery/door/window/survival_pod/left/directional/north, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"l" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 10 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"q" = ( +/obj/machinery/door/window/survival_pod/left/directional/east, +/turf/open/floor/pod/light, +/area/misc/survivalpod) +"r" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 9 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"t" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 5 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"E" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 6 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/pod/dark, +/area/misc/survivalpod) +"T" = ( +/obj/machinery/door/window/survival_pod/left/directional/west, +/turf/open/floor/pod/light, +/area/misc/survivalpod) + +(1,1,1) = {" +E +T +t +"} +(2,1,1) = {" +k +d +a +"} +(3,1,1) = {" +l +q +r +"} diff --git a/modular_zubbers/code/modules/mining/equipment/survival_pod.dm b/modular_zubbers/code/modules/mining/equipment/survival_pod.dm index 152bc649a059b..b3ef5ad2ae983 100644 --- a/modular_zubbers/code/modules/mining/equipment/survival_pod.dm +++ b/modular_zubbers/code/modules/mining/equipment/survival_pod.dm @@ -35,3 +35,196 @@ /datum/armament_entry/company_import/deforest/equipment/chempod item_type = /obj/item/survivalcapsule/chemistry cost = PAYCHECK_COMMAND * 20 + +/*****************************Botany Pods - Home is where the green is...********************************/ +/obj/item/survivalcapsule/botany + name = "botany control capsule" + desc = "A bluespace pod, containing botanical equipment." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = WEIGHT_CLASS_TINY + template_id = "shelter_botany" + used = FALSE + +/datum/map_template/shelter/botany + name = "Botany Control" + shelter_id = "shelter_botany" + description = "A contained and interconnectable botany pod." + mappath = "_maps/bubber/pods/shelter_botany.dmm" + +/datum/map_template/shelter/botany/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) + banned_objects = typecacheof(/obj/structure/stone_tile) + +/obj/item/survivalcapsule/trays + name = "botany trays capsule" + desc = "A bluespace pod, containing botanical equipment." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = WEIGHT_CLASS_TINY + template_id = "shelter_trays" + used = FALSE + +/datum/map_template/shelter/trays + name = "Botany Trays" + shelter_id = "shelter_trays" + description = "A contained and interconnectable botany pod." + mappath = "_maps/bubber/pods/shelter_trays.dmm" + +/datum/map_template/shelter/trays/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) + banned_objects = typecacheof(/obj/structure/stone_tile) + +/obj/item/survivalcapsule/fan + name = "airlock fan capsule" + desc = "A bluespace pod, containing a deployable fan, to keep the pressure in." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = WEIGHT_CLASS_TINY + template_id = "shelter_fan" + used = FALSE + +/datum/map_template/shelter/fan + name = "Airlock fan deployer" + shelter_id = "shelter_fan" + description = "A contained and interconnectable botany pod." + mappath = "_maps/bubber/pods/shelter_fan.dmm" + +/datum/map_template/shelter/fan/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) + banned_objects = typecacheof(/obj/structure/stone_tile) + +/obj/item/survivalcapsule/o2 + name = "oxygen harvesting capsule" + desc = "A bluespace pod, containing a small pumping station, to harvest breathable O2." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = WEIGHT_CLASS_TINY + template_id = "shelter_o2" + used = FALSE + +/datum/map_template/shelter/o2 + name = "o2 harvester deployer" + shelter_id = "shelter_o2" + description = "A contained O2 harvesting pod, for planetary use." + mappath = "_maps/bubber/pods/shelter_o2.dmm" + +/datum/map_template/shelter/o2/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) + banned_objects = typecacheof(/obj/structure/stone_tile) + +/obj/item/survivalcapsule/kitchen + name = "deployable kitchen capsule" + desc = "A bluespace pod, containing a kitchen." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = WEIGHT_CLASS_TINY + template_id = "shelter_kitchen" + used = FALSE + +/datum/map_template/shelter/kitchen + name = "kitchen deployer" + shelter_id = "shelter_kitchen" + description = "A contained kitchen." + mappath = "_maps/bubber/pods/shelter_kitchen.dmm" + +/datum/map_template/shelter/kitchen/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) + banned_objects = typecacheof(/obj/structure/stone_tile) + +/obj/item/survivalcapsule/cabin + name = "deployable comfort capsule" + desc = "A bluespace pod, containing a wooden cabin." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = WEIGHT_CLASS_TINY + template_id = "shelter_cabin" + used = FALSE + +/datum/map_template/shelter/cabin + name = "comfort cabin deployer" + shelter_id = "shelter_cabin" + description = "A contained comfort cabin." + mappath = "_maps/bubber/pods/shelter_cabin.dmm" + +/datum/map_template/shelter/cabin/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) + banned_objects = typecacheof(/obj/structure/stone_tile) + +/obj/item/survivalcapsule/threebythree + name = "deployable small emtpy capsule" + desc = "A bluespace pod, containing an empty 3x3 capsule." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = WEIGHT_CLASS_TINY + template_id = "shelter_threebythree" + used = FALSE + +/datum/map_template/shelter/threebythree + name = "small capsule deployer" + shelter_id = "shelter_threebythree" + description = "A contained small capsule." + mappath = "_maps/bubber/pods/shelter_3x3.dmm" + +/datum/map_template/shelter/threebythree/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) + banned_objects = typecacheof(/obj/structure/stone_tile) + +/obj/item/survivalcapsule/sixbysix + name = "deployable large emtpy capsule" + desc = "A bluespace pod, containing an empty 6x6 capsule." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = WEIGHT_CLASS_TINY + template_id = "shelter_sixbysix" + used = FALSE + +/datum/map_template/shelter/sixbysix + name = "large capsule deployer" + shelter_id = "shelter_sixbysix" + description = "A contained large capsule." + mappath = "_maps/bubber/pods/shelter_6x6.dmm" + +/datum/map_template/shelter/sixbysix/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) + banned_objects = typecacheof(/obj/structure/stone_tile) + +/datum/armament_entry/company_import/nri_surplus/misc/botanypod + item_type = /obj/item/survivalcapsule/botany + cost = PAYCHECK_COMMAND * 4 + +/datum/armament_entry/company_import/nri_surplus/misc/botanytrayspod + item_type = /obj/item/survivalcapsule/trays + cost = PAYCHECK_COMMAND * 2 + +/datum/armament_entry/company_import/nri_surplus/misc/kitchenpod + item_type = /obj/item/survivalcapsule/kitchen + cost = PAYCHECK_COMMAND * 4 + +/datum/armament_entry/company_import/nri_surplus/misc/o2pod + item_type = /obj/item/survivalcapsule/o2 + cost = PAYCHECK_COMMAND * 4 + +/datum/armament_entry/company_import/nri_surplus/misc/fanpod + item_type = /obj/item/survivalcapsule/fan + cost = PAYCHECK_COMMAND * 1 + +/datum/armament_entry/company_import/nri_surplus/misc/threebythree + item_type = /obj/item/survivalcapsule/threebythree + cost = PAYCHECK_COMMAND * 1 + +/datum/armament_entry/company_import/nri_surplus/misc/sixbysix + item_type = /obj/item/survivalcapsule/sixbysix + cost = PAYCHECK_COMMAND * 2 + +/datum/armament_entry/company_import/nri_surplus/misc/cabin + item_type = /obj/item/survivalcapsule/cabin + cost = PAYCHECK_COMMAND * 2 diff --git a/modular_zubbers/code/modules/mining/shelters.dm b/modular_zubbers/code/modules/mining/shelters.dm index 5a5f077534d58..3cf0e55675be7 100644 --- a/modular_zubbers/code/modules/mining/shelters.dm +++ b/modular_zubbers/code/modules/mining/shelters.dm @@ -5,7 +5,7 @@ built-in cameras, medical records, PDA server spying and a \ fax machine! Order now, and we'll throw in a photocopier, \ absolutely free!" - mappath = "_maps/templates/listeningbasics.dmm" + mappath = "_maps/bubber/pods/listeningbasics.dmm" /datum/map_template/shelter/sauna name = "luxury hot tub and sauna survival pod" @@ -13,7 +13,7 @@ description = "A cozy, heated, easily deployable luxury sauna when the heat, ash, and death of lavaland becomes too much. \ Has a bult in personal locker space and dressing room to stow your equipment. \ Requires a 10x10 space clear of obsticals. Warning: Deployment is rapid and explosive!" - mappath = "_maps/templates/shelter_s.dmm" + mappath = "_maps/bubber/pods/shelter_s.dmm" /datum/map_template/shelter/sauna/New() . = ..() @@ -25,7 +25,7 @@ shelter_id = "shelter_delta" description = "An emergency medical pod, comes with stasis beds and surgical suites. \ Deploy to prevent death." - mappath = "_maps/templates/shelter_4.dmm" + mappath = "_maps/bubber/pods/shelter_4.dmm" /datum/map_template/shelter/delta/New() . = ..() @@ -36,7 +36,7 @@ name = "Shelter Echo" shelter_id = "shelter_echo" description = "A pod for harvesting geysers" - mappath = "_maps/templates/shelter_5.dmm" + mappath = "_maps/bubber/pods/shelter_5.dmm" /datum/map_template/shelter/echo/New() . = ..() From 4efcda104db7f1a32399be26ad3975d6cdc1b065 Mon Sep 17 00:00:00 2001 From: Bubberbot <151680451+Bubberbot@users.noreply.github.com> Date: Sun, 14 Jul 2024 17:16:31 +0200 Subject: [PATCH 4/6] Automatic changelog for PR #1695 [ci skip] --- html/changelogs/AutoChangeLog-pr-1695.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1695.yml diff --git a/html/changelogs/AutoChangeLog-pr-1695.yml b/html/changelogs/AutoChangeLog-pr-1695.yml new file mode 100644 index 0000000000000..b8a4e498b947d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1695.yml @@ -0,0 +1,4 @@ +author: "xXPawnStarrXx" +delete-after: True +changes: + - rscadd: "Added new pods!" \ No newline at end of file From aafee1047a07f9f05c1f8bbcb83cfd9c713e4711 Mon Sep 17 00:00:00 2001 From: Cursor <102828457+theselfish@users.noreply.github.com> Date: Sun, 14 Jul 2024 20:16:24 +0100 Subject: [PATCH 5/6] Bunnygedon: Adding Monke Bunny Outfits (#1784) ## About The Pull Request ![image](https://github.com/user-attachments/assets/e4ff7a58-7550-43d1-ae10-a6052c568743) Cultural Appropriation. Ears were later fixed. ## Why It's Good For The Game Bunny good. Customization good. Drip amazing. ## Proof Of Testing ## Changelog :cl: MonkeStation (sprites) TheSelfish (Port) add: Multiple new Bunny Outfits are in the vendors now! /:cl: --- .../bunny_stuff/bowtie_collar.json | 30 +++++ .../bunny_stuff/bowtie_collar_worn.json | 30 +++++ .../json_configs/bunny_stuff/bunnysuit.json | 28 +++++ .../bunny_stuff/bunnysuit_worn.json | 59 ++++++++++ .../bunny_stuff/playbunny_ears.json | 10 ++ .../bunny_stuff/playbunny_ears_worn.json | 10 ++ .../json_configs/bunny_stuff/tailcoat.json | 10 ++ .../bunny_stuff/tailcoat_bar.json | 16 +++ .../bunny_stuff/tailcoat_bar_worn.json | 16 +++ .../bunny_stuff/tailcoat_worn.json | 10 ++ .../code/modules/GAGS/greyscale_configs.dm | 51 ++++++++ .../code/modules/clothing/head/helmet.dm | 58 ++++++++++ .../code/modules/clothing/neck/neck.dm | 99 ++++++++++++++++ .../code/modules/clothing/outfits/bunny.dm | 101 ++++++++++++++++ .../code/modules/clothing/suits/jacket.dm | 109 ++++++++++++++++++ .../code/modules/clothing/under/misc.dm | 87 ++++++++++++++ .../code/modules/vending/clothmate.dm | 3 +- .../code/modules/vending/comdrobe.dm | 4 + .../code/modules/vending/lustwish.dm | 11 ++ .../code/modules/vending/wardrobe.dm | 46 ++++++++ .../icons/mob/clothing/head/bunnyears.dmi | Bin 0 -> 1509 bytes .../icons/mob/clothing/neck/neck.dmi | Bin 0 -> 896 bytes .../icons/mob/clothing/suits/jacket.dmi | Bin 12305 -> 21449 bytes .../icons/mob/clothing/under/costume.dmi | Bin 0 -> 9907 bytes .../icons/obj/clothing/head/hats.dmi | Bin 1539 -> 2316 bytes .../icons/obj/clothing/neck/neck.dmi | Bin 0 -> 1145 bytes .../icons/obj/clothing/suits/jacket.dmi | Bin 458 -> 1724 bytes .../icons/obj/clothing/under/costume.dmi | Bin 0 -> 2564 bytes tgstation.dme | 2 + 29 files changed, 789 insertions(+), 1 deletion(-) create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar.json create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar_worn.json create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit.json create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit_worn.json create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears.json create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears_worn.json create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat.json create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar.json create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar_worn.json create mode 100644 modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_worn.json create mode 100644 modular_zubbers/code/modules/clothing/neck/neck.dm create mode 100644 modular_zubbers/code/modules/clothing/outfits/bunny.dm create mode 100644 modular_zubbers/icons/mob/clothing/head/bunnyears.dmi create mode 100644 modular_zubbers/icons/mob/clothing/neck/neck.dmi create mode 100644 modular_zubbers/icons/mob/clothing/under/costume.dmi create mode 100644 modular_zubbers/icons/obj/clothing/neck/neck.dmi create mode 100644 modular_zubbers/icons/obj/clothing/under/costume.dmi diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar.json new file mode 100644 index 0000000000000..d777ec66b9b06 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar.json @@ -0,0 +1,30 @@ +{ + "bowtie_collar_tied": [ + { + "type": "icon_state", + "icon_state": "bowtie_collar_base_tied", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bowtie_collar_bowtie_tied", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "bowtie_collar_untied": [ + { + "type": "icon_state", + "icon_state": "bowtie_collar_base_untied", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bowtie_collar_bowtie_untied", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar_worn.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar_worn.json new file mode 100644 index 0000000000000..d777ec66b9b06 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar_worn.json @@ -0,0 +1,30 @@ +{ + "bowtie_collar_tied": [ + { + "type": "icon_state", + "icon_state": "bowtie_collar_base_tied", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bowtie_collar_bowtie_tied", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "bowtie_collar_untied": [ + { + "type": "icon_state", + "icon_state": "bowtie_collar_base_untied", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bowtie_collar_bowtie_untied", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit.json new file mode 100644 index 0000000000000..90e175b7775c2 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit.json @@ -0,0 +1,28 @@ +{ + "playbunny": [ + { + "type": "icon_state", + "icon_state": "playbunny_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_cuffs", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_stockings", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit_worn.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit_worn.json new file mode 100644 index 0000000000000..d93b2040562d5 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit_worn.json @@ -0,0 +1,59 @@ +{ + "playbunny": [ + { + "type": "icon_state", + "icon_state": "playbunny_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_cuffs", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_stockings", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_tail", + "blend_mode": "overlay" + } + ], + "playbunny_d": [ + { + "type": "icon_state", + "icon_state": "playbunny_base_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_cuffs", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "playbunny_stockings", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears.json new file mode 100644 index 0000000000000..ba2755740171e --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears.json @@ -0,0 +1,10 @@ +{ + "playbunny_ears": [ + { + "type": "icon_state", + "icon_state": "playbunny_ears", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears_worn.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears_worn.json new file mode 100644 index 0000000000000..ba2755740171e --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears_worn.json @@ -0,0 +1,10 @@ +{ + "playbunny_ears": [ + { + "type": "icon_state", + "icon_state": "playbunny_ears", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat.json new file mode 100644 index 0000000000000..0ccf8d62b3d66 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat.json @@ -0,0 +1,10 @@ +{ + "tailcoat": [ + { + "type": "icon_state", + "icon_state": "tailcoat", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar.json new file mode 100644 index 0000000000000..41418598725f4 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar.json @@ -0,0 +1,16 @@ +{ + "tailcoat_bar": [ + { + "type": "icon_state", + "icon_state": "tailcoat_bar_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "tailcoat_bar_tail", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar_worn.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar_worn.json new file mode 100644 index 0000000000000..41418598725f4 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar_worn.json @@ -0,0 +1,16 @@ +{ + "tailcoat_bar": [ + { + "type": "icon_state", + "icon_state": "tailcoat_bar_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "tailcoat_bar_tail", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_worn.json b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_worn.json new file mode 100644 index 0000000000000..0ccf8d62b3d66 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_worn.json @@ -0,0 +1,10 @@ +{ + "tailcoat": [ + { + "type": "icon_state", + "icon_state": "tailcoat", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_zubbers/code/modules/GAGS/greyscale_configs.dm b/modular_zubbers/code/modules/GAGS/greyscale_configs.dm index b533e0de1f6aa..b137fde13531d 100644 --- a/modular_zubbers/code/modules/GAGS/greyscale_configs.dm +++ b/modular_zubbers/code/modules/GAGS/greyscale_configs.dm @@ -11,3 +11,54 @@ name = "Ring Bell Collar (Worn)" json_config = 'modular_skyrat/modules/GAGS/json_configs/collar/ringbell_worn.json' +//Bunny stuff, sprites from MonkieStation + +/datum/greyscale_config/bunnysuit + name = "Bunny Suit" + icon_file = 'modular_zubbers/icons/obj/clothing/under/costume.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit.json' + +/datum/greyscale_config/bunnysuit_worn + name = "Worn Bunny Suit" + icon_file = 'modular_zubbers/icons/mob/clothing/under/costume.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bunnysuit_worn.json' + +/datum/greyscale_config/tailcoat + name = "Tailcoat" + icon_file = 'modular_zubbers/icons/obj/clothing/suits/jacket.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat.json' + +/datum/greyscale_config/tailcoat_worn + name = "Worn Tailcoat" + icon_file = 'modular_zubbers/icons/mob/clothing/suits/jacket.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_worn.json' + +/datum/greyscale_config/tailcoat_bar + name = "Bartender's Tailcoat" + icon_file = 'modular_zubbers/icons/obj/clothing/suits/jacket.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar.json' + +/datum/greyscale_config/tailcoat_bar_worn + name = "Worn Bartender's Tailcoat" + icon_file = 'modular_zubbers/icons/mob/clothing/suits/jacket.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/tailcoat_bar_worn.json' + +/datum/greyscale_config/bowtie_collar + name = "Bowtie Collar" + icon_file = 'modular_zubbers/icons/mob/clothing/neck/neck.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar.json' + +/datum/greyscale_config/bowtie_collar_worn + name = "Worn Bowtie Collar" + icon_file = 'modular_zubbers/icons/mob/clothing/neck/neck.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/bowtie_collar_worn.json' + +/datum/greyscale_config/playbunnyears + name = "Playbunny Ears" + icon_file = 'modular_zubbers/icons/obj/clothing/head/hats.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears.json' + +/datum/greyscale_config/playbunnyears_worn + name = "Worn Playbunny Ears" + icon_file = 'modular_zubbers/icons/mob/clothing/head/bunnyears.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears_worn.json' diff --git a/modular_zubbers/code/modules/clothing/head/helmet.dm b/modular_zubbers/code/modules/clothing/head/helmet.dm index ba654bece9d39..522681adf849e 100644 --- a/modular_zubbers/code/modules/clothing/head/helmet.dm +++ b/modular_zubbers/code/modules/clothing/head/helmet.dm @@ -62,3 +62,61 @@ worn_icon = 'modular_zubbers/icons/mob/clothing/head/hats.dmi' icon_state = "clussy_wig" flags_inv = HIDEHAIR + +//Bunny Ears from Monkee. + +/obj/item/clothing/head/playbunnyears + name = "bunny ears headband" + desc = "A pair of bunny ears attached to a headband. One of the ears is already crooked." + icon = 'modular_zubbers/icons/obj/clothing/head/hats.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/head/bunnyears.dmi' + icon_state = "playbunny_ears" + greyscale_colors = "#39393f" + greyscale_config = /datum/greyscale_config/playbunnyears + greyscale_config_worn = /datum/greyscale_config/playbunnyears_worn + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/playbunnyears/syndicate + name = "blood-red bunny ears headband" + desc = "An unusually suspicious pair of bunny ears attached to a headband. The headband looks reinforced with plasteel... but why?" + icon_state = "syndibunny_ears" + clothing_flags = SNUG_FIT + armor_type = /datum/armor/head_helmet + greyscale_colors = null + greyscale_config = null + greyscale_config_worn = null + +/obj/item/clothing/head/playbunnyears/syndicate/fake + armor_type = /datum/armor/none + +/obj/item/clothing/head/playbunnyears/centcom + name = "centcom bunny ears headband" + desc = "A pair of very professional bunny ears attached to a headband. The ears themselves came from an endangered species of green rabbits." + icon_state = "playbunny_ears_centcom" + greyscale_colors = null + greyscale_config = null + greyscale_config_worn = null + +/obj/item/clothing/head/playbunnyears/british + name = "british bunny ears headband" + desc = "A pair of classy bunny ears attached to a headband. Worn to honor the crown." + icon_state = "playbunny_ears_brit" + greyscale_colors = null + greyscale_config = null + greyscale_config_worn = null + +/obj/item/clothing/head/playbunnyears/communist + name = "really red bunny ears headband" + desc = "A pair of red and gold bunny ears attached to a headband. Commonly used by any collectivizing bunny waiters." + icon_state = "playbunny_ears_communist" + greyscale_colors = null + greyscale_config = null + greyscale_config_worn = null + +/obj/item/clothing/head/playbunnyears/usa + name = "usa bunny ears headband" + desc = "A pair of star spangled bunny ears attached to a headband. The headband of a true patriot." + icon_state = "playbunny_ears_usa" + greyscale_colors = null + greyscale_config = null + greyscale_config_worn = null diff --git a/modular_zubbers/code/modules/clothing/neck/neck.dm b/modular_zubbers/code/modules/clothing/neck/neck.dm new file mode 100644 index 0000000000000..d5e8793c439a7 --- /dev/null +++ b/modular_zubbers/code/modules/clothing/neck/neck.dm @@ -0,0 +1,99 @@ +//Override thing from Monkey. Lets us tie bowties. + +/obj/item/clothing/neck/tie + var/tie_type = "tie_greyscale" + +/obj/item/clothing/neck/tie/update_icon() + . = ..() + // Normal strip & equip delay, along with 2 second self equip since you need to squeeze your head through the hole. + if(is_tied) + icon_state = "[tie_type]_tied" + strip_delay = 4 SECONDS + equip_delay_other = 4 SECONDS + equip_delay_self = 2 SECONDS + else // Extremely quick strip delay, it's practically a ribbon draped around your neck + icon_state = "[tie_type]_untied" + strip_delay = 1 SECONDS + equip_delay_other = 1 SECONDS + equip_delay_self = 0 + +//Bunny Stuff from Monkee + +/obj/item/clothing/neck/tie/bunnytie + name = "bowtie collar" + desc = "A fancy tie that includes a collar. Looking snazzy!" + icon = 'modular_zubbers/icons/obj/clothing/neck/neck.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/neck/neck.dmi' + icon_state = "bowtie_collar_tied" + tie_type = "bowtie_collar" + greyscale_colors = "#ffffff#39393f" + greyscale_config = /datum/greyscale_config/bowtie_collar + greyscale_config_worn = /datum/greyscale_config/bowtie_collar_worn + flags_1 = IS_PLAYER_COLORABLE_1 + alternate_worn_layer = UNDER_SUIT_LAYER + +/obj/item/clothing/neck/tie/bunnytie/tied + is_tied = TRUE + +/obj/item/clothing/neck/tie/bunnytie/syndicate + name = "blood-red bowtie collar" + desc = "A fancy tie that includes a red collar. Looking sinister..." + icon_state = "bowtie_collar_syndi_tied" + tie_type = "bowtie_collar_syndi" + armor_type = /datum/armor/large_scarf_syndie + tie_timer = 2 SECONDS //Tactical tie + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/neck/tie/bunnytie/syndicate/tied + is_tied = TRUE + +/obj/item/clothing/neck/tie/bunnytie/magician + name = "magician's bowtie collar" + desc = "A fancy gold tie that includes a collar. Looking magical!" + icon_state = "bowtie_collar_wiz_tied" + tie_type = "bowtie_collar_wiz" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + custom_price = null + +/obj/item/clothing/neck/tie/bunnytie/magician/tied + is_tied = TRUE + +/obj/item/clothing/neck/tie/bunnytie/centcom + name = "centcom bowtie collar" + desc = "A fancy gold tie that includes a collar. Looking in charge!" + icon_state = "bowtie_collar_centcom_tied" + tie_type = "bowtie_collar_centcom" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/neck/tie/bunnytie/centcom/tied + is_tied = TRUE + +/obj/item/clothing/neck/tie/bunnytie/communist + name = "really red bowtie collar" + desc = "A simple red tie that includes a collar. Looking egalitarian!" + icon_state = "bowtie_collar_communist_tied" + tie_type = "bowtie_collar_communist" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/neck/tie/bunnytie/communist/tied + is_tied = TRUE + +/obj/item/clothing/neck/tie/bunnytie/blue + name = "blue bowtie collar" + desc = "A simple blue tie that includes a collar. Looking imperialist!" + icon_state = "bowtie_collar_blue_tied" + tie_type = "bowtie_collar_blue" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/neck/tie/bunnytie/blue/tied + is_tied = TRUE diff --git a/modular_zubbers/code/modules/clothing/outfits/bunny.dm b/modular_zubbers/code/modules/clothing/outfits/bunny.dm new file mode 100644 index 0000000000000..b5b6e3505ae05 --- /dev/null +++ b/modular_zubbers/code/modules/clothing/outfits/bunny.dm @@ -0,0 +1,101 @@ +/datum/outfit/bunny_waiter + name = "Bunny Waiter" + uniform = /obj/item/clothing/under/costume/playbunny + back = /obj/item/storage/backpack/satchel + box = /obj/item/storage/box/survival + suit = /obj/item/clothing/suit/jacket/tailcoat + gloves = /obj/item/clothing/gloves/color/white + shoes = /obj/item/clothing/shoes/high_heels + head = /obj/item/clothing/head/playbunnyears + neck = /obj/item/clothing/neck/tie/bunnytie/tied + ears = /obj/item/radio/headset/headset_srv + id = /obj/item/card/id/advanced + id_trim = /datum/id_trim/job/bartender + r_pocket = /obj/item/reagent_containers/cup/rag + l_pocket = /obj/item/toy/cards/deck + l_hand = /obj/item/storage/bag/tray + undershirt = "Nude" + +/datum/outfit/bunny_waiter/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/card/id/W = H.wear_id + W.registered_name = H.real_name + W.update_label() + W.update_icon() + return ..() + +/datum/outfit/bunny_waiter/syndicate + name = "Syndicate Bunny Assassin" + uniform = /obj/item/clothing/under/syndicate/syndibunny + suit = /obj/item/clothing/suit/jacket/tailcoat/syndicate + shoes = /obj/item/clothing/shoes/high_heels + neck = /obj/item/clothing/neck/tie/bunnytie/syndicate/tied + ears = /obj/item/radio/headset/syndicate + id = /obj/item/card/id/advanced/chameleon + suit_store = /obj/item/gun/ballistic/automatic/pistol/suppressed + l_pocket = /obj/item/toy/cards/deck/syndicate + +/datum/outfit/bunny_waiter/british_waiter + name = "Bunny Waiter (British)" + uniform = /obj/item/clothing/under/costume/playbunny/british + suit = /obj/item/clothing/suit/jacket/tailcoat/british + shoes = /obj/item/clothing/shoes/high_heels + head = /obj/item/clothing/head/playbunnyears/british + neck = /obj/item/clothing/neck/tie/bunnytie/blue + +/datum/outfit/bunny_waiter/communist_waiter + name = "Bunny Waiter (Communist)" + uniform = /obj/item/clothing/under/costume/playbunny/communist + suit = /obj/item/clothing/suit/jacket/tailcoat/communist + shoes = /obj/item/clothing/shoes/high_heels + head = /obj/item/clothing/head/playbunnyears/communist + neck = /obj/item/clothing/neck/tie/bunnytie/communist + +/datum/outfit/bunny_waiter/usa_waiter + name = "Bunny Waiter (USA)" + uniform = /obj/item/clothing/under/costume/playbunny/usa + suit = /obj/item/clothing/suit/jacket/tailcoat/usa + shoes = /obj/item/clothing/shoes/high_heels + head = /obj/item/clothing/head/playbunnyears/usa + neck = /obj/item/clothing/neck/tie/bunnytie/blue + +/datum/outfit/wizard/bunny_magician + name = "Bunny Magician" + uniform = /obj/item/clothing/under/costume/playbunny/magician + suit = /obj/item/clothing/suit/wizrobe/magician + back = /obj/item/storage/backpack/satchel/leather + head = /obj/item/clothing/head/playbunnyears + shoes = /obj/item/clothing/shoes/sandal + neck = /obj/item/clothing/neck/tie/bunnytie/magician/tied + l_hand = /obj/item/gun/magic/wand/nothing + l_pocket = /obj/item/toy/cards/deck/tarot + undershirt = "Nude" + +/datum/outfit/centcom/centcom_bunny + name = "Bunny Waiter (CentCom)" + uniform = /obj/item/clothing/under/costume/playbunny/centcom + back = /obj/item/storage/backpack/satchel/leather + box = /obj/item/storage/box/survival + suit = /obj/item/clothing/suit/jacket/tailcoat/centcom + gloves = /obj/item/clothing/gloves/color/white + shoes = /obj/item/clothing/shoes/sandal + head = /obj/item/clothing/head/playbunnyears/centcom + neck = /obj/item/clothing/neck/tie/bunnytie/centcom/tied + ears = /obj/item/radio/headset/headset_cent + id = /obj/item/card/id/advanced/centcom + r_pocket = /obj/item/reagent_containers/cup/rag + l_pocket = /obj/item/toy/cards/deck + l_hand = /obj/item/storage/bag/tray + undershirt = "Nude" + +/datum/outfit/centcom/centcom_bunny/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/card/id/W = H.wear_id + W.registered_name = H.real_name + W.update_label() + W.update_icon() + return ..() diff --git a/modular_zubbers/code/modules/clothing/suits/jacket.dm b/modular_zubbers/code/modules/clothing/suits/jacket.dm index 8bd46b11310b5..126dfb3caf6f2 100644 --- a/modular_zubbers/code/modules/clothing/suits/jacket.dm +++ b/modular_zubbers/code/modules/clothing/suits/jacket.dm @@ -63,3 +63,112 @@ worn_icon = 'modular_zubbers/icons/donator/skyymed_worn.dmi' armor_type = /datum/armor/toggle_labcoat toggle_noun = "zipper" + +//Monke Station Bunnies + +/obj/item/clothing/suit/jacket/tailcoat //parent type + name = "tailcoat" + desc = "A coat usually worn by bunny themed waiters and the like." + worn_icon = 'modular_zubbers/icons/mob/clothing/suits/jacket.dmi' + icon = 'modular_zubbers/icons/obj/clothing/suits/jacket.dmi' + icon_state = "tailcoat" + greyscale_colors = "#39393f" + greyscale_config = /datum/greyscale_config/tailcoat + greyscale_config_worn = /datum/greyscale_config/tailcoat_worn + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/suit/jacket/tailcoat/bartender + name = "bartender's tailcoat" + desc = "A coat usually worn by bunny themed bartenders. It has an interior holster for firearms and some extra padding for minor protection." + icon_state = "tailcoat_bar" + greyscale_colors = "#39393f#ffffff" + greyscale_config = /datum/greyscale_config/tailcoat_bar + greyscale_config_worn = /datum/greyscale_config/tailcoat_bar_worn + armor_type = /datum/armor/suit_armor + + +/obj/item/clothing/suit/jacket/tailcoat/bartender/Initialize(mapload) //so bartenders can use cram their shotgun inside + . = ..() + allowed += list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/gun/ballistic, + /obj/item/gun/energy, + ) + +/obj/item/clothing/suit/jacket/tailcoat/syndicate + name = "suspicious tailcoat" + desc = "A oddly intimidating coat usually worn by bunny themed assassins. It's reinforced with some extremely flexible lightweight alloy. How much did they pay for this?" + icon_state = "tailcoat_syndi" + armor_type = /datum/armor/wintercoat_syndicate + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + + +/obj/item/clothing/suit/jacket/tailcoat/syndicate/Initialize(mapload) + . = ..() + allowed += list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/gun/ballistic, + /obj/item/gun/energy, + /obj/item/restraints/handcuffs, + /obj/item/knife/combat, + /obj/item/melee/baton, + ) + +/obj/item/clothing/suit/jacket/tailcoat/syndicate/fake + armor_type = /datum/armor/none + +/obj/item/clothing/suit/wizrobe/magician //Not really a robe but it's MAGIC + name = "magician's tailcoat" + desc = "A magnificent, gold-lined tailcoat that seems to radiate power." + worn_icon = 'modular_zubbers/icons/mob/clothing/suits/jacket.dmi' + icon = 'modular_zubbers/icons/obj/clothing/suits/jacket.dmi' + icon_state = "tailcoat_wiz" + inhand_icon_state = null + flags_inv = null + +/obj/item/clothing/suit/jacket/tailcoat/centcom + name = "Centcom tailcoat" + desc = "An official coat usually worn by bunny themed executives. The inside is lined with comfortable yet tasteful bunny fluff." + icon_state = "tailcoat_centcom" + armor_type = /datum/armor/armor_centcom_formal_nt_consultant + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + + +/obj/item/clothing/suit/jacket/tailcoat/british + name = "british flag tailcoat" + desc = "A tailcoat emblazoned with the Union Jack. Perfect attire for teatime." + icon_state = "tailcoat_brit" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + + +/obj/item/clothing/suit/jacket/tailcoat/communist + name = "really red tailcoat" + desc = "A red tailcoat emblazoned with a golden star. The official uniform of the Bunny Waiter Union." + icon_state = "tailcoat_communist" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/suit/jacket/tailcoat/usa + name = "stars tailcoat" + desc = "A vintage coat worn by the 5th bunny battalion during the Revolutionary War. Smooth-bore musket not included." + icon_state = "tailcoat_stars" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/suit/jacket/tailcoat/plasmaman + name = "purple tailcoat" + desc = "A purple coat that looks to be the same purple used in several plasmaman evirosuits." + icon_state = "tailcoat_plasma" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null diff --git a/modular_zubbers/code/modules/clothing/under/misc.dm b/modular_zubbers/code/modules/clothing/under/misc.dm index 76d0a4b80d0ac..68cc483e0dc14 100644 --- a/modular_zubbers/code/modules/clothing/under/misc.dm +++ b/modular_zubbers/code/modules/clothing/under/misc.dm @@ -7,3 +7,90 @@ icon = 'modular_zubbers/icons/obj/clothing/suits.dmi' worn_icon = 'modular_zubbers/icons/mob/clothing/suits.dmi' body_parts_covered = CHEST|LEGS|GROIN + +/obj/item/clothing/under/costume/playbunny + name = "bunny suit" + desc = "The staple of any bunny themed waiters and the like. It has a little cottonball tail too." + icon = 'modular_zubbers/icons/obj/clothing/under/costume.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/under/costume.dmi' + icon_state = "playbunny" + greyscale_colors = "#39393f#39393f#ffffff#87502e" + greyscale_config = /datum/greyscale_config/bunnysuit + greyscale_config_worn = /datum/greyscale_config/bunnysuit_worn + flags_1 = IS_PLAYER_COLORABLE_1 + body_parts_covered = CHEST|GROIN|LEGS + alt_covers_chest = TRUE + +/obj/item/clothing/under/costume/playbunny/Initialize(mapload) + . = ..() + + create_storage(storage_type = /datum/storage/pockets/tiny) + +/obj/item/clothing/under/syndicate/syndibunny //heh + name = "blood-red bunny suit" + desc = "The staple of any bunny themed syndicate assassins. Are those carbon nanotube stockings?" + icon = 'modular_zubbers/icons/obj/clothing/under/costume.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/under/costume.dmi' + icon_state = "syndibunny" + body_parts_covered = CHEST|GROIN|LEGS + +/obj/item/clothing/under/syndicate/syndibunny/Initialize(mapload) + . = ..() + + create_storage(storage_type = /datum/storage/pockets/small) + +/obj/item/clothing/under/syndicate/syndibunny/fake + armor_type = /datum/armor/clothing_under/none + +/obj/item/clothing/under/costume/playbunny/magician + name = "magician's bunny suit" + desc = "The staple of any bunny themed stage magician." + icon_state = "playbunny_wiz" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/under/costume/playbunny/magician/Initialize(mapload) + . = ..() + + create_storage(storage_type = /datum/storage/pockets/tiny/magician) + +/datum/storage/pockets/tiny/magician/New() //this is probably a good idea + . = ..() + var/static/list/exception_cache = typecacheof(list( + /obj/item/gun/magic/wand, + /obj/item/warp_whistle, + )) + exception_hold = exception_cache + +/obj/item/clothing/under/costume/playbunny/centcom + name = "centcom bunnysuit" + desc = "A modified Centcom version of a bunny outfit, using Lunarian technology to condense countless amounts of rabbits into a material that is extremely comfortable and light to wear." + icon_state = "playbunny_centcom" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/under/costume/playbunny/british + name = "british bunny suit" + desc = "The staple of any bunny themed monarchists. It has a little cottonball tail too." + icon_state = "playbunny_brit" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/under/costume/playbunny/communist + name = "really red bunny suit" + desc = "The staple of any bunny themed communists. It has a little cottonball tail too." + icon_state = "playbunny_communist" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/under/costume/playbunny/usa + name = "striped bunny suit" + desc = "A bunny outfit stitched together from several American flags. It has a little cottonball tail too." + icon_state = "playbunny_usa" + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null diff --git a/modular_zubbers/code/modules/vending/clothmate.dm b/modular_zubbers/code/modules/vending/clothmate.dm index c26fa2f4647fd..6b9871c3b7301 100644 --- a/modular_zubbers/code/modules/vending/clothmate.dm +++ b/modular_zubbers/code/modules/vending/clothmate.dm @@ -60,6 +60,7 @@ /obj/item/clothing/suit/short_coat = 5, /obj/item/clothing/suit/hooded/sigmarcoat = 5, /obj/item/clothing/suit/jacket/skyy = 5, + /obj/item/clothing/suit/jacket/tailcoat = 5, ), ), @@ -84,7 +85,7 @@ ) ) - zubbers_premium = list( //being here means you're artificially rare, congratulations + zubbers_premium = list( //being here means you're even more artificially rare, congratulations /obj/item/clothing/head/razurathhat = 2, /obj/item/clothing/suit/razurathcoat = 2, /obj/item/clothing/suit/hooded/colorblockhoodie = 2, diff --git a/modular_zubbers/code/modules/vending/comdrobe.dm b/modular_zubbers/code/modules/vending/comdrobe.dm index ee0f81a41a204..cedf08580740d 100644 --- a/modular_zubbers/code/modules/vending/comdrobe.dm +++ b/modular_zubbers/code/modules/vending/comdrobe.dm @@ -28,6 +28,10 @@ /obj/item/clothing/under/rank/nanotrasen_consultant/hubert = 1, /obj/item/clothing/head/razurathhat = 1, /obj/item/clothing/suit/razurathcoat = 1, + /obj/item/clothing/head/playbunnyears/centcom = 1, + /obj/item/clothing/neck/tie/bunnytie/centcom = 1, + /obj/item/clothing/suit/jacket/tailcoat/centcom = 1, + /obj/item/clothing/under/costume/playbunny/centcom = 1, ) access_lists["[ACCESS_COMMAND]"] += list( diff --git a/modular_zubbers/code/modules/vending/lustwish.dm b/modular_zubbers/code/modules/vending/lustwish.dm index 0b14b52e0cc48..2678f9f644f72 100644 --- a/modular_zubbers/code/modules/vending/lustwish.dm +++ b/modular_zubbers/code/modules/vending/lustwish.dm @@ -8,6 +8,17 @@ /obj/item/clothing/neck/inferno_collar = 8, /obj/item/clothing/neck/flower_collar = 8, ) + ), + + list( + "name" = "Outfits", + "icon" = FA_ICON_SHIRT, + "products" = list( + /obj/item/clothing/head/playbunnyears = 6, + /obj/item/clothing/neck/tie/bunnytie = 6, + /obj/item/clothing/under/costume/playbunny = 6, + /obj/item/clothing/suit/jacket/tailcoat = 6, + ) ) ) diff --git a/modular_zubbers/code/modules/vending/wardrobe.dm b/modular_zubbers/code/modules/vending/wardrobe.dm index 58bb1b8d3966a..58d1ec0fac2c7 100644 --- a/modular_zubbers/code/modules/vending/wardrobe.dm +++ b/modular_zubbers/code/modules/vending/wardrobe.dm @@ -31,6 +31,25 @@ /obj/item/clothing/head/costume/strigihat = 3, /obj/item/clothing/head/anubite = 3, /obj/item/clothing/under/costume/dragon_maid = 3, + /obj/item/clothing/head/playbunnyears = 6, + /obj/item/clothing/neck/tie/bunnytie = 6, + /obj/item/clothing/under/costume/playbunny = 6, + /obj/item/clothing/suit/jacket/tailcoat = 6, + /obj/item/clothing/neck/tie/bunnytie/magician = 6, + /obj/item/clothing/under/costume/playbunny/magician = 6, + /obj/item/clothing/suit/wizrobe/magician = 6, + /obj/item/clothing/head/playbunnyears/british = 6, + /obj/item/clothing/neck/tie/bunnytie/blue = 6, + /obj/item/clothing/under/costume/playbunny/british = 6, + /obj/item/clothing/suit/jacket/tailcoat/british = 6, + /obj/item/clothing/head/playbunnyears/communist = 6, + /obj/item/clothing/neck/tie/bunnytie/communist = 6, + /obj/item/clothing/under/costume/playbunny/communist = 6, + /obj/item/clothing/suit/jacket/tailcoat/communist = 6, + /obj/item/clothing/head/playbunnyears/usa = 6, + /obj/item/clothing/under/costume/playbunny/usa = 6, + /obj/item/clothing/suit/jacket/tailcoat/usa = 6, + /obj/item/clothing/suit/jacket/tailcoat/plasmaman = 6, ), ), ) @@ -44,6 +63,10 @@ /obj/item/clothing/under/syndicate/skyrat/enclave = 3, /obj/item/clothing/under/syndicate/skyrat/enclave/officer = 3, /obj/item/clothing/under/rank/security/detective/cowboy/armorless = 3, + /obj/item/clothing/head/playbunnyears/syndicate/fake = 3, + /obj/item/clothing/neck/tie/bunnytie/syndicate = 3, //Armored but it's only Fire and Acid, not a balance concern + /obj/item/clothing/under/syndicate/syndibunny/fake = 3, + /obj/item/clothing/suit/jacket/tailcoat/syndicate/fake = 3, ) /obj/machinery/vending/wardrobe/medi_wardrobe @@ -82,3 +105,26 @@ zubbers_products = list( /obj/item/clothing/under/costume/dragon_maid = 3, ) + +/obj/machinery/vending/wardrobe/bar_wardrobe + zubbers_products = list( + /obj/item/clothing/suit/jacket/tailcoat/bartender = 2, + /obj/item/clothing/neck/tie/bunnytie = 2, + /obj/item/clothing/head/playbunnyears = 2, + /obj/item/clothing/under/costume/playbunny = 2, + ) + +/obj/machinery/vending/wardrobe/syndie_wardrobe + zubbers_products = list( + /obj/item/clothing/head/playbunnyears/syndicate = 3, + /obj/item/clothing/neck/tie/bunnytie/syndicate = 3, + /obj/item/clothing/under/syndicate/syndibunny = 3, + /obj/item/clothing/suit/jacket/tailcoat/syndicate = 3, + ) + +/obj/machinery/vending/magivend + zubbers_products = list( + /obj/item/clothing/neck/tie/bunnytie/magician = 3, + /obj/item/clothing/under/costume/playbunny/magician = 3, + /obj/item/clothing/suit/wizrobe/magician = 3, + ) diff --git a/modular_zubbers/icons/mob/clothing/head/bunnyears.dmi b/modular_zubbers/icons/mob/clothing/head/bunnyears.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d52ce91cd1e8848960ba6cf5fb70c12aa776ec1d GIT binary patch literal 1509 zcmVXr#>VQVMM&`K}7c(UlK${2~ za*`Y+8*aq^*Ko)rBz6rP0TMSv0~JjK804Zw$Z#dm8sN470004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6# za*U0*I5Sc+(=$pyG8SCLC5a`eK&DbbPGV(JXdQ{`%lT-6blJj#()s|G0SwgZ^`MJ5Jd6~r|Yb-5J#HB@9!PU^M@`K{LU`YCEVeUbAkB`$m}pJhNMsRj6|0`AtS)hDII zby?O98aOT!^xF>7|5sg|!qLl1bs(GX2;95VGQo1&LHhry>*;0qqS6g~>%c&@cu))+ zp@UN?GprA~fo~n;FLHsma}+LRhr2k}Uyh3E)BXgfrzJ=Q-rgg%OG^M2ARF*_hhY7C z7XskvV&IG>cq-55Gcu4%k7i)$?r6*(-lJSDy?TiXAM2l*{^|INZn!f;KAw)R=zjoY zZhr_Ngb+dqA%qY@2qAp-l$bo2uX1PhCtT12Rdi%H`nz+^q)Mn^NMo zX|iq@xV4QI&|I&;UE);AOLb5l)|MTGTV7u&(x!v-|ExEl!k_X|9mwXpUGNqGZRujs$nT(k znV)sOH~{INj<4uDKFF+)9nD04wcp72pxqfl2qAHh4}M>$H_rw?D-rK|9K=D5idC*p(5f`%^YL)%a19z)|aaKw^#+Y^8z|^HPV>b<3 z4uYThRad7lb?!J$MclUNhi*xsFhBAHAKMPbIOnO$yEecWC1M=nGSS~D;@kdQ9)p#udr^c(?Hmo6l1U`Pg3J&KMD-vxb3TkPyN0$=sN)oH=?PG#ly_?zftV2)}#N*o3- zx}*=z?)M3Xfq8`av4Qy^FLi`C#Q6@k(3CqpQeO}1_d)F*Qz!L<`9Zf%Vt(9{2c;n- z4&n|tn7TgXeje2C6Dnw+pCiieZ3puYy`3VuAM+jTp-FZ}YKKw#eX;@gIIwCSQT{Lu zxYuJwcbPm3bQK?~P@sOEIaU=~fV2e0gBd++7fM$UJ|EsAmb*04y)zzNIhhZZ^w@wo ze;8studH}FZnNXTm^frdGtmx@uk+pm*$5$o5JCtcgb+dq`DgeE@%}m2{2sqT00000 LNkvXXu0mjfK`Fcv literal 0 HcmV?d00001 diff --git a/modular_zubbers/icons/mob/clothing/neck/neck.dmi b/modular_zubbers/icons/mob/clothing/neck/neck.dmi new file mode 100644 index 0000000000000000000000000000000000000000..df8b70d34401d2dfe7500a3c3d1a23253b94da9e GIT binary patch literal 896 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K59&j)N$=mZil7LiNfKP}kkUo9(;=6b6mag1Z zQrOhQCALXNL0&=4($YSfK|oj6SVB^6d!^y4+s*g3**3WAKiet(|5bxwo|oHBw;eTN zE>l9qja50Mi=^|8h&s$>6f%FZ$o2pAf-+v26Dlev3REY_sQR)bx!ZxH7)e+ibr9m)mu95t?agX|1IcDMn=S`ml{VI zen@2KPBb|vwE5immJ8qNWJ)uvWf#WoI=RF^B1ua5sBH$fro7qClZ7X?e)ODXx^IqS zUkPjEIm!Dn$%i8L$;o`ZS2V|dO8LdYM|X`2_xSGJI{C22n%MszwpoX#2G_*DVb<4? z-fpXK;{pQ%6N9IVV@SoEw|5Wb-Et6Md$4t-VnBNXbE$^Fi{JZG#8+OIb-(4j;a9Ct zOxpALJEgB_GBP-1-THIY?C7sWnYXt^PGOc~er*N@S4FB-(t`IW7bM}1)H7n zn|axRVG9H^y7P8cMe6QOs=cc_{d8U|UxiG>-YKswZC|~gHhas;x%)Mz2mA5=zHFs0 zaBa8V8~@ieN;eWF-#+{&G%ECbJnPp`oBxu3=HyyHOgj)`lKcPG^?UE{@1F)Vqi+8J zv)t_G`KO;wxvYLqe}edmefRBeBv^l~Yqa}%_4Drq_w4`wX1$jt%?HtLAin$W2fH`r zM}H-5zyH3xz39N>10UknJ^!+ze!Km$Gvn6Bs=hG46!=j^AR)?Ds?M;_>y zfB)+?9L#+6ufeeQ>gVGN?Ck#kW!#^RaLn`5Uq4q_iof3e`Du~m{Zown%-7Es*)Dhg z`~0-+-R$T0LEbw2ujDj$%h%7AZ~V6dgXY0JV9;dm3Om1_?Q1qDXl6o!=FFk^V{+m> T$ISk006EUn)z4*}Q$iB}snnz# literal 0 HcmV?d00001 diff --git a/modular_zubbers/icons/mob/clothing/suits/jacket.dmi b/modular_zubbers/icons/mob/clothing/suits/jacket.dmi index 783d4d80198139572a94df3c1b11c74a9206903a..4211f5880c4ea4d05dbcef4adf72cff28de0c813 100644 GIT binary patch literal 21449 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%0DoY|%l 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 Guzvu-Cd!)t literal 12305 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 diff --git a/modular_zubbers/icons/mob/clothing/under/costume.dmi b/modular_zubbers/icons/mob/clothing/under/costume.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9ff05373a057ece87c9b7da82045685a015a5d22 GIT binary patch literal 9907 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 literal 0 HcmV?d00001 diff --git a/modular_zubbers/icons/obj/clothing/head/hats.dmi b/modular_zubbers/icons/obj/clothing/head/hats.dmi index 1f07b9c208391019f0db047ecbc05c8b00544402..2e065e4eafbb1157893771cd74b065151ec3fbb3 100644 GIT binary patch delta 2106 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 delta 1324 zcmV+{1=ISB5`zpSiBL{Q4GJ0x0000DNk~Le0001h0001B2m=5B0OF*IdjJ3ddXXiI zGpGOn!nzpL005MI04hfW6h{O)I5;*>aAI|j(_d)CDnG|ue%NJ`*kzP2E-^wuL|61!G!)MJm+Vve$&M=2>OlT`sEf7cumz*%<9Uxq}K zRWUC|JwtgL7cVI#Nil9pL06hSHf_LYBIct-=D}PG2@@S09xp91As`|}JbH;?6O{k} z00DGTPE!Ct=GbNc006goR9JLGWpiV4X>fFDZ*Bkpc$}5eI}XAy3c~3Q^ja#weswf1FZrdn!62k+Au#j z>^U=lgNbXPs3I(7;nB?oz!sco479X%oZW(Yz*>L7$!AkJj8^}rGq!i29D*e1layjW z4_e-VA_QqvOpf$+B6`Ugha@#4>3}wUx&S^8_9_#0c7mU>e-w3FeIDWsJocXsTpueR z000AYNklMIeF#F&8 zW(LgMnH^a={WOo9-NSk0d*2y`l_Y`SCQX1O8329W2uM;hpvyNkwY0RhHW>`}+S+Id zJa06%w|8_Hf18`{cXrYecwQnaG;wx7%cB*VIXj@`F%}JX7vI%@H<`M-yR9~xUT?R< z+8na1*PD8JdJKkMXD=gy=j~>*xv#I^)z66FdD8=nWnjQ+9dtWAv;>~Fn}>#mhet+6 zy)GXuf#+fV0L&j7ADo~j@I1^PhWU=k(J5*I&r8!}fBqOrPzUgQ7n$!M3F-iz$Mb6e z6K+)i&*S;EfGMvkfam`#kOa)s>#r9`0vz@FX^USofakl00-6ClZ=1FF{bW7_xK;Cc zUY3Uf0Wu!~ysG&eZ?id_v$KA`bsRD1o|&o7%d*QQ%YneiBx2O-aMb5vyvKtg9wKbF z$8$Z5fA{%N1mX60uD8K>4@$tOe_uQ=!+0M`z^IQm&yxjKGiVQ4p2rKUX3!q8JdXmZ zi=#i|d0uwa7Ds=^^E^6Z1iIz>+Lx=>3j_jzKp+qZ1UFF>h3SHG!8y2v!l5wpf94k= z3-j#p(HIcbijT+RtO|3F7MB)-kHgC=%i$1Xf54Nc&z`?{`ARciqk)o$ufkt~-XNG< zTUtxLPK8$9q!?SUo_@QrvGMNxIxC;-0J8zCe{*#e_JC@WQZl%O2&beJeZckyT;St2 zUB{x)SSEw6be~N?fz8c$Jdvf?Pf%ftkizfO?CeH9OJAg~k=-470bp+rT^R)w)By4o ze_8=VvX)P0KXQQY2a$cM&*k#pfP5}T|Gbh=5(tHH2v7q!1I&CWjdH)ECh1#-oW5K> z4-Mdwqo2hr>^&k8XYBxo!}JlpAEgg(tLpi`3FRba;{=`gu=1n*>#HuZ1ic>@2m}Iw zKp+qZ1pj~nhV73}fMd2lJp)b~&1W~jfB6~>aDD>~3WakNf6i)fd{RXDMOK5;vl7ZL z>26RsKQCl5=t}n|#bWhE_h+S2^`*A}u(!wl4)F5vCNK)1<>O7zS)g3L_yJs$%ldq! za`_XutW@fbzPgG`!w5 diff --git a/modular_zubbers/icons/obj/clothing/neck/neck.dmi b/modular_zubbers/icons/obj/clothing/neck/neck.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c84699d3b3fdc554847e5fc9dd7f03e5e6307c37 GIT binary patch literal 1145 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 So)^IY0000i#LIV&+aJGDfKi!&v&s2C__ z$i=FQS-6{%=-m0Vk0072GL_t(YiS3fh3PT|b zL^V-k;-mlnw~bQVH0h!gx^ci++ymp>!4R&leys>g@mmgnDd(IJz~hC8ipK*~a))a2DSJejCf_Yz8`wCU4ICa$1BagmZa_-9ftnXk zif*9h2B`8fFF-}hya0d)WIfJH-JCw~tE)fi2}HdIui3th0{{R307*qoM6N<$f^03h AumAu6 diff --git a/modular_zubbers/icons/obj/clothing/under/costume.dmi b/modular_zubbers/icons/obj/clothing/under/costume.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5634fbbea4652cbc918a75079d9d6ec5b7be6891 GIT binary patch literal 2564 zcmbVOcT|(f7XK0=M2sReh(d%Yq67(u(wj6X%1Q~%C0VLL2vtC80HuRUL^_Islt2sw zkS3w5i@-`1si9aF)+~f(1S0UhegD08-v0B>nLEEbznQsn@0ok&Ov+E!%nl1m2?79c z*!+sI4Txk=2ylL|AB%`E2cbT~&N0N;GuSL{4%mlUl z14g{Ujf}5=!st^P;-RTa<6#6pd(VyRfwhLh?y@%AVX@m~c#;k>H?6i}uLY z+(LGQFM2qi9@81tx0YFYNbif`1q%zqRXvfQRME-3XTb^u(A1U@)SyS%qW^GYKL8v& zWNvI|7hbqr=x=4~B=y^q)b0@rqa-JP>1KI8t_8LaVIg=dp_%>$K{Ug7%)O4pfIQHsX3)CJ|S+E_?m3^}8ZpAgt~v>sWNv{g7I%(#f0Ssg0Oq zPE1E+&biFOE~P$A=I7F7%`ZCNgNk|FJxz|vQJ4ti9H6Vj@_`1Xa+weSD~Tv!mgkhUj`Kf;tK;uRWvkGA|3sP{KL}X#S=RPGE+69w z$W6^Z`O$x{JBzen8^LR{YuRPxa9a!UAIMxvpWV- zQ+*!q+&(1lWOI)e)uw&(^-*bgH}JLnvXm%>G+UDaNp;!>5S1FVdItrPV%H4b?qNydl2%OzU-D zSwzas>Nv0^vT$-hH;IZ1t8^W)XPV#?q%v$={nTq}e9=&PV_n9&PwQEbN~^}Ql@*{B z+iSmcBWOZzAOJ@^HvldX@v;L3H0g<%O<xn?`;`xBt^P2I(ud+c<Wv?|@rWbY@j8;jlFe)5Zj$0MNPzLT*eMhJ zTCbt3Qjc0T?B7zHe*3`1G;v1N=b?DZhs83Pf()=UDot?pjSbm;R=hzqrM3}*e4gt3 zgxeij&8Ko6{J7Vub^ef&y8`-oZXM&)Uo&)3VD(in|BptWP@x#aZgLXEJvXnpq+qXQ zS+HiVgs?o@0{~&Yye<2ECIEaw;@r0^falQ=)~3Uk$HU6$+5}wcYEPVgXR*numDG?2 zwcEHOXwf$y<#B#U>g^QeqFmAY7|+=FF(Q z!3363!F{tH5QOSGD12OhCqw=2pLrK zeQ#@Q^Yi4St@x8YthN2$l-G+IX0wd~XHuv-yT!v84X14nT3nIg#bVJIZ&V&78EeJ5BG|_;;@@B>RQfzBt0jQQ?lK0 z3^3S;yRg;RgrM1m`WA9k*%#&n-cB_BrZNuuI`8f4@`2H4Cj`l_o<*s#Y`?R&t2rPc$~V_rGO_u=&;#m|EK2cnI6&?03otgFGFE z5(f+jZgpNOiy^X`p9Yu8WukLOyTyZXyc=uCu|Mw(;hm#v^?=3Xp3Xuv_||j*{{@uw zn)z%fhs{cb|Bu=K+|un!{^XVC?0K3f??kO03S<;Mp7gZwJl@;DGItL0`yQ;h5r3d7 ztJ2x~ab=I!bD4sx{U-ho#cOB-7lQ`yJ zG@v3kBMAd;)M(uY9Sdmqs`L2-IyHUgnzF)K<$Hzhg|Ds-s5~oevvb(ZhEpI>DLqq> z+s5sewmcWPy5lr~UESAdK1dy*0!aGzq6J6jdP>yY;|Wd9w`G8#79O;#78dmzujP-P z*zfNg1_Cf8Mer&x9C(k&)=I(4kTHA;c1}Rj{_XI3Bz{Ct95nD;u`CZg zDI}rus1AjHOF)h|iYJ!V>vdFI&J4iB4QNxQ=F2bW&$6N>gfmaiqmoaau^%1I$gX8PhHk;{OE_mc_IH literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 077d0a39b7e55..a40b6c6971dd8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8755,6 +8755,8 @@ #include "modular_zubbers\code\modules\clothing\head\wig.dm" #include "modular_zubbers\code\modules\clothing\mask\clown.dm" #include "modular_zubbers\code\modules\clothing\neck\collars.dm" +#include "modular_zubbers\code\modules\clothing\neck\neck.dm" +#include "modular_zubbers\code\modules\clothing\outfits\bunny.dm" #include "modular_zubbers\code\modules\clothing\outfits\lace.dm" #include "modular_zubbers\code\modules\clothing\outfits\outlast.dm" #include "modular_zubbers\code\modules\clothing\outfits\plasmaman.dm" From 8c93ce8cd8781e8412916c253b7f5a3496893b2d Mon Sep 17 00:00:00 2001 From: Bubberbot <151680451+Bubberbot@users.noreply.github.com> Date: Sun, 14 Jul 2024 21:24:15 +0200 Subject: [PATCH 6/6] Automatic changelog for PR #1784 [ci skip] --- html/changelogs/AutoChangeLog-pr-1784.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1784.yml diff --git a/html/changelogs/AutoChangeLog-pr-1784.yml b/html/changelogs/AutoChangeLog-pr-1784.yml new file mode 100644 index 0000000000000..b2bf960349b57 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1784.yml @@ -0,0 +1,4 @@ +author: "MonkeStation (sprites) TheSelfish (Port)" +delete-after: True +changes: + - rscadd: "Multiple new Bunny Outfits are in the vendors now!" \ No newline at end of file