Files
CRUNCH bec388228b Migrates /obj/item/clothing to the New Attack Chain (#31421)
* the beginning of my torment

* This was a very small piece of torment

* God agghhghhhh the suffering

* pain and suffering and destruction

* Update bot_construction.dm

* Update heretic_necks.dm

* Update heretic_armor.dm

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>

* Apply suggestion from @DGamerL

Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

---------

Signed-off-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
2026-02-09 19:36:38 +00:00

264 lines
9.4 KiB
Plaintext

/obj/item/clothing/gloves/fingerless
name = "fingerless gloves"
desc = "Plain black gloves without fingertips for the hard working."
icon_state = "fingerless"
inhand_icon_state = "bgloves"
transfer_prints = TRUE
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
permeability_coefficient = 1
strip_delay = 40
put_on_delay = 20
clipped = TRUE
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/gloves.dmi',
"Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi',
"Drask" = 'icons/mob/clothing/species/drask/gloves.dmi',
"Grey" = 'icons/mob/clothing/species/grey/gloves.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi',
)
/obj/item/clothing/gloves/cyborg
name = "cyborg gloves"
desc = "beep boop borp."
icon_state = "black"
/obj/item/clothing/gloves/color/black/forensics
name = "forensics gloves"
desc = "These high-tech gloves don't leave any material traces on objects they touch. Perfect for leaving crime scenes undisturbed...both before and after the crime."
icon_state = "forensics"
can_leave_fibers = FALSE
/obj/item/clothing/gloves/combat
name = "combat gloves"
desc = "A tough pair of military gloves reinforced with light armor that doesn't restrict movement. A Nomex underlayer provides near complete protection from extreme temperatures."
icon_state = "combat"
inhand_icon_state = "swat_gl"
siemens_coefficient = 0
permeability_coefficient = 0.05
strip_delay = 80
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 50, RAD = 0, FIRE = 200, ACID = 50)
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/gloves.dmi',
"Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi',
"Drask" = 'icons/mob/clothing/species/drask/gloves.dmi',
"Grey" = 'icons/mob/clothing/species/grey/gloves.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi',
)
/obj/item/clothing/gloves/bracer
name = "bone bracers"
desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms."
icon_state = "bracers"
transfer_prints = TRUE
strip_delay = 40
body_parts_covered = ARMS
cold_protection = ARMS
heat_protection = ARMS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
armor = list(MELEE = 10, BULLET = 15, LASER = 10, ENERGY = 10, BOMB = 10, RAD = 0, FIRE = 0, ACID = 0)
/obj/item/clothing/gloves/botanic_leather
name = "botanist's leather gloves"
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
icon_state = "leather"
permeability_coefficient = 0.9
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 115, ACID = 20)
/obj/item/clothing/gloves/janitor
name = "janitorial gloves"
desc = "Gloves designed to offer minor protection against messes. The rubber doesn't feel thick enough to protect you from shocks."
icon_state = "janitorial"
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/gloves.dmi',
"Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi',
"Drask" = 'icons/mob/clothing/species/drask/gloves.dmi',
"Grey" = 'icons/mob/clothing/species/grey/gloves.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi'
)
/obj/item/clothing/gloves/smithing
name = "smithing gloves"
desc = "Heatproof gloves designed for safely handling hot tools and even hotter metal."
icon_state = "smithing"
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/gloves.dmi',
"Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi',
"Drask" = 'icons/mob/clothing/species/drask/gloves.dmi',
"Grey" = 'icons/mob/clothing/species/grey/gloves.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi'
)
/obj/item/clothing/gloves/handwraps
name = "cloth handwraps"
desc = "A roll of treated canvas used for wrapping claws or paws."
icon_state = "clothwrap"
transfer_prints = TRUE
clipped = TRUE
/obj/item/clothing/gloves/cursedclown
name = "cursed white gloves"
desc = "These things smell terrible, and they're all lumpy. Gross."
icon_state = "latex"
inhand_icon_state = "lgloves"
flags = NODROP
/obj/item/clothing/gloves/color/yellow/stun
name = "stun gloves"
desc = "Horrendous and awful. It smells like cancer. The fact it has wires attached to it is incidental."
var/obj/item/stock_parts/cell/cell = null
var/stun_strength = 10 SECONDS
var/stun_cost = 2000
/obj/item/clothing/gloves/color/yellow/stun/get_cell()
return cell
/obj/item/clothing/gloves/color/yellow/stun/Initialize(mapload)
. = ..()
update_icon(UPDATE_OVERLAYS)
/obj/item/clothing/gloves/color/yellow/stun/Destroy()
QDEL_NULL(cell)
return ..()
/obj/item/clothing/gloves/color/yellow/stun/Touch(atom/A, proximity)
if(!ishuman(loc))
return FALSE //Only works while worn
if(!iscarbon(A))
return FALSE
if(!proximity)
return FALSE
if(cell)
var/mob/living/carbon/human/H = loc
if(H.a_intent == INTENT_HARM)
var/mob/living/carbon/C = A
if(cell.use(stun_cost))
do_sparks(5, 0, loc)
playsound(loc, 'sound/weapons/egloves.ogg', 50, TRUE, -1)
H.do_attack_animation(C)
visible_message(SPAN_DANGER("[C] has been touched with [src] by [H]!"))
add_attack_logs(H, C, "Touched with stun gloves")
C.Weaken(stun_strength)
C.Stuttering(stun_strength)
else
to_chat(H, SPAN_NOTICE("Not enough charge!"))
return TRUE
return FALSE
/obj/item/clothing/gloves/color/yellow/stun/update_overlays()
. = ..()
. += "gloves_wire"
if(cell)
. += "gloves_cell"
/obj/item/clothing/gloves/color/yellow/stun/item_interaction(mob/living/user, obj/item/used, list/modifiers)
if(!istype(used, /obj/item/stock_parts/cell))
return ..()
if(cell)
to_chat(user, SPAN_WARNING("[src] already has a cell!"))
return ITEM_INTERACT_COMPLETE
if(!user.drop_item())
to_chat(user, SPAN_WARNING("[used] is stuck to you!"))
return ITEM_INTERACT_COMPLETE
used.forceMove(src)
cell = used
to_chat(user, SPAN_NOTICE("You attach [used] to [src]."))
update_icon(UPDATE_OVERLAYS)
return ITEM_INTERACT_COMPLETE
/obj/item/clothing/gloves/color/yellow/stun/wirecutter_act(mob/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
return
if(cell)
to_chat(user, SPAN_NOTICE("You cut [cell] away from [src]."))
cell.forceMove(get_turf(loc))
cell = null
update_icon(UPDATE_OVERLAYS)
/obj/item/clothing/gloves/color/yellow/fake/examine(mob/user)
. = ..()
if(user.Adjacent(src))
. += SPAN_NOTICE("They don't feel like rubber...")
/obj/item/clothing/gloves/fingerless/rapid
name = "gloves of the North Star"
desc = "Just looking at these fills you with an urge to beat the shit out of people."
var/accepted_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM)
var/click_speed_modifier = CLICK_CD_RAPID
/obj/item/clothing/gloves/fingerless/rapid/Touch(mob/living/target, proximity = TRUE)
var/mob/living/L = loc
if(HAS_TRAIT(L, TRAIT_HULK))
return FALSE
// We don't use defines here so admingloves can work
if(L.mind.martial_art?.can_use(L))
click_speed_modifier = initial(click_speed_modifier) * 2 // 4
else
click_speed_modifier = initial(click_speed_modifier) // 2
if(L.a_intent in accepted_intents)
L.changeNext_move(click_speed_modifier)
return FALSE
/obj/item/clothing/gloves/fingerless/rapid/admin
name = "advanced interactive gloves"
desc = "The gloves are covered in indecipherable buttons and dials, your mind warps by merely looking at them."
click_speed_modifier = 0
siemens_coefficient = 0
/obj/item/clothing/gloves/fingerless/rapid/headpat
name = "gloves of headpats"
desc = "You feel the irresistable urge to give headpats by merely glimpsing these."
accepted_intents = list(INTENT_HELP)
/obj/item/clothing/gloves/color/white/supermatter_immune
name = "hypernobilium weave gloves"
desc = "Sleek, white gloves woven from fabric doused in hypernobilium using a process known only to the Oblivion Order."
icon_state = "obliviongauntlets"
siemens_coefficient = 0
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/gloves.dmi',
"Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi',
"Grey" = 'icons/mob/clothing/species/grey/gloves.dmi',
"Drask" = 'icons/mob/clothing/species/drask/gloves.dmi'
)
/obj/item/clothing/gloves/color/white/supermatter_immune/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_SUPERMATTER_IMMUNE, ROUNDSTART_TRAIT)
/obj/item/clothing/gloves/color/white/supermatter_immune/equipped(mob/user, slot, initial)
. = ..()
ADD_TRAIT(user, TRAIT_SUPERMATTER_IMMUNE, ENFORCER_GLOVES)
/obj/item/clothing/gloves/color/white/supermatter_immune/dropped(mob/user, silent)
. = ..()
REMOVE_TRAIT(user, TRAIT_SUPERMATTER_IMMUNE, ENFORCER_GLOVES)