8 Commits
Author SHA1 Message Date
andrey cacd956e31 Визуал: живая оснастка — крючок под водой, топление поплавка при клёве, диагональное вываживание. 1) Оснастка (WAIT/APPROACH/BITE): поводок от поплавка вниз, крючок (дуга+жало) и наживка; глубина крючка — 42–54% водной колонны по дальности заброса (hookY()); новый глобал castDist (дальность 0..0.97 из doCast), hookPos (позиция крючка, экспорт для отрисовки); эмодзи наживки с крючка убран. 2) Поклёвка: в APPROACH дрожание поплавка растёт по мере приближения рыбы, цель подплывания — hookPos (рыба идёт диагональю от поверхности к наживке, не телепортируется); в BITE поплавок топится (bobber.y=waterY+9, кромка воды поверх нижней половины — drawBobber(sink)), рыба дёргается у крючка в такт топлению (time*22). 3) Вываживание: fishReelPos() — рыба по диагонали от глубины крючка (castTo.x, hookY()) к лодке у поверхности (boatX+24, waterY+10) по прогрессу d/d0 (ease), подводный сегмент лески bobber→рыба; при holding линия удочка-поплавок-рыба натянута (sag=0, поплавок — точка пересечения прямой tip→fish с поверхностью, сглаживание dt*8), при отпускании провис (pull 16 / calm 12); риплы/брызги в REEL/BITE — по позиции поплавка, не castTo.x. Только canvas: механика (updateReel/startBite/hook/catchFish), сейв, баланс и имена тест-глобалов из AGENTS.md не тронуты. tests/shots.js: кадр reel — reel.holding=true + пауза 650 мс (поплавок доходит до натянутого положения). 129/129, exit 0; кадры wait/bite/reel проверены по скриншотам, свежие в screenshots/. 2026-09-08 12:25:05 +03:00
andrey f843bc8033 Экономика: базы снастей ×5 (удочки 1750/4500/10000, наживки 1250/3000/7500), цена апгрейда upgCost() — id 0 фикс (250/750/1800, 200/550/1400), id>0 база×UPG_MULT (0.2/0.6/1.2); Озёра 100000; HUD вываживания: ⛵ → иконки 🐟+⚡ (полоска выносливости сдвинута). Тесты: ассерты цен/сиды монет обновлены, +2 (апгрейд по формуле, пин цен), shots 30000. 117/117, exit 0 2026-09-06 22:37:41 +03:00
andrey e2d9b1fc58 Локации: Этап 5 — «Озёра» за 25000 (вкладка 🗺️, авто-переход), 3 новых вида (судак/хариус/гигантский рак), 4 таблицы ролла (река байт-в-байт), цвет воды по локации, ачивки масштабируются до 11 видов; по ревью: доки/тест-фантом/NIT/скрин озёр. 117/117 ×2, exit 0 2026-09-06 19:29:32 +03:00
andrey 6b723545c1 M8: Этап 3 — погода: дождь (варианты ×2,5) и туман (клёв ×1,5), событие 120с раз в 2–4 мин, HUD-пилюля + canvas-визуал, forceWeather; по ревью: доки/харденинг флейки 9h/polling-тесты/NIT/скрин дождя. 100/100 ×2, exit 0 2026-09-06 16:00:38 +03:00
andrey 70ff9642b3 Физика: спринт 4 P0 — stamina рыбы, drag катушки, честный баланс сил, пустые клёвы + 7 автотестов (68/68) 2026-09-02 00:51:54 +03:00
andrey 7e7e18cb23 Тесты: shots.js — ожидание отрисовки вместо sleep и выбор кадров через argv 2026-09-01 18:39:52 +03:00
andrey 5c95309ce0 Sprint 2: ночная рыбалка + босс-рыба + доки/скриншоты 2026-09-01 17:53:42 +03:00
andrey a90123be3b Игра «Рыбалка»: HTML5-канвас, автотесты, скриншоты
- один самодостаточный index.html (мобильное управление, магазин,
  дневник, сохранение в localStorage)
- автотест геймплея в headless Chromium (tests/test.js, 21 проверка)
- скриншоты состояния игры (screenshots/)
2026-08-26 18:15:31 +00:00