Game Programmer

Basic Structure
All the units in the game started from one class called BasicUnit. BasicUnit was extended by two other classes called PlayerUnit and EnemyUnit (which should be self explanatory) and PlayerUnit and EnemyUnit were each extended by the specific unit types like Shooter and Baiter and Sniper etc.
Baiter Pulse Code
The Baiter's Pulse was relegated to a function of the same name. Every time Pulse was called (once per every time a Shooter shot a Baiter), a MultiSphere Trace was performed. I then took the array of elements that the trace returned and iterated through each one to first check that it was an enemy, and then apply damage to the traced unit if that was true.

Multi Sphere trace on function call
.png)
Check for unit type and apply damage
_edited.jpg)
Attack Code
The basic code that handled attacks was placed on the BasicUnit class. The function when called, got the tile that the player was trying to attack. It then checked if the unit doing the attacking was a shooter and if so, if the unit being attacked was a Baiter. If both of these things were true, it called the Baiter's pulse instead of TakeDamage. If either was false, it instead called TakeDamage for the targeted unit which subtracted the targeted unit's health by the attacking unit's attack stat.
.png)