refactor damage dealing