Split damage handling into prepare and execution in order to allow for damage alteration from resistance and the like.
Remove duplicate ConditionMatcher.
Added logic for detecting resist condition and applying it to damage.