Ports TG attack animations. (#22319)

https://github.com/user-attachments/assets/0af58b65-552e-48c2-ab97-56ebf0794127

To-do:

- [x] Simple mobs
- [ ] Icon angles for most icons
- [x] Attack effects for kicking/biting/etc

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
Matt Atlas
2026-06-05 10:12:43 +00:00
committed by GitHub
co-authored by Matt Atlas
parent 5c74b702a8
commit f759aebad3
66 changed files with 403 additions and 150 deletions
+1 -1
View File
@@ -30,7 +30,7 @@
/obj/structure/gore/resin/attack_hand(var/mob/user)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
user.do_attack_animation(src, FIST_ATTACK_ANIMATION)
user.do_attack_animation(src)
if((user.mutations & HULK))
visible_message(SPAN_DANGER("\The [user] destroys \the [src]!"))
add_damage(maxhealth)
@@ -441,7 +441,7 @@ update_flag
if(attacking_item.item_flags & ITEM_FLAG_NO_BLUDGEON)
return TRUE
visible_message(SPAN_WARNING("\The [user] hits \the [src] with \the [attacking_item]!"), SPAN_NOTICE("You hit \the [src] with \the [attacking_item]."))
user.do_attack_animation(src, attacking_item)
user.do_attack_animation(src, used_item = attacking_item)
playsound(src, 'sound/weapons/smash.ogg', 60, 1)
add_damage(attacking_item.force)
if(!istype(attacking_item, /obj/item/forensics))
@@ -1434,7 +1434,7 @@ About the new airlock wires panel:
return
if(H.default_attack?.attack_door && !(stat & (BROKEN|NOPOWER)))
user.visible_message(SPAN_DANGER("\The [user] forcefully strikes \the [src] with their [H.default_attack.attack_name]!"))
user.do_attack_animation(src, null)
user.do_attack_animation(src, H.default_attack.attack_effect)
playsound(loc, hitsound, 60, TRUE)
add_damage(H.default_attack.attack_door)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
@@ -29,7 +29,7 @@
if(!istype(user, /mob/living/silicon))
if(user.a_intent == I_HURT)
user.visible_message(SPAN_DANGER("\The [user] strikes [src]!"))
user.do_attack_animation(user, attacking_item)
user.do_attack_animation(user, used_item = attacking_item)
playsound(loc, hitsound, 60, TRUE)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
integrity = between(0, integrity - round(attacking_item.force / 3), initial(integrity))