Fixes armour penetration not working against mechs in melee. (#21265)

A deprecated variable in the apply_damage chain fucked up the variable
order.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
Matt Atlas
2025-08-31 15:25:05 +00:00
committed by GitHub
co-authored by Matt Atlas
parent 9595c784ee
commit a3a9a2ad4a
48 changed files with 115 additions and 63 deletions
@@ -72,7 +72,7 @@
if (health <= 0)
qdel(src)
/obj/item/storage/box/attack_generic(var/mob/user)
/obj/item/storage/box/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
if(!chewable)
return
if(istype(user, /mob/living))
@@ -82,11 +82,6 @@
if(contents.len && !locate(/obj/item/reagent_containers/food) in src) // you can tear open empty boxes for nesting material, or for food
to_chat(user, SPAN_WARNING("There's no food in that box!"))
return
var/damage
if (!L.mob_size)
damage = 3//A safety incase i forgot to set a mob_size on something
else
damage = L.mob_size//he bigger you are, the faster it tears
if (!damage || damage <= 0)
return
+2 -2
View File
@@ -231,8 +231,8 @@
return 0
return 1
/obj/structure/attack_generic(var/mob/user, var/damage, var/attack_verb, var/wallbreaker)
if(!breakable || !damage || !wallbreaker)
/obj/structure/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
if(!breakable || !damage || !environment_smash)
return 0
visible_message(SPAN_DANGER("[user] [attack_verb] the [src] apart!"))
user.do_attack_animation(src)
@@ -141,7 +141,7 @@
var/attack_verb = pick("mangles", "slices", "slashes", "shreds")
attack_generic(user, UA.damage, attack_verb)
/obj/structure/barricade/attack_generic(mob/user, damage, attack_verb, wallbreaker)
/obj/structure/barricade/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
if(!damage)
return FALSE
if(!isliving(user))
@@ -722,8 +722,8 @@
var/obj/O = A
O.hear_talk(M, text, verb, speaking)
/obj/structure/closet/attack_generic(var/mob/user, var/damage, var/attack_message = "attacks", var/wallbreaker)
if(!damage || !wallbreaker)
/obj/structure/closet/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
if(!damage || !environment_smash)
return
user.do_attack_animation(src)
visible_message(SPAN_DANGER("[user] [attack_message] \the [src]!"))
@@ -129,7 +129,7 @@
health -= hitting_projectile.get_structure_damage()
check_health()
/obj/structure/closet/statue/attack_generic(var/mob/user, damage, attacktext, environment_smash)
/obj/structure/closet/statue/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(damage && environment_smash)
for(var/mob/M in src)
+2 -2
View File
@@ -116,8 +116,8 @@
harvest()
return
/obj/structure/reagent_crystal/attack_generic(var/mob/user, var/damage, var/attack_message = "smashes apart", var/wallbreaker)
if(!damage || !wallbreaker)
/obj/structure/reagent_crystal/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
if(!damage || !environment_smash)
return FALSE
user.do_attack_animation(src)
visible_message(SPAN_WARNING("\The [user] [attack_message] \the [src]!"))
@@ -30,7 +30,7 @@
dir = SOUTH
pixel_y = -20
/obj/structure/fireaxecabinet/attack_generic(var/mob/user, var/damage, var/attack_verb, var/wallbreaker)
/obj/structure/fireaxecabinet/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
user.do_attack_animation(src)
playsound(user, 'sound/effects/glass_hit.ogg', 50, 1)
visible_message(SPAN_WARNING("\The [user] [attack_verb] \the [src]!"))
+2 -2
View File
@@ -340,8 +340,8 @@
dismantle()
return
/obj/structure/girder/attack_generic(var/mob/user, var/damage, var/attack_message = "smashes apart", var/wallbreaker)
if(!damage || !wallbreaker)
/obj/structure/girder/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
if(!damage || !environment_smash)
return FALSE
user.do_attack_animation(src)
visible_message(SPAN_DANGER("[user] [attack_message] \the [src]!"))
+1 -1
View File
@@ -65,7 +65,7 @@
health -= throw_force
healthcheck()
/obj/structure/gore/attack_generic()
/obj/structure/gore/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
attack_hand(usr)
/obj/structure/gore/attackby(obj/item/attacking_item, mob/user)
+2 -2
View File
@@ -318,7 +318,7 @@
healthcheck()
..()
/obj/structure/grille/attack_generic(var/mob/user, var/damage, var/attack_verb)
/obj/structure/grille/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
visible_message(SPAN_DANGER("[user] [attack_verb] the [src]!"))
user.do_attack_animation(src)
health -= damage
@@ -357,7 +357,7 @@
/obj/structure/grille/crescent/attackby()
return
/obj/structure/grille/crescent/attack_generic()
/obj/structure/grille/crescent/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
return
/obj/structure/grille/crescent/ex_act(var/severity = 2.0)
+1 -1
View File
@@ -182,7 +182,7 @@
verbs -= /obj/structure/inflatable/verb/hand_deflate
deflate()
/obj/structure/inflatable/attack_generic(var/mob/user, var/damage, var/attack_verb)
/obj/structure/inflatable/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
health -= damage
user.do_attack_animation(src)
if(health <= 0)
+1 -1
View File
@@ -80,7 +80,7 @@
visible_message(SPAN_WARNING("[user] hits [src] with [attacking_item]!"))
playsound(src.loc, 'sound/effects/glass_hit.ogg', 70, 1)
/obj/structure/mirror/attack_generic(var/mob/user, var/damage)
/obj/structure/mirror/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
user.do_attack_animation(src)
if(shattered)
+1 -1
View File
@@ -80,7 +80,7 @@
/obj/structure/simple_door/attack_hand(mob/user as mob)
return TryToSwitchState(user)
/obj/structure/simple_door/attack_generic(mob/user)
/obj/structure/simple_door/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
if(istype(user, /mob/living/simple_animal/construct)) // don't know of any other attack_generic smart enough to open doors
TryToSwitchState(user)
return
+1 -1
View File
@@ -238,7 +238,7 @@
"You hear a knocking sound.")
return
/obj/structure/window/attack_generic(var/mob/user, var/damage)
/obj/structure/window/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(damage >= 10)
visible_message(SPAN_DANGER("[user] smashes into [src]!"))