diff --git a/code/modules/reagents/newchem/drinks.dm b/code/modules/reagents/newchem/drinks.dm index 637b101f32d..6ac0f02b94a 100644 --- a/code/modules/reagents/newchem/drinks.dm +++ b/code/modules/reagents/newchem/drinks.dm @@ -62,3 +62,117 @@ result = "jackrose" required_reagents = list("applejack" = 4, "lemonjuice" = 1) result_amount = 5 + + +// ROBOT ALCOHOL PAST THIS POINT +// WOOO! + + +/datum/reagent/alkasine //Gloriously copied over from ethanol + name = "Alkasine" + id = "alkasine" + 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 + can_grow_in_plants = 0 //Alcoholic drinks won't be grown in plants (would "water down" random seed chems too much) + var/datum/martial_art/drunk_brawling/F = new + var/dizzy_adj = 3 + var/slurr_adj = 3 + var/confused_adj = 2 + var/slur_start = 65 //amount absorbed after which mob starts slurring + var/brawl_start = 75 + var/confused_start = 130 //amount absorbed after which mob starts confusing directions and sparking + 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/alkasine + name = "Alkasine" + id = "alkasine" + result = "alkasine" + required_reagents = list("lube" = 1, "plasma" = 1, "fuel" = 1) + result_amount = 3 + mix_message = "The chemicals mix to create shiny, blue substance." + +/datum/reagent/alkasine/on_mob_life(var/mob/living/M as mob, var/alien) + if(!src.data) data = 1 + src.data++ + + var/d = data + + // make all the alkasine children work together + for(var/datum/reagent/alkasine/A in holder.reagent_list) + if(isnum(A.data)) d += A.data + + M.dizziness += dizzy_adj. + if(d >= slur_start) + if (!M:slurring) M:slurring = 1 + M:slurring += slurr_adj + if(d >= brawl_start && ishuman(M)) + var/mob/living/carbon/human/H = M + F.teach(H,1) + if(src.volume < 3) + if(H.martial_art == F) + F.remove(H) + if(d >= confused_start && prob(33)) + if (!M:confused) M:confused = 1 + M.confused = max(M:confused+confused_adj,0) + if (prob(20)) + var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + s.set_up(3, 1, M) + s.start() + if(d >= collapse_start && prob(10)) + M.emote("collapse") + if(d >= braindamage_start && prob(33)) + M.adjustBrainLoss(1) + ..() + return + +/datum/reagent/alkasine/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/alkasine/robottears + name = "Robot Tears" + id = "robottears" + result = "robottears" + required_reagents = list("alkasine" = 1, "oil" = 1, "sodawater" = 1) + result_amount = 3 + mix_message = "The ingredients combine into a stiff, dark goo." + +/datum/reagent/alkasine/trinary + name = "Trinary" + id = "trinary" + description = "A fruit drink meant only for synthetics, however that works." + reagent_state = LIQUID + color = "#adb21f" + +/datum/chemical_reaction/alkasine/trinary + name = "Trinary" + id = "trinary" + result = "trinary" + required_reagents = list("alkasine" = 1, "limejuice" = 1, "orangejuice" = 1) + result_amount = 3 + mix_message = "The ingredients mix into a colorful substance." + +/datum/reagent/alkasine/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/alkasine/servo + name = "Servo" + id = "servo" + result = "servo" + required_reagents = list("alkasine" = 2, "cream" = 1, "hot_coco" = 1) + result_amount = 4 + mix_message = "The ingredients mix into a dark brown substance." + +// ROBOT ALCOHOL ENDS \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm index f22392fe2aa..b8c742dd73c 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/alkasine + name = "Beep's Classic Alkasine" + desc = "A can of IPC booze, however that works." + icon_state = "alkasinecan" + New() + ..() + reagents.add_reagent("alkasine", 50) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index 663158d0757..7597dfe1058 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -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 << "\blue You pour a bit of liquid from [src] into your connection port." + else + M << "\blue You swallow a gulp of [src]." if(reagents.total_volume) reagents.reaction(M, INGEST) spawn(0) @@ -45,7 +48,7 @@ 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 diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index caab1e519c1..904619950da 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("alkasine") + icon_state = "alkasineglass" + name = "Glass of Alkasine" + 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..1089fa7430f 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ