Calculating the damage
Previously, we included all the enemy variations and reused most of the systems created for the units. However, as the project evolves, we have a new need to create a common class for both enemies and units to make it easier for the battle and collision scripts to handle both types of characters. It is a common practice to rework existing code to expand its functionality or improve its overall quality, which is called code refactoring.
We already have some classes used by units and enemies that, even though they are very specific, still share some properties and methods that are the same for both characters. Having a class with common code for both units and enemies will reduce the amount of duplicated code and improve the code usability. The updated versions of the data and component classes will be inherited from the common class for code reuse and will have only the implementation that is different and unique for each character.
Let us start with the...