Files
fishing-game/assets/fish/fish-whale.svg
T
andrey 0a0595c3c1 Этап 47: ревизия SVG-портретов рыб — детализация до уровня болотных + биологическое правдоподобие. (1) Полная перерисовка 32 портретов, кроме 5 болотных (эталон стиля, Этап 45): 8 речных (carass, perch, bream, carp, pike, catfish, sturge, gold), 10 озёрных (zander, chuch, crayfish, bleak, roundel, eelpout, tench, navaga, rudd, cisco), 5 морских (herring, mackerel, flounder, tuna, swordfish), 9 океанских (moray, grouper, turtle, angler, octopus, manta, shark, squid, whale). (2) Единый стиль: послойные заливки без градиентов/defs (--f1 тело, --f3 плавники — перекрашиваются вариантами; --f2 брюхо/светлое, --f4 тёмный узор/кромка — НЕ перекрашиваются), спинная кромка f4-серпом, жаберная пластина+дуга, глаз 5 кругов (ободок→склера→радужка фикс-hex→зрачок→блик), составные узоры (полосы/пятна/чешуя/жучки/финлеты) — одним compound-path, ≤38 элементов, фикс-hex-акценты разрешены. (3) Видовые отличия и разведение «двойников»: карась↔карп (усы), окунь↔судак (горб/полосы/красное vs косая полоса/клыки), лещ↔густера (длинная анальная «юбка» vs короткий анальный+крупный глаз+киль), плотва↔краснопёрка (красный vs жёлтый глаз, рот конечный vs вверх), сом↔вьюн (голова-¼/длинные усы vs лента/10 усиков), мурена↔вьюн, осьминог↔кальмар (мешок+8 равных рук vs мантия-ракета+2 ловчих+крылышки), кит↔акула (флоскулы/фонтан/ус vs треуг. D/гетероцерк/5 щелей), сельдь↔скумбрия↔тунец↔меч, манта↔камбала↔рак, черепаха (вид сверху). (4) «Не рыбы»: crayfish (рак, вид сверху, клешни/ноги/веер), turtle (черепаха, вид сверху, щитки/4 ласты/клюв), octopus/squid/whale — иная анатомия (присоски/ловчие щупальца/флоскулы/фонтан), допустимые отклонения от рыбьего протокола. (5) Двойные боссы sturge (Река) и whale (Океан) проверены под золотой аурой #card.boss-card — контраст держат f4-детали. (6) Дефекты, найденные на приёмке и исправленные точечно (композиция не менялась): octopus — 2 щели с фоном; swordfish — светлый стык голова↔меч; tuna — прозрачная «дыра» в выемке хвоста-полумесяца; grouper — щель пасть↔нижняя челюсть; angler — просвет между римом и эской. (7) viewBox (0 0 160 100) и id/имена файлов не менялись; данные/логика/баланс не тронуты. (8) Интеграция: node tools/embed-fish.mjs — блок FISH-SVG обновлён (202478 байт / 1512 строк, 37 symbol); проверено совпадение всех 37 symbol с текущими assets/fish/*.svg; tools/fish-preview.html — блок «Варианты» (8 инлайн-копий carass синхронизированы с источником) + секция «Читаемость в UI» (44×28 / 40×26 / 240×150). Тесты не правились: 222/222 PASS, exit 0; check.mjs OK; balance.mjs — пины без изменений (Река 65.1/125.9 · Озёра 194.1/249.0 · Болото 240.3/328.9 · Море 297.3/476.7 · Океан 329.1/552.7). Скриншоты перегенерированы (45 RU + 45 EN). Доки: DEVLOG Этап 47.
2026-09-23 16:55:52 +03:00

36 lines
6.7 KiB
XML

<!-- Синий кит (whale): морское млекопитающее, НЕ рыба (нет жабр и жаберной пластины). Огромное веретено ~4:1 с КОРОТКОЙ ШИРОКОЙ U-образной головой ≈¼ длины справа — главный силуэтный знак. ГЛАВНЫЙ видовой знак — ФОНТАН из двух дыхал (126,37): узкий конус #cfe9ff вверх к (130,10) и светлый веер #eaf6ff. ХВОСТ — ШИРОКИЕ ГОРИЗОНТАЛЬНЫЕ ФЛОСКУЛЫ: две СИММЕТРИЧНЫЕ лопасти (НЕ вертикальная вилка акулы). Один КРОШЕЧНЫЙ серповидный спинной f3 далеко назад, узкий грудной f3 ПОСЛЕ тела. РОТ-БАРЬЕР f4 вдоль нижней челюсти + КИТОВЫЙ УС #e9e2cc (compound-вертикали), 4 горловые борозды f4 (compound), 3-4 бледных f2-пятна-марблинг, крошечный глаз. Умеренно-тёмная сине-серая палитра (f1 L≈46%), контраст держат фонтан/ус/борозды/дыхала; карточка даёт золотую ауру отдельным drop-shadow -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 100" width="160" height="100">
<!-- хвост: Горизонтальные флоскулы — ДВЕ симметричные широкие лопасти (compound), корни утоплены в стебель (нахлёст ≥4), кончики (6,34) и (6,66) -->
<path fill="var(--f3,hsl(230,30%,30%))" d="M34 44.5 C24 40 13 35.5 6 34 C8 40.5 15.5 46.5 26 50.2 C29 51.2 31.5 51.4 34 51 Z M34 55.5 C24 60 13 64.5 6 66 C8 59.5 15.5 53.5 26 49.8 C29 48.8 31.5 48.6 34 49 Z"/>
<!-- спинной плавник: КРОШЕЧНЫЙ серповидный (НЕ высокий треугольник акулы), далеко назад, основание x49..59 утоплено в спину (нахлёст ≥4) -->
<path fill="var(--f3,hsl(230,30%,30%))" d="M49 38 C51 35 52.5 32.8 54.5 31.2 C56.5 32.8 58 35.2 59 37.2 C55.5 36.6 52 37 49 38 Z"/>
<!-- тело: массивное веретено (длина/глубина ≈4:1) с КОРОТКОЙ ШИРОКОЙ U-образной головой справа (рострум 154,56), спина (78,31), брюхо (116,70), стебель x30 толщиной 14 (43..57) -->
<path fill="var(--f1,hsl(228,28%,46%))" d="M30 43 C36 41 41 39.5 46 38 C56 34.5 67 31.5 78 31 C100 30 118 32.5 134 37.5 C143 40.5 149 44 152.5 49 C154.2 51.5 155 54 154.3 56 C153.6 58 152 60.5 149.5 62.5 C142 67 130 69.2 116 70 C100 70.9 82 71 66 70 C54 69.2 45 64.5 40.5 58.5 C37 55 33 57 30 57 Z"/>
<!-- спинная кромка f4: тонкая тёмная полоса по верхнему контуру (не зубцы) — объём спины -->
<path fill="var(--f4,hsl(228,32%,18%))" d="M30 43 C36 41 41 39.5 46 38 C56 34.5 67 31.5 78 31 C100 30 118 32.5 134 37.5 C143 40.5 149 44 152.5 49 C150 45.5 144.5 42.5 137 40 C121 35 100 33 78 33.5 C66 34 55 36.5 46 40 C39.5 42.6 34 45 30 46 Z"/>
<!-- брюхо: светлая f2-полоса вдоль подводной кромки (контраст к f1 L≈46%) -->
<path fill="var(--f2,hsl(215,18%,80%))" d="M154 56 C153.6 58 152 60.5 149.5 62.5 C142 67 130 69.2 116 70 C100 70.9 82 71 66 70 C54 69.2 45 64.5 40.5 58.5 C37 55 33 57 30 57 C34 53.5 40 55 48 58 C58 61.5 72 63 86 63 C104 63 126 61.5 142 57.5 C147 56 151 55.5 154 56 Z"/>
<!-- марблинг: 3 бледных f2-пятна на верхнем боку (compound) — не рыбьи полосы -->
<path fill="var(--f2,hsl(215,18%,80%))" opacity="0.5" d="M96 39.5 C100.5 38 104.5 40.5 102.5 43.5 C100.5 46.5 94.5 45.5 93.5 43 C92.8 41.2 93.8 40.3 96 39.5 Z M70 36.5 C74.5 35 78.5 37.5 76.5 40.5 C74.5 43.5 68.5 42.5 67.5 40 C66.8 38.2 67.8 37.3 70 36.5 Z M118 41.5 C121.5 40.5 124 42.5 122.5 44.5 C121 46.5 117 45.8 116.2 44 C115.7 42.7 116.4 42 118 41.5 Z"/>
<!-- рот-барьер f4: длинная тёмная полоса-щель вдоль нижней челюсти от (152,58) назад до (104,64) -->
<path fill="var(--f4,hsl(228,32%,18%))" d="M152.5 57.5 C139 59.4 121 61.7 104 63.8 C120 65.2 139 63.2 152.5 60.4 Z"/>
<!-- китовый ус: 7 коротких вертикалей #e9e2cc под барьером (compound, фикс-акцент — млекопитающее, не рыбьи зубы) -->
<path fill="none" stroke="#e9e2cc" stroke-width="1.2" stroke-linecap="round" d="M148 60.7 L148 63.5 M142 61.1 L142 63.9 M136 61.6 L136 64.4 M130 62 L130 64.8 M124 62.4 L124 65.2 M118 62.8 L118 65.6 M112 63.2 L112 66"/>
<!-- горловые борозды f4: 4 короткие дуги от (148,62) назад-вниз до (108,70) (compound) — знак кита, НЕ жаберные щели -->
<path fill="none" stroke="var(--f4,hsl(228,32%,18%))" stroke-width="1.4" stroke-linecap="round" d="M146 61.5 Q143.5 63.5 145.4 65.4 M134 63 Q131.5 65 133.4 67.2 M122 64.5 Q119.5 66.8 121.4 69 M110 66 Q107.5 68.2 109.4 70"/>
<!-- грудной плавник f3: узкая серповидная лопасть (112,66)→(86,76), заметно выступает из-под брюха, рисуется ПОСЛЕ тела -->
<path fill="var(--f3,hsl(230,30%,30%))" d="M112 69.5 C104 74.5 96 77 86 79 C100 74 111 66.5 119 59.5 Z"/>
<!-- ФОНТАН, светлый веер #eaf6ff: широкая мягкая струя-раструб наверху, притуплённые края (фикс-акцент) -->
<path fill="#eaf6ff" d="M129 10 C123 13 118 19 115 26 C119 20 124 15 129 13 C134 16 138 21 141 28 C139 20 135 13 129 10 Z"/>
<!-- ФОНТАН, конус #cfe9ff: узкая струя от дыхал (126,34) вверх к (130,10) (фикс-акцент) -->
<path fill="#cfe9ff" d="M125 35 C124 27 126 17 130 10 C132 18 130 28 128.5 35 Z"/>
<!-- дыхала f4: два маленьких тёмных отверстия на голове вокруг (126,37) (compound) -->
<path fill="var(--f4,hsl(228,32%,18%))" d="M123.3 36.7 a1.4 0.9 0 1 0 2.8 0 a1.4 0.9 0 1 0 -2.8 0 M126.5 36.7 a1.4 0.9 0 1 0 2.8 0 a1.4 0.9 0 1 0 -2.8 0"/>
<!-- глаз: НАМЕРЕННО крошечный (млекопитающее), ободок f4 → склера #e6e1d2 → радужка → зрачок → блик (последним) -->
<circle fill="var(--f4,hsl(228,32%,18%))" cx="136" cy="50" r="3"/>
<circle fill="#e6e1d2" cx="136" cy="50" r="2.2"/>
<circle fill="#1a2a3a" cx="136" cy="50" r="1.5"/>
<circle fill="#0d1418" cx="136" cy="50" r="1"/>
<circle fill="#fff" cx="135.4" cy="49.4" r="0.4"/>
</svg>