Hey, Hi, Hello.
So I was thinking about progress meter yet again and this time I thought of very simple solution. Because if you don’t know, the progress meter has issues.
- It is based on damage done to to chickens that are spawned right now. This means that in some waves (best example is Chicken Multiplicity bossfight) the meter can go back.
- If in some waves some lucky chicken manage to escape your wrath, you may not see the meter go to 100% and don’t expect the wave to end.
So here are the solutions:
- Progress meter is now based on total HP of all chickens in the wave. It’s that simple. You know, the progress meter shouldn’t go back because then it doesn’t exactly show progress. You can’t progress backwards.
- In waves where chickens are allowed to escape when you don’t kill them, the progress meter should be time based. So if some wave is set to be 30 seconds long then the progress meter should show percentage of how much time has passed. (15 seconds - 50%). Important thing to notice is that it destroys my other progress meter idea (Progress meter improvement and missed enemies counter HUD item), but I think this is a better option (especially if we can get the Missed Chickens HUD from the same topic).
So that’s all. Thanks for coming to my TED talk. Be sure to check out my other topics if you’re new.
There is a 3rd issue - bosses that spawn other enemies.
Solving method is also really easy - we just don’t count the enemies that are spawned to the progress bar. Either way you don’t need to kill them to destroy the boss, so it doesn’t break anything and improves the meter.
I also thought about how we can get rid of the 100% progress meter bug.
Let’s say that there are 20 chickens in the wave and they all have 20HP.
So basically you need to run the progress meter code in a IF statement which checks if the damage done in this wave equal the total damage that you can deal - 400HP. For that we also need the 1st solution from this topic to be present. If the damage done equals 400 then the progress meter displays 100%, if not then the ELSE statement runs another IF statement which runs the Progress meter code that we have today and checks if it equals 100%. If it’s true, then it runs the code that changes it to 99,99%. This way even if there is floating point bug it doesn’t display it. It’s like a mask that hides the bug from the players.