From 6f7a7177f27413373ebac6be6ce038a109cb17d8 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Fri, 16 Jan 2015 02:57:59 +0300 Subject: [PATCH 1/3] Adds drying racks and updates pipes You can now dry plants using a special machine, and you can now stuff those plants into pipes to smoke then. It slowly transfers the reagents from the plant into the smoker. --- code/WorkInProgress/Chinsky/ashtray.dm | 10 +- code/__HELPERS/unsorted.dm | 4 +- code/game/machinery/kitchen/smartfridge.dm | 97 +++-- code/game/machinery/washing_machine.dm | 2 +- code/game/objects/effects/landmarks.dm | 2 +- code/game/objects/items/weapons/RSF.dm | 2 +- .../objects/items/weapons/cigs_lighters.dm | 388 ++++++++++-------- .../objects/items/weapons/storage/fancy.dm | 14 +- code/modules/admin/verbs/debug.dm | 2 +- code/modules/awaymissions/corpse.dm | 2 +- code/modules/hydroponics/grown_inedible.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 2 +- .../reagents/reagent_containers/dropper.dm | 2 +- .../reagent_containers/food/snacks.dm | 2 + .../reagent_containers/food/snacks/grown.dm | 4 + .../reagents/reagent_containers/syringes.dm | 2 +- code/modules/surgery/eye.dm | 2 +- code/modules/surgery/face.dm | 2 +- code/modules/surgery/generic.dm | 2 +- code/modules/surgery/headreattach.dm | 2 +- code/modules/surgery/implant.dm | 2 +- code/modules/surgery/robolimbs.dm | 2 +- maps/exodus-1.dmm | 6 +- maps/exodus-2.dmm | 4 +- 24 files changed, 312 insertions(+), 247 deletions(-) diff --git a/code/WorkInProgress/Chinsky/ashtray.dm b/code/WorkInProgress/Chinsky/ashtray.dm index 1e48c49499..1e2fc4884f 100644 --- a/code/WorkInProgress/Chinsky/ashtray.dm +++ b/code/WorkInProgress/Chinsky/ashtray.dm @@ -17,15 +17,15 @@ /obj/item/ashtray/attackby(obj/item/weapon/W as obj, mob/user as mob) if (health < 1) return - if (istype(W,/obj/item/weapon/cigbutt) || istype(W,/obj/item/clothing/mask/cigarette) || istype(W, /obj/item/weapon/flame/match)) + if (istype(W,/obj/item/weapon/cigbutt) || istype(W,/obj/item/clothing/mask/smokable/cigarette) || istype(W, /obj/item/weapon/flame/match)) if (contents.len >= max_butts) user << "This ashtray is full." return user.u_equip(W) W.loc = src - if (istype(W,/obj/item/clothing/mask/cigarette)) - var/obj/item/clothing/mask/cigarette/cig = W + if (istype(W,/obj/item/clothing/mask/smokable/cigarette)) + var/obj/item/clothing/mask/smokable/cigarette/cig = W if (cig.lit == 1) src.visible_message("[user] crushes [cig] in [src], putting it out.") processing_objects.Remove(cig) @@ -61,14 +61,14 @@ return if (contents.len) src.visible_message("\red [src] slams into [hit_atom] spilling its contents!") - for (var/obj/item/clothing/mask/cigarette/O in contents) + for (var/obj/item/clothing/mask/smokable/cigarette/O in contents) O.loc = src.loc icon_state = icon_empty return ..() /obj/item/ashtray/proc/die() src.visible_message("\red [src] shatters spilling its contents!") - for (var/obj/item/clothing/mask/cigarette/O in contents) + for (var/obj/item/clothing/mask/smokable/cigarette/O in contents) O.loc = src.loc icon_state = icon_broken diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index d78f3e7a9d..8969102e00 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1249,7 +1249,7 @@ proc/is_hot(obj/item/W as obj) return 1000 else return 0 - if(/obj/item/clothing/mask/cigarette) + if(/obj/item/clothing/mask/smokable/cigarette) if(W:lit) return 1000 else @@ -1287,7 +1287,7 @@ proc/is_hot(obj/item/W as obj) istype(W, /obj/item/weapon/weldingtool) || \ istype(W, /obj/item/weapon/flame/lighter/zippo) || \ istype(W, /obj/item/weapon/flame/match) || \ - istype(W, /obj/item/clothing/mask/cigarette) || \ + istype(W, /obj/item/clothing/mask/smokable/cigarette) || \ istype(W, /obj/item/weapon/shovel) \ ) diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index 52ca3debd9..8e86678ef2 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -16,8 +16,6 @@ var/icon_off = "smartfridge-off" var/icon_panel = "smartfridge-panel" var/item_quants = list() - var/ispowered = 1 //starts powered - var/isbroken = 0 var/seconds_electrified = 0; var/shoot_inventory = 0 var/locked = 0 @@ -26,7 +24,7 @@ var/is_secure = 0 var/datum/wires/smartfridge/wires = null -/obj/machinery/smartfridge/secure/ +/obj/machinery/smartfridge/secure is_secure = 1 /obj/machinery/smartfridge/New() @@ -121,8 +119,39 @@ if(istype(O,/obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks) || istype(O,/obj/item/weapon/reagent_containers/food/condiment)) return 1 +/obj/machinery/smartfridge/drying_rack + name = "\improper Drying Rack" + desc = "A machine for drying plants." + +/obj/machinery/smartfridge/drying_rack/accept_check(var/obj/item/O as obj) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/)) + var/obj/item/weapon/reagent_containers/food/snacks/S = O + if (S.dried_type) + return 1 + return 0 + +/obj/machinery/smartfridge/drying_rack/process() + ..() + if (contents.len) + dry() + +/obj/machinery/smartfridge/drying_rack/proc/dry() + for(var/obj/item/weapon/reagent_containers/food/snacks/S in contents) + if(S.dried_type == S.type) + S.dry = 1 + item_quants[S.name]-- + S.name = "dried [S.name]" + S.loc = loc + else + var/D = S.dried_type + new D(loc) + item_quants[S.name]-- + del(S) + return + return + /obj/machinery/smartfridge/process() - if(!src.ispowered) + if(stat & (BROKEN|NOPOWER)) return if(src.seconds_electrified > 0) src.seconds_electrified-- @@ -130,16 +159,16 @@ src.throw_item() /obj/machinery/smartfridge/power_change() + var/old_stat = stat ..() - if( !(stat & NOPOWER) ) - src.ispowered = 1 - if(!isbroken) - icon_state = icon_on + if(old_stat != stat) + update_icon() + +/obj/machinery/smartfridge/update_icon() + if(stat & (BROKEN|NOPOWER)) + icon_state = icon_off else - spawn(rand(0, 15)) - src.ispowered = 0 - if(!isbroken) - icon_state = icon_off + icon_state = icon_on /******************* * Item Adding @@ -148,7 +177,7 @@ /obj/machinery/smartfridge/attackby(var/obj/item/O as obj, var/mob/user as mob) if(istype(O, /obj/item/weapon/screwdriver)) panel_open = !panel_open - user << "You [panel_open ? "open" : "close"] the maintenance panel." + user.visible_message("[user] [panel_open ? "opens" : "closes"] the maintenance panel of \the [src].", "You [panel_open ? "open" : "close"] the maintenance panel of \the [src].") overlays.Cut() if(panel_open) overlays += image(icon, icon_panel) @@ -160,7 +189,7 @@ attack_hand(user) return - if(!src.ispowered) + if(stat & NOPOWER) user << "\The [src] is unpowered and useless." return @@ -175,13 +204,12 @@ item_quants[O.name]++ else item_quants[O.name] = 1 - user.visible_message("[user] has added \the [O] to \the [src].", \ - "You add \the [O] to \the [src].") + user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") nanomanager.update_uis(src) - else if(istype(O, /obj/item/weapon/storage/bag/plants)) - var/obj/item/weapon/storage/bag/plants/P = O + else if(istype(O, /obj/item/weapon/storage/bag)) + var/obj/item/weapon/storage/bag/P = O var/plants_loaded = 0 for(var/obj/G in P.contents) if(accept_check(G)) @@ -197,9 +225,7 @@ plants_loaded++ if(plants_loaded) - user.visible_message( \ - "[user] loads \the [src] with \the [P].", \ - "You load \the [src] with \the [P].") + user.visible_message("[user] loads \the [src] with \the [P].", "You load \the [src] with \the [P].") if(P.contents.len > 0) user << "Some items are refused." @@ -210,7 +236,7 @@ return 1 /obj/machinery/smartfridge/secure/attackby(var/obj/item/O as obj, var/mob/user as mob) - if (istype(O, /obj/item/weapon/card/emag)) + if(istype(O, /obj/item/weapon/card/emag)) emagged = 1 locked = -1 user << "You short out the product lock on [src]." @@ -222,7 +248,8 @@ return 0 /obj/machinery/smartfridge/attack_hand(mob/user as mob) - if(!ispowered) return + if(stat & (NOPOWER|BROKEN)) + return wires.Interact(user) ui_interact(user) @@ -244,32 +271,32 @@ for (var/i=1 to length(item_quants)) var/K = item_quants[i] var/count = item_quants[K] - if (count > 0) + if(count > 0) items.Add(list(list("display_name" = html_encode(capitalize(K)), "vend" = i, "quantity" = count))) - if (items.len > 0) + if(items.len > 0) data["contents"] = items ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) - if (!ui) + if(!ui) ui = new(user, src, ui_key, "smartfridge.tmpl", src.name, 400, 500) ui.set_initial_data(data) ui.open() /obj/machinery/smartfridge/Topic(href, href_list) - if (..()) return 0 + if(..()) return 0 var/mob/user = usr var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main") src.add_fingerprint(user) - if (href_list["close"]) + if(href_list["close"]) user.unset_machine() ui.close() return 0 - if (href_list["vend"]) + if(href_list["vend"]) var/index = text2num(href_list["vend"]) var/amount = text2num(href_list["amount"]) var/K = item_quants[index] @@ -281,10 +308,10 @@ var/i = amount for(var/obj/O in contents) - if (O.name == K) + if(O.name == K) O.loc = loc i-- - if (i <= 0) + if(i <= 0) return 1 return 1 @@ -319,9 +346,9 @@ *************************/ /obj/machinery/smartfridge/secure/Topic(href, href_list) - if(!ispowered) return 0 - if (usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) - if (!allowed(usr) && !emagged && locked != -1 && href_list["vend"]) - usr << "\red Access denied." + if(stat & (NOPOWER|BROKEN)) return 0 + if(usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) + if(!allowed(usr) && !emagged && locked != -1 && href_list["vend"]) + usr << "Access denied." return 0 return ..() diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 77fde8ef7e..ad433d12e2 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -250,7 +250,7 @@ if ( istype(W,/obj/item/clothing/mask/gas ) ) user << "This item does not fit." return - if ( istype(W,/obj/item/clothing/mask/cigarette ) ) + if ( istype(W,/obj/item/clothing/mask/smokable/cigarette ) ) user << "This item does not fit." return if ( istype(W,/obj/item/clothing/head/syndicatefake ) ) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index dbfd0a9e61..b88847c6aa 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -144,7 +144,7 @@ /obj/effect/landmark/costume/elpresidente/New() new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc) new /obj/item/clothing/head/flatcap(src.loc) - new /obj/item/clothing/mask/cigarette/cigar/havana(src.loc) + new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(src.loc) new /obj/item/clothing/shoes/jackboots(src.loc) del(src) diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index f9f32bbeb1..5fe6016092 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -100,7 +100,7 @@ RSF product = new /obj/item/weapon/storage/pill_bottle/dice() used_energy = 200 if(6) - product = new /obj/item/clothing/mask/cigarette() + product = new /obj/item/clothing/mask/smokable/cigarette() used_energy = 10 user << "Dispensing [product ? product : "product"]..." diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 4d09a26bcf..90ba157260 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -16,6 +16,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/weapon/flame var/lit = 0 +/proc/isflamesource(A) + if(istype(A, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = A + return (WT.isOn()) + else if(istype(A, /obj/item/weapon/flame)) + var/obj/item/weapon/flame/F = A + return (F.lit) + else if(istype(A, /obj/item/device/assembly/igniter)) + return 1 + return 0 + /////////// //MATCHES// /////////// @@ -58,85 +69,50 @@ CIGARETTE PACKETS ARE IN FANCY.DM ////////////////// //FINE SMOKABLES// ////////////////// -/obj/item/clothing/mask/cigarette - name = "cigarette" - desc = "A roll of tobacco and nicotine." - icon_state = "cigoff" - throw_speed = 0.5 - item_state = "cigoff" - w_class = 1 +/obj/item/clothing/mask/smokable + name = "smokable item" + desc = "You're not sure what this is. You should probably ahelp it." body_parts_covered = 0 - attack_verb = list("burnt", "singed") var/lit = 0 - var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi - var/icon_off = "cigoff" - var/type_butt = /obj/item/weapon/cigbutt - var/lastHolder = null - var/smoketime = 300 - var/chem_volume = 15 - body_parts_covered = 0 + var/icon_on + var/icon_off + var/type_butt = null + var/chem_volume = 0 + var/smoketime = 0 -/obj/item/clothing/mask/cigarette/New() +/obj/item/clothing/mask/smokable/New() ..() flags |= NOREACT // so it doesn't react until you light it create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15 -/obj/item/clothing/mask/cigarette/Del() +/obj/item/clothing/mask/smokable/Del() ..() del(reagents) -/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.isOn())//Badasses dont get blinded while lighting their cig with a welding tool - light("[user] casually lights the [name] with [W].") +/obj/item/clothing/mask/smokable/process() + var/turf/location = get_turf(src) + smoketime-- + if(smoketime < 1) + die() + return + if(location) + location.hotspot_expose(700, 5) + if(reagents && reagents.total_volume) // check if it has any reagents at all + if(iscarbon(loc)) + var/mob/living/carbon/C = loc + if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob + if(istype(C, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = C + if(H.species.flags & IS_SYNTHETIC) + return - else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) - var/obj/item/weapon/flame/lighter/zippo/Z = W - if(Z.lit) - light("With a flick of their wrist, [user] lights their [name] with their [W].") - - else if(istype(W, /obj/item/weapon/flame/lighter)) - var/obj/item/weapon/flame/lighter/L = W - if(L.lit) - light("[user] manages to light their [name] with [W].") - - else if(istype(W, /obj/item/weapon/flame/match)) - var/obj/item/weapon/flame/match/M = W - if(M.lit) - light("[user] lights their [name] with their [W].") - - else if(istype(W, /obj/item/weapon/melee/energy/sword)) - var/obj/item/weapon/melee/energy/sword/S = W - if(S.active) - light("[user] swings their [W], barely missing their nose. They light their [name] in the process.") - - else if(istype(W, /obj/item/device/assembly/igniter)) - light("[user] fiddles with [W], and manages to light their [name].") - - //can't think of any other way to update the overlays :< - user.update_inv_wear_mask(0) - user.update_inv_l_hand(0) - user.update_inv_r_hand(1) + reagents.trans_to(C, REAGENTS_METABOLISM, 0.2) // Most of it is not inhaled... balance reasons. + reagents.reaction(C) + else // else just remove some of the reagents + reagents.remove_any(REAGENTS_METABOLISM) return - -/obj/item/clothing/mask/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user as mob, proximity) - ..() - if(!proximity) return - if(istype(glass)) //you can dip cigarettes into beakers - var/transfered = glass.reagents.trans_to(src, chem_volume) - if(transfered) //if reagents were transfered, show the message - user << "You dip \the [src] into \the [glass]." - else //if not, either the beaker was empty, or the cigarette was full - if(!glass.reagents.total_volume) - user << "[glass] is empty." - else - user << "[src] is full." - - -/obj/item/clothing/mask/cigarette/proc/light(var/flavor_text = "[usr] lights the [name].") +/obj/item/clothing/mask/smokable/proc/light(var/flavor_text = "[usr] lights the [name].") if(!src.lit) src.lit = 1 damtype = "fire" @@ -156,58 +132,113 @@ CIGARETTE PACKETS ARE IN FANCY.DM reagents.handle_reactions() icon_state = icon_on item_state = icon_on + if(ismob(loc)) + var/mob/living/M = loc + M.update_inv_wear_mask(0) var/turf/T = get_turf(src) T.visible_message(flavor_text) processing_objects.Add(src) +/obj/item/clothing/mask/smokable/proc/die(var/nomessage = 0) + var/turf/T = get_turf(src) + if (type_butt) + var/obj/item/butt = new type_butt(T) + transfer_fingerprints_to(butt) + if(ismob(loc)) + var/mob/living/M = loc + if (!nomessage) + M << "Your [name] goes out." + M.u_equip(src) //un-equip it so the overlays can update + M.update_inv_wear_mask(0) + processing_objects.Remove(src) + del(src) + else + new /obj/effect/decal/cleanable/ash(T) + if(ismob(loc)) + var/mob/living/M = loc + if (!nomessage) + M << "Your [name] goes out, and you empty the ash." + lit = 0 + icon_state = icon_off + item_state = icon_off + M.update_inv_wear_mask(0) + processing_objects.Remove(src) -/obj/item/clothing/mask/cigarette/process() - var/turf/location = get_turf(src) - smoketime-- - if(smoketime < 1) - die() - return - if(location) - location.hotspot_expose(700, 5) - if(reagents && reagents.total_volume) // check if it has any reagents at all - if(iscarbon(loc) && (src == loc:wear_mask)) // if it's in the human/monkey mouth, transfer reagents to the mob - if(istype(loc, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = loc - if(H.species.flags & IS_SYNTHETIC) - return - var/mob/living/carbon/C = loc +/obj/item/clothing/mask/smokable/cigarette + name = "cigarette" + desc = "A roll of tobacco and nicotine." + icon_state = "cigoff" + throw_speed = 0.5 + item_state = "cigoff" + w_class = 1 + attack_verb = list("burnt", "singed") + icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi + icon_off = "cigoff" + type_butt = /obj/item/weapon/cigbutt + chem_volume = 15 + smoketime = 300 - if(prob(15)) // so it's not an instarape in case of acid - reagents.reaction(C, INGEST) - reagents.trans_to(C, REAGENTS_METABOLISM) - else // else just remove some of the reagents - reagents.remove_any(REAGENTS_METABOLISM) +/obj/item/clothing/mask/smokable/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if (isflamesource(W)) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.isOn())//Badasses dont get blinded while lighting their cig with a welding tool + light("[user] casually lights the [name] with [W].") + + else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) + var/obj/item/weapon/flame/lighter/zippo/Z = W + if(Z.lit) + light("With a flick of their wrist, [user] lights their [name] with their [W].") + + else if(istype(W, /obj/item/weapon/flame/lighter)) + var/obj/item/weapon/flame/lighter/L = W + if(L.lit) + light("[user] manages to light their [name] with [W].") + + else if(istype(W, /obj/item/weapon/flame/match)) + var/obj/item/weapon/flame/match/M = W + if(M.lit) + light("[user] lights their [name] with their [W].") + + else if(istype(W, /obj/item/device/assembly/igniter)) + light("[user] fiddles with [W], and manages to light their [name].") + + else if(istype(W, /obj/item/weapon/melee/energy/sword)) + var/obj/item/weapon/melee/energy/sword/S = W + if(S.active) + light("[user] swings their [W], barely missing their nose. They light their [name] in the process.") + + //can't think of any other way to update the overlays :< + user.update_inv_wear_mask(0) + user.update_inv_l_hand(0) + user.update_inv_r_hand(1) return +/obj/item/clothing/mask/smokable/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user as mob, proximity) + ..() + if(!proximity) + return + if(istype(glass)) //you can dip cigarettes into beakers + var/transfered = glass.reagents.trans_to(src, chem_volume) + if(transfered) //if reagents were transfered, show the message + user << "You dip \the [src] into \the [glass]." + else //if not, either the beaker was empty, or the cigarette was full + if(!glass.reagents.total_volume) + user << "[glass] is empty." + else + user << "[src] is full." -/obj/item/clothing/mask/cigarette/attack_self(mob/user as mob) +/obj/item/clothing/mask/smokable/cigarette/attack_self(mob/user as mob) if(lit == 1) user.visible_message("[user] calmly drops and treads on the lit [src], putting it out instantly.") - die() + die(1) return ..() - -/obj/item/clothing/mask/cigarette/proc/die() - var/turf/T = get_turf(src) - var/obj/item/butt = new type_butt(T) - transfer_fingerprints_to(butt) - if(ismob(loc)) - var/mob/living/M = loc - M << "Your [name] goes out." - M.u_equip(src) //un-equip it so the overlays can update - M.update_inv_wear_mask(0) - processing_objects.Remove(src) - del(src) - //////////// // CIGARS // //////////// -/obj/item/clothing/mask/cigarette/cigar +/obj/item/clothing/mask/smokable/cigarette/cigar name = "premium cigar" desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" icon_state = "cigar2off" @@ -219,14 +250,14 @@ CIGARETTE PACKETS ARE IN FANCY.DM smoketime = 1500 chem_volume = 20 -/obj/item/clothing/mask/cigarette/cigar/cohiba +/obj/item/clothing/mask/smokable/cigarette/cigar/cohiba name = "\improper Cohiba Robusto cigar" desc = "There's little more you could want from a cigar." icon_state = "cigar2off" icon_on = "cigar2on" icon_off = "cigar2off" -/obj/item/clothing/mask/cigarette/cigar/havana +/obj/item/clothing/mask/smokable/cigarette/cigar/havana name = "premium Havanian cigar" desc = "A cigar fit for only the best of the best." icon_state = "cigar2off" @@ -254,50 +285,55 @@ CIGARETTE PACKETS ARE IN FANCY.DM desc = "A manky old cigar butt." icon_state = "cigarbutt" +/obj/item/clothing/mask/smokable/cigarette/cigar/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(isflamesource(W)) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.isOn()) + light("[user] insults [name] by lighting it with [W].") -/obj/item/clothing/mask/cigarette/cigar/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.isOn()) - light("[user] insults [name] by lighting it with [W].") + else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) + var/obj/item/weapon/flame/lighter/zippo/Z = W + if(Z.lit) + light("With a flick of their wrist, [user] lights their [name] with their [W].") - else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) - var/obj/item/weapon/flame/lighter/zippo/Z = W - if(Z.lit) - light("With a flick of their wrist, [user] lights their [name] with their [W].") + else if(istype(W, /obj/item/weapon/flame/lighter)) + var/obj/item/weapon/flame/lighter/L = W + if(L.lit) + light("[user] manages to offend their [name] by lighting it with [W].") - else if(istype(W, /obj/item/weapon/flame/lighter)) - var/obj/item/weapon/flame/lighter/L = W - if(L.lit) - light("[user] manages to offend their [name] by lighting it with [W].") + else if(istype(W, /obj/item/weapon/flame/match)) + var/obj/item/weapon/flame/match/M = W + if(M.lit) + light("[user] lights their [name] with their [W].") - else if(istype(W, /obj/item/weapon/flame/match)) - var/obj/item/weapon/flame/match/M = W - if(M.lit) - light("[user] lights their [name] with their [W].") + else if(istype(W, /obj/item/device/assembly/igniter)) + light("[user] fiddles with [W], and manages to light their [name] with the power of science.") else if(istype(W, /obj/item/weapon/melee/energy/sword)) var/obj/item/weapon/melee/energy/sword/S = W if(S.active) light("[user] swings their [W], barely missing their nose. They light their [name] in the process.") - else if(istype(W, /obj/item/device/assembly/igniter)) - light("[user] fiddles with [W], and manages to light their [name] with the power of science.") - ///////////////// //SMOKING PIPES// ///////////////// -/obj/item/clothing/mask/cigarette/pipe +/obj/item/clothing/mask/smokable/pipe name = "smoking pipe" desc = "A pipe, for smoking. Probably made of meershaum or something." icon_state = "pipeoff" item_state = "pipeoff" icon_on = "pipeon" //Note - these are in masks.dmi icon_off = "pipeoff" - smoketime = 100 + smoketime = 0 + chem_volume = 50 -/obj/item/clothing/mask/cigarette/pipe/light(var/flavor_text = "[usr] lights the [name].") - if(!src.lit) +/obj/item/clothing/mask/smokable/pipe/New() + ..() + name = "empty [initial(name)]" + +/obj/item/clothing/mask/smokable/pipe/light(var/flavor_text = "[usr] lights the [name].") + if(!src.lit && src.smoketime) src.lit = 1 damtype = "fire" icon_state = icon_on @@ -306,71 +342,67 @@ CIGARETTE PACKETS ARE IN FANCY.DM T.visible_message(flavor_text) processing_objects.Add(src) -/obj/item/clothing/mask/cigarette/pipe/process() - var/turf/location = get_turf(src) - smoketime-- - if(smoketime < 1) - new /obj/effect/decal/cleanable/ash(location) - if(ismob(loc)) - var/mob/living/M = loc - M << "Your [name] goes out, and you empty the ash." - lit = 0 - icon_state = icon_off - item_state = icon_off - M.update_inv_wear_mask(0) - processing_objects.Remove(src) - return - if(location) - location.hotspot_expose(700, 5) - return - -/obj/item/clothing/mask/cigarette/pipe/attack_self(mob/user as mob) //Refills the pipe. Can be changed to an attackby later, if loose tobacco is added to vendors or something. +/obj/item/clothing/mask/smokable/pipe/attack_self(mob/user as mob) if(lit == 1) - user.visible_message("[user] puts out [src].") + user.visible_message("[user] puts out [src].", "You put out [src].") lit = 0 icon_state = icon_off item_state = icon_off processing_objects.Remove(src) - return - if(smoketime <= 0) - user << "You refill the pipe with tobacco." - smoketime = initial(smoketime) - return + else if (smoketime) + var/turf/location = get_turf(user) + user.visible_message("[user] empties out [src].", "You empty out [src].") + new /obj/effect/decal/cleanable/ash(location) + smoketime = 0 + reagents.clear_reagents() + name = "empty [initial(name)]" -/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.isOn())// - light("[user] recklessly lights [name] with [W].") +/obj/item/clothing/mask/smokable/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(isflamesource(W)) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.isOn()) + light("[user] recklessly lights [name] with [W].") - else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) - var/obj/item/weapon/flame/lighter/zippo/Z = W - if(Z.lit) - light("With much care, [user] lights their [name] with their [W].") + else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) + var/obj/item/weapon/flame/lighter/zippo/Z = W + if(Z.lit) + light("With much care, [user] lights their [name] with their [W].") - else if(istype(W, /obj/item/weapon/flame/lighter)) - var/obj/item/weapon/flame/lighter/L = W - if(L.lit) - light("[user] manages to light their [name] with [W].") + else if(istype(W, /obj/item/weapon/flame/lighter)) + var/obj/item/weapon/flame/lighter/L = W + if(L.lit) + light("[user] manages to light their [name] with [W].") - else if(istype(W, /obj/item/weapon/flame/match)) - var/obj/item/weapon/flame/match/M = W - if(M.lit) - light("[user] lights their [name] with their [W].") + else if(istype(W, /obj/item/weapon/flame/match)) + var/obj/item/weapon/flame/match/M = W + if(M.lit) + light("[user] lights their [name] with their [W].") - else if(istype(W, /obj/item/device/assembly/igniter)) - light("[user] fiddles with [W], and manages to light their [name] with the power of science.") + else if(istype(W, /obj/item/device/assembly/igniter)) + light("[user] fiddles with [W], and manages to light their [name] with the power of science.") + else if (istype(W, /obj/item/weapon/reagent_containers/food/snacks)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/G = W + if (!G.dry) + user << "[G] must be dried before you stuff it into [src]." + return + if (smoketime) + user << "[src] is already packed." + return + smoketime = 1000 + if(G.reagents) + G.reagents.trans_to(src, G.reagents.total_volume) + name = "[G.name]-packed [initial(name)]" + del(G) -/obj/item/clothing/mask/cigarette/pipe/cobpipe +/obj/item/clothing/mask/smokable/pipe/cobpipe name = "corn cob pipe" desc = "A nicotine delivery system popularized by folksy backwoodsmen, kept popular in the modern age and beyond by space hipsters." icon_state = "cobpipeoff" item_state = "cobpipeoff" icon_on = "cobpipeon" //Note - these are in masks.dmi icon_off = "cobpipeoff" - smoketime = 400 - - + chem_volume = 35 ///////// //ZIPPO// @@ -445,8 +477,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(!istype(M, /mob)) return - if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel.selecting == "mouth" && lit) - var/obj/item/clothing/mask/cigarette/cig = M.wear_mask + if(istype(M.wear_mask, /obj/item/clothing/mask/smokable/cigarette) && user.zone_sel.selecting == "mouth" && lit) + var/obj/item/clothing/mask/smokable/cigarette/cig = M.wear_mask if(M == user) cig.attackby(src, user) else diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 64d8e89bb7..1e7bcce223 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -27,7 +27,7 @@ /obj/item/weapon/storage/fancy/examine(mob/user) if(!..(user, 1)) return - + if(contents.len <= 0) user << "There are no [src.icon_type]s left in the box." else if(contents.len == 1) @@ -143,7 +143,7 @@ ..() flags |= NOREACT for(var/i = 1 to storage_slots) - new /obj/item/clothing/mask/cigarette(src) + new /obj/item/clothing/mask/smokable/cigarette(src) create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one /obj/item/weapon/storage/fancy/cigarettes/Del() @@ -156,7 +156,7 @@ return /obj/item/weapon/storage/fancy/cigarettes/remove_from_storage(obj/item/W as obj, atom/new_location) - var/obj/item/clothing/mask/cigarette/C = W + var/obj/item/clothing/mask/smokable/cigarette/C = W if(!istype(C)) return // what reagents.trans_to(C, (reagents.total_volume/contents.len)) ..() @@ -166,7 +166,7 @@ return if(M == user && user.zone_sel.selecting == "mouth" && contents.len > 0 && !user.wear_mask) - var/obj/item/clothing/mask/cigarette/W = new /obj/item/clothing/mask/cigarette(user) + var/obj/item/clothing/mask/smokable/cigarette/W = new /obj/item/clothing/mask/smokable/cigarette(user) reagents.trans_to(W, (reagents.total_volume/contents.len)) user.equip_to_slot_if_possible(W, slot_wear_mask) reagents.maximum_volume = 15 * contents.len @@ -200,7 +200,7 @@ ..() flags |= NOREACT for(var/i = 1 to storage_slots) - new /obj/item/clothing/mask/cigarette/cigar(src) + new /obj/item/clothing/mask/smokable/cigarette/cigar(src) create_reagents(15 * storage_slots) /obj/item/weapon/storage/fancy/cigar/Del() @@ -212,7 +212,7 @@ return /obj/item/weapon/storage/fancy/cigar/remove_from_storage(obj/item/W as obj, atom/new_location) - var/obj/item/clothing/mask/cigarette/cigar/C = W + var/obj/item/clothing/mask/smokable/cigarette/cigar/C = W if(!istype(C)) return reagents.trans_to(C, (reagents.total_volume/contents.len)) ..() @@ -222,7 +222,7 @@ return if(M == user && user.zone_sel.selecting == "mouth" && contents.len > 0 && !user.wear_mask) - var/obj/item/clothing/mask/cigarette/cigar/W = new /obj/item/clothing/mask/cigarette/cigar(user) + var/obj/item/clothing/mask/smokable/cigarette/cigar/W = new /obj/item/clothing/mask/smokable/cigarette/cigar(user) reagents.trans_to(W, (reagents.total_volume/contents.len)) user.equip_to_slot_if_possible(W, slot_wear_mask) reagents.maximum_volume = 15 * contents.len diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 0f088f9897..a33889d7d8 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -834,7 +834,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(M), slot_wear_mask) M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head) M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/M1911(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/weapon/flame/lighter/zippo(M), slot_r_store) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 0be6799a43..11522902a2 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -223,7 +223,7 @@ corpsesuit = /obj/item/clothing/suit/armor/bulletproof corpseradio = /obj/item/device/radio/headset/heads/captain corpseglasses = /obj/item/clothing/glasses/eyepatch - corpsemask = /obj/item/clothing/mask/cigarette/cigar/cohiba + corpsemask = /obj/item/clothing/mask/smokable/cigarette/cigar/cohiba corpsehelmet = /obj/item/clothing/head/centhat corpsegloves = /obj/item/clothing/gloves/swat corpseshoes = /obj/item/clothing/shoes/swat diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm index d82807f738..8d5d85df10 100644 --- a/code/modules/hydroponics/grown_inedible.dm +++ b/code/modules/hydroponics/grown_inedible.dm @@ -183,6 +183,6 @@ ..() if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/kitchenknife/ritual)) user << "You use [W] to fashion a pipe out of the corn cob!" - new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc) + new /obj/item/clothing/mask/smokable/pipe/cobpipe (user.loc) del(src) return diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cc053f219d..c4fd50c114 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -789,7 +789,7 @@ proc/get_damage_icon_part(damage_state, body_part) else standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]") - if( !istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA ) + if( !istype(wear_mask, /obj/item/clothing/mask/smokable/cigarette) && wear_mask.blood_DNA ) var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood") bloodsies.color = wear_mask.blood_color standing.overlays += bloodsies diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 11fd71e620..1cfe480ff9 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -21,7 +21,7 @@ user << "\red [target] is full." return - if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/cigarette)) //You can inject humans and food but you cant remove the shit. + if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/smokable/cigarette)) //You can inject humans and food but you cant remove the shit. user << "\red You cannot directly fill this object." return diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 7aaad7a678..197fcf37fc 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -9,6 +9,8 @@ var/trash = null var/slice_path var/slices_num + var/dried_type = null + var/dry = 0 center_of_mass = list("x"=15, "y"=15) w_class = 2 diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index d570f13861..3a4d52c0df 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -17,10 +17,14 @@ ..() src.pixel_x = rand(-5.0, 5) src.pixel_y = rand(-5.0, 5) + dried_type = -1 /obj/item/weapon/reagent_containers/food/snacks/grown/New() ..() + if (dried_type == -1) + dried_type = src.type + //Handle some post-spawn var stuff. spawn(1) // Fill the object up with the appropriate reagents. diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 744e212e78..3d4b2b3cfb 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -130,7 +130,7 @@ if(istype(target, /obj/item/weapon/implantcase/chem)) return - if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes)) + if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/smokable/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes)) user << "\red You cannot directly fill this object." return if(target.reagents.total_volume >= target.reagents.maximum_volume) diff --git a/code/modules/surgery/eye.dm b/code/modules/surgery/eye.dm index 0fa9f4863a..81170afc39 100644 --- a/code/modules/surgery/eye.dm +++ b/code/modules/surgery/eye.dm @@ -113,7 +113,7 @@ /datum/surgery_step/eye/cauterize allowed_tools = list( /obj/item/weapon/cautery = 100, \ - /obj/item/clothing/mask/cigarette = 75, \ + /obj/item/clothing/mask/smokable/cigarette = 75, \ /obj/item/weapon/flame/lighter = 50, \ /obj/item/weapon/weldingtool = 25 ) diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm index 50fb64990b..b5b22659f4 100644 --- a/code/modules/surgery/face.dm +++ b/code/modules/surgery/face.dm @@ -103,7 +103,7 @@ /datum/surgery_step/face/cauterize allowed_tools = list( /obj/item/weapon/cautery = 100, \ - /obj/item/clothing/mask/cigarette = 75, \ + /obj/item/clothing/mask/smokable/cigarette = 75, \ /obj/item/weapon/flame/lighter = 50, \ /obj/item/weapon/weldingtool = 25 ) diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 238657c28d..4e8c4150ae 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -239,7 +239,7 @@ /datum/surgery_step/generic/cauterize allowed_tools = list( /obj/item/weapon/cautery = 100, \ - /obj/item/clothing/mask/cigarette = 75, \ + /obj/item/clothing/mask/smokable/cigarette = 75, \ /obj/item/weapon/flame/lighter = 50, \ /obj/item/weapon/weldingtool = 25 ) diff --git a/code/modules/surgery/headreattach.dm b/code/modules/surgery/headreattach.dm index 76ad0b6201..85a56a754e 100644 --- a/code/modules/surgery/headreattach.dm +++ b/code/modules/surgery/headreattach.dm @@ -119,7 +119,7 @@ /datum/surgery_step/head/prepare allowed_tools = list( /obj/item/weapon/cautery = 100, \ - /obj/item/clothing/mask/cigarette = 75, \ + /obj/item/clothing/mask/smokable/cigarette = 75, \ /obj/item/weapon/flame/lighter = 50, \ /obj/item/weapon/weldingtool = 25 ) diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm index 32546da143..7218c302d0 100644 --- a/code/modules/surgery/implant.dm +++ b/code/modules/surgery/implant.dm @@ -70,7 +70,7 @@ priority = 2 allowed_tools = list( /obj/item/weapon/cautery = 100, \ - /obj/item/clothing/mask/cigarette = 75, \ + /obj/item/clothing/mask/smokable/cigarette = 75, \ /obj/item/weapon/flame/lighter = 50, \ /obj/item/weapon/weldingtool = 25 ) diff --git a/code/modules/surgery/robolimbs.dm b/code/modules/surgery/robolimbs.dm index c1328227ac..7e768bfa06 100644 --- a/code/modules/surgery/robolimbs.dm +++ b/code/modules/surgery/robolimbs.dm @@ -93,7 +93,7 @@ /datum/surgery_step/limb/prepare allowed_tools = list( /obj/item/weapon/cautery = 100, \ - /obj/item/clothing/mask/cigarette = 75, \ + /obj/item/clothing/mask/smokable/cigarette = 75, \ /obj/item/weapon/flame/lighter = 50, \ /obj/item/weapon/weldingtool = 25 ) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index a8e83d5c20..1eac9b7512 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -3918,7 +3918,7 @@ "bxr" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload) "bxs" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/maintenance/substation/command) "bxt" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/machinery/camera{c_tag = "Captain's Quarters"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"bxu" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/item/weapon/storage/box/matches,/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask{pixel_x = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/captain) +"bxu" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/item/weapon/storage/box/matches,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask{pixel_x = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bxv" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Shower"; req_access_txt = "0"},/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) "bxw" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central_two) "bxx" = (/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/chemistry) @@ -5686,7 +5686,7 @@ "cfr" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/research_starboard) "cfs" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Aft Starboard Solar Access"; dir = 1},/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/research_starboard) "cft" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/rnd/test_area) -"cfu" = (/obj/item/clothing/mask/cigarette,/turf/simulated/floor/plating/airless,/area/rnd/test_area) +"cfu" = (/obj/item/clothing/mask/smokable/cigarette,/turf/simulated/floor/plating/airless,/area/rnd/test_area) "cfv" = (/obj/machinery/light/small,/turf/simulated/floor/plating/airless,/area/rnd/test_area) "cfw" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/construction) "cfx" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/construction) @@ -7224,7 +7224,7 @@ "cKZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) "cLa" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engine_waste) "cLb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-2.dmm b/maps/exodus-2.dmm index 2903dec322..111ddb95ec 100644 --- a/maps/exodus-2.dmm +++ b/maps/exodus-2.dmm @@ -810,7 +810,7 @@ "pD" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "pE" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced{icon_state = "table"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "pF" = (/turf/unsimulated/wall,/area/centcom/living) -"pG" = (/obj/machinery/vending/cigarette{contraband = newlist(); premium = newlist(); prices = list(/obj/item/weapon/storage/fancy/cigarettes = 15, /obj/item/weapon/storage/box/matches = 1, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/cigarette/cigar/havana = 20); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"pG" = (/obj/machinery/vending/cigarette{contraband = newlist(); premium = newlist(); prices = list(/obj/item/weapon/storage/fancy/cigarettes = 15, /obj/item/weapon/storage/box/matches = 1, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 20); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pH" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/flasher_button{id = "syndieflash"; name = "Flasher"; pixel_x = 27; pixel_y = 0; tag = "permflash"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pI" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pJ" = (/obj/structure/table,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/obj/machinery/door/window{dir = 4; name = "Blast Door Control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -1312,7 +1312,7 @@ "zl" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "zm" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "zn" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom) -"zo" = (/obj/structure/table/woodentable{dir = 9},/obj/item/weapon/reagent_containers/food/drinks/flask,/obj/item/clothing/mask/cigarette/cigar/havana,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) +"zo" = (/obj/structure/table/woodentable{dir = 9},/obj/item/weapon/reagent_containers/food/drinks/flask,/obj/item/clothing/mask/smokable/cigarette/cigar/havana,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "zp" = (/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = list("ERT")},/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "zq" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "zr" = (/obj/machinery/computer/card/centcom,/obj/item/weapon/card/id/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) From f6833141e902233f70a6d758680f61c0aa873f2d Mon Sep 17 00:00:00 2001 From: Kelenius Date: Wed, 21 Jan 2015 17:59:13 +0300 Subject: [PATCH 2/3] Smokable items lighting, mob sprite updates Changes how lighting of smokable items works to be less repititive, mobs will update their sprites properly when they have a smokable item lit. --- .../objects/items/weapons/cigs_lighters.dm | 136 ++++++++---------- 1 file changed, 57 insertions(+), 79 deletions(-) diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 90ba157260..021f22afb8 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -79,6 +79,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM var/type_butt = null var/chem_volume = 0 var/smoketime = 0 + var/matchmes = "USER lights NAME with FLAME" + var/lightermes = "USER lights NAME with FLAME" + var/zippomes = "USER lights NAME with FLAME" + var/weldermes = "USER lights NAME with FLAME" + var/ignitermes = "USER lights NAME with FLAME" /obj/item/clothing/mask/smokable/New() ..() @@ -135,6 +140,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(ismob(loc)) var/mob/living/M = loc M.update_inv_wear_mask(0) + M.update_inv_l_hand(0) + M.update_inv_r_hand(1) var/turf/T = get_turf(src) T.visible_message(flavor_text) processing_objects.Add(src) @@ -148,8 +155,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM var/mob/living/M = loc if (!nomessage) M << "Your [name] goes out." - M.u_equip(src) //un-equip it so the overlays can update + M.u_equip(src) //un-equip it so the overlays can update M.update_inv_wear_mask(0) + M.update_inv_l_hand(0) + M.update_inv_r_hand(1) processing_objects.Remove(src) del(src) else @@ -162,8 +171,29 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = icon_off item_state = icon_off M.update_inv_wear_mask(0) + M.update_inv_l_hand(0) + M.update_inv_r_hand(1) processing_objects.Remove(src) +/obj/item/clothing/mask/smokable/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(isflamesource(W)) + var/text = matchmes + if(istype(W, /obj/item/weapon/flame/match)) + text = matchmes + else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) + text = zippomes + else if(istype(W, /obj/item/weapon/flame/lighter)) + text = lightermes + else if(istype(W, /obj/item/weapon/weldingtool)) + text = weldermes + else if(istype(W, /obj/item/device/assembly/igniter)) + text = ignitermes + text = replacetext(text, "USER", "[user]") + text = replacetext(text, "NAME", "[name]") + text = replacetext(text, "FLAME", "[W.name]") + light(text) + /obj/item/clothing/mask/smokable/cigarette name = "cigarette" desc = "A roll of tobacco and nicotine." @@ -177,42 +207,20 @@ CIGARETTE PACKETS ARE IN FANCY.DM type_butt = /obj/item/weapon/cigbutt chem_volume = 15 smoketime = 300 + matchmes = "USER lights their NAME with their FLAME." + lightermes = "USER manages to light their NAME with FLAME." + zippomes = "With a flick of their wrist, USER lights their NAME with their FLAME." + weldermes = "USER casually lights the NAME with FLAME." + ignitermes = "USER fiddles with FLAME, and manages to light their NAME." /obj/item/clothing/mask/smokable/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() - if (isflamesource(W)) - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.isOn())//Badasses dont get blinded while lighting their cig with a welding tool - light("[user] casually lights the [name] with [W].") - else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) - var/obj/item/weapon/flame/lighter/zippo/Z = W - if(Z.lit) - light("With a flick of their wrist, [user] lights their [name] with their [W].") - - else if(istype(W, /obj/item/weapon/flame/lighter)) - var/obj/item/weapon/flame/lighter/L = W - if(L.lit) - light("[user] manages to light their [name] with [W].") - - else if(istype(W, /obj/item/weapon/flame/match)) - var/obj/item/weapon/flame/match/M = W - if(M.lit) - light("[user] lights their [name] with their [W].") - - else if(istype(W, /obj/item/device/assembly/igniter)) - light("[user] fiddles with [W], and manages to light their [name].") - - else if(istype(W, /obj/item/weapon/melee/energy/sword)) + if(istype(W, /obj/item/weapon/melee/energy/sword)) var/obj/item/weapon/melee/energy/sword/S = W if(S.active) light("[user] swings their [W], barely missing their nose. They light their [name] in the process.") - //can't think of any other way to update the overlays :< - user.update_inv_wear_mask(0) - user.update_inv_l_hand(0) - user.update_inv_r_hand(1) return /obj/item/clothing/mask/smokable/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user as mob, proximity) @@ -249,6 +257,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM item_state = "cigaroff" smoketime = 1500 chem_volume = 20 + matchmes = "USER lights their NAME with their FLAME." + lightermes = "USER manages to offend their NAME by lighting it with FLAME." + zippomes = "With a flick of their wrist, USER lights their NAME with their FLAME." + weldermes = "USER insults NAME by lighting it with FLAME." + ignitermes = "USER fiddles with FLAME, and manages to light their NAME with the power of science." /obj/item/clothing/mask/smokable/cigarette/cigar/cohiba name = "\improper Cohiba Robusto cigar" @@ -286,34 +299,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = "cigarbutt" /obj/item/clothing/mask/smokable/cigarette/cigar/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(isflamesource(W)) - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.isOn()) - light("[user] insults [name] by lighting it with [W].") - - else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) - var/obj/item/weapon/flame/lighter/zippo/Z = W - if(Z.lit) - light("With a flick of their wrist, [user] lights their [name] with their [W].") - - else if(istype(W, /obj/item/weapon/flame/lighter)) - var/obj/item/weapon/flame/lighter/L = W - if(L.lit) - light("[user] manages to offend their [name] by lighting it with [W].") - - else if(istype(W, /obj/item/weapon/flame/match)) - var/obj/item/weapon/flame/match/M = W - if(M.lit) - light("[user] lights their [name] with their [W].") - - else if(istype(W, /obj/item/device/assembly/igniter)) - light("[user] fiddles with [W], and manages to light their [name] with the power of science.") - - else if(istype(W, /obj/item/weapon/melee/energy/sword)) - var/obj/item/weapon/melee/energy/sword/S = W - if(S.active) - light("[user] swings their [W], barely missing their nose. They light their [name] in the process.") + ..() ///////////////// //SMOKING PIPES// @@ -327,6 +313,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_off = "pipeoff" smoketime = 0 chem_volume = 50 + matchmes = "USER lights their NAME with their FLAME." + lightermes = "USER manages to light their NAME with FLAME." + zippomes = "With much care, USER lights their NAME with their FLAME." + weldermes = "USER recklessly lights NAME with FLAME." + ignitermes = "USER fiddles with FLAME, and manages to light their NAME with the power of science." /obj/item/clothing/mask/smokable/pipe/New() ..() @@ -341,6 +332,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM var/turf/T = get_turf(src) T.visible_message(flavor_text) processing_objects.Add(src) + if(ismob(loc)) + var/mob/living/M = loc + M.update_inv_wear_mask(0) + M.update_inv_l_hand(0) + M.update_inv_r_hand(1) /obj/item/clothing/mask/smokable/pipe/attack_self(mob/user as mob) if(lit == 1) @@ -358,30 +354,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM name = "empty [initial(name)]" /obj/item/clothing/mask/smokable/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(isflamesource(W)) - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.isOn()) - light("[user] recklessly lights [name] with [W].") + if(istype(W, /obj/item/weapon/melee/energy/sword)) + return - else if(istype(W, /obj/item/weapon/flame/lighter/zippo)) - var/obj/item/weapon/flame/lighter/zippo/Z = W - if(Z.lit) - light("With much care, [user] lights their [name] with their [W].") + ..() - else if(istype(W, /obj/item/weapon/flame/lighter)) - var/obj/item/weapon/flame/lighter/L = W - if(L.lit) - light("[user] manages to light their [name] with [W].") - - else if(istype(W, /obj/item/weapon/flame/match)) - var/obj/item/weapon/flame/match/M = W - if(M.lit) - light("[user] lights their [name] with their [W].") - - else if(istype(W, /obj/item/device/assembly/igniter)) - light("[user] fiddles with [W], and manages to light their [name] with the power of science.") - else if (istype(W, /obj/item/weapon/reagent_containers/food/snacks)) + if (istype(W, /obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/grown/G = W if (!G.dry) user << "[G] must be dried before you stuff it into [src]." From 9edb5751fbb3c6f00f5fd9645ad07a6f7764a148 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Tue, 3 Feb 2015 22:24:49 +0300 Subject: [PATCH 3/3] Adds tobacco and maps in drying racks --- code/modules/hydroponics/seed_datums.dm | 19 +++++++++++++++++- code/modules/hydroponics/seed_storage.dm | 4 ++-- code/modules/hydroponics/seeds.dm | 3 +++ .../reagent_containers/food/snacks/grown.dm | 7 +++++++ icons/obj/harvest.dmi | Bin 28614 -> 29005 bytes icons/obj/hydroponics.dmi | Bin 162544 -> 163327 bytes icons/obj/seeds.dmi | Bin 16100 -> 16245 bytes maps/exodus-1.dmm | 6 +++--- 8 files changed, 33 insertions(+), 6 deletions(-) diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 33e6f47c57..1d389d2b39 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -183,7 +183,8 @@ proc/populate_seed_list() list("seed-cocoapod", "cocoapod"), list("seed-cherry", "cherry"), list("seed-kudzu", "kudzu"), - list("seed-replicapod", "replicapod") + list("seed-replicapod", "replicapod"), + list("seed-tobacco", "tobacco") )) packet_icon = plant_icons[1] @@ -1559,6 +1560,22 @@ proc/populate_seed_list() potency = 10 growth_stages = 5 +/datum/seed/tobacco + name = "tobacco" + seed_name = "tobacco" + display_name = "tobacco plant" + packet_icon = "seed-tobacco" + products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco) + plant_icon = "tobacco" + chems = list("nutriment" = list(1), "nicotine" = list(1,10)) + + lifespan = 50 + maturation = 5 + production = 5 + yield = 4 + potency = 10 + growth_stages = 3 + /datum/seed/kudzu name = "kudzu" seed_name = "kudzu" diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm index 17cab40d8a..14b24eb581 100644 --- a/code/modules/hydroponics/seed_storage.dm +++ b/code/modules/hydroponics/seed_storage.dm @@ -40,12 +40,12 @@ /obj/machinery/seed_storage/garden name = "Garden seed storage" scanner = list("stats") - starting_seeds = list(/obj/item/seeds/appleseed = 3, /obj/item/seeds/bananaseed = 3, /obj/item/seeds/berryseed = 3, /obj/item/seeds/cabbageseed = 3, /obj/item/seeds/carrotseed = 3, /obj/item/seeds/chantermycelium = 3, /obj/item/seeds/cherryseed = 3, /obj/item/seeds/chiliseed = 3, /obj/item/seeds/cocoapodseed = 3, /obj/item/seeds/cornseed = 3, /obj/item/seeds/eggplantseed = 3, /obj/item/seeds/grapeseed = 3, /obj/item/seeds/grassseed = 3, /obj/item/seeds/lemonseed = 3, /obj/item/seeds/limeseed = 3, /obj/item/seeds/mtearseed = 2, /obj/item/seeds/orangeseed = 3, /obj/item/seeds/peanutseed = 3, /obj/item/seeds/plumpmycelium = 3, /obj/item/seeds/poppyseed = 3, /obj/item/seeds/potatoseed = 3, /obj/item/seeds/pumpkinseed = 3, /obj/item/seeds/riceseed = 3, /obj/item/seeds/soyaseed = 3, /obj/item/seeds/sugarcaneseed = 3, /obj/item/seeds/sunflowerseed = 3, /obj/item/seeds/shandseed = 2, /obj/item/seeds/tomatoseed = 3, /obj/item/seeds/towermycelium = 3, /obj/item/seeds/watermelonseed = 3, /obj/item/seeds/wheatseed = 3, /obj/item/seeds/whitebeetseed = 3) + starting_seeds = list(/obj/item/seeds/appleseed = 3, /obj/item/seeds/bananaseed = 3, /obj/item/seeds/berryseed = 3, /obj/item/seeds/cabbageseed = 3, /obj/item/seeds/carrotseed = 3, /obj/item/seeds/chantermycelium = 3, /obj/item/seeds/cherryseed = 3, /obj/item/seeds/chiliseed = 3, /obj/item/seeds/cocoapodseed = 3, /obj/item/seeds/cornseed = 3, /obj/item/seeds/eggplantseed = 3, /obj/item/seeds/grapeseed = 3, /obj/item/seeds/grassseed = 3, /obj/item/seeds/lemonseed = 3, /obj/item/seeds/limeseed = 3, /obj/item/seeds/mtearseed = 2, /obj/item/seeds/orangeseed = 3, /obj/item/seeds/peanutseed = 3, /obj/item/seeds/plumpmycelium = 3, /obj/item/seeds/poppyseed = 3, /obj/item/seeds/potatoseed = 3, /obj/item/seeds/pumpkinseed = 3, /obj/item/seeds/riceseed = 3, /obj/item/seeds/soyaseed = 3, /obj/item/seeds/sugarcaneseed = 3, /obj/item/seeds/sunflowerseed = 3, /obj/item/seeds/shandseed = 2, /obj/item/seeds/tobaccoseed = 3, /obj/item/seeds/tomatoseed = 3, /obj/item/seeds/towermycelium = 3, /obj/item/seeds/watermelonseed = 3, /obj/item/seeds/wheatseed = 3, /obj/item/seeds/whitebeetseed = 3) /obj/machinery/seed_storage/xenobotany name = "Xenobotany seed storage" scanner = list("stats", "produce", "soil", "temperature", "light", "mutants") - starting_seeds = list(/obj/item/seeds/ambrosiavulgarisseed = 3, /obj/item/seeds/appleseed = 3, /obj/item/seeds/amanitamycelium = 2, /obj/item/seeds/bananaseed = 3, /obj/item/seeds/berryseed = 3, /obj/item/seeds/cabbageseed = 3, /obj/item/seeds/carrotseed = 3, /obj/item/seeds/chantermycelium = 3, /obj/item/seeds/cherryseed = 3, /obj/item/seeds/chiliseed = 3, /obj/item/seeds/cocoapodseed = 3, /obj/item/seeds/cornseed = 3, /obj/item/seeds/replicapod = 3, /obj/item/seeds/eggplantseed = 3, /obj/item/seeds/glowshroom = 2, /obj/item/seeds/grapeseed = 3, /obj/item/seeds/grassseed = 3, /obj/item/seeds/lemonseed = 3, /obj/item/seeds/libertymycelium = 2, /obj/item/seeds/limeseed = 3, /obj/item/seeds/mtearseed = 2, /obj/item/seeds/nettleseed = 2, /obj/item/seeds/orangeseed = 3, /obj/item/seeds/peanutseed = 3, /obj/item/seeds/plastiseed = 3, /obj/item/seeds/plumpmycelium = 3, /obj/item/seeds/poppyseed = 3, /obj/item/seeds/potatoseed = 3, /obj/item/seeds/pumpkinseed = 3, /obj/item/seeds/reishimycelium = 2, /obj/item/seeds/riceseed = 3, /obj/item/seeds/soyaseed = 3, /obj/item/seeds/sugarcaneseed = 3, /obj/item/seeds/sunflowerseed = 3, /obj/item/seeds/shandseed = 2, /obj/item/seeds/tomatoseed = 3, /obj/item/seeds/towermycelium = 3, /obj/item/seeds/watermelonseed = 3, /obj/item/seeds/wheatseed = 3, /obj/item/seeds/whitebeetseed = 3) + starting_seeds = list(/obj/item/seeds/ambrosiavulgarisseed = 3, /obj/item/seeds/appleseed = 3, /obj/item/seeds/amanitamycelium = 2, /obj/item/seeds/bananaseed = 3, /obj/item/seeds/berryseed = 3, /obj/item/seeds/cabbageseed = 3, /obj/item/seeds/carrotseed = 3, /obj/item/seeds/chantermycelium = 3, /obj/item/seeds/cherryseed = 3, /obj/item/seeds/chiliseed = 3, /obj/item/seeds/cocoapodseed = 3, /obj/item/seeds/cornseed = 3, /obj/item/seeds/replicapod = 3, /obj/item/seeds/eggplantseed = 3, /obj/item/seeds/glowshroom = 2, /obj/item/seeds/grapeseed = 3, /obj/item/seeds/grassseed = 3, /obj/item/seeds/lemonseed = 3, /obj/item/seeds/libertymycelium = 2, /obj/item/seeds/limeseed = 3, /obj/item/seeds/mtearseed = 2, /obj/item/seeds/nettleseed = 2, /obj/item/seeds/orangeseed = 3, /obj/item/seeds/peanutseed = 3, /obj/item/seeds/plastiseed = 3, /obj/item/seeds/plumpmycelium = 3, /obj/item/seeds/poppyseed = 3, /obj/item/seeds/potatoseed = 3, /obj/item/seeds/pumpkinseed = 3, /obj/item/seeds/reishimycelium = 2, /obj/item/seeds/riceseed = 3, /obj/item/seeds/soyaseed = 3, /obj/item/seeds/sugarcaneseed = 3, /obj/item/seeds/sunflowerseed = 3, /obj/item/seeds/shandseed = 2, /obj/item/seeds/tobaccoseed = 3, /obj/item/seeds/tomatoseed = 3, /obj/item/seeds/towermycelium = 3, /obj/item/seeds/watermelonseed = 3, /obj/item/seeds/wheatseed = 3, /obj/item/seeds/whitebeetseed = 3) /obj/machinery/seed_storage/attack_hand(mob/user as mob) user.set_machine(src) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 6f1b732849..4cef5f21dc 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -229,5 +229,8 @@ /obj/item/seeds/cherryseed seed_type = "cherry" +/obj/item/seeds/tobaccoseed + seed_type = "tobacco" + /obj/item/seeds/kudzuseed seed_type = "kudzu" \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index 3a4d52c0df..b57a4d5562 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -459,6 +459,13 @@ filling_color = "#59691B" plantname = "kudzu" +/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco + name = "tobacco leaf" + desc = "Contains nicotine." + icon_state = "tobacco" + filling_color = "#009900" + plantname = "tobacco" + /obj/item/weapon/reagent_containers/food/snacks/grown/icepepper name = "ice-pepper" desc = "It's a mutant strain of chili" diff --git a/icons/obj/harvest.dmi b/icons/obj/harvest.dmi index 443b6c5ebfbaff2ecbe32d9ff83a21d2030a6719..116c888b6a47b6b8ec5111b9ebd8f192412d3b1b 100644 GIT binary patch delta 12329 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 delta 11935 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

X13 zB}KHMgZRdQk@9HE&@dD5=59A5j0f~w68^JteWZD+pC`g}37@z#+Ry~OB>h?;H|Yy{`5=UuPW9|LTibn(+A+K;kjwj^ z0QI8(W6Sc~%D{iKRo_$AN#kU7YiinGqK!1PSo?gwU~MeCe?*$Tkd}lteQLx zm+#t{yjs3{qa<$ZWPKVeS3vnBxovs$5F;$%CN{3=K)v&OVsn0w`)m6y-AN(e*Y-I` z;r-e^B(K~%H?BD}NMolNubdY5(*pTpg~gxFlgvmF<2)&d6#Of-5%4P?vT0D3RnVTM z=+nG{>b#K6oX5L~`fxm>9R}(aIq?<-imFmaGCR*<{0WL;t9jZY(-t~%JI|cpePeN= z)kkOCHTCYK%4vh@^^t?6`}5t|@7(OW$KEFC&3_%5QynZ_tR0$Td{%Q2`0M?gGifCL zftY7Zgd+y}CY}O zIz0V^l*l!(BsX@~i6YY}2J3mM%0B-HX_#K%+}xLA6`EwdmiVN)6p^Z0(4RDtdTUM} z)y~jzzt>{QVWE4xS5?4vVYV*7sn+`&CV`fK^{UF6{D^o|UIEj%|MGLZ7NiWymA)5a z@}yoBJMREt&xiI0T{WBPqRM8v4B%OZir#Q`jThCC9kk56jgN!{@b_ERjl~i})9>CV zlT>j2OY5z3D<8J&ca;ITXBrdK8%T!}NJ>cP7ftkj97JeIs1Lp_PQP33Wqzp?NMe_# zcWLj`f+gIz55sKWGIZWCV|K9Ce;f+nW$6FLpX0ELzQCQ&Z|n51si@Tbr7yG3WS+#-upPK#)7bi538V2Ptf!r8HmsK2S0?2ugmn*HQ2fH zr^Z6pWq%1^F zPtBv9WyWC$=JMTyQb9~!X`S0De1ul0RQyT?ICx|tB6%r5skO>3tByksa`+x{n-?0L z)UG;f$`7~+f6O)Zl(P)$PvH|YU5cB{I*t6UOX(@wXugZ}^4pP-!EkIEvMnMTt>JL2 z5wfK%eA#MgiU{7&?LR+r@8|qe9J719oMbIzwm`ql$uPb#p$7C0=>V9+I)FTgT!bQ9 zuPViIP%Ja&=B9VmM-9#-66O4^n5N2)&p1;s@baZe3GP+yjNVn7fcXdIh4u&E=9ZAc z{>bXU?#RlfG}Za+4`-!^MNk6=-jI>r^1%SA?}i~U9ZRwireb;7_KbF=eO0i1G`U?$ zsp-50#=H=exBVyYO638#eKV7=5IoDFNZ?jNA3s_a92eSv+k$n0+d@;DJ!5EWS!yKO zlt6gTrH-4I%=%^g3y&iThxiw&lI)2VUySE6`(&Afb((=@lWHjJ8e$mFmDw=LRoMu{ zI4RVtG9B7F`Y}T~`&mLdJ0c%PhS2cijR+fAqQG#t!^^}_7O=R%@KU72;0`Yl3z8^| z&$L!=rzfWCdd^%CxcW(P4qNe+KF00qrCTXQ{CR9eY-B^9$KGo%mupREB{oR6?}=+A zM2haXR(yl@?u;1!^kCtYoz4iy-P8BA%pS_G2k0HOb1AB|k9WFs!uGt585G%l{=yXP z7=>bjzv*CsnuRz$%#Bf--$(}!NuNYVm5WhOZBp?^st0`EI_T-D+eGc!h|ca9x61b} zh^T!n0XeC?5k}?1)R8H=u}Gng|DM;vUGn*`u`~v9+;yck$iC9TiQKN#;-kiJaR=;X z<6D(o&h5`B)jwV~X0u*q!z~p%VJ=@{Ti)TaHspY0ggTF?u{dxdLs~BJMnZNue_z|e znl!y1wdhu<=#=~m^t-)1xT5v zZ77!B>Hls6h>hh5O3BTRhTEodPOl;8CBa=_L~#FcJ2{KOjn1zpyQltOmsCC9+EMn0 zj#age_2ds7)kwj?fq~cjcypTadVJ5K^j>)U^`C*@zkLI9NPxVsH!C6~9d^O{`OR;Y z{TK>ox_^_=EwvSURp6)5ALjAs{*M}^p_C$aK(6w2Tkrz*BKx1V(bDAxxtdTxBSW!q zO(|SVf)QS8+t3bf?NG1-Q#-U{X%c;{rT0-xU%`R^!ND62YQtC^fh+U@mBjj3BRa>_ zl1CC~WuHvHWe2f+!^|HN5VF|($%c5WDbj+Ooc(E@Om#lrdQRx|#6?T}=w#=Y0?PKj zSFW!xa(0*SzB~9vhZp$sk5D{+gqe!LLB*-chd;$k`aQy)G)mtKboM&0%l6pSnRJ-{ z7JN9>7`*n8QXx_F?$<4zWPD}i`m4^)mS>F^o2Mn?hD!I=dekny4aC17iGDv4~h#;aK z5c#(H=c*C_=z%vO95`VdI4BJqIH+1|p!U!5<4dNGu%OSM4_>`}hWWPRIWfuPSSGg2 zn4ydl4I_OgHoI#dhUF6(T3UH$`N_)05Pab^)aNpt^EEVCUf;q1GH?)Or*O_FN%-Aj7@*NKB~{Ix?Cy3Wlx^V{|e zUjmsGO7JKyuN@*QlO-8oU*=2dmg9Q|L7z-a;RE>`lAfNP#_jx+qe$3vGFnhKCoKmj z=c^AN7+hRkj|J~-Yf`m=->g$CXDwh@+f`7yk;x3EL#IJ(MUU#lebj8pJ)z&kk{Gx+ zT(OeRT5pb^yZd=ZUU{@i@e#z>L*z&ut-Km)+SOUOsZM88ZJ}IFkTh z_`(;-gzPg=q!Q5X)I)QonROY=drhj2Zpb{++EGI3FqVm(Y0Gs{Ndjl*n3Ti8F@$xCL+ zYDwYhsPqyc9kfciCr%SKL||Uimc(%VnceoO(BS;Y`Fvx5ZK-Ofzi$O9qJ5LrLOvIQwvM0qi~V2z4Atr-0F&+0K9(zu_G- z3+|K%uzg*Y`3-ZJS!b{-y+&3axOrkGezC34Vmwoq+#OLxLGC7&rPa`o$ ze}o;l>RJO8Y)|U`olkLZ&!viveWq(Q=Luy3f)oPBz*Rr-*5*6{MsCNRALz?OKh0|S znNUP}yH9svHgbc+$H^b(81kFi(j;!4|m?!M~MZ9^EzKnS>^=$`qj{+W;p^pGo4K`eig zX#Jj?6?@rh`{r&L>XO5DsM?UnBYZoM?qmROEj#hq*jmUP*xlM(T)Nq^*f@7q<$AD) z%JJx_%fxcmyCxG0-lf=)L23dk`p;nu?4lqp(rU0*J}jRfrF#a9?Cg+`(|&n4s=Q#5 zva{=GEsDg0#W>Yr|HBVOo-iKz$D(O~xi-NqYRvIKhxgEX?GSL_L|iMS z_z1aKS{v74$NtJqg$Ze(kh~7fqD45ow zDLJ;gx1%7ZwQx5oht|cp60bL%I)2yV`QzJezm2!@A%?J|By7wH^WE6HWr?kYE7uxF zfm-$3gp9%Hobx+|&tY%ekIfmxRf=_0>3|25mB)w7DItn?%M*tnh8b8Gs*$QO?czU1 zv+2l*!H}j97^Ryiilrul(zhs?0@6`2ZgM2-{Zjo>_}Zj@FOiHE4VcX4$u@tM=bEPW zd)viX^8IR{G6^|x$izlL)&$NGo?`Fz$;5+r?M#_f8~0L>?JDoKXXbX*q^im11#tcn zNZe&e0&8Li(@seM1779l#8fQF;(r2?i$P9_ySlpUj)<>hzCQ7csI8?o%_JsaOEKRx z9Q((u*Ca+0cK@n-?71yVKzqLo>sVZ!`@HV$8xvD{1Buw)+Cs2P8t{y8j||$vpkdL3 zTDlFs!q>;YgV0a_R`qXEz61o3I$I~Uz^G;QqO*2&z80~|-IqTSV-Gl)oRabrOi772 zC$cA=lB$*Y^~5i1F|hfgY7ucOmsVkMv8-Jwm3A3u9m30aA^F!u_Sh!G?PL|p$0N6N z(TnJfHF&hl(?&empxxYi*nm&syYcd5w+~`pv3s%hJJfpYmy|0+rtU@i6o`z-I$l#u zj}hxvffqi}NhHLxEJkaW2$4pR;$_BpZxPwpKQyytQ)+;0|5JsnpZ4?iBgft!%6CUG zy~ZTI-;I8B%XXbv7Ydu+oS0Qy%9KL9{qLF+aC56^fvp+WOAocgE@tD_&npJTEnI1MbhJ z99qR$haL1v0DxFkWOPh=aJX?ix11^QUwxX8utf|nTZkuB{wHq z@qNI8**#A15$8Z0IoByloTc%nIokM@9HIfgfV}qGm)_pj-vn;|8auX){}LP5RXcK* zH{qK3u{(%{-_%rZQG5L&kg(Te_>3cjv3Q2!z;|sy9TXHP9exCIyY;Gt=<`;CM!SIjswnH9`vJ03y%bvb%73TN+|t&Tzkwr#8Zq&SS7 zB9+tMDbEt305Zg{)ccGBAY5{eCBi0yN}#w6i%CR#GD<^Ug^+0GYnU;w84uv}IsBUFDa;rdegt9i6+90oQ)G z_pRDXZQt6*Z%-Eju0QVy_m)z6MIn;m7CML84)+_RnN8PQ`?Yx$0+$1Urafa=cFACS z@DIN>gf8KTxhocg2ZQva6-)!8TBT&p+@1sU*ug)t+>2B;B&>GVtW{rVq%;mj#}B&B zmB{HO^21L|P?a=5n?b{(z#AWuk+dX69O2(Pkw$Wt^9(Tp^%vm zK@Kk}5vrF#bteTb(uqC_2GIb7PelRACT-1N{T7PYq01bKBr|mC&8(4(iG6l?SwGmaFe=7(aT5L;d5YbC7l0fI`mayX z^8gZb+*D{01$(R*s$#7mt0Gs?aCR#7=A=-V#!z*c%v_yRwF z+1bQRg^QBZv;b*Sev;ZQDe}C}!kJ|B!Std(+}^Z&;F26`B1=}w`<)tWy$PZ)rH%6s zyQc-ugqVC_1C?4n`XIEkond>;0S_zpl3V9E$UEa}6De}uKxM0GcfmUjzj{DRxcpJZ_#*2HFsAC%|BLk1AP((T2< z6z^AuRub*EO~rzSyvGXwk=t3OEM+yHcyvI`0RM#uhUud@*DK)&cTskZyu+h2I=!b5 z3V$|L#Udhm_29bI7PcIcZab95W(iSMXF|Q>^M?1Yw{7nt zRWqtS9WD%eDC~WlSZbOt^2u*=6*e$9&YIZ3rZ0N;Q?f>{H9wCNN-_;^WxqZuL)ns; zUI+w^L7`=5;Ad?BsL>#FD+%fJG(Ej+d1v; zh&ppst;Xr*^Z)cQh@Q;vrDa$qKC0!D)S;=UnL^PmCaYVum7w!a#Ti|*VysQKEd~3Y zf3Z^f?mQaJu8IT)eDNSx621<*IeSfI(R?1DCc!DBE(k^1Nq$#o5W;-1Q!ie#^tYY_ zeZ{!h4*2ma&;0uOTEuk||Jk!=KYsp1DYF!Mq1>la`aWoGPG3M+*p_=b{!CcNzjvz4 zAnf{dYwdj61Pd5GSMl9)Ncj2lgZn{gKs3wHi9XSoG!c2lOBIGHbizLklRtR|d#0&~ z!S|m&%i^PlX6H23y>26g7BfK8=z!z9Fd2NzoqfvqIb(;W%Ex9mbr%7rBzS^%!^Fe2 zInqq9Y>0YR1v9ZrX2#P>+-(#>9kcR^Q=UGlGARQat9cB?J2M*fVJ(6ngR zt$|A4Lqc?`T5j*1{=VLT)|HSdASQ%gpI@u^HBw>q*_y1q4)e#0S_V+07aQ$i0^xe1 zQv&5d_MdJ#w@o~7h|bK%JQb>!`-9T>U~7HRVPn>>0st9l!B$6L?tnhd=UBhZWkpd!RFmgrs zc#QmM-YKb`_lS5!S5dV~j^q$LJ%`-%n;d>{+ayid%YVQtMgu0XsUIV;lZ95;a((?3 z)M%(BO=vdos9^f1^fRNL;FbSSVq5WcVoBUj{{E8%rkUzhTTo0#g675VeMb^3cQn~1tiS+&th=*w#{K&6%Uj2$ zU4;*wV7VFKG<`uclW6YYcID4FeZM)<)tS3DShgccYaSD2WDf=7euRC#gz3F>HyN7N zfm)Oee@rxSW*)K(rE5n}FqZV_$+P6ZVo|2#Mzk}0GQ(oFF2ut%#FrjgvJ|dOkSdUdOX4~Ta`sG)ixB{=r94@f<(1Y}d`{fx3HB54d4xlV z&+~kv22KeoI60;j;b9E8qs8aM@t@g?FmAA zv9yEd@uW`n{yZmK8(v4?@AJVGr^iqvx|g0!l<2&HpDf+{7d*FmYaLM&Y?IlhJcCvv z$esX=Yc=ooGK3Mjyh%d@!04_Y%>Yv3QqYD40CdoWkIU1XsZvs{*3oTzC$_0b$2%7w%Df@5dU3~WtAu9SC7cj-xKZ_+ zUX8*ncO>{R&}-!SW%RQSB-40PGAIb8BP^8sz5j@Jru0mHmoOhPaD0o1c;R(qT58Zh zh#7)Xq6=1p&f3Yly4EZXnB~h?g@$5MMar*lY%uWf5P{c&CYA2HI;o=WxG!G3I4%F6 z`CkJ6m5df4O&oIKjGRYzTJ*@FH{B0!9?M#;FM9YA?(FQmJwLQzDD(JEKYi$*S#bpE z%6QZq5@2b`!pC?>;nfW7k7YfE?^YNX)%1M_XKp^%&b{btcHbRcSorP<^QYXUo6FQQ z37^EH%l79l7{SEXa6I_{z|a#IfVjzV874yBCkipIhrU=>d1M?OFjUOF@Z08YA{+%p`&=}?gNZ4UAXdE%{ zfUMJ=qnIu5A4Uz7=%2zUT*l6A^Q~niUrx+BCntGZ`S>ad_w&f{wrDE{KCQ>L&b5_H&inAX8V-&@g_rDT zfOfCGxMx?2EHXgCGeEer&Hc}e0?}k%6*q!`-kT&OHs{m-hQ5PBh*u9UzzngxfK;$3 z_g&p)D@d!tNzWwm=e@2k`!f+@??hTrOt0QsR?BTZWyy6k}sC{4xT z%9cau*Wq{*1?pkO6@8sw@LoJ^z~whPtg)3Xxi{hxaOA@wy=BF1Sn}am0ulcBPeh14 zL#=QfRr@KHl4JId&_EZxW8&?{O_F^-C8ZK}U7JJN#s546Tp{~8^y|;YzJKP0kT8Lc zfx*DVHO%J!viui#eOiu=van8>LJ&N8bHk&Yrth<&iI4h?K3U{?=jC;Rul}5)5Oxm( zCQ8_cG|W|eG|mdXi3;YxO8uTNn(5)ubXlg1-^G)jNB0rKAf}AZQfPoPT}URy=l78T zh1*+V4k1Q&n(fo-(fWCMQW7@txje&cPMI*;p9NiBa*jj%iNmKQ*4^&Pp|EKdY+mYJ zj(W*Du#3)fq31g@L523?V&1dkbuquJCT{ivbK|;tJu&r-s==M?0J5qIDIrLl)%-HasLhj) zaFce_5EH0|`I+x@w4zaou7B&F_wZ{dbcK<_z*uBRFfdlVogt;-M^zyw{Y=<&aB;R6 zUmSZ>_tMnlja~(2@2%J6Ax|D=?>SU$=kLI|p83tUu%&S+_wru5(!xFWzF*-X!M;Qe zs(0>JdB6`*yt1O2<@#$Bn$Gr*z&$pg9)F)^)aHq)JT%VrW@tPuLF)4Q{;*enE}_E& z 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 diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi index e2035f59db46352e6815bcf76721c4ec1c73c0b9..082097c7a700e2b8f7d479a7733cf4814a483d1e 100644 GIT binary patch delta 15512 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 BvRsw44&7~#u7=^y(z>=2Mp@{UBUU5!vi~k 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 LmaLF4@c(}RUN?T# diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 199b15c6a5..1330ae0449 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -2853,7 +2853,7 @@ "bcS" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "bcT" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/door_control{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "bcU" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) -"bcV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 9; icon_state = "green"},/area/hydroponics/garden) +"bcV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/smartfridge/drying_rack,/turf/simulated/floor{dir = 9; icon_state = "green"},/area/hydroponics/garden) "bcW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics/garden) "bcX" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hydroponics/garden) "bcY" = (/obj/structure/flora/ausbushes,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -5882,7 +5882,7 @@ "cjf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/research_port) "cjg" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{tag = "icon-whitegreen_v (SOUTHWEST)"; icon_state = "whitegreen_v"; dir = 10},/area/rnd/xenobiology/xenoflora_storage) "cjh" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) -"cji" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) +"cji" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/obj/machinery/smartfridge/drying_rack,/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) "cjj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology) "cjk" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cjl" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/purple{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) @@ -7229,7 +7229,7 @@ "cKZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) "cLa" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engine_waste) "cLb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa