/obj/item/weapon/reagent_containers/dropper name = "dropper" desc = "A dropper. Holds up to 5 units." icon = 'icons/obj/chemical.dmi' icon_state = "dropper0" amount_per_transfer_from_this = 5 possible_transfer_amounts = list(1, 2, 3, 4, 5) volume = 5 /obj/item/weapon/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity) if(!proximity) return if(!target.reagents) return if(reagents.total_volume > 0) if(target.reagents.total_volume >= target.reagents.maximum_volume) user << "[target] is full." return if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/cigarette)) //You can inject humans and food but you cant remove the shit. user << "You cannot directly fill [target]!" return var/trans = 0 var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) if(ismob(target)) if(istype(target , /mob/living/carbon/human)) var/mob/living/carbon/human/victim = target var/obj/item/safe_thing = null if(victim.wear_mask) if(victim.wear_mask.flags_cover & MASKCOVERSEYES) safe_thing = victim.wear_mask if(victim.head) if(victim.head.flags_cover & MASKCOVERSEYES) safe_thing = victim.head if(victim.glasses) if(!safe_thing) safe_thing = victim.glasses if(safe_thing) if(!safe_thing.reagents) safe_thing.create_reagents(100) reagents.reaction(safe_thing, TOUCH, fraction) trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this) target.visible_message("[user] tries to squirt something into [target]'s eyes, but fails!", \ "[user] tries to squirt something into [target]'s eyes, but fails!") user << "You transfer [trans] unit\s of the solution." update_icon() return target.visible_message("[user] squirts something into [target]'s eyes!", \ "[user] squirts something into [target]'s eyes!") reagents.reaction(target, TOUCH, fraction) var/mob/M = target var/R if(reagents) for(var/datum/reagent/A in src.reagents.reagent_list) R += A.id + " (" R += num2text(A.volume) + ")," add_logs(user, M, "squirted", R) trans = src.reagents.trans_to(target, amount_per_transfer_from_this) user << "You transfer [trans] unit\s of the solution." update_icon() else if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers)) user << "You cannot directly remove reagents from [target]." return if(!target.reagents.total_volume) user << "[target] is empty!" return var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) user << "You fill [src] with [trans] unit\s of the solution." update_icon() /obj/item/weapon/reagent_containers/dropper/update_icon() overlays.Cut() if(reagents.total_volume) var/image/filling = image('icons/obj/reagentfillings.dmi', src, "dropper") filling.color = mix_color_from_reagents(reagents.reagent_list) overlays += filling