Player Parrying
The player character in Operation Germ can fire two ammo types or parry enemy attacks to steal copies of them. Every enemy move has a custom collider designated for parries; after successful parrying, the system assigns a duplicate of that ability to the player's active target slot for immediate use. Each projectile behavior is stored in a Scriptable Object containing data for both boss and player variations.
Enemy AI
Boss encounters in Operation Germ use a state machine that dynamically changes attack routines based on past moves and player actions. To keep the workflow clean, I made a modular base boss class that handles the state system. This let me and the other team programmer put unique boss mechanics in child classes, making development easier.
Art Implementation
To implement the art made for the game I made good use of Unity's animator component. For certain backgrounds, I would animate different elements moving to add life to scenes and menus. The player and bosses all use an animator with a clean layer set-up to get animations implemented fast.