From a7fc17dfc48beca3807155d9cc443f6f707a66d5 Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Sat, 10 Jan 2026 03:07:35 +0100 Subject: [PATCH] Add the Syndicate Delivery Console + Corpsman Medicine Bundle (#41201) * Initial commit * Add a note to not abuse the darrrrn machine * Remove nukie planet (hopefully) and fix duffelbag * jug solution name --------- Co-authored-by: iaada --- Resources/Locale/en-US/store/categories.ftl | 2 + .../Locale/en-US/store/nukie-delivery.ftl | 3 + Resources/Locale/en-US/store/store.ftl | 1 + .../Catalog/Fills/Backpacks/duffelbag.yml | 19 +++ .../Catalog/nukie_delivery_catalog.yml | 19 +++ .../Chemistry/chemical-containers.yml | 120 ++++++++++++++++++ .../Machines/Computers/computers.yml | 35 +++++ Resources/Prototypes/Store/categories.yml | 6 + .../Machines/computers.rsi/meta.json | 44 ++++++- .../Machines/computers.rsi/request-syndie.png | Bin 0 -> 16522 bytes .../computers.rsi/syndie_generic_keys.png | Bin 0 -> 14803 bytes 11 files changed, 248 insertions(+), 1 deletion(-) create mode 100644 Resources/Locale/en-US/store/nukie-delivery.ftl create mode 100644 Resources/Prototypes/Catalog/nukie_delivery_catalog.yml create mode 100644 Resources/Textures/Structures/Machines/computers.rsi/request-syndie.png create mode 100644 Resources/Textures/Structures/Machines/computers.rsi/syndie_generic_keys.png diff --git a/Resources/Locale/en-US/store/categories.ftl b/Resources/Locale/en-US/store/categories.ftl index 64ed0b5c63..4469a576cd 100644 --- a/Resources/Locale/en-US/store/categories.ftl +++ b/Resources/Locale/en-US/store/categories.ftl @@ -24,3 +24,5 @@ store-caregory-spellbook-utility = Utility Spells store-caregory-spellbook-equipment = Wizard Equipment store-caregory-spellbook-events = Event Spells +# Nukie Delivery +store-category-nukie-delivery = Offers diff --git a/Resources/Locale/en-US/store/nukie-delivery.ftl b/Resources/Locale/en-US/store/nukie-delivery.ftl new file mode 100644 index 0000000000..4c5f4bf724 --- /dev/null +++ b/Resources/Locale/en-US/store/nukie-delivery.ftl @@ -0,0 +1,3 @@ +nukie-delivery-medicine-bundle-name = Corpsman Medicine Bundle +nukie-delivery-medicine-bundle-desc = Contains jugs of basic medicine that are essential for any Nuclear Operation: + Bicaridine, Puncturase, Dermaline, Dylovene, Hyronalin, Saline, Dexalin Plus and Tranexamic Acid. diff --git a/Resources/Locale/en-US/store/store.ftl b/Resources/Locale/en-US/store/store.ftl index 9a9d75f4c0..209e143934 100644 --- a/Resources/Locale/en-US/store/store.ftl +++ b/Resources/Locale/en-US/store/store.ftl @@ -14,4 +14,5 @@ store-not-account-owner = This {$store} is not bound to you! store-preset-name-uplink = Uplink store-preset-name-spellbook = Spellbook +store-preset-name-nukie-delivery = NukeOps Bluespace Delivery store-preset-name-changeling = DNA Store diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml index 7d7c4385a1..a39576eafe 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml @@ -34,6 +34,25 @@ - id: ClothingHandsGlovesNitrile - id: EmergencyRollerBedSpawnFolded +- type: entity + parent: ClothingBackpackDuffelSyndicateMedicalBundle + id: ClothingBackpackDuffelSyndicateFilledMedicine + name: syndicate medicine duffel bag + description: A large duffel bag containing essential medicinal reagents. + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: JugBicaridine + - id: JugPuncturase + - id: JugDermaline + - id: JugDylovene + - id: JugHyronalin + - id: JugSaline + - id: JugDexalinPlus + - id: JugTranexamicAcid + - type: entity parent: ClothingBackpackDuffelSyndicateBundle id: ClothingBackpackDuffelSyndicateFilledShotgun diff --git a/Resources/Prototypes/Catalog/nukie_delivery_catalog.yml b/Resources/Prototypes/Catalog/nukie_delivery_catalog.yml new file mode 100644 index 0000000000..400724bf50 --- /dev/null +++ b/Resources/Prototypes/Catalog/nukie_delivery_catalog.yml @@ -0,0 +1,19 @@ +# The Nukie Catalog is -not- meant to be a "here's free equipment lmao" shop. +# Anything listed in here should aim to leverage the actual benefits of the console: +# 1. Equipment that should only be available in -limited numbers- for the Nukie team as a whole. +# 2. Equipment that should be timegated/locked to the Nukie planet. +# 3. Equipment that benefit from the team knowing it's been purchased/claimed. +# If you can't justify these benefits, consider other options: Uplinks, Starting Loadouts & Mapping on the planet/shuttle. +# NOTE: At the moment of writing the store doesn't take TC, but if you can find a scenario where pooling TC works with the above benefits, that could be changed. + +- type: listing + id: NukieDeliveryMedicineBundle + name: nukie-delivery-medicine-bundle-name + description: nukie-delivery-medicine-bundle-desc + productEntity: ClothingBackpackDuffelSyndicateFilledMedicine + categories: + - NukieDelivery + restockTime: 1200 + conditions: + - !type:ListingLimitedStockCondition + stock: 1 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Chemistry/chemical-containers.yml b/Resources/Prototypes/Entities/Objects/Specific/Chemistry/chemical-containers.yml index 8c2199c04a..34868ac653 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Chemistry/chemical-containers.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Chemistry/chemical-containers.yml @@ -473,3 +473,123 @@ reagents: - ReagentId: WeldingFuel Quantity: 200 + +- type: entity + parent: Jug + suffix: bicaridine + id: JugBicaridine + categories: [ HideSpawnMenu ] + components: + - type: Label + currentLabel: reagent-name-bicaridine + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Bicaridine + Quantity: 200 + +- type: entity + parent: Jug + suffix: puncturase + id: JugPuncturase + categories: [ HideSpawnMenu ] + components: + - type: Label + currentLabel: reagent-name-puncturase + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Puncturase + Quantity: 200 + +- type: entity + parent: Jug + suffix: dermaline + id: JugDermaline + categories: [ HideSpawnMenu ] + components: + - type: Label + currentLabel: reagent-name-dermaline + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Dermaline + Quantity: 200 + +- type: entity + parent: Jug + suffix: dylovene + id: JugDylovene + categories: [ HideSpawnMenu ] + components: + - type: Label + currentLabel: reagent-name-dylovene + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Dylovene + Quantity: 200 + +- type: entity + parent: Jug + suffix: tranexamic acid + id: JugTranexamicAcid + categories: [ HideSpawnMenu ] + components: + - type: Label + currentLabel: reagent-name-tranexamic-acid + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: TranexamicAcid + Quantity: 200 + +- type: entity + parent: Jug + suffix: hyronalin + id: JugHyronalin + categories: [ HideSpawnMenu ] + components: + - type: Label + currentLabel: reagent-name-hyronalin + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Hyronalin + Quantity: 200 + +- type: entity + parent: Jug + suffix: saline + id: JugSaline + categories: [ HideSpawnMenu ] + components: + - type: Label + currentLabel: reagent-name-saline + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Saline + Quantity: 200 + +- type: entity + parent: Jug + suffix: dexalin plus + id: JugDexalinPlus + categories: [ HideSpawnMenu ] + components: + - type: Label + currentLabel: reagent-name-dexalin-plus + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: DexalinPlus + Quantity: 200 diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml index 0bc3e0487e..d73ae2c660 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml @@ -1726,3 +1726,38 @@ type: StationAiFixerConsoleBoundUserInterface enum.WiresUiKey.Key: type: WiresBoundUserInterface + +- type: entity + parent: BaseComputer + id: ComputerNukieDelivery + name: syndicate delivery computer + description: "A computer that can bluespace in certain equipment for Nuclear Operations. \nThe circuitboard is integrated into the frame and can't be recovered if deconstructed." + components: + - type: Sprite + layers: + - map: ["computerLayerBody"] + state: computer + - map: ["computerLayerKeyboard"] + state: generic_keyboard + - map: ["computerLayerScreen"] + state: request-syndie + - map: ["computerLayerKeys"] + state: syndie_generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open + # - type: Computer + # board: SyndicateCommsComputerCircuitboard + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#f71713" + - type: UserInterface + interfaces: + enum.StoreUiKey.Key: + type: StoreBoundUserInterface + - type: ActivatableUI + key: enum.StoreUiKey.Key + - type: Store + name: store-preset-name-nukie-delivery + categories: + - NukieDelivery diff --git a/Resources/Prototypes/Store/categories.yml b/Resources/Prototypes/Store/categories.yml index cb11de7848..ccdb349d9c 100644 --- a/Resources/Prototypes/Store/categories.yml +++ b/Resources/Prototypes/Store/categories.yml @@ -89,6 +89,12 @@ name: store-category-pointless priority: 10 +#nukie delivery + +- type: storeCategory + id: NukieDelivery + name: store-category-nukie-delivery + #revenant - type: storeCategory id: RevenantAbilities diff --git a/Resources/Textures/Structures/Machines/computers.rsi/meta.json b/Resources/Textures/Structures/Machines/computers.rsi/meta.json index ebb9a875dd..43be310a95 100644 --- a/Resources/Textures/Structures/Machines/computers.rsi/meta.json +++ b/Resources/Textures/Structures/Machines/computers.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bd6873fd4dd6a61d7e46f1d75cd4d90f64c40894. comm_syndie made by Veritius, based on comm. generic_panel_open made by Errant, commit https://github.com/space-wizards/space-station-14/pull/32273, comms_wizard and wizard_key by ScarKy0, request- variants transfer made by EmoGarbage404 (github), xenorobot by Samuka-C (github), ai-fixer-progress and -purge sprites made by chromiumboy", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bd6873fd4dd6a61d7e46f1d75cd4d90f64c40894. comm_syndie made by Veritius, based on comm. generic_panel_open made by Errant, commit https://github.com/space-wizards/space-station-14/pull/32273, comms_wizard and wizard_key by ScarKy0, request- variants transfer made by EmoGarbage404 (github), xenorobot by Samuka-C (github), ai-fixer-progress and -purge sprites made by chromiumboy, generic_syndie_keys and request-syndie modified from generic_keys and request by SlamBamActionman", "size": { "x": 32, "y": 32 @@ -1908,6 +1908,44 @@ ] ] }, + { + "name": "request-syndie", + "directions": 4, + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, { "name": "robot", "directions": 4 @@ -2048,6 +2086,10 @@ "name": "syndie_key", "directions": 4 }, + { + "name": "syndie_generic_keys", + "directions": 4 + }, { "name": "syndie_key_off", "directions": 4 diff --git a/Resources/Textures/Structures/Machines/computers.rsi/request-syndie.png b/Resources/Textures/Structures/Machines/computers.rsi/request-syndie.png new file mode 100644 index 0000000000000000000000000000000000000000..b2befe73d8d323c32a0967ca5420461335de7885 GIT binary patch literal 16522 zcmeI4c~}$I7QhFKilCxa9#&Cf+*%=INPv(Sb`VkxQUnE+LP#c%nvEm~XjsGrthGKs zQ5yy2iB^4z)`hwN^=lE70#&3aE>vZC7?npN)sQG}CLn|nr|tXt=iKj0a?d^YoOAE* z+D3rTy4VTU%dU{wglNhiA5v1S{l0-tWoRQ>CH2P)0ePozSBp9bC z*0>YBk${A7b}+$LB7+Dnj;s6QMmxfA0Q3Mqq3PE1U6Or$zWWU*u?I-O1iDP#(T1kWJJlf?>7 z5=ktd-RI=3A3sRWl?kK@fkaF|{BmL>2?}>25eYQV`u8Q04g?a*``N)1$w?e3*~t+k z4`;;V4%kQ&WJ2T8cw90hghY^7A&2dphP9K%NfZ)!oa8+r2h{Hk4CjQ+9*8~cdPSmP zL(3KZYheWaNQbqQhbBuQatI`sB*?gs|5|t}vxnQgLckwP&Ja(C=Dll&k_7KDLo|J6 z#-q@eAtt<6hOZ3bC?v8_iA3npcglj_A|&|w8c!AB;}rriPm(DAgh@u54CZ^#8|24P zKpqs3;zDu)NmMY@iOQhT7$DUibYg&@iIcvWC?9MIPry$e#s_?+si3J3lbL8A@crR& z6r4Zh#dNNTA0C&%m&imMg@-`IiG|2gaV(QOIA}6+;8ZbuB|?b|UKZp*Ws-**9@ffF z!c9PqwYQiH$>C(kO_Bts%6M^oII%-V-ztOxk5~bmNS=f%;4%8TkedsQ!*?aQaolJm zXICzrM2~R;Ng&_Fg%`u2(4A;*Ofqt9VdKFSAs&sRLt~k41Z$Oreu_AeTx4-JI#97$+J?;`3r+I5ha6fG&LFsTgWLxUzoNZ=?6S z=KV$2Cg$(BUMds7rJEx(nS-qUuZ9@L%{!q21xSvQQQ(nmEQ8{Qjt=J7SY)LfnH)k& zh&%CZ4H>A)@YI3EG?pR;hl`YF4=!@UAs&-FWOQ&@Xfwh8o4`K*Cg$&tkr)Swu_{EL zE90#9JCRHHibReK@{Wb?&Yvk>eO`x}q1|KMi=p{>dt%?sCljgC4EQX->*5%5;KU@q zGd38xZ+!~Fzsos%P{(#aLxn9&HW8P+o5y_P1Le#^cTnmnNx zFIC?t{QLtydXWd7z23QR1GnMt>(0aa<@M*dmS#n-5Bh<3a(!7I9qId{9~(7YYcrh~vWMgVN%-P(ZLn92YhplorQ@ z0)j2#xUl)4v^Xvl5Nr|0h0O=0#c`p4V2d~|Y(6M0jtd0@Tf}i;^Fe8GTqq#eB9052 z4@!&ULIJ@Raa`DZP+A-p3JA7{?W4(}>3>PKCZK6t>N{9p!pgsH8p`eH7_Rp`Z997Dgz}9#txjp*Tzzpu3UzAH z{EgnvX{w6Tms9RLER1wG|K|0}u5f<5Lw(Ld!q^d-g?rMd~FZ)S|zkd=%xbQDe4;bqVtAF%Imgpe`LT-wId_v`eA{jh zbJeMu%9_?QZmBl=Y+j`>YaYv zXgj5TR6{7AsoNWSMSpRuHqmZ3!%DvfL^fSS{&C5?+)_i%Z;lJo4bNLUWz&NXk93`O zJ^xqV5?#-$@V2JHeZ|XL>oUxq0A|KE0dB_bA9SMUQ&bZjHxf!0ydug!)KFOG^K4Ss zcl03#+eduvpFO$zN2pYs*BVA$?Vp`hmu@xJd~$YE&qKhB8h^vOy|Bn~idoe5RASD; z5&W&;{yrBYR^~;4kyOKkY7Ogc ztqPr}N~o%{XFrv_X=B8RdfT|4z2P*>TBz=hoNG^1{}T24oGO0hrK*ye^EHV#vPGAA zt55nqNbp*EX(p)F)UDsW!L|8SP31A0bFRAc^J7x3NqF9KZ7#SM|EFk{&DsrHLgPpl z#+D8@0O<|a`9|4wd8g7m^l?uIE02|vvm^bBePc%*o1~aE(~LxqIuUA}$*wA&Hh!7; zzxP%Xk}iylf1*FP_?NSWW0Q!{{wE6q#rgK_tM6HS?$TVr{_i)s%x`(L(HB43ZduKI zx!-decVf|0rmgO)^gKI#nR2->RkS`;9B_8$f0A{lx#6pNx~|u5D05Hbr7fN`#-{B+ zWR<4_RvOy2HwQr{ueF158fZtXp>MDS#@_o?o3i(CFHG*tDSdAY1&eb?G6FFwg+ z5laLs^}Xf|hYV*jGw&HLuXF7&n;xAy_V6sPT+MNds?Bi$ng8-=x81rTdAvnnc;+Sx zi(^O?FewNFmBH9?_VrTvOtpPcT2RbV7ls7+dFG4DID6-GbYD$z5>=Nl%u~$3Zp2RIx$SXpc(hpK)8Rj}LCv#>P8T zT53MhNfymkD{ULiN`vEx4;l?SDl5OxY|YxldNil`+S3c24ZNwk$UFRk={L&^jw1W= z9P2;ezx0Q)#O@nm;ro5>N=_}wd9l*ZucOvklb{U?_`&f-eRgw*S?87?gOHvN(yK*! z8hZ2;^GS=co9s3z?<*VV2RbtAGvHpB*`=FH15y`{eEO;9bRDVSgW5;oC;e`<5n9x3 z$1US}9*P&uMygx$O6$y)HElHSAL`1;%{%oSZR2}7ZokQ^MeHkoFL^aV*wZ2Gd3fy6 zv4XFkNlvGqamzcZQF(^l)1@@0+9nAuzE&~wS6pV7ry2HqnPt#xk6gc+Tda!O<j5-%xO3hR!m;EB$K0$Pb1)f6n>6qkvQCiXGeIj^-l&Er8`8Kw0CXSb~|rHTp3%WV{RjCi3z*iz1xnpcjfN3 zc1tjmMJ5V~5se~942lV85JLhc!x#VchT?oYRfl@jh9LvB4mGvOLw$0M;#n3g6Egx%kVKZmW|9fb6f(6QC$E5GyP5N_ zj>PJ#^(?mwvhDF^woW$?8}fy{G9Qkxks6;r6p2(tma+lfAL95R7v#NxpispNRRK18 zd7@=F5)GwWXo=Nl%i+IjJ-wEd5;!iMPW#e9pKkPU{+gN^jt_8wfEO#g=AdRt8Lwt8 zaFa~ri6K)q)Rd*_8f)j3y7Ydl*5k1Y<*w{=B~!UVnwe#XDRLPp#rb_aSInfyIZvwJ zNH{}NWDX@z5^0u+eg2}pRIhI7X0KkNWUjkpVLT`Cc&>KQ@g|c+OPkh;0gNDvw5Zc; z8%!at1(|xkA)^%o_)!)VdwNUl&QH#yOmxrnl%9NS1V4S)dl=QDmW8HGPkOPIz6EqcvvVJ6uDx}z~!top;0p}Nt01yEQ%X^s;UTn6seNrV7FHZgk^7_ zx+?6g=7WB3NRqmEsXELnT~!XmcpTcNq>kxwzr9lUwG=PYYQ8z#3-bR<;gOiD?HiR>L$>zUYcxkD^>M%f-`=L(W+ zpJq|n-VjI;xk;`0Vdb1zoBDqz(9I9*rE8>nk#?&M<)(5}rIVO?x0RL*w7dteiQC!h zZq~`R!t^3%pZ*DT@@`DX%J(Ii--scC@x5Y7*kwCL{LC+K^nxE z;vyn~0*VXLAjT9I5fKznT#yDarnrcRpn&3nG>9?9MMMMz6c?mHj43W6A}FA^APr(n zaS;(g0mTJr5MzpqhzJTOE=YqIQ(QzuP(X1(8pN35A|iqUiVM;p#uOJ35fo5dkOncP zxQK|LfZ~EQh%v=QL<9vC7o&kpUt>_`qeXIi=#Cghxe8BzOecTyKc`tt3Dqs4<5o<-0R>I!_QvVT7SNJ zY3abothe@@nf}92(DbgFVOTQU5`;?50yC$F8m{L!0D$JTGV z+4%L#hi4z$zV(6fpKeri{@b^8FGl5Fuc=3IFg`w=>3qE9gLxNzth3u2S2V>AJkz=9 EKM9^2u>b%7 literal 0 HcmV?d00001 -- 2.52.0