diff --git a/code/global_vr.dm b/code/global_vr.dm index 834ff2dc2c..3d1ae59afa 100644 --- a/code/global_vr.dm +++ b/code/global_vr.dm @@ -2,6 +2,7 @@ robot_module_types += "Medihound" robot_module_types += "K9" robot_module_types += "Janihound" + robot_module_types += "BoozeHound" //CHOMP edit. robot_module_types += "Sci-borg" robot_module_types += "Pupdozer" return 1 @@ -52,4 +53,4 @@ var/global/list/acceptable_fruit_types= list( "vanilla", "watermelon", "wheat", - "whitebeet") \ No newline at end of file + "whitebeet") diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 568cc5b3af..3e79e35091 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -41,7 +41,8 @@ var/global/list/robot_modules = list( /obj/item/weapon/robot_module/New(var/mob/living/silicon/robot/R) ..() R.module = src - + R.can_buckle = 1 //Chomp Addition; Makes all borgs rideable. + add_camera_networks(R) add_languages(R) add_subsystems(R) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm index 4cb560bbbc..56c5f94925 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm @@ -41,6 +41,7 @@ robot_modules["K9"] = /obj/item/weapon/robot_module/robot/knine robot_modules["ERT"] = /obj/item/weapon/robot_module/robot/ert robot_modules["Janihound"] = /obj/item/weapon/robot_module/robot/scrubpup + robot_modules["BoozeHound"] = /obj/item/weapon/robot_module/robot/booze //Chompaddition robot_modules["Sci-borg"] = /obj/item/weapon/robot_module/robot/science robot_modules["Pupdozer"] = /obj/item/weapon/robot_module/robot/engiedog return 1 @@ -616,4 +617,4 @@ R.verbs -= /mob/living/silicon/robot/proc/robot_mount // R.verbs -= /mob/living/proc/shred_limb - YW Edit R.verbs -= /mob/living/silicon/robot/proc/rest_style - ..() \ No newline at end of file + ..() diff --git a/code/modules/mob/living/silicon/robot/subtypes/boozeborg_ch.dm b/code/modules/mob/living/silicon/robot/subtypes/boozeborg_ch.dm new file mode 100644 index 0000000000..fe3c5054b7 --- /dev/null +++ b/code/modules/mob/living/silicon/robot/subtypes/boozeborg_ch.dm @@ -0,0 +1,177 @@ +//Attempted unify style implementation of boozeborgs. To lower peoples needed code diving to both understand this module and make new ones. +//Dropping my usual _unify for _ch this time. Commenting it here for github search. + +// code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm //tag so it shows up in gitsearch + +/* +What Borgs are available is sadly handled in the above file in the proc + +/hook/startup/proc/robot_modules_vr() + robot_modules["Medihound"] = /obj/item/weapon/robot_module/robot/medihound + robot_modules["K9"] = /obj/item/weapon/robot_module/robot/knine + robot_modules["ERT"] = /obj/item/weapon/robot_module/robot/ert + robot_modules["Janihound"] = /obj/item/weapon/robot_module/robot/scrubpup + robot_modules["Sci-borg"] = /obj/item/weapon/robot_module/robot/science + robot_modules["Pupdozer"] = /obj/item/weapon/robot_module/robot/engiedog + return 1 +*/ + +/obj/item/weapon/robot_module/robot/booze + name = "BoozeHound robot module" + channels = list("Service" = 1) + languages = list( + LANGUAGE_SOL_COMMON = 1, + LANGUAGE_UNATHI = 1, + LANGUAGE_SIIK = 1, + LANGUAGE_AKHANI = 1, + LANGUAGE_SKRELLIAN = 1, + LANGUAGE_SKRELLIANFAR = 0, + LANGUAGE_ROOTLOCAL = 0, + LANGUAGE_TRADEBAND = 1, + LANGUAGE_GUTTER = 0, + LANGUAGE_SCHECHI = 1, + LANGUAGE_EAL = 1, + LANGUAGE_TERMINUS = 1, + LANGUAGE_SIGN = 0 + ) + +/obj/item/weapon/robot_module/robot/booze + sprites = list( + "Beer Buddy" = "boozeborg", + "Brilliant Blue" = "boozeborg(blue)", + "Caffine Dispenser" = "boozeborg(coffee)", + "Gamer Juice Maker" = "boozeborg(green)", + "Liqour Licker" = "boozeborg(orange)", + "The Grapist" = "boozeborg(purple)", + "Vampire's Aid" = "boozeborg(red)", + "Vodka Komrade" = "boozeborg(vodka)" + ) +/obj/item/weapon/robot_module/robot/booze/New(var/mob/living/silicon/robot/R) + src.modules += new /obj/item/weapon/gripper/service(src) + //src.modules += new /obj/item/weapon/reagent_containers/glass/bucket(src) + //src.modules += new /obj/item/weapon/material/minihoe(src) + //src.modules += new /obj/item/device/analyzer/plant_analyzer(src) + //src.modules += new /obj/item/weapon/storage/bag/plants(src) + //src.modules += new /obj/item/weapon/robot_harvester(src) + src.modules += new /obj/item/weapon/material/knife(src) + src.modules += new /obj/item/weapon/material/kitchen/rollingpin(src) + src.modules += new /obj/item/device/multitool(src) //to freeze trays + src.modules += new /obj/item/weapon/dogborg/jaws/small(src) + src.modules += new /obj/item/device/dogborg/boop_module(src) + src.modules += new /obj/item/device/dogborg/sleeper/compactor/brewer(src) + src.modules += new /obj/item/weapon/reagent_containers/glass/beaker(src)//For holding the ALCOHOL + src.emag = new /obj/item/weapon/dogborg/pounce(src) + R.verbs += /mob/living/silicon/robot/proc/reskin_booze + + var/obj/item/weapon/rsf/M = new /obj/item/weapon/rsf(src) + M.stored_matter = 30 + src.modules += M + + src.modules += new /obj/item/weapon/reagent_containers/dropper/industrial(src) + + /* Remembered this causes the dogs to catch on fire lol. + var/obj/item/weapon/flame/lighter/zippo/L = new /obj/item/weapon/flame/lighter/zippo(src) + L.lit = 1 + src.modules += L + */ + + var/datum/matter_synth/water = new /datum/matter_synth() + water.name = "Water reserves" + water.recharge_rate = 0.1 // Recharging water for plants - hehe drooly borg + water.max_energy = 1000 + water.energy = 0 + R.water_res = water + synths += water + + var/obj/item/device/dogborg/tongue/T = new /obj/item/device/dogborg/tongue(src) + T.water = water + src.modules += T + + + src.modules += new /obj/item/weapon/tray/robotray(src) + src.modules += new /obj/item/weapon/reagent_containers/borghypo/service/booze(src) + src.emag = new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src) + + var/datum/reagents/N = new/datum/reagents(50) + src.emag.reagents = N + N.my_atom = src.emag + N.add_reagent("beer2", 50) + src.emag.name = "Mickey Finn's Special Brew" + + R.can_buckle = 1 + R.icon = 'icons/mob/widerobot_colors_vr.dmi' + R.hands.icon = 'icons/mob/screen1_robot_vr.dmi' + R.ui_style_vr = TRUE + R.pixel_x = -16 + R.old_x = -16 + R.default_pixel_x = -16 + R.dogborg = TRUE + R.wideborg = TRUE + R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill + ..() + +/obj/item/weapon/robot_module/robot/booze/respawn_consumable(var/mob/living/silicon/robot/R, var/amount) + var/obj/item/weapon/reagent_containers/food/condiment/enzyme/E = locate() in src.modules + E.reagents.add_reagent("enzyme", 2 * amount) + if(src.emag) + var/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer/B = src.emag + B.reagents.add_reagent("beer2", 2 * amount) + +//BORGHYPO +/obj/item/weapon/reagent_containers/borghypo/service/booze + name = "cyborg drink synthesizer" + desc = "A portable drink dispencer." + icon = 'icons/obj/drinks.dmi' + icon_state = "shaker" + charge_cost = 20 + recharge_time = 3 + volume = 120 + possible_transfer_amounts = list(1 ,5, 10, 20, 30) + +//Resking proc for boozos + +/mob/living/silicon/robot/proc/reskin_booze() + set name = "Change Drink Color" + set category = "Robot Commands" + set desc = "Choose the color of drink displayed inside you." + + var/mob/M = usr + var/list/options = list() + options["Beer"] = "Beer Buddy" + options["Curacao"] = "Brilliant Blue" + options["Coffee"] = "Caffine Dispenser" + options["Space Mountain Wind"] = "Gamer Juice Maker" + options["Whiskey Soda"] = "Liqour Licker" + options["Grape Soda"] = "The Grapist" + options["Demon's Blood"] = "Vampire's Aid" + options["Slav Vodka"] = "Vodka Komrade" + var/choice = input(M,"Choose your drink!") in options + if(src && choice && !M.stat && in_range(M,src)) + icontype = options[choice] + var/active_sound = 'sound/effects/bubbles.ogg' + playsound(src.loc, "[active_sound]", 100, 0, 4) + M << "Your Tank now displays [choice]. Drink up and enjoy!" + updateicon() + return 1 + +//SLEEPER "Brewer" +/obj/item/device/dogborg/sleeper/compactor/brewer //Boozehound gut. + name = "Brew Belly" + desc = "A mounted drunk tank unit with fuel processor." + icon_state = "brewer" + injection_chems = list("vodka","beer","gin") //Injected alcohol is 3 times as strong + max_item_count = 1 + +/obj/item/device/dogborg/sleeper/compactor/brewer/inject_chem(mob/user, chem) + if(patient && patient.reagents) + if(chem in injection_chems + "inaprovaline") + if(hound.cell.charge < 200) //This is so borgs don't kill themselves with it. + to_chat(hound, "You don't have enough power to synthesize fluids.") + return + else if(patient.reagents.get_reagent_amount(chem) + 10 >= 50) //Preventing people from accidentally killing themselves by trying to inject too many chemicals! + to_chat(hound, "Your stomach is currently too full of fluids to secrete more fluids of this kind.") + else if(patient.reagents.get_reagent_amount(chem) + 10 <= 50) //No overdoses for you + patient.reagents.add_reagent(chem, inject_amount) + drain(100) //-100 charge per injection + var/units = round(patient.reagents.get_reagent_amount(chem)) + to_chat(hound, "Injecting [units] unit\s into occupant.") //If they were immersed, the reagents wouldn't leave with them. diff --git a/icons/mob/dogborg_vr.dmi b/icons/mob/dogborg_vr.dmi index 78d646c6aa..f01e8902ca 100644 Binary files a/icons/mob/dogborg_vr.dmi and b/icons/mob/dogborg_vr.dmi differ diff --git a/icons/mob/screen1_robot_vr.dmi b/icons/mob/screen1_robot_vr.dmi index 3c8a67154e..9b51034d10 100644 Binary files a/icons/mob/screen1_robot_vr.dmi and b/icons/mob/screen1_robot_vr.dmi differ diff --git a/vorestation.dme b/vorestation.dme index f79e25cc22..ff8f940d16 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1955,6 +1955,7 @@ #include "code\modules\food\kitchen\gibber.dm" #include "code\modules\food\kitchen\icecream.dm" #include "code\modules\food\kitchen\microwave.dm" +#include "code\modules\food\kitchen\microwave_ch.dm" #include "code\modules\food\kitchen\smartfridge.dm" #include "code\modules\food\kitchen\smartfridge_vr.dm" #include "code\modules\food\kitchen\cooking_machines\_cooker.dm" @@ -2474,6 +2475,7 @@ #include "code\modules\mob\living\silicon\robot\robot_modules\station_vr.dm" #include "code\modules\mob\living\silicon\robot\robot_modules\swarm.dm" #include "code\modules\mob\living\silicon\robot\robot_modules\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\boozeborg_ch.dm" #include "code\modules\mob\living\silicon\robot\subtypes\gravekeeper.dm" #include "code\modules\mob\living\silicon\robot\subtypes\lost_drone.dm" #include "code\modules\mob\living\silicon\robot\subtypes\lost_drone_vr.dm"