diff --git a/code/__DEFINES/dcs/flags.dm b/code/__DEFINES/dcs/flags.dm index 3d045b12684..2657b95f3b3 100644 --- a/code/__DEFINES/dcs/flags.dm +++ b/code/__DEFINES/dcs/flags.dm @@ -48,6 +48,7 @@ //Ingredient type in datum/component/customizable_reagent_holder #define CUSTOM_INGREDIENT_TYPE_EDIBLE 1 +#define CUSTOM_INGREDIENT_TYPE_DRYABLE 2 //Icon overlay type in datum/component/customizable_reagent_holder #define CUSTOM_INGREDIENT_ICON_NOCHANGE 0 diff --git a/code/datums/components/customizable_reagent_holder.dm b/code/datums/components/customizable_reagent_holder.dm index 2620a45c894..229a4e7d958 100644 --- a/code/datums/components/customizable_reagent_holder.dm +++ b/code/datums/components/customizable_reagent_holder.dm @@ -33,7 +33,8 @@ if(!isatom(parent)) return COMPONENT_INCOMPATIBLE var/atom/atom_parent = parent - if (!atom_parent.reagents) + // assume replacement is OK + if (!atom_parent.reagents && !replacement) return COMPONENT_INCOMPATIBLE src.replacement = replacement @@ -108,6 +109,8 @@ switch (ingredient_type) if (CUSTOM_INGREDIENT_TYPE_EDIBLE) valid_ingredient = IS_EDIBLE(ingredient) + if (CUSTOM_INGREDIENT_TYPE_DRYABLE) + valid_ingredient = HAS_TRAIT(ingredient, TRAIT_DRYABLE) // only accept valid ingredients if (!valid_ingredient || HAS_TRAIT(ingredient, TRAIT_CUSTOMIZABLE_REAGENT_HOLDER)) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index b01c9e55ae8..4a0622ff25d 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -914,25 +914,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = "cig_paper" w_class = WEIGHT_CLASS_TINY -/obj/item/rollingpaper/afterattack(atom/target, mob/user, proximity) +/obj/item/rollingpaper/Initialize(mapload) . = ..() - if(!proximity) - return - if(!istype(target, /obj/item/food/grown)) - return + AddComponent(/datum/component/customizable_reagent_holder, /obj/item/clothing/mask/cigarette/rollie, CUSTOM_INGREDIENT_ICON_NOCHANGE, ingredient_type=CUSTOM_INGREDIENT_TYPE_DRYABLE, max_ingredients=2) - if(!HAS_TRAIT(target, TRAIT_DRIED)) - to_chat(user, span_warning("You need to dry [target] first!")) - return - - var/obj/item/clothing/mask/cigarette/rollie/R = new /obj/item/clothing/mask/cigarette/rollie(user.loc) - R.chem_volume = target.reagents.maximum_volume - target.reagents.trans_to(R, R.chem_volume, transfered_by = user) - qdel(target) - qdel(src) - user.put_in_active_hand(R) - to_chat(user, span_notice("You roll the [target.name] into a rolling paper.")) - R.desc = "Dried [target.name] rolled up in a thin piece of paper." /////////////// //VAPE NATION//