Paying for a displayed number changes every score
Before Ice Breaker 1.5.0, the combo counter drove SFX pitch and the COOL, ICE RUSH and FROZEN FEVER badges, but the score stayed a flat base times ten. The number was measured, shown and thrown away. The moment a multiplier pays for it, the same play scores differently, so everything below the first tier keeps its old value.
Reuse the boundaries the badge already taught
Players were already reading the three badge words. The tier edges stay at 4, 10 and 20 and the multiplier climbs 1, 2, 3, 5. ComboMeter is a plain static class with no scene, camera or AudioSource, so EditMode tests cover the whole ladder. The linked Unity Test Framework page explains where EditMode tests differ from PlayMode tests.
What the tests lock
- Both sides of each edge: combo 3 is no tier, 4 is COOL, 9 is still COOL, 10 is ICE RUSH, 19 is still ICE RUSH, and 20 or 99 is FROZEN FEVER.
- Backward compatibility: a 1-point block at combo 0 still pays 10, so 1.5.0 does not silently inflate or deflate earlier scores.
- One shared ladder: a normal 1-point block, a 3-point cross core and a 4-point bomb ride the same multiplier. Breaking a basic 3-point block at combo 20 pays 3×10×5=150, and a basic 4-point block at combo 10 pays 4×10×3=120.
- Never negative: ScoreFor clamps with Mathf.Max(0, basePoints).
- Volley and run records stay separate: RecordBreak tracks the volley peak and the run peak, while BeginVolley resets only the volley values.
- One callout per tier per volley: on a 50-ball volley, a popup per block would bury the screen. TryAnnounceTier returns true only on the first reach of a higher tier, and BeginVolley re-arms it for the next volley.
A sequence to copy in another project
- Tabulate tier and multiplier at combo 0, 3, 4, 10 and 20, then pin them in tests.
- Confirm scores below the first tier match the previous version.
- Check that different block values ride the same multiplier, one at a time.
- Reset announcement state when a volley changes and keep the run peak.
- Limit tier callouts to once per tier per volley so wording does not spam.
What this record does not prove
The September 8 EditMode 16/16 receipt and the pinned source were compared on September 21. The tests lock a contract; they do not show that 1·2·3·5 at 4·10·20 is fun or balanced for this game, and they are not universal constants for another game. Real-play score distribution and on-device feel were not verified.
Retained runtime evidence and source review
Verified
Test environmentUnity 6000.5.3f1 · Windows Editor · September 8 retained EditMode receipts; ComboMeter source review on September 21
Compared the merged Ice Breaker PR #40 source with the September 8 Unity 6000.5.3f1 EditMode 16/16 test XML, which contains the eight ComboMeter tests. The author did not rerun the game. The tests lock a contract; they do not prove the multiplier values are fun, balanced or representative of real play.