diff --git a/code/game/objects/items/cigarettes.dm b/code/game/objects/items/cigarettes.dm index 068d82dfc66..33bd58ea99d 100644 --- a/code/game/objects/items/cigarettes.dm +++ b/code/game/objects/items/cigarettes.dm @@ -422,16 +422,29 @@ CIGARETTE PACKETS ARE IN FANCY.DM damtype = BURN force = 4 - if(reagents && reagents.has_reagent(/datum/reagent/drug/methamphetamine)) + if(reagents?.has_reagent(/datum/reagent/flash_powder)) + if(!isliving(loc)) + loc.visible_message(span_hear("\The [src] burns up!")) + qdel(src) + return + var/mob/living/user = loc + loc.visible_message(span_hear("[user]'s [name] burns up as [p_they(user)] fall to the ground!"), span_danger("The solution violently explodes!")) + user.flash_act(INFINITY, visual = TRUE, length = 5 SECONDS) + user.playsound_local(get_turf(user), SFX_EXPLOSION, 50, TRUE) + user.cause_hallucination(/datum/hallucination/death, "trick trick [name]") + qdel(src) + return + + if(reagents?.has_reagent(/datum/reagent/drug/methamphetamine)) reagents.flags |= NO_REACT - if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire + if(reagents?.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire var/datum/effect_system/reagents_explosion/e = new() e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0) e.start(src) qdel(src) return - if(reagents.get_reagent_amount(/datum/reagent/fuel)) // the fuel explodes, too, but much less violently + if(reagents?.get_reagent_amount(/datum/reagent/fuel)) // the fuel explodes, too, but much less violently var/datum/effect_system/reagents_explosion/e = new() e.set_up(round(reagents.get_reagent_amount(/datum/reagent/fuel) / 5, 1), get_turf(src), 0, 0) e.start(src) @@ -710,6 +723,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM lung_harm = 2 list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4) +/obj/item/cigarette/flash_powder + desc = /obj/item/cigarette/space_cigarette::desc + list_reagents = list (/datum/reagent/drug/nicotine = 9, /datum/reagent/flash_powder = 5) + // Rollies. /obj/item/cigarette/rollie diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 14c5c626fe7..f8b650ec0ee 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -465,6 +465,9 @@ spawn_coupon = FALSE open_status = FANCY_CONTAINER_OPEN +/obj/item/storage/fancy/cigarettes/flash_powder + spawn_type = /obj/item/cigarette/flash_powder + /obj/item/storage/fancy/rollingpapers name = "rolling paper pack" desc = "A pack of Nanotrasen brand rolling papers." diff --git a/code/modules/cargo/markets/market_items/misc.dm b/code/modules/cargo/markets/market_items/misc.dm index 7f1ede77d53..801e4d4e76d 100644 --- a/code/modules/cargo/markets/market_items/misc.dm +++ b/code/modules/cargo/markets/market_items/misc.dm @@ -221,3 +221,12 @@ . = ..() if(.) availability_prob *= 0.5 + +/datum/market_item/misc/tricktrickcigarettes + name = "Trick Trick Cigarettes" + desc = "Cigarettes filled with flash powder. Makes for a fun prank!" + item = /obj/item/storage/fancy/cigarettes/flash_powder + price_min = PAYCHECK_CREW + price_max = PAYCHECK_CREW * 3 + stock_max = 3 + availability_prob = 25