chore(zuma): increase pushSpeed and starScores for all 20 levels
Significantly raise pushSpeed values across all levels (roughly 4x increase) to make the game more challenging. Updated corresponding star score thresholds proportionally. Adjusted editor UI max pushSpeed to 400 and updated validation constraints to match. Changes affect: - data/zuma.json: level definitions with new pushSpeed and starScores - src/games/zuma/ZumaEditor.js: editor input max value - src/games/zuma/ZumaLogic.js: validation range - tools/genZuma.js: generator table values
This commit is contained in:
parent
8e4e48e540
commit
d08b48cdda
158
data/zuma.json
158
data/zuma.json
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"generatedAt": "2026-07-28T04:37:09.319Z",
|
||||
"generatedAt": "2026-07-28T05:13:50.748Z",
|
||||
"count": 20,
|
||||
"levels": [
|
||||
{
|
||||
|
|
@ -371,13 +371,13 @@
|
|||
"colors": 4,
|
||||
"quota": 22,
|
||||
"introBalls": 7,
|
||||
"pushSpeed": 25,
|
||||
"pushSpeed": 100,
|
||||
"powerUpRate": 0.07,
|
||||
"seed": 8919,
|
||||
"starScores": [
|
||||
590,
|
||||
880,
|
||||
1170
|
||||
750,
|
||||
1130,
|
||||
1500
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -525,13 +525,13 @@
|
|||
"colors": 4,
|
||||
"quota": 26,
|
||||
"introBalls": 8,
|
||||
"pushSpeed": 32,
|
||||
"pushSpeed": 128,
|
||||
"powerUpRate": 0.07,
|
||||
"seed": 16838,
|
||||
"starScores": [
|
||||
710,
|
||||
1060,
|
||||
1410
|
||||
960,
|
||||
1430,
|
||||
1910
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -919,13 +919,13 @@
|
|||
"colors": 4,
|
||||
"quota": 30,
|
||||
"introBalls": 9,
|
||||
"pushSpeed": 35,
|
||||
"pushSpeed": 140,
|
||||
"powerUpRate": 0.065,
|
||||
"seed": 24757,
|
||||
"starScores": [
|
||||
830,
|
||||
1240,
|
||||
1650
|
||||
1140,
|
||||
1710,
|
||||
2280
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -1277,13 +1277,13 @@
|
|||
"colors": 4,
|
||||
"quota": 32,
|
||||
"introBalls": 10,
|
||||
"pushSpeed": 35,
|
||||
"pushSpeed": 140,
|
||||
"powerUpRate": 0.065,
|
||||
"seed": 32676,
|
||||
"starScores": [
|
||||
880,
|
||||
1320,
|
||||
1760
|
||||
1220,
|
||||
1820,
|
||||
2430
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -1487,13 +1487,13 @@
|
|||
"colors": 4,
|
||||
"quota": 38,
|
||||
"introBalls": 11,
|
||||
"pushSpeed": 37,
|
||||
"pushSpeed": 148,
|
||||
"powerUpRate": 0.06,
|
||||
"seed": 40595,
|
||||
"starScores": [
|
||||
1060,
|
||||
1580,
|
||||
2110
|
||||
1480,
|
||||
2210,
|
||||
2950
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -1713,13 +1713,13 @@
|
|||
"colors": 4,
|
||||
"quota": 34,
|
||||
"introBalls": 10,
|
||||
"pushSpeed": 37,
|
||||
"pushSpeed": 148,
|
||||
"powerUpRate": 0.06,
|
||||
"seed": 48514,
|
||||
"starScores": [
|
||||
940,
|
||||
1410,
|
||||
1880
|
||||
1320,
|
||||
1980,
|
||||
2640
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -2091,13 +2091,13 @@
|
|||
"colors": 4,
|
||||
"quota": 26,
|
||||
"introBalls": 8,
|
||||
"pushSpeed": 45,
|
||||
"pushSpeed": 180,
|
||||
"powerUpRate": 0.06,
|
||||
"seed": 56433,
|
||||
"starScores": [
|
||||
740,
|
||||
1110,
|
||||
1480
|
||||
1090,
|
||||
1640,
|
||||
2180
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -2245,13 +2245,13 @@
|
|||
"colors": 5,
|
||||
"quota": 30,
|
||||
"introBalls": 9,
|
||||
"pushSpeed": 40,
|
||||
"pushSpeed": 160,
|
||||
"powerUpRate": 0.055,
|
||||
"seed": 64352,
|
||||
"starScores": [
|
||||
840,
|
||||
1260,
|
||||
1680
|
||||
1200,
|
||||
1800,
|
||||
2400
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -2603,13 +2603,13 @@
|
|||
"colors": 5,
|
||||
"quota": 36,
|
||||
"introBalls": 11,
|
||||
"pushSpeed": 40,
|
||||
"pushSpeed": 160,
|
||||
"powerUpRate": 0.055,
|
||||
"seed": 72271,
|
||||
"starScores": [
|
||||
1010,
|
||||
1520,
|
||||
2020
|
||||
1440,
|
||||
2160,
|
||||
2880
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -2997,13 +2997,13 @@
|
|||
"colors": 5,
|
||||
"quota": 34,
|
||||
"introBalls": 10,
|
||||
"pushSpeed": 43,
|
||||
"pushSpeed": 172,
|
||||
"powerUpRate": 0.055,
|
||||
"seed": 80190,
|
||||
"starScores": [
|
||||
960,
|
||||
1440,
|
||||
1920
|
||||
1400,
|
||||
2100,
|
||||
2800
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -3207,13 +3207,13 @@
|
|||
"colors": 5,
|
||||
"quota": 42,
|
||||
"introBalls": 12,
|
||||
"pushSpeed": 43,
|
||||
"pushSpeed": 172,
|
||||
"powerUpRate": 0.05,
|
||||
"seed": 88109,
|
||||
"starScores": [
|
||||
1190,
|
||||
1790,
|
||||
2380
|
||||
1730,
|
||||
2600,
|
||||
3460
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -3433,13 +3433,13 @@
|
|||
"colors": 5,
|
||||
"quota": 38,
|
||||
"introBalls": 11,
|
||||
"pushSpeed": 45,
|
||||
"pushSpeed": 180,
|
||||
"powerUpRate": 0.05,
|
||||
"seed": 96028,
|
||||
"starScores": [
|
||||
1090,
|
||||
1630,
|
||||
2170
|
||||
1600,
|
||||
2390,
|
||||
3190
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -3791,13 +3791,13 @@
|
|||
"colors": 5,
|
||||
"quota": 34,
|
||||
"introBalls": 10,
|
||||
"pushSpeed": 48,
|
||||
"pushSpeed": 192,
|
||||
"powerUpRate": 0.05,
|
||||
"seed": 103947,
|
||||
"starScores": [
|
||||
980,
|
||||
1470,
|
||||
1960
|
||||
2210,
|
||||
2940
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -4001,13 +4001,13 @@
|
|||
"colors": 5,
|
||||
"quota": 46,
|
||||
"introBalls": 13,
|
||||
"pushSpeed": 48,
|
||||
"pushSpeed": 192,
|
||||
"powerUpRate": 0.05,
|
||||
"seed": 111866,
|
||||
"starScores": [
|
||||
1330,
|
||||
1990,
|
||||
2650
|
||||
2980,
|
||||
3970
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -4155,13 +4155,13 @@
|
|||
"colors": 6,
|
||||
"quota": 32,
|
||||
"introBalls": 9,
|
||||
"pushSpeed": 51,
|
||||
"pushSpeed": 204,
|
||||
"powerUpRate": 0.05,
|
||||
"seed": 119785,
|
||||
"starScores": [
|
||||
930,
|
||||
1400,
|
||||
1860
|
||||
1420,
|
||||
2130,
|
||||
2840
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -4549,13 +4549,13 @@
|
|||
"colors": 6,
|
||||
"quota": 38,
|
||||
"introBalls": 11,
|
||||
"pushSpeed": 53,
|
||||
"pushSpeed": 212,
|
||||
"powerUpRate": 0.05,
|
||||
"seed": 127704,
|
||||
"starScores": [
|
||||
1120,
|
||||
1670,
|
||||
2230
|
||||
1720,
|
||||
2580,
|
||||
3440
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -4907,13 +4907,13 @@
|
|||
"colors": 6,
|
||||
"quota": 34,
|
||||
"introBalls": 10,
|
||||
"pushSpeed": 50,
|
||||
"pushSpeed": 200,
|
||||
"powerUpRate": 0.045,
|
||||
"seed": 135623,
|
||||
"starScores": [
|
||||
990,
|
||||
1480,
|
||||
1970
|
||||
1500,
|
||||
2240,
|
||||
2990
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -5133,13 +5133,13 @@
|
|||
"colors": 6,
|
||||
"quota": 40,
|
||||
"introBalls": 11,
|
||||
"pushSpeed": 50,
|
||||
"pushSpeed": 200,
|
||||
"powerUpRate": 0.045,
|
||||
"seed": 143542,
|
||||
"starScores": [
|
||||
1160,
|
||||
1740,
|
||||
2320
|
||||
1760,
|
||||
2640,
|
||||
3520
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -5343,13 +5343,13 @@
|
|||
"colors": 6,
|
||||
"quota": 50,
|
||||
"introBalls": 14,
|
||||
"pushSpeed": 61,
|
||||
"pushSpeed": 244,
|
||||
"powerUpRate": 0.045,
|
||||
"seed": 151461,
|
||||
"starScores": [
|
||||
1510,
|
||||
2260,
|
||||
3010
|
||||
2420,
|
||||
3630,
|
||||
4840
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -5553,13 +5553,13 @@
|
|||
"colors": 6,
|
||||
"quota": 52,
|
||||
"introBalls": 14,
|
||||
"pushSpeed": 64,
|
||||
"pushSpeed": 256,
|
||||
"powerUpRate": 0.045,
|
||||
"seed": 159380,
|
||||
"starScores": [
|
||||
1580,
|
||||
2370,
|
||||
3160
|
||||
2580,
|
||||
3870,
|
||||
5160
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ export default class ZumaEditor extends Phaser.Scene {
|
|||
${field('zu-colors', 'COLORS (4-6)', 'number', 'min="4" max="6" step="1"')}
|
||||
${field('zu-quota', 'QUOTA', 'number', 'min="20" step="1"')}
|
||||
${field('zu-intro', 'INTRO BALLS', 'number', 'min="1" step="1"')}
|
||||
${field('zu-push', 'PUSH SPEED', 'number', 'min="10" max="100" step="1"')}
|
||||
${field('zu-push', 'PUSH SPEED', 'number', 'min="10" max="400" step="1"')}
|
||||
${field('zu-power', 'POWER-UP RATE', 'number', 'min="0" max="0.2" step="0.005"')}
|
||||
${field('zu-seed', 'SEED', 'number', 'step="1"')}
|
||||
${field('zu-star1', '★ SCORE', 'number', 'step="10"')}
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ export function validateLevelParams(def) {
|
|||
if (!(def.colors >= 4 && def.colors <= 6)) errs.push('colors must be 4..6');
|
||||
if (!(def.quota >= 20)) errs.push('quota must be >= 20');
|
||||
if (!(def.introBalls < def.quota)) errs.push('introBalls must be < quota');
|
||||
if (!(def.pushSpeed >= 10 && def.pushSpeed <= 100)) errs.push('pushSpeed must be 10..100');
|
||||
if (!(def.pushSpeed >= 10 && def.pushSpeed <= 400)) errs.push('pushSpeed must be 10..400');
|
||||
if (!(def.powerUpRate >= 0 && def.powerUpRate <= 0.2)) errs.push('powerUpRate must be 0..0.2');
|
||||
if (!(Array.isArray(def.starScores) && def.starScores.length === 3
|
||||
&& def.starScores[0] < def.starScores[1] && def.starScores[1] < def.starScores[2])) {
|
||||
|
|
|
|||
|
|
@ -170,26 +170,26 @@ const SHAPES = { sCurve, horseshoe, spiral, zigzag, doubleLoop, figureEight };
|
|||
|
||||
const TABLE = [
|
||||
// level, name, shape, colors, quota, intro, push, powerUpRate
|
||||
[1, 'Riverbend', 'sCurve', 4, 22, 7, 25, 0.07],
|
||||
[2, 'Temple Gate', 'horseshoe', 4, 26, 8, 32, 0.07],
|
||||
[3, 'Twin Pools', 'doubleLoop', 4, 30, 9, 35, 0.065],
|
||||
[4, 'Switchbacks', 'zigzag', 4, 32, 10, 35, 0.065],
|
||||
[5, 'Serpent Coil', 'spiral', 4, 38, 11, 37, 0.06],
|
||||
[6, 'Crossroads', 'figureEight', 4, 34, 10, 37, 0.06],
|
||||
[7, 'Rapids', 'sCurve', 4, 26, 8, 45, 0.06],
|
||||
[8, 'Sun Court', 'horseshoe', 5, 30, 9, 40, 0.055],
|
||||
[9, 'Thunder Steps', 'zigzag', 5, 36, 11, 40, 0.055],
|
||||
[10, 'Twin Serpents', 'doubleLoop', 5, 34, 10, 43, 0.055],
|
||||
[11, 'Deep Coil', 'spiral', 5, 42, 12, 43, 0.05],
|
||||
[12, 'Tangled Path', 'figureEight', 5, 38, 11, 45, 0.05],
|
||||
[13, 'Lightning Run', 'zigzag', 5, 34, 10, 48, 0.05],
|
||||
[14, 'Whirlpool', 'spiral', 5, 46, 13, 48, 0.05],
|
||||
[15, 'Obsidian Gate', 'horseshoe', 6, 32, 9, 51, 0.05],
|
||||
[16, 'Twin Tempests', 'doubleLoop', 6, 38, 11, 53, 0.05],
|
||||
[17, 'Stormsteps', 'zigzag', 6, 34, 10, 50, 0.045],
|
||||
[18, 'Maelstrom Cross', 'figureEight', 6, 40, 11, 50, 0.045],
|
||||
[19, 'Abyss Coil', 'spiral', 6, 50, 14, 61, 0.045],
|
||||
[20, 'The Final Coil', 'spiral', 6, 52, 14, 64, 0.045],
|
||||
[1, 'Riverbend', 'sCurve', 4, 22, 7, 100, 0.07],
|
||||
[2, 'Temple Gate', 'horseshoe', 4, 26, 8, 128, 0.07],
|
||||
[3, 'Twin Pools', 'doubleLoop', 4, 30, 9, 140, 0.065],
|
||||
[4, 'Switchbacks', 'zigzag', 4, 32, 10, 140, 0.065],
|
||||
[5, 'Serpent Coil', 'spiral', 4, 38, 11, 148, 0.06],
|
||||
[6, 'Crossroads', 'figureEight', 4, 34, 10, 148, 0.06],
|
||||
[7, 'Rapids', 'sCurve', 4, 26, 8, 180, 0.06],
|
||||
[8, 'Sun Court', 'horseshoe', 5, 30, 9, 160, 0.055],
|
||||
[9, 'Thunder Steps', 'zigzag', 5, 36, 11, 160, 0.055],
|
||||
[10, 'Twin Serpents', 'doubleLoop', 5, 34, 10, 172, 0.055],
|
||||
[11, 'Deep Coil', 'spiral', 5, 42, 12, 172, 0.05],
|
||||
[12, 'Tangled Path', 'figureEight', 5, 38, 11, 180, 0.05],
|
||||
[13, 'Lightning Run', 'zigzag', 5, 34, 10, 192, 0.05],
|
||||
[14, 'Whirlpool', 'spiral', 5, 46, 13, 192, 0.05],
|
||||
[15, 'Obsidian Gate', 'horseshoe', 6, 32, 9, 204, 0.05],
|
||||
[16, 'Twin Tempests', 'doubleLoop', 6, 38, 11, 212, 0.05],
|
||||
[17, 'Stormsteps', 'zigzag', 6, 34, 10, 200, 0.045],
|
||||
[18, 'Maelstrom Cross', 'figureEight', 6, 40, 11, 200, 0.045],
|
||||
[19, 'Abyss Coil', 'spiral', 6, 50, 14, 244, 0.045],
|
||||
[20, 'The Final Coil', 'spiral', 6, 52, 14, 256, 0.045],
|
||||
];
|
||||
|
||||
// Calibrated against the headless aimbot in verifyZuma.js, which takes the best
|
||||
|
|
|
|||
Loading…
Reference in New Issue