From b7d64987dab26712106fd6b35f5b2e4121aac2dd Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Sun, 23 Apr 2023 14:17:06 +0200 Subject: [PATCH 01/25] Borger uprising Yeah okay next time I am going to make a commit for every change instead of making one big change this is hard to organize --- code/__DEFINES/exosuit_fab.dm | 2 + .../__DEFINES/research/research_categories.dm | 1 + code/game/objects/items/kitchen.dm | 10 ++ code/game/objects/items/rcd/RSF.dm | 5 + code/game/objects/items/robot/items/hypo.dm | 95 ++++++++++++++-- .../objects/items/robot/robot_upgrades.dm | 105 ++++++++++++++++++ code/game/objects/items/rollertable_dock.dm | 58 ++++++++++ code/modules/mining/money_bag.dm | 1 + .../mob/living/silicon/robot/robot_model.dm | 12 +- .../designs/mechfabricator_designs.dm | 44 ++++++++ code/modules/research/techweb/all_nodes.dm | 13 +++ tgstation.dme | 1 + 12 files changed, 332 insertions(+), 15 deletions(-) create mode 100644 code/game/objects/items/rollertable_dock.dm diff --git a/code/__DEFINES/exosuit_fab.dm b/code/__DEFINES/exosuit_fab.dm index 439ed6b6162911..706daf6e2dec29 100644 --- a/code/__DEFINES/exosuit_fab.dm +++ b/code/__DEFINES/exosuit_fab.dm @@ -8,6 +8,8 @@ #define BORG_MODEL_MEDICAL (1<<3) /// Module is compatible with Engineering Cyborg model #define BORG_MODEL_ENGINEERING (1<<4) +/// Module is compatible with Service Cyborg model +#define BORG_MODEL_SERVICE (1<<5) /// Module is compatible with Ripley Exosuit models #define EXOSUIT_MODULE_RIPLEY (1<<0) diff --git a/code/__DEFINES/research/research_categories.dm b/code/__DEFINES/research/research_categories.dm index f9ce318d3add20..e8d426fcfc5a7c 100644 --- a/code/__DEFINES/research/research_categories.dm +++ b/code/__DEFINES/research/research_categories.dm @@ -159,6 +159,7 @@ #define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR "/Janitorial Cyborgs" #define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SECURITY "/Security Cyborgs" #define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING "/Mining Cyborgs" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE "/Service Cyborgs" #define RND_CATEGORY_MODSUITS "/MOD Suits" #define RND_SUBCATEGORY_MODUITS_CHASSIS "/Chassis" diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 48b916e1f44f1e..4c171b2b13d713 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -102,6 +102,16 @@ . = ..() AddElement(/datum/element/easily_fragmented, PLASTIC_BREAK_PROBABILITY) +/obj/item/knife/kitchen/silicon + name= "Silicon Knife" + icon_state = "knife" + desc = "A breakthrough in synthetic engineering, this knife is programmed to dull when not used for cooking purposes." + force = 0 + throwforce = 0 + sharpness = SHARP_EDGED + attack_verb_continuous = list("prods", "whiffs", "scratches", "pokes") + attack_verb_simple = list("prod", "whiff", "scratch", "poke") + /obj/item/kitchen/rollingpin name = "rolling pin" desc = "Used to knock out the Bartender." diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index f4688c8283a209..473a2b15719950 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -36,6 +36,11 @@ RSF /obj/item/storage/dice = 200, /obj/item/pen = 50, /obj/item/clothing/mask/cigarette = 10, + /obj/item/plate = 70, + /obj/item/reagent_containers/cup/bowl = 70, + /obj/item/kitchen/fork/plastic = 30, + /obj/item/knife/plastic = 30, + /obj/item/kitchen/spoon/plastic = 30, ) ///An associated list of fuel and it's value var/list/matter_by_item = list(/obj/item/rcd_ammo = 10,) diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index 5c501a59c15cc5..3ab381008c1f52 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -52,14 +52,14 @@ /datum/reagent/medicine/syndicate_nanites\ ) #define BASE_SERVICE_REAGENTS list(/datum/reagent/consumable/applejuice, /datum/reagent/consumable/banana,\ - /datum/reagent/consumable/coffee, /datum/reagent/consumable/cream, /datum/reagent/consumable/dr_gibb,\ - /datum/reagent/consumable/grenadine, /datum/reagent/consumable/ice, /datum/reagent/consumable/lemonjuice,\ - /datum/reagent/consumable/lemon_lime, /datum/reagent/consumable/limejuice, /datum/reagent/consumable/menthol,\ - /datum/reagent/consumable/milk, /datum/reagent/consumable/nothing, /datum/reagent/consumable/orangejuice,\ - /datum/reagent/consumable/peachjuice, /datum/reagent/consumable/pineapplejuice,\ - /datum/reagent/consumable/pwr_game, /datum/reagent/consumable/shamblers, /datum/reagent/consumable/sodawater,\ - /datum/reagent/consumable/sol_dry, /datum/reagent/consumable/soymilk, /datum/reagent/consumable/space_cola,\ - /datum/reagent/consumable/spacemountainwind, /datum/reagent/consumable/space_up, /datum/reagent/consumable/sugar,\ + /datum/reagent/consumable/berryjuice, /datum/reagent/consumable/cherryjelly, /datum/reagent/consumable/coffee,\ + /datum/reagent/consumable/cream, /datum/reagent/consumable/dr_gibb, /datum/reagent/consumable/grenadine,\ + /datum/reagent/consumable/ice, /datum/reagent/consumable/lemon_lime, /datum/reagent/consumable/limejuice,\ + /datum/reagent/consumable/lemonjuice, /datum/reagent/consumable/menthol, /datum/reagent/consumable/nothing,\ + /datum/reagent/consumable/milk, /datum/reagent/consumable/orangejuice, /datum/reagent/consumable/peachjuice,\ + /datum/reagent/consumable/pineapplejuice, /datum/reagent/consumable/pwr_game, /datum/reagent/consumable/shamblers,\ + /datum/reagent/consumable/sodawater, /datum/reagent/consumable/sol_dry, /datum/reagent/consumable/soymilk,\ + /datum/reagent/consumable/space_cola, /datum/reagent/consumable/spacemountainwind, /datum/reagent/consumable/space_up,\ /datum/reagent/consumable/tea, /datum/reagent/consumable/tomatojuice, /datum/reagent/consumable/tonic,\ /datum/reagent/water,\ /datum/reagent/consumable/ethanol/ale, /datum/reagent/consumable/ethanol/applejack, /datum/reagent/consumable/ethanol/beer,\ @@ -69,6 +69,10 @@ /datum/reagent/consumable/ethanol/tequila, /datum/reagent/consumable/ethanol/triple_sec, /datum/reagent/consumable/ethanol/vermouth,\ /datum/reagent/consumable/ethanol/vodka, /datum/reagent/consumable/ethanol/whiskey, /datum/reagent/consumable/ethanol/wine\ ) +#define EXPANDED_SERVICE_REAGENTS list (/datum/reagent/consumable/flour, /datum/reagent/consumable/cornmeal, /datum/reagent/consumable/corn_syrup,\ + /datum/reagent/consumable/rice, /datum/reagent/consumable/salt, /datum/reagent/consumable/blackpepper, /datum/reagent/consumable/sugar,\ + /datum/reagent/consumable/coco, /datum/reagent/consumable/vanilla, /datum/reagent/consumable/eggwhite, /datum/reagent/consumable/eggyolk\ + ) #define HACKED_SERVICE_REAGENTS list(\ /datum/reagent/toxin/fakebeer,\ /datum/reagent/consumable/ethanol/fernet\ @@ -215,7 +219,6 @@ if(reagent.name == action) selected_reagent = reagent . = TRUE - var/mob/living/silicon/robot/cyborg = loc if(istype(loc, /obj/item/robot_model)) var/obj/item/robot_model/container_model = loc @@ -310,6 +313,8 @@ recharge_time = 3 dispensed_temperature = WATER_MATTERSTATE_CHANGE_TEMP //Water stays wet, ice stays ice default_reagent_types = BASE_SERVICE_REAGENTS + expanded_reagent_types = EXPANDED_SERVICE_REAGENTS + /obj/item/reagent_containers/borghypo/borgshaker/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) @@ -320,7 +325,6 @@ /obj/item/reagent_containers/borghypo/borgshaker/ui_data(mob/user) var/list/drink_reagents = list() var/list/alcohol_reagents = list() - for(var/datum/reagent/reagent in stored_reagents.reagent_list) // Split the reagents into alcoholic/non-alcoholic if(istype(reagent, /datum/reagent/consumable/ethanol)) @@ -370,6 +374,76 @@ shaker.trans_to(target, amount_per_transfer_from_this, transfered_by = user) balloon_alert(user, "[amount_per_transfer_from_this] unit\s poured") return . + + +/obj/item/reagent_containers/borghypo/condimentsynthesizer // Solids! Condiments! The borger uprising! + name = "Condiment Synthesizer" + desc = "An advanced condiment synthesizer" + icon = 'icons/obj/food/containers.dmi' + icon_state = "flour" + inhand_icon_state = "carton" + possible_transfer_amounts = list(5,10,20) + // Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. + charge_cost = 40 //Costs double the power of the borgshaker due to synthesizing solids + recharge_time = 6 //Double the recharge time too, for the same reason. + dispensed_temperature = WATER_MATTERSTATE_CHANGE_TEMP + default_reagent_types = EXPANDED_SERVICE_REAGENTS + +/obj/item/reagent_containers/borghypo/condimentsynthesizer/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "BorgHypo", name) + ui.open() + +/obj/item/reagent_containers/borghypo/condimentsynthesizer/ui_data(mob/user) + var/list/condiments = list() + for(var/datum/reagent/reagent in stored_reagents.reagent_list) + if(reagent) + condiments.Add(list(list( + "name" = reagent.name, + "volume" = round(reagent.volume, 0.01) - 1, + ))) // list in a list because Byond merges the first list... + + var/data = list() + data["theme"] = tgui_theme + data["minVolume"] = amount_per_transfer_from_this + data["maxVolume"] = max_volume_per_reagent + data["reagents"] = condiments + data["selectedReagent"] = selected_reagent?.name + return data + + + +/obj/item/reagent_containers/borghypo/condimentbag/attack(mob/M, mob/user) + return //Can't inject stuff with a shaker, can we? //not with that attitude + +/obj/item/reagent_containers/borghypo/condimentsynthesizer/afterattack(obj/target, mob/user, proximity) + . = ..() + if(!proximity) + return . + if(!selected_reagent) + balloon_alert(user, "no reagent selected!") + return . + . |= AFTERATTACK_PROCESSED_ITEM + if(target.is_refillable()) + if(!stored_reagents.has_reagent(selected_reagent.type, amount_per_transfer_from_this)) + balloon_alert(user, "not enough [selected_reagent.name]!") + return . + if(target.reagents.total_volume >= target.reagents.maximum_volume) + balloon_alert(user, "[target] is full!") + return . + + // This is the in-between where we're storing the reagent we're going to pour into the container + // because we cannot specify a singular reagent to transfer in trans_to + var/datum/reagents/shaker = new() + stored_reagents.remove_reagent(selected_reagent.type, amount_per_transfer_from_this) + shaker.add_reagent(selected_reagent.type, amount_per_transfer_from_this, reagtemp = dispensed_temperature, no_react = TRUE) + shaker.trans_to(target, amount_per_transfer_from_this, transfered_by = user) + balloon_alert(user, "[amount_per_transfer_from_this] unit\s poured") + return . + + + /obj/item/reagent_containers/borghypo/borgshaker/hacked name = "cyborg shaker" @@ -389,4 +463,5 @@ #undef HACKED_CLOWN_REAGENTS #undef BASE_SYNDICATE_REAGENTS #undef BASE_SERVICE_REAGENTS +#undef EXPANDED_SERVICE_REAGENTS #undef HACKED_SERVICE_REAGENTS diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 1336a043e7f5a1..b4c1230692cce3 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -750,6 +750,111 @@ var/obj/item/pushbroom/cyborg/BR = locate() in R.model.modules if (BR) R.model.remove_module(BR, TRUE) + +/obj/item/borg/upgrade/condimentsynthesizer + name = "Service Cyborg Condiment Synthesiser" + desc = "An upgrade to the service model cyborg, allowing it \ + to produce solid condiments." + icon_state = "cyborg_upgrade3" + require_model = TRUE + model_type = list(/obj/item/robot_model/service) + model_flags = BORG_MODEL_SERVICE + +/obj/item/borg/upgrade/condimentsynthesizer/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/reagent_containers/borghypo/condimentsynthesizer/CS = locate() in R.model.modules + if(CS) + to_chat(user, span_warning("This unit has no room for another condiment synthesizer!")) + return FALSE + CS = new(R.model) + R.model.basic_modules += CS + R.model.add_module(CS, FALSE, TRUE) + +/obj/item/borg/upgrade/condimentsynthesizer/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/reagent_containers/borghypo/condimentsynthesizer/CS = locate() in R.model.modules + if (CS) + R.model.remove_module(CS, TRUE) + +/obj/item/borg/upgrade/siliconknife + name = "Service Cyborg silicon Knife" + desc = "An upgrade to the service model cyborg, to help process foods" + icon_state = "cyborg_upgrade3" + require_model = TRUE + model_type = list(/obj/item/robot_model/service) + model_flags = BORG_MODEL_SERVICE + +/obj/item/borg/upgrade/siliconknife/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/knife/kitchen/silicon/SK = locate() in R.model.modules + if(SK) + to_chat(user, span_warning("This unit has no room for another silicon knife!")) + return FALSE + SK = new(R.model) + R.model.basic_modules += SK + R.model.add_module(SK, FALSE, TRUE) + +/obj/item/borg/upgrade/siliconknife/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/knife/kitchen/silicon/SK = locate() in R.model.modules + if (SK) + R.model.remove_module(SK, TRUE) + +/obj/item/borg/upgrade/rollingpin + name = "Service Cyborg Rolling Pin" + desc = "An upgrade to the service model cyborg, to help process foods" + icon_state = "cyborg_upgrade3" + require_model = TRUE + model_type = list(/obj/item/robot_model/service) + model_flags = BORG_MODEL_SERVICE + +/obj/item/borg/upgrade/rollingpin/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/kitchen/rollingpin/RP = locate() in R.model.modules + if(RP) + to_chat(user, span_warning("This unit has no room for another rolling pin!")) + return FALSE + RP = new(R.model) + R.model.basic_modules += RP + R.model.add_module(RP, FALSE, TRUE) + +/obj/item/borg/upgrade/rollingpin/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/kitchen/rollingpin/RP = locate() in R.model.modules + if (RP) + R.model.remove_module(RP, TRUE) + +/obj/item/borg/upgrade/rollingtable + name = "Service Cyborg Rolling Table Dock" + desc = "An upgrade to the service model cyborg, to help provide mobile service" + icon_state = "cyborg_upgrade3" + require_model = TRUE + model_type = list(/obj/item/robot_model/service) + model_flags = BORG_MODEL_SERVICE + +/obj/item/borg/upgrade/rollingtable/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/rollingtable_dock/RT = locate() in R.model.modules + if(RT) + to_chat(user, span_warning("This unit has no room for another rolling table dock!")) + return FALSE + RT = new(R.model) + R.model.basic_modules += RT + R.model.add_module(RT, FALSE, TRUE) + +/obj/item/borg/upgrade/rollingtable/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/rollingtable_dock/RT = locate() in R.model.modules + if (RT) + R.model.remove_module(RT, TRUE) ///This isn't an upgrade or part of the same path, but I'm gonna just stick it here because it's a tool used on cyborgs. //A reusable tool that can bring borgs back to life. They gotta be repaired first, though. diff --git a/code/game/objects/items/rollertable_dock.dm b/code/game/objects/items/rollertable_dock.dm new file mode 100644 index 00000000000000..f1a1fb4b715b52 --- /dev/null +++ b/code/game/objects/items/rollertable_dock.dm @@ -0,0 +1,58 @@ +/obj/item/rollingtable_dock + name = "rolling table dock" + desc = "A collapsed roller table that can be ejected for service on the go. Must be collected or replaced after use." + icon = 'icons/obj/smooth_structures/rollingtable.dmi' + icon_state = "rollingtable" + var/obj/structure/table/rolling/loaded = null + +/obj/item/rollingtable_dock/Initialize(mapload) + . = ..() + loaded = new(src) + +/obj/structure/table/rolling/attackby(obj/item/WT, mob/user, params) + if(istype(WT, /obj/item/rollingtable_dock)) + var/obj/item/rollingtable_dock/RT = WT + var/turf/target_table = get_turf(src) + if(RT.loaded) + to_chat(user, span_warning("You already have a roller table docked!")) + return + if(locate(/mob/living) in target_table) + to_chat(user, span_warning("You can't collect the table with that much on top!")) + return + else + RT.loaded = src + forceMove(RT) + user.visible_message(span_notice("[user] collects [src]."), span_notice("You collect [src].")) + return 1 + else + return ..() + + +/obj/item/rollingtable_dock/afterattack(obj/target, mob/user , proximity) + . = ..() + var/turf/target_turf = get_turf(target) + if(!proximity) + return + if(target_turf.is_blocked_turf(TRUE)) + return + if(locate(/mob/living) in target_turf) + return + if(isopenturf(target)) + deploy_rollingtable(user, target) + +/obj/item/rollingtable_dock/proc/deploy_rollingtable(mob/user, atom/location) + var/obj/structure/table/rolling/RT = new /obj/structure/table/rolling(location) + RT.add_fingerprint(user) + qdel(src) + +/obj/item/rollingtable_dock/examine(mob/user) + . = ..() + . += "The dock is [loaded ? "loaded" : "empty"]." + +/obj/item/rollingtable_dock/deploy_rollingtable(mob/user, atom/location) + if(loaded) + loaded.forceMove(location) + user.visible_message(span_notice("[user] deploys [loaded]."), span_notice("You deploy [loaded].")) + loaded = null + else + to_chat(user, span_warning("The dock is empty!")) diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index 14f50ca0dab867..3a7687ebebf280 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -2,6 +2,7 @@ /obj/item/storage/bag/money name = "money bag" + desc = "A bag for storing your profits." icon_state = "moneybag" worn_icon_state = "moneybag" force = 10 diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index ecaac0431def76..cf602c3905b2a2 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -744,24 +744,26 @@ name = "Service" basic_modules = list( /obj/item/assembly/flash/cyborg, + /obj/item/reagent_containers/borghypo/borgshaker, + /obj/item/borg/apparatus/beaker/service, /obj/item/reagent_containers/cup/beaker/large, //I know a shaker is more appropiate but this is for ease of identification /obj/item/reagent_containers/condiment/enzyme, + /obj/item/reagent_containers/dropper, + /obj/item/rsf, + /obj/item/storage/bag/tray, /obj/item/pen, /obj/item/toy/crayon/spraycan/borg, /obj/item/extinguisher/mini, /obj/item/hand_labeler/borg, /obj/item/razor, - /obj/item/rsf, /obj/item/instrument/guitar, /obj/item/instrument/piano_synth, - /obj/item/reagent_containers/dropper, /obj/item/lighter, - /obj/item/storage/bag/tray, - /obj/item/reagent_containers/borghypo/borgshaker, /obj/item/borg/lollipop, /obj/item/stack/pipe_cleaner_coil/cyborg, - /obj/item/borg/apparatus/beaker/service, /obj/item/chisel, + /obj/item/reagent_containers/cup/rag, + /obj/item/storage/bag/money, ) radio_channels = list(RADIO_CHANNEL_SERVICE) emag_modules = list( diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index f4a333e2cb5b8d..5e14866b57428c 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1148,6 +1148,50 @@ RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR ) +/datum/design/borg_upgrade_rollingtable + name = "Rolling Table Dock" + id = "borg_upgrade_rollingtable" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/rollingtable + materials = list(/datum/material/iron = 20000, /datum/material/titanium = 750) //steeper price than a regular rolling table, with some added titanium to make up for the relative rarity of regular rolling tables + construction_time = 40 + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE + ) + +/datum/design/borg_upgrade_condimentsynthesizer + name = "Condiment Synthesizer" + id = "borg_upgrade_condimentsynthesizer" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/condimentsynthesizer + materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/plasma = 8000, /datum/material/uranium = 8000) //Same price as an expanded hypo for medical borg + construction_time = 40 + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE + ) + +/datum/design/borg_upgrade_siliconknife + name = "Silicon Knife" + id = "borg_upgrade_siliconknife" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/siliconknife + materials = list(/datum/material/iron = 12000, /datum/material/gold = 1000) //Cost of a kitchen knife with some added gold. It is a silicon knife after all + construction_time = 40 + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE + ) + +/datum/design/borg_upgrade_rollingpin + name = "Rolling Pin" + id = "borg_upgrade_rollingpin" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/rollingpin + materials = list(/datum/material/iron = 12000) + construction_time = 40 + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE + ) + /datum/design/borg_upgrade_expand name = "Expand Module" id = "borg_upgrade_expand" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 5742528ad74d5c..d39c7c5f144dd0 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -943,6 +943,19 @@ . = ..() if(!CONFIG_GET(flag/disable_secborg)) design_ids += "borg_upgrade_disablercooler" + +/datum/techweb_node/cyborg_upg_serv + id = "cyborg_upg_serv" + display_name = "Cyborg Upgrades: Service" + description = "Service upgrades for cyborgs." + prereq_ids = list("adv_robotics") + design_ids = list( + "borg_upgrade_rollingtable", + "borg_upgrade_condimentsynthesizer", + "borg_upgrade_siliconknife", + "borg_upgrade_rollingpin", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) /datum/techweb_node/cyborg_upg_engiminer id = "cyborg_upg_engiminer" diff --git a/tgstation.dme b/tgstation.dme index f69048e98c0519..3a2a058fe6901a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1842,6 +1842,7 @@ #include "code\game\objects\items\powerfist.dm" #include "code\game\objects\items\puzzle_pieces.dm" #include "code\game\objects\items\religion.dm" +#include "code\game\objects\items\rollertable_dock.dm" #include "code\game\objects\items\scrolls.dm" #include "code\game\objects\items\secret_documents.dm" #include "code\game\objects\items\sharpener.dm" From 8fd6d5f2857c28e334f613342a023f199c9dc2ac Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Sun, 23 Apr 2023 15:03:07 +0200 Subject: [PATCH 02/25] empty space n fix --- code/game/objects/items/robot/items/hypo.dm | 8 +------- code/game/objects/items/rollertable_dock.dm | 5 ++--- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index 3ab381008c1f52..47d46b97344a7c 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -375,7 +375,6 @@ balloon_alert(user, "[amount_per_transfer_from_this] unit\s poured") return . - /obj/item/reagent_containers/borghypo/condimentsynthesizer // Solids! Condiments! The borger uprising! name = "Condiment Synthesizer" desc = "An advanced condiment synthesizer" @@ -411,9 +410,7 @@ data["reagents"] = condiments data["selectedReagent"] = selected_reagent?.name return data - - - + /obj/item/reagent_containers/borghypo/condimentbag/attack(mob/M, mob/user) return //Can't inject stuff with a shaker, can we? //not with that attitude @@ -441,9 +438,6 @@ shaker.trans_to(target, amount_per_transfer_from_this, transfered_by = user) balloon_alert(user, "[amount_per_transfer_from_this] unit\s poured") return . - - - /obj/item/reagent_containers/borghypo/borgshaker/hacked name = "cyborg shaker" diff --git a/code/game/objects/items/rollertable_dock.dm b/code/game/objects/items/rollertable_dock.dm index f1a1fb4b715b52..57105367947a30 100644 --- a/code/game/objects/items/rollertable_dock.dm +++ b/code/game/objects/items/rollertable_dock.dm @@ -1,8 +1,8 @@ /obj/item/rollingtable_dock name = "rolling table dock" desc = "A collapsed roller table that can be ejected for service on the go. Must be collected or replaced after use." - icon = 'icons/obj/smooth_structures/rollingtable.dmi' - icon_state = "rollingtable" + icon = 'icons/obj/medical/rollerbed.dmi' + icon_state = "folded"" var/obj/structure/table/rolling/loaded = null /obj/item/rollingtable_dock/Initialize(mapload) @@ -27,7 +27,6 @@ else return ..() - /obj/item/rollingtable_dock/afterattack(obj/target, mob/user , proximity) . = ..() var/turf/target_turf = get_turf(target) From 1be2dfad36395e6c29023da2ed076eaf36f99972 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Sun, 23 Apr 2023 15:09:37 +0200 Subject: [PATCH 03/25] Whoops --- code/game/objects/items/rollertable_dock.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/rollertable_dock.dm b/code/game/objects/items/rollertable_dock.dm index 57105367947a30..6be47516a535bc 100644 --- a/code/game/objects/items/rollertable_dock.dm +++ b/code/game/objects/items/rollertable_dock.dm @@ -2,7 +2,7 @@ name = "rolling table dock" desc = "A collapsed roller table that can be ejected for service on the go. Must be collected or replaced after use." icon = 'icons/obj/medical/rollerbed.dmi' - icon_state = "folded"" + icon_state = "folded" var/obj/structure/table/rolling/loaded = null /obj/item/rollingtable_dock/Initialize(mapload) From d7ad8fa931670650319434ae38599f309f3fc345 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Sun, 23 Apr 2023 15:25:33 +0200 Subject: [PATCH 04/25] Come on now --- code/game/objects/items/robot/items/hypo.dm | 1 - code/game/objects/items/rollertable_dock.dm | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index 47d46b97344a7c..de8c19c5c447d0 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -380,7 +380,6 @@ desc = "An advanced condiment synthesizer" icon = 'icons/obj/food/containers.dmi' icon_state = "flour" - inhand_icon_state = "carton" possible_transfer_amounts = list(5,10,20) // Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. charge_cost = 40 //Costs double the power of the borgshaker due to synthesizing solids diff --git a/code/game/objects/items/rollertable_dock.dm b/code/game/objects/items/rollertable_dock.dm index 6be47516a535bc..89bbe83e30d25c 100644 --- a/code/game/objects/items/rollertable_dock.dm +++ b/code/game/objects/items/rollertable_dock.dm @@ -1,8 +1,8 @@ /obj/item/rollingtable_dock name = "rolling table dock" desc = "A collapsed roller table that can be ejected for service on the go. Must be collected or replaced after use." - icon = 'icons/obj/medical/rollerbed.dmi' - icon_state = "folded" + icon = 'icons/obj/smooth_structures/rollingtable.dmi' + icon_state = "rollingtable" var/obj/structure/table/rolling/loaded = null /obj/item/rollingtable_dock/Initialize(mapload) From c838f915aa467c99479f1824f45782c33e0c0977 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 24 Apr 2023 19:58:57 +0200 Subject: [PATCH 05/25] Knifepin, service apparatus Added the suggested knife/rolling pin power tool, but made some alterations such as it not being faster, and still keeping the whole 'no stabby' part, while also making the rolling pin sound blunt --- code/game/objects/items/kitchen.dm | 35 ++++++++++++++++-- .../game/objects/items/robot/items/storage.dm | 31 ++++++++++++++++ .../objects/items/robot/robot_upgrades.dm | 16 ++++---- .../designs/mechfabricator_designs.dm | 14 +++---- code/modules/research/techweb/all_nodes.dm | 2 +- icons/obj/kitchen.dmi | Bin 29190 -> 30987 bytes 6 files changed, 79 insertions(+), 19 deletions(-) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index cec4106297c7f0..88eb2c03d5b0a7 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -104,14 +104,43 @@ /obj/item/knife/kitchen/silicon name= "Silicon Knife" - icon_state = "knife" - desc = "A breakthrough in synthetic engineering, this knife is programmed to dull when not used for cooking purposes." + icon_state = "SiliKnife" + desc = "A breakthrough in synthetic engineering, this cyborg tool is programmed to dull when not used for cooking purposes, and can exchange the blade for a rolling pin" force = 0 throwforce = 0 sharpness = SHARP_EDGED + usesound = 'sound/items/drill_use.ogg' + hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("prods", "whiffs", "scratches", "pokes") attack_verb_simple = list("prod", "whiff", "scratch", "poke") - + tool_behaviour = TOOL_KNIFE + +/obj/item/knife/kitchen/silicon/examine() + . = ..() + . += " It's fitted with a [tool_behaviour == TOOL_KNIFE ? "knife" : "rolling pin"] head." + +/obj/item/knife/kitchen/silicon/attack_self(mob/user) + playsound(get_turf(user), 'sound/items/change_drill.ogg', 50, TRUE) + if(tool_behaviour != TOOL_ROLLINGPIN) + tool_behaviour = TOOL_ROLLINGPIN + to_chat(user, span_notice("You attach the rolling pin bit to the [src].")) + icon_state = "SiliRollingpin" + force = 8 + sharpness = NONE + hitsound = SFX_SWING_HIT + attack_verb_continuous = list("bashes", "batters", "bludgeons", "thrashes", "whacks") + attack_verb_simple = list("bash", "batter", "bludgeon", "thrash", "whack") + + else + tool_behaviour = TOOL_KNIFE + to_chat(user, span_notice("You attach the knife bit to the [src].")) + icon_state = "SiliKnife" + force = 0 + sharpness = SHARP_EDGED + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb_continuous = list("prods", "whiffs", "scratches", "pokes") + attack_verb_simple = list("prod", "whiff", "scratch", "poke") + /obj/item/kitchen/rollingpin name = "rolling pin" desc = "Used to knock out the Bartender." diff --git a/code/game/objects/items/robot/items/storage.dm b/code/game/objects/items/robot/items/storage.dm index c67aa202089650..e6a770e1ce5916 100644 --- a/code/game/objects/items/robot/items/storage.dm +++ b/code/game/objects/items/robot/items/storage.dm @@ -300,3 +300,34 @@ if(istype(atom, /obj/item/ai_module) && !stored) //If an admin wants a borg to upload laws, who am I to stop them? Otherwise, we can hint that it fails to_chat(user, span_warning("This circuit board doesn't seem to have standard robot apparatus pin holes. You're unable to pick it up.")) return ..() + +/obj/item/borg/apparatus/service + name = "Service apparatus" + desc = "A special apparatus for carrying food and oven trays" + icon_state = "borg_hardware_apparatus" + storable = list(/obj/item/plate/oven_tray, + /obj/item/food) + +/obj/item/borg/apparatus/service/Initialize(mapload) + update_appearance() + return ..() + +/obj/item/borg/apparatus/service/update_overlays() + . = ..() + var/mutable_appearance/arm = mutable_appearance(icon, "borg_hardware_apparatus_arm1") + if(stored) + stored.pixel_x = -3 + stored.pixel_y = 0 + if((!istype(stored, /obj/item/plate/oven_tray)) || (!istype(stored, /obj/item/food))) + arm.icon_state = "borg_hardware_apparatus_arm2" + var/mutable_appearance/stored_copy = new /mutable_appearance(stored) + stored_copy.layer = FLOAT_LAYER + stored_copy.plane = FLOAT_PLANE + . += stored_copy + . += arm + +/obj/item/borg/apparatus/service/examine() + . = ..() + if(stored) + . += "The apparatus currently has [stored] secured." + . += span_notice(" Alt-click will drop the currently secured item. ") \ No newline at end of file diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index b4c1230692cce3..4063360ae364f0 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -804,29 +804,29 @@ if (SK) R.model.remove_module(SK, TRUE) -/obj/item/borg/upgrade/rollingpin - name = "Service Cyborg Rolling Pin" - desc = "An upgrade to the service model cyborg, to help process foods" +/obj/item/borg/upgrade/serviceapparatus + name = "Service Cyborg Service Apparatus" + desc = "An upgrade to the service model cyborg, to help handle foods" icon_state = "cyborg_upgrade3" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE -/obj/item/borg/upgrade/rollingpin/action(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/serviceapparatus/action(mob/living/silicon/robot/R, user = usr) . = ..() if(.) - var/obj/item/kitchen/rollingpin/RP = locate() in R.model.modules + var/obj/item/borg/apparatus/service/RP = locate() in R.model.modules if(RP) - to_chat(user, span_warning("This unit has no room for another rolling pin!")) + to_chat(user, span_warning("This unit has no room for another service apparatus!")) return FALSE RP = new(R.model) R.model.basic_modules += RP R.model.add_module(RP, FALSE, TRUE) -/obj/item/borg/upgrade/rollingpin/deactivate(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/serviceapparatus/deactivate(mob/living/silicon/robot/R, user = usr) . = ..() if (.) - var/obj/item/kitchen/rollingpin/RP = locate() in R.model.modules + var/obj/item/borg/apparatus/service/RP = locate() in R.model.modules if (RP) R.model.remove_module(RP, TRUE) diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 5e14866b57428c..8193c9da5628f8 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1164,7 +1164,7 @@ id = "borg_upgrade_condimentsynthesizer" build_type = MECHFAB build_path = /obj/item/borg/upgrade/condimentsynthesizer - materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/plasma = 8000, /datum/material/uranium = 8000) //Same price as an expanded hypo for medical borg + materials = list(/datum/material/iron = 15000, /datum/material/glass = 12000, /datum/material/plasma = 6000, /datum/material/uranium = 6000) //a bit cheaper than an expanded hypo for medical borg, construction_time = 40 category = list( RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE @@ -1175,18 +1175,18 @@ id = "borg_upgrade_siliconknife" build_type = MECHFAB build_path = /obj/item/borg/upgrade/siliconknife - materials = list(/datum/material/iron = 12000, /datum/material/gold = 1000) //Cost of a kitchen knife with some added gold. It is a silicon knife after all + materials = list(/datum/material/iron = 15000, /datum/material/gold = 1000, datum/material/silver = 1000,) construction_time = 40 category = list( RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE ) -/datum/design/borg_upgrade_rollingpin - name = "Rolling Pin" - id = "borg_upgrade_rollingpin" +/datum/design/borg_upgrade_serviceapparatus + name = "Service apparatus" + id = "borg_upgrade_serviceapparatus" build_type = MECHFAB - build_path = /obj/item/borg/upgrade/rollingpin - materials = list(/datum/material/iron = 12000) + build_path = /obj/item/borg/upgrade/serviceapparatus + materials = list(/datum/material/iron = 5000) construction_time = 40 category = list( RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index d39c7c5f144dd0..a2b012a9f2820c 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -953,7 +953,7 @@ "borg_upgrade_rollingtable", "borg_upgrade_condimentsynthesizer", "borg_upgrade_siliconknife", - "borg_upgrade_rollingpin", + "borg_upgrade_serviceapparatus", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index 37cf5ca6904f263bf82d82e0b9ecc832d2667b98..b3d407c87d8e6ba1796cc8ea83153c581bba305b 100644 GIT binary patch literal 30987 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 Date: Mon, 24 Apr 2023 20:21:39 +0200 Subject: [PATCH 06/25] service apparatus sprite, oven interaction Gave the service apparatus it's own sprite, allowed borgs to open and close the oven. Still can't pick trays up from the oven. But you can place food in it, and cook it, and open the oven when it's done. Just not retrieve it yourself. --- .../game/objects/items/robot/items/storage.dm | 2 +- .../modules/food_and_drinks/machinery/oven.dm | 25 ++++++++++++++++++ .../designs/mechfabricator_designs.dm | 2 +- icons/mob/silicon/robot_items.dmi | Bin 2139 -> 2188 bytes 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/robot/items/storage.dm b/code/game/objects/items/robot/items/storage.dm index e6a770e1ce5916..e3443a2ddf1c77 100644 --- a/code/game/objects/items/robot/items/storage.dm +++ b/code/game/objects/items/robot/items/storage.dm @@ -304,7 +304,7 @@ /obj/item/borg/apparatus/service name = "Service apparatus" desc = "A special apparatus for carrying food and oven trays" - icon_state = "borg_hardware_apparatus" + icon_state = "borg_service_apparatus" storable = list(/obj/item/plate/oven_tray, /obj/item/food) diff --git a/code/modules/food_and_drinks/machinery/oven.dm b/code/modules/food_and_drinks/machinery/oven.dm index 077d775a4428c7..17cb13acce6705 100644 --- a/code/modules/food_and_drinks/machinery/oven.dm +++ b/code/modules/food_and_drinks/machinery/oven.dm @@ -160,6 +160,31 @@ update_baking_audio() return TRUE +/obj/machinery/oven/attack_robot(mob/user, modifiers) + . = ..() + open = !open + if(open) + playsound(src, 'sound/machines/oven/oven_open.ogg', 75, TRUE) + set_smoke_state(OVEN_SMOKE_STATE_NONE) + to_chat(user, span_notice("You open [src].")) + end_processing() + if(used_tray) + used_tray.vis_flags &= ~VIS_HIDE + else + playsound(src, 'sound/machines/oven/oven_close.ogg', 75, TRUE) + to_chat(user, span_notice("You close [src].")) + if(used_tray) + begin_processing() + used_tray.vis_flags |= VIS_HIDE + + // yeah yeah i figure you don't need connect loc for just baking trays + for(var/obj/item/baked_item in used_tray.contents) + SEND_SIGNAL(baked_item, COMSIG_ITEM_OVEN_PLACED_IN, src, user) + + update_appearance() + update_baking_audio() + return TRUE + /obj/machinery/oven/proc/update_baking_audio() if(!oven_loop) return diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 8193c9da5628f8..09abe29322df1c 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1175,7 +1175,7 @@ id = "borg_upgrade_siliconknife" build_type = MECHFAB build_path = /obj/item/borg/upgrade/siliconknife - materials = list(/datum/material/iron = 15000, /datum/material/gold = 1000, datum/material/silver = 1000,) + materials = list(/datum/material/iron = 15000, /datum/material/gold = 1000, /datum/material/silver = 1000,) construction_time = 40 category = list( RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE diff --git a/icons/mob/silicon/robot_items.dmi b/icons/mob/silicon/robot_items.dmi index f409a5c38b15c19ccbefd62a7bab0bfbf340f3df..9f8b0142e9c62a9828ad720a274660e4dcbe1a4d 100644 GIT binary patch delta 1836 zcmV+{2h;f55R4I!Bmq9LB|iZe>gwvL`&eZF0004WQchCYnFDuudH@sflH5%YCoF?cs&mDCh+K4aB4K`x%}S5;I<7R;bd zA(*ICl7mW{Bk6*c0YxGm4<${}f1m)ek9F_4iUtm+^3%;>6=A2Hylo~FP=i!oV&Cjv zQAyB^1HE%7qNm|ar^b4jOs}!4(s*NZ>)S!$)>Bh&5q8-*v@HE;yf{1NFoz~Vl>0WeOr`>eVzW*24 zy-8r;eT(D;?sk3;N*+(nz5hS=oqfbKE?>~!TAk?R1h`aL)CLCD`^1Q45IkZ z{MtMrAZmVKz%UpFH1p|#WmyZRX)S14KA$J!i?(eqnx?%-iw~Xqv9|P30Lov+nC9}b zFyELa@_PmlECX1+WtyL$=lrME!x=Oa%ePJQGxVI#WFN*?rcARie^tQqYWdG;23CFj ztEAP8a=rqsTCz>Khw6-GOFV&n&dMo(&Bz@$d|qZGT~-xMzbBFL?S3 zSX#-LpC=8hEtktEe+{`PQ}ThB1$}e=u1C<+7K*RxZ=>*Nf{&f2A^4VdMu6m^FZ_%9frD0U4<2hF(K&#arVR zGAcDg&1ICF#0Hj>rJ9nJR=-k1KbcfM%_Rj|fpJR!00000e*gdgCZgW;q{l`5_eqb7 z`tOq-7xv#LJ*{1~kdFBbB@;M4{oF`E9{eYkeb^zvC}e}v0tJLr$kJR#`6GX)6x^Ff>~FkHS^AM*r3|2<@!Eih#MsBvNc-H&sY zI8;39{Oq{6|32w)00000001CKzTO_Uf@oB?pFdA_hJ^2JuR6{)!@<{MzaZf*Q1sbhZ zgJ)o`bJXz+^!3vW@OqQk91^E*ZnFBrqPW6cfktb8A310>TEhm8kB`5_kMlZ^z;Nj+PH|@ z=%CqT8{qWcGwPFBT@M8E;(t52mjUpVc?{B@$QEof4cbj>Y7r-iQb>D=&s|qIyHo@Lf&;0 zl>**N16QGgUr65ldhy%!``<|eiQb=I?>hJ@}_ei*oi&wy<2n`Iq zk@>GVKI%C@7HINA^xq@Vbrd8W{i2rf@W*L-r7Jfd{`hd~9sNm-CwzZ?*INU|WhflC zJqI0nJmLO(7q37R{m8-X8Gi8@`X!;$f00{1000000059YcjFcil~fJfCotw+5`!{H zU^0dQr$@ZA-N*0X?yuN~8W0!U{i9bX_9DI` z4icO!i7`_*5O)ovZD7PAW|O*sbhpqQCf@n}qXtHQCzhm$IRg?012HIKl9Y=$f9A=O z7!wRUcD^)gKnmnH&}ZCAA|SPRjPwQo0001Kkp3-4egmm~Kac?O8+bZy1rhmMdIQpL zp-D9Gm~WrtH!z7c@E8LVS;UVrApI5s0|@{{JZ_+f$IbuCz&L6^Brv8sagqZJj2rn3 a`~yqQWX(0I6{`RM002ovPDHLk0$_sTt&-9J delta 1786 zcmV*GX6O`ilepMxn0G;@vh6f>RoY;!X+qO0+y<(vEyAuiho%97l;hv1s`C}@$+9Wc0^!(+ zKe^M)`G4TWFt}uLH`eYQG{WlxveW2PtTxN@H*f?l3OiI!O+hLE0DlFtNklJCh|} zq~|^dC5M|k^S;d7z+SVGgdhllAlV_8&^$9C^JjtA=j4PuDDmXy@)i0b%py z!n~Y}{*VTse0g4#3x813N7}*&ZG!mt{F>%h5H{aNRtqweGzM!1QQR}Xvgi{KHs3X% zX@CJm|9GibEH3GKaY<21rIJ6sY#7F}t{cm&xaZtYl$FN4C`P!^6e`tUJ z8KCluy8bD7E`3&fJcFWB`G&54PM%A-{NwoAjINhw%5+|(^na9PVBOKbzP`Fa4Lr)< zoYnQpY{kjfDu4l5-P%&w4wPc?iy~QF+lE4y*gJz_7+)GBZrfnQ%eMY9l~&aj7ySk{ zR%Bo82J@je}(4PS^2Jk?ObCUT7n|gy`X$mboBca7=|7H+Avu0welL#U#%`w zHEoe>VSf$OYJYbAMyhsB{q_1n9msbbfHgp?Omm({4JnKP1o5>p)nBb@RdT{2 z<0>M^->gvm^}1FE@*M-RJO>#F&qx}}e>C|k>OA;4kOi8mrZ&k(@lM)8CZ(y#g`8B# zuz?k6r77hzt6yr8pIjo}=Hh~^K-v-z1VIo4K@bE))PK94_PD73KJ9T)|9#ry!v6cT z$NByD48*zp_e{jOy~ixXIsNyH#NqyXCgPI3-N-@xcP9?_=cCJq8*ifgX!a@(|-p~vE!Tp0>wEe1j*-iMxFjUe2Uwj2Tur;&rv|*Jb|LW4~Y8jZXBFqm=B#1 zEFX3-8h;-=!R^0;0tEeeHx3I7mM_)^o*?MI2aLl41LjW}7xv$sIA@6i#ly}I$Ho2k zX^$faf*=TjAaU}|ZrTdM(b#?VEZ!MnzPG($n!A95Jr9#k5c~c4mIVa%zV#q*uuovU z9{c_IR;vX#AO_lPu7LxBbF{zTA+RjOeSf~CT7Trh3=sp*yF3F2hc8~fv>ohsUcKtr z7JMg(`|lwMu>!sR;fsTwG^W4PIr5#w>A$=GmPy@93jvh;vPBZbYKIV{(DY- zGOwzxKwjK6Nb#Ap%vQ?;4UifjzaANQeRh8CJbDCrFp~fMn+u--PJe%nUZUJB!dijx zIC})@z=A#q_S$p<(L%5tj0~K-K0Wn5hJW&Zxcu?TzlAt8khgaiyvamy!ho*8fNg;8 z9E~ZAf4#n86mhKg=S!+(nwH88k*kn>9VMke_tMx^=T>JG4`|qK!On-~6 zfW<6h?{^`Ff#YN8_U`=dmb`LwboK7y&5>Wfxc?pslf3gS`eOyMnqBGA?fbvp-`PihGvhJepFgnI0JsbV<8J7n&yL63e;?2l z2&11kxI3qBKA=A%^!wS?k01zwAb$vg#Ls=&0>YB0frl8zypLm0kQgQd446Zro$Vod z2lxL(J|t(d2V!BI2*%u*%)n$T|y|0;``__-@9J{Qv*}07*qoM6N<$g646I8UO$Q From a1935aaf6df07d7f86fa62c8beb78bcf6ac40ee1 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 24 Apr 2023 20:31:55 +0200 Subject: [PATCH 07/25] silicon knife to kitchen toolset --- code/game/objects/items/kitchen.dm | 4 ++-- code/game/objects/items/robot/robot_upgrades.dm | 4 ++-- code/modules/research/designs/mechfabricator_designs.dm | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 88eb2c03d5b0a7..81c5cbc75fceb4 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -103,9 +103,9 @@ AddElement(/datum/element/easily_fragmented, PLASTIC_BREAK_PROBABILITY) /obj/item/knife/kitchen/silicon - name= "Silicon Knife" + name= "Kitchen Toolset" icon_state = "SiliKnife" - desc = "A breakthrough in synthetic engineering, this cyborg tool is programmed to dull when not used for cooking purposes, and can exchange the blade for a rolling pin" + desc = "A breakthrough in synthetic engineering, this tool is a knife programmed to dull when not used for cooking purposes, and can exchange the blade for a rolling pin" force = 0 throwforce = 0 sharpness = SHARP_EDGED diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 4063360ae364f0..1a53b0c7dd0cfc 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -779,7 +779,7 @@ R.model.remove_module(CS, TRUE) /obj/item/borg/upgrade/siliconknife - name = "Service Cyborg silicon Knife" + name = "Service Cyborg Kitchen Toolset" desc = "An upgrade to the service model cyborg, to help process foods" icon_state = "cyborg_upgrade3" require_model = TRUE @@ -791,7 +791,7 @@ if(.) var/obj/item/knife/kitchen/silicon/SK = locate() in R.model.modules if(SK) - to_chat(user, span_warning("This unit has no room for another silicon knife!")) + to_chat(user, span_warning("This unit has no room for another Kitchen toolset!")) return FALSE SK = new(R.model) R.model.basic_modules += SK diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 09abe29322df1c..cf6b233006e3f0 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1171,7 +1171,7 @@ ) /datum/design/borg_upgrade_siliconknife - name = "Silicon Knife" + name = "Kitchen toolset" id = "borg_upgrade_siliconknife" build_type = MECHFAB build_path = /obj/item/borg/upgrade/siliconknife From 33603034bb13eee767f57b240d0fd6550e15e3ae Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 24 Apr 2023 20:47:14 +0200 Subject: [PATCH 08/25] LINT --- code/game/objects/items/robot/items/storage.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/robot/items/storage.dm b/code/game/objects/items/robot/items/storage.dm index e3443a2ddf1c77..a7c458e9ee7769 100644 --- a/code/game/objects/items/robot/items/storage.dm +++ b/code/game/objects/items/robot/items/storage.dm @@ -330,4 +330,4 @@ . = ..() if(stored) . += "The apparatus currently has [stored] secured." - . += span_notice(" Alt-click will drop the currently secured item. ") \ No newline at end of file + . += span_notice(" Alt-click will drop the currently secured item.") From 7efd4a96ec54e375228596b3805483105eb576ca Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 24 Apr 2023 22:52:48 +0200 Subject: [PATCH 09/25] Added papercups to the RSF ... Sillycup? Really? --- code/game/objects/items/rcd/RSF.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index 473a2b15719950..4bd6d46fc633d8 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -32,6 +32,7 @@ RSF w_class = WEIGHT_CLASS_NORMAL ///An associated list of atoms and charge costs. This can contain a separate list, as long as it's associated item is an object var/list/cost_by_item = list(/obj/item/reagent_containers/cup/glass/drinkingglass = 20, + /obj/item/cup/glass/sillycup = 10, /obj/item/paper = 10, /obj/item/storage/dice = 200, /obj/item/pen = 50, From c06b9d247cf4f5a34f6d33497f154b8618ccb9a6 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 24 Apr 2023 22:59:17 +0200 Subject: [PATCH 10/25] Whoops --- code/game/objects/items/rcd/RSF.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index 4bd6d46fc633d8..227e2eb467456a 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -32,7 +32,7 @@ RSF w_class = WEIGHT_CLASS_NORMAL ///An associated list of atoms and charge costs. This can contain a separate list, as long as it's associated item is an object var/list/cost_by_item = list(/obj/item/reagent_containers/cup/glass/drinkingglass = 20, - /obj/item/cup/glass/sillycup = 10, + /obj/item/reagent_containers/cup/glass/sillycup = 10, /obj/item/paper = 10, /obj/item/storage/dice = 200, /obj/item/pen = 50, From 7f801571c1c6959feee4d0a72e3e575f60b4c556 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Tue, 25 Apr 2023 23:33:11 +0200 Subject: [PATCH 11/25] Update hypo.dm Added vinegar to the shaker, exchanged corn syrup for corn oil and corn starch in the condiment synthesizer --- code/game/objects/items/robot/items/hypo.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index de8c19c5c447d0..75777b4e4c808b 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -61,7 +61,7 @@ /datum/reagent/consumable/sodawater, /datum/reagent/consumable/sol_dry, /datum/reagent/consumable/soymilk,\ /datum/reagent/consumable/space_cola, /datum/reagent/consumable/spacemountainwind, /datum/reagent/consumable/space_up,\ /datum/reagent/consumable/tea, /datum/reagent/consumable/tomatojuice, /datum/reagent/consumable/tonic,\ - /datum/reagent/water,\ + /datum/reagent/consumable/vinegar, /datum/reagent/water,\ /datum/reagent/consumable/ethanol/ale, /datum/reagent/consumable/ethanol/applejack, /datum/reagent/consumable/ethanol/beer,\ /datum/reagent/consumable/ethanol/champagne, /datum/reagent/consumable/ethanol/cognac, /datum/reagent/consumable/ethanol/creme_de_coconut,\ /datum/reagent/consumable/ethanol/creme_de_cacao, /datum/reagent/consumable/ethanol/creme_de_menthe, /datum/reagent/consumable/ethanol/gin,\ @@ -69,9 +69,10 @@ /datum/reagent/consumable/ethanol/tequila, /datum/reagent/consumable/ethanol/triple_sec, /datum/reagent/consumable/ethanol/vermouth,\ /datum/reagent/consumable/ethanol/vodka, /datum/reagent/consumable/ethanol/whiskey, /datum/reagent/consumable/ethanol/wine\ ) -#define EXPANDED_SERVICE_REAGENTS list (/datum/reagent/consumable/flour, /datum/reagent/consumable/cornmeal, /datum/reagent/consumable/corn_syrup,\ - /datum/reagent/consumable/rice, /datum/reagent/consumable/salt, /datum/reagent/consumable/blackpepper, /datum/reagent/consumable/sugar,\ - /datum/reagent/consumable/coco, /datum/reagent/consumable/vanilla, /datum/reagent/consumable/eggwhite, /datum/reagent/consumable/eggyolk\ +#define EXPANDED_SERVICE_REAGENTS list (/datum/reagent/consumable/flour, /datum/reagent/consumable/rice, /datum/reagent/consumable/salt,\ + /datum/reagent/consumable/blackpepper, /datum/reagent/consumable/sugar, /datum/reagent/consumable/coco, /datum/reagent/consumable/vanilla,\ + /datum/reagent/consumable/cornmeal, /datum/reagent/consumable/corn_starch, /datum/reagent/consumable/cornoil, /datum/reagent/consumable/eggwhite,\ + /datum/reagent/consumable/eggyolk\ ) #define HACKED_SERVICE_REAGENTS list(\ /datum/reagent/toxin/fakebeer,\ From 62dad861e294c3c21d6b5bc32563bde0c2474a7a Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Tue, 25 Apr 2023 23:37:10 +0200 Subject: [PATCH 12/25] LINT --- code/game/objects/items/robot/items/hypo.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index 75777b4e4c808b..d391473aaa08a0 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -70,9 +70,9 @@ /datum/reagent/consumable/ethanol/vodka, /datum/reagent/consumable/ethanol/whiskey, /datum/reagent/consumable/ethanol/wine\ ) #define EXPANDED_SERVICE_REAGENTS list (/datum/reagent/consumable/flour, /datum/reagent/consumable/rice, /datum/reagent/consumable/salt,\ - /datum/reagent/consumable/blackpepper, /datum/reagent/consumable/sugar, /datum/reagent/consumable/coco, /datum/reagent/consumable/vanilla,\ - /datum/reagent/consumable/cornmeal, /datum/reagent/consumable/corn_starch, /datum/reagent/consumable/cornoil, /datum/reagent/consumable/eggwhite,\ - /datum/reagent/consumable/eggyolk\ + /datum/reagent/consumable/blackpepper, /datum/reagent/consumable/sugar, /datum/reagent/consumable/coco, /datum/reagent/consumable/vanilla,\ + /datum/reagent/consumable/cornmeal, /datum/reagent/consumable/corn_starch, /datum/reagent/consumable/cornoil, /datum/reagent/consumable/eggwhite,\ + /datum/reagent/consumable/eggyolk\ ) #define HACKED_SERVICE_REAGENTS list(\ /datum/reagent/toxin/fakebeer,\ From 6cc95217ddcfcb36d3f6b33622d16f6140c69748 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Fri, 28 Apr 2023 17:42:35 +0200 Subject: [PATCH 13/25] Update kitchen.dmi Got the brand spankin new grinder sprites to avoid the merge conflict --- icons/obj/kitchen.dmi | Bin 30987 -> 31124 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index b3d407c87d8e6ba1796cc8ea83153c581bba305b..08e1a6df7f6c7f91b0a3d7d267464ee1416b08a3 100644 GIT binary patch delta 30576 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 From 6af47c36ccb2887a5a42c7c5df6bd080c1bf2ff8 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Fri, 28 Apr 2023 18:55:31 +0200 Subject: [PATCH 14/25] Update hypo.dm C'mon check out already --- code/game/objects/items/robot/items/hypo.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index d391473aaa08a0..07266b81deb149 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -315,7 +315,6 @@ dispensed_temperature = WATER_MATTERSTATE_CHANGE_TEMP //Water stays wet, ice stays ice default_reagent_types = BASE_SERVICE_REAGENTS expanded_reagent_types = EXPANDED_SERVICE_REAGENTS - /obj/item/reagent_containers/borghypo/borgshaker/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) From 482106d6ec55b2106d4b55f5e952ef3a07e00d59 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Sun, 30 Apr 2023 17:07:02 +0200 Subject: [PATCH 15/25] AAAAAAAAAAAAA --- code/__DEFINES/tools.dm | 2 +- code/game/objects/items/kitchen.dm | 10 +- code/game/objects/items/rcd/RSF.dm | 26 ++-- code/game/objects/items/robot/items/hypo.dm | 64 ++++---- .../game/objects/items/robot/items/storage.dm | 9 +- .../objects/items/robot/robot_upgrades.dm | 137 +++++++++--------- code/game/objects/items/rollertable_dock.dm | 59 ++++---- .../designs/mechfabricator_designs.dm | 32 ++-- code/modules/research/techweb/all_nodes.dm | 8 +- icons/obj/kitchen.dmi | Bin 29939 -> 31115 bytes 10 files changed, 181 insertions(+), 166 deletions(-) diff --git a/code/__DEFINES/tools.dm b/code/__DEFINES/tools.dm index 76031d5a383066..591aa22aa2babf 100644 --- a/code/__DEFINES/tools.dm +++ b/code/__DEFINES/tools.dm @@ -17,7 +17,7 @@ #define TOOL_BONESET "bonesetter" #define TOOL_KNIFE "knife" #define TOOL_BLOODFILTER "bloodfilter" -#define TOOL_ROLLINGPIN "rollingpin" +#define TOOL_ROLLINGPIN "rolling pin" /// Can be used to scrape rust off an any atom; which will result in the Rust Component being qdel'd #define TOOL_RUSTSCRAPER "rustscraper" diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 81c5cbc75fceb4..0de447d09514d8 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -103,8 +103,8 @@ AddElement(/datum/element/easily_fragmented, PLASTIC_BREAK_PROBABILITY) /obj/item/knife/kitchen/silicon - name= "Kitchen Toolset" - icon_state = "SiliKnife" + name = "Kitchen Toolset" + icon_state = "sili_knife" desc = "A breakthrough in synthetic engineering, this tool is a knife programmed to dull when not used for cooking purposes, and can exchange the blade for a rolling pin" force = 0 throwforce = 0 @@ -117,14 +117,14 @@ /obj/item/knife/kitchen/silicon/examine() . = ..() - . += " It's fitted with a [tool_behaviour == TOOL_KNIFE ? "knife" : "rolling pin"] head." + . += " It's fitted with a [tool_behaviour] head." /obj/item/knife/kitchen/silicon/attack_self(mob/user) playsound(get_turf(user), 'sound/items/change_drill.ogg', 50, TRUE) if(tool_behaviour != TOOL_ROLLINGPIN) tool_behaviour = TOOL_ROLLINGPIN to_chat(user, span_notice("You attach the rolling pin bit to the [src].")) - icon_state = "SiliRollingpin" + icon_state = "sili_rolling_pin" force = 8 sharpness = NONE hitsound = SFX_SWING_HIT @@ -134,7 +134,7 @@ else tool_behaviour = TOOL_KNIFE to_chat(user, span_notice("You attach the knife bit to the [src].")) - icon_state = "SiliKnife" + icon_state = "sili_knife" force = 0 sharpness = SHARP_EDGED hitsound = 'sound/weapons/bladeslice.ogg' diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index 227e2eb467456a..6c830bdfcae56e 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -31,18 +31,20 @@ RSF var/dispense_cost = 0 w_class = WEIGHT_CLASS_NORMAL ///An associated list of atoms and charge costs. This can contain a separate list, as long as it's associated item is an object - var/list/cost_by_item = list(/obj/item/reagent_containers/cup/glass/drinkingglass = 20, - /obj/item/reagent_containers/cup/glass/sillycup = 10, - /obj/item/paper = 10, - /obj/item/storage/dice = 200, - /obj/item/pen = 50, - /obj/item/clothing/mask/cigarette = 10, - /obj/item/plate = 70, - /obj/item/reagent_containers/cup/bowl = 70, - /obj/item/kitchen/fork/plastic = 30, - /obj/item/knife/plastic = 30, - /obj/item/kitchen/spoon/plastic = 30, - ) + var/list/cost_by_item = list( + /obj/item/reagent_containers/cup/glass/drinkingglass = 20, + /obj/item/reagent_containers/cup/glass/sillycup = 10, + /obj/item/paper = 10, + /obj/item/storage/dice = 200, + /obj/item/toy/cards/deck = 200, + /obj/item/pen = 50, + /obj/item/clothing/mask/cigarette = 10, + /obj/item/plate = 70, + /obj/item/reagent_containers/cup/bowl = 70, + /obj/item/kitchen/fork/plastic = 30, + /obj/item/knife/plastic = 30, + /obj/item/kitchen/spoon/plastic = 30, + ) ///An associated list of fuel and it's value var/list/matter_by_item = list(/obj/item/rcd_ammo = 10,) ///A list of surfaces that we are allowed to place things on. diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index 07266b81deb149..a6ba52711fd913 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -69,11 +69,20 @@ /datum/reagent/consumable/ethanol/tequila, /datum/reagent/consumable/ethanol/triple_sec, /datum/reagent/consumable/ethanol/vermouth,\ /datum/reagent/consumable/ethanol/vodka, /datum/reagent/consumable/ethanol/whiskey, /datum/reagent/consumable/ethanol/wine\ ) -#define EXPANDED_SERVICE_REAGENTS list (/datum/reagent/consumable/flour, /datum/reagent/consumable/rice, /datum/reagent/consumable/salt,\ - /datum/reagent/consumable/blackpepper, /datum/reagent/consumable/sugar, /datum/reagent/consumable/coco, /datum/reagent/consumable/vanilla,\ - /datum/reagent/consumable/cornmeal, /datum/reagent/consumable/corn_starch, /datum/reagent/consumable/cornoil, /datum/reagent/consumable/eggwhite,\ - /datum/reagent/consumable/eggyolk\ - ) +#define EXPANDED_SERVICE_REAGENTS list(\ + /datum/reagent/consumable/blackpepper,\ + /datum/reagent/consumable/coco,\ + /datum/reagent/consumable/cornmeal,\ + /datum/reagent/consumable/cornoil,\ + /datum/reagent/consumable/corn_starch,\ + /datum/reagent/consumable/eggwhite,\ + /datum/reagent/consumable/eggyolk,\ + /datum/reagent/consumable/flour,\ + /datum/reagent/consumable/rice,\ + /datum/reagent/consumable/sugar,\ + /datum/reagent/consumable/salt,\ + /datum/reagent/consumable/vanilla,\ +) #define HACKED_SERVICE_REAGENTS list(\ /datum/reagent/toxin/fakebeer,\ /datum/reagent/consumable/ethanol/fernet\ @@ -375,7 +384,7 @@ balloon_alert(user, "[amount_per_transfer_from_this] unit\s poured") return . -/obj/item/reagent_containers/borghypo/condimentsynthesizer // Solids! Condiments! The borger uprising! +/obj/item/reagent_containers/borghypo/condiment_synthesizer // Solids! Condiments! The borger uprising! name = "Condiment Synthesizer" desc = "An advanced condiment synthesizer" icon = 'icons/obj/food/containers.dmi' @@ -387,19 +396,20 @@ dispensed_temperature = WATER_MATTERSTATE_CHANGE_TEMP default_reagent_types = EXPANDED_SERVICE_REAGENTS -/obj/item/reagent_containers/borghypo/condimentsynthesizer/ui_interact(mob/user, datum/tgui/ui) +/obj/item/reagent_containers/borghypo/condiment_synthesizer/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) ui = new(user, src, "BorgHypo", name) ui.open() -/obj/item/reagent_containers/borghypo/condimentsynthesizer/ui_data(mob/user) +/obj/item/reagent_containers/borghypo/condiment_synthesizer/ui_data(mob/user) var/list/condiments = list() for(var/datum/reagent/reagent in stored_reagents.reagent_list) if(reagent) condiments.Add(list(list( "name" = reagent.name, "volume" = round(reagent.volume, 0.01) - 1, + "description" = reagent.description, ))) // list in a list because Byond merges the first list... var/data = list() @@ -410,10 +420,10 @@ data["selectedReagent"] = selected_reagent?.name return data -/obj/item/reagent_containers/borghypo/condimentbag/attack(mob/M, mob/user) - return //Can't inject stuff with a shaker, can we? //not with that attitude +/obj/item/reagent_containers/borghypo/condiment_synthesizer/attack(mob/M, mob/user) + return -/obj/item/reagent_containers/borghypo/condimentsynthesizer/afterattack(obj/target, mob/user, proximity) +/obj/item/reagent_containers/borghypo/condiment_synthesizer/afterattack(obj/target, mob/user, proximity) . = ..() if(!proximity) return . @@ -421,22 +431,22 @@ balloon_alert(user, "no reagent selected!") return . . |= AFTERATTACK_PROCESSED_ITEM - if(target.is_refillable()) - if(!stored_reagents.has_reagent(selected_reagent.type, amount_per_transfer_from_this)) - balloon_alert(user, "not enough [selected_reagent.name]!") - return . - if(target.reagents.total_volume >= target.reagents.maximum_volume) - balloon_alert(user, "[target] is full!") - return . - - // This is the in-between where we're storing the reagent we're going to pour into the container - // because we cannot specify a singular reagent to transfer in trans_to - var/datum/reagents/shaker = new() - stored_reagents.remove_reagent(selected_reagent.type, amount_per_transfer_from_this) - shaker.add_reagent(selected_reagent.type, amount_per_transfer_from_this, reagtemp = dispensed_temperature, no_react = TRUE) - shaker.trans_to(target, amount_per_transfer_from_this, transfered_by = user) - balloon_alert(user, "[amount_per_transfer_from_this] unit\s poured") - return . + if(!target.is_refillable()) + return . + if(!stored_reagents.has_reagent(selected_reagent.type, amount_per_transfer_from_this)) + balloon_alert(user, "not enough [selected_reagent.name]!") + return . + if(target.reagents.total_volume >= target.reagents.maximum_volume) + balloon_alert(user, "[target] is full!") + return . + // This is the in-between where we're storing the reagent we're going to pour into the container + // because we cannot specify a singular reagent to transfer in trans_to + var/datum/reagents/shaker = new() + stored_reagents.remove_reagent(selected_reagent.type, amount_per_transfer_from_this) + shaker.add_reagent(selected_reagent.type, amount_per_transfer_from_this, reagtemp = dispensed_temperature, no_react = TRUE) + shaker.trans_to(target, amount_per_transfer_from_this, transfered_by = user) + balloon_alert(user, "[amount_per_transfer_from_this] unit\s poured") + /obj/item/reagent_containers/borghypo/borgshaker/hacked name = "cyborg shaker" diff --git a/code/game/objects/items/robot/items/storage.dm b/code/game/objects/items/robot/items/storage.dm index a7c458e9ee7769..f57b91d3204e2b 100644 --- a/code/game/objects/items/robot/items/storage.dm +++ b/code/game/objects/items/robot/items/storage.dm @@ -303,10 +303,11 @@ /obj/item/borg/apparatus/service name = "Service apparatus" - desc = "A special apparatus for carrying food and oven trays" + desc = "A special apparatus for carrying food, oven trays and paper" icon_state = "borg_service_apparatus" - storable = list(/obj/item/plate/oven_tray, - /obj/item/food) + storable = list(/obj/item/food, + /obj/item/paper, + /obj/item/plate/oven_tray) /obj/item/borg/apparatus/service/Initialize(mapload) update_appearance() @@ -330,4 +331,4 @@ . = ..() if(stored) . += "The apparatus currently has [stored] secured." - . += span_notice(" Alt-click will drop the currently secured item.") + . += span_notice("Alt-click will drop the currently secured item.") diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 1a53b0c7dd0cfc..fff81331c97c92 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -751,110 +751,117 @@ if (BR) R.model.remove_module(BR, TRUE) -/obj/item/borg/upgrade/condimentsynthesizer +/obj/item/borg/upgrade/condiment_synthesizer name = "Service Cyborg Condiment Synthesiser" - desc = "An upgrade to the service model cyborg, allowing it \ - to produce solid condiments." + desc = "An upgrade to the service model cyborg, allowing it to produce solid condiments." icon_state = "cyborg_upgrade3" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE -/obj/item/borg/upgrade/condimentsynthesizer/action(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/condiment_synthesizer/action(mob/living/silicon/robot/install, user = usr) . = ..() - if(.) - var/obj/item/reagent_containers/borghypo/condimentsynthesizer/CS = locate() in R.model.modules - if(CS) - to_chat(user, span_warning("This unit has no room for another condiment synthesizer!")) - return FALSE - CS = new(R.model) - R.model.basic_modules += CS - R.model.add_module(CS, FALSE, TRUE) + if(!.) + return FALSE + var/obj/item/reagent_containers/borghypo/condiment_synthesizer/cynthesizer = locate() in install.model.modules + if(cynthesizer) + install.balloon_alert_to_viewers("already installed!") + return FALSE + cynthesizer = new(install.model) + install.model.basic_modules += cynthesizer + install.model.add_module(cynthesizer, FALSE, TRUE) -/obj/item/borg/upgrade/condimentsynthesizer/deactivate(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/condiment_synthesizer/deactivate(mob/living/silicon/robot/install, user = usr) . = ..() - if (.) - var/obj/item/reagent_containers/borghypo/condimentsynthesizer/CS = locate() in R.model.modules - if (CS) - R.model.remove_module(CS, TRUE) + if (!.) + return FALSE + var/obj/item/reagent_containers/borghypo/condiment_synthesizer/cynthesizer = locate() in install.model.modules + if (cynthesizer) + install.model.remove_module(cynthesizer, TRUE) -/obj/item/borg/upgrade/siliconknife +/obj/item/borg/upgrade/silicon_knife name = "Service Cyborg Kitchen Toolset" - desc = "An upgrade to the service model cyborg, to help process foods" + desc = "An upgrade to the service model cyborg, to help process foods." icon_state = "cyborg_upgrade3" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE -/obj/item/borg/upgrade/siliconknife/action(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/silicon_knife/action(mob/living/silicon/robot/install, user = usr) . = ..() - if(.) - var/obj/item/knife/kitchen/silicon/SK = locate() in R.model.modules - if(SK) - to_chat(user, span_warning("This unit has no room for another Kitchen toolset!")) - return FALSE - SK = new(R.model) - R.model.basic_modules += SK - R.model.add_module(SK, FALSE, TRUE) + if(!.) + return FALSE + var/obj/item/knife/kitchen/silicon/snife = locate() in install.model.modules + if(snife) + install.balloon_alert_to_viewers("already installed!") + return FALSE + snife = new(install.model) + install.model.basic_modules += snife + install.model.add_module(snife, FALSE, TRUE) -/obj/item/borg/upgrade/siliconknife/deactivate(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/silicon_knife/deactivate(mob/living/silicon/robot/install, user = usr) . = ..() - if (.) - var/obj/item/knife/kitchen/silicon/SK = locate() in R.model.modules - if (SK) - R.model.remove_module(SK, TRUE) + if (!.) + return FALSE + var/obj/item/knife/kitchen/silicon/snife = locate() in install.model.modules + if (snife) + install.model.remove_module(snife, TRUE) -/obj/item/borg/upgrade/serviceapparatus +/obj/item/borg/upgrade/service_apparatus name = "Service Cyborg Service Apparatus" - desc = "An upgrade to the service model cyborg, to help handle foods" + desc = "An upgrade to the service model cyborg, to help handle foods and paper." icon_state = "cyborg_upgrade3" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE -/obj/item/borg/upgrade/serviceapparatus/action(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/service_apparatus/action(mob/living/silicon/robot/install, user = usr) . = ..() - if(.) - var/obj/item/borg/apparatus/service/RP = locate() in R.model.modules - if(RP) - to_chat(user, span_warning("This unit has no room for another service apparatus!")) - return FALSE - RP = new(R.model) - R.model.basic_modules += RP - R.model.add_module(RP, FALSE, TRUE) + if(!.) + return FALSE + var/obj/item/borg/apparatus/service/saparatus = locate() in install.model.modules + if(saparatus) + install.balloon_alert_to_viewers("already installed!") + return FALSE + saparatus = new(install.model) + install.model.basic_modules += saparatus + install.model.add_module(saparatus, FALSE, TRUE) -/obj/item/borg/upgrade/serviceapparatus/deactivate(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/service_apparatus/deactivate(mob/living/silicon/robot/install, user = usr) . = ..() - if (.) - var/obj/item/borg/apparatus/service/RP = locate() in R.model.modules - if (RP) - R.model.remove_module(RP, TRUE) + if (!.) + return FALSE + var/obj/item/borg/apparatus/service/saparatus = locate() in install.model.modules + if (saparatus) + install.model.remove_module(saparatus, TRUE) -/obj/item/borg/upgrade/rollingtable +/obj/item/borg/upgrade/rolling_table name = "Service Cyborg Rolling Table Dock" - desc = "An upgrade to the service model cyborg, to help provide mobile service" + desc = "An upgrade to the service model cyborg, to help provide mobile service." icon_state = "cyborg_upgrade3" require_model = TRUE model_type = list(/obj/item/robot_model/service) model_flags = BORG_MODEL_SERVICE -/obj/item/borg/upgrade/rollingtable/action(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/rolling_table/action(mob/living/silicon/robot/install, user = usr) . = ..() - if(.) - var/obj/item/rollingtable_dock/RT = locate() in R.model.modules - if(RT) - to_chat(user, span_warning("This unit has no room for another rolling table dock!")) - return FALSE - RT = new(R.model) - R.model.basic_modules += RT - R.model.add_module(RT, FALSE, TRUE) + if(!.) + return FALSE + var/obj/item/rolling_table_dock/rtable = locate() in install.model.modules + if(rtable) + install.balloon_alert_to_viewers("already installed!") + return FALSE + rtable = new(install.model) + install.model.basic_modules += rtable + install.model.add_module(rtable, FALSE, TRUE) -/obj/item/borg/upgrade/rollingtable/deactivate(mob/living/silicon/robot/R, user = usr) +/obj/item/borg/upgrade/rolling_table/deactivate(mob/living/silicon/robot/install, user = usr) . = ..() - if (.) - var/obj/item/rollingtable_dock/RT = locate() in R.model.modules - if (RT) - R.model.remove_module(RT, TRUE) + if (!.) + return FALSE + var/obj/item/rolling_table_dock/rtable = locate() in install.model.modules + if (rtable) + install.model.remove_module(rtable, TRUE) ///This isn't an upgrade or part of the same path, but I'm gonna just stick it here because it's a tool used on cyborgs. //A reusable tool that can bring borgs back to life. They gotta be repaired first, though. diff --git a/code/game/objects/items/rollertable_dock.dm b/code/game/objects/items/rollertable_dock.dm index 89bbe83e30d25c..90325036e470d1 100644 --- a/code/game/objects/items/rollertable_dock.dm +++ b/code/game/objects/items/rollertable_dock.dm @@ -1,57 +1,52 @@ -/obj/item/rollingtable_dock +/obj/item/rolling_table_dock name = "rolling table dock" desc = "A collapsed roller table that can be ejected for service on the go. Must be collected or replaced after use." icon = 'icons/obj/smooth_structures/rollingtable.dmi' icon_state = "rollingtable" var/obj/structure/table/rolling/loaded = null -/obj/item/rollingtable_dock/Initialize(mapload) +/obj/item/rolling_table_dock/Initialize(mapload) . = ..() loaded = new(src) -/obj/structure/table/rolling/attackby(obj/item/WT, mob/user, params) - if(istype(WT, /obj/item/rollingtable_dock)) - var/obj/item/rollingtable_dock/RT = WT - var/turf/target_table = get_turf(src) - if(RT.loaded) - to_chat(user, span_warning("You already have a roller table docked!")) - return - if(locate(/mob/living) in target_table) - to_chat(user, span_warning("You can't collect the table with that much on top!")) - return - else - RT.loaded = src - forceMove(RT) - user.visible_message(span_notice("[user] collects [src]."), span_notice("You collect [src].")) - return 1 - else +/obj/structure/table/rolling/attackby(obj/item/wtable, mob/user, params) + if(!istype(wtable, /obj/item/rolling_table_dock)) return ..() + var/obj/item/rolling_table_dock/rable = wtable + var/turf/target_table = get_turf(src) + if(rable.loaded) + to_chat(user, span_warning("You already have a roller table docked!")) + return + if(locate(/mob/living) in target_table) + to_chat(user, span_warning("You can't collect the table with that much on top!")) + return + else + rable.loaded = src + forceMove(rable) + user.visible_message(span_notice("[user] collects [src]."), balloon_alert(user, "You collect the [src].")) + return TRUE -/obj/item/rollingtable_dock/afterattack(obj/target, mob/user , proximity) +/obj/item/rolling_table_dock/afterattack(obj/target, mob/user , proximity) . = ..() var/turf/target_turf = get_turf(target) - if(!proximity) - return - if(target_turf.is_blocked_turf(TRUE)) - return - if(locate(/mob/living) in target_turf) + if(!proximity || target_turf.is_blocked_turf(TRUE) || locate(/mob/living) in target_turf) return if(isopenturf(target)) - deploy_rollingtable(user, target) + deploy_rolling_table(user, target) -/obj/item/rollingtable_dock/proc/deploy_rollingtable(mob/user, atom/location) - var/obj/structure/table/rolling/RT = new /obj/structure/table/rolling(location) - RT.add_fingerprint(user) +/obj/item/rolling_table_dock/proc/deploy_rolling_table(mob/user, atom/location) + var/obj/structure/table/rolling/rable = new /obj/structure/table/rolling(location) + rable.add_fingerprint(user) qdel(src) -/obj/item/rollingtable_dock/examine(mob/user) +/obj/item/rolling_table_dock/examine(mob/user) . = ..() . += "The dock is [loaded ? "loaded" : "empty"]." -/obj/item/rollingtable_dock/deploy_rollingtable(mob/user, atom/location) +/obj/item/rolling_table_dock/deploy_rolling_table(mob/user, atom/location) if(loaded) loaded.forceMove(location) - user.visible_message(span_notice("[user] deploys [loaded]."), span_notice("You deploy [loaded].")) + user.visible_message(span_notice("[user] deploys [loaded]."), balloon_alert(user, "You deploy the [loaded].")) loaded = null else - to_chat(user, span_warning("The dock is empty!")) + balloon_alert(user, "The dock is Empty!") diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index cf6b233006e3f0..2d2f0914d12860 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1148,46 +1148,46 @@ RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR ) -/datum/design/borg_upgrade_rollingtable +/datum/design/borg_upgrade_rolling_table name = "Rolling Table Dock" - id = "borg_upgrade_rollingtable" + id = "borg_upgrade_rolling_table" build_type = MECHFAB - build_path = /obj/item/borg/upgrade/rollingtable + build_path = /obj/item/borg/upgrade/rolling_table materials = list(/datum/material/iron = 20000, /datum/material/titanium = 750) //steeper price than a regular rolling table, with some added titanium to make up for the relative rarity of regular rolling tables - construction_time = 40 + construction_time = 4 SECONDS category = list( RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE ) -/datum/design/borg_upgrade_condimentsynthesizer +/datum/design/borg_upgrade_condiment_synthesizer name = "Condiment Synthesizer" - id = "borg_upgrade_condimentsynthesizer" + id = "borg_upgrade_condiment_synthesizer" build_type = MECHFAB - build_path = /obj/item/borg/upgrade/condimentsynthesizer + build_path = /obj/item/borg/upgrade/condiment_synthesizer materials = list(/datum/material/iron = 15000, /datum/material/glass = 12000, /datum/material/plasma = 6000, /datum/material/uranium = 6000) //a bit cheaper than an expanded hypo for medical borg, - construction_time = 40 + construction_time = 4 SECONDS category = list( RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE ) -/datum/design/borg_upgrade_siliconknife +/datum/design/borg_upgrade_silicon_knife name = "Kitchen toolset" - id = "borg_upgrade_siliconknife" + id = "borg_upgrade_silicon_knife" build_type = MECHFAB - build_path = /obj/item/borg/upgrade/siliconknife + build_path = /obj/item/borg/upgrade/silicon_knife materials = list(/datum/material/iron = 15000, /datum/material/gold = 1000, /datum/material/silver = 1000,) - construction_time = 40 + construction_time = 4 SECONDS category = list( RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE ) -/datum/design/borg_upgrade_serviceapparatus +/datum/design/borg_upgrade_service_apparatus name = "Service apparatus" - id = "borg_upgrade_serviceapparatus" + id = "borg_upgrade_service_apparatus" build_type = MECHFAB - build_path = /obj/item/borg/upgrade/serviceapparatus + build_path = /obj/item/borg/upgrade/service_apparatus materials = list(/datum/material/iron = 5000) - construction_time = 40 + construction_time = 4 SECONDS category = list( RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE ) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index a2b012a9f2820c..471371e9cf4602 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -950,10 +950,10 @@ description = "Service upgrades for cyborgs." prereq_ids = list("adv_robotics") design_ids = list( - "borg_upgrade_rollingtable", - "borg_upgrade_condimentsynthesizer", - "borg_upgrade_siliconknife", - "borg_upgrade_serviceapparatus", + "borg_upgrade_rolling_table", + "borg_upgrade_condiment_synthesizer", + "borg_upgrade_silicon_knife", + "borg_upgrade_service_apparatus", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index ca6f7fb189f1150a675f456f9c5e09e3c2cd3e88..4ec74abe726024e691a849fd8b7b6b44bf3c1691 100644 GIT binary patch literal 31115 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 p;pMmBqzx1Xw6_2N literal 29939 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 Ht)BlMwOc;Q From 4aac79d5e704b31c3da30520158bd7c82660c801 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Sun, 30 Apr 2023 17:13:29 +0200 Subject: [PATCH 16/25] LINT --- code/game/objects/items/rollertable_dock.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/rollertable_dock.dm b/code/game/objects/items/rollertable_dock.dm index 90325036e470d1..9c58840077b161 100644 --- a/code/game/objects/items/rollertable_dock.dm +++ b/code/game/objects/items/rollertable_dock.dm @@ -23,7 +23,7 @@ else rable.loaded = src forceMove(rable) - user.visible_message(span_notice("[user] collects [src]."), balloon_alert(user, "You collect the [src].")) + user.visible_message(span_notice("[user] collects [src]."), balloon_alert(user, "you collect the [src].")) return TRUE /obj/item/rolling_table_dock/afterattack(obj/target, mob/user , proximity) @@ -46,7 +46,7 @@ /obj/item/rolling_table_dock/deploy_rolling_table(mob/user, atom/location) if(loaded) loaded.forceMove(location) - user.visible_message(span_notice("[user] deploys [loaded]."), balloon_alert(user, "You deploy the [loaded].")) + user.visible_message(span_notice("[user] deploys [loaded]."), balloon_alert(user, "you deploy the [loaded].")) loaded = null else balloon_alert(user, "The dock is Empty!") From 76ea2d023e34bb84bbc287f1eb63e019e05b64c8 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Sun, 30 Apr 2023 17:14:09 +0200 Subject: [PATCH 17/25] MORE LINT --- code/game/objects/items/rollertable_dock.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/rollertable_dock.dm b/code/game/objects/items/rollertable_dock.dm index 9c58840077b161..222c8287ac93af 100644 --- a/code/game/objects/items/rollertable_dock.dm +++ b/code/game/objects/items/rollertable_dock.dm @@ -49,4 +49,4 @@ user.visible_message(span_notice("[user] deploys [loaded]."), balloon_alert(user, "you deploy the [loaded].")) loaded = null else - balloon_alert(user, "The dock is Empty!") + balloon_alert(user, "the dock is Empty!") From 5ad47ca1ae5a11c0f8eef29c7de66ce737ff17af Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Sun, 30 Apr 2023 19:00:53 +0200 Subject: [PATCH 18/25] Update kitchen.dm Removing the drill use sound, it's silly to hear a drill when you're using a knife. --- code/game/objects/items/kitchen.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 0de447d09514d8..04990f7d4bd231 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -109,7 +109,6 @@ force = 0 throwforce = 0 sharpness = SHARP_EDGED - usesound = 'sound/items/drill_use.ogg' hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("prods", "whiffs", "scratches", "pokes") attack_verb_simple = list("prod", "whiff", "scratch", "poke") From 2f27b42da25963ebdea4bc48e8132cd7809c7a0e Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 1 May 2023 10:35:46 +0200 Subject: [PATCH 19/25] Multi-line? --- code/game/objects/items/rcd/RSF.dm | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index 6c830bdfcae56e..179b9f747e860c 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -31,19 +31,19 @@ RSF var/dispense_cost = 0 w_class = WEIGHT_CLASS_NORMAL ///An associated list of atoms and charge costs. This can contain a separate list, as long as it's associated item is an object - var/list/cost_by_item = list( - /obj/item/reagent_containers/cup/glass/drinkingglass = 20, - /obj/item/reagent_containers/cup/glass/sillycup = 10, - /obj/item/paper = 10, - /obj/item/storage/dice = 200, - /obj/item/toy/cards/deck = 200, - /obj/item/pen = 50, - /obj/item/clothing/mask/cigarette = 10, - /obj/item/plate = 70, - /obj/item/reagent_containers/cup/bowl = 70, - /obj/item/kitchen/fork/plastic = 30, - /obj/item/knife/plastic = 30, - /obj/item/kitchen/spoon/plastic = 30, + var/list/cost_by_item = list(\ + /obj/item/reagent_containers/cup/glass/drinkingglass = 20,\ + /obj/item/reagent_containers/cup/glass/sillycup = 10,\ + /obj/item/storage/dice = 200,\ + /obj/item/toy/cards/deck = 200,\ + /obj/item/paper = 10,\ + /obj/item/pen = 50,\ + /obj/item/clothing/mask/cigarette = 10,\ + /obj/item/plate = 70,\ + /obj/item/reagent_containers/cup/bowl = 70,\ + /obj/item/kitchen/fork/plastic = 30,\ + /obj/item/knife/plastic = 30,\ + /obj/item/kitchen/spoon/plastic = 30,\ ) ///An associated list of fuel and it's value var/list/matter_by_item = list(/obj/item/rcd_ammo = 10,) From 66cfa9c413f428b88c712b1563f7383ac8015d3d Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 1 May 2023 12:52:06 +0200 Subject: [PATCH 20/25] comment Just explaining above the code why it's not alphabetical, but rather sorted by category due to how it shows in player facing ui --- code/game/objects/items/rcd/RSF.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index 179b9f747e860c..c468648b4133ab 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -31,6 +31,7 @@ RSF var/dispense_cost = 0 w_class = WEIGHT_CLASS_NORMAL ///An associated list of atoms and charge costs. This can contain a separate list, as long as it's associated item is an object + ///The RSF item list below shows in the player facing ui in this order, this is why it isn't in alphabetical order, but rather sorted by category var/list/cost_by_item = list(\ /obj/item/reagent_containers/cup/glass/drinkingglass = 20,\ /obj/item/reagent_containers/cup/glass/sillycup = 10,\ From d8828e58de81873498b72b78c2d8d8909e4f303d Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 1 May 2023 17:43:09 +0200 Subject: [PATCH 21/25] Last minute changes Enabled the borgshaker and condiment synthesizer to be able to pour 1 unit at a time, and made the service apparatus able to also hold plates, bowls, and soup pots. --- code/game/objects/items/robot/items/hypo.dm | 4 ++-- code/game/objects/items/robot/items/storage.dm | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index a6ba52711fd913..b65034fac0d9fa 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -317,7 +317,7 @@ desc = "An advanced drink synthesizer and mixer." icon = 'icons/obj/drinks/bottles.dmi' icon_state = "shaker" - possible_transfer_amounts = list(5,10,20) + possible_transfer_amounts = list(5,10,20,1) // Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. charge_cost = 20 recharge_time = 3 @@ -389,7 +389,7 @@ desc = "An advanced condiment synthesizer" icon = 'icons/obj/food/containers.dmi' icon_state = "flour" - possible_transfer_amounts = list(5,10,20) + possible_transfer_amounts = list(5,10,20,1) // Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. charge_cost = 40 //Costs double the power of the borgshaker due to synthesizing solids recharge_time = 6 //Double the recharge time too, for the same reason. diff --git a/code/game/objects/items/robot/items/storage.dm b/code/game/objects/items/robot/items/storage.dm index f57b91d3204e2b..bb55236cf0c37f 100644 --- a/code/game/objects/items/robot/items/storage.dm +++ b/code/game/objects/items/robot/items/storage.dm @@ -303,11 +303,16 @@ /obj/item/borg/apparatus/service name = "Service apparatus" - desc = "A special apparatus for carrying food, oven trays and paper" + desc = "A special apparatus for carrying food, bowls, plates, oven trays, soup pots and paper." icon_state = "borg_service_apparatus" - storable = list(/obj/item/food, - /obj/item/paper, - /obj/item/plate/oven_tray) + storable = list( + /obj/item/reagent_containers/cup/bowl,\ + /obj/item/food,\ + /obj/item/plate/oven_tray,\ + /obj/item/paper,\ + /obj/item/plate,\ + /obj/item/reagent_containers/cup/soup_pot,\ +) /obj/item/borg/apparatus/service/Initialize(mapload) update_appearance() From 8eed643be694feb685de85045ca10570abf38c88 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 1 May 2023 19:19:04 +0200 Subject: [PATCH 22/25] More last minute changes Adjusted so the first page of the RSF is the cups, bowl, plate and cutlery, while the second page is the misc stuff. Also added seaweed sheets to it. --- code/game/objects/items/rcd/RSF.dm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index c468648b4133ab..677c63e343d264 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -35,16 +35,17 @@ RSF var/list/cost_by_item = list(\ /obj/item/reagent_containers/cup/glass/drinkingglass = 20,\ /obj/item/reagent_containers/cup/glass/sillycup = 10,\ - /obj/item/storage/dice = 200,\ - /obj/item/toy/cards/deck = 200,\ - /obj/item/paper = 10,\ - /obj/item/pen = 50,\ - /obj/item/clothing/mask/cigarette = 10,\ /obj/item/plate = 70,\ /obj/item/reagent_containers/cup/bowl = 70,\ /obj/item/kitchen/fork/plastic = 30,\ /obj/item/knife/plastic = 30,\ /obj/item/kitchen/spoon/plastic = 30,\ + /obj/item/food/seaweedsheet = 30,\ + /obj/item/storage/dice = 200,\ + /obj/item/toy/cards/deck = 200,\ + /obj/item/paper = 10,\ + /obj/item/pen = 50,\ + /obj/item/clothing/mask/cigarette = 10,\ ) ///An associated list of fuel and it's value var/list/matter_by_item = list(/obj/item/rcd_ammo = 10,) From 8e128074fa4f5c78593de0dbc3c7c6faafbf4730 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Mon, 1 May 2023 21:47:35 +0200 Subject: [PATCH 23/25] Even more last minute changes. How many minutes are you gonna give me? Anyway, adds blood and carpotoxin to the emagged borgshaker. --- code/game/objects/items/robot/items/hypo.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index b65034fac0d9fa..652306f574e547 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -84,8 +84,10 @@ /datum/reagent/consumable/vanilla,\ ) #define HACKED_SERVICE_REAGENTS list(\ + /datum/reagent/blood,\ + /datum/reagent/toxin/carpotoxin,\ /datum/reagent/toxin/fakebeer,\ - /datum/reagent/consumable/ethanol/fernet\ + /datum/reagent/consumable/ethanol/fernet,\ ) ///Borg Hypospray From 43f03b3fc19af83d59a7e1442aa41076c3e9725d Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Tue, 2 May 2023 16:51:58 +0200 Subject: [PATCH 24/25] Anything for you --- code/game/objects/items/rcd/RSF.dm | 28 +++++++++---------- code/game/objects/items/robot/items/hypo.dm | 2 +- .../game/objects/items/robot/items/storage.dm | 14 +++++----- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index 677c63e343d264..8aee83ecfc91cf 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -32,20 +32,20 @@ RSF w_class = WEIGHT_CLASS_NORMAL ///An associated list of atoms and charge costs. This can contain a separate list, as long as it's associated item is an object ///The RSF item list below shows in the player facing ui in this order, this is why it isn't in alphabetical order, but rather sorted by category - var/list/cost_by_item = list(\ - /obj/item/reagent_containers/cup/glass/drinkingglass = 20,\ - /obj/item/reagent_containers/cup/glass/sillycup = 10,\ - /obj/item/plate = 70,\ - /obj/item/reagent_containers/cup/bowl = 70,\ - /obj/item/kitchen/fork/plastic = 30,\ - /obj/item/knife/plastic = 30,\ - /obj/item/kitchen/spoon/plastic = 30,\ - /obj/item/food/seaweedsheet = 30,\ - /obj/item/storage/dice = 200,\ - /obj/item/toy/cards/deck = 200,\ - /obj/item/paper = 10,\ - /obj/item/pen = 50,\ - /obj/item/clothing/mask/cigarette = 10,\ + var/list/cost_by_item = list( + /obj/item/reagent_containers/cup/glass/drinkingglass = 20, + /obj/item/reagent_containers/cup/glass/sillycup = 10, + /obj/item/plate = 70, + /obj/item/reagent_containers/cup/bowl = 70, + /obj/item/kitchen/fork/plastic = 30, + /obj/item/knife/plastic = 30, + /obj/item/kitchen/spoon/plastic = 30, + /obj/item/food/seaweedsheet = 30, + /obj/item/storage/dice = 200, + /obj/item/toy/cards/deck = 200, + /obj/item/paper = 10, + /obj/item/pen = 50, + /obj/item/clothing/mask/cigarette = 10, ) ///An associated list of fuel and it's value var/list/matter_by_item = list(/obj/item/rcd_ammo = 10,) diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index 652306f574e547..1631c64f7d189e 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -88,7 +88,7 @@ /datum/reagent/toxin/carpotoxin,\ /datum/reagent/toxin/fakebeer,\ /datum/reagent/consumable/ethanol/fernet,\ - ) +) ///Borg Hypospray /obj/item/reagent_containers/borghypo diff --git a/code/game/objects/items/robot/items/storage.dm b/code/game/objects/items/robot/items/storage.dm index bb55236cf0c37f..54793794d6bdbf 100644 --- a/code/game/objects/items/robot/items/storage.dm +++ b/code/game/objects/items/robot/items/storage.dm @@ -306,13 +306,13 @@ desc = "A special apparatus for carrying food, bowls, plates, oven trays, soup pots and paper." icon_state = "borg_service_apparatus" storable = list( - /obj/item/reagent_containers/cup/bowl,\ - /obj/item/food,\ - /obj/item/plate/oven_tray,\ - /obj/item/paper,\ - /obj/item/plate,\ - /obj/item/reagent_containers/cup/soup_pot,\ -) + /obj/item/food, + /obj/item/paper, + /obj/item/plate, + /obj/item/plate/oven_tray, + /obj/item/reagent_containers/cup/bowl, + /obj/item/reagent_containers/cup/soup_pot, + ) /obj/item/borg/apparatus/service/Initialize(mapload) update_appearance() From b600a8088aa16e3875183f0ea3d7c094c27049c2 Mon Sep 17 00:00:00 2001 From: Dawnseer <126404225+Dawnseer@users.noreply.github.com> Date: Tue, 2 May 2023 17:22:00 +0200 Subject: [PATCH 25/25] Just making it check again --- code/game/objects/items/rcd/RSF.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/rcd/RSF.dm b/code/game/objects/items/rcd/RSF.dm index 8aee83ecfc91cf..ef5cedf77b0f0b 100644 --- a/code/game/objects/items/rcd/RSF.dm +++ b/code/game/objects/items/rcd/RSF.dm @@ -31,7 +31,7 @@ RSF var/dispense_cost = 0 w_class = WEIGHT_CLASS_NORMAL ///An associated list of atoms and charge costs. This can contain a separate list, as long as it's associated item is an object - ///The RSF item list below shows in the player facing ui in this order, this is why it isn't in alphabetical order, but rather sorted by category + ///The RSF item list below shows in the player facing ui in this order, this is why it isn't in alphabetical order, but instead sorted by category var/list/cost_by_item = list( /obj/item/reagent_containers/cup/glass/drinkingglass = 20, /obj/item/reagent_containers/cup/glass/sillycup = 10,