Contribution

Action system:

The action system is an implemantation of the command pattern on the tactical AI, the system manages the behavior of all the entities in the game. To do so it encapsulates diferent function calls that the entities need in a class named action, an then another class named ActionWorker manages those actions using the game loop system.
Each entitty has an action worker that stores and executes those actions with diferent priorities, the workers have 3 diferent threads to manage those actions (more threads can easly be added) those threads are classified as primary, secondary and passive, the 2 last ones are only used by units.

The primary one it's mainly used for actions created by the player inputs and since we don't want those actions to be interrupted when it's active (has 1 or more actions to execute) it stops the other 2 threads of updating and executing their actions.
The secondary one is used only for units, mostly for actions called by the AI, usually it manages the same actions as the primary one like move, attack etc... but in this case we want to be able to interrupt these actions depending on the environment.
The passive channel updates at the same time as the secondary one, it's only used for actions like autoattack that have the unit scann their surroundins every x seconds and act accodring to it.


Action creation:

Create diferent actions to use on the action worker, such as move, attack, teleport, heal...
Only a simple definition, some of them were passed to other team members to complete them, such as the move that was passed to Andreu Rojas to implement the colision system.


AI general update:

Diferent functions that the AI calls during it's update cycle that manage and decide which troop to create, how to expand, resource recollection, raids...


Bug managment:

Create a simple organization sistem to ease bug mangament, the sistem was created using github issues and waffle.io.


Prepare xml:

Revise and add some lines to the xml from the sprites to make them able to work with the animation framework created by Ferran Martín.