Merge pull request #128 from CHOMPStation2/Sharkmare-Booze

Boozeborg [WIP]
This commit is contained in:
Razgriz
2020-01-12 21:38:48 -07:00
committed by GitHub
7 changed files with 185 additions and 3 deletions
+2 -1
View File
@@ -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")
"whitebeet")
@@ -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)
@@ -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
..()
..()
@@ -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, "<span class='notice'>You don't have enough power to synthesize fluids.</span>")
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, "<span class='notice'>Your stomach is currently too full of fluids to secrete more fluids of this kind.</span>")
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, "<span class='notice'>Injecting [units] unit\s into occupant.</span>") //If they were immersed, the reagents wouldn't leave with them.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 136 KiB

+2
View File
@@ -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"