no relative pathing (#16234)

* the voices win in the end

* cleanup

* changelog

* secure.dm hates me

* make_exact_fit() in initialize instead of whatever was happening before
This commit is contained in:
harryob
2023-04-30 22:10:13 +01:00
committed by GitHub
parent ad29453d4a
commit 578bae6f6f
144 changed files with 9951 additions and 9675 deletions

View File

@@ -1,124 +1,331 @@
/obj/item/reagent_containers/chem_disp_cartridge
small
volume = CARTRIDGE_VOLUME_SMALL
/obj/item/reagent_containers/chem_disp_cartridge/small
volume = CARTRIDGE_VOLUME_SMALL
medium
volume = CARTRIDGE_VOLUME_MEDIUM
/obj/item/reagent_containers/chem_disp_cartridge/medium
volume = CARTRIDGE_VOLUME_MEDIUM
// Multiple
sugar spawn_reagent = /singleton/reagent/sugar
water spawn_reagent = /singleton/reagent/water
// Multiple
/obj/item/reagent_containers/chem_disp_cartridge/sugar
spawn_reagent = /singleton/reagent/sugar
/obj/item/reagent_containers/chem_disp_cartridge/water
spawn_reagent = /singleton/reagent/water
// Chemistry
/obj/item/reagent_containers/chem_disp_cartridge/acetone
spawn_reagent = /singleton/reagent/acetone
/obj/item/reagent_containers/chem_disp_cartridge/aluminum
spawn_reagent = /singleton/reagent/aluminum
/obj/item/reagent_containers/chem_disp_cartridge/ammonia
spawn_reagent = /singleton/reagent/ammonia
/obj/item/reagent_containers/chem_disp_cartridge/butanol
spawn_reagent = /singleton/reagent/alcohol/butanol
/obj/item/reagent_containers/chem_disp_cartridge/carbon
spawn_reagent = /singleton/reagent/carbon
/obj/item/reagent_containers/chem_disp_cartridge/copper
spawn_reagent = /singleton/reagent/copper
/obj/item/reagent_containers/chem_disp_cartridge/ethanol
spawn_reagent = /singleton/reagent/alcohol
/obj/item/reagent_containers/chem_disp_cartridge/hclacid
spawn_reagent = /singleton/reagent/acid/hydrochloric
/obj/item/reagent_containers/chem_disp_cartridge/hydrazine
spawn_reagent = /singleton/reagent/hydrazine
/obj/item/reagent_containers/chem_disp_cartridge/iron
spawn_reagent = /singleton/reagent/iron
/obj/item/reagent_containers/chem_disp_cartridge/lithium
spawn_reagent = /singleton/reagent/lithium
/obj/item/reagent_containers/chem_disp_cartridge/mercury
spawn_reagent = /singleton/reagent/mercury
/obj/item/reagent_containers/chem_disp_cartridge/phosphorus
spawn_reagent = /singleton/reagent/phosphorus
/obj/item/reagent_containers/chem_disp_cartridge/potassium
spawn_reagent = /singleton/reagent/potassium
/obj/item/reagent_containers/chem_disp_cartridge/radium
spawn_reagent = /singleton/reagent/radium
/obj/item/reagent_containers/chem_disp_cartridge/radium/small
volume = CARTRIDGE_VOLUME_SMALL //For bar drinks
/obj/item/reagent_containers/chem_disp_cartridge/sacid
spawn_reagent = /singleton/reagent/acid
/obj/item/reagent_containers/chem_disp_cartridge/silicon
spawn_reagent = /singleton/reagent/silicon
/obj/item/reagent_containers/chem_disp_cartridge/sodium
spawn_reagent = /singleton/reagent/sodium
/obj/item/reagent_containers/chem_disp_cartridge/sulfur
spawn_reagent = /singleton/reagent/sulfur
/obj/item/reagent_containers/chem_disp_cartridge/tungsten
spawn_reagent = /singleton/reagent/tungsten
// Chemistry
acetone spawn_reagent = /singleton/reagent/acetone
aluminum spawn_reagent = /singleton/reagent/aluminum
ammonia spawn_reagent = /singleton/reagent/ammonia
butanol spawn_reagent = /singleton/reagent/alcohol/butanol
carbon spawn_reagent = /singleton/reagent/carbon
copper spawn_reagent = /singleton/reagent/copper
ethanol spawn_reagent = /singleton/reagent/alcohol
hclacid spawn_reagent = /singleton/reagent/acid/hydrochloric
hydrazine spawn_reagent = /singleton/reagent/hydrazine
iron spawn_reagent = /singleton/reagent/iron
lithium spawn_reagent = /singleton/reagent/lithium
mercury spawn_reagent = /singleton/reagent/mercury
phosphorus spawn_reagent = /singleton/reagent/phosphorus
potassium spawn_reagent = /singleton/reagent/potassium
radium spawn_reagent = /singleton/reagent/radium
radium/small volume = CARTRIDGE_VOLUME_SMALL //For bar drinks
sacid spawn_reagent = /singleton/reagent/acid
silicon spawn_reagent = /singleton/reagent/silicon
sodium spawn_reagent = /singleton/reagent/sodium
sulfur spawn_reagent = /singleton/reagent/sulfur
tungsten spawn_reagent = /singleton/reagent/tungsten
// Bar, alcoholic
ale spawn_reagent = /singleton/reagent/alcohol/ale
beer spawn_reagent = /singleton/reagent/alcohol/beer
champagne spawn_reagent = /singleton/reagent/alcohol/champagne
cognac spawn_reagent = /singleton/reagent/alcohol/cognac
gin spawn_reagent = /singleton/reagent/alcohol/gin
kahlua spawn_reagent = /singleton/reagent/alcohol/coffee/kahlua
mead spawn_reagent = /singleton/reagent/alcohol/mead
rum spawn_reagent = /singleton/reagent/alcohol/rum
tequila spawn_reagent = /singleton/reagent/alcohol/tequila
vermouth spawn_reagent = /singleton/reagent/alcohol/vermouth
vodka spawn_reagent = /singleton/reagent/alcohol/vodka
whiskey spawn_reagent = /singleton/reagent/alcohol/whiskey
wine spawn_reagent = /singleton/reagent/alcohol/wine
/obj/item/reagent_containers/chem_disp_cartridge/ale
spawn_reagent = /singleton/reagent/alcohol/ale
/obj/item/reagent_containers/chem_disp_cartridge/beer
spawn_reagent = /singleton/reagent/alcohol/beer
/obj/item/reagent_containers/chem_disp_cartridge/champagne
spawn_reagent = /singleton/reagent/alcohol/champagne
/obj/item/reagent_containers/chem_disp_cartridge/cognac
spawn_reagent = /singleton/reagent/alcohol/cognac
/obj/item/reagent_containers/chem_disp_cartridge/gin
spawn_reagent = /singleton/reagent/alcohol/gin
/obj/item/reagent_containers/chem_disp_cartridge/kahlua
spawn_reagent = /singleton/reagent/alcohol/coffee/kahlua
/obj/item/reagent_containers/chem_disp_cartridge/mead
spawn_reagent = /singleton/reagent/alcohol/mead
/obj/item/reagent_containers/chem_disp_cartridge/rum
spawn_reagent = /singleton/reagent/alcohol/rum
/obj/item/reagent_containers/chem_disp_cartridge/tequila
spawn_reagent = /singleton/reagent/alcohol/tequila
/obj/item/reagent_containers/chem_disp_cartridge/vermouth
spawn_reagent = /singleton/reagent/alcohol/vermouth
/obj/item/reagent_containers/chem_disp_cartridge/vodka
spawn_reagent = /singleton/reagent/alcohol/vodka
/obj/item/reagent_containers/chem_disp_cartridge/whiskey
spawn_reagent = /singleton/reagent/alcohol/whiskey
/obj/item/reagent_containers/chem_disp_cartridge/wine
spawn_reagent = /singleton/reagent/alcohol/wine
// Bar, soft
apple spawn_reagent = /singleton/reagent/drink/applejuice
banana spawn_reagent = /singleton/reagent/drink/banana
berryjuice spawn_reagent = /singleton/reagent/drink/berryjuice
brownstar spawn_reagent = /singleton/reagent/drink/brownstar
clean_kois spawn_reagent = /singleton/reagent/kois/clean
cola spawn_reagent = /singleton/reagent/drink/space_cola
dr_gibb spawn_reagent = /singleton/reagent/drink/dr_gibb
grenadine spawn_reagent = /singleton/reagent/drink/grenadine
ice spawn_reagent = /singleton/reagent/drink/ice
icetea spawn_reagent = /singleton/reagent/drink/icetea
lemon_lime spawn_reagent = /singleton/reagent/drink/lemon_lime
lime spawn_reagent = /singleton/reagent/drink/limejuice
orange spawn_reagent = /singleton/reagent/drink/orangejuice
root_beer spawn_reagent = /singleton/reagent/drink/root_beer
smw spawn_reagent = /singleton/reagent/drink/spacemountainwind
sodawater spawn_reagent = /singleton/reagent/drink/sodawater
spaceup spawn_reagent = /singleton/reagent/drink/spaceup
tea spawn_reagent = /singleton/reagent/drink/tea
tonic spawn_reagent = /singleton/reagent/drink/tonic
watermelon spawn_reagent = /singleton/reagent/drink/watermelonjuice
/obj/item/reagent_containers/chem_disp_cartridge/apple
spawn_reagent = /singleton/reagent/drink/applejuice
/obj/item/reagent_containers/chem_disp_cartridge/banana
spawn_reagent = /singleton/reagent/drink/banana
/obj/item/reagent_containers/chem_disp_cartridge/berryjuice
spawn_reagent = /singleton/reagent/drink/berryjuice
/obj/item/reagent_containers/chem_disp_cartridge/brownstar
spawn_reagent = /singleton/reagent/drink/brownstar
/obj/item/reagent_containers/chem_disp_cartridge/clean_kois
spawn_reagent = /singleton/reagent/kois/clean
/obj/item/reagent_containers/chem_disp_cartridge/cola
spawn_reagent = /singleton/reagent/drink/space_cola
/obj/item/reagent_containers/chem_disp_cartridge/dr_gibb
spawn_reagent = /singleton/reagent/drink/dr_gibb
/obj/item/reagent_containers/chem_disp_cartridge/grenadine
spawn_reagent = /singleton/reagent/drink/grenadine
/obj/item/reagent_containers/chem_disp_cartridge/ice
spawn_reagent = /singleton/reagent/drink/ice
/obj/item/reagent_containers/chem_disp_cartridge/icetea
spawn_reagent = /singleton/reagent/drink/icetea
/obj/item/reagent_containers/chem_disp_cartridge/lemon_lime
spawn_reagent = /singleton/reagent/drink/lemon_lime
/obj/item/reagent_containers/chem_disp_cartridge/lime
spawn_reagent = /singleton/reagent/drink/limejuice
/obj/item/reagent_containers/chem_disp_cartridge/orange
spawn_reagent = /singleton/reagent/drink/orangejuice
/obj/item/reagent_containers/chem_disp_cartridge/root_beer
spawn_reagent = /singleton/reagent/drink/root_beer
/obj/item/reagent_containers/chem_disp_cartridge/smw
spawn_reagent = /singleton/reagent/drink/spacemountainwind
/obj/item/reagent_containers/chem_disp_cartridge/sodawater
spawn_reagent = /singleton/reagent/drink/sodawater
/obj/item/reagent_containers/chem_disp_cartridge/spaceup
spawn_reagent = /singleton/reagent/drink/spaceup
/obj/item/reagent_containers/chem_disp_cartridge/tea
spawn_reagent = /singleton/reagent/drink/tea
/obj/item/reagent_containers/chem_disp_cartridge/tonic
spawn_reagent = /singleton/reagent/drink/tonic
/obj/item/reagent_containers/chem_disp_cartridge/watermelon
spawn_reagent = /singleton/reagent/drink/watermelonjuice
// Bar, coffee and tea
chaitea spawn_reagent = /singleton/reagent/drink/tea/chaitea
ciderhot spawn_reagent = /singleton/reagent/drink/ciderhot
coffee spawn_reagent = /singleton/reagent/drink/coffee
cream spawn_reagent = /singleton/reagent/drink/milk/cream
espresso spawn_reagent = /singleton/reagent/drink/coffee/espresso
fatshouter_milk spawn_reagent = /singleton/reagent/drink/milk/adhomai
greentea spawn_reagent = /singleton/reagent/drink/tea/greentea
hot_coco spawn_reagent = /singleton/reagent/drink/hot_coco
milk spawn_reagent = /singleton/reagent/drink/milk
soymilk spawn_reagent = /singleton/reagent/drink/milk/soymilk
/obj/item/reagent_containers/chem_disp_cartridge/chaitea
spawn_reagent = /singleton/reagent/drink/tea/chaitea
// Bar, misc. mixed drink ingredients
uranium spawn_reagent = /singleton/reagent/uranium
uranium/small volume = CARTRIDGE_VOLUME_SMALL
toothpaste spawn_reagent = /singleton/reagent/drink/toothpaste
/obj/item/reagent_containers/chem_disp_cartridge/ciderhot
spawn_reagent = /singleton/reagent/drink/ciderhot
/obj/item/reagent_containers/chem_disp_cartridge/coffee
spawn_reagent = /singleton/reagent/drink/coffee
/obj/item/reagent_containers/chem_disp_cartridge/cream
spawn_reagent = /singleton/reagent/drink/milk/cream
/obj/item/reagent_containers/chem_disp_cartridge/espresso
spawn_reagent = /singleton/reagent/drink/coffee/espresso
/obj/item/reagent_containers/chem_disp_cartridge/fatshouter_milk
spawn_reagent = /singleton/reagent/drink/milk/adhomai
/obj/item/reagent_containers/chem_disp_cartridge/greentea
spawn_reagent = /singleton/reagent/drink/tea/greentea
/obj/item/reagent_containers/chem_disp_cartridge/hot_coco
spawn_reagent = /singleton/reagent/drink/hot_coco
/obj/item/reagent_containers/chem_disp_cartridge/milk
spawn_reagent = /singleton/reagent/drink/milk
/obj/item/reagent_containers/chem_disp_cartridge/soymilk
spawn_reagent = /singleton/reagent/drink/milk/soymilk
// Bar, misc. mixed drink ingredients
/obj/item/reagent_containers/chem_disp_cartridge/uranium
spawn_reagent = /singleton/reagent/uranium
/obj/item/reagent_containers/chem_disp_cartridge/uranium/small
volume = CARTRIDGE_VOLUME_SMALL
/obj/item/reagent_containers/chem_disp_cartridge/toothpaste
spawn_reagent = /singleton/reagent/drink/toothpaste
// ERT
/obj/item/reagent_containers/chem_disp_cartridge/alkysine
spawn_reagent = /singleton/reagent/alkysine
/obj/item/reagent_containers/chem_disp_cartridge/arithrazine
spawn_reagent = /singleton/reagent/arithrazine
/obj/item/reagent_containers/chem_disp_cartridge/cetahydramine
spawn_reagent = /singleton/reagent/cetahydramine
/obj/item/reagent_containers/chem_disp_cartridge/bicaridine
spawn_reagent = /singleton/reagent/bicaridine
/obj/item/reagent_containers/chem_disp_cartridge/chloral
spawn_reagent = /singleton/reagent/polysomnine
/obj/item/reagent_containers/chem_disp_cartridge/clonexadone
spawn_reagent = /singleton/reagent/clonexadone
/obj/item/reagent_containers/chem_disp_cartridge/coughsyrup
spawn_reagent = /singleton/reagent/antidexafen
/obj/item/reagent_containers/chem_disp_cartridge/cryoxadone
spawn_reagent = /singleton/reagent/cryoxadone
/obj/item/reagent_containers/chem_disp_cartridge/dermaline
spawn_reagent = /singleton/reagent/dermaline
/obj/item/reagent_containers/chem_disp_cartridge/dexalin
spawn_reagent = /singleton/reagent/dexalin
/obj/item/reagent_containers/chem_disp_cartridge/dexalin/small
volume = CARTRIDGE_VOLUME_SMALL // For the medicine cartridge crate, so it's not too easy to get large amounts of dexalin
/obj/item/reagent_containers/chem_disp_cartridge/dexalin_p
spawn_reagent = /singleton/reagent/dexalin/plus
/obj/item/reagent_containers/chem_disp_cartridge/dylovene
spawn_reagent = /singleton/reagent/dylovene
/obj/item/reagent_containers/chem_disp_cartridge/ethylredox
spawn_reagent = /singleton/reagent/ethylredoxrazine
/obj/item/reagent_containers/chem_disp_cartridge/hyperzine
spawn_reagent = /singleton/reagent/hyperzine
/obj/item/reagent_containers/chem_disp_cartridge/hyronalin
spawn_reagent = /singleton/reagent/hyronalin
/obj/item/reagent_containers/chem_disp_cartridge/oculine
spawn_reagent = /singleton/reagent/oculine
/obj/item/reagent_containers/chem_disp_cartridge/kelotane
spawn_reagent = /singleton/reagent/kelotane
/obj/item/reagent_containers/chem_disp_cartridge/butazoline
spawn_reagent = /singleton/reagent/butazoline
/obj/item/reagent_containers/chem_disp_cartridge/saline
spawn_reagent = /singleton/reagent/saline
/obj/item/reagent_containers/chem_disp_cartridge/leporazine
spawn_reagent = /singleton/reagent/leporazine
/obj/item/reagent_containers/chem_disp_cartridge/inaprov
spawn_reagent = /singleton/reagent/inaprovaline
/obj/item/reagent_containers/chem_disp_cartridge/oxycomorphine
spawn_reagent = /singleton/reagent/oxycomorphine
/obj/item/reagent_containers/chem_disp_cartridge/perconol
spawn_reagent = /singleton/reagent/perconol
/obj/item/reagent_containers/chem_disp_cartridge/peridaxon
spawn_reagent = /singleton/reagent/peridaxon
/obj/item/reagent_containers/chem_disp_cartridge/pneumalin
spawn_reagent = /singleton/reagent/pneumalin
/obj/item/reagent_containers/chem_disp_cartridge/rezadone
spawn_reagent = /singleton/reagent/rezadone
/obj/item/reagent_containers/chem_disp_cartridge/ryetalyn
spawn_reagent = /singleton/reagent/ryetalyn
/obj/item/reagent_containers/chem_disp_cartridge/sleeptox
spawn_reagent = /singleton/reagent/soporific
/obj/item/reagent_containers/chem_disp_cartridge/sterilizine
spawn_reagent = /singleton/reagent/sterilizine
/obj/item/reagent_containers/chem_disp_cartridge/synaptizine
spawn_reagent = /singleton/reagent/synaptizine
/obj/item/reagent_containers/chem_disp_cartridge/thetamycin
spawn_reagent = /singleton/reagent/thetamycin
/obj/item/reagent_containers/chem_disp_cartridge/mortaphenyl
spawn_reagent = /singleton/reagent/mortaphenyl
/obj/item/reagent_containers/chem_disp_cartridge/tricord
spawn_reagent = /singleton/reagent/tricordrazine
/obj/item/reagent_containers/chem_disp_cartridge/sanasomnum
spawn_reagent = /singleton/reagent/sanasomnum
// ERT
alkysine spawn_reagent = /singleton/reagent/alkysine
arithrazine spawn_reagent = /singleton/reagent/arithrazine
cetahydramine spawn_reagent = /singleton/reagent/cetahydramine
bicaridine spawn_reagent = /singleton/reagent/bicaridine
chloral spawn_reagent = /singleton/reagent/polysomnine
clonexadone spawn_reagent = /singleton/reagent/clonexadone
coughsyrup spawn_reagent = /singleton/reagent/antidexafen
cryoxadone spawn_reagent = /singleton/reagent/cryoxadone
dermaline spawn_reagent = /singleton/reagent/dermaline
dexalin spawn_reagent = /singleton/reagent/dexalin
dexalin/small volume = CARTRIDGE_VOLUME_SMALL // For the medicine cartridge crate, so it's not too easy to get large amounts of dexalin
dexalin_p spawn_reagent = /singleton/reagent/dexalin/plus
dylovene spawn_reagent = /singleton/reagent/dylovene
ethylredox spawn_reagent = /singleton/reagent/ethylredoxrazine
hyperzine spawn_reagent = /singleton/reagent/hyperzine
hyronalin spawn_reagent = /singleton/reagent/hyronalin
oculine spawn_reagent = /singleton/reagent/oculine
kelotane spawn_reagent = /singleton/reagent/kelotane
butazoline spawn_reagent = /singleton/reagent/butazoline
saline spawn_reagent = /singleton/reagent/saline
leporazine spawn_reagent = /singleton/reagent/leporazine
inaprov spawn_reagent = /singleton/reagent/inaprovaline
oxycomorphine spawn_reagent = /singleton/reagent/oxycomorphine
perconol spawn_reagent = /singleton/reagent/perconol
peridaxon spawn_reagent = /singleton/reagent/peridaxon
pneumalin spawn_reagent = /singleton/reagent/pneumalin
rezadone spawn_reagent = /singleton/reagent/rezadone
ryetalyn spawn_reagent = /singleton/reagent/ryetalyn
sleeptox spawn_reagent = /singleton/reagent/soporific
sterilizine spawn_reagent = /singleton/reagent/sterilizine
synaptizine spawn_reagent = /singleton/reagent/synaptizine
thetamycin spawn_reagent = /singleton/reagent/thetamycin
mortaphenyl spawn_reagent = /singleton/reagent/mortaphenyl
tricord spawn_reagent = /singleton/reagent/tricordrazine
sanasomnum spawn_reagent = /singleton/reagent/sanasomnum

View File

@@ -210,18 +210,20 @@
/obj/item/reagent_containers/personal_inhaler_cartridge/large/hyperzine
name = "large inhaler cartridge (hyperzine)"
Initialize()
. =..()
reagents.add_reagent(/singleton/reagent/hyperzine, 30)
flags ^= OPENCONTAINER
update_icon()
return
/obj/item/reagent_containers/personal_inhaler_cartridge/large/hyperzine/Initialize()
. = ..()
reagents.add_reagent(/singleton/reagent/hyperzine, 30)
flags ^= OPENCONTAINER
update_icon()
return
/obj/item/reagent_containers/personal_inhaler_cartridge/large/inaprovaline
name = "large inhaler cartridge (inaprovaline)"
Initialize()
. =..()
reagents.add_reagent(/singleton/reagent/inaprovaline, 30)
flags ^= OPENCONTAINER
update_icon()
return
/obj/item/reagent_containers/personal_inhaler_cartridge/large/inaprovaline/Initialize()
. = ..()
reagents.add_reagent(/singleton/reagent/inaprovaline, 30)
flags ^= OPENCONTAINER
update_icon()
return

View File

@@ -18,68 +18,67 @@
drop_sound = 'sound/items/drop/food.ogg'
pickup_sound = 'sound/items/pickup/food.ogg'
New()
..()
if(!icon_state)
icon_state = "pill[rand(1, 20)]"
/obj/item/reagent_containers/pill/New()
..()
if(!icon_state)
icon_state = "pill[rand(1, 20)]"
attack(mob/M as mob, mob/user as mob, def_zone)
//TODO: replace with standard_feed_mob() call.
/obj/item/reagent_containers/pill/attack(mob/M as mob, mob/user as mob, def_zone)
//TODO: replace with standard_feed_mob() call.
if(M == user)
if(!M.can_eat(src))
return
M.visible_message("<b>[M]</b> swallows a pill.", SPAN_NOTICE("You swallow \the [src]."), null, 2)
if(reagents.total_volume)
reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST)
qdel(src)
return 1
else if(istype(M, /mob/living/carbon/human))
if(!M.can_force_feed(user, src))
return
user.visible_message(SPAN_WARNING("[user] attempts to force [M] to swallow \the [src]!"))
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(!do_mob(user, M))
return
user.visible_message(SPAN_WARNING("[user] forces [M] to swallow \the [src]."))
var/contained = reagentlist()
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [name] by [key_name(user)] Reagents: [contained]</font>")
user.attack_log += text("\[[time_stamp()]\] <span class='warning'>Fed [name] to [key_name(M)] Reagents: [contained]</span>")
msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [name] Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)",ckey=key_name(user),ckey_target=key_name(M))
if(reagents.total_volume)
reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST)
qdel(src)
return 1
return 0
afterattack(obj/target, mob/user, proximity)
if(proximity && target.is_open_container() && target.reagents)
if(!target.reagents.total_volume)
to_chat(user, SPAN_NOTICE("You can't dissolve \the [src] in an empty [target]."))
return
to_chat(user, SPAN_NOTICE("You dissolve \the [src] in [target]."))
user.attack_log += text("\[[time_stamp()]\] <span class='warning'>Spiked \a [target] with a pill. Reagents: [reagentlist()]</span>")
msg_admin_attack("[user.name] ([user.ckey]) spiked \a [target] with a pill. Reagents: [reagentlist()] (INTENT: [uppertext(user.a_intent)]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)",ckey=key_name(user),ckey_target=key_name(target))
reagents.trans_to(target, reagents.total_volume)
for(var/mob/O in viewers(2, user))
O.show_message(SPAN_WARNING("[user] puts something in \the [target]."), 1)
qdel(src)
if(M == user)
if(!M.can_eat(src))
return
. = ..()
M.visible_message("<b>[M]</b> swallows a pill.", SPAN_NOTICE("You swallow \the [src]."), null, 2)
if(reagents.total_volume)
reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST)
qdel(src)
return 1
else if(istype(M, /mob/living/carbon/human))
if(!M.can_force_feed(user, src))
return
user.visible_message(SPAN_WARNING("[user] attempts to force [M] to swallow \the [src]!"))
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(!do_mob(user, M))
return
user.visible_message(SPAN_WARNING("[user] forces [M] to swallow \the [src]."))
var/contained = reagentlist()
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [name] by [key_name(user)] Reagents: [contained]</font>")
user.attack_log += text("\[[time_stamp()]\] <span class='warning'>Fed [name] to [key_name(M)] Reagents: [contained]</span>")
msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [name] Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)",ckey=key_name(user),ckey_target=key_name(M))
if(reagents.total_volume)
reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST)
qdel(src)
return 1
return 0
/obj/item/reagent_containers/pill/afterattack(obj/target, mob/user, proximity)
if(proximity && target.is_open_container() && target.reagents)
if(!target.reagents.total_volume)
to_chat(user, SPAN_NOTICE("You can't dissolve \the [src] in an empty [target]."))
return
to_chat(user, SPAN_NOTICE("You dissolve \the [src] in [target]."))
user.attack_log += text("\[[time_stamp()]\] <span class='warning'>Spiked \a [target] with a pill. Reagents: [reagentlist()]</span>")
msg_admin_attack("[user.name] ([user.ckey]) spiked \a [target] with a pill. Reagents: [reagentlist()] (INTENT: [uppertext(user.a_intent)]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)",ckey=key_name(user),ckey_target=key_name(target))
reagents.trans_to(target, reagents.total_volume)
for(var/mob/O in viewers(2, user))
O.show_message(SPAN_WARNING("[user] puts something in \the [target]."), 1)
qdel(src)
return
. = ..()
////////////////////////////////////////////////////////////////////////////////
/// Pills. END
@@ -235,7 +234,7 @@
icon_state = "pill18"
reagents_to_add = list(/singleton/reagent/impedrezene = 5, /singleton/reagent/synaptizine = 5, /singleton/reagent/hyperzine = 5)
obj/item/reagent_containers/pill/joy
/obj/item/reagent_containers/pill/joy
name = "Joy Pill"
desc = "Peace, at last."
icon_state = "pill8"