diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm index de3eb52bdd2..f067a9f9e65 100644 --- a/code/game/objects/items/weapons/cigs.dm +++ b/code/game/objects/items/weapons/cigs.dm @@ -29,21 +29,23 @@ LIGHTERS ARE IN LIGHTERS.DM var/icon_off = "cigoff" var/type_butt = /obj/item/cigbutt var/lastHolder = null - var/smoketime = 300 - var/chem_volume = 30 + var/smoketime = 150 + var/chem_volume = 60 + var/list/list_reagents = list("nicotine" = 40) sprite_sheets = list( "Vox" = 'icons/mob/species/vox/mask.dmi', "Unathi" = 'icons/mob/species/unathi/mask.dmi', "Tajaran" = 'icons/mob/species/tajaran/mask.dmi', "Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi', - "Grey" = 'icons/mob/species/grey/mask.dmi' - ) + "Grey" = 'icons/mob/species/grey/mask.dmi') /obj/item/clothing/mask/cigarette/New() ..() create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 30 reagents.set_reacting(FALSE) // so it doesn't react until you light it + if(list_reagents) + reagents.add_reagent_list(list_reagents) /obj/item/clothing/mask/cigarette/Destroy() QDEL_NULL(reagents) @@ -168,7 +170,7 @@ LIGHTERS ARE IN LIGHTERS.DM if(isliving(loc)) M.IgniteMob() smoketime-- - if(smoketime < 1) + if(reagents.total_volume <= 0 || smoketime < 1) die() return smoke() @@ -219,9 +221,20 @@ LIGHTERS ARE IN LIGHTERS.DM /obj/item/clothing/mask/cigarette/random /obj/item/clothing/mask/cigarette/random/New() + list_reagents = list("nicotine" = 40, pick("fuel","saltpetre","synaptizine","green_vomit","potass_iodide","msg","lexorin","mannitol","spaceacillin","cryoxadone","holywater","tea","egg","haloperidol","mutagen","omnizine","carpet","aranesp","cryostylane","chocolate","bilk","cheese","rum","blood","charcoal","coffee","ectoplasm","space_drugs","milk","mutadone","antihol","teporone","insulin","salbutamol","toxin") = 20) ..() - var/random_reagent = pick("fuel","saltpetre","synaptizine","green_vomit","potass_iodide","msg","lexorin","mannitol","spaceacillin","cryoxadone","holywater","tea","egg","haloperidol","mutagen","omnizine","carpet","aranesp","cryostylane","chocolate","bilk","cheese","rum","blood","charcoal","coffee","ectoplasm","space_drugs","milk","mutadone","antihol","teporone","insulin","salbutamol","toxin") - reagents.add_reagent(random_reagent, 10) + +/obj/item/clothing/mask/cigarette/syndicate + list_reagents = list("nicotine" = 40, "omnizine" = 20) + +/obj/item/clothing/mask/cigarette/medical_marijuana + list_reagents = list("thc" = 40) + +/obj/item/clothing/mask/cigarette/robustgold + list_reagents = list("nicotine" = 40, "gold" = 1) + +/obj/item/clothing/mask/cigarette/shadyjims + list_reagents = list("nicotine" = 40, "lipolicide" = 7.5, "ammonia" = 2, "atrazine" = 1, "toxin" = 1.5) /obj/item/clothing/mask/cigarette/rollie name = "rollie" @@ -232,8 +245,6 @@ LIGHTERS ARE IN LIGHTERS.DM type_butt = /obj/item/cigbutt/roach throw_speed = 0.5 item_state = "spliffoff" - smoketime = 250 - chem_volume = 100 /obj/item/clothing/mask/cigarette/rollie/New() ..() @@ -263,12 +274,9 @@ LIGHTERS ARE IN LIGHTERS.DM type_butt = /obj/item/cigbutt/cigarbutt throw_speed = 0.5 item_state = "cigaroff" - smoketime = 1500 - chem_volume = 40 - -/obj/item/clothing/mask/cigarette/cigar/New() - ..() - reagents.add_reagent("nicotine", chem_volume/2) + smoketime = 300 + chem_volume = 120 + list_reagents = list("nicotine" = 120) /obj/item/clothing/mask/cigarette/cigar/cohiba name = "Cohiba Robusto Cigar" @@ -283,8 +291,9 @@ LIGHTERS ARE IN LIGHTERS.DM icon_state = "cigar2off" icon_on = "cigar2on" icon_off = "cigar2off" - smoketime = 7200 - chem_volume = 60 + smoketime = 450 + chem_volume = 180 + list_reagents = list("nicotine" = 180) /obj/item/cigbutt name = "cigarette butt" diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index a4fb593ab6f..58864d9e489 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -169,39 +169,15 @@ /obj/item/clothing/mask/cigarette/pipe, /obj/item/lighter/zippo) icon_type = "cigarette" - var/list/unlaced_cigarettes = list() // Cigarettes that haven't received reagents yet - var/default_reagents = list("nicotine" = 15) // List of reagents to pre-generate for each cigarette var/cigarette_type = /obj/item/clothing/mask/cigarette /obj/item/storage/fancy/cigarettes/New() ..() - create_reagents(30 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one - reagents.set_reacting(FALSE) for(var/i = 1 to storage_slots) - var/obj/item/clothing/mask/cigarette/C = new cigarette_type(src) - unlaced_cigarettes += C - for(var/R in default_reagents) - reagents.add_reagent(R, default_reagents[R]) - - -/obj/item/storage/fancy/cigarettes/Destroy() - QDEL_NULL(reagents) - return ..() - + new cigarette_type(src) /obj/item/storage/fancy/cigarettes/update_icon() icon_state = "[initial(icon_state)][contents.len]" - return - -/obj/item/storage/fancy/cigarettes/proc/lace_cigarette(var/obj/item/clothing/mask/cigarette/C as obj) - if(istype(C) && (C in unlaced_cigarettes)) // Only transfer reagents to each cigarette once - reagents.trans_to(C, (reagents.total_volume/unlaced_cigarettes.len)) - unlaced_cigarettes -= C - reagents.maximum_volume = 30 * unlaced_cigarettes.len - -/obj/item/storage/fancy/cigarettes/remove_from_storage(obj/item/W as obj, atom/new_location) - lace_cigarette(W) - ..() /obj/item/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) if(!istype(M, /mob)) @@ -213,7 +189,6 @@ var/obj/item/I = contents[num] if(istype(I, /obj/item/clothing/mask/cigarette)) var/obj/item/clothing/mask/cigarette/C = I - lace_cigarette(C) user.equip_to_slot_if_possible(C, slot_wear_mask) to_chat(user, "You take \a [C.name] out of the pack.") update_icon() @@ -263,14 +238,14 @@ desc = "An obscure brand of cigarettes." icon_state = "syndiepacket" item_state = "cigpacket" - default_reagents = list("nicotine" = 15, "omnizine" = 15) + cigarette_type = /obj/item/clothing/mask/cigarette/syndicate /obj/item/storage/fancy/cigarettes/cigpack_med name = "Medical Marijuana Packet" desc = "A prescription packet containing six marijuana cigarettes." icon_state = "medpacket" item_state = "cigpacket" - default_reagents = list("thc" = 15) + cigarette_type = /obj/item/clothing/mask/cigarette/medical_marijuana /obj/item/storage/fancy/cigarettes/cigpack_uplift name = "\improper Uplift Smooth packet" @@ -289,7 +264,7 @@ desc = "Smoked by the truly robust." icon_state = "robustgpacket" item_state = "cigpacket" - default_reagents = list("nicotine" = 15, "gold" = 1) + cigarette_type = /obj/item/clothing/mask/cigarette/robustgold /obj/item/storage/fancy/cigarettes/cigpack_carp name = "\improper Carp Classic packet" @@ -308,18 +283,14 @@ desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!" icon_state = "shadyjimpacket" item_state = "cigpacket" - default_reagents = list("nicotine" = 15, - "lipolicide" = 7.5, - "ammonia" = 2, - "atrazine" = 1, - "toxin" = 1.5) + cigarette_type = /obj/item/clothing/mask/cigarette/shadyjims /obj/item/storage/fancy/cigarettes/cigpack_random name ="\improper Embellished Enigma packet" desc = "For the true connoisseur of exotic flavors." icon_state = "shadyjimpacket" item_state = "cigpacket" - cigarette_type = /obj/item/clothing/mask/cigarette/random + cigarette_type = /obj/item/clothing/mask/cigarette/random /obj/item/storage/fancy/rollingpapers name = "rolling paper pack"