From 23d33051fb28e3ca4fd99ab55c83d9f9d459e6ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20J=C4=99drzejczak?= Date: Sun, 21 Feb 2016 13:19:18 +0100 Subject: [PATCH] Beep Boop IPC booze --- code/modules/reagents/newchem/drinks.dm | 114 ++++++++++++++++++ .../reagents/reagent_containers/food/cans.dm | 10 +- .../reagent_containers/food/drinks.dm | 13 +- .../food/drinks/drinkingglass.dm | 18 +++ icons/obj/drinks.dmi | Bin 66265 -> 67286 bytes 5 files changed, 149 insertions(+), 6 deletions(-) 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 5bb37da57df25ed3d312dc805502c8530a5b6b4e..1089fa7430f85fcf7c3bcfb7b7bf3b77852c57f4 100644 GIT binary patch delta 10036 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 delta 9008 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