I mean you could first store the calculated damage in a variable and then subtract it from the health.
By 40 do you mean you have the events you’ve shown duplicated 40 times with individual tweaks for different attacks?
That just means there will be busywork for any change you go with. Personally I’d try to utilize a function to use less duplicated code.
I guess a two event hack would be to add a variable to the monsters for their old health and do something like this:
Every tick
— monsters: set oldHealth to self.health
… all existing events …
For each monster
— player: add 0.05*(monster.health-monster.old health) to health