mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-16 09:34:21 +01:00
Merge pull request #3762 from VampyrBytes/EatingRefactor
eating refactor (#3733) + bugfixes
This commit is contained in:
@@ -245,7 +245,7 @@ proc/issyndicate(mob/living/M as mob)
|
||||
if(synd_mob.backbag == 2) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(synd_mob), slot_back)
|
||||
if(synd_mob.backbag == 3) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(synd_mob), slot_back)
|
||||
if(synd_mob.backbag == 4) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(synd_mob), slot_back)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/pill/initropidril(synd_mob), slot_in_backpack)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/pill/initropidril(synd_mob), slot_in_backpack)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/pistol(synd_mob), slot_belt)
|
||||
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(synd_mob.back), slot_in_backpack)
|
||||
|
||||
|
||||
@@ -199,12 +199,12 @@
|
||||
H.equip_or_collect(new /obj/item/weapon/storage/box/engineer(H), slot_r_hand)
|
||||
H.equip_or_collect(new /obj/item/weapon/crowbar(H), slot_l_hand)
|
||||
H.equip_or_collect(new /obj/item/weapon/storage/bag/ore(H), slot_l_store)
|
||||
H.equip_or_collect(new /obj/item/weapon/reagent_containers/pill/patch/styptic(H), slot_r_store)
|
||||
H.equip_or_collect(new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(H), slot_r_store)
|
||||
else
|
||||
H.equip_or_collect(new /obj/item/weapon/storage/box/engineer(H.back), slot_in_backpack)
|
||||
H.equip_or_collect(new /obj/item/weapon/crowbar(H), slot_in_backpack)
|
||||
H.equip_or_collect(new /obj/item/weapon/storage/bag/ore(H), slot_in_backpack)
|
||||
H.equip_or_collect(new /obj/item/weapon/reagent_containers/pill/patch/styptic(H), slot_in_backpack)
|
||||
H.equip_or_collect(new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(H), slot_in_backpack)
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
return 1
|
||||
if(istype(O,/obj/item/weapon/storage/pill_bottle/))
|
||||
return 1
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/pill/))
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/food/pill/))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
return 1
|
||||
if(istype(O,/obj/item/weapon/storage/pill_bottle/))
|
||||
return 1
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/pill/))
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/food/pill/))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
@@ -859,10 +859,10 @@
|
||||
product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs."
|
||||
vend_delay = 34
|
||||
icon_state = "cigs"
|
||||
products = list(/obj/item/weapon/storage/fancy/cigarettes = 5,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 2, /obj/item/weapon/reagent_containers/pill/patch/nicotine = 10, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 4,/obj/item/weapon/rollingpaperpack = 5)
|
||||
products = list(/obj/item/weapon/storage/fancy/cigarettes = 5,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 2, /obj/item/weapon/reagent_containers/food/pill/patch/nicotine = 10, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 4,/obj/item/weapon/rollingpaperpack = 5)
|
||||
contraband = list(/obj/item/weapon/lighter/zippo = 4)
|
||||
premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold = 1)
|
||||
prices = list(/obj/item/weapon/storage/fancy/cigarettes = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 150, /obj/item/weapon/reagent_containers/pill/patch/nicotine = 15, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 60, /obj/item/weapon/rollingpaperpack = 20)
|
||||
prices = list(/obj/item/weapon/storage/fancy/cigarettes = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 150, /obj/item/weapon/reagent_containers/food/pill/patch/nicotine = 15, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 60, /obj/item/weapon/rollingpaperpack = 20)
|
||||
refill_canister = /obj/item/weapon/vending_refill/cigarette
|
||||
|
||||
/obj/machinery/vending/cigarette/New()
|
||||
@@ -908,7 +908,7 @@
|
||||
req_access_txt = "5"
|
||||
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
|
||||
products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/autoinjector = 4,/obj/item/device/healthanalyzer = 1)
|
||||
contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1)
|
||||
contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/food/pill/tox = 1)
|
||||
|
||||
/obj/machinery/vending/wallmed2
|
||||
name = "\improper NanoMed"
|
||||
@@ -919,7 +919,7 @@
|
||||
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
|
||||
products = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 5,/obj/item/weapon/reagent_containers/syringe/charcoal = 3,/obj/item/stack/medical/bruise_pack = 3,
|
||||
/obj/item/stack/medical/ointment =3,/obj/item/device/healthanalyzer = 3)
|
||||
contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3)
|
||||
contraband = list(/obj/item/weapon/reagent_containers/food/pill/tox = 3)
|
||||
|
||||
/obj/machinery/vending/wallmed1/syndicate
|
||||
name = "\improper SyndiMed Plus"
|
||||
@@ -929,7 +929,7 @@
|
||||
product_ads = "Go end some lives!;The best stuff for your ship.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
|
||||
req_access_txt = "150"
|
||||
products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/autoinjector = 4,/obj/item/device/healthanalyzer = 1)
|
||||
contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1)
|
||||
contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/food/pill/tox = 1)
|
||||
|
||||
/obj/machinery/vending/security
|
||||
name = "\improper SecTech"
|
||||
|
||||
@@ -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 )
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -607,6 +607,6 @@ var/send_emergency_team
|
||||
new /obj/item/device/flashlight/flare( src )
|
||||
new /obj/item/weapon/kitchen/knife/combat( src )
|
||||
new /obj/item/device/radio/centcom( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/salicylic( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/synthflesh( src )
|
||||
new /obj/item/weapon/reagent_containers/food/pill/salicylic( src )
|
||||
new /obj/item/weapon/reagent_containers/food/pill/patch/synthflesh( src )
|
||||
return
|
||||
@@ -7,7 +7,7 @@
|
||||
suit_adjusted = 1
|
||||
blood_overlay_type = "coat"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
allowed = list(/obj/item/device/analyzer,/obj/item/device/antibody_scanner,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/device/rad_laser)
|
||||
allowed = list(/obj/item/device/analyzer,/obj/item/device/antibody_scanner,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/food/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/device/rad_laser)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
|
||||
@@ -732,4 +732,80 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/proc/can_eat(flags = 255)
|
||||
return 1
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/proc/eat(var/obj/item/weapon/reagent_containers/food/toEat, mob/user)
|
||||
if(!istype(toEat))
|
||||
return 0
|
||||
var/fullness = 0
|
||||
if(istype(toEat, /obj/item/weapon/reagent_containers/food/snacks))
|
||||
fullness = nutrition + (reagents.get_reagent_amount("nutriment") * 20) + (reagents.get_reagent_amount("protein") * 25) + (reagents.get_reagent_amount("plantmatter") * 25)
|
||||
if(user == src)
|
||||
if(istype(toEat, /obj/item/weapon/reagent_containers/food/drinks))
|
||||
if(!selfDrink(toEat))
|
||||
return 0
|
||||
else
|
||||
if(!selfFeed(toEat, fullness))
|
||||
return 0
|
||||
else
|
||||
if(!forceFed(toEat, user, fullness))
|
||||
return 0
|
||||
consume(toEat)
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/proc/selfFeed(var/obj/item/weapon/reagent_containers/food/toEat, fullness)
|
||||
if(istype(toEat, /obj/item/weapon/reagent_containers/food/pill))
|
||||
src << "<span class='notify'>You [toEat.apply_method] [toEat].</span>"
|
||||
else
|
||||
if (fullness <= 50)
|
||||
src << "<span class='warning'>You hungrily chew out a piece of [toEat] and gobble it!</span>"
|
||||
else if (fullness > 50 && fullness <= 150)
|
||||
src << "<span class='notice'>You hungrily begin to eat [toEat].</span>"
|
||||
else if (fullness > 150 && fullness <= 350)
|
||||
src << "<span class='notice'>You take a bite of [toEat].</span>"
|
||||
else if (fullness > 350 && fullness <= 550)
|
||||
src << "<span class='notice'>You unwillingly chew a bit of [toEat].</span>"
|
||||
else if (fullness > (550 * (1 + overeatduration / 2000))) // The more you eat - the more you can eat
|
||||
src << "<span class='warning'>You cannot force any more of [toEat] to go down your throat.</span>"
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/proc/selfDrink(var/obj/item/weapon/reagent_containers/food/drinks/toDrink, mob/user)
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/proc/forceFed(var/obj/item/weapon/reagent_containers/food/toEat, mob/user, fullness)
|
||||
if (fullness <= (550 * (1 + overeatduration / 1000)))
|
||||
visible_message("<span class='warning'>[user] attempts to force [src] to [toEat.apply_method] [toEat].</span>")
|
||||
else
|
||||
visible_message("<span class='warning'>[user] cannot force anymore of [toEat] down [src]'s throat.</span>")
|
||||
return 0
|
||||
if(!do_mob(user, src))
|
||||
return 0
|
||||
forceFedAttackLog(toEat, user)
|
||||
visible_message("<span class='warning'>[user] forces [src] to [toEat.apply_method] [toEat].</span>")
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/proc/forceFedAttackLog(var/obj/item/weapon/reagent_containers/food/toEat, mob/user)
|
||||
attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [toEat.name] by [user.name] ([user.ckey]) Reagents: [toEat.reagentlist(toEat)]</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [toEat.name] to [name] ([ckey]) Reagents: [toEat.reagentlist(toEat)]</font>")
|
||||
log_attack("[user.name] ([user.ckey]) fed [name] ([ckey]) with [toEat.name] Reagents: [toEat.reagentlist(toEat)] (INTENT: [uppertext(user.a_intent)])")
|
||||
if(!iscarbon(user))
|
||||
LAssailant = null
|
||||
else
|
||||
LAssailant = user
|
||||
|
||||
|
||||
/*TO DO - If/when stomach organs are introduced, override this at the human level sending the item to the stomach
|
||||
so that different stomachs can handle things in different ways VB*/
|
||||
/mob/living/carbon/proc/consume(var/obj/item/weapon/reagent_containers/food/toEat)
|
||||
if(!toEat.reagents)
|
||||
return
|
||||
if(toEat.consume_sound)
|
||||
playsound(loc, toEat.consume_sound, rand(10,50), 1)
|
||||
if(toEat.reagents.total_volume)
|
||||
toEat.reagents.reaction(src, toEat.apply_type)
|
||||
spawn(0)
|
||||
if(toEat.reagents.total_volume > toEat.bitesize)
|
||||
toEat.reagents.trans_to(src, toEat.bitesize*toEat.transfer_efficiency)
|
||||
else
|
||||
toEat.reagents.trans_to(src, toEat.reagents.total_volume*toEat.transfer_efficiency)
|
||||
@@ -1882,3 +1882,27 @@
|
||||
|
||||
/mob/living/carbon/human/can_eat(flags = 255)
|
||||
return species && (species.dietflags & flags)
|
||||
|
||||
/mob/living/carbon/human/selfFeed(var/obj/item/weapon/reagent_containers/food/toEat, fullness)
|
||||
if(!check_has_mouth())
|
||||
src << "Where do you intend to put \the [toEat]? You don't have a mouth!"
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/forceFed(var/obj/item/weapon/reagent_containers/food/toEat, mob/user, fullness)
|
||||
if(!check_has_mouth())
|
||||
if(!((istype(toEat, /obj/item/weapon/reagent_containers/food/drinks) && (get_species() == "Machine"))))
|
||||
user << "Where do you intend to put \the [toEat]? \The [src] doesn't have a mouth!"
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/selfDrink(var/obj/item/weapon/reagent_containers/food/drinks/toDrink)
|
||||
if(!check_has_mouth())
|
||||
if(!get_species() == "Machine")
|
||||
src << "Where do you intend to put \the [src]? You don't have a mouth!"
|
||||
return 0
|
||||
else
|
||||
src << "<span class='notice'>You pour a bit of liquid from [toDrink] into your connection port.</span>"
|
||||
else
|
||||
src << "<span class='notice'>You swallow a gulp of [toDrink].</span>"
|
||||
return 1
|
||||
|
||||
@@ -583,4 +583,10 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
|
||||
/mob/living/carbon/slime/can_use_vents()
|
||||
if(Victim)
|
||||
return "You cannot ventcrawl while feeding."
|
||||
..()
|
||||
..()
|
||||
|
||||
/mob/living/carbon/slime/forceFed(var/obj/item/weapon/reagent_containers/food/toEat, mob/user, fullness)
|
||||
if(istype(toEat, /obj/item/weapon/reagent_containers/food/drinks))
|
||||
return 1
|
||||
user << "This creature does not seem to have a mouth!"
|
||||
return 0
|
||||
@@ -583,7 +583,7 @@
|
||||
return
|
||||
name = reject_bad_text(name)
|
||||
while (count--)
|
||||
var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
|
||||
var/obj/item/weapon/reagent_containers/food/pill/P = new/obj/item/weapon/reagent_containers/food/pill(src.loc)
|
||||
if(!name) name = reagents.get_master_reagent_name()
|
||||
P.name = "[name] pill"
|
||||
P.pixel_x = rand(-7, 7) //random position
|
||||
@@ -623,7 +623,7 @@
|
||||
return
|
||||
name = reject_bad_text(name)
|
||||
while (count--)
|
||||
var/obj/item/weapon/reagent_containers/pill/patch/P = new/obj/item/weapon/reagent_containers/pill/patch(src.loc)
|
||||
var/obj/item/weapon/reagent_containers/food/pill/patch/P = new/obj/item/weapon/reagent_containers/food/pill/patch(src.loc)
|
||||
if(!name) name = reagents.get_master_reagent_name()
|
||||
P.name = "[name] patch"
|
||||
P.pixel_x = rand(-7, 7) //random position
|
||||
@@ -828,7 +828,7 @@
|
||||
|
||||
|
||||
//All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.!
|
||||
/obj/item/weapon/reagent_containers/pill = list(),
|
||||
/obj/item/weapon/reagent_containers/food/pill = list(),
|
||||
/obj/item/weapon/reagent_containers/food = list()
|
||||
)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/reagent_containers/pill/patch
|
||||
/obj/item/weapon/reagent_containers/food/pill/patch
|
||||
name = "chemical patch"
|
||||
desc = "A chemical patch for touch based applications."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
@@ -10,35 +10,35 @@
|
||||
apply_method = "apply"
|
||||
transfer_efficiency = 0.5 //patches aren't as effective at getting chemicals into the bloodstream.
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/patch/New()
|
||||
/obj/item/weapon/reagent_containers/food/pill/patch/New()
|
||||
..()
|
||||
icon_state = "bandaid"
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/patch/afterattack(obj/target, mob/user , proximity)
|
||||
/obj/item/weapon/reagent_containers/food/pill/patch/afterattack(obj/target, mob/user , proximity)
|
||||
return // thanks inheritance again
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/patch/styptic
|
||||
/obj/item/weapon/reagent_containers/food/pill/patch/styptic
|
||||
name = "healing patch"
|
||||
desc = "Helps with brute injuries."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("styptic_powder", 40)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/patch/silver_sulf
|
||||
/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf
|
||||
name = "burn patch"
|
||||
desc = "Helps with burn injuries."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("silver_sulfadiazine", 40)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/patch/synthflesh
|
||||
/obj/item/weapon/reagent_containers/food/pill/patch/synthflesh
|
||||
name = "syntheflesh patch"
|
||||
desc = "Helps with burn injuries."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("synthflesh", 20)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/patch/nicotine
|
||||
/obj/item/weapon/reagent_containers/food/pill/patch/nicotine
|
||||
name = "nicotine patch"
|
||||
desc = "Helps temporarily curb the cravings of nicotine dependency."
|
||||
New()
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if (H.get_int_organ(/obj/item/organ/internal/liver))
|
||||
var/obj/item/organ/internal/liver/L = /obj/item/organ/internal/liver
|
||||
var/obj/item/organ/internal/liver/L = H.get_int_organ(/obj/item/organ/internal/liver)
|
||||
L.take_damage(0.1, 1)
|
||||
H.adjustToxLoss(0.1)
|
||||
..()
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
possible_transfer_amounts = null
|
||||
volume = 50 //Sets the default container amount for all food items.
|
||||
var/filling_color = "#FFFFFF" //Used by sandwiches.
|
||||
var/bitesize = 1
|
||||
var/consume_sound = 'sound/items/eatfood.ogg'
|
||||
var/apply_type = INGEST
|
||||
var/apply_method = "swallow"
|
||||
var/transfer_efficiency = 1.0
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/New()
|
||||
..()
|
||||
|
||||
@@ -7,164 +7,116 @@
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
icon_state = null
|
||||
flags = OPENCONTAINER
|
||||
var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it.
|
||||
consume_sound = 'sound/items/drink.ogg'
|
||||
possible_transfer_amounts = list(5,10,25)
|
||||
volume = 50
|
||||
|
||||
on_reagent_change()
|
||||
if (gulp_size < 5) gulp_size = 5
|
||||
else gulp_size = max(round(reagents.total_volume / 5), 5)
|
||||
/obj/item/weapon/reagent_containers/food/drinks/New()
|
||||
..()
|
||||
bitesize = amount_per_transfer_from_this
|
||||
if(bitesize < 5)
|
||||
bitesize = 5
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
return
|
||||
/obj/item/weapon/reagent_containers/food/drinks/attack_self(mob/user as mob)
|
||||
return
|
||||
|
||||
attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
var/datum/reagents/R = src.reagents
|
||||
var/fillevel = gulp_size
|
||||
|
||||
if(!R.total_volume || !R)
|
||||
user << "<span class='warning'> None of [src] left, oh no!</span>"
|
||||
return 0
|
||||
|
||||
if(M == user)
|
||||
|
||||
if(istype(M,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.check_has_mouth())
|
||||
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)
|
||||
reagents.trans_to(M, gulp_size)
|
||||
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
return 1
|
||||
else if( istype(M, /mob/living/carbon/human) )
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
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("<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("<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>")
|
||||
log_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)])")
|
||||
if(!iscarbon(user))
|
||||
M.LAssailant = null
|
||||
else
|
||||
M.LAssailant = user
|
||||
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, INGEST)
|
||||
spawn(0)
|
||||
reagents.trans_to(M, gulp_size)
|
||||
/obj/item/weapon/reagent_containers/food/drinks/attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
if(!reagents || !reagents.total_volume)
|
||||
user << "<span class='warning'> None of [src] left, oh no!</span>"
|
||||
return 0
|
||||
|
||||
if(istype(M, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = M
|
||||
if(C.eat(src, user))
|
||||
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
|
||||
var/mob/living/silicon/robot/borg = user
|
||||
borg.cell.use(30)
|
||||
var/refill = R.get_master_reagent_id()
|
||||
var/refill = reagents.get_master_reagent_id()
|
||||
if(refill in drinks) // Only synthesize drinks
|
||||
spawn(600)
|
||||
R.add_reagent(refill, fillevel)
|
||||
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
reagents.add_reagent(refill, bitesize)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
return 0
|
||||
/obj/item/weapon/reagent_containers/food/drinks/afterattack(obj/target, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
|
||||
// Moved from the can code; not necessary since closed cans aren't open containers now, but, eh.
|
||||
if (istype(target, /obj/item/weapon/reagent_containers/food/drinks/cans))
|
||||
var/obj/item/weapon/reagent_containers/food/drinks/cans/cantarget = target
|
||||
if(cantarget.canopened == 0)
|
||||
user << "<span class='notice'>You need to open the drink you want to pour into!</span>"
|
||||
return
|
||||
|
||||
afterattack(obj/target, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
||||
|
||||
// Moved from the can code; not necessary since closed cans aren't open containers now, but, eh.
|
||||
if (istype(target, /obj/item/weapon/reagent_containers/food/drinks/cans))
|
||||
var/obj/item/weapon/reagent_containers/food/drinks/cans/cantarget = target
|
||||
if(cantarget.canopened == 0)
|
||||
user << "<span class='notice'>You need to open the drink you want to pour into!</span>"
|
||||
return
|
||||
if(!target.reagents.total_volume)
|
||||
user << "<span class='warning'> [target] is empty.</span>"
|
||||
return
|
||||
|
||||
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
user << "<span class='warning'> [src] is full.</span>"
|
||||
return
|
||||
|
||||
if(!target.reagents.total_volume)
|
||||
user << "<span class='warning'> [target] is empty.</span>"
|
||||
return
|
||||
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
|
||||
user << "<span class='notice'> You fill [src] with [trans] units of the contents of [target].</span>"
|
||||
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
user << "<span class='warning'> [src] is full.</span>"
|
||||
return
|
||||
else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
|
||||
if(!reagents.total_volume)
|
||||
user << "<span class='warning'> [src] is empty.</span>"
|
||||
return
|
||||
|
||||
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
|
||||
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 << "<span class='warning'> [src] is empty.</span>"
|
||||
return
|
||||
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
user << "<span class='warning'> [target] is full.</span>"
|
||||
return
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
user << "<span class='warning'> [target] is full.</span>"
|
||||
return
|
||||
|
||||
|
||||
|
||||
var/datum/reagent/refill
|
||||
var/datum/reagent/refillName
|
||||
if(isrobot(user))
|
||||
refill = reagents.get_master_reagent_id()
|
||||
refillName = reagents.get_master_reagent_name()
|
||||
var/datum/reagent/refill
|
||||
var/datum/reagent/refillName
|
||||
if(isrobot(user))
|
||||
refill = reagents.get_master_reagent_id()
|
||||
refillName = reagents.get_master_reagent_name()
|
||||
|
||||
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
user << "<span class='notice'> You transfer [trans] units of the solution to [target].</span>"
|
||||
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
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
|
||||
var/mob/living/silicon/robot/bro = user
|
||||
var/chargeAmount = max(30,4*trans)
|
||||
bro.cell.use(chargeAmount)
|
||||
user << "Now synthesizing [trans] units of [refillName]..."
|
||||
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
|
||||
if(refill in drinks) // Only synthesize drinks
|
||||
var/mob/living/silicon/robot/bro = user
|
||||
var/chargeAmount = max(30,4*trans)
|
||||
bro.cell.use(chargeAmount)
|
||||
user << "Now synthesizing [trans] units of [refillName]..."
|
||||
|
||||
|
||||
spawn(300)
|
||||
reagents.add_reagent(refill, trans)
|
||||
user << "Cyborg [src] refilled."
|
||||
spawn(300)
|
||||
reagents.add_reagent(refill, trans)
|
||||
user << "Cyborg [src] refilled."
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/attackby(var/obj/item/I, mob/user as mob, params)
|
||||
if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird
|
||||
return
|
||||
if(is_hot(I))
|
||||
if(src.reagents)
|
||||
src.reagents.chem_temp += 15
|
||||
user << "<span class='notice'>You heat [src] with [I].</span>"
|
||||
src.reagents.handle_reactions()
|
||||
|
||||
attackby(var/obj/item/I, mob/user as mob, params)
|
||||
if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird
|
||||
return
|
||||
if(is_hot(I))
|
||||
if(src.reagents)
|
||||
src.reagents.chem_temp += 15
|
||||
user << "<span class='notice'>You heat [src] with [I].</span>"
|
||||
src.reagents.handle_reactions()
|
||||
|
||||
examine(mob/user)
|
||||
if(!..(user, 1))
|
||||
return
|
||||
if(!reagents || reagents.total_volume==0)
|
||||
user << "<span class='notice'> \The [src] is empty!</span>"
|
||||
else if (reagents.total_volume<=src.volume/4)
|
||||
user << "<span class='notice'> \The [src] is almost empty!</span>"
|
||||
else if (reagents.total_volume<=src.volume*0.66)
|
||||
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 << "<span class='notice'> \The [src] is almost full!</span>"
|
||||
else
|
||||
user << "<span class='notice'> \The [src] is full!</span>"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/examine(mob/user)
|
||||
if(!..(user, 1))
|
||||
return
|
||||
if(!reagents || reagents.total_volume==0)
|
||||
user << "<span class='notice'> \The [src] is empty!</span>"
|
||||
else if (reagents.total_volume<=src.volume/4)
|
||||
user << "<span class='notice'> \The [src] is almost empty!</span>"
|
||||
else if (reagents.total_volume<=src.volume*0.66)
|
||||
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 << "<span class='notice'> \The [src] is almost full!</span>"
|
||||
else
|
||||
user << "<span class='notice'> \The [src] is full!</span>"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// Drinks. END
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
desc = "yummy"
|
||||
icon = 'icons/obj/food/food.dmi'
|
||||
icon_state = null
|
||||
var/bitesize = 1
|
||||
bitesize = 1
|
||||
var/bitecount = 0
|
||||
var/trash = null
|
||||
var/slice_path
|
||||
@@ -18,19 +18,20 @@
|
||||
//Placeholder for effect that trigger on eating that aren't tied to reagents.
|
||||
/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume(var/mob/M)
|
||||
if(!usr) return
|
||||
if(!reagents.total_volume)
|
||||
if(M == usr)
|
||||
usr << "<span class='notice'>You finish eating \the [src].</span>"
|
||||
usr.visible_message("<span class='notice'>[usr] finishes eating \the [src].</span>")
|
||||
usr.unEquip(src) //so icons update :[
|
||||
spawn(0)
|
||||
if(!reagents.total_volume)
|
||||
if(M == usr)
|
||||
usr << "<span class='notice'>You finish eating \the [src].</span>"
|
||||
usr.visible_message("<span class='notice'>[usr] finishes eating \the [src].</span>")
|
||||
usr.unEquip(src) //so icons update :[
|
||||
|
||||
if(trash)
|
||||
if(ispath(trash,/obj/item))
|
||||
var/obj/item/TrashItem = new trash(usr)
|
||||
usr.put_in_hands(TrashItem)
|
||||
else if(istype(trash,/obj/item))
|
||||
usr.put_in_hands(trash)
|
||||
qdel(src)
|
||||
if(trash)
|
||||
if(ispath(trash,/obj/item))
|
||||
var/obj/item/TrashItem = new trash(usr)
|
||||
usr.put_in_hands(TrashItem)
|
||||
else if(istype(trash,/obj/item))
|
||||
usr.put_in_hands(trash)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/attack_self(mob/user as mob)
|
||||
@@ -38,83 +39,17 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
if(reagents && !reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
|
||||
user << "\red None of [src] left, oh no!"
|
||||
user << "<span class='warning'>None of [src] left, oh no!</span>"
|
||||
M.unEquip(src) //so icons update :[
|
||||
qdel(src)
|
||||
return 0
|
||||
|
||||
if(istype(M, /mob/living/carbon))
|
||||
var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 20) + (M.reagents.get_reagent_amount("protein") * 25) + (M.reagents.get_reagent_amount("plantmatter") * 25)
|
||||
if(M == user) //If you're eating it yourself
|
||||
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
|
||||
if (fullness <= 50)
|
||||
M << "\red You hungrily chew out a piece of [src] and gobble it!"
|
||||
if (fullness > 50 && fullness <= 150)
|
||||
M << "\blue You hungrily begin to eat [src]."
|
||||
if (fullness > 150 && fullness <= 350)
|
||||
M << "\blue You take a bite of [src]."
|
||||
if (fullness > 350 && fullness <= 550)
|
||||
M << "\blue You unwillingly chew a bit of [src]."
|
||||
if (fullness > (550 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
|
||||
M << "\red You cannot force any more of [src] to go down your throat."
|
||||
return 0
|
||||
else
|
||||
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]? \The [H] doesn't have a mouth!"
|
||||
return
|
||||
|
||||
if(!istype(M, /mob/living/carbon/slime)) //If you're feeding it to someone else.
|
||||
|
||||
if (fullness <= (550 * (1 + M.overeatduration / 1000)))
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message("\red [user] attempts to feed [M] [src].", 1)
|
||||
else
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message("\red [user] cannot force anymore of [src] down [M]'s throat.", 1)
|
||||
return 0
|
||||
|
||||
if(!do_mob(user, M)) return
|
||||
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: [reagentlist(src)]</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [src.name] by [M.name] ([M.ckey]) Reagents: [reagentlist(src)]</font>")
|
||||
log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)])")
|
||||
if(!iscarbon(user))
|
||||
M.LAssailant = null
|
||||
else
|
||||
M.LAssailant = user
|
||||
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message("\red [user] feeds [M] [src].", 1)
|
||||
|
||||
else
|
||||
user << "This creature does not seem to have a mouth!"
|
||||
return
|
||||
|
||||
if(reagents) //Handle ingestion of the reagent.
|
||||
playsound(M.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, INGEST)
|
||||
spawn(0)
|
||||
if(reagents.total_volume > bitesize)
|
||||
/*
|
||||
* I totally cannot understand what this code supposed to do.
|
||||
* Right now every snack consumes in 2 bites, my popcorn does not work right, so I simplify it. -- rastaf0
|
||||
var/temp_bitesize = max(reagents.total_volume /2, bitesize)
|
||||
reagents.trans_to(M, temp_bitesize)
|
||||
*/
|
||||
reagents.trans_to(M, bitesize)
|
||||
else
|
||||
reagents.trans_to(M, reagents.total_volume)
|
||||
bitecount++
|
||||
On_Consume(M)
|
||||
var/mob/living/carbon/C = M
|
||||
if(C.eat(src, user))
|
||||
bitecount++
|
||||
On_Consume(C)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/afterattack(obj/target, mob/user, proximity)
|
||||
@@ -145,30 +80,30 @@
|
||||
|
||||
var/obj/item/weapon/kitchen/utensil/U = W
|
||||
|
||||
if(!U.reagents)
|
||||
U.create_reagents(5)
|
||||
|
||||
if (U.reagents.total_volume > 0)
|
||||
user << "\red You already have something on your [U]."
|
||||
if(U.contents.len >= U.max_contents)
|
||||
user << "<span class='warning'>You cannot fit anything else on your [U]."
|
||||
return
|
||||
|
||||
user.visible_message( \
|
||||
"[user] scoops up some [src] with \the [U]!", \
|
||||
"\blue You scoop up some [src] with \the [U]!" \
|
||||
"<span class='notice'>You scoop up some [src] with \the [U]!" \
|
||||
)
|
||||
|
||||
src.bitecount++
|
||||
U.overlays.Cut()
|
||||
U.loaded = "[src]"
|
||||
var/image/I = new(U.icon, "loadedfood")
|
||||
I.color = src.filling_color
|
||||
U.overlays += I
|
||||
|
||||
reagents.trans_to(U,min(reagents.total_volume,5))
|
||||
|
||||
if (reagents.total_volume <= 0)
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/collected = new type
|
||||
collected.loc = U
|
||||
collected.reagents.remove_any(collected.reagents.total_volume)
|
||||
if(reagents.total_volume > bitesize)
|
||||
reagents.trans_to(collected, bitesize)
|
||||
else
|
||||
reagents.trans_to(collected, reagents.total_volume)
|
||||
qdel(src)
|
||||
return
|
||||
return 1
|
||||
|
||||
if((slices_num <= 0 || !slices_num) || !slice_path)
|
||||
return 0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// Pills.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/obj/item/weapon/reagent_containers/pill
|
||||
/obj/item/weapon/reagent_containers/food/pill
|
||||
name = "pill"
|
||||
desc = "a pill."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
@@ -9,107 +9,59 @@
|
||||
item_state = "pill"
|
||||
possible_transfer_amounts = null
|
||||
volume = 50
|
||||
var/apply_type = INGEST
|
||||
var/apply_method = "swallow"
|
||||
var/transfer_efficiency = 1.0
|
||||
consume_sound = null
|
||||
|
||||
New()
|
||||
..()
|
||||
if(!icon_state)
|
||||
icon_state = "pill[rand(1,20)]"
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
/obj/item/weapon/reagent_containers/food/pill/attack_self(mob/user as mob)
|
||||
return
|
||||
attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
if(M == user)
|
||||
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 << "<span class='notify'>You [apply_method] [src].</span>"
|
||||
M.unEquip(src) //icon update
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, apply_type)
|
||||
spawn(0)
|
||||
reagents.trans_to(M, reagents.total_volume*transfer_efficiency)
|
||||
qdel(src)
|
||||
else
|
||||
qdel(src)
|
||||
return 1
|
||||
|
||||
else 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]? \The [H] doesn't have a mouth!"
|
||||
return
|
||||
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message("<span class='warning'>[user] attempts to force [M] to [apply_method] [src].</span>", 1)
|
||||
|
||||
if(!do_mob(user, M)) return
|
||||
|
||||
user.unEquip(src) //icon update
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message("<span class='warning'>[user] forces [M] to [apply_method] [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 [src.name] to [key_name(M)]) Reagents: [reagentlist(src)]</font>")
|
||||
if(M.ckey)
|
||||
msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)])")
|
||||
if(!iscarbon(user))
|
||||
M.LAssailant = null
|
||||
else
|
||||
M.LAssailant = user
|
||||
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, apply_type)
|
||||
spawn(0)
|
||||
reagents.trans_to(M, reagents.total_volume*transfer_efficiency)
|
||||
qdel(src)
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/attack(var/mob/living/carbon/M, mob/user as mob, def_zone)
|
||||
if(!istype(M))
|
||||
return 0
|
||||
bitesize = reagents.total_volume
|
||||
if(M.eat(src, user))
|
||||
spawn(0)
|
||||
qdel(src)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
afterattack(obj/target, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
/obj/item/weapon/reagent_containers/food/pill/afterattack(obj/target, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
|
||||
if(target.is_open_container() != 0 && target.reagents)
|
||||
if(!target.reagents.total_volume)
|
||||
user << "<span class='warning'>[target] is empty. Cant dissolve [src].</span>"
|
||||
return
|
||||
if(target.is_open_container() != 0 && target.reagents)
|
||||
if(!target.reagents.total_volume)
|
||||
user << "<span class='warning'>[target] is empty. Cant dissolve [src].</span>"
|
||||
return
|
||||
|
||||
// /vg/: Logging transfers of bad things
|
||||
if(target.reagents_to_log.len)
|
||||
var/list/badshit=list()
|
||||
for(var/bad_reagent in target.reagents_to_log)
|
||||
if(reagents.has_reagent(bad_reagent))
|
||||
badshit += reagents_to_log[bad_reagent]
|
||||
if(badshit.len)
|
||||
var/hl="\red <b>([english_list(badshit)])</b> \black"
|
||||
message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
|
||||
log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
|
||||
// /vg/: Logging transfers of bad things
|
||||
if(target.reagents_to_log.len)
|
||||
var/list/badshit=list()
|
||||
for(var/bad_reagent in target.reagents_to_log)
|
||||
if(reagents.has_reagent(bad_reagent))
|
||||
badshit += reagents_to_log[bad_reagent]
|
||||
if(badshit.len)
|
||||
var/hl="\red <b>([english_list(badshit)])</b> \black"
|
||||
message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
|
||||
log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
|
||||
|
||||
user << "<span class='notify'>You dissolve [src] in [target].</span>"
|
||||
reagents.trans_to(target, reagents.total_volume)
|
||||
for(var/mob/O in viewers(2, user))
|
||||
O.show_message("<span class='warning'>[user] puts something in [target].</span>", 1)
|
||||
spawn(5)
|
||||
qdel(src)
|
||||
user << "<span class='notify'>You dissolve [src] in [target].</span>"
|
||||
reagents.trans_to(target, reagents.total_volume)
|
||||
for(var/mob/O in viewers(2, user))
|
||||
O.show_message("<span class='warning'>[user] puts something in [target].</span>", 1)
|
||||
spawn(5)
|
||||
qdel(src)
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// Pills. END
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//Pills
|
||||
/obj/item/weapon/reagent_containers/pill/tox
|
||||
/obj/item/weapon/reagent_containers/food/pill/tox
|
||||
name = "Toxins pill"
|
||||
desc = "Highly toxic."
|
||||
icon_state = "pill5"
|
||||
@@ -117,7 +69,7 @@
|
||||
..()
|
||||
reagents.add_reagent("toxin", 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/initropidril
|
||||
/obj/item/weapon/reagent_containers/food/pill/initropidril
|
||||
name = "initropidril pill"
|
||||
desc = "Don't swallow this."
|
||||
icon_state = "pill5"
|
||||
@@ -125,7 +77,7 @@
|
||||
..()
|
||||
reagents.add_reagent("initropidril", 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/adminordrazine
|
||||
/obj/item/weapon/reagent_containers/food/pill/adminordrazine
|
||||
name = "Adminordrazine pill"
|
||||
desc = "It's magic. We don't have to explain it."
|
||||
icon_state = "pill16"
|
||||
@@ -133,7 +85,7 @@
|
||||
..()
|
||||
reagents.add_reagent("adminordrazine", 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/methamphetamine
|
||||
/obj/item/weapon/reagent_containers/food/pill/methamphetamine
|
||||
name = "Methamphetamine pill"
|
||||
desc = "Helps improve the ability to concentrate."
|
||||
icon_state = "pill8"
|
||||
@@ -141,7 +93,7 @@
|
||||
..()
|
||||
reagents.add_reagent("methamphetamine", 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/haloperidol
|
||||
/obj/item/weapon/reagent_containers/food/pill/haloperidol
|
||||
name = "Haloperidol pill"
|
||||
desc = "Haloperidol is an anti-psychotic use to treat psychiatric problems."
|
||||
icon_state = "pill8"
|
||||
@@ -149,7 +101,7 @@
|
||||
..()
|
||||
reagents.add_reagent("haloperidol", 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/paroxetine
|
||||
/obj/item/weapon/reagent_containers/food/pill/paroxetine
|
||||
name = "Paroxetine pill"
|
||||
desc = "Heavy anti-depressant."
|
||||
icon_state = "pill8"
|
||||
@@ -158,7 +110,7 @@
|
||||
reagents.add_reagent("paroxetine", 15)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/happy
|
||||
/obj/item/weapon/reagent_containers/food/pill/happy
|
||||
name = "Happy pill"
|
||||
desc = "Happy happy joy joy!"
|
||||
icon_state = "pill18"
|
||||
@@ -167,7 +119,7 @@
|
||||
reagents.add_reagent("space_drugs", 15)
|
||||
reagents.add_reagent("sugar", 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/zoom
|
||||
/obj/item/weapon/reagent_containers/food/pill/zoom
|
||||
name = "Zoom pill"
|
||||
desc = "Zoooom!"
|
||||
icon_state = "pill18"
|
||||
@@ -176,7 +128,7 @@
|
||||
reagents.add_reagent("synaptizine", 5)
|
||||
reagents.add_reagent("methamphetamine", 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/charcoal
|
||||
/obj/item/weapon/reagent_containers/food/pill/charcoal
|
||||
name = "Charcoal pill"
|
||||
desc = "Neutralizes many common toxins."
|
||||
icon_state = "pill17"
|
||||
@@ -184,7 +136,7 @@
|
||||
..()
|
||||
reagents.add_reagent("charcoal", 25)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/salicylic
|
||||
/obj/item/weapon/reagent_containers/food/pill/salicylic
|
||||
name = "Salicylic Acid pill"
|
||||
desc = "Commonly used to treat moderate pain and fevers."
|
||||
icon_state = "pill4"
|
||||
@@ -192,7 +144,7 @@
|
||||
..()
|
||||
reagents.add_reagent("sal_acid", 20)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/salbutamol
|
||||
/obj/item/weapon/reagent_containers/food/pill/salbutamol
|
||||
name = "Salbutamol pill"
|
||||
desc = "Used to treat respiratory distress."
|
||||
icon_state = "pill8"
|
||||
|
||||
Reference in New Issue
Block a user