mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-30 16:38:22 +01:00
Closing Eyes (#22957)
* You can now close your eyes. This blinds you, but gives you protection against flash effects. * Welding while blind takes three times as long and has an 80% chance to fail, with a risk of burning yourself. <img width="825" height="571" alt="image" src="https://github.com/user-attachments/assets/14871444-e1c6-4d0f-8f56-d07e56055db0" /> <img width="875" height="633" alt="image" src="https://github.com/user-attachments/assets/134379bb-474c-4c5d-b069-2559d9390305" /> AI usage disclosure: The code for this was created in-part using GPT 5.6 Sol.
This commit is contained in:
@@ -320,12 +320,35 @@
|
||||
update_icon()
|
||||
|
||||
/obj/item/weldingtool/use_tool(atom/target, mob/living/user, delay, amount, volume, datum/callback/extra_checks)
|
||||
var/welding_blind = user.is_blind()
|
||||
if(welding_blind)
|
||||
delay *= 3
|
||||
|
||||
var/image/welding_sparks = image('icons/effects/effects.dmi', welding_state)
|
||||
welding_sparks.plane = ABOVE_LIGHTING_PLANE
|
||||
target.AddOverlays(welding_sparks)
|
||||
. = ..()
|
||||
target.CutOverlays(welding_sparks)
|
||||
|
||||
if(. && welding_blind && prob(80))
|
||||
to_chat(user, SPAN_WARNING("Unable to see your work, you botch the weld!"))
|
||||
if(prob(50))
|
||||
var/burn_zone
|
||||
if(ishuman(user))
|
||||
switch(get_equip_slot())
|
||||
if(slot_l_hand)
|
||||
burn_zone = BP_L_HAND
|
||||
if(slot_r_hand)
|
||||
burn_zone = BP_R_HAND
|
||||
else
|
||||
burn_zone = pick(BP_L_HAND, BP_R_HAND)
|
||||
user.apply_damage(rand(5, 10), DAMAGE_BURN, burn_zone, src)
|
||||
user.visible_message(
|
||||
SPAN_DANGER("[user] jerks back after burning themselves with \the [src]!"),
|
||||
SPAN_DANGER("Your blind welding slips, burning your hand!")
|
||||
)
|
||||
return FALSE
|
||||
|
||||
/obj/item/weldingtool/proc/update_torch()
|
||||
if(welding)
|
||||
AddOverlays("[initial(icon_state)]-on")
|
||||
@@ -439,7 +462,7 @@
|
||||
user.visible_message(SPAN_NOTICE("\The [user] finishes repairing the physical damage on \the [target]'s [affecting.name]."))
|
||||
return
|
||||
|
||||
if(do_mob(user, target, 30))
|
||||
if(use_tool(target, user, 30, volume = 15))
|
||||
if(use(0))
|
||||
var/static/list/repair_messages = list(
|
||||
"patches some dents",
|
||||
@@ -951,4 +974,3 @@
|
||||
var/mutable_appearance/handle = mutable_appearance('icons/obj/tools.dmi', "hammer_handle")
|
||||
handle.color = pick(COLOR_BLUE, COLOR_RED, COLOR_PURPLE, COLOR_BROWN, COLOR_GREEN, COLOR_CYAN, COLOR_YELLOW)
|
||||
AddOverlays(handle)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user