These two weeks had contained the last feature sprint along with the final QA week before the upcoming polish weeks. Let's get started!
We had 2 two hour meetings to discuss tasks while playtesting the game and taking notes on what needed to be fixed.
This week saw a couple final improvements to the boss modes. The first change was to allow boss modes to stack on top of each other. This would allow the boss to acquire more modes as the run progresses, increasing the boss's difficulty. To implement this functionality, I had to implement a method for randomly selecting multiple modes like I did last week for attacks. I also had to enable explosive projectiles to spawn multiple explosions.
In the process of implementing these changes, I found an issue with scriptable objects I was using to spawn projectiles. Whenever I modified a scriptable object in a script, it would also modify the editor's copy of the scriptable object, making the changes permanent in between runs. To fix this issue, I made sure to make a copy of a scriptable object whenever I was going to modify it so any changes would not be permanent.
I also managed to get in one last new boss mode, the shockwave mode. This mode would add a slowly expanding AoE that would apply a force to the player when they were hit.
Along with these changes I made to the boss modes, I also implemented a couple new boss attacks
The first attack will spawn two turrets in the boss room which will fire projectiles in a cross pattern. These turrets will continue to exist after the boss does its attack which adds an extra threat that the player must contend with.
I also added a "firework" attack which spawns stationary projectiles throughout the room which explode after a brief delay.
Along with the above features that I implemented, I also completed some bug fixes, mainly for the boss. Here are a couple of the major changes I made.
The first major issue was getting the boss damage visuals to function properly. They would break because the boss's visuals are made up of several child components which the enemy health component was not able to access. I had to change the enemy health script to search for all sprite renderers on the actor, not just the one on the parent object.
Another issue I fixed was that some of the attacks that were dependent on the room size such as the rain attack were not working. This happened because the box collider that used to exist on rooms was removed and could no longer be used to easily find the dimensions of a room. To fix this bug, I added back new colliders to all the boss room level chunks which would outline the perimeter of the room.
In total, I did 24 hours of work this week.