mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 08:37:43 +01:00
A comprehensive refactor / cleanup of bullet_hit and on_hit to cut out a single bad species / mob proc (#79024)
## About The Pull Request - Refactored `bullet_act`. Adds `should_call_parent` and refactors associated children to support that. - Fixes silicons sparking off when hit by disabler fire. - Desnowflakes firing range target integrity and cleans up its bullet-hole code a bit. - Cleans up changeling tentacle code a fair bit and fixes it not taking off throw mode if you fail to catch something. - The Sleeping Carp deflection is now signalized - Nightmare projectile dodging is now signalized and sourced from the Nightmare's brain rather than species - Refactored how cardboard cutouts get knocked over to be less snowflaked / use integrity - Also adds projectile `on_hit` `should_call_parent` and cleans up a bit of that, particularly their arguments. - On hit arguments were passed wrong this entire time, it's a good thing nothing relied on that. ## Why It's Good For The Game This is cringe. https://github.com/tgstation/tgstation/blob/1863eb2cd82e7cee4fdfff37b42d3fd0c7edd797/code/modules/mob/living/carbon/human/_species.dm#L1430-L1442 Bullets should overall act more consistent across mob types and objects. ## Changelog 🆑 Melbert fix: Silicons don't spark when shot by disablers fix: Changelings who fail to catch something with a tencacle will have throw mode disabled automatically fix: Fixes occasions where you can reflect with Sleeping Carp when you shouldn't be able to fix: Fixes some projectiles causing like 20x less eye blur than they should be refactor: Refactored bullet-mob interactions refactor: Nightmare "shadow dodge" projectile ability is now sourced from their brain /🆑
This commit is contained in:
@@ -101,7 +101,7 @@
|
||||
)
|
||||
AddComponent(/datum/component/connect_loc_behalf, parent, loc_connections)
|
||||
|
||||
RegisterSignal(parent, COMSIG_ATOM_BULLET_ACT, PROC_REF(consume_bullets))
|
||||
RegisterSignal(parent, COMSIG_ATOM_PRE_BULLET_ACT, PROC_REF(consume_bullets))
|
||||
|
||||
if (notify_admins)
|
||||
admin_investigate_setup()
|
||||
@@ -127,7 +127,7 @@
|
||||
COMSIG_ATOM_ATTACK_PAW,
|
||||
COMSIG_ATOM_BLOB_ACT,
|
||||
COMSIG_ATOM_BSA_BEAM,
|
||||
COMSIG_ATOM_BULLET_ACT,
|
||||
COMSIG_ATOM_PRE_BULLET_ACT,
|
||||
COMSIG_ATOM_BUMPED,
|
||||
COMSIG_MOVABLE_PRE_MOVE,
|
||||
COMSIG_ATOM_ATTACKBY,
|
||||
@@ -180,6 +180,7 @@
|
||||
SIGNAL_HANDLER
|
||||
|
||||
qdel(projectile)
|
||||
return COMPONENT_BULLET_BLOCKED
|
||||
|
||||
/// Calls singularity_act on the thing passed, usually destroying the object
|
||||
/datum/component/singularity/proc/default_singularity_act(atom/thing)
|
||||
|
||||
Reference in New Issue
Block a user