The regular enemies appear in all sectors. There are 5 factions of enemies, with a small and a large enemy for each faction, except for the corpo enemy. Factions will fight each other if they cross paths. Each faction is differentiated by unique styling and attack patterns.
Pirate
The pirates have a fast moving boomerang attack and a slower, but deadlier cannonball attack. The boomerang attack is a subclass of the ProjectileScript, and has been adjusted to remove the boomerangs after they make a complete flight path.
Creventine
Hebelob
The hebelobs cause contact damage on hit, and actively seek to crash into the player. The large whale hebelob will also leave damaging mines behind it as it moves.
Cultist
Corpo
The weak point script is not tied to any specific boss and is relatively simple. It simply uses a health component to display a health bar on the weak point and contains a event that is invoked when the weak point is destroyed. This callback is subscribed to by the boss its attached to.
The Goo Boss is controlled by the GooBossBehavior
script. The boss operates in stages and is setup internally like a state machine. The boss can be configured in the editor with configuration settings being documented in tooltips and inline. The boss states are described below:
Idle
: checks if the boss has lost any weak points and should switch to the RegeneratingWeakPoints
state. If not, it immediately switches to the PreparingProjectiles
state.RegeneratingWeakPoints
: Creates weak points until either all the slots are filled or the more weak points cannot be spawned (limit set in configuration). Once all weak points are healed waits three seconds before switching back to the Idle
state.
PreparingProjectiles
: aims turrets at the player and waits for two seconds before switching to the FiringProjectiles
state. This can be used to trigger an animation to inform the player the ship is about to fire.FiringProjectiles
: Fires projectiles at the player that deal low amounts of damage. After five seconds switches to the PreparingWalls
state.PreparingWalls
: After two seconds switches to the PlacingWalls
state. This can be used to trigger an animation to inform the player.PlacingWalls
: Instantiates three wall objects that block the player from firing at the weak points. Walls slowly move towards the player and can be destroyed by firing at them. After the walls are instantiated switches to the ChargingLaser
state.