Throwing a bee at someone injects reagents (#80354)

## About The Pull Request

Throwing a bee at someone injects that bee's reagents.
This has a larger code footprint than you might expect because venom
injection is done via an element which in turn gives a callback to a
component.
While I was touching that I also separated `COMSIG_MOVABLE_IMPACT` into
`COMSIG_MOVABLE_PRE_IMPACT` because a lot of effects trigger from
`COMSIG_MOVABLE_IMPACT` despite the fact that the throw impact can be
cancelled after the signal is sent.

I also added an inject check onto the venomous element for mob attacks,
so thick clothing can now protect you from venom injection.
I elected that Giant Spiders have big enough fangs to ignore this such
that this isn't a major balance change, as do moonicorns (that horn is
massive), Fire Sharks, and Clowns (no idea how they are applying chems
at all to be honest).

## Why It's Good For The Game

I thought about someone throwing a bee at someone like a little dart and
thought "hee hee"

## Changelog

🆑
add: If you throw a bee at someone it will hit them sting-first and
inject that bee's reagent
balance: Thick clothing can now protect you from the venom of bees,
snakes, frogs, and (small) spiders
/🆑

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
This commit is contained in:
Jacquerel
2023-12-17 01:10:06 +01:00
committed by GitHub
co-authored by John Willard
parent 0f54943cc8
commit 29590d467c
14 changed files with 57 additions and 17 deletions
@@ -26,7 +26,7 @@
. = ..()
AddElement(/datum/element/death_gases, /datum/gas/plasma, 40)
AddElement(/datum/element/simple_flying)
AddElement(/datum/element/venomous, /datum/reagent/phlogiston, 2)
AddElement(/datum/element/venomous, /datum/reagent/phlogiston, 2, injection_flags = INJECT_CHECK_PENETRATE_THICK)
AddComponent(/datum/component/swarming)
AddComponent(/datum/component/regenerator, outline_colour = COLOR_DARK_RED)
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)