Spawning the enemies
We built a very solid and flexible code base to spawn more objects in the game, using our Object Pool to manage the instances triggered by our message queue. It all started with the Warrior unit, and then we reused everything we had to configure and add the Mage unit as well. Now, we are also going to reuse both systems, but with a few changes since the enemies are a bit different from the units.
The first scripts that we are going to create are the messages to spawn the enemies, and then, in the next sections, the other scripts for the enemy component and spawner. Each enemy will have its own message; however, they will all share the same parameter to determine the position on the map at which the enemy will be spawned. Since it is a common property there is no need to add it to all enemy messages, instead, we are going to create a base enemy message and then implement it on all enemy messages.