Merge pull request #3013 from Anewbe/lung_cancer

Minor smoking update
This commit is contained in:
Neerti
2017-02-28 21:28:27 -05:00
committed by GitHub
2 changed files with 90 additions and 39 deletions

View File

@@ -85,10 +85,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
body_parts_covered = 0 body_parts_covered = 0
var/lit = 0 var/lit = 0
var/icon_on var/icon_on
var/icon_off
var/type_butt = null var/type_butt = null
var/chem_volume = 0 var/chem_volume = 0
var/smoketime = 0 var/smoketime = 0
var/is_pipe = 0 //Prevents a runtime with pipes
var/matchmes = "USER lights NAME with FLAME" var/matchmes = "USER lights NAME with FLAME"
var/lightermes = "USER lights NAME with FLAME" var/lightermes = "USER lights NAME with FLAME"
var/zippomes = "USER lights NAME with FLAME" var/zippomes = "USER lights NAME with FLAME"
@@ -106,6 +106,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
smoketime-- smoketime--
if(smoketime < 1) if(smoketime < 1)
die() die()
if(ishuman(loc))
var/mob/living/carbon/human/C = loc
to_chat(C, "<span class='notice'>Your [name] goes out.</span>")
return return
if(location) if(location)
location.hotspot_expose(700, 5) location.hotspot_expose(700, 5)
@@ -119,19 +122,20 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/examine(mob/user) /obj/item/clothing/mask/smokable/examine(mob/user)
..() ..()
if(lit == 1) if(is_pipe)
var/smoke_percent = round((smoketime / initial(smoketime)) * 100) return
switch(smoke_percent) var/smoke_percent = round((smoketime / initial(smoketime)) * 100)
if(90 to INFINITY) switch(smoke_percent)
user << "[src] has just begun to burn." if(90 to INFINITY)
if(60 to 90) user << "[src] is still fresh."
user << "[src] has a good amount of burn time remaining." if(60 to 90)
if(30 to 60) user << "[src] has a good amount of burn time remaining."
user << "[src] is about half finished." if(30 to 60)
if(10 to 30) user << "[src] is about half finished."
user << "[src] is starting to burn low." if(10 to 30)
else user << "[src] is starting to burn low."
user << "[src] is nearly burnt out!" else
user << "[src] is nearly burnt out!"
/obj/item/clothing/mask/smokable/proc/light(var/flavor_text = "[usr] lights the [name].") /obj/item/clothing/mask/smokable/proc/light(var/flavor_text = "[usr] lights the [name].")
@@ -167,6 +171,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/proc/die(var/nomessage = 0) /obj/item/clothing/mask/smokable/proc/die(var/nomessage = 0)
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
set_light(0) set_light(0)
processing_objects.Remove(src)
if (type_butt) if (type_butt)
var/obj/item/butt = new type_butt(T) var/obj/item/butt = new type_butt(T)
transfer_fingerprints_to(butt) transfer_fingerprints_to(butt)
@@ -175,12 +180,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(ismob(loc)) if(ismob(loc))
var/mob/living/M = loc var/mob/living/M = loc
if (!nomessage) if (!nomessage)
M << "<span class='notice'>Your [name] goes out.</span>" to_chat(M, "<span class='notice'>Your [name] goes out.</span>")
M.remove_from_mob(src) //un-equip it so the overlays can update M.remove_from_mob(src) //un-equip it so the overlays can update
M.update_inv_wear_mask(0) M.update_inv_wear_mask(0)
M.update_inv_l_hand(0) M.update_inv_l_hand(0)
M.update_inv_r_hand(1) M.update_inv_r_hand(1)
processing_objects.Remove(src)
qdel(src) qdel(src)
else else
new /obj/effect/decal/cleanable/ash(T) new /obj/effect/decal/cleanable/ash(T)
@@ -189,12 +193,26 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if (!nomessage) if (!nomessage)
M << "<span class='notice'>Your [name] goes out, and you empty the ash.</span>" M << "<span class='notice'>Your [name] goes out, and you empty the ash.</span>"
lit = 0 lit = 0
icon_state = icon_off icon_state = initial(icon_state)
item_state = icon_off item_state = initial(item_state)
M.update_inv_wear_mask(0) M.update_inv_wear_mask(0)
M.update_inv_l_hand(0) M.update_inv_l_hand(0)
M.update_inv_r_hand(1) M.update_inv_r_hand(1)
processing_objects.Remove(src) smoketime = 0
reagents.clear_reagents()
name = "empty [initial(name)]"
/obj/item/clothing/mask/smokable/proc/quench()
lit = 0
processing_objects.Remove(src)
icon_state = initial(icon_state)
item_state = initial(item_state)
if(ismob(loc))
var/mob/living/M = loc
M.update_inv_wear_mask(0)
M.update_inv_l_hand(0)
M.update_inv_r_hand(1)
/obj/item/clothing/mask/smokable/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/item/clothing/mask/smokable/attackby(obj/item/weapon/W as obj, mob/user as mob)
..() ..()
@@ -223,6 +241,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else else
return ..() return ..()
/obj/item/clothing/mask/smokable/water_act(amount)
if(amount >= 5)
quench()
/obj/item/clothing/mask/smokable/cigarette /obj/item/clothing/mask/smokable/cigarette
name = "cigarette" name = "cigarette"
desc = "A roll of tobacco and nicotine." desc = "A roll of tobacco and nicotine."
@@ -233,7 +255,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
slot_flags = SLOT_EARS | SLOT_MASK slot_flags = SLOT_EARS | SLOT_MASK
attack_verb = list("burnt", "singed") attack_verb = list("burnt", "singed")
icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi
icon_off = "cigoff"
type_butt = /obj/item/weapon/cigbutt type_butt = /obj/item/weapon/cigbutt
chem_volume = 15 chem_volume = 15
smoketime = 300 smoketime = 300
@@ -269,8 +290,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/cigarette/attack_self(mob/user as mob) /obj/item/clothing/mask/smokable/cigarette/attack_self(mob/user as mob)
if(lit == 1) if(lit == 1)
user.visible_message("<span class='notice'>[user] calmly drops and treads on the lit [src], putting it out instantly.</span>") if(user.a_intent == I_HURT)
die(1) user.visible_message("<span class='notice'>[user] drops and treads on the lit [src], putting it out instantly.</span>")
die(1)
else
user.visible_message("<span class='notice'>[user] puts out \the [src].</span>")
quench()
return ..() return ..()
//////////// ////////////
@@ -281,7 +306,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!"
icon_state = "cigar2off" icon_state = "cigar2off"
icon_on = "cigar2on" icon_on = "cigar2on"
icon_off = "cigar2off"
type_butt = /obj/item/weapon/cigbutt/cigarbutt type_butt = /obj/item/weapon/cigbutt/cigarbutt
throw_speed = 0.5 throw_speed = 0.5
item_state = "cigaroff" item_state = "cigaroff"
@@ -298,14 +322,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
desc = "There's little more you could want from a cigar." desc = "There's little more you could want from a cigar."
icon_state = "cigar2off" icon_state = "cigar2off"
icon_on = "cigar2on" icon_on = "cigar2on"
icon_off = "cigar2off"
/obj/item/clothing/mask/smokable/cigarette/cigar/havana /obj/item/clothing/mask/smokable/cigarette/cigar/havana
name = "premium Havanian cigar" name = "premium Havanian cigar"
desc = "A cigar fit for only the best of the best." desc = "A cigar fit for only the best of the best."
icon_state = "cigar2off" icon_state = "cigar2off"
icon_on = "cigar2on" icon_on = "cigar2on"
icon_off = "cigar2off"
smoketime = 7200 smoketime = 7200
chem_volume = 30 chem_volume = 30
@@ -345,7 +367,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "pipeoff" icon_state = "pipeoff"
item_state = "pipeoff" item_state = "pipeoff"
icon_on = "pipeon" //Note - these are in masks.dmi icon_on = "pipeon" //Note - these are in masks.dmi
icon_off = "pipeoff"
smoketime = 0 smoketime = 0
chem_volume = 50 chem_volume = 50
matchmes = "<span class='notice'>USER lights their NAME with their FLAME.</span>" matchmes = "<span class='notice'>USER lights their NAME with their FLAME.</span>"
@@ -353,6 +374,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
zippomes = "<span class='rose'>With much care, USER lights their NAME with their FLAME.</span>" zippomes = "<span class='rose'>With much care, USER lights their NAME with their FLAME.</span>"
weldermes = "<span class='notice'>USER recklessly lights NAME with FLAME.</span>" weldermes = "<span class='notice'>USER recklessly lights NAME with FLAME.</span>"
ignitermes = "<span class='notice'>USER fiddles with FLAME, and manages to light their NAME with the power of science.</span>" ignitermes = "<span class='notice'>USER fiddles with FLAME, and manages to light their NAME with the power of science.</span>"
is_pipe = 1
/obj/item/clothing/mask/smokable/pipe/New() /obj/item/clothing/mask/smokable/pipe/New()
..() ..()
@@ -375,18 +397,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/pipe/attack_self(mob/user as mob) /obj/item/clothing/mask/smokable/pipe/attack_self(mob/user as mob)
if(lit == 1) if(lit == 1)
user.visible_message("<span class='notice'>[user] puts out [src].</span>", "<span class='notice'>You put out [src].</span>") if(user.a_intent == I_HURT)
lit = 0 user.visible_message("<span class='notice'>[user] empties the lit [src] on the floor!.</span>")
icon_state = icon_off die(1)
item_state = icon_off else
processing_objects.Remove(src) user.visible_message("<span class='notice'>[user] puts out \the [src].</span>")
else if (smoketime) quench()
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>")
new /obj/effect/decal/cleanable/ash(location)
smoketime = 0
reagents.clear_reagents()
name = "empty [initial(name)]"
/obj/item/clothing/mask/smokable/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/item/clothing/mask/smokable/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/melee/energy/sword)) if(istype(W, /obj/item/weapon/melee/energy/sword))
@@ -431,7 +447,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "cobpipeoff" icon_state = "cobpipeoff"
item_state = "cobpipeoff" item_state = "cobpipeoff"
icon_on = "cobpipeon" //Note - these are in masks.dmi icon_on = "cobpipeon" //Note - these are in masks.dmi
icon_off = "cobpipeoff"
chem_volume = 35 chem_volume = 35
///////// /////////

View File

@@ -0,0 +1,36 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Anewbe
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- tweak: "Extinguishing a smokable on non-Harm intents no longer destroys it."