mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-18 18:42:08 +01:00
The Rollable Cigs and Chews Update (#7631)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user