diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm
index f3e9f67f934..1a2893f624d 100644
--- a/code/game/gamemodes/shadowling/shadowling_abilities.dm
+++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm
@@ -64,8 +64,8 @@
/obj/effect/proc_holder/spell/aoe_turf/veil/proc/extinguishItem(var/obj/item/I) //WARNING NOT SUFFICIENT TO EXTINGUISH AN ITEM HELD BY A MOB
if(istype(I, /obj/item/flashlight))
var/obj/item/flashlight/F = I
- if(istype(F, /obj/item/flashlight/glowstick))
- var/obj/item/flashlight/glowstick/gstick = F
+ if(istype(F, /obj/item/flashlight/flare/glowstick))
+ var/obj/item/flashlight/flare/glowstick/gstick = F
gstick.fuel = 0
if(F.on)
if(is_type_in_list(I, blacklisted_lights))
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 082958e34bc..01ab0da1e0c 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -154,23 +154,24 @@ obj/item/flashlight/lamp/bananalamp
/obj/item/flashlight/flare
name = "flare"
desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'."
- w_class = WEIGHT_CLASS_SMALL
- brightness_on = 8 // Made it brighter (from 7 to 8).
- light_color = "#ff0000" // changed colour to a more brighter red.
+ brightness_on = 8
+ light_color = "#ff0000"
icon_state = "flare"
item_state = "flare"
togglesound = 'sound/goonstation/misc/matchstick_light.ogg'
var/fuel = 0
var/on_damage = 7
var/produce_heat = 1500
+ var/fuel_lower = 800
+ var/fuel_upp = 1000
/obj/item/flashlight/flare/New()
- fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds.
+ fuel = rand(fuel_lower, fuel_upp)
..()
/obj/item/flashlight/flare/process()
var/turf/pos = get_turf(src)
- if(pos)
+ if(pos && produce_heat)
pos.hotspot_expose(produce_heat, 5)
fuel = max(fuel - 1, 0)
if(!fuel || !on)
@@ -179,6 +180,10 @@ obj/item/flashlight/lamp/bananalamp
src.icon_state = "[initial(icon_state)]-empty"
processing_objects -= src
+/obj/item/flashlight/flare/Destroy()
+ processing_objects.Remove(src)
+ ..()
+
/obj/item/flashlight/flare/proc/turn_off()
on = 0
src.force = initial(src.force)
@@ -209,11 +214,84 @@ obj/item/flashlight/lamp/bananalamp
. = ..()
// All good, turn it on.
if(.)
- user.visible_message("[user] activates the flare.", "You pull the cord on the flare, activating it!")
+ user.visible_message("[user] activates [src].", "You activate [src].")
src.force = on_damage
src.damtype = "fire"
processing_objects += src
+// GLOWSTICKS
+
+/obj/item/flashlight/flare/glowstick
+ name = "green glowstick"
+ desc = "A military-grade glowstick."
+ brightness_on = 4
+ color = LIGHT_COLOR_GREEN
+ icon_state = "glowstick"
+ item_state = "glowstick"
+ togglesound = 'sound/effects/bone_break_1.ogg'
+ produce_heat = 0
+ fuel_lower = 1600
+ fuel_upp = 2000
+
+/obj/item/flashlight/flare/glowstick/Initialize()
+ light_color = color
+ ..()
+
+/obj/item/flashlight/flare/glowstick/update_icon()
+ item_state = "glowstick"
+ cut_overlays()
+ if(!fuel)
+ icon_state = "glowstick-empty"
+ cut_overlays()
+ update_brightness(0)
+ else if(on)
+ var/mutable_appearance/glowstick_overlay = mutable_appearance(icon, "glowstick-glow")
+ glowstick_overlay.color = color
+ add_overlay(glowstick_overlay)
+ item_state = "glowstick-on"
+ update_brightness(brightness_on)
+ else
+ icon_state = "glowstick"
+ cut_overlays()
+
+/obj/item/flashlight/flare/glowstick/red
+ name = "red glowstick"
+ color = LIGHT_COLOR_RED
+
+/obj/item/flashlight/flare/glowstick/blue
+ name = "blue glowstick"
+ color = LIGHT_COLOR_BLUE
+
+/obj/item/flashlight/flare/glowstick/orange
+ name = "orange glowstick"
+ color = LIGHT_COLOR_ORANGE
+
+/obj/item/flashlight/flare/glowstick/yellow
+ name = "yellow glowstick"
+ color = LIGHT_COLOR_YELLOW
+
+/obj/item/flashlight/flare/glowstick/pink
+ name = "pink glowstick"
+ color = LIGHT_COLOR_PINK
+
+/obj/item/flashlight/flare/glowstick/emergency
+ name = "emergency glowstick"
+ desc = "A cheap looking, mass produced glowstick. You can practically feel it was made on a tight budget."
+ color = LIGHT_COLOR_BLUE
+ fuel_lower = 30
+ fuel_upp = 90
+
+/obj/item/flashlight/flare/glowstick/random
+ name = "random colored glowstick"
+ icon_state = "random_glowstick"
+ color = null
+
+/obj/item/flashlight/flare/glowstick/random/Initialize()
+ ..()
+ var/T = pick(typesof(/obj/item/flashlight/flare/glowstick) - /obj/item/flashlight/flare/glowstick/random)
+ new T(loc)
+ return INITIALIZE_HINT_QDEL
+
/obj/item/flashlight/flare/torch
name = "torch"
desc = "A torch fashioned from some leaves and a log."
@@ -303,111 +381,4 @@ obj/item/flashlight/lamp/bananalamp
anchored = TRUE
var/range = null
unacidable = TRUE
- burn_state = LAVA_PROOF
-
-/obj/item/flashlight/glowstick
- name = "green glowstick"
- desc = "A military-grade glowstick."
- w_class = WEIGHT_CLASS_SMALL
- brightness_on = 4
- color = LIGHT_COLOR_GREEN
- icon_state = "glowstick"
- item_state = "glowstick"
- togglesound = 'sound/effects/bone_break_1.ogg'
- var/fuel = 0
- var/fuel_lower = 1600
- var/fuel_upp = 2000
-
-/obj/item/flashlight/glowstick/Initialize()
- fuel = rand(fuel_lower, fuel_upp)
- light_color = color
- . = ..()
-
-/obj/item/flashlight/glowstick/Destroy()
- processing_objects.Remove(src)
- . = ..()
-
-/obj/item/flashlight/glowstick/process()
- fuel = max(fuel - 1, 0)
- if(!fuel)
- turn_off()
- processing_objects.Remove(src)
- update_icon()
-
-/obj/item/flashlight/glowstick/proc/turn_off()
- on = FALSE
- update_icon()
-
-/obj/item/flashlight/glowstick/update_icon()
- item_state = "glowstick"
- cut_overlays()
- if(!fuel)
- icon_state = "glowstick-empty"
- cut_overlays()
- update_brightness(0)
- else if(on)
- var/mutable_appearance/glowstick_overlay = mutable_appearance(icon, "glowstick-glow")
- glowstick_overlay.color = color
- add_overlay(glowstick_overlay)
- item_state = "glowstick-on"
- update_brightness(brightness_on)
- else
- icon_state = "glowstick"
- cut_overlays()
-
-/obj/item/flashlight/glowstick/attack_self(mob/user)
- if(!fuel)
- to_chat(user, "[src] is spent.")
- return
- if(on)
- to_chat(user, "[src] is already lit.")
- return
-
- . = ..()
- if(.)
- user.visible_message("[user] cracks and shakes [src].", "You crack and shake [src], turning it on!")
- activate()
-
-/obj/item/flashlight/glowstick/proc/activate()
- if(!on)
- on = TRUE
- processing_objects.Add(src)
- update_icon()
-
-/obj/item/flashlight/glowstick/red
- name = "red glowstick"
- color = LIGHT_COLOR_RED
-
-/obj/item/flashlight/glowstick/blue
- name = "blue glowstick"
- color = LIGHT_COLOR_BLUE
-
-/obj/item/flashlight/glowstick/orange
- name = "orange glowstick"
- color = LIGHT_COLOR_ORANGE
-
-/obj/item/flashlight/glowstick/yellow
- name = "yellow glowstick"
- color = LIGHT_COLOR_YELLOW
-
-/obj/item/flashlight/glowstick/pink
- name = "pink glowstick"
- color = LIGHT_COLOR_PINK
-
-/obj/item/flashlight/glowstick/emergency
- name = "emergency glowstick"
- desc = "A cheap looking, mass produced glowstick. You can practically feel it was made on a tight budget."
- color = LIGHT_COLOR_BLUE
- fuel_lower = 30
- fuel_upp = 90
-
-/obj/item/flashlight/glowstick/random
- name = "random colored glowstick"
- icon_state = "random_glowstick"
- color = null
-
-/obj/item/flashlight/glowstick/random/Initialize()
- ..()
- var/T = pick(typesof(/obj/item/flashlight/glowstick) - /obj/item/flashlight/glowstick/random)
- new T(loc)
- return INITIALIZE_HINT_QDEL
+ burn_state = LAVA_PROOF
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 82933fb32a2..d8d748efb99 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -72,7 +72,7 @@
new /obj/item/clothing/mask/breath( src )
new /obj/item/tank/emergency_oxygen( src )
new /obj/item/reagent_containers/hypospray/autoinjector( src )
- new /obj/item/flashlight/glowstick/emergency( src )
+ new /obj/item/flashlight/flare/glowstick/emergency( src )
return
/obj/item/storage/box/survival_vox
@@ -84,7 +84,7 @@
new /obj/item/clothing/mask/breath/vox(src)
new /obj/item/tank/emergency_oxygen/nitrogen(src)
new /obj/item/reagent_containers/hypospray/autoinjector(src)
- new /obj/item/flashlight/glowstick/emergency(src)
+ new /obj/item/flashlight/flare/glowstick/emergency(src)
/obj/item/storage/box/survival_plasmaman
icon_state = "box_plasma"
@@ -95,7 +95,7 @@
new /obj/item/clothing/mask/breath(src)
new /obj/item/tank/emergency_oxygen/plasma(src)
new /obj/item/reagent_containers/hypospray/autoinjector(src)
- new /obj/item/flashlight/glowstick/emergency(src)
+ new /obj/item/flashlight/flare/glowstick/emergency(src)
/obj/item/storage/box/engineer
icon_state = "box_eng"
@@ -105,7 +105,7 @@
new /obj/item/clothing/mask/breath( src )
new /obj/item/tank/emergency_oxygen/engi( src )
new /obj/item/reagent_containers/hypospray/autoinjector( src )
- new /obj/item/flashlight/glowstick/emergency( src )
+ new /obj/item/flashlight/flare/glowstick/emergency( src )
return
/obj/item/storage/box/survival_mining
@@ -117,7 +117,7 @@
new /obj/item/tank/emergency_oxygen/engi(src)
new /obj/item/crowbar/red(src)
new /obj/item/reagent_containers/hypospray/autoinjector(src)
- new /obj/item/flashlight/glowstick/emergency(src)
+ new /obj/item/flashlight/flare/glowstick/emergency(src)
/obj/item/storage/box/survival_syndi
icon_state = "box_syndi"
@@ -128,7 +128,7 @@
new /obj/item/tank/emergency_oxygen/syndi(src)
new /obj/item/reagent_containers/hypospray/autoinjector(src)
new /obj/item/reagent_containers/food/pill/initropidril(src)
- new /obj/item/flashlight/glowstick/red(src)
+ new /obj/item/flashlight/flare/glowstick/red(src)
/obj/item/storage/box/gloves
name = "box of latex gloves"