mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 16:13:19 +01:00
Merge pull request #3664 from FlattestGuitar/master
IPC Booze and their ability to drink.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -223,4 +223,12 @@
|
||||
icon_state = "sodawater"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("sodawater", 50)
|
||||
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)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
var/fillevel = gulp_size
|
||||
|
||||
if(!R.total_volume || !R)
|
||||
user << "\red None of [src] left, oh no!"
|
||||
user << "<span class='warning'> None of [src] left, oh no!</span>"
|
||||
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 << "<span class='notice'> You pour a bit of liquid from [src] into your connection port.</span>"
|
||||
else
|
||||
M << "<span class='notice'> You swallow a gulp of [src].</span>"
|
||||
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("<span class='warning'> [user] attempts to feed [M] [src].</span>", 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("<span class='warning'> [user] feeds [M] [src].</span>", 1)
|
||||
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [key_name(user)] Reagents: [reagentlist(src)]</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [M.name] by [key_name(M)] Reagents: [reagentlist(src)]</font>")
|
||||
@@ -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 << "<span class='warning'> [target] is empty.</span>"
|
||||
return
|
||||
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
user << "\red [src] is full."
|
||||
user << "<span class='warning'> [src] is full.</span>"
|
||||
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 << "<span class='notice'> You fill [src] with [trans] units of the contents of [target].</span>"
|
||||
|
||||
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 << "<span class='warning'> [src] is empty.</span>"
|
||||
return
|
||||
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
user << "\red [target] is full."
|
||||
user << "<span class='warning'> [target] is full.</span>"
|
||||
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 << "<span class='notice'> You transfer [trans] units of the solution to [target].</span>"
|
||||
|
||||
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 << "<span class='notice'> \The [src] is empty!</span>"
|
||||
else if (reagents.total_volume<=src.volume/4)
|
||||
user << "\blue \The [src] is almost empty!"
|
||||
user << "<span class='notice'> \The [src] is almost empty!</span>"
|
||||
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 << "<span class='notice'> \The [src] is half full!</span>" // We're all optimistic, right?!
|
||||
else if (reagents.total_volume<=src.volume*0.90)
|
||||
user << "\blue \The [src] is almost full!"
|
||||
user << "<span class='notice'> \The [src] is almost full!</span>"
|
||||
else
|
||||
user << "\blue \The [src] is full!"
|
||||
user << "<span class='notice'> \The [src] is full!</span>"
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -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
|
||||
volume = 50
|
||||
|
||||
@@ -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?"
|
||||
|
||||
Reference in New Issue
Block a user