For checking ubercharge: You could check the condition's inflictor with low-level memory reads, but that just narrows the effect down to a client. I have accessors for those
, but they're not all that safe -- probably should get it set up as a proper library at some point.
A pretty basic way to check would be to use Pelipoika's GetHealerByIndex
function stock to iterate over a target's healers, then check if they have the correct medigun out with charge currently being drained.
For checking invulnerability: TF2 itself implements CTFPlayerShared::IsInvulnerable()
, and all it does is check if the player has TF_COND_INVULNERABLE
, or TF_COND_INVULNERABLE_CARD_EFFECT