I didn’t get much done this week due to going out of town for a few days (first time since COVID began!).
Enemies have been disabled for the past several weeks while performing major refactoring. I re-enabled them this week and tested movement and combat. There were some new issues, which were easily fixed. There were also some old issues, which were also easily fixed because of the recent code improvements.
One of the techniques I’ve used repeatedly in the latest round of refactoring is game events. The event system I’m using is CSharpMessenger Extended. This has been a great way to decouple objects and clean up business logic. There’s no noticeable performance hit, but I am avoiding using events in code that runs frequently.
I added a text overlay that lists all enemies on the map and key attributes such as whether the enemy is active, if the enemy has previously seen the player, if the enemy currently sees the player, action points, etc. This has been helpful for troubleshooting.
Next week, I’m continuing to work through the bug backlog. I’m also considering changing pathfinding so that actors can’t move through walls on a diagonal.