diff --git a/code/__defines/_reagents.dm b/code/__defines/_reagents.dm index 29d652daa7..bb5da52505 100644 --- a/code/__defines/_reagents.dm +++ b/code/__defines/_reagents.dm @@ -681,6 +681,8 @@ #define REAGENT_ID_CAPSAICIN "capsaicin" #define REAGENT_CONDENSEDCAPSAICIN "Condensed Capsaicin" #define REAGENT_ID_CONDENSEDCAPSAICIN "condensedcapsaicin" +#define REAGENT_GELATIN "Gelatin" +#define REAGENT_ID_GELATIN "gelatin" #define REAGENT_DRINK "Drink" #define REAGENT_ID_DRINK "drink" @@ -1244,7 +1246,8 @@ #define REAGENT_ID_KOMPOT "kompot" #define REAGENT_KVASS "Kvass" #define REAGENT_ID_KVASS "kvass" - +#define REAGENT_CINNAMONPOWDER "Cinnamon powder" +#define REAGENT_ID_CINNAMONPOWDER "cinnamonpowder" // Toxins #define REAGENT_TOXIN "Toxin" diff --git a/code/__defines/_reagents_ch.dm b/code/__defines/_reagents_ch.dm index 0d498b7fbd..738f306201 100644 --- a/code/__defines/_reagents_ch.dm +++ b/code/__defines/_reagents_ch.dm @@ -66,8 +66,6 @@ #define REAGENT_ID_BURBON "burbon" // Food & Drinks -#define REAGENT_GELATIN "Gelatin" -#define REAGENT_ID_GELATIN "gelatin" #define REAGENT_SNAPS "Akvavit" #define REAGENT_ID_SNAPS "snaps" #define REAGENT_MATCHALATTE "Matcha latte" @@ -76,8 +74,6 @@ #define REAGENT_ID_TEALEAVESGREEN "tealeavesgreen" #define REAGENT_BLONDIEMIX "Blondie Mix" #define REAGENT_ID_BLONDIEMIX "blondiemix" -#define REAGENT_CINNAMONPOWDER "ground cinnamon" -#define REAGENT_ID_CINNAMONPOWDER "cinnamonpowder" #define REAGENT_CHERRYTEA "Cherry Tea" #define REAGENT_ID_CHERRYTEA "cherrytea" #define REAGENT_WATERMELONTEA "Watermelon Tea" diff --git a/code/__defines/jobs.dm b/code/__defines/jobs.dm index 5ded971296..99b071138f 100644 --- a/code/__defines/jobs.dm +++ b/code/__defines/jobs.dm @@ -111,7 +111,7 @@ #define JOB_ALT_CARGO_HANDLER "Cargo Handler" #define JOB_ALT_SUPPLY_COURIER "Supply Courier" #define JOB_ALT_DISPOSALS_SORTER "Disposals Sorter" - #define JOB_ALT_MAILMAN "Mailman" // CHOMPAdd + #define JOB_ALT_MAILMAN "Mailman" #define JOB_SHAFT_MINER "Shaft Miner" // Shaft Miner alt titles diff --git a/code/controllers/subsystems/mail_ch.dm b/code/controllers/subsystems/mail.dm similarity index 96% rename from code/controllers/subsystems/mail_ch.dm rename to code/controllers/subsystems/mail.dm index 874319a427..036035a2e5 100644 --- a/code/controllers/subsystems/mail_ch.dm +++ b/code/controllers/subsystems/mail.dm @@ -24,7 +24,7 @@ SUBSYSTEM_DEF(mail) // Collect recipients var/list/mail_recipients = list() for(var/mob/living/carbon/human/player_human in player_list) - if(player_human.stat != DEAD && player_human.client && player_human.client.inactivity <= 10 MINUTES && player_human.job != JOB_OUTSIDER && player_human.job != JOB_ANOMALY && player_human.job != JOB_VR && !player_is_antag(player_human.mind)) // Only alive, active and NT employeers should be getting mail. + if(player_human.stat != DEAD && player_human.client && player_human.client.inactivity <= 10 MINUTES && player_human.job != JOB_OUTSIDER && player_human.job != JOB_ANOMALY && player_human.job != JOB_VR && !player_is_antag(player_human.mind)) // Only alive, active and NT employeers should be getting mail. // CHOMPEdit, outsider, anomaly, vr mail_recipients += player_human // Creates mail for all the mail waiting to arrive, if there's nobody to receive it, it will be a chance of junk mail. diff --git a/code/datums/outfits/jobs/cargo.dm b/code/datums/outfits/jobs/cargo.dm index bed1308f39..8bfb269012 100644 --- a/code/datums/outfits/jobs/cargo.dm +++ b/code/datums/outfits/jobs/cargo.dm @@ -37,3 +37,10 @@ headset = /obj/item/radio/headset/miner headset_alt = /obj/item/radio/headset/miner headset_earbud = /obj/item/radio/headset/miner + +/decl/hierarchy/outfit/job/cargo/cargo_tech/mailman + name = OUTFIT_JOB_NAME(JOB_ALT_MAILMAN) + uniform = /obj/item/clothing/under/rank/mailman2 + head = /obj/item/clothing/head/mailman2 + pda_slot = slot_l_store + backpack_contents = list(/obj/item/storage/bag/mail = 1, /obj/item/mail_scanner = 1) diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm index c98eadfcc5..6723172cf1 100644 --- a/code/datums/supplypacks/supply.dm +++ b/code/datums/supplypacks/supply.dm @@ -260,3 +260,16 @@ containertype = /obj/structure/closet/crate/secure/xion containername = JOB_PATHFINDER + " equipment" access = list(access_explorer) + +/datum/supply_pack/supply/postal_service + name = "Postal Service Supplies" + contains = list( + /obj/item/mail/blank = 10, + /obj/item/pen/fountain, + /obj/item/pen/multi, + /obj/item/destTagger, + /obj/item/storage/bag/mail + ) + cost = 15 + containertype = /obj/structure/closet/crate/nanotrasen + containername = "Postal Service crate" diff --git a/code/game/jobs/job/_alt_title.dm b/code/game/jobs/job/_alt_title.dm index 1cb7fde6b6..7a1b75c7ab 100644 --- a/code/game/jobs/job/_alt_title.dm +++ b/code/game/jobs/job/_alt_title.dm @@ -5,4 +5,6 @@ /datum/alt_title var/title = "GENERIC ALT TITLE" // What the Alt-Title is called var/title_blurb = null // What's amended to the job description for this Job title. If nothing's added, leave null. - var/title_outfit = null // The outfit used by the alt-title. If it's the same as the base job, leave this null. \ No newline at end of file + var/title_outfit = null // The outfit used by the alt-title. If it's the same as the base job, leave this null. + var/list/mail_goodies = null + var/exclusive_mail_goodies = FALSE diff --git a/code/game/jobs/job/cargo.dm b/code/game/jobs/job/cargo.dm index 1c3ea9685e..039395082d 100644 --- a/code/game/jobs/job/cargo.dm +++ b/code/game/jobs/job/cargo.dm @@ -62,7 +62,7 @@ because Central Command gives a partial refund." alt_titles = list(JOB_ALT_CARGO_LOADER = /datum/alt_title/cargo_loader, JOB_ALT_CARGO_HANDLER = /datum/alt_title/cargo_handler, JOB_ALT_SUPPLY_COURIER = /datum/alt_title/supply_courier, - JOB_ALT_DISPOSALS_SORTER = /datum/alt_title/disposal_sorter, JOB_ALT_MAILMAN = /datum/alt_title/mailman) // CHOMPEdit: Adds Mailman title. + JOB_ALT_DISPOSALS_SORTER = /datum/alt_title/disposal_sorter, JOB_ALT_MAILMAN = /datum/alt_title/mailman) /datum/alt_title/supply_courier title = JOB_ALT_SUPPLY_COURIER @@ -80,6 +80,11 @@ title = JOB_ALT_DISPOSALS_SORTER title_blurb = "A " + JOB_ALT_DISPOSALS_SORTER + " is usually tasked with operating disposals delivery system, sorting the trash and tagging parcels for delivery." +/datum/alt_title/mailman + title = JOB_ALT_MAILMAN + title_blurb = "A Mail Carrier is tasked with delivering packages or mail to whoever it might adress." + title_outfit = /decl/hierarchy/outfit/job/cargo/cargo_tech/mailman + ////////////////////////////////// // Shaft Miner ////////////////////////////////// diff --git a/code/game/jobs/job/cargo_ch.dm b/code/game/jobs/job/cargo_ch.dm deleted file mode 100644 index a589c242a2..0000000000 --- a/code/game/jobs/job/cargo_ch.dm +++ /dev/null @@ -1,4 +0,0 @@ -/datum/alt_title/mailman - title = JOB_ALT_MAILMAN - title_blurb = "A Mail Carrier is tasked with delivering packages or mail to whoever it might adress." - title_outfit = /decl/hierarchy/outfit/job/cargo/cargo_tech/mailman diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 5c3ccf47a1..f5b7ab095a 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -66,6 +66,10 @@ var/requestable = TRUE + VAR_PROTECTED/list/mail_goodies = null // Goodies that can be received via the mail system + VAR_PROTECTED/exclusive_mail_goodies = FALSE // If this job's mail goodies compete with generic goodies. + VAR_PROTECTED/mail_color = "#FFF" + /datum/job/New() . = ..() department_accounts = department_accounts || departments_managed diff --git a/modular_chomp/code/game/jobs/job/job_goodies.dm b/code/game/jobs/job/job_goodies.dm similarity index 97% rename from modular_chomp/code/game/jobs/job/job_goodies.dm rename to code/game/jobs/job/job_goodies.dm index bb3a8d3e12..7b44ec299e 100644 --- a/modular_chomp/code/game/jobs/job/job_goodies.dm +++ b/code/game/jobs/job/job_goodies.dm @@ -1,24 +1,6 @@ -// Mail goodies -/datum/job/ - var/list/mail_goodies = list() // Goodies that can be received via the mail system - var/exclusive_mail_goodies = FALSE // If this job's mail goodies compete with generic goodies. - var/mail_color = "#FFF" - -/datum/alt_title/ - var/list/mail_goodies = list() - // Get mail goodies -/datum/job/proc/get_mail_goodies(mob/recipient, var/alt_title) - var/list/goodies = list() - goodies |= mail_goodies - - if(alt_titles && alt_titles) - var/typepath = alt_titles[alt_title] - if(typepath) - var/datum/alt_title/A = new typepath() - if(A.mail_goodies) - goodies |= A.mail_goodies - return goodies +/datum/job/proc/get_mail_goodies(mob/recipient) + return mail_goodies // Get mail colour /datum/job/proc/get_mail_color(mob/recipient) @@ -492,10 +474,12 @@ /obj/item/storage/pill_bottle/antitox = 125, /obj/item/reagent_containers/blood/OMinus = 125, /obj/item/healthanalyzer/improved = 150, + /* // These will stay uncommented until we see what to do about the chems /obj/item/storage/pill_bottle/neotane = 10, /obj/item/storage/pill_bottle/burncard = 10, /obj/item/storage/pill_bottle/flamecure = 10, /obj/item/storage/pill_bottle/purifyingagent = 10, + */ /obj/item/reagent_containers/hypospray/autoinjector/biginjector/clotting = 10 ) mail_color = COMMS_COLOR_MEDICAL @@ -562,10 +546,12 @@ /obj/item/stack/medical/advanced/ointment = 175, /obj/item/reagent_containers/syringe/antiviral = 100, /obj/item/storage/pill_bottle/tramadol = 100, + /* // Commented until we know what to do with the many chomp chems /obj/item/storage/pill_bottle/neotane = 10, /obj/item/storage/pill_bottle/burncard = 10, /obj/item/storage/pill_bottle/flamecure = 10, /obj/item/storage/pill_bottle/purifyingagent = 10, + */ /obj/item/reagent_containers/pill/myelamine = 10 ) mail_color = COMMS_COLOR_MEDICAL diff --git a/code/game/objects/effects/decals/contraband.dm b/code/game/objects/effects/decals/contraband.dm index f3c7027f09..cfe4829644 100644 --- a/code/game/objects/effects/decals/contraband.dm +++ b/code/game/objects/effects/decals/contraband.dm @@ -1,4 +1,4 @@ - +/* //########################## CONTRABAND ;3333333333333333333 -Agouri ################################################### /obj/item/contraband @@ -240,3 +240,31 @@ /obj/structure/sign/poster/custom roll_type = /obj/item/contraband/poster/custom +*/ +/obj/item/contraband/package + name = "contraband" + desc = "A tightly sealed package. Dare to look inside?" + icon = 'icons/obj/storage.dmi' + icon_state = "deliverycrate5" + item_state = "table_parts" + w_class = ITEMSIZE_HUGE + +/obj/item/contraband/package/attack_self(mob/user) + var/contraband = pick( + /obj/item/reagent_containers/glass/beaker/vial/macrocillin, + /obj/item/reagent_containers/glass/beaker/vial/microcillin, + /obj/item/gun/energy/sizegun, + /obj/item/clothing/mask/muzzle, + /obj/item/pda/clown, + /obj/item/pda/mime, + /obj/item/storage/fancy/cigar/havana, + /obj/item/card/emag_broken, + /obj/item/sleevemate, + /obj/item/disk/nifsoft/compliance, + /obj/item/seeds/ambrosiadeusseed, + /obj/item/seeds/ambrosiavulgarisseed, + /obj/item/bodysnatcher) + + user.put_in_hands(new contraband(user.loc)) + to_chat(user, span_notice("You unwrap the package.")) + qdel(src) diff --git a/code/game/objects/items/devices/lightpainter_ch.dm b/code/game/objects/items/devices/lightpainter_ch.dm deleted file mode 100644 index 23aa36701f..0000000000 --- a/code/game/objects/items/devices/lightpainter_ch.dm +++ /dev/null @@ -1,73 +0,0 @@ -// Light Painter. - - -/obj/item/lightpainter - name = "light painter" - desc = "A device to configure the emission color of lighting fixtures. Use this device in-hand to set/reset the color. Use the device on a light fixture to assign the color." - icon = 'icons/obj/janitor.dmi' - icon_state = "lightreplacer0" - color = "#bbbbff" - slot_flags = SLOT_BELT - - matter = list(MAT_STEEL = 5000,MAT_GLASS = 1500) - - var/static/dcolor = "#e0eff0" - var/static/dnightcolor = "#efcc86" - //set color values. - var/setcolor = "#e0eff0" - var/setnightcolor = "#efcc86" - var/resetmode = 1 - - var/dimming = 0.7 // multiply value to dim lights from setcolor to nightcolor - - -/obj/item/lightpainter/New() - . = ..() - -/obj/item/lightpainter/examine(mob/user) - . = ..() - if(get_dist(user, src) <= 2) - if(resetmode) - . += "It is currently resetting light colors." - else - . += "It is currently coloring lights." - -/obj/item/lightpainter/attack_self(mob/user) - - if(!resetmode) - resetmode = 1 - to_chat(usr, span_infoplain("Painter reset.")) - else - var/color_input = tgui_color_picker(usr,"","Choose Light Color",setcolor) - if(color_input) - setcolor = sanitize_hexcolor(color_input) - var/list/setcolorRGB = hex2rgb(setcolor) - var/setcolorR = num2hex(setcolorRGB[1] * dimming, 2) - var/setcolorG = num2hex(setcolorRGB[2] * dimming, 2) - var/setcolorB = num2hex(setcolorRGB[3] * dimming, 2) - setnightcolor = addtext("#", setcolorR, setcolorG, setcolorB) - resetmode = 0 - to_chat(usr, span_infoplain("Painter color set.")) - - -/obj/item/lightpainter/proc/ColorLight(var/obj/machinery/light/target, var/mob/living/U) - - src.add_fingerprint(U) - - if(resetmode) - to_chat(U, span_notice("You reset the color of the [target.get_fitting_name()].")) - target.brightness_color = dcolor - target.brightness_color_ns = dnightcolor - else - to_chat(U, span_notice("You set the color of the [target.get_fitting_name()].")) - - target.brightness_color = setcolor - target.brightness_color_ns = setnightcolor - - if(target.nightshift_enabled) - target.light_color = target.brightness_color_ns - else - target.light_color = target.brightness_color - - target.set_light(0) - target.update() diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 266c0c5d89..5a622223ab 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -219,3 +219,76 @@ return 1 else return 0 + +// Light Painter. + +/obj/item/lightpainter + name = "light painter" + desc = "A device to configure the emission color of lighting fixtures. Use this device in-hand to set/reset the color. Use the device on a light fixture to assign the color." + icon = 'icons/obj/janitor.dmi' + icon_state = "lightreplacer0" + color = "#bbbbff" + slot_flags = SLOT_BELT + + matter = list(MAT_STEEL = 5000,MAT_GLASS = 1500) + + var/static/dcolor = "#e0eff0" + var/static/dnightcolor = "#efcc86" + //set color values. + var/setcolor = "#e0eff0" + var/setnightcolor = "#efcc86" + var/resetmode = 1 + + var/dimming = 0.7 // multiply value to dim lights from setcolor to nightcolor + + +/obj/item/lightpainter/New() + . = ..() + +/obj/item/lightpainter/examine(mob/user) + . = ..() + if(get_dist(user, src) <= 2) + if(resetmode) + . += "It is currently resetting light colors." + else + . += "It is currently coloring lights." + +/obj/item/lightpainter/attack_self(mob/user) + + if(!resetmode) + resetmode = 1 + to_chat(user, span_infoplain("Painter reset.")) + else + var/color_input = tgui_color_picker(user,"","Choose Light Color",setcolor) + if(color_input) + setcolor = sanitize_hexcolor(color_input) + var/list/setcolorRGB = hex2rgb(setcolor) + var/setcolorR = num2hex(setcolorRGB[1] * dimming, 2) + var/setcolorG = num2hex(setcolorRGB[2] * dimming, 2) + var/setcolorB = num2hex(setcolorRGB[3] * dimming, 2) + setnightcolor = addtext("#", setcolorR, setcolorG, setcolorB) + resetmode = 0 + to_chat(user, span_infoplain("Painter color set.")) + + +/obj/item/lightpainter/proc/ColorLight(var/obj/machinery/light/target, var/mob/living/U) + + src.add_fingerprint(U) + + if(resetmode) + to_chat(U, span_notice("You reset the color of the [target.get_fitting_name()].")) + target.brightness_color = dcolor + target.brightness_color_ns = dnightcolor + else + to_chat(U, span_notice("You set the color of the [target.get_fitting_name()].")) + + target.brightness_color = setcolor + target.brightness_color_ns = setnightcolor + + if(target.nightshift_enabled) + target.light_color = target.brightness_color_ns + else + target.light_color = target.brightness_color + + target.set_light(0) + target.update() diff --git a/modular_chomp/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm similarity index 98% rename from modular_chomp/code/game/objects/items/holosign_creator.dm rename to code/game/objects/items/holosign_creator.dm index 8b97b49c9d..15663bc005 100644 --- a/modular_chomp/code/game/objects/items/holosign_creator.dm +++ b/code/game/objects/items/holosign_creator.dm @@ -65,7 +65,7 @@ /obj/item/holosign_creator/medical name = "Vey-Med barrier projector" desc = "A holographic projector that creates Vey-Medical holobarriers. Useful during quarantines since they halt those with malicious diseases." - icon = 'modular_chomp/icons/obj/device.dmi' + icon = 'icons/obj/device.dmi' icon_state = "signmaker_med" holosign_type = /obj/structure/holosign/barrier/medical creation_time = 0 diff --git a/code/game/objects/items/toys/target_toy.dm b/code/game/objects/items/toys/target_toy.dm new file mode 100644 index 0000000000..7b4d79aca3 --- /dev/null +++ b/code/game/objects/items/toys/target_toy.dm @@ -0,0 +1,12 @@ +/obj/item/storage/briefcase/target_toy + starts_with = list( + /obj/item/paper/target, + /obj/item/gun/projectile/revolver/toy/big_iron, + /obj/item/grenade/confetti = 2 + ) + +/obj/item/paper/target + name = "target notice" + +/obj/item/paper/target/New() + info = "Your target is " + span_bold("[random_name(pick(MALE,FEMALE))]") + ". Make sure they don't get out of there alive." diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index edf7d67cae..65b787048c 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -772,3 +772,338 @@ CIGARETTE PACKETS ARE IN FANCY.DM name = "\improper badass Zippo lighter" desc = "An absolutely badass zippo lighter. Just look at that skull!" icon_state = "skullzippo" + +/obj/item/flame/lighter/supermatter + name = "Hardlight Supermatter Zippo" // Base SM Lighter + desc = "State of the Art Supermatter Lighter." + description_fluff = "A zippo style lighter with a tiny supermatter sliver held by a hardlight shield. When lighting a cigar, make sure to hover the tip near the sliver, not against it!" + icon_state = "SMzippo" + item_state = "SMzippo" + activation_sound = 'sound/items/zippo_on_alt.ogg' + deactivation_sound = 'sound/items/zippo_off.ogg' + +/obj/item/flame/lighter/supermatter/syndismzippo + name = "Phoron Supermatter Zippo" // Syndicate SM Lighter + desc = "State of the Art Supermatter Lighter." + description_fluff = "A red zippo style lighter with a tiny supermatter sliver held by a phoron field." + icon_state = "SyndiSMzippo" + item_state = "SyndiSMzippo" + activation_sound = 'sound/items/zippo_on_alt.ogg' + deactivation_sound = 'sound/items/zippo_off.ogg' + +/obj/item/flame/lighter/supermatter/expsmzippo + name = "Experimental SM Lighter" // Dangerous WIP (admin/event only ATM) + desc = "State of the Art Supermatter Lighter" + description_fluff = "A unique take originating from the zippo design, a shard of supermatter placed within lead-lined walls. Cautious, VERY DANGEROUS do NOT touch!" + icon_state = "ExpSMzippo" + item_state = "ExpSMzippo" + activation_sound = 'sound/items/button-open.ogg' + deactivation_sound = 'sound/items/button-close.ogg' + +// safe smzippo +/obj/item/flame/lighter/supermatter/attack_self(mob/living/user) + if(!base_state) + base_state = icon_state + if(!lit) + lit = 1 + icon_state = "[base_state]on" + item_state = "[base_state]on" + playsound(src, activation_sound, 75, 1) + if(prob(50)) + user.visible_message(span_rose("[user] safely activates the [src] with a push of a button!")) + else + if(prob(95)) + user.visible_message(span_notice("After a few attempts, [user] manages to excite the supermatter within the [src].")) + else // Just like the cheap lighter, this time you can shock/burn yourself a little on the hardlight shield + to_chat(user, span_warning("You hurt yourself on the shielding!")) + if (user.get_left_hand() == src) + user.apply_damage(1,SEARING,"l_hand") + user.apply_damage(2,ELECTROCUTE,"l_hand") + user.apply_damage(3,CLONE,"l_hand") + user.apply_damage(4,ELECTROMAG,"l_hand") + else + user.apply_damage(1,SEARING,"r_hand") + user.apply_damage(2,ELECTROCUTE,"r_hand") + user.apply_damage(3,CLONE,"r_hand") + user.apply_damage(4,ELECTROMAG,"r_hand") + user.visible_message(span_notice("After a few attempts, [user] manages to activate the [src], they however sting themselves on the shielding!")) + + set_light(2) + START_PROCESSING(SSobj, src) + else + lit = 0 + icon_state = "[base_state]" + item_state = "[base_state]" + playsound(src, deactivation_sound, 75, 1) + if(istype(src, /obj/item/flame/lighter/supermatter) ) + user.visible_message(span_rose("You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing.")) + else + user.visible_message(span_notice("[user] quietly shuts the [src].")) + + set_light(0) + STOP_PROCESSING(SSobj, src) + return + + +/obj/item/flame/lighter/supermatter/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + + if(lit == 1) + M.IgniteMob() + add_attack_logs(user,M,"Lit on fire with [src]") + + if(istype(M.wear_mask, /obj/item/clothing/mask/smokable/cigarette) && user.zone_sel.selecting == O_MOUTH && lit) + var/obj/item/clothing/mask/smokable/cigarette/cig = M.wear_mask + if(M == user) + cig.attackby(src, user) + else + if(istype(src, /obj/item/flame/lighter/supermatter)) + cig.light(span_rose("[user] whips the [name] out and holds it for [M].")) + else + cig.light(span_notice("[user] holds the [name] out for [M], and lights the [cig.name].")) + else + ..() + +/obj/item/flame/lighter/supermatter/process() + var/turf/location = get_turf(src) + if(location) + location.hotspot_expose(700, 5) + return + +// syndicate smzippo +/obj/item/flame/lighter/supermatter/syndismzippo/attack_self(mob/living/user) + if(!base_state) + base_state = icon_state + if(!lit) + lit = 1 + icon_state = "[base_state]on" + item_state = "[base_state]on" + playsound(src, activation_sound, 75, 1) + if(prob(50)) + user.visible_message(span_rose("[user] safely activates the [src] with a push of a button!")) + else + if(prob(95)) + user.visible_message(span_notice("After a few attempts, [user] manages to excite the supermatter within the [src].")) + else // Just like with the cheap lighter, but this time you can hurt yourself on the heated phoron field + to_chat(user, span_warning("You singe yourself on the phoron shielding the excited supermatter!")) + if (user.get_left_hand() == src) + user.apply_damage(30,HALLOSS,"l_hand") + user.apply_effect(20,IRRADIATE) + user.apply_damage(5,BURN,"l_hand") + user.apply_damage(5,ELECTROCUTE,"l_hand") + else + user.apply_damage(30,HALLOSS,"r_hand") + user.apply_effect(20,IRRADIATE) + user.apply_damage(5,BURN,"r_hand") + user.apply_damage(5,ELECTROCUTE,"r_hand") + user.visible_message(span_notice("After a few attempts, [user] manages to activate the [src], they however burn themselves with the heated phoron field!")) + + set_light(2) + START_PROCESSING(SSobj, src) + else + lit = 0 + icon_state = "[base_state]" + item_state = "[base_state]" + playsound(src, deactivation_sound, 75, 1) + if(istype(src, /obj/item/flame/lighter/supermatter/syndismzippo) ) + user.visible_message(span_rose("You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing.")) + else + user.visible_message(span_notice("[user] quietly shuts the [src].")) + + set_light(0) + STOP_PROCESSING(SSobj, src) + return + + +/obj/item/flame/lighter/supermatter/syndismzippo/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + + if(lit == 1) + M.IgniteMob() + add_attack_logs(user,M,"Lit on fire with [src]") + + if(istype(M.wear_mask, /obj/item/clothing/mask/smokable/cigarette) && user.zone_sel.selecting == O_MOUTH && lit) + var/obj/item/clothing/mask/smokable/cigarette/cig = M.wear_mask + if(M == user) + cig.attackby(src, user) + else + if(istype(src, /obj/item/flame/lighter/supermatter/syndismzippo)) + cig.light(span_rose("[user] whips the [name] out and holds it for [M].")) + else + cig.light(span_notice("[user] holds the [name] out for [M], and lights the [cig.name].")) + else + ..() + +/obj/item/flame/lighter/process() + var/turf/location = get_turf(src) + if(location) + location.hotspot_expose(700, 5) + return + +// Experimental smzippo +/obj/item/flame/lighter/supermatter/expsmzippo/attack_self(mob/living/user) + if (!base_state) + base_state = icon_state + if (!lit) + lit = 1 + icon_state = "[base_state]on" + item_state = "[base_state]on" + playsound(src, activation_sound, 75, 1) + var/i = rand(1, 100) + switch(i) + if(1 to 22) + to_chat(user, span_rose("[user] safely reveals the supermatter shard within the [src]!")) + user.visible_message(span_rose("You safely revealed the supermatter shard within the [src]!")) + if (user.get_left_hand() == src) + user.apply_damage(1, IRRADIATE, "l_hand") + else // Even using this safely will irradiate you a tiny tiny bit. + user.apply_damage(1, IRRADIATE, "r_hand") + if(23 to 33) + to_chat(user, span_warning("[user]'s hand slipped and they brush against the supermatter within [src]!")) + user.visible_message(span_notice("You accidentally grazed your hand across the supermatter!")) + if (user.get_left_hand() == src) + user.apply_damage(10, IRRADIATE, "l_hand") + user.apply_damage(20, BURN, "l_hand") + user.apply_damage(20, ELECTROCUTE, "l_hand") + user.apply_damage(50, AGONY, "l_hand") + else // One of the outcomes will burn and shock you, the pain is the worst part of this one though. + user.apply_damage(10, IRRADIATE, "r_hand") + user.apply_damage(20, BURN, "r_hand") + user.apply_damage(20, ELECTROCUTE, "r_hand") + user.apply_damage(50, AGONY, "r_hand") + if(34 to 44) + to_chat(user, span_warning("[user] burned themselves on the [src]!")) + user.visible_message(span_notice("You accidentally burn yourself on the [src]!")) + if (user.get_left_hand() == src) + user.apply_damage(30, IRRADIATE, "l_hand") + user.apply_damage(20, SEARING, "l_hand") + user.apply_damage(15, BURN, "l_hand") + else // One of the outcomes is pure burn and radiation. + user.apply_damage(30, IRRADIATE, "r_hand") + user.apply_damage(20, SEARING, "r_hand") + user.apply_damage(15, BURN, "r_hand") + if(45 to 55) + to_chat(user, span_warning("[user] fumbled the [src] and the supermatter let out sparks!")) + user.visible_message(span_notice("You fumble the [src], letting the supermatter spark as the case opens!")) + if (user.get_left_hand() == src) + user.apply_damage(1, ELECTROCUTE, "l_hand") + user.apply_damage(100, ELECTROMAG, "l_hand") + else // This one is mostly dangerous to synthetics and it will EMP you. But otherwise it's safe. + user.apply_damage(1, ELECTROCUTE, "r_hand") + user.apply_damage(100, ELECTROMAG, "r_hand") + if(56 to 66) + to_chat(user, span_warning("[user] struggles to open their [src], but when they do they get burned by the extreme heat within!")) + user.visible_message(span_notice("You struggle to get the case to open, and when it does the heat that pours out of the [src] burns!")) + if (user.get_left_hand() == src) + user.apply_damage(1, IRRADIATE, "l_hand") + user.apply_damage(1, BRUISE, "l_hand") + user.apply_damage(200, BURN, "l_hand") + user.drop_l_hand() + else // This will INSTA-DUST your hand that you're holding the item in, and then make you drop the lighter. + user.apply_damage(1, IRRADIATE, "r_hand") + user.apply_damage(1, BRUISE, "r_hand") + user.apply_damage(200, BURN, "r_hand") + user.drop_r_hand() + if(67 to 77) + to_chat(user, span_warning("Ouch! While pushing on the release to open the [src], [user]'s finger slipped right as the case opened, pressing their finger firm against the supermatter!")) + user.visible_message(span_notice("You accidentally pushed your finger against the supermatter!")) + if (user.get_left_hand() == src) + user.apply_damage(50, HALLOSS, "l_hand") + user.apply_damage(40, IRRADIATE, "l_hand") + user.apply_damage(30, BURN, "l_hand") + user.apply_damage(20, TOX, "l_hand") + user.apply_damage(10, ELECTROCUTE, "l_hand") + user.apply_effect(25, STUTTER) + user.apply_effect(15, SLUR) + user.apply_effect(5, STUN) + else // This one is VERY punishing, you get a ton of damage, a lot of pain, and a minor stun. Once the stun goes away you'll be stuttering for awhile as if in crit. + user.apply_damage(50, HALLOSS, "r_hand") + user.apply_damage(40, IRRADIATE, "r_hand") + user.apply_damage(30, BURN, "r_hand") + user.apply_damage(20, TOX, "r_hand") + user.apply_damage(10, ELECTROCUTE, "r_hand") + user.apply_effect(25, STUTTER) + user.apply_effect(15, SLUR) + user.apply_effect(5, STUN) + if(78 to 88) + to_chat(user, span_notice("[user] managed to pinch themselves on the case of their [src]... it could have been worse.")) + user.visible_message(span_notice("You manage to pinch yourself on the case!")) + if (user.get_left_hand() == src) + user.apply_damage(1, CLONE, "l_hand") + user.apply_damage(1, HALLOSS, "l_hand") + else // Aside from the base, this one isn't punishing outside of giving you genetic damage. + user.apply_damage(1, CLONE, "r_hand") + user.apply_damage(1, HALLOSS, "r_hand") + if(89 to 99) + to_chat(user, span_notice("[user] opened the [src] but forgot that you aren't supposed to look at supermatter!")) + user.visible_message(span_notice("You find yourself looking at the supermatter for longer than you should...")) + if (user.get_left_hand() == src) + user.apply_damage(15, HALLOSS, "l_hand") + user.apply_effect(5, WEAKEN) + user.apply_damage(15, IRRADIATE, "l_hand") + user.apply_effect(100, EYE_BLUR) + user.apply_effect(50, AGONY) + user.apply_damage(5, OXY) + user.eye_blurry = 10 + else // This one just blinds and blurs your screen, but otherwise doesn't actually risk harming you. Even the oxy damage heals on its own. + user.apply_damage(15, HALLOSS, "r_hand") + user.apply_effect(5, WEAKEN) + user.apply_damage(15, IRRADIATE, "l_hand") + user.apply_effect(100, EYE_BLUR) + user.apply_effect(50, AGONY) + user.apply_damage(15, OXY) + user.eye_blurry = 10 + if(100) // This is the part that makes it admin only for the moment, it spawns 500 rads from the carbon's position, and dusts the carbon instantly. It does also drop everything unlike the supermatter crystal though, so hopefully you won't lose any items if you fumble this badly! + to_chat(user, span_warning("OH NO! [user] almost dropped their live [src]! Thank goodness they caught it... by the glowing yellow crystal... oh.")) + user.visible_message(span_danger("You almost dropped your [src], thank goodness you caught it! By the glowing crystal within. You find your ears filled with unearthly ringing and your last thought is \"Oh, fuck.\"")) + user.drop_r_hand() // To ensure the lighter is dropped <3 + user.drop_l_hand() // To ensure the lighter is dropped <3 + for(var/obj/item/e in user) + user.drop_from_inventory(e) + log_and_message_admins("[user] dusted themselves and caused massive radiation with [src]!",user) + user.dust() + var/rads = 500 + SSradiation.radiate(src, rads) + + set_light(5) + START_PROCESSING(SSobj, src) + else + lit = 0 + icon_state = "[base_state]" + item_state = "[base_state]" + playsound(src, deactivation_sound, 75, 1) + if (istype(src, /obj/item/flame/lighter/supermatter/expsmzippo)) + user.visible_message(span_rose("You hear a quiet click, as [user] closes the [src].")) + else + user.visible_message(span_notice("[user] quietly shuts the [src].")) + + set_light(0) + STOP_PROCESSING(SSobj, src) + +/obj/item/flame/lighter/supermatter/expsmzippo/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if (!istype(M, /mob)) + return + + if (lit == 1) + M.IgniteMob() + add_attack_logs(user, M, "Lit on fire with [src]") + + if (istype(M.wear_mask, /obj/item/clothing/mask/smokable/cigarette) && user.zone_sel.selecting == O_MOUTH && lit) + var/obj/item/clothing/mask/smokable/cigarette/cig = M.wear_mask + if (M == user) + cig.attackby(src, user) + else + if (istype(src, /obj/item/flame/lighter/supermatter/expsmzippo)) + cig.light(span_rose("[user] whips the [name] out and holds it for [M].")) + else + cig.light(span_notice("[user] holds the [name] out for [M], and lights the [cig.name].")) + else + ..() + +/obj/item/flame/lighter/supermatter/expsmzippo/process() + var/turf/location = get_turf(src) + if (location) + location.hotspot_expose(700, 5) + return diff --git a/code/game/objects/items/mail_ch.dm b/code/game/objects/mail.dm similarity index 92% rename from code/game/objects/items/mail_ch.dm rename to code/game/objects/mail.dm index a86fd5cd7e..339ae5f5b3 100644 --- a/code/game/objects/items/mail_ch.dm +++ b/code/game/objects/mail.dm @@ -1,7 +1,7 @@ /obj/item/mail name = "mail" - desc = "An officially postmarked, tamper-evident parcel regulated by CentComm and made of high-quality materials." - icon = 'modular_chomp/icons/obj/bureaucracy.dmi' + desc = "An officially postmarked, tamper-evident parcel regulated by CentCom and made of high-quality materials." + icon = 'icons/obj/bureaucracy.dmi' icon_state = "mail_small" item_flags = NOBLUDGEON w_class = ITEMSIZE_SMALL @@ -80,7 +80,7 @@ var/set_recipient = FALSE var/set_content = FALSE var/sealed = FALSE - var/list/mail_recipients = list() + var/list/mail_recipients /obj/item/mail/blank/attackby(obj/item/W, mob/user) ..() @@ -95,7 +95,7 @@ set_content = FALSE user.drop_item() W.forceMove(src) - balloon_alert(user, "Placed the [W] into the [src]") + to_chat(user, "Placed the [W] into the [src]") set_content = TRUE description_info = "Click with an empty hand to seal it, or Alt-Click to retrieve the object out." return @@ -134,7 +134,6 @@ /obj/item/mail/blank/attack_self(mob/user) if(!sealed) - balloon_alert(user, "Sealing the envelope...") if(!do_after(user, 1.5 SECONDS, target = user)) sealed = FALSE sealed = TRUE @@ -177,14 +176,14 @@ var/obj/item/destTagger/O = W if(O.currTag) if(src.sortTag != O.currTag) - balloon_alert(user, "You have labeled the destination as [O.currTag].") + to_chat(user, span_notice("You have labeled the destination as [O.currTag].")) src.sortTag = O.currTag playsound(src, 'sound/machines/twobeep.ogg', 50, 1) W.description_info = " It is labeled for [O.currTag]" else - balloon_alert(user, "The mail is already labeled for [O.currTag].") + to_chat(user, span_notice("The mail is already labeled for [O.currTag].")) else - balloon_alert(user, "You need to set a destination first!") + to_chat(user, span_danger("You need to set a destination first!")) return /obj/item/mail/attack_self(mob/user) @@ -194,15 +193,14 @@ /obj/item/mail/proc/unwrap(mob/user) if(recipient && user != recipient) - balloon_alert(user, "You can't open somebody's mail! That's illegal") + to_chat(user, span_danger("You can't open somebody's mail! That's illegal")) return FALSE if(opening) - balloon_alert(user, "You are already opening that!") + to_chat(user, span_danger("You are already opening that!")) return FALSE opening = TRUE - balloon_alert(user, "Unwrapping...") if(!do_after(user, 1.5 SECONDS, target = user)) opening = FALSE return FALSE @@ -231,7 +229,7 @@ if(!preset_goodies) var/list/job_goodies = this_job.get_mail_goodies(new_recipient, current_title) if(LAZYLEN(job_goodies)) - if(this_job.exclusive_mail_goodies) + if(this_job.get_mail_goodies()) goodies = job_goodies else goodies += job_goodies @@ -299,12 +297,12 @@ new chosen(ground_mail) log_and_message_admins("spawned [chosen] inside an envelope at ([usr.x],[usr.y],[usr.z])") - feedback_add_details("admin_verb","SE") + feedback_add_details("admin_verb","SM") // Mail Crate /obj/structure/closet/crate/mail name = "mail crate" - desc = "An official mail crate from CentComm" + desc = "An official mail crate from CentCom" points_per_crate = 0 closet_appearance = /decl/closet_appearance/crate/nanotrasen @@ -331,7 +329,7 @@ /obj/item/storage/bag/mail name = "mail bag" desc = "A bag for letters, envelopes and other postage." - icon = 'modular_chomp/icons/obj/bureaucracy.dmi' + icon = 'icons/obj/bureaucracy.dmi' icon_state = "mailbag" slot_flags = SLOT_BELT | SLOT_POCKET w_class = ITEMSIZE_NORMAL @@ -356,7 +354,7 @@ desc = "Sponsored by the Intergalactic Mail Service, this device logs mail deliveries in exchance for financial compensation." force = 0 throwforce = 0 - icon = 'modular_chomp/icons/obj/bureaucracy.dmi' + icon = 'icons/obj/bureaucracy.dmi' icon_state = "mail_scanner" slot_flags = SLOT_BELT w_class = ITEMSIZE_SMALL @@ -374,34 +372,34 @@ if(istype(A, /obj/item/mail)) var/obj/item/mail/saved_mail = A if(saved_mail.scanned) - user.balloon_alert(user, "This letter has already been scanned!") - playsound(loc, 'modular_chomp/sound/items/mail/maildenied.ogg', 50, TRUE) + to_chat(user, span_danger("This letter has already been scanned!")) + playsound(loc, 'sound/items/mail/maildenied.ogg', 50, TRUE) return - user.balloon_alert(user, "Mail added to database") - playsound(loc, 'modular_chomp/sound/items/mail/mailscanned.ogg', 50, TRUE) + to_chat(user, span_notice("Mail added to database")) + playsound(loc, 'sound/items/mail/mailscanned.ogg', 50, TRUE) saved = A return if(isliving(A)) var/mob/living/M = A if(!saved) - user.balloon_alert(user, "No logged mail!") - playsound(loc, 'modular_chomp/sound/items/mail/maildenied.ogg', 50, TRUE) + to_chat(user, span_danger("No logged mail!")) + playsound(loc, 'sound/items/mail/maildenied.ogg', 50, TRUE) return var/mob/living/recipient = saved.recipient if(M.stat == DEAD) to_chat(user, span_warning("Consent Verification failed: You can't deliver mail to a corpse!")) - playsound(loc, 'modular_chomp/sound/items/mail/maildenied.ogg', 50, TRUE) + playsound(loc, 'sound/items/mail/maildenied.ogg', 50, TRUE) return if(M.real_name != recipient.real_name) to_chat(user, span_warning("Identity Verification failed: Target is not authorized recipient of this envelope!")) - playsound(loc, 'modular_chomp/sound/items/mail/maildenied.ogg', 50, TRUE) + playsound(loc, 'sound/items/mail/maildenied.ogg', 50, TRUE) return if(!M.client) to_chat(user, span_warning("Consent Verification failed: The scanner does not accept orders from SSD crewmemmbers!")) - playsound(loc, 'modular_chomp/sound/items/mail/maildenied.ogg', 50, TRUE) + playsound(loc, 'sound/items/mail/maildenied.ogg', 50, TRUE) return saved.scanned = TRUE @@ -409,7 +407,7 @@ cargo_points = rand(5, 10) to_chat(user, span_notice("Succesful delivery acknowledged! [cargo_points] points added to Supply.")) - playsound(loc, 'modular_chomp/sound/items/mail/mailapproved.ogg', 50, TRUE) + playsound(loc, 'sound/items/mail/mailapproved.ogg', 50, TRUE) SSsupply.points += cargo_points // JUNK MAIL STUFF @@ -440,7 +438,7 @@ /obj/item/reagent_containers/food/snacks/donkpocket/spicy, /obj/item/reagent_containers/food/snacks/donkpocket/teriyaki, /obj/item/toy/figure, - /obj/item/contraband, + /obj/item/contraband/package, /obj/item/tool/screwdriver/sdriver, /obj/item/storage/briefcase/target_toy )) @@ -460,7 +458,7 @@ /obj/item/reagent_containers/food/snacks/donkpocket/spicy = "[initial(name)] with NEW SPICY-POCKET.", /obj/item/reagent_containers/food/snacks/donkpocket/teriyaki = "[initial(name)] with NEW TERIYAKI-POCKET.", /obj/item/toy/figure = "[initial(name)] from DoN**K*oC", - /obj/item/contraband = "[pick("oddly shaped", "strangely wrapped", "weird", "bulging")] [initial(name)]", + /obj/item/contraband/package = "[pick("oddly shaped", "strangely wrapped", "weird", "bulging")] [initial(name)]", /obj/item/tool/screwdriver/sdriver = "[initial(name)] for Proffesor Who", /obj/item/storage/briefcase/target_toy = "[initial(name)] for SIMPATHY, SUCCESS, MANHATTAN, BELIEFS" ) diff --git a/modular_chomp/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm similarity index 86% rename from modular_chomp/code/game/objects/structures/holosign.dm rename to code/game/objects/structures/holosign.dm index 0df4e0eb4b..8c006c0c69 100644 --- a/modular_chomp/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -1,6 +1,6 @@ /obj/structure/holosign name = "holo sign" - icon = 'icons/effects/effects_ch.dmi' + icon = 'icons/effects/effects.dmi' anchored = TRUE var/obj/item/holosign_creator/projector var/health = 10 @@ -70,8 +70,8 @@ update_nearby_tiles() /obj/structure/holosign/barrier/medical - name = "\improper PENLITE holobarrier" - desc = "A holobarrier that uses biometrics to detect human viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines." + name = "\improper Vey-Med holobarrier" + desc = "A holobarrier that uses biometrics to detect viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines." icon_state = "holo_medical" alpha = 125 var/buzzed = 0 @@ -95,14 +95,13 @@ buzzed = (world.time + 60) icon_state = "holo_medical-deny" - sleep(10 SECONDS) - icon_state = "holo_medical" + addtimer(VARSET_CALLBACK(src, icon_state, "holo_medical"), 10 SECONDS, TIMER_DELETE_ME) /obj/structure/holosign/barrier/medical/proc/CheckHuman(mob/living/carbon/human/H) - if(istype(H.species, /datum/species/xenochimera)) + if(istype(H.get_species(), SPECIES_XENOCHIMERA)) return FALSE - if(H.viruses) - for(var/datum/disease/D in H.viruses) + if(H.GetViruses()) + for(var/datum/disease/D in H.GetViruses()) if(D.severity == NONTHREAT) continue return FALSE diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm index ca170357f2..5e7f479c5c 100644 --- a/code/modules/admin/admin_verb_lists_vr.dm +++ b/code/modules/admin/admin_verb_lists_vr.dm @@ -187,7 +187,7 @@ var/list/admin_verbs_spawn = list( /datum/admins/proc/check_custom_items, /datum/admins/proc/spawn_plant, /datum/admins/proc/spawn_atom, //allows us to spawn instances, - /datum/admins/proc/spawn_mail, // CHOMPStation Add + /datum/admins/proc/spawn_mail, /client/proc/cmd_admin_droppod_spawn, /client/proc/respawn_character, /client/proc/spawn_character_mob, //VOREStation Add, diff --git a/code/modules/awaymissions/pamphlet.dm b/code/modules/awaymissions/pamphlet.dm index 5f05f3e99d..9059e05a45 100644 --- a/code/modules/awaymissions/pamphlet.dm +++ b/code/modules/awaymissions/pamphlet.dm @@ -1,38 +1,42 @@ -/obj/item/paper/pamphlet - name = "pamphlet" - icon_state = "pamphlet" - info = span_bold("Welcome to the Gateway project...") + "
\ +/obj/item/paper/pamphlet/radstorm + name = "pamphlet - 'Radstorm Safety Measures and How to Not Become Monkey'" + info = "Has your station's preemptive radstorm safety alarm gone off and you don't see a nearby maintenance hatch to escape to? Never fear, for NT truly thinks of everything! \ + Several public-access shelters have been installed around the upper station with express purpose of protecting your fragile meaty bits from becoming the next medical disaster! \ + Please see subsection 4.3 V2-3 in your employee handbook for appropriate procedures to deal with excessive radiation damage if you do not make it to a shelter in time." + +/obj/item/paper/pamphlet/violent_video_games + name = "pamphlet - 'Violent Video Games and You'" + desc = "A pamphlet encouraging the reader to maintain a balanced lifestyle and take care of their mental health, while still enjoying video games in a healthy way. You probably don't need this..." + info = "They don't make you kill people. There, we said it. Now get back to work!" + +/obj/item/paper/pamphlet/gateway + info = span_bold("Welcome to the Nanotrasen Gateway project...") + "
\ Congratulations! If you're reading this, you and your superiors have decided that you're \ ready to commit to a life spent colonising the rolling hills of far away worlds. You \ must be ready for a lifetime of adventure, a little bit of hard work, and an award \ - winning dental plan- but that's not all the Gateway project has to offer.
\ + winning dental plan- but that's not all the Nanotrasen Gateway project has to offer.
\
Because we care about you, we feel it is only fair to make sure you know the risks \ - before you commit to joining the Gateway project. All away destinations have \ - been fully scanned by a expeditionary team, and are certified to be 100% safe. \ + before you commit to joining the Nanotrasen Gateway project. All away destinations have \ + been fully scanned by a Nanotrasen expeditionary team, and are certified to be 100% safe. \ We've even left a case of space beer along with the basic materials you'll need to expand \ - the Project's operational area and start your new life.

\ - Gateway Operation Basics
\ - All approved Gateways operate on the same basic principals. They operate off \ - area equipment power as you would expect, but they also require a backup wire with at least \ - 128, 000 Watts of power running through it. Without this supply, it cannot safely function \ - and will reject all attempts at operation.

\ + Nanotrasen's operational area and start your new life.

\ + " + span_bold("Gateway Operation Basics") + "
\ + All Nanotrasen approved Gateways operate on the same basic principals. They operate off \ + area equipment power as you would expect, and without this supply, it cannot safely function, \ + causinng it to reject all attempts at operation.

\ Once it is correctly setup, and once it has enough power to operate, the Gateway will begin \ searching for an output location. The amount of time this takes is variable, but the Gateway \ interface will give you an estimate accurate to the minute. Power loss will not interrupt the \ searching process. Influenza will not interrupt the searching process. Temporal anomalies \ may cause the estimate to be inaccurate, but will not interrupt the searching process.

\ - Life On The Other Side
\ + " + span_bold("Life On The Other Side") + "
\ Once you have traversed the Gateway, you may experience some disorientation. Do not panic. \ This is a normal side effect of travelling vast distances in a short period of time. You should \ survey the immediate area, and attempt to locate your complimentary case of space beer. Our \ expeditionary teams have ensured the complete safety of all away locations, but in a small \ number of cases, the Gateway they have established may not be immediately obvious. \ Do not panic if you cannot locate the return Gateway. Begin colonisation of the destination. \ -

A New World
\ - As a participant in the Gateway Project, you will be on the frontiers of space. \ +

" + span_bold("A New World") + "
\ + As a participant in the Nanotrasen Gateway Project, you will be on the frontiers of space. \ Though complete safety is assured, participants are advised to prepare for inhospitable \ environs." - -//we don't want the silly text overlay! -/obj/item/paper/pamphlet/update_icon() - return diff --git a/code/modules/awaymissions/pamphlet_ch.dm b/code/modules/awaymissions/pamphlet_ch.dm deleted file mode 100644 index 9059e05a45..0000000000 --- a/code/modules/awaymissions/pamphlet_ch.dm +++ /dev/null @@ -1,42 +0,0 @@ -/obj/item/paper/pamphlet/radstorm - name = "pamphlet - 'Radstorm Safety Measures and How to Not Become Monkey'" - info = "Has your station's preemptive radstorm safety alarm gone off and you don't see a nearby maintenance hatch to escape to? Never fear, for NT truly thinks of everything! \ - Several public-access shelters have been installed around the upper station with express purpose of protecting your fragile meaty bits from becoming the next medical disaster! \ - Please see subsection 4.3 V2-3 in your employee handbook for appropriate procedures to deal with excessive radiation damage if you do not make it to a shelter in time." - -/obj/item/paper/pamphlet/violent_video_games - name = "pamphlet - 'Violent Video Games and You'" - desc = "A pamphlet encouraging the reader to maintain a balanced lifestyle and take care of their mental health, while still enjoying video games in a healthy way. You probably don't need this..." - info = "They don't make you kill people. There, we said it. Now get back to work!" - -/obj/item/paper/pamphlet/gateway - info = span_bold("Welcome to the Nanotrasen Gateway project...") + "
\ - Congratulations! If you're reading this, you and your superiors have decided that you're \ - ready to commit to a life spent colonising the rolling hills of far away worlds. You \ - must be ready for a lifetime of adventure, a little bit of hard work, and an award \ - winning dental plan- but that's not all the Nanotrasen Gateway project has to offer.
\ -
Because we care about you, we feel it is only fair to make sure you know the risks \ - before you commit to joining the Nanotrasen Gateway project. All away destinations have \ - been fully scanned by a Nanotrasen expeditionary team, and are certified to be 100% safe. \ - We've even left a case of space beer along with the basic materials you'll need to expand \ - Nanotrasen's operational area and start your new life.

\ - " + span_bold("Gateway Operation Basics") + "
\ - All Nanotrasen approved Gateways operate on the same basic principals. They operate off \ - area equipment power as you would expect, and without this supply, it cannot safely function, \ - causinng it to reject all attempts at operation.

\ - Once it is correctly setup, and once it has enough power to operate, the Gateway will begin \ - searching for an output location. The amount of time this takes is variable, but the Gateway \ - interface will give you an estimate accurate to the minute. Power loss will not interrupt the \ - searching process. Influenza will not interrupt the searching process. Temporal anomalies \ - may cause the estimate to be inaccurate, but will not interrupt the searching process.

\ - " + span_bold("Life On The Other Side") + "
\ - Once you have traversed the Gateway, you may experience some disorientation. Do not panic. \ - This is a normal side effect of travelling vast distances in a short period of time. You should \ - survey the immediate area, and attempt to locate your complimentary case of space beer. Our \ - expeditionary teams have ensured the complete safety of all away locations, but in a small \ - number of cases, the Gateway they have established may not be immediately obvious. \ - Do not panic if you cannot locate the return Gateway. Begin colonisation of the destination. \ -

" + span_bold("A New World") + "
\ - As a participant in the Nanotrasen Gateway Project, you will be on the frontiers of space. \ - Though complete safety is assured, participants are advised to prepare for inhospitable \ - environs." diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 7e53863025..e80186a767 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -289,3 +289,8 @@ name = "quartermaster's beret" desc = "This headwear shows off your Cargonian leadership." icon_state = "beretqm" + +/obj/item/clothing/head/mailman2 + name = "mailman hat" + desc = "A hat used by the mailman to show who's the delivery person here." + icon_state = "mailman2" diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 18d1964235..856018fcb6 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -212,3 +212,10 @@ name = "shaft miner's jumpsuit" icon_state = "miner" rolled_sleeves = 0 + +/obj/item/clothing/under/rank/mailman2 + name = "mailman's suit" + desc = "A good looking suit for the delivery person!" + icon_state = "mailman2" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + rolled_sleeves = 0 diff --git a/code/modules/food/glass/bottle.dm b/code/modules/food/glass/bottle.dm index 341a79c09b..fe3b6d90ea 100644 --- a/code/modules/food/glass/bottle.dm +++ b/code/modules/food/glass/bottle.dm @@ -176,3 +176,33 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bottle-3" prefill = list(REAGENT_ID_BIOMASS = 60) + +/obj/item/reagent_containers/glass/bottle/cakebatter + name = "cake batter bottle" + desc = "A bottle of pre-made cake batter." + icon_state = "bottle-1" + prefill = list(REAGENT_ID_CAKEBATTER = 60) + +/obj/item/reagent_containers/glass/bottle/cinnamonpowder + name = "cinnamon powder bottle" + desc = "A bottle with expensive cinnamon powder." + icon_state = "bottle-1" + prefill = list(REAGENT_ID_CINNAMONPOWDER = 30) // Expensive! + +/obj/item/reagent_containers/glass/bottle/nothing + name = "empty bottle?" + desc = "An apparently empty bottle." + icon_state = "bottle-1" + prefill = list(REAGENT_ID_NOTHING = 60) + +/obj/item/reagent_containers/glass/bottle/gelatin + name = "gelatin bottle" + desc = "A bottle full of gelatin." + icon_state = "bottle-1" + prefill = list(REAGENT_ID_GELATIN = 60) + +/obj/item/reagent_containers/glass/bottle/lube + name = "lube bottle" + desc = "A bottle full of lube." + icon_state = "bottle-1" + prefill = list(REAGENT_ID_LUBE = 60) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index ba4e7ccd69..f85a54f455 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -360,7 +360,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/surgical/bioregen/cyborg(src) //Surgeon Modules End src.modules += new /obj/item/inflatable_dispenser/robot(src) - src.modules += new /obj/item/holosign_creator/medical(src) //Re-enable after Guti's PR. + src.modules += new /obj/item/holosign_creator/medical(src) var/obj/item/reagent_containers/spray/PS = new /obj/item/reagent_containers/spray(src) src.emag += PS PS.reagents.add_reagent(REAGENT_ID_PACID, 250) diff --git a/code/modules/reagents/machinery/dispenser/cartridge_presets.dm b/code/modules/reagents/machinery/dispenser/cartridge_presets.dm index 2668f93278..98fd2f9677 100644 --- a/code/modules/reagents/machinery/dispenser/cartridge_presets.dm +++ b/code/modules/reagents/machinery/dispenser/cartridge_presets.dm @@ -251,3 +251,7 @@ spawn_reagent = REAGENT_ID_CRYOXADONE /obj/item/reagent_containers/chem_disp_cartridge/clonexadone spawn_reagent = REAGENT_ID_CLONEXADONE +/obj/item/reagent_containers/chem_disp_cartridge/gelatin + spawn_reagent = REAGENT_ID_GELATIN +/obj/item/reagent_containers/chem_disp_cartridge/nothing + spawn_reagent = REAGENT_ID_NOTHING diff --git a/code/modules/reagents/machinery/dispenser/cartridge_presets_ch.dm b/code/modules/reagents/machinery/dispenser/cartridge_presets_ch.dm index 8f132482c5..49ca14ccc2 100644 --- a/code/modules/reagents/machinery/dispenser/cartridge_presets_ch.dm +++ b/code/modules/reagents/machinery/dispenser/cartridge_presets_ch.dm @@ -9,9 +9,6 @@ /obj/item/reagent_containers/chem_disp_cartridge/doctorsdelight spawn_reagent = REAGENT_ID_DOCTORSDELIGHT -/obj/item/reagent_containers/chem_disp_cartridge/nothing - spawn_reagent = REAGENT_ID_NOTHING - /obj/item/reagent_containers/chem_disp_cartridge/banana spawn_reagent = REAGENT_ID_BANANA @@ -57,9 +54,6 @@ /obj/item/reagent_containers/chem_disp_cartridge/goldschlager spawn_reagent = REAGENT_ID_GOLDSCHLAGER -/obj/item/reagent_containers/chem_disp_cartridge/gelatin - spawn_reagent = REAGENT_GELATIN - /obj/item/reagent_containers/chem_disp_cartridge/melonliquor spawn_reagent = REAGENT_ID_MELONLIQUOR diff --git a/code/modules/reagents/reagent_containers/food/drinks/bluespacecoffee.dm b/code/modules/reagents/reagent_containers/bluespacecoffee.dm similarity index 91% rename from code/modules/reagents/reagent_containers/food/drinks/bluespacecoffee.dm rename to code/modules/reagents/reagent_containers/bluespacecoffee.dm index 38ce5fe0d3..9a7202dd7e 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bluespacecoffee.dm +++ b/code/modules/reagents/reagent_containers/bluespacecoffee.dm @@ -3,8 +3,8 @@ desc = "Dreamt up in a strange feverish dream, this coffee cup seems to have been heavily modified with a variety of unlikely parts and wires, and never seems to run out of coffee. Truly the differance between madmen and genius is success." icon = 'icons/obj/coffee.dmi' icon_state = "bluespace_coffee" - center_of_mass_x = 15 //CHOMPEdit - center_of_mass_y= 10 //CHOMPEdit + center_of_mass_x = 15 + center_of_mass_y = 10 volume = 50 /obj/item/reagent_containers/food/drinks/bluespace_coffee/Initialize() diff --git a/code/modules/reagents/reagents/food_drinks.dm b/code/modules/reagents/reagents/food_drinks.dm index 336aeb0a5e..fa6300ed1e 100644 --- a/code/modules/reagents/reagents/food_drinks.dm +++ b/code/modules/reagents/reagents/food_drinks.dm @@ -5029,3 +5029,23 @@ nutriment_factor = 2 glass_name = REAGENT_ID_KVASS glass_desc = "A hearty glass of Slavic brew." + +/datum/reagent/cinnamonpowder + name = REAGENT_CINNAMONPOWDER + id = REAGENT_ID_CINNAMONPOWDER + description = "Cinnamon, a spice made from tree bark, ground into a fine powder. Probably not a good idea to eat on its own!" + taste_description= "sweet spice with a hint of wood" + color = "#a96622" + + glass_name = REAGENT_ID_CINNAMONPOWDER + glass_desc = "A glass of ground cinnamon. Dare you take the challenge?" + +/datum/reagent/gelatin + name = REAGENT_GELATIN + id = REAGENT_ID_GELATIN + description = "It doesnt taste like anything." + taste_description = REAGENT_ID_NOTHING + color = "#aaabcf" + + glass_name = REAGENT_GELATIN + glass_desc = "It's like flavourless slime." diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 36f1320c43..f57f45e9ba 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -658,11 +658,11 @@ if(istype(AM, /mob/living/silicon/robot/drone)) var/mob/living/silicon/robot/drone/drone = AM src.destinationTag = drone.mail_destination - // CHOMPEdit Start -- Envelopes can be sent through as well! + if(istype(AM, /obj/item/mail) && !hasmob) var/obj/item/mail/T = AM src.destinationTag = T.sortTag - // CHOMPEdit End + // start the movement process // argument is the disposal unit the holder started in diff --git a/code/modules/shuttles/shuttle_supply.dm b/code/modules/shuttles/shuttle_supply.dm index e5ff508a2a..46398bc01f 100644 --- a/code/modules/shuttles/shuttle_supply.dm +++ b/code/modules/shuttles/shuttle_supply.dm @@ -38,7 +38,7 @@ return if (!at_station()) //at centcom - SSmail.create_mail() // CHOMPAdd -- Adds mail to the shuttle + SSmail.create_mail() SSsupply.buy() //We pretend it's a long_jump by making the shuttle stay at centcom for the "in-transit" period. diff --git a/icons/inventory/head/item.dmi b/icons/inventory/head/item.dmi index b56402e145..80c522418a 100644 Binary files a/icons/inventory/head/item.dmi and b/icons/inventory/head/item.dmi differ diff --git a/icons/inventory/head/mob.dmi b/icons/inventory/head/mob.dmi index af3083f5f7..9e986603aa 100644 Binary files a/icons/inventory/head/mob.dmi and b/icons/inventory/head/mob.dmi differ diff --git a/icons/inventory/uniform/item.dmi b/icons/inventory/uniform/item.dmi index 6fe8d7345b..044c91078c 100644 Binary files a/icons/inventory/uniform/item.dmi and b/icons/inventory/uniform/item.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 61365297d2..0bae43c395 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 2a817ae4e0..423bfd14b8 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/lighters.dmi b/icons/obj/lighters.dmi index 8356af7b48..23d0e2b9c5 100644 Binary files a/icons/obj/lighters.dmi and b/icons/obj/lighters.dmi differ diff --git a/modular_chomp/code/datums/outfits/jobs/cargo.dm b/modular_chomp/code/datums/outfits/jobs/cargo.dm deleted file mode 100644 index 2c7241509e..0000000000 --- a/modular_chomp/code/datums/outfits/jobs/cargo.dm +++ /dev/null @@ -1,6 +0,0 @@ -/decl/hierarchy/outfit/job/cargo/cargo_tech/mailman - name = OUTFIT_JOB_NAME(JOB_ALT_MAILMAN) - uniform = /obj/item/clothing/under/rank/mailman2 - head = /obj/item/clothing/head/mailman2 - pda_slot = slot_l_store - backpack_contents = list(/obj/item/storage/bag/mail = 1, /obj/item/mail_scanner = 1) diff --git a/modular_chomp/code/datums/supplypacks/supply.dm b/modular_chomp/code/datums/supplypacks/supply.dm index ff93d1a2ab..93e7a63ba8 100644 --- a/modular_chomp/code/datums/supplypacks/supply.dm +++ b/modular_chomp/code/datums/supplypacks/supply.dm @@ -1,16 +1,3 @@ -/datum/supply_pack/supply/postal_service - name = "Postal Service Supplies" - contains = list( - /obj/item/mail/blank = 10, - /obj/item/pen/fountain, - /obj/item/pen/multi, - /obj/item/destTagger, - /obj/item/storage/bag/mail - ) - cost = 15 - containertype = /obj/structure/closet/crate/nanotrasen - containername = "Postal Service crate" - /datum/supply_pack/supply/freezer name = "Freezer crate" desc = "An empty freezer for storing perishable items." diff --git a/modular_chomp/code/game/objects/items/weapons/cigs_lighters.dm b/modular_chomp/code/game/objects/items/weapons/cigs_lighters.dm deleted file mode 100644 index 91a61f5806..0000000000 --- a/modular_chomp/code/game/objects/items/weapons/cigs_lighters.dm +++ /dev/null @@ -1,337 +0,0 @@ -/obj/item/flame/lighter/supermatter - name = "Hardlight Supermatter Zippo" // Base SM Lighter - desc = "State of the Art Supermatter Lighter." - description_fluff = "A zippo style lighter with a tiny supermatter sliver held by a hardlight shield. When lighting a cigar, make sure to hover the tip near the sliver, not against it!" - icon = 'icons/obj/zippo_ch.dmi' - icon_state = "SMzippo" - item_state = "SMzippo" - activation_sound = 'modular_chomp/sound/items/open.ogg' - deactivation_sound = 'sound/items/zippo_off.ogg' - -/obj/item/flame/lighter/supermatter/syndismzippo - name = "Phoron Supermatter Zippo" // Syndicate SM Lighter - desc = "State of the Art Supermatter Lighter." - description_fluff = "A red zippo style lighter with a tiny supermatter sliver held by a phoron field." - icon = 'icons/obj/zippo_ch.dmi' - icon_state = "SyndiSMzippo" - item_state = "SyndiSMzippo" - activation_sound = 'modular_chomp/sound/items/open.ogg' - deactivation_sound = 'sound/items/zippo_off.ogg' - -/obj/item/flame/lighter/supermatter/expsmzippo - name = "Experimental SM Lighter" // Dangerous WIP (admin/event only ATM) - desc = "State of the Art Supermatter Lighter" - description_fluff = "A unique take originating from the zippo design, a shard of supermatter placed within lead-lined walls. Cautious, VERY DANGEROUS do NOT touch!" - icon = 'icons/obj/zippo_ch.dmi' - icon_state = "ExpSMzippo" - item_state = "ExpSMzippo" - activation_sound = 'modular_chomp/sound/items/button-open.ogg' - deactivation_sound = 'modular_chomp/sound/items/button-close.ogg' - -// safe smzippo -/obj/item/flame/lighter/supermatter/attack_self(mob/living/user) - if(!base_state) - base_state = icon_state - if(!lit) - lit = 1 - icon_state = "[base_state]on" - item_state = "[base_state]on" - playsound(src, activation_sound, 75, 1) - if(prob(50)) - user.visible_message(span_rose("[user] safely activates the [src] with a push of a button!")) - else - if(prob(95)) - user.visible_message(span_notice("After a few attempts, [user] manages to excite the supermatter within the [src].")) - else // Just like the cheap lighter, this time you can shock/burn yourself a little on the hardlight shield - to_chat(user, span_warning("You hurt yourself on the shielding!")) - if (user.get_left_hand() == src) - user.apply_damage(1,SEARING,"l_hand") - user.apply_damage(2,ELECTROCUTE,"l_hand") - user.apply_damage(3,CLONE,"l_hand") - user.apply_damage(4,ELECTROMAG,"l_hand") - else - user.apply_damage(1,SEARING,"r_hand") - user.apply_damage(2,ELECTROCUTE,"r_hand") - user.apply_damage(3,CLONE,"r_hand") - user.apply_damage(4,ELECTROMAG,"r_hand") - user.visible_message(span_notice("After a few attempts, [user] manages to activate the [src], they however sting themselves on the shielding!")) - - set_light(2) - START_PROCESSING(SSobj, src) - else - lit = 0 - icon_state = "[base_state]" - item_state = "[base_state]" - playsound(src, deactivation_sound, 75, 1) - if(istype(src, /obj/item/flame/lighter/supermatter) ) - user.visible_message(span_rose("You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing.")) - else - user.visible_message(span_notice("[user] quietly shuts the [src].")) - - set_light(0) - STOP_PROCESSING(SSobj, src) - return - - -/obj/item/flame/lighter/supermatter/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - if(!istype(M, /mob)) - return - - if(lit == 1) - M.IgniteMob() - add_attack_logs(user,M,"Lit on fire with [src]") - - if(istype(M.wear_mask, /obj/item/clothing/mask/smokable/cigarette) && user.zone_sel.selecting == O_MOUTH && lit) - var/obj/item/clothing/mask/smokable/cigarette/cig = M.wear_mask - if(M == user) - cig.attackby(src, user) - else - if(istype(src, /obj/item/flame/lighter/supermatter)) - cig.light(span_rose("[user] whips the [name] out and holds it for [M].")) - else - cig.light(span_notice("[user] holds the [name] out for [M], and lights the [cig.name].")) - else - ..() - -/obj/item/flame/lighter/supermatter/process() - var/turf/location = get_turf(src) - if(location) - location.hotspot_expose(700, 5) - return - -// syndicate smzippo -/obj/item/flame/lighter/supermatter/syndismzippo/attack_self(mob/living/user) - if(!base_state) - base_state = icon_state - if(!lit) - lit = 1 - icon_state = "[base_state]on" - item_state = "[base_state]on" - playsound(src, activation_sound, 75, 1) - if(prob(50)) - user.visible_message(span_rose("[user] safely activates the [src] with a push of a button!")) - else - if(prob(95)) - user.visible_message(span_notice("After a few attempts, [user] manages to excite the supermatter within the [src].")) - else // Just like with the cheap lighter, but this time you can hurt yourself on the heated phoron field - to_chat(user, span_warning("You singe yourself on the phoron shielding the excited supermatter!")) - if (user.get_left_hand() == src) - user.apply_damage(30,HALLOSS,"l_hand") - user.apply_effect(20,IRRADIATE) - user.apply_damage(5,BURN,"l_hand") - user.apply_damage(5,ELECTROCUTE,"l_hand") - else - user.apply_damage(30,HALLOSS,"r_hand") - user.apply_effect(20,IRRADIATE) - user.apply_damage(5,BURN,"r_hand") - user.apply_damage(5,ELECTROCUTE,"r_hand") - user.visible_message(span_notice("After a few attempts, [user] manages to activate the [src], they however burn themselves with the heated phoron field!")) - - set_light(2) - START_PROCESSING(SSobj, src) - else - lit = 0 - icon_state = "[base_state]" - item_state = "[base_state]" - playsound(src, deactivation_sound, 75, 1) - if(istype(src, /obj/item/flame/lighter/supermatter/syndismzippo) ) - user.visible_message(span_rose("You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing.")) - else - user.visible_message(span_notice("[user] quietly shuts the [src].")) - - set_light(0) - STOP_PROCESSING(SSobj, src) - return - - -/obj/item/flame/lighter/supermatter/syndismzippo/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - if(!istype(M, /mob)) - return - - if(lit == 1) - M.IgniteMob() - add_attack_logs(user,M,"Lit on fire with [src]") - - if(istype(M.wear_mask, /obj/item/clothing/mask/smokable/cigarette) && user.zone_sel.selecting == O_MOUTH && lit) - var/obj/item/clothing/mask/smokable/cigarette/cig = M.wear_mask - if(M == user) - cig.attackby(src, user) - else - if(istype(src, /obj/item/flame/lighter/supermatter/syndismzippo)) - cig.light(span_rose("[user] whips the [name] out and holds it for [M].")) - else - cig.light(span_notice("[user] holds the [name] out for [M], and lights the [cig.name].")) - else - ..() - -/obj/item/flame/lighter/process() - var/turf/location = get_turf(src) - if(location) - location.hotspot_expose(700, 5) - return - -// Experimental smzippo -/obj/item/flame/lighter/supermatter/expsmzippo/attack_self(mob/living/user) - if (!base_state) - base_state = icon_state - if (!lit) - lit = 1 - icon_state = "[base_state]on" - item_state = "[base_state]on" - playsound(src, activation_sound, 75, 1) - var/i = rand(1, 100) - switch(i) - if(1 to 22) - to_chat(user, span_rose("[user] safely reveals the supermatter shard within the [src]!")) - user.visible_message(span_rose("You safely revealed the supermatter shard within the [src]!")) - if (user.get_left_hand() == src) - user.apply_damage(1, IRRADIATE, "l_hand") - else // Even using this safely will irradiate you a tiny tiny bit. - user.apply_damage(1, IRRADIATE, "r_hand") - if(23 to 33) - to_chat(user, span_warning("[user]'s hand slipped and they brush against the supermatter within [src]!")) - user.visible_message(span_notice("You accidentally grazed your hand across the supermatter!")) - if (user.get_left_hand() == src) - user.apply_damage(10, IRRADIATE, "l_hand") - user.apply_damage(20, BURN, "l_hand") - user.apply_damage(20, ELECTROCUTE, "l_hand") - user.apply_damage(50, AGONY, "l_hand") - else // One of the outcomes will burn and shock you, the pain is the worst part of this one though. - user.apply_damage(10, IRRADIATE, "r_hand") - user.apply_damage(20, BURN, "r_hand") - user.apply_damage(20, ELECTROCUTE, "r_hand") - user.apply_damage(50, AGONY, "r_hand") - if(34 to 44) - to_chat(user, span_warning("[user] burned themselves on the [src]!")) - user.visible_message(span_notice("You accidentally burn yourself on the [src]!")) - if (user.get_left_hand() == src) - user.apply_damage(30, IRRADIATE, "l_hand") - user.apply_damage(20, SEARING, "l_hand") - user.apply_damage(15, BURN, "l_hand") - else // One of the outcomes is pure burn and radiation. - user.apply_damage(30, IRRADIATE, "r_hand") - user.apply_damage(20, SEARING, "r_hand") - user.apply_damage(15, BURN, "r_hand") - if(45 to 55) - to_chat(user, span_warning("[user] fumbled the [src] and the supermatter let out sparks!")) - user.visible_message(span_notice("You fumble the [src], letting the supermatter spark as the case opens!")) - if (user.get_left_hand() == src) - user.apply_damage(1, ELECTROCUTE, "l_hand") - user.apply_damage(100, ELECTROMAG, "l_hand") - else // This one is mostly dangerous to synthetics and it will EMP you. But otherwise it's safe. - user.apply_damage(1, ELECTROCUTE, "r_hand") - user.apply_damage(100, ELECTROMAG, "r_hand") - if(56 to 66) - to_chat(user, span_warning("[user] struggles to open their [src], but when they do they get burned by the extreme heat within!")) - user.visible_message(span_notice("You struggle to get the case to open, and when it does the heat that pours out of the [src] burns!")) - if (user.get_left_hand() == src) - user.apply_damage(1, IRRADIATE, "l_hand") - user.apply_damage(1, BRUISE, "l_hand") - user.apply_damage(200, BURN, "l_hand") - user.drop_l_hand() - else // This will INSTA-DUST your hand that you're holding the item in, and then make you drop the lighter. - user.apply_damage(1, IRRADIATE, "r_hand") - user.apply_damage(1, BRUISE, "r_hand") - user.apply_damage(200, BURN, "r_hand") - user.drop_r_hand() - if(67 to 77) - to_chat(user, span_warning("Ouch! While pushing on the release to open the [src], [user]'s finger slipped right as the case opened, pressing their finger firm against the supermatter!")) - user.visible_message(span_notice("You accidentally pushed your finger against the supermatter!")) - if (user.get_left_hand() == src) - user.apply_damage(50, HALLOSS, "l_hand") - user.apply_damage(40, IRRADIATE, "l_hand") - user.apply_damage(30, BURN, "l_hand") - user.apply_damage(20, TOX, "l_hand") - user.apply_damage(10, ELECTROCUTE, "l_hand") - user.apply_effect(25, STUTTER) - user.apply_effect(15, SLUR) - user.apply_effect(5, STUN) - else // This one is VERY punishing, you get a ton of damage, a lot of pain, and a minor stun. Once the stun goes away you'll be stuttering for awhile as if in crit. - user.apply_damage(50, HALLOSS, "r_hand") - user.apply_damage(40, IRRADIATE, "r_hand") - user.apply_damage(30, BURN, "r_hand") - user.apply_damage(20, TOX, "r_hand") - user.apply_damage(10, ELECTROCUTE, "r_hand") - user.apply_effect(25, STUTTER) - user.apply_effect(15, SLUR) - user.apply_effect(5, STUN) - if(78 to 88) - to_chat(user, span_notice("[user] managed to pinch themselves on the case of their [src]... it could have been worse.")) - user.visible_message(span_notice("You manage to pinch yourself on the case!")) - if (user.get_left_hand() == src) - user.apply_damage(1, CLONE, "l_hand") - user.apply_damage(1, HALLOSS, "l_hand") - else // Aside from the base, this one isn't punishing outside of giving you genetic damage. - user.apply_damage(1, CLONE, "r_hand") - user.apply_damage(1, HALLOSS, "r_hand") - if(89 to 99) - to_chat(user, span_notice("[user] opened the [src] but forgot that you aren't supposed to look at supermatter!")) - user.visible_message(span_notice("You find yourself looking at the supermatter for longer than you should...")) - if (user.get_left_hand() == src) - user.apply_damage(15, HALLOSS, "l_hand") - user.apply_effect(5, WEAKEN) - user.apply_damage(15, IRRADIATE, "l_hand") - user.apply_effect(100, EYE_BLUR) - user.apply_effect(50, AGONY) - user.apply_damage(5, OXY) - user.eye_blurry = 10 - else // This one just blinds and blurs your screen, but otherwise doesn't actually risk harming you. Even the oxy damage heals on its own. - user.apply_damage(15, HALLOSS, "r_hand") - user.apply_effect(5, WEAKEN) - user.apply_damage(15, IRRADIATE, "l_hand") - user.apply_effect(100, EYE_BLUR) - user.apply_effect(50, AGONY) - user.apply_damage(15, OXY) - user.eye_blurry = 10 - if(100) // This is the part that makes it admin only for the moment, it spawns 500 rads from the carbon's position, and dusts the carbon instantly. It does also drop everything unlike the supermatter crystal though, so hopefully you won't lose any items if you fumble this badly! - to_chat(user, span_warning("OH NO! [user] almost dropped their live [src]! Thank goodness they caught it... by the glowing yellow crystal... oh.")) - user.visible_message(span_danger("You almost dropped your [src], thank goodness you caught it! By the glowing crystal within. You find your ears filled with unearthly ringing and your last thought is \"Oh, fuck.\"")) - user.drop_r_hand() // To ensure the lighter is dropped <3 - user.drop_l_hand() // To ensure the lighter is dropped <3 - for(var/obj/item/e in user) - user.drop_from_inventory(e) - log_and_message_admins("[user] dusted themselves and caused massive radiation with [src]!",user) - user.dust() - var/rads = 500 - SSradiation.radiate(src, rads) - - set_light(5) - START_PROCESSING(SSobj, src) - else - lit = 0 - icon_state = "[base_state]" - item_state = "[base_state]" - playsound(src, deactivation_sound, 75, 1) - if (istype(src, /obj/item/flame/lighter/supermatter/expsmzippo)) - user.visible_message(span_rose("You hear a quiet click, as [user] closes the [src].")) - else - user.visible_message(span_notice("[user] quietly shuts the [src].")) - - set_light(0) - STOP_PROCESSING(SSobj, src) - -/obj/item/flame/lighter/supermatter/expsmzippo/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - if (!istype(M, /mob)) - return - - if (lit == 1) - M.IgniteMob() - add_attack_logs(user, M, "Lit on fire with [src]") - - if (istype(M.wear_mask, /obj/item/clothing/mask/smokable/cigarette) && user.zone_sel.selecting == O_MOUTH && lit) - var/obj/item/clothing/mask/smokable/cigarette/cig = M.wear_mask - if (M == user) - cig.attackby(src, user) - else - if (istype(src, /obj/item/flame/lighter/supermatter/expsmzippo)) - cig.light(span_rose("[user] whips the [name] out and holds it for [M].")) - else - cig.light(span_notice("[user] holds the [name] out for [M], and lights the [cig.name].")) - else - ..() - -/obj/item/flame/lighter/supermatter/expsmzippo/process() - var/turf/location = get_turf(src) - if (location) - location.hotspot_expose(700, 5) - return diff --git a/modular_chomp/code/modules/clothing/head/jobs.dm b/modular_chomp/code/modules/clothing/head/jobs.dm deleted file mode 100644 index e1489d800b..0000000000 --- a/modular_chomp/code/modules/clothing/head/jobs.dm +++ /dev/null @@ -1,6 +0,0 @@ -/obj/item/clothing/head/mailman2 - name = "mailman hat" - desc = "A hat used by the mailman to show who's the delivery person here." - icon_state = "mailman2" - icon = 'icons/obj/clothing/hats_ch.dmi' - icon_override = 'icons/mob/head.dmi' diff --git a/modular_chomp/code/modules/clothing/under/jobs/civilian.dm b/modular_chomp/code/modules/clothing/under/jobs/civilian.dm deleted file mode 100644 index 31b353d621..0000000000 --- a/modular_chomp/code/modules/clothing/under/jobs/civilian.dm +++ /dev/null @@ -1,8 +0,0 @@ -/obj/item/clothing/under/rank/mailman2 - name = "mailman's suit" - desc = "A good looking suit for the delivery person!" - icon_state = "mailman2" - icon = 'icons/inventory/uniform/mob_ch.dmi' - body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS - rolled_sleeves = 0 - icon_override = 'icons/inventory/uniform/mob_ch.dmi' //rollsleeves mechanics set by upstream overrides and breaks all clothing in \under\ otherwise. \ No newline at end of file diff --git a/modular_chomp/code/modules/food/glass/bottle.dm b/modular_chomp/code/modules/food/glass/bottle.dm deleted file mode 100644 index 8128e1a185..0000000000 --- a/modular_chomp/code/modules/food/glass/bottle.dm +++ /dev/null @@ -1,29 +0,0 @@ -/obj/item/reagent_containers/glass/bottle/cakebatter - name = "cake batter bottle" - desc = "A bottle of pre-made cake batter." - icon_state = "bottle-1" - prefill = list(REAGENT_ID_CAKEBATTER = 60) - -/obj/item/reagent_containers/glass/bottle/cinnamonpowder - name = "cinnamon powder bottle" - desc = "A bottle with expensive cinnamon powder." - icon_state = "bottle-1" - prefill = list(REAGENT_ID_CINNAMONPOWDER = 30) // Expensive! - -/obj/item/reagent_containers/glass/bottle/nothing - name = "empty bottle?" - desc = "An apparently empty bottle." - icon_state = "bottle-1" - prefill = list(REAGENT_ID_NOTHING = 60) - -/obj/item/reagent_containers/glass/bottle/gelatin - name = "gelatin bottle" - desc = "A bottle full of gelatin." - icon_state = "bottle-1" - prefill = list(REAGENT_GELATIN = 60) - -/obj/item/reagent_containers/glass/bottle/lube - name = "lube bottle" - desc = "A bottle full of lube." - icon_state = "bottle-1" - prefill = list(REAGENT_ID_LUBE = 60) diff --git a/modular_chomp/code/modules/reagents/reagents/food_drinks.dm b/modular_chomp/code/modules/reagents/reagents/food_drinks.dm index 8a81a7c503..0c06d74c4a 100644 --- a/modular_chomp/code/modules/reagents/reagents/food_drinks.dm +++ b/modular_chomp/code/modules/reagents/reagents/food_drinks.dm @@ -681,16 +681,6 @@ /////////FOODSTUFF///////////////////////////// ////////////////////////////////////////////// -/datum/reagent/cinnamonpowder - name = REAGENT_CINNAMONPOWDER - id = REAGENT_ID_CINNAMONPOWDER - description = "Cinnamon, a spice made from tree bark, ground into a fine powder. Probably not a good idea to eat on its own!" - taste_description= "sweet spice with a hint of wood" - color = "#a96622" - - glass_name = REAGENT_CINNAMONPOWDER - glass_desc = "A glass of ground cinnamon. Dare you take the challenge?" - //YW drinks /datum/reagent/drink/lovepotion_yw name = REAGENT_STRAWBERRYLOVEPOTION diff --git a/modular_chomp/icons/obj/bureaucracy.dmi b/modular_chomp/icons/obj/bureaucracy.dmi deleted file mode 100644 index 14d9020c57..0000000000 Binary files a/modular_chomp/icons/obj/bureaucracy.dmi and /dev/null differ diff --git a/modular_chomp/sound/items/button-close.ogg b/sound/items/button-close.ogg similarity index 100% rename from modular_chomp/sound/items/button-close.ogg rename to sound/items/button-close.ogg diff --git a/modular_chomp/sound/items/button-open.ogg b/sound/items/button-open.ogg similarity index 100% rename from modular_chomp/sound/items/button-open.ogg rename to sound/items/button-open.ogg diff --git a/modular_chomp/sound/items/mail/mailapproved.ogg b/sound/items/mail/mailapproved.ogg similarity index 100% rename from modular_chomp/sound/items/mail/mailapproved.ogg rename to sound/items/mail/mailapproved.ogg diff --git a/modular_chomp/sound/items/mail/maildenied.ogg b/sound/items/mail/maildenied.ogg similarity index 100% rename from modular_chomp/sound/items/mail/maildenied.ogg rename to sound/items/mail/maildenied.ogg diff --git a/modular_chomp/sound/items/mail/mailscanned.ogg b/sound/items/mail/mailscanned.ogg similarity index 100% rename from modular_chomp/sound/items/mail/mailscanned.ogg rename to sound/items/mail/mailscanned.ogg diff --git a/sound/items/zippo_on_alt.ogg b/sound/items/zippo_on_alt.ogg new file mode 100644 index 0000000000..cad742f1bf Binary files /dev/null and b/sound/items/zippo_on_alt.ogg differ diff --git a/vorestation.dme b/vorestation.dme index e6c22fc79e..5ca4619971 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -399,7 +399,7 @@ #include "code\controllers\subsystems\job.dm" #include "code\controllers\subsystems\lighting.dm" #include "code\controllers\subsystems\machines.dm" -#include "code\controllers\subsystems\mail_ch.dm" +#include "code\controllers\subsystems\mail.dm" #include "code\controllers\subsystems\mapping.dm" #include "code\controllers\subsystems\media_tracks.dm" #include "code\controllers\subsystems\mobs.dm" @@ -991,13 +991,13 @@ #include "code\game\jobs\job\assistant.dm" #include "code\game\jobs\job\captain.dm" #include "code\game\jobs\job\cargo.dm" -#include "code\game\jobs\job\cargo_ch.dm" #include "code\game\jobs\job\civilian.dm" #include "code\game\jobs\job\civilian_chaplain.dm" #include "code\game\jobs\job\department.dm" #include "code\game\jobs\job\engineering.dm" #include "code\game\jobs\job\exploration.dm" #include "code\game\jobs\job\job.dm" +#include "code\game\jobs\job\job_goodies.dm" #include "code\game\jobs\job\medical.dm" #include "code\game\jobs\job\medical_ch.dm" #include "code\game\jobs\job\offduty.dm" @@ -1306,6 +1306,7 @@ #include "code\game\objects\items.dm" #include "code\game\objects\items_vr.dm" #include "code\game\objects\kasscbuttons_ch.dm" +#include "code\game\objects\mail.dm" #include "code\game\objects\micro_event.dm" #include "code\game\objects\micro_structures.dm" #include "code\game\objects\mob_spawner_vr.dm" @@ -1351,6 +1352,7 @@ #include "code\game\objects\effects\chem\foam_vr.dm" #include "code\game\objects\effects\chem\water.dm" #include "code\game\objects\effects\decals\cleanable.dm" +#include "code\game\objects\effects\decals\contraband.dm" #include "code\game\objects\effects\decals\crayon.dm" #include "code\game\objects\effects\decals\misc.dm" #include "code\game\objects\effects\decals\remains.dm" @@ -1401,11 +1403,11 @@ #include "code\game\objects\items\glassjar.dm" #include "code\game\objects\items\gunbox.dm" #include "code\game\objects\items\gunbox_vr.dm" +#include "code\game\objects\items\holosign_creator.dm" #include "code\game\objects\items\latexballoon.dm" #include "code\game\objects\items\leash.dm" #include "code\game\objects\items\lockpicks.dm" #include "code\game\objects\items\magazine.dm" -#include "code\game\objects\items\mail_ch.dm" #include "code\game\objects\items\paintkit.dm" #include "code\game\objects\items\petrifier.dm" #include "code\game\objects\items\pizza_voucher_vr.dm" @@ -1439,7 +1441,6 @@ #include "code\game\objects\items\devices\hacktool.dm" #include "code\game\objects\items\devices\holowarrant.dm" #include "code\game\objects\items\devices\laserpointer.dm" -#include "code\game\objects\items\devices\lightpainter_ch.dm" #include "code\game\objects\items\devices\lightreplacer.dm" #include "code\game\objects\items\devices\megaphone.dm" #include "code\game\objects\items\devices\modkit.dm" @@ -1514,6 +1515,7 @@ #include "code\game\objects\items\toys\balls_vr.dm" #include "code\game\objects\items\toys\godfigures.dm" #include "code\game\objects\items\toys\mech_toys.dm" +#include "code\game\objects\items\toys\target_toy.dm" #include "code\game\objects\items\toys\toys.dm" #include "code\game\objects\items\toys\toys_ch.dm" #include "code\game\objects\items\toys\toys_vr.dm" @@ -1760,6 +1762,7 @@ #include "code\game\objects\structures\grille.dm" #include "code\game\objects\structures\handrail.dm" #include "code\game\objects\structures\holoplant.dm" +#include "code\game\objects\structures\holosign.dm" #include "code\game\objects\structures\inflatable.dm" #include "code\game\objects\structures\janicart.dm" #include "code\game\objects\structures\kitchen_foodcart_vr.dm" @@ -2150,7 +2153,6 @@ #include "code\modules\awaymissions\loot.dm" #include "code\modules\awaymissions\loot_vr.dm" #include "code\modules\awaymissions\pamphlet.dm" -#include "code\modules\awaymissions\pamphlet_ch.dm" #include "code\modules\awaymissions\redgate.dm" #include "code\modules\awaymissions\trigger.dm" #include "code\modules\awaymissions\zlevel.dm" @@ -4258,6 +4260,7 @@ #include "code\modules\reagents\reagent_containers\_reagent_containers.dm" #include "code\modules\reagents\reagent_containers\blood_pack.dm" #include "code\modules\reagents\reagent_containers\blood_pack_vr.dm" +#include "code\modules\reagents\reagent_containers\bluespacecoffee.dm" #include "code\modules\reagents\reagent_containers\borghypo.dm" #include "code\modules\reagents\reagent_containers\dropper.dm" #include "code\modules\reagents\reagent_containers\glass.dm" @@ -4272,7 +4275,6 @@ #include "code\modules\reagents\reagent_containers\syringes.dm" #include "code\modules\reagents\reagent_containers\unidentified_hypospray.dm" #include "code\modules\reagents\reagent_containers\virology.dm" -#include "code\modules\reagents\reagent_containers\food\drinks\bluespacecoffee.dm" #include "code\modules\reagents\reagents\_helpers.dm" #include "code\modules\reagents\reagents\_reagents.dm" #include "code\modules\reagents\reagents\core.dm" @@ -4791,7 +4793,6 @@ #include "modular_chomp\code\datums\crafting\items.dm" #include "modular_chomp\code\datums\crafting\recipes.dm" #include "modular_chomp\code\datums\crafting\tyr_tribal.dm" -#include "modular_chomp\code\datums\outfits\jobs\cargo.dm" #include "modular_chomp\code\datums\outfits\jobs\command.dm" #include "modular_chomp\code\datums\outfits\jobs\noncrew.dm" #include "modular_chomp\code\datums\outfits\jobs\security.dm" @@ -4807,7 +4808,6 @@ #include "modular_chomp\code\game\jobs\job\captain.dm" #include "modular_chomp\code\game\jobs\job\department.dm" #include "modular_chomp\code\game\jobs\job\engineering.dm" -#include "modular_chomp\code\game\jobs\job\job_goodies.dm" #include "modular_chomp\code\game\jobs\job\medical.dm" #include "modular_chomp\code\game\jobs\job\noncrew.dm" #include "modular_chomp\code\game\jobs\job\security.dm" @@ -4830,7 +4830,6 @@ #include "modular_chomp\code\game\objects\effects\dark_growth.dm" #include "modular_chomp\code\game\objects\effects\explosion.dm" #include "modular_chomp\code\game\objects\items\contraband.dm" -#include "modular_chomp\code\game\objects\items\holosign_creator.dm" #include "modular_chomp\code\game\objects\items\target_toy.dm" #include "modular_chomp\code\game\objects\items\clockwork\ratvarian_spear.dm" #include "modular_chomp\code\game\objects\items\devices\flipper.dm" @@ -4840,7 +4839,6 @@ #include "modular_chomp\code\game\objects\items\devices\radio\headset.dm" #include "modular_chomp\code\game\objects\items\devices\radio\radio.dm" #include "modular_chomp\code\game\objects\items\weapons\capture_crystal.dm" -#include "modular_chomp\code\game\objects\items\weapons\cigs_lighters.dm" #include "modular_chomp\code\game\objects\items\weapons\RCD.dm" #include "modular_chomp\code\game\objects\items\weapons\circutboards\computer\research.dm" #include "modular_chomp\code\game\objects\items\weapons\melee\shock_maul.dm" @@ -4850,7 +4848,6 @@ #include "modular_chomp\code\game\objects\random\misc.dm" #include "modular_chomp\code\game\objects\structures\desert_planet_structures.dm" #include "modular_chomp\code\game\objects\structures\flora.dm" -#include "modular_chomp\code\game\objects\structures\holosign.dm" #include "modular_chomp\code\game\objects\structures\loot_pile.dm" #include "modular_chomp\code\game\objects\structures\tyr_project_props.dm" #include "modular_chomp\code\game\objects\structures\watercloset_ch.dm" @@ -4895,7 +4892,6 @@ #include "modular_chomp\code\modules\clothing\gateway\gateway.dm" #include "modular_chomp\code\modules\clothing\glasses\glasses.dm" #include "modular_chomp\code\modules\clothing\gloves\antagonist.dm" -#include "modular_chomp\code\modules\clothing\head\jobs.dm" #include "modular_chomp\code\modules\clothing\head\misc.dm" #include "modular_chomp\code\modules\clothing\masks\hailer.dm" #include "modular_chomp\code\modules\clothing\masks\miscellaneous.dm" @@ -4911,7 +4907,6 @@ #include "modular_chomp\code\modules\clothing\spacesuits\void\void.dm" #include "modular_chomp\code\modules\clothing\suits\armor.dm" #include "modular_chomp\code\modules\clothing\suits\jobs.dm" -#include "modular_chomp\code\modules\clothing\under\jobs\civilian.dm" #include "modular_chomp\code\modules\clothing\under\jobs\medsec.dm" #include "modular_chomp\code\modules\datums\supplypacks\contraband.dm" #include "modular_chomp\code\modules\datums\supplypacks\engineering.dm" @@ -4940,7 +4935,6 @@ #include "modular_chomp\code\modules\food\drinkgglass\metaglass.dm" #include "modular_chomp\code\modules\food\food\drinks\bottle.dm" #include "modular_chomp\code\modules\food\food\snacks\meat.dm" -#include "modular_chomp\code\modules\food\glass\bottle.dm" #include "modular_chomp\code\modules\halloween\costumeboxes.dm" #include "modular_chomp\code\modules\halloween\items.dm" #include "modular_chomp\code\modules\halloween\snacks.dm"