From 274d31c8717c78acb0dd80fdc52b647e4f0c51f9 Mon Sep 17 00:00:00 2001 From: CoreyLee Hassell Date: Mon, 7 Oct 2024 20:11:00 -0400 Subject: [PATCH] More chemicals orderable! (#3431) ## About The Pull Request Re-sprites the chem jugs so that every elemental chem has a clearly readable label. ![image](https://github.com/user-attachments/assets/83196d6d-557b-46cb-b2d5-c2e581ae49e2) ![image](https://github.com/user-attachments/assets/bbceb62a-e595-4011-abcc-69ed47b118ed) The chem starter kit now comes with a complete set of chemicals to make everything else. However, it lost its bottle of pre-made sulfuric acid. Also, all elementary chemicals are now available from the outpost, and sugar and ethanol are orderable in bulk (these two are under foods and agriculture, the idea is sugar is for cooking and ethanol for hydroponics, even though they're useful to amateur chemists too!) as mini bottles and bags. ## Why It's Good For The Game Outpost and the chemistry starter kit was missing some baseline chems. Now you can buy any of them if you have the credits. Sure you can ghetto many of these, but I still prefer options. ## FEEDBACK ON PRICING NEEDED. Some of these chem costs were awfully high for what they were... I set pretty much everything to 750 now. ## Changelog :cl: add: Added more purchasable chemicals to outpost. add: Added missing elemental chems to chem starter kit del: removed sulfuric acid from chem starter set. You have to make it. imageadd: tweaked and added more elemental chemical jugs. /:cl: --- code/modules/cargo/packs/chemistry.dm | 152 +++++++++++------- code/modules/cargo/packs/food.dm | 24 +++ .../reagents/reagent_containers/jug.dm | 87 ++++++---- icons/obj/chemical/chem_jug.dmi | Bin 964 -> 2123 bytes 4 files changed, 177 insertions(+), 86 deletions(-) diff --git a/code/modules/cargo/packs/chemistry.dm b/code/modules/cargo/packs/chemistry.dm index 5c7ae4a20ab90..236706f7b6c01 100644 --- a/code/modules/cargo/packs/chemistry.dm +++ b/code/modules/cargo/packs/chemistry.dm @@ -10,19 +10,26 @@ name = "Chemical Starter Kit Crate" desc = "Contains thirteen different chemicals, for all the fun experiments you can make." cost = 1250 // This is intentionally underpriced; the hope is that people will start using ghettochem, upon which time the price can be raised. - contains = list(/obj/item/reagent_containers/glass/bottle/hydrogen, + contains = list(/obj/item/reagent_containers/glass/bottle/aluminium, + /obj/item/reagent_containers/glass/bottle/bromine, /obj/item/reagent_containers/glass/bottle/carbon, + /obj/item/reagent_containers/glass/bottle/chlorine, + /obj/item/reagent_containers/glass/bottle/copper, + /obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/fluorine, + /obj/item/reagent_containers/glass/bottle/hydrogen, + /obj/item/reagent_containers/glass/bottle/iodine, + /obj/item/reagent_containers/glass/bottle/lithium, + /obj/item/reagent_containers/glass/bottle/mercury, /obj/item/reagent_containers/glass/bottle/nitrogen, /obj/item/reagent_containers/glass/bottle/oxygen, - /obj/item/reagent_containers/glass/bottle/fluorine, /obj/item/reagent_containers/glass/bottle/phosphorus, - /obj/item/reagent_containers/glass/bottle/silicon, - /obj/item/reagent_containers/glass/bottle/chlorine, - /obj/item/reagent_containers/glass/bottle/radium, - /obj/item/reagent_containers/glass/bottle/sacid, - /obj/item/reagent_containers/glass/bottle/ethanol, /obj/item/reagent_containers/glass/bottle/potassium, + /obj/item/reagent_containers/glass/bottle/radium, /obj/item/reagent_containers/glass/bottle/sugar, + /obj/item/reagent_containers/glass/bottle/sodium, + /obj/item/reagent_containers/glass/bottle/sulfur, + /obj/item/reagent_containers/glass/bottle/silicon, /obj/item/reagent_scanner, /obj/item/reagent_containers/dropper, /obj/item/storage/box/beakers) @@ -53,61 +60,96 @@ Bulk materials */ +/datum/supply_pack/chemistry/aluminium + name = "Bulk Aluminium Crate" + desc = "Contains a jug filled with 150u of aluminium." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/aluminium) + crate_name = "bulk aluminium crate" + +/datum/supply_pack/chemistry/bromine + name = "Bulk Bromine Crate" + desc = "Contains a jug filled with 150u of bromine." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/bromine) + crate_name = "bulk bromine crate" + /datum/supply_pack/chemistry/carbon name = "Bulk Carbon Crate" desc = "Contains a jug filled with 150u of carbon." - cost = 500 + cost = 750 contains = list(/obj/item/reagent_containers/glass/chem_jug/carbon) crate_name = "bulk carbon crate" -/datum/supply_pack/chemistry/oxygen - name = "Bulk Oxygen Crate" - desc = "Contains a jug filled with 150u of oxygen." - cost = 500 - contains = list(/obj/item/reagent_containers/glass/chem_jug/oxygen) - crate_name = "bulk oxygen crate" +/datum/supply_pack/chemistry/chlorine + name = "Bulk Chlorine Crate" + desc = "Contains a jug filled with 150u of chlorine." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/chlorine) + crate_name = "bulk chlorine crate" + +/datum/supply_pack/chemistry/copper + name = "Bulk Copper Crate" + desc = "Contains a jug filled with 150u of copper." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/copper) + crate_name = "bulk copper crate" + +/datum/supply_pack/chemistry/fluorine + name = "Bulk Fluorine Crate" + desc = "Contains a jug filled with 150u of fluorine." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/fluorine) + crate_name = "bulk fluorine crate" /datum/supply_pack/chemistry/hydrogen name = "Bulk Hydrogen Crate" desc = "Contains a jug filled with 150u of Hydrogen." - cost = 500 + cost = 750 contains = list(/obj/item/reagent_containers/glass/chem_jug/hydrogen) crate_name = "bulk hydrogen crate" +/datum/supply_pack/chemistry/iodine + name = "Bulk Iodine Crate" + desc = "Contains a jug filled with 150u of iodine." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/iodine) + crate_name = "bulk iodine crate" + +/datum/supply_pack/chemistry/lithium + name = "Bulk Lithium Crate" + desc = "Contains a jug filled with 150u of lithium." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/lithium) + crate_name = "bulk lithium crate" + +/datum/supply_pack/chemistry/mercury + name = "Bulk Mercury Crate" + desc = "Contains a jug filled with 150u of mercury." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/mercury) + crate_name = "bulk mercury crate" + /datum/supply_pack/chemistry/nitrogen name = "Bulk Nitrogen Crate" desc = "Contains a jug filled with 150u of nitrogen." - cost = 625 + cost = 750 contains = list(/obj/item/reagent_containers/glass/chem_jug/nitrogen) crate_name = "bulk nitrogen crate" -/datum/supply_pack/chemistry/aluminium - name = "Bulk Aluminium Crate" - desc = "Contains a jug filled with 150u of aluminium." - cost = 625 - contains = list(/obj/item/reagent_containers/glass/chem_jug/aluminium) - crate_name = "bulk aluminium crate" - -/datum/supply_pack/chemistry/copper - name = "Bulk Copper Crate" - desc = "Contains a jug filled with 150u of copper." - cost = 625 - contains = list(/obj/item/reagent_containers/glass/chem_jug/copper) - crate_name = "bulk copper crate" - -/datum/supply_pack/chemistry/bromine - name = "Bulk Bromine Crate" - desc = "Contains a jug filled with 150u of bromine." - cost = 625 - contains = list(/obj/item/reagent_containers/glass/chem_jug/bromine) - crate_name = "bulk bromine crate" +/datum/supply_pack/chemistry/oxygen + name = "Bulk Oxygen Crate" + desc = "Contains a jug filled with 150u of oxygen." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/oxygen) + crate_name = "bulk oxygen crate" -/datum/supply_pack/chemistry/iodine - name = "Bulk Iodine Crate" - desc = "Contains a jug filled with 150u of iodine." +/datum/supply_pack/chemistry/phosphorus + name = "Bulk Phosphorus Crate" + desc = "Contains a jug filled with 150u of phosphorus." cost = 750 - contains = list(/obj/item/reagent_containers/glass/chem_jug/iodine) - crate_name = "bulk iodine crate" + contains = list(/obj/item/reagent_containers/glass/chem_jug/phosphorus) + crate_name = "bulk phosphorus crate" /datum/supply_pack/chemistry/potassium name = "Bulk Potassium Crate" @@ -116,23 +158,23 @@ contains = list(/obj/item/reagent_containers/glass/chem_jug/potassium) crate_name = "bulk potassium crate" +/datum/supply_pack/chemistry/radium + name = "Bulk Radium Crate" + desc = "Contains a jug filled with 150u of radium." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/radium) + crate_name = "bulk radium crate" + +/datum/supply_pack/chemistry/sodium + name = "Bulk Sodium Crate" + desc = "Contains a jug filled with 150u of sodium." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/sodium) + crate_name = "bulk sodium crate" + /datum/supply_pack/chemistry/sulfur name = "Bulk Sulfur Crate" desc = "Contains a jug filled with 150u of sulfur." cost = 750 contains = list(/obj/item/reagent_containers/glass/chem_jug/sulfur) crate_name = "bulk sulfur crate" - -/datum/supply_pack/chemistry/chlorine - name = "Bulk Chlorine Crate" - desc = "Contains a jug filled with 150u of chlorine." - cost = 750 - contains = list(/obj/item/reagent_containers/glass/chem_jug/chlorine) - crate_name = "bulk chlorine crate" - -/datum/supply_pack/chemistry/radium - name = "Bulk Radium Crate" - desc = "Contains a jug filled with 150u of radium." - cost = 1000 - contains = list(/obj/item/reagent_containers/glass/chem_jug/radium) - crate_name = "bulk radium crate" diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm index 3eb7f33cbe4c2..364c53ec9eb51 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -189,6 +189,17 @@ crate_name = "food crate" crate_type = /obj/structure/closet/crate/freezer +/datum/supply_pack/food/sugar + name = "Sugar Crate" + desc = "A crate with a few bags of sugar. Good for cake shops and amateur chemists." + cost = 500 + contains = list(/obj/item/reagent_containers/condiment/sugar, + /obj/item/reagent_containers/condiment/sugar, + /obj/item/reagent_containers/condiment/sugar + ) + crate_name = "sugar crate" + crate_type = /obj/structure/closet/crate + /* Cooking */ @@ -238,6 +249,19 @@ crate_name = "gardening crate" crate_type = /obj/structure/closet/crate/hydroponics +/datum/supply_pack/food/ethanol + name = "Ethanol Crate" + desc = "Five small bottles of ethanol for the aspiring botanist or amateur chemist." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/ethanol + ) + crate_name = "gardening crate" + crate_type = /obj/structure/closet/crate/hydroponics + /datum/supply_pack/food/weedcontrol name = "Weed Control Crate" desc = "Contains a scythe, gasmask, and two anti-weed defoliant grenades, for when your garden grows out of control." diff --git a/code/modules/reagents/reagent_containers/jug.dm b/code/modules/reagents/reagent_containers/jug.dm index de1570a9ef5c5..10baf946a0891 100644 --- a/code/modules/reagents/reagent_containers/jug.dm +++ b/code/modules/reagents/reagent_containers/jug.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/glass/chem_jug name = "chemical jug" desc = "A large jug used for storing bulk ammounts chemicals. Provided with a tamper seal which ensures that the contents are pure" - icon = 'icons/obj/chemical/chem_jug.dmi' + icon = 'icons/obj/chemical/chem_jug.dmi' // the coloring of labels for elemental chemicals is based on the chemical group block coloring at https://pubchem.ncbi.nlm.nih.gov/periodic-table/ . Everything else is whatever. icon_state = "chem_jug" item_state = "sheet-plastic" w_class = WEIGHT_CLASS_BULKY @@ -80,36 +80,21 @@ /obj/item/reagent_containers/glass/chem_jug/open cap_on = FALSE -/obj/item/reagent_containers/glass/chem_jug/carbon - name = "chemical jug (carbon)" - icon_state = "chem_jug_carbon" - list_reagents = list(/datum/reagent/carbon = 150) - -/obj/item/reagent_containers/glass/chem_jug/oxygen - name = "chemical jug (oxygen)" - icon_state = "chem_jug_oxygen" - list_reagents = list(/datum/reagent/oxygen = 150) - -/obj/item/reagent_containers/glass/chem_jug/nitrogen - name = "chemical jug (nitrogen)" - icon_state = "chem_jug_nitrogen" - list_reagents = list(/datum/reagent/nitrogen = 150) - -/obj/item/reagent_containers/glass/chem_jug/hydrogen - name = "chemical jug (hydrogen)" - icon_state = "chem_jug_hydrogen" - list_reagents = list(/datum/reagent/hydrogen = 150) - -/obj/item/reagent_containers/glass/chem_jug/radium - name = "chemical jug (radium)" - icon_state = "chem_jug_radium" - list_reagents = list(/datum/reagent/uranium/radium = 150) - /obj/item/reagent_containers/glass/chem_jug/aluminium name = "chemical jug (aluminium)" icon_state = "chem_jug_aluminium" list_reagents = list(/datum/reagent/aluminium = 150) +/obj/item/reagent_containers/glass/chem_jug/bromine + name = "chemical jug (bromine)" + icon_state = "chem_jug_bromine" + list_reagents = list(/datum/reagent/bromine = 150) + +/obj/item/reagent_containers/glass/chem_jug/carbon + name = "chemical jug (carbon)" + icon_state = "chem_jug_carbon" + list_reagents = list(/datum/reagent/carbon = 150) + /obj/item/reagent_containers/glass/chem_jug/chlorine name = "chemical jug (chlorine)" icon_state = "chem_jug_chlorine" @@ -120,27 +105,67 @@ icon_state = "chem_jug_copper" list_reagents = list(/datum/reagent/copper = 150) -/obj/item/reagent_containers/glass/chem_jug/bromine - name = "chemical jug (bromine)" - icon_state = "chem_jug_bromine" - list_reagents = list(/datum/reagent/bromine = 150) +/obj/item/reagent_containers/glass/chem_jug/fluorine + name = "chemical jug (fluorine)" + icon_state = "chem_jug_fluorine" + list_reagents = list(/datum/reagent/fluorine = 150) + +/obj/item/reagent_containers/glass/chem_jug/hydrogen + name = "chemical jug (hydrogen)" + icon_state = "chem_jug_hydrogen" + list_reagents = list(/datum/reagent/hydrogen = 150) /obj/item/reagent_containers/glass/chem_jug/iodine name = "chemical jug (iodine)" icon_state = "chem_jug_iodine" list_reagents = list(/datum/reagent/iodine = 150) +/obj/item/reagent_containers/glass/chem_jug/lithium + name = "chemical jug (lithium)" + icon_state = "chem_jug_lithium" + list_reagents = list(/datum/reagent/lithium = 150) + +/obj/item/reagent_containers/glass/chem_jug/mercury + name = "chemical jug (mercury)" + icon_state = "chem_jug_mercury" + list_reagents = list(/datum/reagent/mercury = 150) + +/obj/item/reagent_containers/glass/chem_jug/nitrogen + name = "chemical jug (nitrogen)" + icon_state = "chem_jug_nitrogen" + list_reagents = list(/datum/reagent/nitrogen = 150) + +/obj/item/reagent_containers/glass/chem_jug/oxygen + name = "chemical jug (oxygen)" + icon_state = "chem_jug_oxygen" + list_reagents = list(/datum/reagent/oxygen = 150) + +/obj/item/reagent_containers/glass/chem_jug/phosphorus + name = "chemical jug (phosphorus)" + icon_state = "chem_jug_phosphorus" + list_reagents = list(/datum/reagent/phosphorus = 150) + /obj/item/reagent_containers/glass/chem_jug/potassium name = "chemical jug (potassium)" icon_state = "chem_jug_potassium" list_reagents = list(/datum/reagent/potassium = 150) +/obj/item/reagent_containers/glass/chem_jug/radium + name = "chemical jug (radium)" + icon_state = "chem_jug_radium" + list_reagents = list(/datum/reagent/uranium/radium = 150) + +/obj/item/reagent_containers/glass/chem_jug/sodium + name = "chemical jug (sodium)" + icon_state = "chem_jug_sodium" + list_reagents = list(/datum/reagent/sodium = 150) + /obj/item/reagent_containers/glass/chem_jug/sulfur name = "chemical jug (sulfur)" icon_state = "chem_jug_sulfur" list_reagents = list(/datum/reagent/sulfur = 150) -/obj/item/reagent_containers/glass/chem_jug/thermite +/obj/item/reagent_containers/glass/chem_jug/thermite // not giving this its own "elemental" jug sprite. name = "chemical jug (thermite)" list_reagents = list(/datum/reagent/thermite = 150) diff --git a/icons/obj/chemical/chem_jug.dmi b/icons/obj/chemical/chem_jug.dmi index d872ba00ff1d2dd67a378b78c2b2d4da7a69b62f..e5ab15a43e14a23660ba7126daa44330f11d1aa2 100644 GIT binary patch literal 2123 zcmZuzdpHw%AJxc3$3?A(xrj*qrIS?|J*<{p0ujKF{}edA^^^^L>8lULLM0O4>?ta&jte zNVtzIQ)G*vs342?LV|TR&9CVOVA<4~6Fo zQSjK9KD7U3;%Ar94-e>kX)EG>dq}h*I4Gq%`9jsVF6JNt)MIoV;DJn%vKj0ED>dAw zkHHM@EWm7>RLg{@Y=!byd(rwZo~oT%e0j#zYBy1lytZv50FuGNK%+L3dfoQn5Co73 zF|W2mqyOcBLEJ<7WVj05@~nq(*!c_g`7i3#RNbyIq+V7;MSVN-pxX+*_5pCo!9_IU?`y-9+TAu%yS?dSE>p zzgnm5(HV~>J+c98iGtAdh3yn}iuJ+^Ruxq&Nb z{d9!Eti!W963 zq%Koa(^o5e_S2VaHhVn_jYd0+Xawyr289(dS?lH z$GF@C9wl*&s2d0b0(svXa&vRfrk*hr|Jy)aLgdB)XUVrE5NtC~%osjHNiXd zG@7T-qG|E-qU|)fMbK-{59|}(tRROwYHXX5T8~G@UOcRw^-m)&!##n`n=SX$No#}< z6>BT2Q^b;z=NJs;I;_d89eQ%FEm3EOu?rE)nt+0vQFtW1S z6lZnfT?iLu6@p5*dCNOCqPL@Vzg zF3;o}g0jWzA#=RFp77~&^mn`?|I9h&kccp3&TMFh%;P>8GIsl{}qY7Ve?W zxP5sw3!Q6SuXeCiI`IfzGL$4A4|XsLZtF`+oOK1Qf@f3yH4N|;R8-W5I>}GMyLa4R z@uc4Rq!R@VngLA;aQ9TYQg(i={5$BF3d&#*yR2;?9@$AJMNeFD1RG0gIS2-6UKPkx zSdKjjq%qzKvfmSUc-#8;fCfQONBz~Q-_xKoG+B>5PmayJ-z%6tGUlc`6RcrdZJya} zqEN!YnqvB#@#8!F!5aFlrLRF@M8vBxL zlPc~8l-v7}Wt6A#Au=_*;wI&NK-Il6DUJzWDu4e<7w6NMwpZ6@(s{DlPCd}V+oeJC za^2Ns+;{;q;XCSE?K{fGdp!Vm2ubZ9m$i?b5@xlh->`2cif`wOVivJeH^ua}`}p?y zJUO)3ZOSV}JO!l`cs2)xwVOej^|0WA1DI)r{s%(y&y%OrU|u;ShqpWn$xkAZ0zTZ79P2(es)Gy$}rIAAFo*D6}XUrP__|)KmpXUVbG4p4C=A~4#(HsI# zF|B^RQElMfR8lpYYh0{Y=y{|*@<8-GQ;E(;bI_=GSk38+=J7cUTQ)5c!)+fN@KYM! zZW;1OA4ND0$n^*-n|!TccKmSBe3i{*=qJ~c9}sU{{pK>Fp5a(~|6s_ws2HuLeKpde zN_|#aR9GVf)z30{g6=VP^ zT1W9f%kXC5#rFMdv>iwW*eJ8uAPbTnf--Y<6<*8{!6zcd{dZ>eovLA;-oV`SUoZN- hkpAtk|IzF}fxe5>KxTzAu(IEQoEyReUgP{*;-ASoG|~V7 literal 964 zcmV;#13UbQP)C0000^P)t-sz`(%O z)z#|i>TPXpFtYL;jNGiOtpET2G&D5CPfzwoN2M+&G@mfgQc795RDBm82uc<%bT8Jz zJn-2+lwJ^{cN%`7#Gu6JCN+YI00DGTPE!Ct=GbNc0075&R9JLGWpiV4 zX>fFDZ*Bkpc$}3}%L;=q5Imc&2zoDlU3)1?@lbz3ViHY?ab=UV_3s<%u~6LG%re8y zENsEA)va!Ld9T@1qqi{e3qSAnEPGiMOd_Wv%Z#>z2`lkI1f5_mjdtxL4mrz|MW03o zmh~u{Uh$8xm0~7|+aTPmal6OIv5y4(3_*BrquXw=pzNe6HL!zeyB>ui<&iLxPShbd zQUNi>WFTdlY(N+^p|vz4ASo8S7t#i^sK1#CUNzPWf-n$8F-kyN3JNIy|D`2B5Jz^G%C4m2USB$MaXFI-*pn#IXf$JX#_XbKKjgVT z91bz|eX6JCTbm@-rpCp#e>~qHj&T6Ir{-JZE-vjfWMD+yQ068RaNx>^G^Y$&*K3D-WQPjd4RI6 zaRA{JD66_c0YH1@=qGys0)YLUqwn@W74!-q{?5@)-UENvbLl<+0K(s;d)nWndyPh; z(F71ZAJFpwJs)`dr|mP(2QYu<=&wE?0OIc){q@!d0qFF7R-J~v#`{)(%X#-30Gg%; zn12eKK12RK0s?aB0V@Ka{h$EU4cvUJFINJ<_R7&u_5i#BkiT>E*LDlE33&w&f9L2Y z?|~5Yd~*OjAJAwt8qM~R_J1nU{!iXt+W%<)VgIKh?*CN8{eL0A7s7XX;QukDus zApX9#UkK2E_B#4K(S!E85a31uyb8D!pt%9|`lc0t?R9Ox5CHb~wf#bXtyci?_q9C@ mAg$lw1Bm-S74?73r{)(<%6zn6bN0ai0000