Ilia Denisov
e9b904332e
Tests · Go / test (push) Successful in 2m31s
Tests · UI / test (push) Waiting to run
Tests · Integration / integration (pull_request) Successful in 1m41s
Tests · Go / test (pull_request) Successful in 3m14s
Tests · UI / test (pull_request) Successful in 2m32s
fix(ui): calculator polish — smart input steps, unified tech/MAT lock idiom, tech floor, speed-lock ceiling fix
...
- pkg/calc: DriveForSpeed treats restMass==0 as a valid ceiling-only
case (every positive drive solves it), so locking the displayed
speed of a D=1, W=A=S=C=0 ship is no longer a phantom "infeasible".
- ship-design-area: drive/weapons/shields/cargo inputs use a JS-driven
smart step on ArrowUp/ArrowDown (0↔1 jump, otherwise ±0.1) and hide
the native spinner so it cannot produce invalid (0, 1) values;
armament keeps its native step 1.
- Tech and planet MAT cells follow the same lock idiom as goal-seek
locks: open padlock (🔓 ) over the inherited value → click to open
an input with a closed padlock (🔒 ). The padlock slot is always
reserved, so the column width is stable.
- Tech overrides (design area and modernization target) are floored
at the player's current tech on this turn — a lower value is
flagged as invalid.
2026-05-26 14:30:43 +02:00
..
2026-05-26 14:30:43 +02:00
2026-05-13 12:24:20 +02:00
2026-05-23 20:49:35 +02:00
2026-05-07 16:14:40 +02:00
2026-05-24 08:49:37 +02:00
2026-05-13 18:52:40 +02:00
2026-05-26 14:30:43 +02:00
2026-05-26 14:30:43 +02:00
2026-05-23 20:49:35 +02:00
2026-05-09 11:50:09 +02:00
2026-05-22 13:29:11 +02:00
2026-05-23 18:19:07 +02:00
2026-05-26 14:30:43 +02:00
2026-05-24 08:49:37 +02:00
2026-05-23 18:19:07 +02:00
2026-05-23 20:49:35 +02:00
2026-05-23 20:49:35 +02:00
2026-05-21 20:04:07 +02:00
2026-05-12 00:13:19 +02:00
2026-05-12 00:13:19 +02:00
2026-05-22 08:48:13 +02:00
2026-05-07 16:14:40 +02:00
2026-05-10 13:23:56 +02:00
2026-05-09 20:48:42 +02:00
2026-05-10 21:32:37 +02:00
2026-05-10 15:08:41 +02:00
2026-05-10 21:32:37 +02:00
2026-05-10 17:55:43 +02:00
2026-05-10 16:27:55 +02:00
2026-05-21 20:04:07 +02:00
2026-05-10 13:24:17 +02:00
2026-05-08 21:17:17 +02:00
2026-05-23 20:49:35 +02:00
2026-05-08 21:17:17 +02:00
2026-05-23 20:49:35 +02:00
2026-05-25 23:53:20 +02:00
2026-05-16 22:38:59 +02:00
2026-05-24 08:49:37 +02:00
2026-05-19 21:33:53 +02:00
2026-05-19 21:33:53 +02:00
2026-05-08 14:06:23 +02:00
2026-05-09 20:01:34 +02:00
2026-05-24 08:49:37 +02:00
2026-05-19 23:39:39 +02:00
2026-05-19 23:39:39 +02:00
2026-05-08 22:47:38 +02:00
2026-05-12 00:13:19 +02:00
2026-05-09 20:01:34 +02:00
2026-05-10 22:00:03 +02:00
2026-05-11 22:00:16 +02:00
2026-05-26 07:23:44 +02:00
2026-05-24 08:49:37 +02:00
2026-05-21 20:04:07 +02:00
2026-05-11 14:33:56 +02:00
2026-05-11 14:33:56 +02:00
2026-05-11 14:33:56 +02:00
2026-05-23 20:49:35 +02:00
2026-05-10 21:32:37 +02:00
2026-05-24 08:49:37 +02:00
2026-05-09 08:29:03 +02:00
2026-05-07 15:24:21 +02:00
2026-05-07 12:58:37 +02:00
2026-05-07 08:24:44 +02:00
2026-05-22 13:29:11 +02:00
2026-05-09 21:44:21 +02:00
2026-05-19 21:33:53 +02:00
2026-05-10 17:55:43 +02:00
2026-05-10 13:23:56 +02:00
2026-05-07 14:08:09 +02:00
2026-05-07 14:08:09 +02:00
2026-05-09 20:01:34 +02:00
2026-05-10 16:27:55 +02:00
2026-05-10 16:27:55 +02:00
2026-05-13 14:22:53 +02:00
2026-05-11 11:19:57 +02:00
2026-05-23 20:49:35 +02:00
2026-05-21 20:04:07 +02:00
2026-05-22 08:36:17 +02:00
2026-05-11 16:16:31 +02:00
2026-05-26 00:18:30 +02:00
2026-05-22 13:29:11 +02:00
2026-05-19 23:39:39 +02:00
2026-05-21 21:24:40 +02:00
2026-05-07 12:58:37 +02:00
2026-05-07 12:58:37 +02:00