Merge remote-tracking branch 'VORE_MASTER/master' into clara-dev-pink-moo-drink

This commit is contained in:
Riley
2020-08-13 04:08:40 -04:00
312 changed files with 17233 additions and 11559 deletions
+36 -9
View File
@@ -7,6 +7,7 @@
#define MAX_MULTI_AMOUNT 20 // Max number of pills/patches that can be made at once
#define MAX_UNITS_PER_PILL 60 // Max amount of units in a pill
#define MAX_UNITS_PER_PATCH 60 // Max amount of units in a patch
#define MAX_UNITS_PER_BOTTLE 60 // Max amount of units in a bottle (it's volume)
#define MAX_CUSTOM_NAME_LEN 64 // Max length of a custom pill/condiment/whatever
@@ -245,7 +246,18 @@
if("create_bottle")
if(condi || !reagents.total_volume)
return
tgui_modal_input(src, id, "Please name your bottle:", null, arguments, reagents.get_master_reagent_name(), MAX_CUSTOM_NAME_LEN)
var/num = round(text2num(arguments["num"] || 1))
if(!num)
return
arguments["num"] = num
var/amount_per_bottle = CLAMP(reagents.total_volume / num, 0, MAX_UNITS_PER_BOTTLE)
var/default_name = "[reagents.get_master_reagent_name()] ([amount_per_bottle]u)"
var/bottles_text = num == 1 ? "new bottle" : "[num] new bottles"
tgui_modal_input(src, id, "Please name your [bottles_text]:", null, arguments, default_name, MAX_CUSTOM_NAME_LEN)
if("create_bottle_multiple")
if(condi || !reagents.total_volume)
return
tgui_modal_input(src, id, "Please enter the amount of bottles to make (max [MAX_MULTI_AMOUNT] at a time):", null, arguments, pillamount, 5)
if("change_bottle_style")
var/list/choices = list()
for(var/i = 1 to MAX_BOTTLE_SPRITE)
@@ -357,16 +369,28 @@
if("create_bottle")
if(condi || !reagents.total_volume)
return
var/count = CLAMP(round(text2num(arguments["num"]) || 0), 0, MAX_MULTI_AMOUNT)
if(!count)
return
if(!length(answer))
answer = reagents.get_master_reagent_name()
var/obj/item/weapon/reagent_containers/glass/bottle/P = new(loc)
P.name = "[answer] bottle"
P.pixel_x = rand(-7, 7) // random position
P.pixel_y = rand(-7, 7)
P.icon_state = "bottle-[bottlesprite]" || "bottle-1"
reagents.trans_to_obj(P, 60)
P.update_icon()
var/amount_per_bottle = CLAMP(reagents.total_volume / count, 0, MAX_UNITS_PER_BOTTLE)
while(count--)
if(reagents.total_volume <= 0)
to_chat(usr, "<span class='notice'>Not enough reagents to create these bottles!</span>")
return
var/obj/item/weapon/reagent_containers/glass/bottle/P = new(loc)
P.name = "[answer] bottle"
P.pixel_x = rand(-7, 7) // random position
P.pixel_y = rand(-7, 7)
P.icon_state = "bottle-[bottlesprite]" || "bottle-1"
reagents.trans_to_obj(P, amount_per_bottle)
P.update_icon()
if("create_bottle_multiple")
if(condi || !reagents.total_volume)
return
tgui_act("modal_open", list("id" = "create_bottle", "arguments" = list("num" = answer)), ui, state)
if("change_bottle_style")
var/new_style = CLAMP(text2num(answer) || 0, 0, MAX_BOTTLE_SPRITE)
if(!new_style)
@@ -393,7 +417,9 @@
mode = !mode
if("ejectp")
if(loaded_pill_bottle)
loaded_pill_bottle.forceMove(loc)
loaded_pill_bottle.forceMove(get_turf(src))
if(Adjacent(usr) && !issilicon(usr))
usr.put_in_hands(loaded_pill_bottle)
loaded_pill_bottle = null
if("print")
if(printing || condi)
@@ -842,4 +868,5 @@
#undef MAX_MULTI_AMOUNT
#undef MAX_UNITS_PER_PILL
#undef MAX_UNITS_PER_PATCH
#undef MAX_UNITS_PER_BOTTLE
#undef MAX_CUSTOM_NAME_LEN
@@ -400,6 +400,49 @@
M.heal_organ_damage(30 * removed, 30 * removed * chem_effective)
M.adjustToxLoss(-30 * removed * chem_effective)
/datum/reagent/mortiferin
name = "Mortiferin"
id = "mortiferin"
description = "A liquid compound based upon those used in cloning. Utilized in cases of toxic shock. May cause liver damage."
taste_description = "meat"
reagent_state = LIQUID
color = "#6b4de3"
metabolism = REM * 0.5
mrate_static = TRUE
scannable = 1
/datum/reagent/mortiferin/on_mob_life(var/mob/living/carbon/M, var/alien, var/datum/reagents/metabolism/location)
if(M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse))
affects_dead = TRUE
else
affects_dead = FALSE
. = ..(M, alien, location)
/datum/reagent/mortiferin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(M.bodytemperature < (T0C - 10) || (M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse)))
var/chem_effective = 1 * M.species.chem_strength_heal
if(alien == IS_SLIME)
if(prob(10))
to_chat(M, "<span class='danger'>It's so cold. Something causes your cellular mass to solidify sporadically, resulting in uncontrollable twitching.</span>")
chem_effective = 0.5
M.Weaken(10)
M.silent = max(M.silent, 10)
M.make_jittery(4)
if(M.stat != DEAD)
M.adjustCloneLoss(-5 * removed * chem_effective)
M.adjustOxyLoss(-10 * removed * chem_effective)
M.adjustToxLoss(-20 * removed * chem_effective)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/item/organ/internal/liver/L = H.internal_organs_by_name[O_LIVER]
if(istype(L) && prob(5))
if(L.robotic >= ORGAN_ROBOT)
return
L.take_damage(rand(1,3) * removed)
/datum/reagent/necroxadone
name = "Necroxadone"
id = "necroxadone"
@@ -410,18 +453,11 @@
metabolism = REM * 0.5
mrate_static = TRUE
scannable = 1
/datum/reagent/necroxadone/on_mob_life(var/mob/living/carbon/M, var/alien, var/datum/reagents/metabolism/location)
if(M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse))
affects_dead = TRUE
else
affects_dead = FALSE
. = ..(M, alien, location)
affects_dead = TRUE
/datum/reagent/necroxadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
var/chem_effective = 1 * M.species.chem_strength_heal
if(M.bodytemperature < 170 || (M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse)))
var/chem_effective = 1 * M.species.chem_strength_heal
if(alien == IS_SLIME)
if(prob(10))
to_chat(M, "<span class='danger'>It's so cold. Something causes your cellular mass to harden sporadically, resulting in seizure-like twitching.</span>")
@@ -433,6 +469,12 @@
M.adjustCloneLoss(-5 * removed * chem_effective)
M.adjustOxyLoss(-20 * removed * chem_effective)
M.adjustToxLoss(-40 * removed * chem_effective)
M.adjustCloneLoss(-15 * removed * chem_effective)
else
M.adjustToxLoss(-25 * removed * chem_effective)
M.adjustOxyLoss(-10 * removed * chem_effective)
M.adjustCloneLoss(-7 * removed * chem_effective)
/* Painkillers */
@@ -428,6 +428,14 @@
catalysts = list("phoron" = 5)
result_amount = 2
/datum/chemical_reaction/mortiferin
name = "Mortiferin"
id = "mortiferin"
result = "mortiferin"
required_reagents = list("cryptobiolin" = 1, "clonexadone" = 1, "corophizine" = 1)
result_amount = 2
catalysts = list("phoron" = 5)
/datum/chemical_reaction/spaceacillin
name = "Spaceacillin"
id = "spaceacillin"