diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index ed8b6b8656..af61dfe14a 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -637,23 +637,6 @@ changeling.chem_recharge_slowdown += recharge_slowdown return TRUE - -/obj/effect/proc_holder/changeling/gloves/vulture - name = "Jagged Claws" - desc = "We turn our hands into grotesque claws, which are better at prying things off our victims." - helptext = "These grotesque, bird-like claws are better at stealing things off of people, and cannot be used in lesser form. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." - chemical_cost = 15 - dna_cost = 1 - loudness = 1 - req_human = 1 - action_icon = 'icons/mob/actions/actions_changeling.dmi' - action_icon_state = "ling_armor" - action_background_icon_state = "bg_ling" - - glove_type = /obj/item/clothing/gloves/claws/vulture // prying shit off dead/soon to be dead dudes! - glove_name_simple = "jagged claws" - - /obj/item/clothing/gloves/claws name = "claws of doing nothing" desc = "These shouldn't be here." @@ -673,54 +656,84 @@ /obj/item/clothing/gloves/claws/vulture // prying shit off dead/soon to be dead dudes! name = "jagged claws" desc = "Good for prying things off of people and looking incredibly creepy." - strip_mod = 3 + strip_mod = 2 /obj/effect/proc_holder/changeling/gloves/gauntlets name = "Bone Gauntlets" desc = "We turn our hands into solid bone and chitin, sacrificing dexterity for raw strength." helptext = "These grotesque, bone-and-chitin gauntlets are remarkably good at beating victims senseless, and cannot be used in lesser form. This ability is loud, and might cause our blood to react violently to heat." - chemical_cost = 20 + chemical_cost = 10 // same cost as armblade because its a sidegrade (sacrifice utility for punching people violently) dna_cost = 2 loudness = 2 req_human = 1 action_icon = 'icons/mob/actions/actions_changeling.dmi' - action_icon_state = "ling_armor" + action_icon_state = "ling_gauntlets" action_background_icon_state = "bg_ling" - glove_type = /obj/item/clothing/gloves/claws/bone_gauntlets // just punch his head off dude + glove_type = /obj/item/clothing/gloves/fingerless/pugilist/bone // just punch his head off dude glove_name_simple = "bone gauntlets" -/obj/item/clothing/gloves/claws/bone_gauntlets // should i have just made these a subtype of armwraps? - name = "hewn bone gauntlets" - desc = "Rough bone and chitin, pulsing with an abomination barely called \"life\". Good for punching the shit out of people, not so much for wielding firearms." - var/enhancement = 15 // it's not an armblade but it's Violence, alright - var/inherited_trait = TRAIT_NOGUNS // how do you expect to shove your fingers into a trigger guard with BONE HANDS - var/secondary_trait = TRAIT_STRONG_GRABBER // if you're beating the shit out of dudes u might as well grab em too man... +/obj/item/clothing/gloves/fingerless/pugilist/bone + name = "hewn bone claws" + icon_state = "ling_gauntlets" + item_state = "ling_gauntlets" + desc = "Rough bone and chitin, pulsing with an abomination barely called \"life\". Good for punching the shit out of people, but perhaps not so much for firearms." + transfer_prints = TRUE + body_parts_covered = ARMS|HANDS + cold_protection = ARMS|HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + enhancement = 15 // it's not an armblade but it's Violence, alright + var/wound_enhancement = 20 + inherited_trait = TRAIT_CHUNKYFINGERS // dummy thicc bone hands + secondary_trait = TRAIT_STRONG_GRABBER // grab them and then punch their head off + var/fasthands = TRUE -/obj/item/clothing/gloves/claws/bone_gauntlets/equipped(mob/user, slot) +/obj/item/clothing/gloves/fingerless/pugilist/bone/examine(mob/user) + . = ..() + . += " [src] are throwing [fasthands ? "fast, precise strikes" : "crippling, damaging blows"]." + . += " Alt-click them to change between rapid strikes and strong blows." + +/obj/item/clothing/gloves/fingerless/pugilist/bone/AltClick(mob/user) + . = ..() + fasthands = !fasthands + if(fasthands) + enhancement = initial(enhancement) + wound_enhancement = initial(enhancement) + else + enhancement = initial(enhancement) * 3 // punch the head off a man + wound_enhancement = initial(enhancement) * 3 // do it do it do it do it + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(locate(src) in H.gloves) + src.dropped(H) + src.equipped(H, SLOT_GLOVES) + to_chat(user, "With [src], you are now throwing [fasthands ? "fast, precise strikes" : "crippling, damaging blows"].") + +/obj/item/clothing/gloves/fingerless/pugilist/bone/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT) + +/obj/item/clothing/gloves/fingerless/pugilist/bone/equipped(mob/user, slot) . = ..() if(slot == SLOT_GLOVES) if(ishuman(user)) var/mob/living/carbon/human/H = user - ADD_TRAIT(H, TRAIT_PUGILIST, GLOVE_TRAIT) - ADD_TRAIT(H, inherited_trait, GLOVE_TRAIT) - ADD_TRAIT(H, secondary_trait, GLOVE_TRAIT) - H.dna.species.punchdamagehigh += enhancement - H.dna.species.punchdamagelow += enhancement + H.dna.species.punchwoundbonus += wound_enhancement -/obj/item/clothing/gloves/claws/bone_gauntlets/dropped(mob/user) - REMOVE_TRAIT(user, TRAIT_PUGILIST, GLOVE_TRAIT) - REMOVE_TRAIT(user, inherited_trait, GLOVE_TRAIT) - REMOVE_TRAIT(user, secondary_trait, GLOVE_TRAIT) +/obj/item/clothing/gloves/fingerless/pugilist/bone/dropped(mob/user) + . = ..() if(ishuman(user)) var/mob/living/carbon/human/H = user - H.dna.species.punchdamagehigh -= enhancement - H.dna.species.punchdamagelow -= enhancement + H.dna.species.punchwoundbonus -= wound_enhancement return ..() -/obj/item/clothing/gloves/claws/bone_gauntlets/Touch(atom/target, proximity = TRUE) +/obj/item/clothing/gloves/fingerless/pugilist/bone/Touch(atom/target, proximity = TRUE) if(!isliving(target)) return var/mob/living/M = loc - M.SetNextAction(CLICK_CD_RANGE) // fast punches + if(fasthands) + M.SetNextAction(CLICK_CD_RANGE) // fast punches + else + M.SetNextAction(CLICK_CD_GRABBING) // strong punches return NO_AUTO_CLICKDELAY_HANDLING | ATTACK_IGNORE_ACTION diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 9ede1e6779..7879edbb45 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1359,7 +1359,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) user.do_attack_animation(target, ATTACK_EFFECT_PUNCH) var/damage = rand(user.dna.species.punchdamagelow, user.dna.species.punchdamagehigh) - var/woundbonus = user.dna.species.woundbonus + var/punchwoundbonus = user.dna.species.punchwoundbonus var/puncherstam = user.getStaminaLoss() var/puncherbrute = user.getBruteLoss() var/punchedstam = target.getStaminaLoss() @@ -1375,6 +1375,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //END OF CITADEL CHANGES var/obj/item/bodypart/affecting = target.get_bodypart(ran_zone(user.zone_selected)) + if(HAS_TRAIT(user, TRAIT_PUGILIST)) + affecting = target.get_bodypart(check_zone(user.zone_selected)) // if you're going the based unarmed route you won't miss var/miss_chance = 100//calculate the odds that a punch misses entirely. considers stamina and brute damage of the puncher. punches miss by default to prevent weird cases if(attackchain_flags & ATTACK_IS_PARRY_COUNTERATTACK) @@ -1412,7 +1414,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) target.dismembering_strike(user, affecting.body_zone) if(atk_verb == ATTACK_EFFECT_KICK)//kicks deal 1.5x raw damage + 0.5x stamina damage - target.apply_damage(damage*1.5, attack_type, affecting, armor_block, wound_bonus = woundbonus) + target.apply_damage(damage*1.5, attack_type, affecting, armor_block, wound_bonus = punchwoundbonus) target.apply_damage(damage*0.5, STAMINA, affecting, armor_block) log_combat(user, target, "kicked") else//other attacks deal full raw damage + 2x in stamina damage diff --git a/icons/mob/actions/actions_changeling.dmi b/icons/mob/actions/actions_changeling.dmi index ce6b81e13b..2f384c6119 100644 Binary files a/icons/mob/actions/actions_changeling.dmi and b/icons/mob/actions/actions_changeling.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 755280b332..be466b0c7b 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 874f0d3660..7b0ccb6314 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 8fbb2abe1e..4f650f8561 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 3476b16258..bea90603dd 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ