eating refactor (#3733) + bugfixes

Ok, messed up resolving the merge conflicts (first try), so doing a
fresh pr. This turned out to be a good thing, as after I put the changes
back I tested again, and found 2 bugs (not due to my code)

Firstly, the organ refactor had introduced a bug when taking liver
damage from being drunk. It wasn't getting the liver correctly, leaving
it with null, and was then trying to damage it.

The second was related to the amount you took in when drinking
This commit is contained in:
VampyrBytes
2016-03-05 08:03:39 +00:00
parent ab490f7fd9
commit 1148bde3a6
25 changed files with 381 additions and 440 deletions
+23 -23
View File
@@ -7,13 +7,13 @@
/obj/item/weapon/storage/pill_bottle/happy/New()
..()
new /obj/item/weapon/reagent_containers/pill/happy( src )
new /obj/item/weapon/reagent_containers/pill/happy( src )
new /obj/item/weapon/reagent_containers/pill/happy( src )
new /obj/item/weapon/reagent_containers/pill/happy( src )
new /obj/item/weapon/reagent_containers/pill/happy( src )
new /obj/item/weapon/reagent_containers/pill/happy( src )
new /obj/item/weapon/reagent_containers/pill/happy( src )
new /obj/item/weapon/reagent_containers/food/pill/happy( src )
new /obj/item/weapon/reagent_containers/food/pill/happy( src )
new /obj/item/weapon/reagent_containers/food/pill/happy( src )
new /obj/item/weapon/reagent_containers/food/pill/happy( src )
new /obj/item/weapon/reagent_containers/food/pill/happy( src )
new /obj/item/weapon/reagent_containers/food/pill/happy( src )
new /obj/item/weapon/reagent_containers/food/pill/happy( src )
/obj/item/weapon/storage/pill_bottle/zoom
name = "Zoom pills"
@@ -21,20 +21,20 @@
/obj/item/weapon/storage/pill_bottle/zoom/New()
..()
new /obj/item/weapon/reagent_containers/pill/zoom( src )
new /obj/item/weapon/reagent_containers/pill/zoom( src )
new /obj/item/weapon/reagent_containers/pill/zoom( src )
new /obj/item/weapon/reagent_containers/pill/zoom( src )
new /obj/item/weapon/reagent_containers/pill/zoom( src )
new /obj/item/weapon/reagent_containers/pill/zoom( src )
new /obj/item/weapon/reagent_containers/pill/zoom( src )
new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
/obj/item/weapon/reagent_containers/pill/random_drugs
/obj/item/weapon/reagent_containers/food/pill/random_drugs
name = "pill"
desc = ""
/obj/item/weapon/reagent_containers/pill/random_drugs/New()
/obj/item/weapon/reagent_containers/food/pill/random_drugs/New()
..()
icon_state = "pill" + pick("2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20")
@@ -52,12 +52,12 @@
/obj/item/weapon/storage/pill_bottle/random_drug_bottle/New()
..()
new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
+1 -1
View File
@@ -128,7 +128,7 @@
R = pick(standard_medicines + rare_medicines)
else
R = pick(standard_medicines)
var/obj/item/weapon/reagent_containers/pill/P = new(src)
var/obj/item/weapon/reagent_containers/food/pill/P = new(src)
if(rare_medicines.Find(R))
P.reagents.add_reagent(R,10)
+11 -20
View File
@@ -27,8 +27,7 @@
attack_verb = list("attacked", "stabbed", "poked")
hitsound = 'sound/weapons/bladeslice.ogg'
sharp = 0
var/loaded //Descriptive string for currently loaded food object.
var/max_contents = 1
/obj/item/weapon/kitchen/utensil/New()
if (prob(60))
@@ -49,25 +48,17 @@
else
return ..()
if (reagents.total_volume > 0)
// Mouthless people cannot eat
if(!M.can_eat())
user << "<span class=warning>[M] cannot eat with a fork!</span>"
return
if (contents.len)
var/obj/item/weapon/reagent_containers/food/snacks/toEat = contents[1]
if(istype(toEat))
if(M.eat(toEat, user))
toEat.On_Consume(M)
spawn(0)
if(toEat)
qdel(toEat)
overlays.Cut()
return
if(M == user)
M.visible_message("<span class='notice'>\The [user] eats some [loaded] from \the [src].</span>")
reagents.trans_to(M, reagents.total_volume)
else
M.visible_message("<span class='warning'>\The [user] attempts to feed some [loaded] to \the [M] with \the [src].</span>")
if(!do_mob(user, M)) return
M.visible_message("<span class='warning'>\The [user] feeds some [loaded] to \the [M] with \the [src].</span>")
reagents.trans_to(M, reagents.total_volume)
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been utensil fed by [user.name] ([user.ckey]) with [src.name]</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Utensil fed [M.name] ([M.ckey]) with [src.name]</font>")
playsound(M.loc,'sound/items/eatfood.ogg', rand(10,40), 1)
overlays.Cut()
return
/obj/item/weapon/kitchen/utensil/fork
name = "fork"
@@ -483,7 +483,7 @@
storage_slots = 50
max_combined_w_class = 200
w_class = 1
can_hold = list("/obj/item/weapon/reagent_containers/pill","/obj/item/weapon/reagent_containers/glass/beaker","/obj/item/weapon/reagent_containers/glass/bottle")
can_hold = list("/obj/item/weapon/reagent_containers/food/pill","/obj/item/weapon/reagent_containers/glass/beaker","/obj/item/weapon/reagent_containers/glass/bottle")
/*
* Biowaste bag (mostly for xenobiologists)
@@ -87,7 +87,7 @@
"/obj/item/weapon/reagent_containers/dropper",
"/obj/item/weapon/reagent_containers/glass/beaker",
"/obj/item/weapon/reagent_containers/glass/bottle",
"/obj/item/weapon/reagent_containers/pill",
"/obj/item/weapon/reagent_containers/food/pill",
"/obj/item/weapon/reagent_containers/syringe",
"/obj/item/weapon/reagent_containers/glass/dispenser",
"/obj/item/weapon/lighter/zippo",
@@ -106,13 +106,13 @@
/obj/item/weapon/storage/belt/medical/response_team/New()
..()
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salbutamol(src)
new /obj/item/weapon/reagent_containers/food/pill/salbutamol(src)
new /obj/item/weapon/reagent_containers/food/pill/charcoal(src)
new /obj/item/weapon/reagent_containers/food/pill/charcoal(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
/obj/item/weapon/storage/belt/botany
@@ -35,13 +35,13 @@
icon_state = pick("ointment","firefirstaid")
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
new /obj/item/weapon/reagent_containers/pill/salicylic( src )
new /obj/item/weapon/reagent_containers/food/pill/salicylic( src )
return
/obj/item/weapon/storage/firstaid/fire/empty
@@ -54,11 +54,11 @@
New()
..()
if (empty) return
new /obj/item/weapon/reagent_containers/pill/patch/styptic( src )
new /obj/item/weapon/reagent_containers/pill/patch/styptic( src )
new /obj/item/weapon/reagent_containers/pill/salicylic( src )
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic( src )
new /obj/item/weapon/reagent_containers/food/pill/salicylic( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
return
@@ -78,9 +78,9 @@
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/device/healthanalyzer( src )
return
@@ -96,10 +96,10 @@
New()
..()
if (empty) return
new /obj/item/weapon/reagent_containers/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
new /obj/item/device/healthanalyzer( src )
return
@@ -118,10 +118,10 @@
icon_state = pick("brute","brute2")
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/device/healthanalyzer(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector(src)
new /obj/item/stack/medical/bruise_pack(src)
@@ -168,8 +168,8 @@
new /obj/item/clothing/accessory/stethoscope( src )
new /obj/item/weapon/defibrillator/compact/combat/loaded(src)
new /obj/item/weapon/reagent_containers/hypospray/combat(src)
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf(src)
new /obj/item/weapon/reagent_containers/ld50_syringe/lethal(src)
new /obj/item/clothing/glasses/hud/health/night(src)
return
@@ -210,7 +210,7 @@
icon = 'icons/obj/chemical.dmi'
item_state = "contsolid"
w_class = 2.0
can_hold = list("/obj/item/weapon/reagent_containers/pill","/obj/item/weapon/dice","/obj/item/weapon/paper")
can_hold = list("/obj/item/weapon/reagent_containers/food/pill","/obj/item/weapon/dice","/obj/item/weapon/paper")
allow_quick_gather = 1
use_to_pickup = 1
storage_slots = 14
@@ -245,13 +245,13 @@
New()
..()
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
/obj/item/weapon/storage/pill_bottle/dice
name = "pack of dice"
@@ -269,11 +269,11 @@
/obj/item/weapon/storage/pill_bottle/painkillers/New()
..()
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
@@ -121,10 +121,10 @@
/obj/item/weapon/storage/pill_bottle/psychiatrist/New()
..()
new /obj/item/weapon/reagent_containers/pill/haloperidol(src)
new /obj/item/weapon/reagent_containers/pill/haloperidol(src)
new /obj/item/weapon/reagent_containers/pill/methamphetamine(src)
new /obj/item/weapon/reagent_containers/pill/methamphetamine(src)
new /obj/item/weapon/reagent_containers/food/pill/haloperidol(src)
new /obj/item/weapon/reagent_containers/food/pill/haloperidol(src)
new /obj/item/weapon/reagent_containers/food/pill/methamphetamine(src)
new /obj/item/weapon/reagent_containers/food/pill/methamphetamine(src)
/obj/structure/closet/secure_closet/psychiatrist
name = "psychiatrist's locker"