diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index fbc80b869ad..83cf9225bab 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -693,16 +693,27 @@ desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles icon_deny = "boozeomat-deny" - products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/gin = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,/obj/item/weapon/reagent_containers/food/drinks/cans/beer = 6, - /obj/item/weapon/reagent_containers/food/drinks/cans/ale = 6,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 4, - /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 4,/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4, - /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4,/obj/item/weapon/reagent_containers/food/drinks/cans/tonic = 8, - /obj/item/weapon/reagent_containers/food/drinks/cans/cola = 8, /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater = 15, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30,/obj/item/weapon/reagent_containers/food/drinks/ice = 9) + products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/gin = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5, + /obj/item/weapon/reagent_containers/food/drinks/cans/beer = 6, + /obj/item/weapon/reagent_containers/food/drinks/cans/ale = 6, + /obj/item/weapon/reagent_containers/food/drinks/cans/synthanol = 15, + /obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 4, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 4, + /obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4, + /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4, + /obj/item/weapon/reagent_containers/food/drinks/cans/tonic = 8, + /obj/item/weapon/reagent_containers/food/drinks/cans/cola = 8, + /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater = 15, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30, + /obj/item/weapon/reagent_containers/food/drinks/ice = 9) contraband = list(/obj/item/weapon/reagent_containers/food/drinks/tea = 10) vend_delay = 15 product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" diff --git a/code/modules/reagents/newchem/drinks.dm b/code/modules/reagents/newchem/drinks.dm index 637b101f32d..28237207995 100644 --- a/code/modules/reagents/newchem/drinks.dm +++ b/code/modules/reagents/newchem/drinks.dm @@ -62,3 +62,91 @@ result = "jackrose" required_reagents = list("applejack" = 4, "lemonjuice" = 1) result_amount = 5 + + +// ROBOT ALCOHOL PAST THIS POINT +// WOOO! + + +/datum/reagent/ethanol/synthanol + name = "Synthanol" + id = "synthanol" + description = "A runny liquid with conductive capacities. Its effects on synthetics are similar to those of alcohol on organics." + reagent_state = LIQUID + color = "#1BB1FF" + process_flags = SYNTHETIC + metabolization_rate = 0.4 + vomit_start = INFINITY // + blur_start = INFINITY // + pass_out = INFINITY //INFINITY, so that IPCs don't puke and stuff + var/collapse_start = 200 //amount absorbed after wich mob starts collapsing + var/braindamage_start = 300 //amount absorbed after which mob starts taking small amount of brain damage + + +/datum/chemical_reaction/synthanol + name = "Synthanol" + id = "synthanol" + result = "synthanol" + required_reagents = list("lube" = 1, "plasma" = 1, "fuel" = 1) + result_amount = 3 + mix_message = "The chemicals mix to create shiny, blue substance." + +/datum/reagent/ethanol/synthanol/on_mob_life(var/mob/living/M as mob, var/alien) + + var/d = data + + if(d >= collapse_start && prob(10)) + M.emote("collapse") + var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + s.set_up(3, 1, M) + s.start() + if(d >= braindamage_start && prob(33)) + M.adjustBrainLoss(1) + ..() + +/datum/reagent/ethanol/synthanol/robottears + name = "Robot Tears" + id = "robottears" + description = "An oily substance that an IPC could technically consider a 'drink'." + reagent_state = LIQUID + color = "#363636" + +/datum/chemical_reaction/synthanol/robottears + name = "Robot Tears" + id = "robottears" + result = "robottears" + required_reagents = list("synthanol" = 1, "oil" = 1, "sodawater" = 1) + result_amount = 3 + mix_message = "The ingredients combine into a stiff, dark goo." + +/datum/reagent/ethanol/synthanol/trinary + name = "Trinary" + id = "trinary" + description = "A fruit drink meant only for synthetics, however that works." + reagent_state = LIQUID + color = "#adb21f" + +/datum/chemical_reaction/synthanol/trinary + name = "Trinary" + id = "trinary" + result = "trinary" + required_reagents = list("synthanol" = 1, "limejuice" = 1, "orangejuice" = 1) + result_amount = 3 + mix_message = "The ingredients mix into a colorful substance." + +/datum/reagent/ethanol/synthanol/servo + name = "Servo" + id = "servo" + description = "A drink containing some organic ingredients, but meant only for synthetics." + reagent_state = LIQUID + color = "#5b3210" + +/datum/chemical_reaction/synthanol/servo + name = "Servo" + id = "servo" + result = "servo" + required_reagents = list("synthanol" = 2, "cream" = 1, "hot_coco" = 1) + result_amount = 4 + mix_message = "The ingredients mix into a dark brown substance." + +// ROBOT ALCOHOL ENDS diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm index f22392fe2aa..4a4479c8b1e 100644 --- a/code/modules/reagents/reagent_containers/food/cans.dm +++ b/code/modules/reagents/reagent_containers/food/cans.dm @@ -223,4 +223,12 @@ icon_state = "sodawater" New() ..() - reagents.add_reagent("sodawater", 50) \ No newline at end of file + reagents.add_reagent("sodawater", 50) + +/obj/item/weapon/reagent_containers/food/drinks/cans/synthanol + name = "Beep's Classic Synthanol" + desc = "A can of IPC booze, however that works." + icon_state = "synthanolcan" + New() + ..() + reagents.add_reagent("synthanol", 50) diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index 663158d0757..589ae649256 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -23,7 +23,7 @@ var/fillevel = gulp_size if(!R.total_volume || !R) - user << "\red None of [src] left, oh no!" + user << " None of [src] left, oh no!" return 0 if(M == user) @@ -31,10 +31,13 @@ if(istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M if(!H.check_has_mouth()) - user << "Where do you intend to put \the [src]? You don't have a mouth!" - return - - M << "\blue You swallow a gulp of [src]." + if(!H.get_species() == "Machine") + user << "Where do you intend to put \the [src]? You don't have a mouth!" + return + else + M << " You pour a bit of liquid from [src] into your connection port." + else + M << " You swallow a gulp of [src]." if(reagents.total_volume) reagents.reaction(M, INGEST) spawn(0) @@ -45,15 +48,15 @@ else if( istype(M, /mob/living/carbon/human) ) var/mob/living/carbon/human/H = M - if(!H.check_has_mouth()) + if(!H.check_has_mouth() && !H.get_species() == "Machine") user << "Where do you intend to put \the [src]? \The [H] doesn't have a mouth!" return for(var/mob/O in viewers(world.view, user)) - O.show_message("\red [user] attempts to feed [M] [src].", 1) + O.show_message(" [user] attempts to feed [M] [src].", 1) if(!do_mob(user, M)) return for(var/mob/O in viewers(world.view, user)) - O.show_message("\red [user] feeds [M] [src].", 1) + O.show_message(" [user] feeds [M] [src].", 1) M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [key_name(user)] Reagents: [reagentlist(src)]") user.attack_log += text("\[[time_stamp()]\] Fed [M.name] by [key_name(M)] Reagents: [reagentlist(src)]") @@ -95,23 +98,23 @@ if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. if(!target.reagents.total_volume) - user << "\red [target] is empty." + user << " [target] is empty." return if(reagents.total_volume >= reagents.maximum_volume) - user << "\red [src] is full." + user << " [src] is full." return var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this) - user << "\blue You fill [src] with [trans] units of the contents of [target]." + user << " You fill [src] with [trans] units of the contents of [target]." else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it. if(!reagents.total_volume) - user << "\red [src] is empty." + user << " [src] is empty." return if(target.reagents.total_volume >= target.reagents.maximum_volume) - user << "\red [target] is full." + user << " [target] is full." return @@ -123,7 +126,7 @@ refillName = reagents.get_master_reagent_name() var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) - user << "\blue You transfer [trans] units of the solution to [target]." + user << " You transfer [trans] units of the solution to [target]." if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell if(refill in drinks) // Only synthesize drinks @@ -152,15 +155,15 @@ if(!..(user, 1)) return if(!reagents || reagents.total_volume==0) - user << "\blue \The [src] is empty!" + user << " \The [src] is empty!" else if (reagents.total_volume<=src.volume/4) - user << "\blue \The [src] is almost empty!" + user << " \The [src] is almost empty!" else if (reagents.total_volume<=src.volume*0.66) - user << "\blue \The [src] is half empty!" // Pessimism is the real order of the day. + user << " \The [src] is half full!" // We're all optimistic, right?! else if (reagents.total_volume<=src.volume*0.90) - user << "\blue \The [src] is almost full!" + user << " \The [src] is almost full!" else - user << "\blue \The [src] is full!" + user << " \The [src] is full!" //////////////////////////////////////////////////////////////////////////////// @@ -404,4 +407,4 @@ desc = "A flask with a Lithium Atom symbol on it." icon = 'icons/obj/custom_items.dmi' icon_state = "lithiumflask" - volume = 50 \ No newline at end of file + volume = 50 diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index caab1e519c1..1ce5be29367 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -564,6 +564,24 @@ icon_state = "patronglass" name = "Jack Rose" desc = "Drinking this makes you feel like you belong in a luxury hotel bar during the 1920s." + if("synthanol") + icon_state = "synthanolglass" + name = "Glass of Synthanol" + desc = "The equivalent of alcohol for synthetic crewmembers. They'd find it awful if they had tastebuds too." + if("robottears") + icon_state = "robottearsglass" + name = "Glass of Robot Tears" + desc = "No robots were hurt in the making of this drink." + if("trinary") + icon_state = "trinaryglass" + name = "Glass of Trinary" + desc = "Colorful drink made for synthetic crewmembers. It doesn't seem like it would taste well." + if("servo") + icon_state = "servoglass" + name = "Glass of Servo" + desc = "Chocolate - based drink made for IPCs. Not sure if anyone's actually tried out the recipe." + + else icon_state ="glass_brown" name = "Glass of ..what?" diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 5bb37da57df..4ec1ce7cc3b 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ