Fixes a bunch of unarmed attack verbs' incorrect forms (#92058)

## About The Pull Request

Introduces perfect tense attack verbs for all of our limbs, as just
adding ``ed`` to the end doesn't work in about half the cases.
- Closes #90573
This commit is contained in:
SmArtKar
2025-07-16 02:02:54 +02:00
committed by GitHub
parent 111a94060f
commit c9b8cb7fcf
9 changed files with 59 additions and 6 deletions
@@ -286,6 +286,10 @@
var/moving_alpha = 200
/// List of arms we have updated
var/list/modified_arms
/// Arm -> original attack verbs assoc list
var/list/initial_unarmed_verbs = list()
/// Arm -> original past attack verbs assocl ist
var/list/initial_unarmed_verbs_past = list()
/datum/status_effect/golem/diamond/on_apply()
. = ..()
@@ -310,8 +314,12 @@
/// Make our arm do slashing effects
/datum/status_effect/golem/diamond/proc/set_arm_fluff(obj/item/bodypart/arm/arm)
initial_unarmed_verbs[arm] = arm.unarmed_attack_verbs
initial_unarmed_verbs_past[arm] = arm.unarmed_attack_verbs_continuous
arm.unarmed_attack_verbs = list("slash")
arm.unarmed_attack_verbs_continuous = list("slashes")
arm.grappled_attack_verb = "lacerate"
arm.grappled_attack_verb_continuous = "lacerates"
arm.unarmed_attack_effect = ATTACK_EFFECT_CLAW
arm.unarmed_attack_sound = 'sound/items/weapons/slash.ogg'
arm.unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg'
@@ -325,13 +333,18 @@
for (var/obj/item/bodypart/arm/arm as anything in modified_arms)
reset_arm_fluff(arm)
LAZYCLEARLIST(modified_arms)
initial_unarmed_verbs.Cut()
initial_unarmed_verbs_past.Cut()
return ..()
/// Make our arm do whatever it originally did
/datum/status_effect/golem/diamond/proc/reset_arm_fluff(obj/item/bodypart/arm/arm)
if (!arm)
return
arm.unarmed_attack_verbs = initial(arm.unarmed_attack_verbs)
arm.unarmed_attack_verbs = initial_unarmed_verbs[arm]
arm.unarmed_attack_verbs_continuous = initial_unarmed_verbs_past[arm]
arm.grappled_attack_verb = initial(arm.grappled_attack_verb)
arm.grappled_attack_verb_continuous = initial(arm.grappled_attack_verb_continuous)
arm.unarmed_attack_effect = initial(arm.unarmed_attack_effect)
arm.unarmed_attack_sound = initial(arm.unarmed_attack_sound)
arm.unarmed_miss_sound = initial(arm.unarmed_miss_sound)
@@ -341,6 +354,8 @@
/datum/status_effect/golem/diamond/proc/on_arm_destroyed(obj/item/bodypart/arm/arm)
SIGNAL_HANDLER
modified_arms -= arm
initial_unarmed_verbs -= arm
initial_unarmed_verbs_past -= arm
/// Makes you tougher
/datum/status_effect/golem/titanium
@@ -837,7 +837,12 @@ GLOBAL_LIST_EMPTY(features_by_species)
// Whether or not we get some protein for a successful attack. Nom.
var/biting = FALSE
var/atk_verb = pick(attacking_bodypart.unarmed_attack_verbs)
var/atk_verb_index = rand(1, length(attacking_bodypart.unarmed_attack_verbs))
var/atk_verb = attacking_bodypart.unarmed_attack_verbs[atk_verb_index]
var/atk_verb_continuous = "[atk_verb]s"
if (length(attacking_bodypart.unarmed_attack_verbs_continuous) >= atk_verb_index) // Just in case
atk_verb_continuous = attacking_bodypart.unarmed_attack_verbs_continuous[atk_verb_index]
var/atk_effect = attacking_bodypart.unarmed_attack_effect
if(atk_effect == ATTACK_EFFECT_BITE)
@@ -845,7 +850,11 @@ GLOBAL_LIST_EMPTY(features_by_species)
biting = TRUE
else if(user.get_active_hand()) //In the event we can't bite, emergency swap to see if we can attack with a hand.
attacking_bodypart = user.get_active_hand()
atk_verb = pick(attacking_bodypart.unarmed_attack_verbs)
atk_verb_index = rand(1, length(attacking_bodypart.unarmed_attack_verbs))
atk_verb = attacking_bodypart.unarmed_attack_verbs[atk_verb_index]
atk_verb_continuous = "[atk_verb]s"
if (length(attacking_bodypart.unarmed_attack_verbs_continuous) >= atk_verb_index) // Just in case
atk_verb_continuous = attacking_bodypart.unarmed_attack_verbs_continuous[atk_verb_index]
atk_effect = attacking_bodypart.unarmed_attack_effect
else //Nothing? Okay. Fail.
user.balloon_alert(user, "can't attack!")
@@ -883,7 +892,8 @@ GLOBAL_LIST_EMPTY(features_by_species)
limb_accuracy += clamp(puncher_brute_and_burn / 2, 10, 200)
damage += damage * clamp(puncher_brute_and_burn / 100, 0.3, 2) //Basically a multiplier of how much extra damage you get based on how low your health is overall. A floor of about a 30%.
var/drunken_martial_descriptor = pick("Drunken", "Intoxicated", "Tipsy", "Inebriated", "Delirious", "Day-Drinker's", "Firegut", "Blackout")
atk_verb = "[drunken_martial_descriptor] [atk_verb]"
atk_verb = "[drunken_martial_descriptor] [capitalize(atk_verb)]"
atk_verb_continuous = "[drunken_martial_descriptor] [capitalize(atk_verb_continuous)]"
else if(user_drunkenness >= 60)
limb_accuracy = -limb_accuracy // good luck landing a punch now, you drunk fuck
@@ -934,8 +944,10 @@ GLOBAL_LIST_EMPTY(features_by_species)
if(grappled && attacking_bodypart.grappled_attack_verb)
atk_verb = attacking_bodypart.grappled_attack_verb
target.visible_message(span_danger("[user] [atk_verb]ed [target]!"), \
span_userdanger("You're [atk_verb]ed by [user]!"), span_hear("You hear a sickening sound of flesh hitting flesh!"), COMBAT_MESSAGE_RANGE, user)
atk_verb_continuous = attacking_bodypart.grappled_attack_verb_continuous
target.visible_message(span_danger("[user] [atk_verb_continuous] [target]!"), \
span_userdanger("[user] [atk_verb_continuous] you!"), span_hear("You hear a sickening sound of flesh hitting flesh!"), COMBAT_MESSAGE_RANGE, user)
to_chat(user, span_danger("You [atk_verb] [target]!"))
target.lastattacker = user.real_name
@@ -171,8 +171,12 @@
var/attack_type = BRUTE
/// the verbs used for an unarmed attack when using this limb, such as arm.unarmed_attack_verbs = list("punch")
var/list/unarmed_attack_verbs = list("bump")
/// Continuous tense attack verbs for successful attacks
var/list/unarmed_attack_verbs_continuous = list("bumps")
/// if we have a special attack verb for hitting someone who is grappled by us, it goes here.
var/grappled_attack_verb
/// Continuous tense grapple verb for successful attacks
var/grappled_attack_verb_continuous
/// what visual effect is used when this limb is used to strike someone.
var/unarmed_attack_effect = ATTACK_EFFECT_PUNCH
/// Sounds when this bodypart is used in an umarmed attack
+1
View File
@@ -18,6 +18,7 @@
grind_results = null
is_dimorphic = TRUE
unarmed_attack_verbs = list("bite", "chomp")
unarmed_attack_verbs_continuous = list("bites", "chomps")
unarmed_attack_effect = ATTACK_EFFECT_BITE
unarmed_attack_sound = 'sound/items/weapons/bite.ogg'
unarmed_miss_sound = 'sound/items/weapons/bite.ogg'
+3
View File
@@ -142,7 +142,9 @@
body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_DEFAULT
can_be_disabled = TRUE
unarmed_attack_verbs = list("punch") /// The classic punch, wonderfully classic and completely random
unarmed_attack_verbs_continuous = list("punches")
grappled_attack_verb = "pummel"
grappled_attack_verb_continuous = "pummels"
unarmed_damage_low = 5
unarmed_damage_high = 10
unarmed_pummeling_bonus = 1.5
@@ -406,6 +408,7 @@
unarmed_attack_effect = ATTACK_EFFECT_KICK
body_zone = BODY_ZONE_L_LEG
unarmed_attack_verbs = list("kick") // The lovely kick, typically only accessable by attacking a grouded foe. 1.5 times better than the punch.
unarmed_attack_verbs_continuous = list("kicks")
unarmed_damage_low = 7
unarmed_damage_high = 15
unarmed_effectiveness = 15
@@ -38,7 +38,9 @@
dmg_overlay_type = null
attack_type = BURN //burn bish
unarmed_attack_verbs = list("burn", "sear")
unarmed_attack_verbs_continuous = list("burns", "sears")
grappled_attack_verb = "scorch"
grappled_attack_verb_continuous = "scorches"
unarmed_attack_sound = 'sound/items/weapons/etherealhit.ogg'
unarmed_miss_sound = 'sound/items/weapons/etherealmiss.ogg'
brute_modifier = 1.25 //ethereal are weak to brute damage
@@ -56,7 +58,9 @@
dmg_overlay_type = null
attack_type = BURN // bish buzz
unarmed_attack_verbs = list("burn", "sear")
unarmed_attack_verbs_continuous = list("burns", "sears")
grappled_attack_verb = "scorch"
grappled_attack_verb_continuous = "scorches"
unarmed_attack_sound = 'sound/items/weapons/etherealhit.ogg'
unarmed_miss_sound = 'sound/items/weapons/etherealmiss.ogg'
brute_modifier = 1.25 //ethereal are weak to brute damage
@@ -19,7 +19,9 @@
icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi'
limb_id = SPECIES_LIZARD
unarmed_attack_verbs = list("slash", "scratch", "claw")
unarmed_attack_verbs = list("slashed", "scratched", "clawed")
grappled_attack_verb = "lacerate"
grappled_attack_verb_continuous = "lacerates"
unarmed_attack_effect = ATTACK_EFFECT_CLAW
unarmed_attack_sound = 'sound/items/weapons/slash.ogg'
unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg'
@@ -28,7 +30,9 @@
icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi'
limb_id = SPECIES_LIZARD
unarmed_attack_verbs = list("slash", "scratch", "claw")
unarmed_attack_verbs = list("slashed", "scratched", "clawed")
grappled_attack_verb = "lacerate"
grappled_attack_verb_continuous = "lacerates"
unarmed_attack_effect = ATTACK_EFFECT_CLAW
unarmed_attack_sound = 'sound/items/weapons/slash.ogg'
unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg'
@@ -17,6 +17,7 @@
/obj/item/bodypart/arm/left/snail
limb_id = SPECIES_SNAIL
unarmed_attack_verbs = list("slap")
unarmed_attack_verbs_continuous = list("slaps")
unarmed_attack_effect = ATTACK_EFFECT_DISARM
unarmed_damage_low = 1
unarmed_damage_high = 2 //snails are soft and squishy
@@ -26,6 +27,7 @@
/obj/item/bodypart/arm/right/snail
limb_id = SPECIES_SNAIL
unarmed_attack_verbs = list("slap")
unarmed_attack_verbs_continuous = list("slaps")
unarmed_attack_effect = ATTACK_EFFECT_DISARM
unarmed_damage_low = 1
unarmed_damage_high = 2 //snails are soft and squishy
@@ -230,7 +232,9 @@
/obj/item/bodypart/arm/left/pod
limb_id = SPECIES_PODPERSON
unarmed_attack_verbs = list("slash", "lash")
unarmed_attack_verbs_continuous = list("slashes", "lashes")
grappled_attack_verb = "lacerate"
grappled_attack_verb_continuous = "lacerates"
unarmed_attack_effect = ATTACK_EFFECT_CLAW
unarmed_attack_sound = 'sound/items/weapons/slice.ogg'
unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg'
@@ -242,7 +246,9 @@
/obj/item/bodypart/arm/right/pod
limb_id = SPECIES_PODPERSON
unarmed_attack_verbs = list("slash", "lash")
unarmed_attack_verbs_continuous = list("slashes", "lashes")
grappled_attack_verb = "lacerate"
grappled_attack_verb_continuous = "lacerates"
unarmed_attack_effect = ATTACK_EFFECT_CLAW
unarmed_attack_sound = 'sound/items/weapons/slice.ogg'
unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg'
@@ -29,7 +29,9 @@
limb_id = SPECIES_MOTH
should_draw_greyscale = FALSE
unarmed_attack_verbs = list("slash")
unarmed_attack_verbs_continuous = list("slashes")
grappled_attack_verb = "lacerate"
grappled_attack_verb_continuous = "lacerates"
unarmed_attack_effect = ATTACK_EFFECT_CLAW
unarmed_attack_sound = 'sound/items/weapons/slash.ogg'
unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg'
@@ -41,7 +43,9 @@
limb_id = SPECIES_MOTH
should_draw_greyscale = FALSE
unarmed_attack_verbs = list("slash")
unarmed_attack_verbs_continuous = list("slashes")
grappled_attack_verb = "lacerate"
grappled_attack_verb_continuous = "lacerates"
unarmed_attack_effect = ATTACK_EFFECT_CLAW
unarmed_attack_sound = 'sound/items/weapons/slash.ogg'
unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg'