Files
Leland KembleandGitHub 30217dd492 [NO GBP] Extends meteor deflection interactions to meteor gun meteors (#94552)
## About The Pull Request

Turns the meteor deflection interaction previously added into a
components and gives it to both meteors and meteor gun "meteors".

## Why It's Good For The Game

fixes #94542

## Changelog
🆑

fix: Meteor gun projectile meteors can now be smacked, whacked, walloped
and cracked just as normal meteors can.

/🆑
2025-12-20 19:49:22 +00:00

42 lines
1.3 KiB
Plaintext

/obj/projectile/meteor
name = "meteor"
icon = 'icons/obj/meteor.dmi'
icon_state = "small1"
damage = 90
paralyze = 100
dismemberment = 90
armour_penetration = 100
damage_type = BRUTE
armor_flag = BULLET
mouse_opacity = MOUSE_OPACITY_ICON
obj_flags = NONE
/obj/projectile/meteor/Initialize(mapload)
. = ..()
AddComponent(/datum/component/meteor_combat, CALLBACK(src, PROC_REF(deflect)))
/obj/projectile/meteor/on_hit(atom/target, blocked = 0, pierce_hit)
. = ..()
if(. == BULLET_ACT_HIT && isliving(target))
explosion(target, devastation_range = -1, light_impact_range = 2, flame_range = 0, flash_range = 1, adminlog = FALSE)
playsound(target.loc, 'sound/effects/meteorimpact.ogg', 40, TRUE)
/obj/projectile/meteor/Bump(atom/hit_target)
if(hit_target == firer)
forceMove(hit_target.loc)
return
if(isobj(hit_target))
SSexplosions.med_mov_atom += hit_target
if(isturf(hit_target))
SSexplosions.medturf += hit_target
playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, TRUE)
for(var/mob/onlookers_in_range in urange(10, src))
if(!onlookers_in_range.stat)
shake_camera(onlookers_in_range, 3, 1)
qdel(src)
///Called by component/meteor_combat to direct us away from whatever has punched us.
/obj/projectile/meteor/proc/deflect(mob/user)
firer = user
set_angle(get_angle(user, src) + rand(-45, 45))