Thanks, I have one question to that, how would you pass damage amount for specific type(ie. two damage types, one deals 10dmg and the other 25dmg), since “DamageTypes are never instanced and should be treated as immutable data holders with static code functionality. They should never be stateful.”, and TakeDamage takes only one variable for damage amount.
My damage amounts are calculated during runtime from equipped items, ability level, buffs, debuffs etc., so I cannot just specify the damage in blueprints for each type and get static value.
I suggested that solution but i’m not sure if that is the right way of doing it, you could have a TMap of UDamageType and flot and for each type of damage you could associate a specific damage and then process everything in TakeDamage. As an alternative you can call TakeDamage multiple times for each type of damage like you mentioned and check the avoidance before the first call.