farming-simulator/scripts/ui/dialog_manager.gd

162 lines
4.1 KiB
GDScript3
Raw Normal View History

act1: FPV-комната с подарком, запиской и флешкой 3D-сцена 4×4м: стены/пол/потолок, окно (свечение), дверь, стол с пека, кровать с одеялом, подарок-коробка на полу, отец-NPC в дверях. Архитектура: - FPVController (CharacterBody3D + Camera3D + RayCast3D) — mouse look, WASD, raycast-pickup, lock_input для катсцен. - Interactable (StaticBody3D base) — toggle через collision_layer. - DialogManager (autoload CanvasLayer) — субтитры snake-case, fullscreen записка, HUD-подсказки, prompt над крестом, await через signal. - act1.gd — state machine: INTRO → EXPLORE_GIFT → INSIDE_GIFT → NOTE_READ → FATHER_FAREWELL (tween x-2.5) → SEEK_DRIVE → ENDING. Канон-реплики из Пролог_Первый_день.md без правок: - Отец intro + про флешку с Шиндой - Записка «Не сожги. Пароль от Wi-Fi на холодильнике. — Бать» - Мысли героя: «новый пека?», «бать ну ты красавчик», «Андрюхино так Андрюхино» GL Compatibility renderer, unshaded материалы плоскими цветами под pixel-art 640×360. Тестировано на RTX 5070 — стартует без ошибок. main.tscn placeholder удалён, main_scene = act1_room.tscn. Не покрыто в MVP (TBD): - Опц. выход на кухню → холодильник → Wi-Fi пароль - Mastermind hack-mini-game для подбора Wi-Fi - Sfxr звуки (открытие коробки, шаги) - Переход в Акт 2 (пока quit на финале) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:12:04 +03:00
extends CanvasLayer
signal advanced
@onready var subtitle_panel: PanelContainer = $SubtitlePanel
@onready var who_label: Label = $SubtitlePanel/V/Who
act1: фиксы багов + crosshair + улучшенные текстуры БАГ-ФИКСЫ: - Трясёт у двери: Interactable теперь extends Area3D (не StaticBody3D). RayCast3D детектит Area3D через collide_with_areas=true. Игрок физически проходит через интерактивы (gift box, флешка, записка, дверь) — не толкается в узких местах. Бампается только в стены/мебель/пол. - Все 6 интерактивов в act1_room.tscn и act1_kitchen.tscn переведены на type="Area3D". UI: - Crosshair в центре экрана: 8×8 точка с тёмной рамкой и белой центральной 2×2 точкой. set_crosshair_visible() для 2D-сцен (Акт 2 прячет его). - SubtitlePanel расширен: 16-624 × 240-354 (было 24-616 × 270-350). Text-лейбл заменён на RichTextLabel с fit_content + bbcode. Длинные реплики отца теперь нормально влезают. - NoteOverlay аналогично RichTextLabel. - ControlsHint перенесён сверху (под HUD-датой), 14px меньше. ТЕКСТУРЫ через FastNoiseLite + 128×128 разрешалка: - wallpaper: шумная бежевая база + растительный крест-цветок каждые 22px, шахматное смещение, тонкая горизонтальная полоса каждые 32px (стык обоев). - linoleum: настоящая паркетная доска 16×64px со смещением между рядами, тонкие швы, волокно через шум. - ceiling: побелка с пятном протёчки в углу (canon-деталь). - wall_carpet: бордовая база + двойная золотая рамка + ромб- медальон с золотыми углами + декоративные уголки. - blanket: 30 звёздочек (белые/жёлтые) разного размера на шумной тёмно-синей базе. - poster_csgo: диагональная штриховка + силуэт AWP по центру + пиксельный «CS:GO» текст внизу. - poster_morgen: круг с лицом, глаза-щели, рот + пиксельный «MS». - door: вертикальное волокно Perlin + 3 горизонтальных шва (панели) + 4 сучка разного размера. - desk_white: чистый белый + жёлтый Steam-стикер в углу + царапина. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:04:50 +03:00
@onready var text_label: RichTextLabel = $SubtitlePanel/V/Text
act1: FPV-комната с подарком, запиской и флешкой 3D-сцена 4×4м: стены/пол/потолок, окно (свечение), дверь, стол с пека, кровать с одеялом, подарок-коробка на полу, отец-NPC в дверях. Архитектура: - FPVController (CharacterBody3D + Camera3D + RayCast3D) — mouse look, WASD, raycast-pickup, lock_input для катсцен. - Interactable (StaticBody3D base) — toggle через collision_layer. - DialogManager (autoload CanvasLayer) — субтитры snake-case, fullscreen записка, HUD-подсказки, prompt над крестом, await через signal. - act1.gd — state machine: INTRO → EXPLORE_GIFT → INSIDE_GIFT → NOTE_READ → FATHER_FAREWELL (tween x-2.5) → SEEK_DRIVE → ENDING. Канон-реплики из Пролог_Первый_день.md без правок: - Отец intro + про флешку с Шиндой - Записка «Не сожги. Пароль от Wi-Fi на холодильнике. — Бать» - Мысли героя: «новый пека?», «бать ну ты красавчик», «Андрюхино так Андрюхино» GL Compatibility renderer, unshaded материалы плоскими цветами под pixel-art 640×360. Тестировано на RTX 5070 — стартует без ошибок. main.tscn placeholder удалён, main_scene = act1_room.tscn. Не покрыто в MVP (TBD): - Опц. выход на кухню → холодильник → Wi-Fi пароль - Mastermind hack-mini-game для подбора Wi-Fi - Sfxr звуки (открытие коробки, шаги) - Переход в Акт 2 (пока quit на финале) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:12:04 +03:00
@onready var hint_label: Label = $SubtitlePanel/V/Hint
@onready var note_overlay: Control = $NoteOverlay
act1: фиксы багов + crosshair + улучшенные текстуры БАГ-ФИКСЫ: - Трясёт у двери: Interactable теперь extends Area3D (не StaticBody3D). RayCast3D детектит Area3D через collide_with_areas=true. Игрок физически проходит через интерактивы (gift box, флешка, записка, дверь) — не толкается в узких местах. Бампается только в стены/мебель/пол. - Все 6 интерактивов в act1_room.tscn и act1_kitchen.tscn переведены на type="Area3D". UI: - Crosshair в центре экрана: 8×8 точка с тёмной рамкой и белой центральной 2×2 точкой. set_crosshair_visible() для 2D-сцен (Акт 2 прячет его). - SubtitlePanel расширен: 16-624 × 240-354 (было 24-616 × 270-350). Text-лейбл заменён на RichTextLabel с fit_content + bbcode. Длинные реплики отца теперь нормально влезают. - NoteOverlay аналогично RichTextLabel. - ControlsHint перенесён сверху (под HUD-датой), 14px меньше. ТЕКСТУРЫ через FastNoiseLite + 128×128 разрешалка: - wallpaper: шумная бежевая база + растительный крест-цветок каждые 22px, шахматное смещение, тонкая горизонтальная полоса каждые 32px (стык обоев). - linoleum: настоящая паркетная доска 16×64px со смещением между рядами, тонкие швы, волокно через шум. - ceiling: побелка с пятном протёчки в углу (canon-деталь). - wall_carpet: бордовая база + двойная золотая рамка + ромб- медальон с золотыми углами + декоративные уголки. - blanket: 30 звёздочек (белые/жёлтые) разного размера на шумной тёмно-синей базе. - poster_csgo: диагональная штриховка + силуэт AWP по центру + пиксельный «CS:GO» текст внизу. - poster_morgen: круг с лицом, глаза-щели, рот + пиксельный «MS». - door: вертикальное волокно Perlin + 3 горизонтальных шва (панели) + 4 сучка разного размера. - desk_white: чистый белый + жёлтый Steam-стикер в углу + царапина. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:04:50 +03:00
@onready var note_text: RichTextLabel = $NoteOverlay/Center/P/V2/Text
act1: FPV-комната с подарком, запиской и флешкой 3D-сцена 4×4м: стены/пол/потолок, окно (свечение), дверь, стол с пека, кровать с одеялом, подарок-коробка на полу, отец-NPC в дверях. Архитектура: - FPVController (CharacterBody3D + Camera3D + RayCast3D) — mouse look, WASD, raycast-pickup, lock_input для катсцен. - Interactable (StaticBody3D base) — toggle через collision_layer. - DialogManager (autoload CanvasLayer) — субтитры snake-case, fullscreen записка, HUD-подсказки, prompt над крестом, await через signal. - act1.gd — state machine: INTRO → EXPLORE_GIFT → INSIDE_GIFT → NOTE_READ → FATHER_FAREWELL (tween x-2.5) → SEEK_DRIVE → ENDING. Канон-реплики из Пролог_Первый_день.md без правок: - Отец intro + про флешку с Шиндой - Записка «Не сожги. Пароль от Wi-Fi на холодильнике. — Бать» - Мысли героя: «новый пека?», «бать ну ты красавчик», «Андрюхино так Андрюхино» GL Compatibility renderer, unshaded материалы плоскими цветами под pixel-art 640×360. Тестировано на RTX 5070 — стартует без ошибок. main.tscn placeholder удалён, main_scene = act1_room.tscn. Не покрыто в MVP (TBD): - Опц. выход на кухню → холодильник → Wi-Fi пароль - Mastermind hack-mini-game для подбора Wi-Fi - Sfxr звуки (открытие коробки, шаги) - Переход в Акт 2 (пока quit на финале) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:12:04 +03:00
@onready var prompt_label: Label = $PromptLabel
act1: аутентичная страна Р — комната, HUD, канон КАНОН (3 новых файла, ресёрч-агент): - APARTMENT.md: брежневка Купчино 9-эт, комната 10-12м², обои бежевые виниловые с растительным узором (наследие маминого ремонта 2010), линолеум жёлто-коричневый, ковёр бордовый персидский над кроватью (наследство от бабушки), батарея чугунная МС-140 белая с подтёками, пластиковый стеклопакет с алоэ+чашкой на подоконнике, кровать с тёмно- синим верблюжьим одеялом, стол ИКЕА MICKE, старый офисный «Бюрократ», стеллаж ИКЕА BILLY с учебниками + Гарри Поттер + УК РФ (засев #8), постеры CS:GO + Моргенштерн на синей изоленте, банка Adrenaline + обёртка Lay's на столе, носки на полу. Все цвета по hex. - STREET.md: парадная с домофоном Eltis DP-400 (питерский производитель), фасад керамической плитки бежевой, балконы остеклены лоскутно, на 1 этаже Пятёрочка+К&Б, двор с тополями+ракушками-гаражами+советской площадкой (горка-«ракета»), лавочки бабушек/подростков, метро жетон 55₽ август 2020, шаверма 120-180₽ (источник прямой не подтверждён, оценка по контексту), сети Pita's/Вкусная шаверма/КручуВерчу. - HUD.md: pixel-art минимализм с акцентом #F0B419 Steam-inventory, Pathologic-2 правило (статы только при пороге), диалог-окно в стиле Шиндовс-окна (засев бренда), квест-маркер через ТГ-телефон героя, без мини-карты и постоянных таймеров. КОД: - act1_room.tscn полностью переписан: 73 sub_resources placeholder-кубов с канон-цветами hex. Добавлены: радиатор под окном, оконная рама из 5 планок + подоконник с алоэ+чашкой, ковёр-на-стене над кроватью (бордовый), 2 постера (CS:GO жёлтый + Моргенштерн красный), стеллаж ИКЕА BILLY на западной стене с 5 книгами, старый Pentium 4 в углу северо-востока, банка Adrenaline + обёртка Lay's + клавиатура на столе, 2 носка на полу. Спавн игрока сдвинут с z=1.2 на z=0.5 (был внутри кровати). - dialog_manager.gd: новый HUD-API set_date_time / set_objective / set_money / set_weather / set_stat_alert + set_controls_hint. - dialog_ui.tscn: 5 новых HUD-лейблов (DateTime, Objective с жёлтым акцентом, Money, Weather, StatsAlert) + ControlsHint всегда видимый тусклый. - act1.gd: HUD теперь показывает «21 АВГ 2020 · ПТ · 10:30» вверху-слева и квест «◆ Распакуй подарок от бати» → «◆ Прочитай записку» → «◆ Возьми флешку с Шиндовс» вверху-справа. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:38:07 +03:00
@onready var controls_hint: Label = $ControlsHint
act1: фиксы багов + crosshair + улучшенные текстуры БАГ-ФИКСЫ: - Трясёт у двери: Interactable теперь extends Area3D (не StaticBody3D). RayCast3D детектит Area3D через collide_with_areas=true. Игрок физически проходит через интерактивы (gift box, флешка, записка, дверь) — не толкается в узких местах. Бампается только в стены/мебель/пол. - Все 6 интерактивов в act1_room.tscn и act1_kitchen.tscn переведены на type="Area3D". UI: - Crosshair в центре экрана: 8×8 точка с тёмной рамкой и белой центральной 2×2 точкой. set_crosshair_visible() для 2D-сцен (Акт 2 прячет его). - SubtitlePanel расширен: 16-624 × 240-354 (было 24-616 × 270-350). Text-лейбл заменён на RichTextLabel с fit_content + bbcode. Длинные реплики отца теперь нормально влезают. - NoteOverlay аналогично RichTextLabel. - ControlsHint перенесён сверху (под HUD-датой), 14px меньше. ТЕКСТУРЫ через FastNoiseLite + 128×128 разрешалка: - wallpaper: шумная бежевая база + растительный крест-цветок каждые 22px, шахматное смещение, тонкая горизонтальная полоса каждые 32px (стык обоев). - linoleum: настоящая паркетная доска 16×64px со смещением между рядами, тонкие швы, волокно через шум. - ceiling: побелка с пятном протёчки в углу (canon-деталь). - wall_carpet: бордовая база + двойная золотая рамка + ромб- медальон с золотыми углами + декоративные уголки. - blanket: 30 звёздочек (белые/жёлтые) разного размера на шумной тёмно-синей базе. - poster_csgo: диагональная штриховка + силуэт AWP по центру + пиксельный «CS:GO» текст внизу. - poster_morgen: круг с лицом, глаза-щели, рот + пиксельный «MS». - door: вертикальное волокно Perlin + 3 горизонтальных шва (панели) + 4 сучка разного размера. - desk_white: чистый белый + жёлтый Steam-стикер в углу + царапина. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:04:50 +03:00
@onready var crosshair: Control = $Crosshair
act1: аутентичная страна Р — комната, HUD, канон КАНОН (3 новых файла, ресёрч-агент): - APARTMENT.md: брежневка Купчино 9-эт, комната 10-12м², обои бежевые виниловые с растительным узором (наследие маминого ремонта 2010), линолеум жёлто-коричневый, ковёр бордовый персидский над кроватью (наследство от бабушки), батарея чугунная МС-140 белая с подтёками, пластиковый стеклопакет с алоэ+чашкой на подоконнике, кровать с тёмно- синим верблюжьим одеялом, стол ИКЕА MICKE, старый офисный «Бюрократ», стеллаж ИКЕА BILLY с учебниками + Гарри Поттер + УК РФ (засев #8), постеры CS:GO + Моргенштерн на синей изоленте, банка Adrenaline + обёртка Lay's на столе, носки на полу. Все цвета по hex. - STREET.md: парадная с домофоном Eltis DP-400 (питерский производитель), фасад керамической плитки бежевой, балконы остеклены лоскутно, на 1 этаже Пятёрочка+К&Б, двор с тополями+ракушками-гаражами+советской площадкой (горка-«ракета»), лавочки бабушек/подростков, метро жетон 55₽ август 2020, шаверма 120-180₽ (источник прямой не подтверждён, оценка по контексту), сети Pita's/Вкусная шаверма/КручуВерчу. - HUD.md: pixel-art минимализм с акцентом #F0B419 Steam-inventory, Pathologic-2 правило (статы только при пороге), диалог-окно в стиле Шиндовс-окна (засев бренда), квест-маркер через ТГ-телефон героя, без мини-карты и постоянных таймеров. КОД: - act1_room.tscn полностью переписан: 73 sub_resources placeholder-кубов с канон-цветами hex. Добавлены: радиатор под окном, оконная рама из 5 планок + подоконник с алоэ+чашкой, ковёр-на-стене над кроватью (бордовый), 2 постера (CS:GO жёлтый + Моргенштерн красный), стеллаж ИКЕА BILLY на западной стене с 5 книгами, старый Pentium 4 в углу северо-востока, банка Adrenaline + обёртка Lay's + клавиатура на столе, 2 носка на полу. Спавн игрока сдвинут с z=1.2 на z=0.5 (был внутри кровати). - dialog_manager.gd: новый HUD-API set_date_time / set_objective / set_money / set_weather / set_stat_alert + set_controls_hint. - dialog_ui.tscn: 5 новых HUD-лейблов (DateTime, Objective с жёлтым акцентом, Money, Weather, StatsAlert) + ControlsHint всегда видимый тусклый. - act1.gd: HUD теперь показывает «21 АВГ 2020 · ПТ · 10:30» вверху-слева и квест «◆ Распакуй подарок от бати» → «◆ Прочитай записку» → «◆ Возьми флешку с Шиндовс» вверху-справа. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:38:07 +03:00
fix: auto-flow подарок, отец 180°, спавн кухни, лицензия, меню «ДРОП» 1. ОТЕЦ (поворот по фидбеку): - Initial Transform3D повёрнут на 180° от предыдущего — теперь лицом к игроку во время диалога. - При уходе ещё +180° поворот → спиной к игроку → шагает к двери не пятясь. 2. AUTO-FLOW КЛИКА ПО ПОДАРКУ: - Раньше: клик подарок → молча появляется системник → клик записку → overlay → клик дальше → монолог → ... Игрок терялся между кликами, думал что баг (тёмный экран). - Теперь: ОДИН клик подарка запускает ЦЕПОЧКУ: «Системник. И записка сверху.» → overlay записки → «Бать ну ты красавчик» → отец прощается → отец уходит → флешка готова. Игрок просто кликает «дальше» на каждой реплике. - note.set_interactable(false) — клик отдельно не нужен. - _on_note_interacted остался как пустой callback для совместимости. 3. КУХНЯ — СПАВН: - Был (0.5, 0, 1.0) — попадал внутрь стола (z=0.35..1.05). Игрок застревал. - Теперь (-0.5, 0, 1.2) — у двери возврата в комнату, далеко от стола. Спавнится свободно. 4. КУХНЯ — 2-Я ДВЕРЬ: - User спросил «куда отец ушёл — нет других дверей». Добавил визуальную не-интерактивную дверь на северной стене (Label3D «← прихожая»). Логически отец вышел через коридор. 5. ЛИЦЕНЗИЯ — НАЧАЛО: - User: «начинается с п.7, а где 1-6». Добавил 7 нормально- юридических пунктов 1.1-6.8 (про лицензию, неисключительные права, дизассемблирование, «как есть», ответственность, обязательства Пользователя) — ПЕРЕД ШИЗО-пунктами. - Теперь читается как настоящее ЛС: нормальное-нормальное- нормальное-ШИЗО-ШИЗО-ШИЗО, нарастающий абсурд. 6. HUD-ПОДСКАЗКА АВТО-ФЕЙД: - Timer в DialogManager (one_shot, 8 сек по умолчанию). - set_controls_hint() запускает таймер. - По истечении — tween modulate.a 0.8 → 0.0 за 1.5 сек. - Подсказка управления больше не висит вечно. 7. ГЛАВНОЕ МЕНЮ — НАЗВАНИЕ: - Было: «FARMING SIMULATOR / Подросток-фермер CS/TF2/PUBG кейсов · 2020-2026» (рабочее, пресно). - Стало: «ДРОП» (32px, жёлтый акцент) / «Лето двадцатого года.» (12px, серый). Лаконично, поэтично. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 19:46:20 +03:00
var _hint_timer: Timer
act1: аутентичная страна Р — комната, HUD, канон КАНОН (3 новых файла, ресёрч-агент): - APARTMENT.md: брежневка Купчино 9-эт, комната 10-12м², обои бежевые виниловые с растительным узором (наследие маминого ремонта 2010), линолеум жёлто-коричневый, ковёр бордовый персидский над кроватью (наследство от бабушки), батарея чугунная МС-140 белая с подтёками, пластиковый стеклопакет с алоэ+чашкой на подоконнике, кровать с тёмно- синим верблюжьим одеялом, стол ИКЕА MICKE, старый офисный «Бюрократ», стеллаж ИКЕА BILLY с учебниками + Гарри Поттер + УК РФ (засев #8), постеры CS:GO + Моргенштерн на синей изоленте, банка Adrenaline + обёртка Lay's на столе, носки на полу. Все цвета по hex. - STREET.md: парадная с домофоном Eltis DP-400 (питерский производитель), фасад керамической плитки бежевой, балконы остеклены лоскутно, на 1 этаже Пятёрочка+К&Б, двор с тополями+ракушками-гаражами+советской площадкой (горка-«ракета»), лавочки бабушек/подростков, метро жетон 55₽ август 2020, шаверма 120-180₽ (источник прямой не подтверждён, оценка по контексту), сети Pita's/Вкусная шаверма/КручуВерчу. - HUD.md: pixel-art минимализм с акцентом #F0B419 Steam-inventory, Pathologic-2 правило (статы только при пороге), диалог-окно в стиле Шиндовс-окна (засев бренда), квест-маркер через ТГ-телефон героя, без мини-карты и постоянных таймеров. КОД: - act1_room.tscn полностью переписан: 73 sub_resources placeholder-кубов с канон-цветами hex. Добавлены: радиатор под окном, оконная рама из 5 планок + подоконник с алоэ+чашкой, ковёр-на-стене над кроватью (бордовый), 2 постера (CS:GO жёлтый + Моргенштерн красный), стеллаж ИКЕА BILLY на западной стене с 5 книгами, старый Pentium 4 в углу северо-востока, банка Adrenaline + обёртка Lay's + клавиатура на столе, 2 носка на полу. Спавн игрока сдвинут с z=1.2 на z=0.5 (был внутри кровати). - dialog_manager.gd: новый HUD-API set_date_time / set_objective / set_money / set_weather / set_stat_alert + set_controls_hint. - dialog_ui.tscn: 5 новых HUD-лейблов (DateTime, Objective с жёлтым акцентом, Money, Weather, StatsAlert) + ControlsHint всегда видимый тусклый. - act1.gd: HUD теперь показывает «21 АВГ 2020 · ПТ · 10:30» вверху-слева и квест «◆ Распакуй подарок от бати» → «◆ Прочитай записку» → «◆ Возьми флешку с Шиндовс» вверху-справа. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:38:07 +03:00
@onready var date_time_label: Label = $DateTimeLabel
@onready var objective_label: Label = $ObjectiveLabel
@onready var money_label: Label = $MoneyLabel
@onready var weather_label: Label = $WeatherLabel
@onready var stats_label: Label = $StatsLabel
act1: FPV-комната с подарком, запиской и флешкой 3D-сцена 4×4м: стены/пол/потолок, окно (свечение), дверь, стол с пека, кровать с одеялом, подарок-коробка на полу, отец-NPC в дверях. Архитектура: - FPVController (CharacterBody3D + Camera3D + RayCast3D) — mouse look, WASD, raycast-pickup, lock_input для катсцен. - Interactable (StaticBody3D base) — toggle через collision_layer. - DialogManager (autoload CanvasLayer) — субтитры snake-case, fullscreen записка, HUD-подсказки, prompt над крестом, await через signal. - act1.gd — state machine: INTRO → EXPLORE_GIFT → INSIDE_GIFT → NOTE_READ → FATHER_FAREWELL (tween x-2.5) → SEEK_DRIVE → ENDING. Канон-реплики из Пролог_Первый_день.md без правок: - Отец intro + про флешку с Шиндой - Записка «Не сожги. Пароль от Wi-Fi на холодильнике. — Бать» - Мысли героя: «новый пека?», «бать ну ты красавчик», «Андрюхино так Андрюхино» GL Compatibility renderer, unshaded материалы плоскими цветами под pixel-art 640×360. Тестировано на RTX 5070 — стартует без ошибок. main.tscn placeholder удалён, main_scene = act1_room.tscn. Не покрыто в MVP (TBD): - Опц. выход на кухню → холодильник → Wi-Fi пароль - Mastermind hack-mini-game для подбора Wi-Fi - Sfxr звуки (открытие коробки, шаги) - Переход в Акт 2 (пока quit на финале) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:12:04 +03:00
var _waiting: bool = false
func _ready() -> void:
subtitle_panel.visible = false
note_overlay.visible = false
prompt_label.visible = false
act1: аутентичная страна Р — комната, HUD, канон КАНОН (3 новых файла, ресёрч-агент): - APARTMENT.md: брежневка Купчино 9-эт, комната 10-12м², обои бежевые виниловые с растительным узором (наследие маминого ремонта 2010), линолеум жёлто-коричневый, ковёр бордовый персидский над кроватью (наследство от бабушки), батарея чугунная МС-140 белая с подтёками, пластиковый стеклопакет с алоэ+чашкой на подоконнике, кровать с тёмно- синим верблюжьим одеялом, стол ИКЕА MICKE, старый офисный «Бюрократ», стеллаж ИКЕА BILLY с учебниками + Гарри Поттер + УК РФ (засев #8), постеры CS:GO + Моргенштерн на синей изоленте, банка Adrenaline + обёртка Lay's на столе, носки на полу. Все цвета по hex. - STREET.md: парадная с домофоном Eltis DP-400 (питерский производитель), фасад керамической плитки бежевой, балконы остеклены лоскутно, на 1 этаже Пятёрочка+К&Б, двор с тополями+ракушками-гаражами+советской площадкой (горка-«ракета»), лавочки бабушек/подростков, метро жетон 55₽ август 2020, шаверма 120-180₽ (источник прямой не подтверждён, оценка по контексту), сети Pita's/Вкусная шаверма/КручуВерчу. - HUD.md: pixel-art минимализм с акцентом #F0B419 Steam-inventory, Pathologic-2 правило (статы только при пороге), диалог-окно в стиле Шиндовс-окна (засев бренда), квест-маркер через ТГ-телефон героя, без мини-карты и постоянных таймеров. КОД: - act1_room.tscn полностью переписан: 73 sub_resources placeholder-кубов с канон-цветами hex. Добавлены: радиатор под окном, оконная рама из 5 планок + подоконник с алоэ+чашкой, ковёр-на-стене над кроватью (бордовый), 2 постера (CS:GO жёлтый + Моргенштерн красный), стеллаж ИКЕА BILLY на западной стене с 5 книгами, старый Pentium 4 в углу северо-востока, банка Adrenaline + обёртка Lay's + клавиатура на столе, 2 носка на полу. Спавн игрока сдвинут с z=1.2 на z=0.5 (был внутри кровати). - dialog_manager.gd: новый HUD-API set_date_time / set_objective / set_money / set_weather / set_stat_alert + set_controls_hint. - dialog_ui.tscn: 5 новых HUD-лейблов (DateTime, Objective с жёлтым акцентом, Money, Weather, StatsAlert) + ControlsHint всегда видимый тусклый. - act1.gd: HUD теперь показывает «21 АВГ 2020 · ПТ · 10:30» вверху-слева и квест «◆ Распакуй подарок от бати» → «◆ Прочитай записку» → «◆ Возьми флешку с Шиндовс» вверху-справа. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:38:07 +03:00
objective_label.visible = false
money_label.visible = false
weather_label.visible = false
stats_label.visible = false
act1: фиксы багов + crosshair + улучшенные текстуры БАГ-ФИКСЫ: - Трясёт у двери: Interactable теперь extends Area3D (не StaticBody3D). RayCast3D детектит Area3D через collide_with_areas=true. Игрок физически проходит через интерактивы (gift box, флешка, записка, дверь) — не толкается в узких местах. Бампается только в стены/мебель/пол. - Все 6 интерактивов в act1_room.tscn и act1_kitchen.tscn переведены на type="Area3D". UI: - Crosshair в центре экрана: 8×8 точка с тёмной рамкой и белой центральной 2×2 точкой. set_crosshair_visible() для 2D-сцен (Акт 2 прячет его). - SubtitlePanel расширен: 16-624 × 240-354 (было 24-616 × 270-350). Text-лейбл заменён на RichTextLabel с fit_content + bbcode. Длинные реплики отца теперь нормально влезают. - NoteOverlay аналогично RichTextLabel. - ControlsHint перенесён сверху (под HUD-датой), 14px меньше. ТЕКСТУРЫ через FastNoiseLite + 128×128 разрешалка: - wallpaper: шумная бежевая база + растительный крест-цветок каждые 22px, шахматное смещение, тонкая горизонтальная полоса каждые 32px (стык обоев). - linoleum: настоящая паркетная доска 16×64px со смещением между рядами, тонкие швы, волокно через шум. - ceiling: побелка с пятном протёчки в углу (canon-деталь). - wall_carpet: бордовая база + двойная золотая рамка + ромб- медальон с золотыми углами + декоративные уголки. - blanket: 30 звёздочек (белые/жёлтые) разного размера на шумной тёмно-синей базе. - poster_csgo: диагональная штриховка + силуэт AWP по центру + пиксельный «CS:GO» текст внизу. - poster_morgen: круг с лицом, глаза-щели, рот + пиксельный «MS». - door: вертикальное волокно Perlin + 3 горизонтальных шва (панели) + 4 сучка разного размера. - desk_white: чистый белый + жёлтый Steam-стикер в углу + царапина. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:04:50 +03:00
crosshair.visible = true
fix: auto-flow подарок, отец 180°, спавн кухни, лицензия, меню «ДРОП» 1. ОТЕЦ (поворот по фидбеку): - Initial Transform3D повёрнут на 180° от предыдущего — теперь лицом к игроку во время диалога. - При уходе ещё +180° поворот → спиной к игроку → шагает к двери не пятясь. 2. AUTO-FLOW КЛИКА ПО ПОДАРКУ: - Раньше: клик подарок → молча появляется системник → клик записку → overlay → клик дальше → монолог → ... Игрок терялся между кликами, думал что баг (тёмный экран). - Теперь: ОДИН клик подарка запускает ЦЕПОЧКУ: «Системник. И записка сверху.» → overlay записки → «Бать ну ты красавчик» → отец прощается → отец уходит → флешка готова. Игрок просто кликает «дальше» на каждой реплике. - note.set_interactable(false) — клик отдельно не нужен. - _on_note_interacted остался как пустой callback для совместимости. 3. КУХНЯ — СПАВН: - Был (0.5, 0, 1.0) — попадал внутрь стола (z=0.35..1.05). Игрок застревал. - Теперь (-0.5, 0, 1.2) — у двери возврата в комнату, далеко от стола. Спавнится свободно. 4. КУХНЯ — 2-Я ДВЕРЬ: - User спросил «куда отец ушёл — нет других дверей». Добавил визуальную не-интерактивную дверь на северной стене (Label3D «← прихожая»). Логически отец вышел через коридор. 5. ЛИЦЕНЗИЯ — НАЧАЛО: - User: «начинается с п.7, а где 1-6». Добавил 7 нормально- юридических пунктов 1.1-6.8 (про лицензию, неисключительные права, дизассемблирование, «как есть», ответственность, обязательства Пользователя) — ПЕРЕД ШИЗО-пунктами. - Теперь читается как настоящее ЛС: нормальное-нормальное- нормальное-ШИЗО-ШИЗО-ШИЗО, нарастающий абсурд. 6. HUD-ПОДСКАЗКА АВТО-ФЕЙД: - Timer в DialogManager (one_shot, 8 сек по умолчанию). - set_controls_hint() запускает таймер. - По истечении — tween modulate.a 0.8 → 0.0 за 1.5 сек. - Подсказка управления больше не висит вечно. 7. ГЛАВНОЕ МЕНЮ — НАЗВАНИЕ: - Было: «FARMING SIMULATOR / Подросток-фермер CS/TF2/PUBG кейсов · 2020-2026» (рабочее, пресно). - Стало: «ДРОП» (32px, жёлтый акцент) / «Лето двадцатого года.» (12px, серый). Лаконично, поэтично. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 19:46:20 +03:00
_hint_timer = Timer.new()
_hint_timer.one_shot = true
add_child(_hint_timer)
_hint_timer.timeout.connect(_fade_hint)
act1: фиксы багов + crosshair + улучшенные текстуры БАГ-ФИКСЫ: - Трясёт у двери: Interactable теперь extends Area3D (не StaticBody3D). RayCast3D детектит Area3D через collide_with_areas=true. Игрок физически проходит через интерактивы (gift box, флешка, записка, дверь) — не толкается в узких местах. Бампается только в стены/мебель/пол. - Все 6 интерактивов в act1_room.tscn и act1_kitchen.tscn переведены на type="Area3D". UI: - Crosshair в центре экрана: 8×8 точка с тёмной рамкой и белой центральной 2×2 точкой. set_crosshair_visible() для 2D-сцен (Акт 2 прячет его). - SubtitlePanel расширен: 16-624 × 240-354 (было 24-616 × 270-350). Text-лейбл заменён на RichTextLabel с fit_content + bbcode. Длинные реплики отца теперь нормально влезают. - NoteOverlay аналогично RichTextLabel. - ControlsHint перенесён сверху (под HUD-датой), 14px меньше. ТЕКСТУРЫ через FastNoiseLite + 128×128 разрешалка: - wallpaper: шумная бежевая база + растительный крест-цветок каждые 22px, шахматное смещение, тонкая горизонтальная полоса каждые 32px (стык обоев). - linoleum: настоящая паркетная доска 16×64px со смещением между рядами, тонкие швы, волокно через шум. - ceiling: побелка с пятном протёчки в углу (canon-деталь). - wall_carpet: бордовая база + двойная золотая рамка + ромб- медальон с золотыми углами + декоративные уголки. - blanket: 30 звёздочек (белые/жёлтые) разного размера на шумной тёмно-синей базе. - poster_csgo: диагональная штриховка + силуэт AWP по центру + пиксельный «CS:GO» текст внизу. - poster_morgen: круг с лицом, глаза-щели, рот + пиксельный «MS». - door: вертикальное волокно Perlin + 3 горизонтальных шва (панели) + 4 сучка разного размера. - desk_white: чистый белый + жёлтый Steam-стикер в углу + царапина. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:04:50 +03:00
func set_crosshair_visible(v: bool) -> void:
crosshair.visible = v
act1: FPV-комната с подарком, запиской и флешкой 3D-сцена 4×4м: стены/пол/потолок, окно (свечение), дверь, стол с пека, кровать с одеялом, подарок-коробка на полу, отец-NPC в дверях. Архитектура: - FPVController (CharacterBody3D + Camera3D + RayCast3D) — mouse look, WASD, raycast-pickup, lock_input для катсцен. - Interactable (StaticBody3D base) — toggle через collision_layer. - DialogManager (autoload CanvasLayer) — субтитры snake-case, fullscreen записка, HUD-подсказки, prompt над крестом, await через signal. - act1.gd — state machine: INTRO → EXPLORE_GIFT → INSIDE_GIFT → NOTE_READ → FATHER_FAREWELL (tween x-2.5) → SEEK_DRIVE → ENDING. Канон-реплики из Пролог_Первый_день.md без правок: - Отец intro + про флешку с Шиндой - Записка «Не сожги. Пароль от Wi-Fi на холодильнике. — Бать» - Мысли героя: «новый пека?», «бать ну ты красавчик», «Андрюхино так Андрюхино» GL Compatibility renderer, unshaded материалы плоскими цветами под pixel-art 640×360. Тестировано на RTX 5070 — стартует без ошибок. main.tscn placeholder удалён, main_scene = act1_room.tscn. Не покрыто в MVP (TBD): - Опц. выход на кухню → холодильник → Wi-Fi пароль - Mastermind hack-mini-game для подбора Wi-Fi - Sfxr звуки (открытие коробки, шаги) - Переход в Акт 2 (пока quit на финале) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:12:04 +03:00
fix: auto-flow подарок, отец 180°, спавн кухни, лицензия, меню «ДРОП» 1. ОТЕЦ (поворот по фидбеку): - Initial Transform3D повёрнут на 180° от предыдущего — теперь лицом к игроку во время диалога. - При уходе ещё +180° поворот → спиной к игроку → шагает к двери не пятясь. 2. AUTO-FLOW КЛИКА ПО ПОДАРКУ: - Раньше: клик подарок → молча появляется системник → клик записку → overlay → клик дальше → монолог → ... Игрок терялся между кликами, думал что баг (тёмный экран). - Теперь: ОДИН клик подарка запускает ЦЕПОЧКУ: «Системник. И записка сверху.» → overlay записки → «Бать ну ты красавчик» → отец прощается → отец уходит → флешка готова. Игрок просто кликает «дальше» на каждой реплике. - note.set_interactable(false) — клик отдельно не нужен. - _on_note_interacted остался как пустой callback для совместимости. 3. КУХНЯ — СПАВН: - Был (0.5, 0, 1.0) — попадал внутрь стола (z=0.35..1.05). Игрок застревал. - Теперь (-0.5, 0, 1.2) — у двери возврата в комнату, далеко от стола. Спавнится свободно. 4. КУХНЯ — 2-Я ДВЕРЬ: - User спросил «куда отец ушёл — нет других дверей». Добавил визуальную не-интерактивную дверь на северной стене (Label3D «← прихожая»). Логически отец вышел через коридор. 5. ЛИЦЕНЗИЯ — НАЧАЛО: - User: «начинается с п.7, а где 1-6». Добавил 7 нормально- юридических пунктов 1.1-6.8 (про лицензию, неисключительные права, дизассемблирование, «как есть», ответственность, обязательства Пользователя) — ПЕРЕД ШИЗО-пунктами. - Теперь читается как настоящее ЛС: нормальное-нормальное- нормальное-ШИЗО-ШИЗО-ШИЗО, нарастающий абсурд. 6. HUD-ПОДСКАЗКА АВТО-ФЕЙД: - Timer в DialogManager (one_shot, 8 сек по умолчанию). - set_controls_hint() запускает таймер. - По истечении — tween modulate.a 0.8 → 0.0 за 1.5 сек. - Подсказка управления больше не висит вечно. 7. ГЛАВНОЕ МЕНЮ — НАЗВАНИЕ: - Было: «FARMING SIMULATOR / Подросток-фермер CS/TF2/PUBG кейсов · 2020-2026» (рабочее, пресно). - Стало: «ДРОП» (32px, жёлтый акцент) / «Лето двадцатого года.» (12px, серый). Лаконично, поэтично. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 19:46:20 +03:00
func _fade_hint() -> void:
var t: Tween = create_tween()
t.tween_property(controls_hint, "modulate:a", 0.0, 1.5)
act1: FPV-комната с подарком, запиской и флешкой 3D-сцена 4×4м: стены/пол/потолок, окно (свечение), дверь, стол с пека, кровать с одеялом, подарок-коробка на полу, отец-NPC в дверях. Архитектура: - FPVController (CharacterBody3D + Camera3D + RayCast3D) — mouse look, WASD, raycast-pickup, lock_input для катсцен. - Interactable (StaticBody3D base) — toggle через collision_layer. - DialogManager (autoload CanvasLayer) — субтитры snake-case, fullscreen записка, HUD-подсказки, prompt над крестом, await через signal. - act1.gd — state machine: INTRO → EXPLORE_GIFT → INSIDE_GIFT → NOTE_READ → FATHER_FAREWELL (tween x-2.5) → SEEK_DRIVE → ENDING. Канон-реплики из Пролог_Первый_день.md без правок: - Отец intro + про флешку с Шиндой - Записка «Не сожги. Пароль от Wi-Fi на холодильнике. — Бать» - Мысли героя: «новый пека?», «бать ну ты красавчик», «Андрюхино так Андрюхино» GL Compatibility renderer, unshaded материалы плоскими цветами под pixel-art 640×360. Тестировано на RTX 5070 — стартует без ошибок. main.tscn placeholder удалён, main_scene = act1_room.tscn. Не покрыто в MVP (TBD): - Опц. выход на кухню → холодильник → Wi-Fi пароль - Mastermind hack-mini-game для подбора Wi-Fi - Sfxr звуки (открытие коробки, шаги) - Переход в Акт 2 (пока quit на финале) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:12:04 +03:00
func say(who: String, line: String) -> Signal:
who_label.text = "[%s]" % who
text_label.text = line
hint_label.text = "ЛКМ или ПРОБЕЛ — дальше"
subtitle_panel.visible = true
note_overlay.visible = false
_waiting = true
return advanced
func think(line: String) -> Signal:
return say("Я", line)
func show_note(text: String) -> Signal:
note_text.text = text
note_overlay.visible = true
subtitle_panel.visible = false
_waiting = true
return advanced
func set_prompt(text: String) -> void:
if text == "":
prompt_label.visible = false
return
prompt_label.text = "[ЛКМ] %s" % text
prompt_label.visible = true
func clear_prompt() -> void:
prompt_label.visible = false
act1: аутентичная страна Р — комната, HUD, канон КАНОН (3 новых файла, ресёрч-агент): - APARTMENT.md: брежневка Купчино 9-эт, комната 10-12м², обои бежевые виниловые с растительным узором (наследие маминого ремонта 2010), линолеум жёлто-коричневый, ковёр бордовый персидский над кроватью (наследство от бабушки), батарея чугунная МС-140 белая с подтёками, пластиковый стеклопакет с алоэ+чашкой на подоконнике, кровать с тёмно- синим верблюжьим одеялом, стол ИКЕА MICKE, старый офисный «Бюрократ», стеллаж ИКЕА BILLY с учебниками + Гарри Поттер + УК РФ (засев #8), постеры CS:GO + Моргенштерн на синей изоленте, банка Adrenaline + обёртка Lay's на столе, носки на полу. Все цвета по hex. - STREET.md: парадная с домофоном Eltis DP-400 (питерский производитель), фасад керамической плитки бежевой, балконы остеклены лоскутно, на 1 этаже Пятёрочка+К&Б, двор с тополями+ракушками-гаражами+советской площадкой (горка-«ракета»), лавочки бабушек/подростков, метро жетон 55₽ август 2020, шаверма 120-180₽ (источник прямой не подтверждён, оценка по контексту), сети Pita's/Вкусная шаверма/КручуВерчу. - HUD.md: pixel-art минимализм с акцентом #F0B419 Steam-inventory, Pathologic-2 правило (статы только при пороге), диалог-окно в стиле Шиндовс-окна (засев бренда), квест-маркер через ТГ-телефон героя, без мини-карты и постоянных таймеров. КОД: - act1_room.tscn полностью переписан: 73 sub_resources placeholder-кубов с канон-цветами hex. Добавлены: радиатор под окном, оконная рама из 5 планок + подоконник с алоэ+чашкой, ковёр-на-стене над кроватью (бордовый), 2 постера (CS:GO жёлтый + Моргенштерн красный), стеллаж ИКЕА BILLY на западной стене с 5 книгами, старый Pentium 4 в углу северо-востока, банка Adrenaline + обёртка Lay's + клавиатура на столе, 2 носка на полу. Спавн игрока сдвинут с z=1.2 на z=0.5 (был внутри кровати). - dialog_manager.gd: новый HUD-API set_date_time / set_objective / set_money / set_weather / set_stat_alert + set_controls_hint. - dialog_ui.tscn: 5 новых HUD-лейблов (DateTime, Objective с жёлтым акцентом, Money, Weather, StatsAlert) + ControlsHint всегда видимый тусклый. - act1.gd: HUD теперь показывает «21 АВГ 2020 · ПТ · 10:30» вверху-слева и квест «◆ Распакуй подарок от бати» → «◆ Прочитай записку» → «◆ Возьми флешку с Шиндовс» вверху-справа. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:38:07 +03:00
func set_date_time(date: String, time: String) -> void:
fix: установка пустая, отец в стену, нет меню ФИКС АКТА 2 (главный баг): - CenterContainer/WelcomeScreen/FourSquares имели anchor_right=1.0 + offset_right=640 → элементы уезжали ЗА пределы экрана (далеко на восток). Установочное окно было невидно. Заменил на anchors_preset=15 (full rect) без offset, теперь Center правильно центрирует Window. - PanelContainer без StyleBox = прозрачный. Добавлены 3 StyleBoxFlat (style_window — основное окно с рамкой, style_titlebar — тёмный header с жёлтым заголовком, style_panel — для вложенных панелей). Окно установки теперь видимо как настоящее Шиндовс-окно. - Body теперь без scroll_active (fit_content), Buttons с min_size 110×28 — кнопки чётко видны. ОТЕЦ: - Шёл на ЗАПАД (position.x - 2.5 = -0.8) в стену, а дверь на ВОСТОКЕ. Меняю на +1.0 (восток к двери при x=2.05). - _walk_father_out: сначала поворот корпуса 0.3 сек к двери (rotation:y = -PI/2), потом 1.4 сек шагание: * движение position:x на восток * абс(sin) bob тела на 0.04м (4 шага) * sin качание ног (LegL/LegR) и рук (ArmL/ArmR) в противофазе с амплитудой 0.4/0.24 радиан - Теперь отец действительно идёт к двери с шагающей походкой. ГЛАВНОЕ МЕНЮ (чего не хватало): - scenes/main_menu.tscn: тёмный фон с виньетками, заголовок жёлтым акцентом, 4 кнопки (Новая игра / Продолжить / Настройки / Выйти), StyleBoxFlat для кнопок. - main_menu.gd: ESC = Quit, кнопка «Новая игра» → SceneManager.go_room(), GameState.reset() при входе в меню. - project.godot main_scene = main_menu.tscn (было act1_room). - SceneManager + go_main() метод. HUD UX: - set_date_time("","") теперь прячет лейбл (раньше показывал "· "). В меню HUD скрыт полностью. - В Акте 1 и кухне при _ready восстанавливается crosshair + controls_hint (которые меню скрывает). ЧЕГО ВСЁ ЕЩЁ НЕ ХВАТАЕТ (для следующих сессий): - Звуки/SFX (шаги, клики, sfxr-эффекты, дверь) - Pause-меню по ESC во время геймплея - Save/load система (сейчас всё сбрасывается) - Анимация перехода между сценами (fade-in/out) - Реальные ассеты (CC0 модели мебели/персонажей) - Музыка/амбиент (CC0 трек комнаты) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:23:05 +03:00
if date == "" and time == "":
date_time_label.visible = false
return
act1: аутентичная страна Р — комната, HUD, канон КАНОН (3 новых файла, ресёрч-агент): - APARTMENT.md: брежневка Купчино 9-эт, комната 10-12м², обои бежевые виниловые с растительным узором (наследие маминого ремонта 2010), линолеум жёлто-коричневый, ковёр бордовый персидский над кроватью (наследство от бабушки), батарея чугунная МС-140 белая с подтёками, пластиковый стеклопакет с алоэ+чашкой на подоконнике, кровать с тёмно- синим верблюжьим одеялом, стол ИКЕА MICKE, старый офисный «Бюрократ», стеллаж ИКЕА BILLY с учебниками + Гарри Поттер + УК РФ (засев #8), постеры CS:GO + Моргенштерн на синей изоленте, банка Adrenaline + обёртка Lay's на столе, носки на полу. Все цвета по hex. - STREET.md: парадная с домофоном Eltis DP-400 (питерский производитель), фасад керамической плитки бежевой, балконы остеклены лоскутно, на 1 этаже Пятёрочка+К&Б, двор с тополями+ракушками-гаражами+советской площадкой (горка-«ракета»), лавочки бабушек/подростков, метро жетон 55₽ август 2020, шаверма 120-180₽ (источник прямой не подтверждён, оценка по контексту), сети Pita's/Вкусная шаверма/КручуВерчу. - HUD.md: pixel-art минимализм с акцентом #F0B419 Steam-inventory, Pathologic-2 правило (статы только при пороге), диалог-окно в стиле Шиндовс-окна (засев бренда), квест-маркер через ТГ-телефон героя, без мини-карты и постоянных таймеров. КОД: - act1_room.tscn полностью переписан: 73 sub_resources placeholder-кубов с канон-цветами hex. Добавлены: радиатор под окном, оконная рама из 5 планок + подоконник с алоэ+чашкой, ковёр-на-стене над кроватью (бордовый), 2 постера (CS:GO жёлтый + Моргенштерн красный), стеллаж ИКЕА BILLY на западной стене с 5 книгами, старый Pentium 4 в углу северо-востока, банка Adrenaline + обёртка Lay's + клавиатура на столе, 2 носка на полу. Спавн игрока сдвинут с z=1.2 на z=0.5 (был внутри кровати). - dialog_manager.gd: новый HUD-API set_date_time / set_objective / set_money / set_weather / set_stat_alert + set_controls_hint. - dialog_ui.tscn: 5 новых HUD-лейблов (DateTime, Objective с жёлтым акцентом, Money, Weather, StatsAlert) + ControlsHint всегда видимый тусклый. - act1.gd: HUD теперь показывает «21 АВГ 2020 · ПТ · 10:30» вверху-слева и квест «◆ Распакуй подарок от бати» → «◆ Прочитай записку» → «◆ Возьми флешку с Шиндовс» вверху-справа. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:38:07 +03:00
date_time_label.text = "%s · %s" % [date, time]
fix: установка пустая, отец в стену, нет меню ФИКС АКТА 2 (главный баг): - CenterContainer/WelcomeScreen/FourSquares имели anchor_right=1.0 + offset_right=640 → элементы уезжали ЗА пределы экрана (далеко на восток). Установочное окно было невидно. Заменил на anchors_preset=15 (full rect) без offset, теперь Center правильно центрирует Window. - PanelContainer без StyleBox = прозрачный. Добавлены 3 StyleBoxFlat (style_window — основное окно с рамкой, style_titlebar — тёмный header с жёлтым заголовком, style_panel — для вложенных панелей). Окно установки теперь видимо как настоящее Шиндовс-окно. - Body теперь без scroll_active (fit_content), Buttons с min_size 110×28 — кнопки чётко видны. ОТЕЦ: - Шёл на ЗАПАД (position.x - 2.5 = -0.8) в стену, а дверь на ВОСТОКЕ. Меняю на +1.0 (восток к двери при x=2.05). - _walk_father_out: сначала поворот корпуса 0.3 сек к двери (rotation:y = -PI/2), потом 1.4 сек шагание: * движение position:x на восток * абс(sin) bob тела на 0.04м (4 шага) * sin качание ног (LegL/LegR) и рук (ArmL/ArmR) в противофазе с амплитудой 0.4/0.24 радиан - Теперь отец действительно идёт к двери с шагающей походкой. ГЛАВНОЕ МЕНЮ (чего не хватало): - scenes/main_menu.tscn: тёмный фон с виньетками, заголовок жёлтым акцентом, 4 кнопки (Новая игра / Продолжить / Настройки / Выйти), StyleBoxFlat для кнопок. - main_menu.gd: ESC = Quit, кнопка «Новая игра» → SceneManager.go_room(), GameState.reset() при входе в меню. - project.godot main_scene = main_menu.tscn (было act1_room). - SceneManager + go_main() метод. HUD UX: - set_date_time("","") теперь прячет лейбл (раньше показывал "· "). В меню HUD скрыт полностью. - В Акте 1 и кухне при _ready восстанавливается crosshair + controls_hint (которые меню скрывает). ЧЕГО ВСЁ ЕЩЁ НЕ ХВАТАЕТ (для следующих сессий): - Звуки/SFX (шаги, клики, sfxr-эффекты, дверь) - Pause-меню по ESC во время геймплея - Save/load система (сейчас всё сбрасывается) - Анимация перехода между сценами (fade-in/out) - Реальные ассеты (CC0 модели мебели/персонажей) - Музыка/амбиент (CC0 трек комнаты) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:23:05 +03:00
date_time_label.visible = true
act1: аутентичная страна Р — комната, HUD, канон КАНОН (3 новых файла, ресёрч-агент): - APARTMENT.md: брежневка Купчино 9-эт, комната 10-12м², обои бежевые виниловые с растительным узором (наследие маминого ремонта 2010), линолеум жёлто-коричневый, ковёр бордовый персидский над кроватью (наследство от бабушки), батарея чугунная МС-140 белая с подтёками, пластиковый стеклопакет с алоэ+чашкой на подоконнике, кровать с тёмно- синим верблюжьим одеялом, стол ИКЕА MICKE, старый офисный «Бюрократ», стеллаж ИКЕА BILLY с учебниками + Гарри Поттер + УК РФ (засев #8), постеры CS:GO + Моргенштерн на синей изоленте, банка Adrenaline + обёртка Lay's на столе, носки на полу. Все цвета по hex. - STREET.md: парадная с домофоном Eltis DP-400 (питерский производитель), фасад керамической плитки бежевой, балконы остеклены лоскутно, на 1 этаже Пятёрочка+К&Б, двор с тополями+ракушками-гаражами+советской площадкой (горка-«ракета»), лавочки бабушек/подростков, метро жетон 55₽ август 2020, шаверма 120-180₽ (источник прямой не подтверждён, оценка по контексту), сети Pita's/Вкусная шаверма/КручуВерчу. - HUD.md: pixel-art минимализм с акцентом #F0B419 Steam-inventory, Pathologic-2 правило (статы только при пороге), диалог-окно в стиле Шиндовс-окна (засев бренда), квест-маркер через ТГ-телефон героя, без мини-карты и постоянных таймеров. КОД: - act1_room.tscn полностью переписан: 73 sub_resources placeholder-кубов с канон-цветами hex. Добавлены: радиатор под окном, оконная рама из 5 планок + подоконник с алоэ+чашкой, ковёр-на-стене над кроватью (бордовый), 2 постера (CS:GO жёлтый + Моргенштерн красный), стеллаж ИКЕА BILLY на западной стене с 5 книгами, старый Pentium 4 в углу северо-востока, банка Adrenaline + обёртка Lay's + клавиатура на столе, 2 носка на полу. Спавн игрока сдвинут с z=1.2 на z=0.5 (был внутри кровати). - dialog_manager.gd: новый HUD-API set_date_time / set_objective / set_money / set_weather / set_stat_alert + set_controls_hint. - dialog_ui.tscn: 5 новых HUD-лейблов (DateTime, Objective с жёлтым акцентом, Money, Weather, StatsAlert) + ControlsHint всегда видимый тусклый. - act1.gd: HUD теперь показывает «21 АВГ 2020 · ПТ · 10:30» вверху-слева и квест «◆ Распакуй подарок от бати» → «◆ Прочитай записку» → «◆ Возьми флешку с Шиндовс» вверху-справа. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:38:07 +03:00
func set_objective(text: String) -> void:
if text == "":
objective_label.visible = false
return
objective_label.text = "" + text
objective_label.visible = true
func set_money(rub: int, usd: float = 0.0, eur: float = 0.0) -> void:
if rub == 0 and usd == 0.0 and eur == 0.0:
money_label.visible = false
return
var parts: Array[String] = ["%d" % rub]
if usd > 0.0:
parts.append("$ %.2f" % usd)
if eur > 0.0:
parts.append("%.2f" % eur)
money_label.text = " ".join(parts)
money_label.visible = true
func set_weather(text: String, temp_c: int = -999) -> void:
if text == "":
weather_label.visible = false
return
if temp_c == -999:
weather_label.text = text
else:
weather_label.text = "%s %+d°C" % [text, temp_c]
weather_label.visible = true
func set_stat_alert(text: String) -> void:
if text == "":
stats_label.visible = false
return
stats_label.text = text
stats_label.visible = true
fix: auto-flow подарок, отец 180°, спавн кухни, лицензия, меню «ДРОП» 1. ОТЕЦ (поворот по фидбеку): - Initial Transform3D повёрнут на 180° от предыдущего — теперь лицом к игроку во время диалога. - При уходе ещё +180° поворот → спиной к игроку → шагает к двери не пятясь. 2. AUTO-FLOW КЛИКА ПО ПОДАРКУ: - Раньше: клик подарок → молча появляется системник → клик записку → overlay → клик дальше → монолог → ... Игрок терялся между кликами, думал что баг (тёмный экран). - Теперь: ОДИН клик подарка запускает ЦЕПОЧКУ: «Системник. И записка сверху.» → overlay записки → «Бать ну ты красавчик» → отец прощается → отец уходит → флешка готова. Игрок просто кликает «дальше» на каждой реплике. - note.set_interactable(false) — клик отдельно не нужен. - _on_note_interacted остался как пустой callback для совместимости. 3. КУХНЯ — СПАВН: - Был (0.5, 0, 1.0) — попадал внутрь стола (z=0.35..1.05). Игрок застревал. - Теперь (-0.5, 0, 1.2) — у двери возврата в комнату, далеко от стола. Спавнится свободно. 4. КУХНЯ — 2-Я ДВЕРЬ: - User спросил «куда отец ушёл — нет других дверей». Добавил визуальную не-интерактивную дверь на северной стене (Label3D «← прихожая»). Логически отец вышел через коридор. 5. ЛИЦЕНЗИЯ — НАЧАЛО: - User: «начинается с п.7, а где 1-6». Добавил 7 нормально- юридических пунктов 1.1-6.8 (про лицензию, неисключительные права, дизассемблирование, «как есть», ответственность, обязательства Пользователя) — ПЕРЕД ШИЗО-пунктами. - Теперь читается как настоящее ЛС: нормальное-нормальное- нормальное-ШИЗО-ШИЗО-ШИЗО, нарастающий абсурд. 6. HUD-ПОДСКАЗКА АВТО-ФЕЙД: - Timer в DialogManager (one_shot, 8 сек по умолчанию). - set_controls_hint() запускает таймер. - По истечении — tween modulate.a 0.8 → 0.0 за 1.5 сек. - Подсказка управления больше не висит вечно. 7. ГЛАВНОЕ МЕНЮ — НАЗВАНИЕ: - Было: «FARMING SIMULATOR / Подросток-фермер CS/TF2/PUBG кейсов · 2020-2026» (рабочее, пресно). - Стало: «ДРОП» (32px, жёлтый акцент) / «Лето двадцатого года.» (12px, серый). Лаконично, поэтично. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 19:46:20 +03:00
func set_controls_hint(text: String, auto_hide_after: float = 8.0) -> void:
if _hint_timer != null:
_hint_timer.stop()
act1: аутентичная страна Р — комната, HUD, канон КАНОН (3 новых файла, ресёрч-агент): - APARTMENT.md: брежневка Купчино 9-эт, комната 10-12м², обои бежевые виниловые с растительным узором (наследие маминого ремонта 2010), линолеум жёлто-коричневый, ковёр бордовый персидский над кроватью (наследство от бабушки), батарея чугунная МС-140 белая с подтёками, пластиковый стеклопакет с алоэ+чашкой на подоконнике, кровать с тёмно- синим верблюжьим одеялом, стол ИКЕА MICKE, старый офисный «Бюрократ», стеллаж ИКЕА BILLY с учебниками + Гарри Поттер + УК РФ (засев #8), постеры CS:GO + Моргенштерн на синей изоленте, банка Adrenaline + обёртка Lay's на столе, носки на полу. Все цвета по hex. - STREET.md: парадная с домофоном Eltis DP-400 (питерский производитель), фасад керамической плитки бежевой, балконы остеклены лоскутно, на 1 этаже Пятёрочка+К&Б, двор с тополями+ракушками-гаражами+советской площадкой (горка-«ракета»), лавочки бабушек/подростков, метро жетон 55₽ август 2020, шаверма 120-180₽ (источник прямой не подтверждён, оценка по контексту), сети Pita's/Вкусная шаверма/КручуВерчу. - HUD.md: pixel-art минимализм с акцентом #F0B419 Steam-inventory, Pathologic-2 правило (статы только при пороге), диалог-окно в стиле Шиндовс-окна (засев бренда), квест-маркер через ТГ-телефон героя, без мини-карты и постоянных таймеров. КОД: - act1_room.tscn полностью переписан: 73 sub_resources placeholder-кубов с канон-цветами hex. Добавлены: радиатор под окном, оконная рама из 5 планок + подоконник с алоэ+чашкой, ковёр-на-стене над кроватью (бордовый), 2 постера (CS:GO жёлтый + Моргенштерн красный), стеллаж ИКЕА BILLY на западной стене с 5 книгами, старый Pentium 4 в углу северо-востока, банка Adrenaline + обёртка Lay's + клавиатура на столе, 2 носка на полу. Спавн игрока сдвинут с z=1.2 на z=0.5 (был внутри кровати). - dialog_manager.gd: новый HUD-API set_date_time / set_objective / set_money / set_weather / set_stat_alert + set_controls_hint. - dialog_ui.tscn: 5 новых HUD-лейблов (DateTime, Objective с жёлтым акцентом, Money, Weather, StatsAlert) + ControlsHint всегда видимый тусклый. - act1.gd: HUD теперь показывает «21 АВГ 2020 · ПТ · 10:30» вверху-слева и квест «◆ Распакуй подарок от бати» → «◆ Прочитай записку» → «◆ Возьми флешку с Шиндовс» вверху-справа. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:38:07 +03:00
if text == "":
controls_hint.visible = false
return
controls_hint.text = text
controls_hint.visible = true
fix: auto-flow подарок, отец 180°, спавн кухни, лицензия, меню «ДРОП» 1. ОТЕЦ (поворот по фидбеку): - Initial Transform3D повёрнут на 180° от предыдущего — теперь лицом к игроку во время диалога. - При уходе ещё +180° поворот → спиной к игроку → шагает к двери не пятясь. 2. AUTO-FLOW КЛИКА ПО ПОДАРКУ: - Раньше: клик подарок → молча появляется системник → клик записку → overlay → клик дальше → монолог → ... Игрок терялся между кликами, думал что баг (тёмный экран). - Теперь: ОДИН клик подарка запускает ЦЕПОЧКУ: «Системник. И записка сверху.» → overlay записки → «Бать ну ты красавчик» → отец прощается → отец уходит → флешка готова. Игрок просто кликает «дальше» на каждой реплике. - note.set_interactable(false) — клик отдельно не нужен. - _on_note_interacted остался как пустой callback для совместимости. 3. КУХНЯ — СПАВН: - Был (0.5, 0, 1.0) — попадал внутрь стола (z=0.35..1.05). Игрок застревал. - Теперь (-0.5, 0, 1.2) — у двери возврата в комнату, далеко от стола. Спавнится свободно. 4. КУХНЯ — 2-Я ДВЕРЬ: - User спросил «куда отец ушёл — нет других дверей». Добавил визуальную не-интерактивную дверь на северной стене (Label3D «← прихожая»). Логически отец вышел через коридор. 5. ЛИЦЕНЗИЯ — НАЧАЛО: - User: «начинается с п.7, а где 1-6». Добавил 7 нормально- юридических пунктов 1.1-6.8 (про лицензию, неисключительные права, дизассемблирование, «как есть», ответственность, обязательства Пользователя) — ПЕРЕД ШИЗО-пунктами. - Теперь читается как настоящее ЛС: нормальное-нормальное- нормальное-ШИЗО-ШИЗО-ШИЗО, нарастающий абсурд. 6. HUD-ПОДСКАЗКА АВТО-ФЕЙД: - Timer в DialogManager (one_shot, 8 сек по умолчанию). - set_controls_hint() запускает таймер. - По истечении — tween modulate.a 0.8 → 0.0 за 1.5 сек. - Подсказка управления больше не висит вечно. 7. ГЛАВНОЕ МЕНЮ — НАЗВАНИЕ: - Было: «FARMING SIMULATOR / Подросток-фермер CS/TF2/PUBG кейсов · 2020-2026» (рабочее, пресно). - Стало: «ДРОП» (32px, жёлтый акцент) / «Лето двадцатого года.» (12px, серый). Лаконично, поэтично. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 19:46:20 +03:00
controls_hint.modulate = Color(0.45, 0.45, 0.45, 0.8)
if auto_hide_after > 0 and _hint_timer != null:
_hint_timer.start(auto_hide_after)
act1: FPV-комната с подарком, запиской и флешкой 3D-сцена 4×4м: стены/пол/потолок, окно (свечение), дверь, стол с пека, кровать с одеялом, подарок-коробка на полу, отец-NPC в дверях. Архитектура: - FPVController (CharacterBody3D + Camera3D + RayCast3D) — mouse look, WASD, raycast-pickup, lock_input для катсцен. - Interactable (StaticBody3D base) — toggle через collision_layer. - DialogManager (autoload CanvasLayer) — субтитры snake-case, fullscreen записка, HUD-подсказки, prompt над крестом, await через signal. - act1.gd — state machine: INTRO → EXPLORE_GIFT → INSIDE_GIFT → NOTE_READ → FATHER_FAREWELL (tween x-2.5) → SEEK_DRIVE → ENDING. Канон-реплики из Пролог_Первый_день.md без правок: - Отец intro + про флешку с Шиндой - Записка «Не сожги. Пароль от Wi-Fi на холодильнике. — Бать» - Мысли героя: «новый пека?», «бать ну ты красавчик», «Андрюхино так Андрюхино» GL Compatibility renderer, unshaded материалы плоскими цветами под pixel-art 640×360. Тестировано на RTX 5070 — стартует без ошибок. main.tscn placeholder удалён, main_scene = act1_room.tscn. Не покрыто в MVP (TBD): - Опц. выход на кухню → холодильник → Wi-Fi пароль - Mastermind hack-mini-game для подбора Wi-Fi - Sfxr звуки (открытие коробки, шаги) - Переход в Акт 2 (пока quit на финале) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:12:04 +03:00
func _input(event: InputEvent) -> void:
if not _waiting:
return
var advance: bool = false
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
advance = true
elif event is InputEventKey and event.pressed and (event.keycode == KEY_SPACE or event.keycode == KEY_ENTER):
advance = true
if advance:
get_viewport().set_input_as_handled()
subtitle_panel.visible = false
note_overlay.visible = false
_waiting = false
advanced.emit()