diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 0a9a1359864..d44625e80a1 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -94,6 +94,10 @@ if(istype(WM.color_source, /obj/item/toy/crayon)) var/obj/item/toy/crayon/CR = WM.color_source add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) + else + if(istype(WM.color_source, /obj/item/reagent_containers/food/snacks/grown/rainbow_flower/)) + var/obj/item/reagent_containers/food/snacks/grown/rainbow_flower/RF = WM.color_source + add_atom_colour(RF.color, WASHABLE_COLOUR_PRIORITY) /mob/living/simple_animal/pet/dog/corgi/machine_wash(obj/machinery/washing_machine/WM) gib() @@ -129,6 +133,21 @@ if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable toggle_jumpsuit_adjust() +//dyed clothing results// + +/obj/item/storage/belt/fannypack/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + for(var/T in typesof(/obj/item/storage/belt/fannypack)) + var/obj/item/storage/belt/fannypack/FP = T + if(wash_color == initial(FP.item_color)) + item_state = initial(FP.item_state) + icon_state = initial(FP.icon_state) + item_color = wash_color + name = initial(FP.name) + desc = "The colors are a bit dodgy." + break + /obj/item/clothing/gloves/color/machine_wash(obj/machinery/washing_machine/WM) if(WM.color_source) var/wash_color = WM.color_source.item_color @@ -170,17 +189,29 @@ desc = "The colors are a bit dodgy." break -/obj/item/clothing/head/soft/machine_wash(obj/machinery/washing_machine/WM) +/obj/item/clothing/neck/scarf/machine_wash(obj/machinery/washing_machine/WM) if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/head/soft)) - var/obj/item/clothing/head/soft/H = T - if(wash_color == initial(H.item_color)) - icon_state = initial(H.icon_state) - item_color = wash_color - name = initial(H.name) - desc = "The colors are a bit dodgy." - break + if(istype(WM.color_source, /obj/item/toy/crayon)) + var/obj/item/toy/crayon/CR = WM.color_source + add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) + else + if(istype(WM.color_source, /obj/item/reagent_containers/food/snacks/grown/rainbow_flower/)) + var/obj/item/reagent_containers/food/snacks/grown/rainbow_flower/RF = WM.color_source + add_atom_colour(RF.color, WASHABLE_COLOUR_PRIORITY) + name = "dyed scarf" + desc = "The colors are a bit dodgy." + +/obj/item/clothing/head/beanie/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + if(istype(WM.color_source, /obj/item/toy/crayon)) + var/obj/item/toy/crayon/CR = WM.color_source + add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) + else + if(istype(WM.color_source, /obj/item/reagent_containers/food/snacks/grown/rainbow_flower/)) + var/obj/item/reagent_containers/food/snacks/grown/rainbow_flower/RF = WM.color_source + add_atom_colour(RF.color, WASHABLE_COLOUR_PRIORITY) + name = "dyed beanie" + desc = "The colors are a bit dodgy." /obj/machinery/washing_machine/relaymove(mob/user) @@ -231,7 +262,7 @@ to_chat(user, "\The [W] is stuck to your hand, you cannot put it in the washing machine!") return 1 - if(istype(W, /obj/item/toy/crayon) || istype(W, /obj/item/stamp)) + if(istype(W, /obj/item/toy/crayon) || istype(W, /obj/item/stamp) || istype(W, /obj/item/reagent_containers/food/snacks/grown/rainbow_flower)) color_source = W update_icon() diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index b153479d3ad..fdb965686a7 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -198,6 +198,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("ore box", /obj/structure/ore_box, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE),\ new/datum/stack_recipe("wooden crate", /obj/structure/closet/crate/wooden, 6, time = 50, one_per_turf = TRUE, on_floor = TRUE),\ new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\ + new/datum/stack_recipe("loom", /obj/structure/loom, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ )) /obj/item/stack/sheet/mineral/wood @@ -225,8 +226,9 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ * Cloth */ GLOBAL_LIST_INIT(cloth_recipes, list ( \ - new/datum/stack_recipe("grey jumpsuit", /obj/item/clothing/under/color/grey, 3), \ - new/datum/stack_recipe("black shoes", /obj/item/clothing/shoes/sneakers/black, 2), \ + new/datum/stack_recipe("white jumpsuit", /obj/item/clothing/under/color/white, 3), \ + new/datum/stack_recipe("white shoes", /obj/item/clothing/shoes/sneakers/white, 2), \ + new/datum/stack_recipe("white scarf", /obj/item/clothing/neck/scarf, 1), \ null, \ new/datum/stack_recipe("backpack", /obj/item/storage/backpack, 4), \ new/datum/stack_recipe("duffel bag", /obj/item/storage/backpack/duffelbag, 6), \ @@ -243,7 +245,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("empty sandbag", /obj/item/emptysandbag, 4), \ null, \ new/datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1), \ - new/datum/stack_recipe("black gloves", /obj/item/clothing/gloves/color/black, 3), \ + new/datum/stack_recipe("white gloves", /obj/item/clothing/gloves/color/white, 3), \ + new/datum/stack_recipe("white softcap", /obj/item/clothing/head/soft/mime, 2), \ + new/datum/stack_recipe("white beanie", /obj/item/clothing/head/beanie, 2), \ null, \ new/datum/stack_recipe("blindfold", /obj/item/clothing/glasses/sunglasses/blindfold, 2), \ )) @@ -259,6 +263,13 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ throwforce = 0 merge_type = /obj/item/stack/sheet/cloth +/obj/item/stack/sheet/cloth/durathread + name = "durathread" + desc = "A fabric sown from incredibly durable threads, known for its usefulness in armor production." + singular_name = "durathread roll" + icon_state = "sheet-durathread" + merge_type = /obj/item/stack/sheet/cloth + /obj/item/stack/sheet/cloth/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.cloth_recipes return ..() @@ -266,6 +277,32 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ /obj/item/stack/sheet/cloth/ten amount = 10 +/obj/item/stack/sheet/cloth/five + amount = 5 + +/obj/item/stack/sheet/cotton + name = "raw cotton bundle" + desc = "A bundle of raw cotton ready to be spun on the loom." + singular_name = "raw cotton ball" + icon_state = "sheet-cotton" + is_fabric = TRUE + resistance_flags = FLAMMABLE + force = 0 + throwforce = 0 + merge_type = /obj/item/stack/sheet/cotton + pull_effort = 30 + loom_result = /obj/item/stack/sheet/cloth + +/obj/item/stack/sheet/cotton/durathread + name = "raw durathread bundle" + desc = "A bundle of raw durathread ready to be spun on the loom." + singular_name = "raw durathread ball" + icon_state = "sheet-durathreadraw" + merge_type = /obj/item/stack/sheet/cotton/durathread + pull_effort = 70 + loom_result = /obj/item/stack/sheet/cloth/durathread + + /* * Cardboard */ diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index 21b43eba201..53388ef325e 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -12,4 +12,7 @@ novariants = FALSE var/perunit = MINERAL_MATERIAL_AMOUNT var/sheettype = null //this is used for girders in the creation of walls/false walls - var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity. \ No newline at end of file + var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity. + var/is_fabric = FALSE //is this a valid material for the loom? + var/loom_result //result from pulling on the loom + var/pull_effort = 0 //amount of delay when pulling on the loom \ No newline at end of file diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 0408f284d22..1d5834408b5 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -553,6 +553,7 @@ desc = "A dorky fannypack for keeping small items in." icon_state = "fannypack_leather" item_state = "fannypack_leather" + item_color = "fannypackleather" /obj/item/storage/belt/fannypack/ComponentInitialize() . = ..() @@ -564,51 +565,61 @@ name = "black fannypack" icon_state = "fannypack_black" item_state = "fannypack_black" + item_color = "black" /obj/item/storage/belt/fannypack/red name = "red fannypack" icon_state = "fannypack_red" item_state = "fannypack_red" + item_color = "red" /obj/item/storage/belt/fannypack/purple name = "purple fannypack" icon_state = "fannypack_purple" item_state = "fannypack_purple" + item_color = "purple" /obj/item/storage/belt/fannypack/blue name = "blue fannypack" icon_state = "fannypack_blue" item_state = "fannypack_blue" + item_color = "blue" /obj/item/storage/belt/fannypack/orange name = "orange fannypack" icon_state = "fannypack_orange" item_state = "fannypack_orange" + item_color = "orange" /obj/item/storage/belt/fannypack/white name = "white fannypack" icon_state = "fannypack_white" item_state = "fannypack_white" + item_color = "white" /obj/item/storage/belt/fannypack/green name = "green fannypack" icon_state = "fannypack_green" item_state = "fannypack_green" + item_color = "green" /obj/item/storage/belt/fannypack/pink name = "pink fannypack" icon_state = "fannypack_pink" item_state = "fannypack_pink" + item_color = "pink" /obj/item/storage/belt/fannypack/cyan name = "cyan fannypack" icon_state = "fannypack_cyan" item_state = "fannypack_cyan" + item_color = "cyan" /obj/item/storage/belt/fannypack/yellow name = "yellow fannypack" icon_state = "fannypack_yellow" item_state = "fannypack_yellow" + item_color = "yellow" /obj/item/storage/belt/sabre name = "sabre sheath" diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm new file mode 100644 index 00000000000..879287f3836 --- /dev/null +++ b/code/game/objects/structures/loom.dm @@ -0,0 +1,19 @@ +/obj/structure/loom + name = "loom" + desc = "A simple device used to weave cloth and other thread-based fabrics together into usable material." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "loom" + density = TRUE + anchored = TRUE + +/obj/structure/loom/attackby(obj/item/stack/sheet/W, mob/user) + if(W.is_fabric && W.amount > 1) + user.show_message("You start weaving the [W.name] through the loom..", 1) + if(W.use_tool(src, user, W.pull_effort)) + new W.loom_result(drop_location()) + user.show_message("You weave the [W.name] into a workable fabric.", 1) + W.amount = (W.amount - 2) + if(W.amount < 1) + qdel(W) + else + user.show_message("You need a valid fabric and at least 2 of said fabric before using this.", 1) \ No newline at end of file diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 7e8fa9826b7..9c75a4b9a25 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1585,9 +1585,10 @@ /datum/supply_pack/organic/seeds name = "Seeds Crate" - desc = "Big things have small beginnings. Contains thirteen different seeds." + desc = "Big things have small beginnings. Contains fourteen different seeds." cost = 1000 contains = list(/obj/item/seeds/chili, + /obj/item/seeds/cotton, /obj/item/seeds/berry, /obj/item/seeds/corn, /obj/item/seeds/eggplant, @@ -1605,7 +1606,7 @@ /datum/supply_pack/organic/exoticseeds name = "Exotic Seeds Crate" - desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!" + desc = "Any entrepreneuring botanist's dream. Contains fourteen different seeds, including three replica-pod seeds and two mystery seeds!" cost = 1500 contains = list(/obj/item/seeds/nettle, /obj/item/seeds/replicapod, @@ -1617,6 +1618,8 @@ /obj/item/seeds/reishi, /obj/item/seeds/banana, /obj/item/seeds/eggplant/eggy, + /obj/item/seeds/rainbow_bunch, + /obj/item/seeds/rainbow_bunch, /obj/item/seeds/random, /obj/item/seeds/random) crate_name = "exotic seeds crate" diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index f7c52c909e5..d83e7fb10c3 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -81,4 +81,4 @@ heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT cold_protection = HEAD - min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT \ No newline at end of file diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 8dd939b696a..bce67e92a2f 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -243,6 +243,14 @@ item_state = "skull" strip_delay = 100 +/obj/item/clothing/head/helmet/durathread + name = "makeshift helmet" + desc = "A hardhat with strips of leather and durathread for additional blunt protection." + icon_state = "durathread" + item_state = "durathread" + armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) + strip_delay = 60 + //LightToggle /obj/item/clothing/head/helmet/update_icon() diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index e89c6e1b81d..7a1b939d5ce 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -92,51 +92,60 @@ name = "white scarf" icon_state = "scarf" desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." - item_color = "scarf" + item_color = "white" dog_fashion = /datum/dog_fashion/head /obj/item/clothing/neck/scarf/black name = "black scarf" + item_color = "black" icon_state = "scarf" color = "#4A4A4B" //Grey but it looks black /obj/item/clothing/neck/scarf/pink name = "pink scarf" + item_color = "pink" icon_state = "scarf" color = "#F699CD" //Pink /obj/item/clothing/neck/scarf/red name = "red scarf" + item_color = "red" icon_state = "scarf" color = "#D91414" //Red /obj/item/clothing/neck/scarf/green name = "green scarf" + item_color = "green" icon_state = "scarf" color = "#5C9E54" //Green /obj/item/clothing/neck/scarf/darkblue name = "dark blue scarf" + item_color = "blue" icon_state = "scarf" color = "#1E85BC" //Blue /obj/item/clothing/neck/scarf/purple name = "purple scarf" + item_color = "purple" icon_state = "scarf" color = "#9557C5" //Purple /obj/item/clothing/neck/scarf/yellow name = "yellow scarf" + item_color = "yellow" icon_state = "scarf" color = "#E0C14F" //Yellow /obj/item/clothing/neck/scarf/orange name = "orange scarf" + item_color = "orange" icon_state = "scarf" color = "#C67A4B" //Orange /obj/item/clothing/neck/scarf/cyan name = "cyan scarf" + item_color = "cyan" icon_state = "scarf" color = "#54A3CE" //Cyan diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index f73ca30fb09..4569533dc28 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -234,3 +234,14 @@ /obj/item/clothing/suit/armor/riot/knight/red icon_state = "knight_red" item_state = "knight_red" + +/obj/item/clothing/suit/armor/vest/durathread + name = "makeshift vest" + desc = "A vest made of durathread with strips of leather acting as trauma plates." + icon_state = "durathread" + item_state = "durathread" + strip_delay = 60 + equip_delay_other = 40 + max_integrity = 200 + resistance_flags = FLAMMABLE + armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 5, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 253621d60bf..0c299feb0cb 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -635,68 +635,6 @@ tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) category = CAT_MISC -/datum/crafting_recipe/hudsunsec - name = "Security HUDsunglasses" - result = /obj/item/clothing/glasses/hud/security/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/security = 1, - /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/stack/cable_coil = 5) - category = CAT_CLOTHING - -/datum/crafting_recipe/hudsunsecremoval - name = "Security HUD removal" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/security/sunglasses = 1) - category = CAT_CLOTHING - -/datum/crafting_recipe/hudsunmed - name = "Medical HUDsunglasses" - result = /obj/item/clothing/glasses/hud/health/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/health = 1, - /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/stack/cable_coil = 5) - category = CAT_CLOTHING - -/datum/crafting_recipe/hudsunmedremoval - name = "Medical HUD removal" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/health/sunglasses = 1) - category = CAT_CLOTHING - -/datum/crafting_recipe/beergoggles - name = "Beer Goggles" - result = /obj/item/clothing/glasses/sunglasses/reagent - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/science = 1, - /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/stack/cable_coil = 5) - category = CAT_CLOTHING - -/datum/crafting_recipe/beergogglesremoval - name = "Beer Goggles removal" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/sunglasses/reagent = 1) - category = CAT_CLOTHING - -/datum/crafting_recipe/ghostsheet - name = "Ghost Sheet" - result = /obj/item/clothing/suit/ghost_sheet - time = 5 - tools = list(TOOL_WIRECUTTER) - reqs = list(/obj/item/bedsheet = 1) - category = CAT_CLOTHING - /datum/crafting_recipe/aitater name = "intelliTater" result = /obj/item/aicard/aitater diff --git a/code/modules/crafting/tailoring.dm b/code/modules/crafting/tailoring.dm new file mode 100644 index 00000000000..89e100889a6 --- /dev/null +++ b/code/modules/crafting/tailoring.dm @@ -0,0 +1,86 @@ +/datum/crafting_recipe/durathread_vest + name = "Makeshift Durathread Vest" + result = /obj/item/clothing/suit/armor/vest/durathread + reqs = list(/obj/item/stack/sheet/cloth/durathread = 5, + /obj/item/stack/sheet/leather = 4) + time = 50 + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_helmet + name = "Makeshift Durathread Helmet" + result = /obj/item/clothing/head/helmet/durathread + reqs = list(/obj/item/stack/sheet/cloth/durathread = 4, + /obj/item/stack/sheet/leather = 3, + /obj/item/clothing/head/hardhat = 1) + time = 40 + category = CAT_CLOTHING + +/datum/crafting_recipe/fannypack + name = "Fannypack" + result = /obj/item/storage/belt/fannypack + reqs = list(/obj/item/stack/sheet/cloth = 2, + /obj/item/stack/sheet/leather = 1) + time = 20 + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunsec + name = "Security HUDsunglasses" + result = /obj/item/clothing/glasses/hud/security/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/security = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunsecremoval + name = "Security HUD removal" + result = /obj/item/clothing/glasses/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/security/sunglasses = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunmed + name = "Medical HUDsunglasses" + result = /obj/item/clothing/glasses/hud/health/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/health = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunmedremoval + name = "Medical HUD removal" + result = /obj/item/clothing/glasses/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/health/sunglasses = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/beergoggles + name = "Beer Goggles" + result = /obj/item/clothing/glasses/sunglasses/reagent + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/science = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/beergogglesremoval + name = "Beer Goggles removal" + result = /obj/item/clothing/glasses/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/sunglasses/reagent = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/ghostsheet + name = "Ghost Sheet" + result = /obj/item/clothing/suit/ghost_sheet + time = 5 + tools = list(TOOL_WIRECUTTER) + reqs = list(/obj/item/bedsheet = 1) + category = CAT_CLOTHING \ No newline at end of file diff --git a/code/modules/hydroponics/grown/cotton.dm b/code/modules/hydroponics/grown/cotton.dm new file mode 100644 index 00000000000..3fa4247f578 --- /dev/null +++ b/code/modules/hydroponics/grown/cotton.dm @@ -0,0 +1,79 @@ +/obj/item/seeds/cotton + name = "pack of cotton seeds" + desc = "A pack of seeds that'll grow into a cotton plant. Assistants make good free labor if neccesary." + icon_state = "seed-cotton" + species = "cotton" + plantname = "Cotton" + icon_harvest = "cotton-harvest" + product = /obj/item/grown/cotton + lifespan = 35 + endurance = 25 + maturation = 15 + production = 1 + yield = 2 + potency = 50 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing.dmi' + icon_dead = "cotton-dead" + mutatelist = list(/obj/item/seeds/cotton/durathread) + +/obj/item/grown/cotton + seed = /obj/item/seeds/cotton + name = "cotton bundle" + desc = "A fluffy bundle of cotton." + icon_state = "cotton" + force = 0 + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + throw_speed = 2 + throw_range = 3 + attack_verb = list("pomfed") + var/cotton_type = /obj/item/stack/sheet/cotton + var/cotton_name = "raw cotton" + +/obj/item/grown/cotton/attack_self(mob/user) + user.show_message("You pull some [cotton_name] out of the [name]!", 1) + var/seed_modifier = 0 + if(seed) + seed_modifier = round(seed.potency / 25) + var/obj/item/stack/cotton = new cotton_type(user.loc, 1 + seed_modifier) + var/old_cotton_amount = cotton.amount + for(var/obj/item/stack/ST in user.loc) + if(ST != cotton && istype(ST, cotton_type) && ST.amount < ST.max_amount) + ST.attackby(cotton, user) + if(cotton.amount > old_cotton_amount) + to_chat(user, "You add the newly-formed [cotton_name] to the stack. It now contains [cotton.amount] [cotton_name].") + qdel(src) + +//reinforced mutated variant +/obj/item/seeds/cotton/durathread + name = "pack of durathread seeds" + desc = "A pack of seeds that'll grow into an extremely durable thread that could easily rival plasteel if woven properly." + icon_state = "seed-durathread" + species = "durathread" + plantname = "Durathread" + icon_harvest = "durathread-harvest" + product = /obj/item/grown/cotton/durathread + lifespan = 80 + endurance = 50 + maturation = 15 + production = 1 + yield = 2 + potency = 50 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing.dmi' + icon_dead = "cotton-dead" + +/obj/item/grown/cotton/durathread + seed = /obj/item/seeds/cotton/durathread + name = "durathread bundle" + desc = "A tough bundle of durathread, good luck unraveling this." + icon_state = "durathread" + force = 5 + throwforce = 5 + w_class = WEIGHT_CLASS_NORMAL + throw_speed = 2 + throw_range = 3 + attack_verb = list("bashed", "battered", "bludgeoned", "whacked") + cotton_type = /obj/item/stack/sheet/cotton/durathread + cotton_name = "raw durathread" \ No newline at end of file diff --git a/code/modules/hydroponics/grown/rainbow_bunch.dm b/code/modules/hydroponics/grown/rainbow_bunch.dm new file mode 100644 index 00000000000..c50de8d8c50 --- /dev/null +++ b/code/modules/hydroponics/grown/rainbow_bunch.dm @@ -0,0 +1,77 @@ +/obj/item/seeds/rainbow_bunch + name = "pack of rainbow bunch seeds" + desc = "A pack of seeds that'll grow into a beautiful bush of various colored flowers." + icon_state = "seed-rainbowbunch" + species = "rainbowbunch" + plantname = "Rainbow Flowers" + icon_harvest = "rainbowbunch-harvest" + product = /obj/item/reagent_containers/food/snacks/grown/rainbow_flower + lifespan = 25 + endurance = 10 + maturation = 6 + production = 3 + yield = 5 + potency = 20 + growthstages = 4 + growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' + icon_dead = "rainbowbunch-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) + reagents_add = list("nutriment" = 0.05) + +/obj/item/reagent_containers/food/snacks/grown/rainbow_flower + seed = /obj/item/seeds/rainbow_bunch + name = "rainbow flower" + desc = "A beautiful flower capable of being used for most dyeing processes." + icon_state = "rainbow_flower" + slot_flags = ITEM_SLOT_HEAD + force = 0 + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + throw_speed = 2 + throw_range = 3 + attack_verb = list("pompfed") + +/obj/item/reagent_containers/food/snacks/grown/rainbow_flower/Initialize() + . = ..() + var/flower_color = rand(1,8) + switch(flower_color) + if(1) + item_color = "red" + color = "#DA0000" + list_reagents = list("redcrayonpowder" = 3) + desc += " This one is in a bright red color." + if(2) + item_color = "orange" + color = "#FF9300" + list_reagents = list("orangecrayonpowder" = 3) + desc += " This one is in a citrus orange color." + if(3) + item_color = "yellow" + color = "#FFF200" + list_reagents = list("yellowcrayonpowder" = 3) + desc += " This one is in a bright yellow color." + if(4) + item_color = "green" + color = "#A8E61D" + list_reagents = list("greencrayonpowder" = 3) + desc += " This one is in a grassy green color." + if(5) + item_color = "blue" + color = "#00B7EF" + list_reagents = list("bluecrayonpowder" = 3) + desc += " This one is in a soothing blue color." + if(6) + item_color = "purple" + color = "#DA00FF" + list_reagents = list("purplecrayonpowder" = 3) + desc += " This one is in a vibrant purple color." + if(7) + item_color = "black" + color = "#1C1C1C" + list_reagents = list("blackcrayonpowder" = 3) + desc += " This one is in a midnight black color." + if(8) + item_color = "white" + color = "#FFFFFF" + list_reagents = list("whitecrayonpowder" = 3) + desc += " This one is in a pure white color." diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm index b3feaf619d4..f6763d6b846 100644 --- a/code/modules/vending/megaseed.dm +++ b/code/modules/vending/megaseed.dm @@ -6,6 +6,7 @@ icon_state = "seeds" products = list(/obj/item/seeds/ambrosia = 3, /obj/item/seeds/apple = 3, + /obj/item/seeds/cotton = 3, /obj/item/seeds/banana = 3, /obj/item/seeds/berry = 3, /obj/item/seeds/cabbage = 3, @@ -52,4 +53,4 @@ resistance_flags = FIRE_PROOF default_price = 25 extra_price = 50 - payment_department = ACCOUNT_SRV \ No newline at end of file + payment_department = ACCOUNT_SRV diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 5f01bb5749e..7a01cbcdc34 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 46b229388d5..d51b938c6e1 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index fa10f9538ab..69b80e8a9c6 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 10e45387e5f..abd533b0a97 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index f01f7cac77b..a5c645130de 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/hydroponics/equipment.dmi b/icons/obj/hydroponics/equipment.dmi index 82dce552a78..dd4d1e1f93c 100644 Binary files a/icons/obj/hydroponics/equipment.dmi and b/icons/obj/hydroponics/equipment.dmi differ diff --git a/icons/obj/hydroponics/growing.dmi b/icons/obj/hydroponics/growing.dmi index 162c6b047e6..e7dee2290d7 100644 Binary files a/icons/obj/hydroponics/growing.dmi and b/icons/obj/hydroponics/growing.dmi differ diff --git a/icons/obj/hydroponics/growing_flowers.dmi b/icons/obj/hydroponics/growing_flowers.dmi index 2752ad8dc50..f8710f11310 100644 Binary files a/icons/obj/hydroponics/growing_flowers.dmi and b/icons/obj/hydroponics/growing_flowers.dmi differ diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index 054aa47bbd0..40a52a9c456 100644 Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index 4c898aecd36..2d34b2b7ed1 100644 Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi index 6d2b2b64cde..ac2d42378a8 100644 Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ diff --git a/tgstation.dme b/tgstation.dme index b20f1529c63..5a56c21e3cf 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -972,6 +972,7 @@ #include "code\game\objects\structures\ladders.dm" #include "code\game\objects\structures\lattice.dm" #include "code\game\objects\structures\life_candle.dm" +#include "code\game\objects\structures\loom.dm" #include "code\game\objects\structures\manned_turret.dm" #include "code\game\objects\structures\memorial.dm" #include "code\game\objects\structures\mineral_doors.dm" @@ -1518,6 +1519,7 @@ #include "code\modules\crafting\craft.dm" #include "code\modules\crafting\guncrafting.dm" #include "code\modules\crafting\recipes.dm" +#include "code\modules\crafting\tailoring.dm" #include "code\modules\detectivework\detective_work.dm" #include "code\modules\detectivework\evidence.dm" #include "code\modules\detectivework\footprints_and_rag.dm" @@ -1684,6 +1686,7 @@ #include "code\modules\hydroponics\grown\citrus.dm" #include "code\modules\hydroponics\grown\cocoa_vanilla.dm" #include "code\modules\hydroponics\grown\corn.dm" +#include "code\modules\hydroponics\grown\cotton.dm" #include "code\modules\hydroponics\grown\eggplant.dm" #include "code\modules\hydroponics\grown\flowers.dm" #include "code\modules\hydroponics\grown\grass_carpet.dm" @@ -1696,6 +1699,7 @@ #include "code\modules\hydroponics\grown\pineapple.dm" #include "code\modules\hydroponics\grown\potato.dm" #include "code\modules\hydroponics\grown\pumpkin.dm" +#include "code\modules\hydroponics\grown\rainbow_bunch.dm" #include "code\modules\hydroponics\grown\random.dm" #include "code\modules\hydroponics\grown\replicapod.dm" #include "code\modules\hydroponics\grown\root.dm"