The Rollable Cigs and Chews Update (#7631)

This commit is contained in:
Wowzewow (Wezzy)
2019-12-20 23:48:17 +01:00
committed by Werner
parent 203b4a92a8
commit ff25557eb8
30 changed files with 563 additions and 118 deletions
@@ -11,7 +11,7 @@
origin_tech = list(TECH_ILLEGAL = 4, TECH_MAGNET = 4)
var/can_use = 1
var/obj/effect/dummy/chameleon/active_dummy = null
var/saved_item = /obj/item/cigbutt
var/saved_item = /obj/item/trash/cigbutt
var/saved_icon = 'icons/obj/clothing/masks.dmi'
var/saved_icon_state = "cigbutt"
var/saved_overlays
+12 -10
View File
@@ -33,6 +33,7 @@ obj/item/clothing/mask/chewable/Initialize()
reagents.add_reagent(R, filling[R])
if(wrapped)
slot_flags = null
update_icon()
/obj/item/clothing/mask/chewable/equipped(var/mob/living/user, var/slot)
..()
@@ -97,28 +98,29 @@ obj/item/clothing/mask/chewable/Destroy()
to_chat(M, span("notice", "You spit out the [name]."))
qdel(src)
/obj/item/clothing/mask/chewable/tobacco/lenni
/obj/item/clothing/mask/chewable/tobacco/bad
name = "chewing tobacco"
desc = "A chewy wad of tobacco. Cut in long strands and treated with syrup so it tastes less like an ash-tray when you stuff it into your face."
filling = list("nicotine" = 2)
desc = "A chewy wad of cheap tobacco. Cut in long strands and treated with syrup so it tastes less like an ash-tray when you stuff it into your face."
filling = list("tobaccobad" = 2)
/obj/item/clothing/mask/chewable/tobacco/redlady
/obj/item/clothing/mask/chewable/tobacco/generic
name = "chewing tobacco"
desc = "A chewy wad of tobacco. Cut in long strands and treated with syrup so it doesn't taste like an ash-tray when you stuff it into your face."
filling = list("tobacco" = 2)
/obj/item/clothing/mask/chewable/tobacco/fine
name = "chewing tobacco"
desc = "A chewy wad of fine tobacco. Cut in long strands and treated with syrup so it doesn't taste like an ash-tray when you stuff it into your face."
filling = list("nicotine" = 2)
filling = list("tobaccofine" = 2)
/obj/item/clothing/mask/chewable/tobacco/nico
name = "nicotine gum"
desc = "A chewy wad of synthetic rubber, laced with nicotine. Possibly the least disgusting method of nicotine delivery."
filling = list("nicotine" = 2)
icon_state = "nic_gum"
type_butt = /obj/item/trash/spitgum
wrapped = TRUE
/obj/item/clothing/mask/chewable/tobacco/nico/Initialize()
. = ..()
reagents.add_reagent("nicotine", 2)
color = reagents.get_color()
/obj/item/clothing/mask/chewable/candy
name = "wad"
desc = "A chewy wad of wadding material."
+188 -37
View File
@@ -39,6 +39,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
desc = "A simple match stick, used for lighting fine smokables."
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "match_unlit"
item_state = "match_unlit"
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
var/burnt = 0
var/smoketime = 5
w_class = 1.0
@@ -76,7 +81,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
burnt = 1
damtype = "brute"
icon_state = "match_burnt"
item_state = "cigoff"
item_state = "match_burnt"
name = "burnt match"
desc = "A match. This one has seen better days."
STOP_PROCESSING(SSprocessing, src)
@@ -87,6 +92,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable
name = "smokable item"
desc = "You're not sure what this is. You should probably ahelp it."
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
body_parts_covered = 0
var/lit = 0
var/icon_on
@@ -171,7 +180,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(ismob(loc))
var/mob/living/M = loc
if (!nomessage)
to_chat(M, "<span class='notice'>Your [name] goes out.</span>")
to_chat(M, span("notice", "Your [name] goes out."))
M.remove_from_mob(src) //un-equip it so the overlays can update
M.update_inv_wear_mask(0)
M.update_inv_l_hand(0)
@@ -183,7 +192,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(ismob(loc))
var/mob/living/M = loc
if (!nomessage)
to_chat(M, "<span class='notice'>Your [name] goes out, and you empty the ash.</span>")
to_chat(M, span("notice", "Your [name] goes out, and you empty the ash."))
playsound(src.loc, 'sound/items/cigs_lighters/cig_snuff.ogg', 50, 1)
lit = 0
icon_state = icon_off
@@ -223,7 +232,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
attack_verb = list("burnt", "singed")
icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi
icon_off = "cigoff"
type_butt = /obj/item/cigbutt
type_butt = /obj/item/trash/cigbutt
chem_volume = 30
burn_rate = 0.006 //Lasts ~166 seconds)
matchmes = "<span class='notice'>USER lights their NAME with their FLAME.</span>"
@@ -244,7 +253,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(istype(W, /obj/item/melee/energy/sword))
var/obj/item/melee/energy/sword/S = W
if(S.active)
light("<span class='warning'>[user] swings their [W], barely missing themselves. They light their [name] in the process.</span>")
light(span("warning", "[user] swings their [W], barely missing themselves. They light their [name] in the process."))
return
@@ -252,14 +261,14 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(lit && H == user && istype(H))
var/obj/item/blocked = H.check_mouth_coverage()
if(blocked)
to_chat(H, "<span class='warning'>\The [blocked] is in the way!</span>")
to_chat(H, span("warning", "\The [blocked] is in the way!"))
return 1
if(last_drag <= world.time - 30) //Spam limiter. Only for messages/sound.
last_drag = world.time
H.visible_message("<span class='notice'>[H.name] takes a drag of their [name].</span>")
playsound(H, 'sound/items/cigs_lighters/inhale.ogg', 50, 0, -1)
reagents.trans_to_mob(H, (rand(10,20)/10), CHEM_BREATHE) //Smokes it faster. Slightly random amount.
return 1
reagents.trans_to_mob(H, (rand(10,20)/10), CHEM_BREATHE) //Smokes it faster. Slightly random amount.
return 1
return ..()
/obj/item/clothing/mask/smokable/cigarette/afterattack(obj/item/reagent_containers/glass/glass, mob/user as mob, proximity)
@@ -269,17 +278,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(istype(glass)) //you can dip cigarettes into beakers
var/transfered = glass.reagents.trans_to_obj(src, chem_volume)
if(transfered) //if reagents were transfered, show the message
to_chat(user, "<span class='notice'>You dip \the [src] into \the [glass].</span>")
to_chat(user, span("warning", "You dip \the [src] into \the [glass]."))
playsound(src.loc, 'sound/effects/footsteps/slosh1.wav', 50, 1)
else //if not, either the beaker was empty, or the cigarette was full
if(!glass.reagents.total_volume)
to_chat(user, "<span class='notice'>[glass] is empty.</span>")
to_chat(user, span("notice", "[glass] is empty."))
else
to_chat(user, "<span class='notice'>[src] is full.</span>")
to_chat(user, span("notice", "[src] is full."))
/obj/item/clothing/mask/smokable/cigarette/attack_self(mob/user as mob)
if(lit == 1)
user.visible_message("<span class='notice'>[user] calmly drops and treads on the lit [src], putting it out instantly.</span>")
user.visible_message(span("notice", "[user] calmly drops and treads on the lit [src], putting it out instantly."))
playsound(src.loc, 'sound/items/cigs_lighters/cig_snuff.ogg', 50, 1)
die(1)
return ..()
@@ -314,13 +323,27 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/cigarette/dromedaryco
/obj/item/clothing/mask/smokable/cigarette/dromedaryco/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent("tobacco",5)
reagents.add_reagent("nicotine",10)
/obj/item/clothing/mask/smokable/cigarette/nicotine
/obj/item/clothing/mask/smokable/cigarette/nicotine/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent("tobaccofine",5)
reagents.add_reagent("nicotine",10)
/obj/item/clothing/mask/smokable/cigarette/rugged
/obj/item/clothing/mask/smokable/cigarette/rugged/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent("tobaccobad",10)
reagents.add_reagent("nicotine",5)
////////////
// CIGARS //
@@ -328,12 +351,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/cigarette/cigar
name = "premium cigar"
desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!"
icon_state = "cigar2off"
icon_on = "cigar2on"
icon_off = "cigar2off"
type_butt = /obj/item/cigbutt/cigarbutt
throw_speed = 0.5
icon_state = "cigaroff"
icon_on = "cigaron"
icon_off = "cigaroff"
item_state = "cigaroff"
type_butt = /obj/item/trash/cigbutt/cigarbutt
throw_speed = 0.5
burn_rate = 0.003 //Lasts ~300 seconds
chem_volume = 60
matchmes = "<span class='notice'>USER lights their NAME with their FLAME.</span>"
@@ -355,6 +378,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "cigar2off"
icon_on = "cigar2on"
icon_off = "cigar2off"
type_butt = /obj/item/trash/cigbutt/cigarbutt/alt
chem_volume = 60
/obj/item/clothing/mask/smokable/cigarette/cigar/havana/Initialize()
@@ -370,6 +394,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "cigar2off"
icon_on = "cigar2on"
icon_off = "cigar2off"
type_butt = /obj/item/trash/cigbutt/cigarbutt/alt
chem_volume = 120
/obj/item/clothing/mask/smokable/cigarette/cigar/cohiba/Initialize()
@@ -379,7 +404,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
reagents.add_reagent("nicotine",10) //1/6 Ratio
reagents.add_reagent("tricordrazine",20)
/obj/item/cigbutt
/obj/item/trash/cigbutt
name = "cigarette butt"
desc = "A manky old cigarette butt."
icon = 'icons/obj/clothing/masks.dmi'
@@ -390,22 +415,44 @@ CIGARETTE PACKETS ARE IN FANCY.DM
throwforce = 1
drop_sound = 'sound/items/cigs_lighters/cig_snuff.ogg'
/obj/item/cigbutt/Initialize()
/obj/item/trash/cigbutt/Initialize()
. = ..()
randpixel_xy()
transform = turn(transform,rand(0,360))
/obj/item/cigbutt/cigarbutt
/obj/item/trash/cigbutt/cigarbutt
name = "cigar butt"
desc = "A manky old cigar butt."
icon_state = "cigarbutt"
/obj/item/trash/cigbutt/cigarbutt/alt
icon_state = "cigarbutt2"
/obj/item/clothing/mask/smokable/cigarette/cigar/attackby(obj/item/W as obj, mob/user as mob)
..()
user.update_inv_wear_mask(0)
user.update_inv_l_hand(0)
user.update_inv_r_hand(1)
/obj/item/clothing/mask/smokable/cigarette/rolled/sausage
name = "sausage"
desc = "A piece of mixed, long meat, with a smoky scent."
icon_state = "sausageoff"
item_state = "sausageoff"
icon_on = "sausageon"
type_butt = /obj/item/trash/cigbutt/sausagebutt
chem_volume = 6
/obj/item/clothing/mask/smokable/cigarette/rolled/sausage/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent("protein",6)
/obj/item/trash/cigbutt/sausagebutt
name = "sausage butt"
desc = "A piece of burnt meat."
icon_state = "sausagebutt"
/////////////////
//SMOKING PIPES//
/////////////////
@@ -448,7 +495,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/pipe/attack_self(mob/user as mob)
if(lit == 1)
user.visible_message("<span class='notice'>[user] puts out [src].</span>", "<span class='notice'>You put out [src].</span>")
user.visible_message(span("notice", "[user] puts out [src]."), span("notice", "You put out [src]."))
playsound(src.loc, 'sound/items/cigs_lighters/cig_snuff.ogg', 50, 1)
lit = 0
icon_state = icon_off
@@ -456,7 +503,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
STOP_PROCESSING(SSprocessing, src)
else if (burn_rate)
var/turf/location = get_turf(user)
user.visible_message("<span class='notice'>[user] empties out [src].</span>", "<span class='notice'>You empty out [src].</span>")
user.visible_message(span("notice", "[user] empties out [src]."), span("notice", "You empty out [src]."))
new /obj/effect/decal/cleanable/ash(location)
burn_rate = 0
reagents.clear_reagents()
@@ -471,10 +518,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if (istype(W, /obj/item/reagent_containers/food/snacks))
var/obj/item/reagent_containers/food/snacks/grown/G = W
if (!G.dry)
to_chat(user, "<span class='notice'>[G] must be dried before you stuff it into [src].</span>")
to_chat(user, span("notice", "[G] must be dried before you stuff it into [src]."))
return
if (burn_rate)
to_chat(user, "<span class='notice'>[src] is already packed.</span>")
to_chat(user, span("notice", "[src] is already packed."))
return
if(G.reagents)
initial_volume = G.reagents.total_volume
@@ -486,15 +533,15 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else if(istype(W, /obj/item/flame/lighter))
var/obj/item/flame/lighter/L = W
if(L.lit)
light("<span class='notice'>[user] manages to light their [name] with [W].</span>")
light(span("notice", "[user] manages to light their [name] with [W]."))
else if(istype(W, /obj/item/flame/match))
var/obj/item/flame/match/M = W
if(M.lit)
light("<span class='notice'>[user] lights their [name] with their [W].</span>")
light(span("notice", "[user] lights their [name] with their [W]."))
else if(istype(W, /obj/item/device/assembly/igniter))
light("<span class='notice'>[user] fiddles with [W], and manages to light their [name] with the power of science.</span>")
light(span("notice", "[user] fiddles with [W], and manages to light their [name] with the power of science."))
user.update_inv_wear_mask(0)
user.update_inv_l_hand(0)
@@ -518,6 +565,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "lighter-g"
item_state = "lighter-g"
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
w_class = 1
throwforce = 4
flags = CONDUCT
@@ -557,20 +608,20 @@ CIGARETTE PACKETS ARE IN FANCY.DM
item_state = "[base_state]on"
playsound(src.loc, pick(activation_sound), 75, 1)
if(istype(src, /obj/item/flame/lighter/zippo) )
user.visible_message("<span class='notice'>Without even breaking stride, [user] flips open and lights [src] in one smooth movement.</span>")
user.visible_message(span("notice", "Without even breaking stride, [user] flips open and lights [src] in one smooth movement."))
else
if(prob(95))
user.visible_message("<span class='notice'>After a few attempts, [user] manages to light the [src].</span>")
user.visible_message(span("notice", "After a few attempts, [user] manages to light the [src]."))
else
to_chat(user, "<span class='warning'>You burn yourself while lighting the lighter.</span>")
to_chat(user, span("warning", "You burn yourself while lighting the lighter."))
if(user.IgniteMob())
user.visible_message(span("danger","\The [user] accidentally sets themselves on fire!"))
if (user.l_hand == src)
user.apply_damage(2,BURN,BP_L_HAND)
else
user.apply_damage(2,BURN,BP_R_HAND)
user.visible_message("<span class='notice'>After a few attempts, [user] manages to light the [src], they however burn their finger in the process.</span>")
user.visible_message(span("notice", "After a few attempts, [user] manages to light the [src], they however burn their finger in the process."))
set_light(2, 1, l_color = LIGHT_COLOR_LAVA)
START_PROCESSING(SSprocessing, src)
@@ -580,9 +631,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
item_state = "[base_state]"
playsound(src.loc, deactivation_sound, 75, 1)
if(istype(src, /obj/item/flame/lighter/zippo) )
user.visible_message("<span class='notice'>You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing.</span>")
user.visible_message(span("notice", "You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing."))
else
user.visible_message("<span class='notice'>[user] quietly shuts off the [src].</span>")
user.visible_message(span("notice", "[user] quietly shuts off the [src]."))
set_light(0)
STOP_PROCESSING(SSprocessing, src)
@@ -604,9 +655,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
cig.attackby(src, user)
else
if(istype(src, /obj/item/flame/lighter/zippo))
cig.light("<span class='notice'>[user] whips the [name] out and holds it for [M].</span>")
cig.light(span("notice", "[user] whips the [name] out and holds it for [M]."))
else
cig.light("<span class='notice'>[user] holds the [name] out for [M], and lights the [cig.name].</span>")
cig.light(span("notice", "[user] holds the [name] out for [M], and lights the [cig.name]."))
else
..()
@@ -631,4 +682,104 @@ CIGARETTE PACKETS ARE IN FANCY.DM
item_state = "[base_state]"
set_light(0)
STOP_PROCESSING(SSprocessing, src)
return
return
///////////
//ROLLING//
///////////
/obj/item/clothing/mask/smokable/cigarette/rolled
name = "rolled cigarette"
desc = "A hand rolled cigarette using dried plant matter."
icon_state = "cigrolloff"
item_state = "cigoff"
type_butt = /obj/item/trash/cigbutt/roll
chem_volume = 50
var/filter = 0
icon_on = "cigrollon"
icon_off = "cigrolloff"
/obj/item/trash/cigbutt/roll
icon_state = "rollbutt"
/obj/item/clothing/mask/smokable/cigarette/rolled/examine(mob/user)
. = ..()
if(. && filter)
to_chat(user, "Capped off one end with a filter.")
/obj/item/clothing/mask/smokable/cigarette/rolled/update_icon()
. = ..()
if(!lit)
icon_state = filter ? "cigoff" : "cigrolloff"
else
icon_state = filter ? "cigon" : "cigrollon"
/obj/item/paper/cig
name = "rolling paper"
desc = "A thin piece of paper used to make smokables."
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "cigpaper_generic"
w_class = 1.0
/obj/item/paper/cig/fine
name = "\improper Trident rolling paper"
desc = "A thin piece of trident branded paper used to make fine smokables."
icon_state = "cigpaper_fine"
/obj/item/paper/cig/filter
name = "cigarette filter"
desc = "A small nub like filter for cigarettes."
icon_state = "cigfilter"
w_class = 1.0
//tobacco sold seperately if you're too snobby to grow it yourself.
/obj/item/reagent_containers/food/snacks/grown/dried_tobacco
plantname = "tobacco"
w_class = 1.0
/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/Initialize()
. = ..()
dry = TRUE
name = "dried [name]"
color = "#a38463"
/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/bad
plantname = "badtobacco"
/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/fine
plantname = "finetobacco"
/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/pure
plantname = "puretobacco"
/obj/item/clothing/mask/smokable/cigarette/rolled/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/paper/cig/filter))
if(filter)
to_chat(user, span("warning", "[src] already has a filter!"))
return
if(lit)
to_chat(user, span("warning", "[src] is lit already!"))
return
if(user.unEquip(I))
to_chat(user, span("notice", "You stick [I] into \the [src]"))
filter = 1
name = "filtered [name]"
update_icon()
qdel(I)
return
..()
/obj/item/reagent_containers/food/snacks/grown/attackby(obj/item/I, mob/user)
if(is_type_in_list(I, list(/obj/item/paper/cig/, /obj/item/paper/, /obj/item/teleportation_scroll)))
if(!dry)
to_chat(user, span("warning", "You need to dry [src] first!"))
return
if(user.unEquip(I))
var/obj/item/clothing/mask/smokable/cigarette/rolled/R = new(get_turf(src))
R.chem_volume = reagents.total_volume
reagents.trans_to_holder(R.reagents, R.chem_volume)
to_chat(user, span("notice", "You roll \the [src] into \the [I]"))
user.put_in_active_hand(R)
qdel(I)
qdel(src)
return
..()
@@ -41,7 +41,7 @@
/obj/item/material/ashtray/attackby(obj/item/W as obj, mob/user as mob)
if (health <= 0)
return
if (istype(W,/obj/item/cigbutt) || istype(W,/obj/item/clothing/mask/smokable/cigarette) || istype(W, /obj/item/flame/match))
if (istype(W,/obj/item/trash/cigbutt) || istype(W,/obj/item/clothing/mask/smokable/cigarette) || istype(W, /obj/item/flame/match))
if (contents.len >= max_butts)
to_chat(user, "\The [src] is full.")
return
@@ -118,7 +118,7 @@
desc = "A faithful box that will remain with you, no matter where you go, and probably save you."
icon_state = "e_box"
autodrobe_no_remove = 1
starts_with = list(/obj/item/clothing/mask/breath = 1,
starts_with = list(/obj/item/clothing/mask/breath = 1,
/obj/item/tank/emergency_oxygen = 1,
/obj/item/device/flashlight/flare = 1
)
@@ -476,6 +476,7 @@
W.lit = 1
W.damtype = "burn"
W.icon_state = "match_lit"
W.item_state = "match_lit"
START_PROCESSING(SSprocessing, W)
else
playsound(src.loc, 'sound/items/cigs_lighters/matchstick_hit.ogg', 25, 0, -1)
@@ -151,11 +151,16 @@
//CIG PACK//
////////////
/obj/item/storage/fancy/cigarettes
name = "cigarette packet"
desc = "The most popular brand of Space Cigarettes, sponsors of the Space Olympics."
name = "Trans-Stellar Duty Free cigarette packet"
desc = "A ubiquitous brand of cigarettes, found in the facilities of every major spacefaring corporation in the universe. As mild and flavorless as it gets."
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "cigpacket"
item_state = "cigpacket"
icon_type = "cigarette"
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
drop_sound = 'sound/items/drop/gloves.ogg'
use_sound = 'sound/items/drop/paper.ogg'
w_class = 1
@@ -163,8 +168,7 @@
slot_flags = SLOT_BELT
storage_slots = 6
var/cigarette_to_spawn = /obj/item/clothing/mask/smokable/cigarette
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/flame/lighter, /obj/item/cigbutt)
icon_type = "cigarette"
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/flame/lighter, /obj/item/trash/cigbutt)
/obj/item/storage/fancy/cigarettes/Initialize()
flags |= NOREACT
@@ -213,21 +217,21 @@
// get it? A - AcmeCo, B - Blank, C - Cigar, D - DromedaryCo. How convenient is that? - Wezzy
/obj/item/storage/fancy/cigarettes/acmeco
name = "\improper AcmeCo packet"
name = "\improper AcmeCo cigarette packet"
desc = "A packet of six AcmeCo cigarettes. For those who somehow want to obtain the record for the most amount of cancerous tumors."
icon_state = "Apacket"
item_state = "Apacket" //Doesn't have an inhand state, but neither does dromedary, so, ya know..
item_state = "Apacket"
cigarette_to_spawn = /obj/item/clothing/mask/smokable/cigarette/acmeco
/obj/item/storage/fancy/cigarettes/blank
name = "\improper blank packet"
name = "\improper blank cigarette packet"
desc = "A packet of six blank cigarettes. The healthiest cigarettes on the market!"
icon_state = "Bpacket"
item_state = "Bpacket" //Doesn't have an inhand state, but neither does dromedary, so, ya know..
item_state = "Bpacket"
cigarette_to_spawn = /obj/item/clothing/mask/smokable/cigarette/blank
/obj/item/storage/fancy/cigarettes/dromedaryco
name = "\improper DromedaryCo packet"
name = "\improper DromedaryCo cigarette packet"
desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\""
icon_state = "Dpacket"
item_state = "Dpacket"
@@ -239,12 +243,16 @@
icon_state = "cigarcase"
item_state = "cigarcase"
icon = 'icons/obj/cigs_lighters.dmi'
drop_sound = 'sound/items/drop/gloves.ogg'
use_sound = 'sound/items/drop/paper.ogg'
drop_sound = 'sound/items/drop/shovel.ogg'
use_sound = 'sound/items/storage/briefcase.ogg'
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
w_class = 1
throwforce = 2
slot_flags = SLOT_BELT
storage_slots = 7
storage_slots = 8
can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar)
icon_type = "cigar"
@@ -283,6 +291,20 @@
else
..()
/obj/item/storage/fancy/cigarettes/nicotine
name = "\improper Nico-Tine cigarette packet"
desc = "A packet of six Nico-Tine cigarettes. Allegedly advertised as the most enviromentally friendly cigarettes in the market. It doesn't specify how, but it definitely isn't your body."
icon_state = "Epacket"
item_state = "Epacket"
cigarette_to_spawn = /obj/item/clothing/mask/smokable/cigarette/nicotine
/obj/item/storage/fancy/cigarettes/rugged
name = "\improper Lucky Strike cigarette packet"
desc = "A packet of six Lucky Strike cigarettes. Rumored to be part of an Idris money laundering scheme, it's original purpose long forgotten."
icon_state = "Fpacket"
item_state = "Fpacket"
cigarette_to_spawn = /obj/item/clothing/mask/smokable/cigarette/rugged
/*
* Vial Box
*/
@@ -48,3 +48,149 @@
/obj/item/storage/box/pineapple/fill()
. = ..()
update_icon()
//cigarette papers
/obj/item/storage/fancy/cigpaper
name = "\improper Gen. Eric cigarette paper"
desc = "A ubiquitous brand of cigarette paper, allegedly endorsed by 24th century war hero General Eric Osmundsun for rolling your own cigarettes. Osmundsun died in a freak kayak accident. As it ate him alive during his last campaign. It was pretty freaky."
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "cigpaperbook_generic"
item_state = "cigpacket"
drop_sound = 'sound/items/drop/wrapper.ogg'
use_sound = 'sound/items/drop/paper.ogg'
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
w_class = 2
max_storage_space = 10
throwforce = 2
slot_flags = SLOT_BELT
starts_with = list(/obj/item/paper/cig = 10)
make_exact_fit()
/obj/item/storage/fancy/cigpaper/update_icon()
. = ..()
if(contents.len)
icon_state = "[initial(icon_state)]"
else
icon_state = "[initial(icon_state)]_empty"
/obj/item/storage/cigfilters
name = "box of cigarette filters"
desc = "A box of generic cigarette filters for those who rolls their own but prefers others to inhale the fumes."
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "cigfilters_generic"
item_state = "cigpacket"
w_class = 2
starts_with = list(/obj/item/paper/cig/filter = 10)
make_exact_fit()
/obj/item/storage/fancy/cigpaper/fine
name = "\improper Trident cigarette paper"
desc = "A fancy brand of Trident cigarette paper, for rolling your own cigarettes. Like a person who appreciates the finer things in life."
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "cigpaperbook_fine"
item_state = "Dpacket"
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
starts_with = list(/obj/item/paper/cig/fine = 10)
//chewing tobacco
/obj/item/storage/chewables
name = "box of chewing wads master"
desc = "A generic brand of Waffle Co Wads, unflavored chews. Why do these exist?"
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "placeholder"
item_state = "cigpacket"
drop_sound = 'sound/items/drop/shovel.ogg'
use_sound = 'sound/items/storage/pillbottle.ogg'
w_class = 2
throwforce = 2
slot_flags = SLOT_BELT
starts_with = list(/obj/item/clothing/mask/chewable/tobacco = 6)
make_exact_fit()
/obj/item/storage/chewables/tobacco/bad
name = "can of Rredouane Cuts chewing tobacco"
desc = "A cheap, widely used replacement for cigarettes, it provided much needed respite for soldiers in Adhomian wars."
icon_state = "chew_bad"
item_state = "Fpacket"
starts_with = list(/obj/item/clothing/mask/chewable/tobacco/bad = 6)
/obj/item/storage/chewables/tobacco
name = "tin of Mendell Smooth chewing tobacco"
desc = "Packaged and shipped straight from District 8, popularised by the city-slickers of Vega De Rosa."
icon_state = "chew_generic"
item_state = "cigpacket"
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
starts_with = list(/obj/item/clothing/mask/chewable/tobacco/generic = 6)
storage_slots = 6
/obj/item/storage/chewables/tobacco/fine
name = "tin of Taba-Kamu chewing tobacco"
desc = "Said to be cultivated by employees of Nojusuru Foods in secret, the strand has been released for the public to enjoy."
icon_state = "chew_fine"
item_state = "Dpacket"
starts_with = list(/obj/item/clothing/mask/chewable/tobacco/fine = 6)
/obj/item/storage/fancy/chewables/tobacco/nico
name = "box of Nico-Tine gum"
desc = "A Sol-approved brand of nicotine gum. Cut out the middleman for your addiction fix."
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "chew_nico"
item_state = "Epacket"
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
starts_with = list(/obj/item/clothing/mask/chewable/tobacco/nico = 6)
storage_slots = 6
drop_sound = 'sound/items/drop/box.ogg'
use_sound = 'sound/items/storage/box.ogg'
/obj/item/storage/fancy/chewables/tobacco/update_icon()
icon_state = "[initial(icon_state)][contents.len]"
//loose leaf
/obj/item/storage/chewables/rollable/bad
name = "box of S'th Kasavakh tobacco"
desc = "A box of coarse gritty tobacco which still manages to grow against the desertification of Moghes."
starts_with = list(/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/bad = 8)
icon_state = "roll_bad"
item_state = "Fpacket"
/obj/item/storage/chewables/rollable
name = "box of Agyre Lake tobacco"
desc = "Advertised to be grown using fresh water pumped directly from the titular Martian lake."
starts_with = list(/obj/item/reagent_containers/food/snacks/grown/dried_tobacco = 8)
icon_state = "roll_generic"
item_state = "cigpacket"
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
max_storage_space = 8
drop_sound = 'sound/items/drop/box.ogg'
use_sound = 'sound/items/storage/box.ogg'
/obj/item/storage/chewables/rollable/fine
name = "box of Excelsior Epsilon tobacco"
desc = "Quality tobacco favored by the Corporates of Eridani - just don't read the label at the bottom."
starts_with = list(/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/fine = 8)
icon_state = "roll_fine"
item_state = "Dpacket"
/obj/item/storage/chewables/rollable/nico
name = "box of Golden Sol tobacco"
desc = "A exclusive brand of overpriced tobacco, allegedly grown at a lagrange point station in Sol system."
starts_with = list(/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/pure = 8)
icon_state = "roll_nico"
item_state = "Epacket"