Merge pull request #8204 from Vivalas/moar_nerfs

Adds organ cleansing to surgery
This commit is contained in:
tigercat2000
2017-12-31 08:19:01 -08:00
committed by GitHub
+22 -6
View File
@@ -71,12 +71,14 @@
var/implements_extract = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/kitchen/utensil/fork = 70)
var/implements_mend = list(/obj/item/stack/medical/bruise_pack = 20,/obj/item/stack/medical/bruise_pack/advanced = 100,/obj/item/stack/nanopaste = 100)
var/implements_clean = list(/obj/item/weapon/reagent_containers/dropper = 100,
/obj/item/weapon/reagent_containers/syringe = 100,
/obj/item/weapon/reagent_containers/glass/bottle = 90,
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 85,
/obj/item/weapon/reagent_containers/food/drinks/bottle = 80,
/obj/item/weapon/reagent_containers/glass/beaker = 75,
/obj/item/weapon/reagent_containers/spray = 60,
/obj/item/weapon/reagent_containers/glass/bucket = 50)
//Finish is just so you can close up after you do other things.
var/implements_finsh = list(/obj/item/weapon/scalpel/laser/manager = 100,/obj/item/weapon/retractor = 100 ,/obj/item/weapon/crowbar = 90)
var/current_type
@@ -129,13 +131,16 @@
for(var/obj/item/organ/internal/I in affected.internal_organs)
if(I)
if(C.reagents.total_volume < GHETTO_DISINFECT_AMOUNT)
if(C.reagents.total_volume <= 0) //end_step handles if there is not enough reagent
user.visible_message("[user] notices [tool] is empty.", \
"You notice [tool] is empty")
"You notice [tool] is empty.")
return 0
var/msg = "[user] starts pouring some of [tool] over [target]'s [I.name]."
var/self_msg = "You start pouring some of [tool] over [target]'s [I.name]."
if(istype(C,/obj/item/weapon/reagent_containers/syringe))
msg = "[user] begins injecting [tool] into [target]'s [I.name]."
self_msg = "You begin injecting [tool] into [target]'s [I.name]."
user.visible_message(msg, self_msg)
if(H && affected)
H.custom_pain("Something burns horribly in your [affected.name]!",1)
@@ -300,23 +305,34 @@
var/obj/item/weapon/reagent_containers/C = tool
var/datum/reagents/R = C.reagents
var/ethanol = 0 //how much alcohol is in the thing
var/spaceacillin = 0 //how much actual antibiotic is in the thing
if(R.reagent_list.len)
for(var/datum/reagent/consumable/ethanol/alcohol in R.reagent_list)
ethanol += alcohol.alcohol_perc * 300
ethanol /= R.reagent_list.len
spaceacillin = R.get_reagent_amount("spaceacillin")
for(var/obj/item/organ/internal/I in affected.internal_organs)
if(I)
if(R.total_volume < GHETTO_DISINFECT_AMOUNT)
user.visible_message("[user] notices there is not enough of [tool].", \
"You notice there is not enough of [tool].")
user.visible_message("[user] notices there is not enough in [tool].", \
"You notice there is not enough in [tool].")
return 0
if(I.germ_level < INFECTION_LEVEL_ONE / 2)
to_chat(user, "[I] does not appear to be infected.")
if(I.germ_level >= INFECTION_LEVEL_ONE / 2)
I.germ_level = max(I.germ_level-ethanol, 0)
user.visible_message("<span class='notice'> [user] has poured some of [tool] over [target]'s [I.name].</span>",
if(spaceacillin >= GHETTO_DISINFECT_AMOUNT)
I.germ_level = 0
else
I.germ_level = max(I.germ_level-ethanol, 0)
if(istype(C,/obj/item/weapon/reagent_containers/syringe))
user.visible_message("<span class='notice'> [user] has injected [tool] into [target]'s [I.name].</span>",
"<span class='notice'> You have injected [tool] into [target]'s [I.name].</span>")
else
user.visible_message("<span class='notice'> [user] has poured some of [tool] over [target]'s [I.name].</span>",
"<span class='notice'> You have poured some of [tool] over [target]'s [I.name].</span>")
R.trans_to(target, GHETTO_DISINFECT_AMOUNT)
R.reaction(target, INGEST)