mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
274 lines
9.8 KiB
Plaintext
274 lines
9.8 KiB
Plaintext
|
|
/obj/item/clothing/gloves/fingerless
|
|
name = "fingerless gloves"
|
|
desc = "Plain black gloves without fingertips for the hard working."
|
|
icon_state = "fingerless"
|
|
item_state = "fingerless"
|
|
transfer_prints = TRUE
|
|
siemens_coefficient = 1 //What no if you touch things with your bare fingies you're gonna get shocked
|
|
strip_delay = 40
|
|
equip_delay_other = 20
|
|
cold_protection = HANDS
|
|
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
|
custom_price = 10
|
|
undyeable = TRUE
|
|
var/tacticalspeed = 0.9
|
|
var/worn
|
|
|
|
/obj/item/clothing/gloves/fingerless/equipped(mob/user, slot)
|
|
..()
|
|
var/mob/living/carbon/human/boss = user
|
|
if(slot == SLOT_GLOVES)
|
|
if(!worn) //Literally just in case there's some weirdness so you can't cheese this
|
|
boss.physiology.do_after_speed *= tacticalspeed //Does channels 10% faster
|
|
worn = TRUE
|
|
|
|
/obj/item/clothing/gloves/fingerless/dropped(mob/user)
|
|
..()
|
|
var/mob/living/carbon/human/boss = user
|
|
if(worn) //This way your speed isn't slowed if you never actually put on the gloves
|
|
boss.physiology.do_after_speed /= tacticalspeed
|
|
worn = FALSE
|
|
|
|
/obj/item/clothing/gloves/fingerless/bigboss
|
|
var/carrytrait = TRAIT_QUICKER_CARRY
|
|
tacticalspeed = 0.66 //Does channels 34% faster
|
|
|
|
/obj/item/clothing/gloves/fingerless/bigboss/Touch(mob/living/target, proximity = TRUE)
|
|
var/mob/living/M = loc
|
|
M.changeNext_move(CLICK_CD_CLICK_ABILITY) //0.6 seconds instead of 0.8, but affects any intent instead of just harm
|
|
. = FALSE
|
|
|
|
/obj/item/clothing/gloves/fingerless/bigboss/equipped(mob/user, slot)
|
|
..()
|
|
if(slot == SLOT_GLOVES)
|
|
ADD_TRAIT(user, carrytrait, CLOTHING_TRAIT)
|
|
|
|
/obj/item/clothing/gloves/fingerless/bigboss/dropped(mob/user)
|
|
..()
|
|
REMOVE_TRAIT(user, carrytrait, CLOTHING_TRAIT)
|
|
|
|
/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. They're also quite warm."
|
|
icon_state = "leather"
|
|
item_state = "ggloves"
|
|
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, BIO = 0, RAD = 0, FIRE = 70, ACID = 30)
|
|
|
|
/obj/item/clothing/gloves/combat
|
|
name = "combat gloves"
|
|
desc = "These tactical gloves are fireproof and shock resistant."
|
|
icon_state = "black"
|
|
item_state = "blackgloves"
|
|
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 = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50)
|
|
|
|
/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"
|
|
item_state = "bracers"
|
|
transfer_prints = TRUE
|
|
siemens_coefficient = 1 //They're not gloves?
|
|
strip_delay = 40
|
|
equip_delay_other = 20
|
|
body_parts_covered = ARMS
|
|
cold_protection = ARMS
|
|
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
|
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
|
resistance_flags = NONE
|
|
armor = list(MELEE = 15, BULLET = 25, LASER = 15, ENERGY = 15, BOMB = 20, BIO = 10, RAD = 0, FIRE = 0, ACID = 0)
|
|
|
|
/obj/item/clothing/gloves/rapid
|
|
name = "Gloves of the North Star"
|
|
desc = "Just looking at these fills you with an urge to beat the shit out of people."
|
|
icon_state = "rapid"
|
|
item_state = "rapid"
|
|
transfer_prints = TRUE
|
|
var/warcry = "AT"
|
|
|
|
/obj/item/clothing/gloves/rapid/Touch(mob/living/target,proximity = TRUE)
|
|
var/mob/living/M = loc
|
|
|
|
if(M.a_intent == INTENT_HARM)
|
|
M.changeNext_move(CLICK_CD_RAPID)
|
|
if(warcry)
|
|
M.say("[warcry]", ignore_spam = TRUE, forced = "north star warcry")
|
|
.= FALSE
|
|
|
|
/obj/item/clothing/gloves/rapid/attack_self(mob/user)
|
|
var/input = stripped_input(user,"What do you want your battlecry to be? Max length of 6 characters.", ,"", 7)
|
|
input = replacetext(input, "*", "")
|
|
if(input)
|
|
warcry = input
|
|
|
|
/obj/item/clothing/gloves/rapid/hug
|
|
name = "Gloves of Hugging"
|
|
desc = "Just looking at these fills you with an urge to hug the shit out of people."
|
|
|
|
/obj/item/clothing/gloves/rapid/hug/Touch(mob/living/target,proximity = TRUE)
|
|
var/mob/living/M = loc
|
|
|
|
if(M.a_intent == INTENT_HELP)
|
|
M.changeNext_move(CLICK_CD_RAPID)
|
|
else
|
|
to_chat(M, span_warning("You don't want to hurt anyone, just give them hugs!"))
|
|
M.a_intent = INTENT_HELP
|
|
.= FALSE
|
|
|
|
/obj/item/clothing/gloves/bracer/cuffs
|
|
name = "rabid cuffs"
|
|
desc = "Wristbands fashioned after one of the hungriest slaughter demons. Wearing these invokes a hunger in the wearer that can only be sated by bloodshed."
|
|
icon_state = "cuff"
|
|
item_state = "cuff"
|
|
var/obj/effect/proc_holder/swipe/swipe_ability
|
|
alternate_worn_layer = ABOVE_BODY_FRONT_LAYER
|
|
|
|
/obj/item/clothing/gloves/bracer/cuffs/Initialize()
|
|
. = ..()
|
|
swipe_ability = new(swipe_ability)
|
|
|
|
/obj/item/clothing/gloves/bracer/cuffs/equipped(mob/living/user, slot)
|
|
. = ..()
|
|
if(ishuman(user) && slot == ITEM_SLOT_GLOVES)
|
|
user.AddAbility(swipe_ability)
|
|
|
|
/obj/item/clothing/gloves/bracer/cuffs/dropped(mob/living/user)
|
|
. = ..()
|
|
user.RemoveAbility(swipe_ability)
|
|
|
|
obj/effect/proc_holder/swipe
|
|
name = "Swipe"
|
|
desc = "Swipe at a target area, dealing damage to heal yourself. Creatures take 60 damage while people and cyborgs take 20 damage. Living creatures hit with this ability will heal the user for 13 brute/burn/poison while dead ones heal for 20 and get butchered, while killing a creature with a swipe will heal the user for 33. People and cyborgs hit will heal for 5."
|
|
action_background_icon_state = "bg_demon"
|
|
action_icon = 'icons/mob/actions/actions_items.dmi'
|
|
action_icon_state = "cuff"
|
|
ranged_mousepointer = 'icons/effects/mouse_pointers/supplypod_target.dmi'
|
|
var/cooldown = 10 SECONDS
|
|
COOLDOWN_DECLARE(scan_cooldown)
|
|
|
|
/obj/effect/proc_holder/swipe/on_lose(mob/living/user)
|
|
remove_ranged_ability()
|
|
|
|
/obj/effect/proc_holder/swipe/Click(location, control, params)
|
|
. = ..()
|
|
if(!isliving(usr))
|
|
return TRUE
|
|
var/mob/living/user = usr
|
|
fire(user)
|
|
|
|
/obj/effect/proc_holder/swipe/fire(mob/living/carbon/user)
|
|
if(user.handcuffed)
|
|
to_chat(user, span_danger("You can't attack while handcuffed!"))
|
|
return
|
|
if(active)
|
|
remove_ranged_ability(span_notice("You relax your arms."))
|
|
else
|
|
add_ranged_ability(user, span_notice("You ready your cuffs. <B>Left-click a creature or nearby location to swipe at it!</B>"), TRUE)
|
|
|
|
/obj/effect/proc_holder/swipe/InterceptClickOn(mob/living/caller, params, atom/target)
|
|
. = ..()
|
|
var/turf/open/T = get_turf(target)
|
|
var/mob/living/L = target
|
|
if(.)
|
|
return
|
|
if(ranged_ability_user.stat)
|
|
remove_ranged_ability()
|
|
return
|
|
if(!COOLDOWN_FINISHED(src, scan_cooldown))
|
|
to_chat(ranged_ability_user, span_warning("Your cuffs aren't ready to do that yet. Give them some time to recharge!"))
|
|
return
|
|
if(!istype(T))
|
|
return
|
|
if(!(T in range(9, caller)))
|
|
to_chat(caller, warning("The target is too far!"))
|
|
return
|
|
new /obj/effect/temp_visual/bubblegum_hands/rightpaw(T)
|
|
new /obj/effect/temp_visual/bubblegum_hands/rightthumb(T)
|
|
to_chat(L, span_userdanger("Claws reach out from the floor and maul you!"))
|
|
to_chat(ranged_ability_user, "You summon claws at [L]'s location!")
|
|
L.visible_message(span_warning("[caller] rends [L]!"))
|
|
for(L in range(0,T))
|
|
playsound(T, 'sound/magic/demon_attack1.ogg', 80, 5, -1)
|
|
if(isanimal(L))
|
|
if(L.stat != DEAD)
|
|
L.adjustBruteLoss(60)
|
|
caller.adjustBruteLoss(-13)
|
|
caller.adjustFireLoss(-13)
|
|
caller.adjustToxLoss(-13)
|
|
if(L.stat == DEAD)
|
|
to_chat(caller, span_notice("You kill [L], healing yourself more!"))
|
|
if(L.stat == DEAD)
|
|
L.gib()
|
|
to_chat(caller, span_notice("You're able to consume the body entirely!"))
|
|
caller.adjustBruteLoss(-20)
|
|
caller.adjustFireLoss(-20)
|
|
caller.adjustToxLoss(-20)
|
|
if(iscarbon(L))
|
|
L.adjustBruteLoss(20)
|
|
caller.adjustBruteLoss(-5)
|
|
caller.adjustFireLoss(-5)
|
|
caller.adjustToxLoss(-5)
|
|
COOLDOWN_START(src, scan_cooldown, cooldown)
|
|
addtimer(CALLBACK(src, .proc/cooldown_over, ranged_ability_user), cooldown)
|
|
remove_ranged_ability()
|
|
return TRUE
|
|
|
|
/obj/effect/proc_holder/swipe/proc/cooldown_over()
|
|
to_chat(usr, (span_notice("You're ready to swipe again!")))
|
|
|
|
/obj/item/clothing/gloves/gauntlets
|
|
name = "concussive gauntlets"
|
|
desc = "Ancient gauntlets lost to the necropolis, fabled to bestow the wearer the power to shatter stone with but a simple punch."
|
|
icon_state = "concussive_gauntlets"
|
|
item_state = "concussive_gauntlets"
|
|
mob_overlay_icon = 'icons/mob/clothing/hands/hands.dmi'
|
|
icon = 'icons/obj/lavaland/artefacts.dmi'
|
|
toolspeed = 0.01
|
|
strip_delay = 40
|
|
equip_delay_other = 20
|
|
body_parts_covered = ARMS
|
|
cold_protection = ARMS
|
|
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
|
heat_protection = ARMS
|
|
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
|
resistance_flags = LAVA_PROOF | FIRE_PROOF //they are from lavaland after all
|
|
armor = list(MELEE = 25, BULLET = 25, LASER = 15, ENERGY = 25, BOMB = 100, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
|
|
|
|
/obj/item/clothing/gloves/gauntlets/equipped(mob/user, slot)
|
|
. = ..()
|
|
if(slot == SLOT_GLOVES)
|
|
tool_behaviour = TOOL_MINING
|
|
RegisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/rocksmash)
|
|
RegisterSignal(user, COMSIG_MOVABLE_BUMP, .proc/rocksmash)
|
|
else
|
|
stopmining(user)
|
|
|
|
/obj/item/clothing/gloves/gauntlets/dropped(mob/user)
|
|
. = ..()
|
|
stopmining(user)
|
|
|
|
/obj/item/clothing/gloves/gauntlets/proc/stopmining(mob/user)
|
|
tool_behaviour = initial(tool_behaviour)
|
|
UnregisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK)
|
|
UnregisterSignal(user, COMSIG_MOVABLE_BUMP)
|
|
|
|
/obj/item/clothing/gloves/gauntlets/proc/rocksmash(mob/user, atom/A, proximity)
|
|
if(!istype(A, /turf/closed/mineral))
|
|
return
|
|
A.attackby(src, user)
|
|
return COMPONENT_NO_ATTACK_OBJ
|