diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm
index 3f19d6a494b..27f103177c8 100644
--- a/code/game/objects/items/weapons/lighters.dm
+++ b/code/game/objects/items/weapons/lighters.dm
@@ -46,7 +46,13 @@
user.visible_message("After a few attempts, [user] manages to light the [src].")
else
to_chat(user, "You burn yourself while lighting the lighter.")
- user.adjustFireLoss(5)
+ var/mob/living/M = user
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ var/obj/item/organ/external/affecting = H.get_organ("[user.hand ? "l" : "r" ]_hand")
+ if(affecting.take_damage( 0, 5 )) //INFERNO
+ H.UpdateDamageIcon()
+ H.updatehealth()
user.visible_message("After a few attempts, [user] manages to light the [src], they however burn their finger in the process.")
set_light(2)
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 4cc08d08471..9cce0b5fa9d 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -433,56 +433,83 @@
if(status == LIGHT_EMPTY)
to_chat(user, "There is no [fitting] in this light.")
return
+ if(user.a_intent == "help")
+ if(on)
+ to_chat(user, "This light [fitting] feels hot!")
+ else
+ to_chat(user, "The light [fitting] feels cold.")
+ return
+
+ if(user.a_intent == "disarm" || user.a_intent == "grab") //trying to grab the bulb
// make it burn hands if not wearing fire-insulated gloves
- if(on)
- var/prot = 0
- var/mob/living/carbon/human/H = user
+ if(on)
+ var/prot = 0
+ var/mob/living/carbon/human/H = user
- if(istype(H))
+ if(istype(H))
- if(H.gloves)
- var/obj/item/clothing/gloves/G = H.gloves
- if(G.max_heat_protection_temperature)
- prot = (G.max_heat_protection_temperature > 360)
+ if(H.gloves)
+ var/obj/item/clothing/gloves/G = H.gloves
+ if(G.max_heat_protection_temperature)
+ prot = (G.max_heat_protection_temperature > 360)
+ else
+ prot = 1
+
+ if(prot > 0 || (RESIST_HEAT in user.mutations))
+ to_chat(user, "You remove the light [fitting]")
+ else if(TK in user.mutations)
+ to_chat(user, "You telekinetically remove the light [fitting].")
+ else
+ to_chat(user, "You try to remove the light [fitting], but you burn your hand on it!")
+
+ var/obj/item/organ/external/affecting = H.get_organ("[user.hand ? "l" : "r" ]_hand")
+ if(affecting.take_damage( 0, 5 )) // 5 burn damage
+ H.UpdateDamageIcon()
+ H.updatehealth()
+ return // if burned, don't remove the light
else
- prot = 1
-
- if(prot > 0 || (RESIST_HEAT in user.mutations))
- to_chat(user, "You remove the light [fitting]")
- else if(TK in user.mutations)
- to_chat(user, "You telekinetically remove the light [fitting].")
- else
- to_chat(user, "You try to remove the light [fitting], but you burn your hand on it!")
-
- var/obj/item/organ/external/affecting = H.get_organ("[user.hand ? "l" : "r" ]_hand")
- if(affecting.take_damage( 0, 5 )) // 5 burn damage
- H.UpdateDamageIcon()
- H.updatehealth()
- return // if burned, don't remove the light
- else
- to_chat(user, "You remove the light [fitting].")
+ to_chat(user, "You remove the light [fitting].")
- // create a light tube/bulb item and put it in the user's hand
- var/obj/item/weapon/light/L = new light_type()
- L.status = status
- L.rigged = rigged
- L.brightness_range = brightness_range
- L.brightness_power = brightness_power
- L.brightness_color = brightness_color
+ // create a light tube/bulb item and put it in the user's hand
+ var/obj/item/weapon/light/L = new light_type()
+ L.status = status
+ L.rigged = rigged
+ L.brightness_range = brightness_range
+ L.brightness_power = brightness_power
+ L.brightness_color = brightness_color
// light item inherits the switchcount, then zero it
- L.switchcount = switchcount
- switchcount = 0
+ L.switchcount = switchcount
+ switchcount = 0
- L.update()
- L.add_fingerprint(user)
+ L.update()
+ L.add_fingerprint(user)
- user.put_in_active_hand(L) //puts it in our active hand
+ user.put_in_active_hand(L) //puts it in our active hand
+
+ status = LIGHT_EMPTY
+ update()
+
+ if(user.a_intent == "harm") //hitting the bulb
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
+ if(prob(10)) //10% chance to break a light with bare hands
+ to_chat(user, "You hit the light, and it smashes!")
+ for(var/mob/M in viewers(src))
+ if(M == user)
+ continue
+ M.show_message("[user.name] smashed the light!", 3, "You hear a tinkle of breaking glass", 2)
+ if(on)
+ electrocute_mob(user, get_area(src), src, 0.3)
+ broken()
+ else
+ user.visible_message("[user.name] hits the light.")
+ playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
+
+ return
- status = LIGHT_EMPTY
- update()
// break the light and make sparks if was on