16 Commits
Author SHA1 Message Date
andrey 73b4ab3bd2 Релиз 5 «Симулятор»: доки спринта 4 (DEVLOG этап 15, AGENTS «Физика боя», README механика) + харденинг escape-теста (пинн aggr/escape — флейк при ag≥0.65). 68/68 ×3, exit 0 2026-09-02 13:31:58 +03:00
andrey cc6238aa9b Тесты: спринт 4 T4 — свежие скриншоты, харденинг orca-playtest против T2b-гонки escape (атомарный hold) — 47/47 live 2026-09-02 10:34:47 +03:00
andrey 60f375598b Физика: спринт 4 T2b — ребаланс по ревью T3 (MAJOR-1/2, MINOR, NIT) + Monte-Carlo приёмка
MAJOR-1 (skill-curve): отпускание в рывок теперь безопасно и выигрышно —
escape-бар не растёт при pull && !holding (стоимость отпускания — только
дистанция); пассив = 100% сходов, «всегда держать» = обрывы крупных
(сом/Стекло 61% SNAP) и босса (38% SNAP на Титане). Числа (только
константы updateReel/hook): d0 45+7w, drain ×~4 медленнее (дуга усталости
за бой), натяжение 10+over·1.1+22·ag, втягивание (11+3·reel)·(1+0.6(1-st)),
free-run F·0.32, near-miss 1.45·d0.

Monte-Carlo (точные формулы, N=400/сценарий, dt=1/60, 3 бота доки 4.4):
умный: карась 98%/13.0с, окунь 85%/11.7с, лещ 92%, сом/Карбон 66%/20.4с
(уловы), босс/Титан 59.5%/42.8с (т.е. босс ≠ 100% даже на топ-удочке);
держать: мелочь 100%, сом/Стекло 39%/SNAP 61%, босс/Титан 62%/SNAP 38%;
пассив: 100% сходов за 3.5–6.7с. Stamina-дуга видна: st при улове
0.2–0.5 против старта 0.7–1.0. Таблица и остаток P1-2 — доки §4.7.

MAJOR-2: подсказка «⚡ РЫБА ТЯНЕТ — ОТПУСТИ! ⚡» теперь соответствует
механике (отпускание в рывке = выигрышное действие) — текст сохранён.

MINOR: AGENTS.md — forceBite/fishForce в защищённых именах, 68 проверок,
секция «Физика боя»; доки: инвариант «30·reel px/с» заменён фактической
формулой (решение: правка доки, код — источник истины; MINOR-2 ревью).

NIT: сброс forceBite/forceBoss в btnResetYes; полоска stamina сдвинута
после ⛵ (dx+18); near-miss в orca-playtest 1.45·d0; скриншоты свежие.

Тесты: порогов, упёршихся в новые константы, нет (запасы ×2.4–×3.1
проверены прогоном) — 68/68 PASS ×2 подряд, node tools/check.mjs OK.
Живой Orca-браузер: босс 3 фазы прогнан вживую (фазовый SNAP → d=0.6·d0,
tension=0; pointercancel в фоне = сход — поведение корректное).
2026-09-02 06:05:25 +03:00
andrey 70ff9642b3 Физика: спринт 4 P0 — stamina рыбы, drag катушки, честный баланс сил, пустые клёвы + 7 автотестов (68/68) 2026-09-02 00:51:54 +03:00
andrey 6e22edddf3 Механика: escape — рыба сбегает, если долго не тянуть (красная полоса дистанции, тост, +10% цены) + 3 автотеста (61/61) 2026-09-01 22:54:17 +03:00
andrey 3f126437e4 Интеграция: ветка sprint3-bugs (4 багфикса: квест забросов, HUD монет, нагрузка после босс-обрыва) + 58 тестов 2026-09-01 19:18:45 +03:00
andrey ebb711759b Интеграция: ветка sprint3-testing (харденинг orca-playtest, shots.js c argv, доки) 2026-09-01 19:17:56 +03:00
andrey 5f557fca64 Багфикс: квест «забросы», HUD монет, нагрузка после босс-обрыва
- questHit('casts') вызывался без condFn: TypeError на каждом забросе
  с активным квестом — квест не рос, persist()/checkAchievements()
  в doCast() пропускались (счётчик забросов терялся при перезагрузке)
- награда квеста и утешение near-miss не обновляли счётчик монет в HUD
- фазовый обрыв босса теперь сбрасывает tension: «обрыв фазы без штрафа»
  больше не превращается в настоящий обрыв при зажатом пальце
- регресс-проверки в tests/test.js (секция 9l), итого 58
2026-09-01 18:44:24 +03:00
andrey 7e7e18cb23 Тесты: shots.js — ожидание отрисовки вместо sleep и выбор кадров через argv 2026-09-01 18:39:52 +03:00
andrey d65815ad95 Тесты: харденинг orca-playtest.js — pageerror-хуки, бэкофф ретраев, диагностика кнопок 2026-09-01 18:39:52 +03:00
andrey 2bc3f4c8fb Порядок: npm test вместо заглушки в tests/package.json, раздел «Проверка» в AGENTS.md актуализирован 2026-09-01 18:33:35 +03:00
andrey 5c95309ce0 Sprint 2: ночная рыбалка + босс-рыба + доки/скриншоты 2026-09-01 17:53:42 +03:00
andrey abab18b0d0 Sprint 1: shiny + near-miss + награды (квесты, стрик, достижения) + браузерный плейтест
M1:
- Shiny-рыба (SHINY_CHANCE=0.03, ×3 монет, золотая карточка + бейдж)
- Near-miss: сбежавшая рыба даёт ~10% цены (toast «Сбежала! ...»)
- Миграция сейвов (caught: число → {n,best,sn})

M2:
- Ежедневные квесты (3/день, 6 шаблонов, сид по дате)
- Стрик входов со щитом (1/неделю, награды 25-200 🪙)
- 16 достижений с аддитивными бонусами (+% монет, окно, линия)
- Вкладки 🎯 (квесты+стрик) и 🏅 (достижения) в лавке

Инструменты:
- tests/orca-playtest.js — браузерный плейтест через Orca CLI
- docs/BROWSER-TESTING.md — документация процесса
- AGENTS.md — правила разработки

Проверки: 43 puppeteer + 35 orca-playtest = 78, все PASS
2026-09-01 14:24:21 +03:00
andrey f6d89b7a09 Кнопка сброса прогресса с диалогом подтверждения
- 🗑️ в HUD: диалог «Сбросить прогресс?» (Отмена / Сбросить)
- сбрасывает монеты, снасти, коллекцию и статистику; настройка звука сохраняется
- возврат в главное меню, перезапись localStorage
- автотест: 4 новые проверки (30/30)
2026-08-27 06:50:11 +00:00
andrey 1f224822a9 Механика веса рыбы
- у каждой рыбы свой вес (wMin..wMax кг), цена за 1 кг (price)
- удилища: предел веса (3-40 кг); перегруз -> шнур лопает почти мгновенно
- лучшая удочка/приманка -> выше шанс крупного улова (rollWeight)
- сложность вываживания зависит от веса и перегруза (ov, aggr)
- дневник: максимальный вес по каждому виду
- карточка улова: вес, цена/кг, бейдж «РЕКОРД!» при новом максимуме
- миграция старых сейвов (caught: число -> {n, best})
- автотест: 24 -> 26 проверок (перегруз, рекорд/антирекорд)
- обновлены README и скриншоты
2026-08-27 06:43:54 +00:00
andrey a90123be3b Игра «Рыбалка»: HTML5-канвас, автотесты, скриншоты
- один самодостаточный index.html (мобильное управление, магазин,
  дневник, сохранение в localStorage)
- автотест геймплея в headless Chromium (tests/test.js, 21 проверка)
- скриншоты состояния игры (screenshots/)
2026-08-26 18:15:31 +00:00