Roguenarok Extraction Modpack
Authored raid POIs: 4 forges, 3 rune recyclers, 20 abandoned houses; persistent shared weapon/rune loot and personal discovery.Roguenarok 0.27.0 — авторские кузницы и заброшенные дома
Подготовлена сборка. Клиентские профили, сервер и миры не изменены. Изменения генерации применяются к следующему новому рейду; уже сохранённый остров версий 0–2 не перестраивается. Для установки нужны одинаковые версии клиента и сервера. Действует прежнее пользовательское правило: после установки нового релиза каждый персонаж один раз сбрасывается и получает 20 монет.
Реализация
- Новый рейд использует версию генерации 3: высоты и реки соответствуют версии 2, меняется состав POI.
- Ровно 4 кузницы: по 2 экземпляра Forge_01 и Forge_02; 3 прежних разных переработчика; 20 домов со случайным выбором House_01/02 и поворотом. Алтарь босса сохранён. Ванильные постройки, пещеры/данжи, старые пользовательские POI и отдельные дополнительные сундуки в новом рейде не создаются.
- Дом: 1 сундук с вероятностью 95%, 2 — 5%. Только предусмотренные позиции; остальные сундуки отсутствуют. В каждом ровно оружие Q1/+0 и синяя руна. Лут общий, серверный, не пополняется.
- Стойки: 0/1/2 с вероятностями 20/60/20%. Оружие снимается штатным механизмом Valheim. Пул: кремнёвый нож 55%, дубина 20%, каменный топор 15%, грубый лук 10%; всё Q1/+0. Содержимое стоек из исходных Blueprint не импортируется. Декоративные сундуки кузниц сохраняют внешний вид, но не содержат дополнительного лута и не открываются.
- Скелет в доме: независимый шанс 15%, уровень Character=2 (одна звезда). Точка ищется у лестницы или по внешнему периметру с проверкой свободной капсулы. Правила обычного поведения/дропа сохранены.
- Ремонт, заточка дубликатом, наследование рун, лимиты и транзакции переработчиков используют прежний код.
- Первый добытый маркированный грубый лук даёт 40 деревянных стрел один раз на персонажа/мир/релиз. При полном инвентаре остаток выдачи ждёт свободного места. Повторное перекладывание лука не даёт стрел. В актуальном коде прежней реализации этой выдачи не обнаружено, поэтому она добавлена здесь.
- Личные метки всех трёх типов открываются в 20 м: наковальня, руна, дом. Сохраняются в данных персонажа на текущий рейд; удаляются с карты при его завершении. Старый параметр радиуса больше не используется.
- План построек/слотов/оружия/скелетов атомарно записывается в authored-island.xml до создания объектов. Сундуки и стойки имеют устойчивые идентификаторы и маркеры заполнения. Завершённый рейд не создаёт их повторно.
- После завершения и возвращения всех живых в хаб временные POI удаляются. Очистка ждёт закрытия контейнеров и завершения переработки, не уничтожая её незавершённый ввод. Общая очистка острова при новом рейде сохранена.
Blueprint проверены
Исходные файлы сохранены без изменения строк и трансформаций, встроены в DLL.
| Blueprint | Деталей | Сундуки | Стойки предметов | Рабочая кузня |
|---|---|---|---|---|
| deBuilder_House_01 | 197 | 5 | 5 | 0 |
| deBuilder_House_02 | 203 | 5 | 2 | 0 |
| deBuilder_Forge_01 | 393 | 6 | 0 | 1 |
| deBuilder_Forge_02 | 362 | 4 | 9 | 1 |
Оба дома поддерживают два сундука и две стойки без добавления позиций. В Forge_01 нет стоек оружия: дополнительные позиции не придуманы. ArmorStand — отдельный декоративный объект. Геометрия домов/кузниц объединена в сетевой составной объект; выбранные контейнеры, стойки, двери и кузнечный стол остаются настоящими отдельными игровыми объектами. Кровати/готовка/топливо не добавляют новых игровых возможностей. У структурных декораций нет отдельных ZDO.
Резервируются ресурсы, береговые точки, алтарь и другие POI. Для основания допускается перепад не более 3,5 м, с локальной площадкой под зданием: предельная расчётная срезка/подсыпка 1,75 м. Планировщик не уменьшает обязательное количество и не ставит пересекающиеся здания при неудаче: он прерывает подготовку с ошибкой. Реальная проходимость требует проверки в игре.
Фактические проверки
- Release-сборка: 0 ошибок, 0 предупреждений.
- 262 176 существующих регрессионных проверок.
- 5 254 проверки новой модели: 70 островов (10 seed × 7 биомов), ровно 4+3+20 объектов, расстояния, резервы ресурсов/алтаря/берега, слоты и сохранение результатов. В выборке 195 скелетов на 1 400 домов; фактическое число случайное. Проверены интервалы вероятностей и отказ при полной блокировке.
- 183 263 проверки прежней географии, включая 31 500 точных сравнений старых высот.
- 139 проверок native API/ассетов/сохранённой логики; все 50 типов ассетов новых Blueprint найдены в установленном manifest Valheim. Проверен native ItemDrop.SaveToZDO с принудительной полной записью, как в ItemStand.UpdateAttach; код ремонта/заточки/переработки сопоставлен с выпущенной DLL.
- 130 native целей рун и 16 инвариантов еды/стамины.
- Архив проверяется по CRC, manifest.json, icon.png, совпадению DLL и SHA256; миров в нём нет.
Это модельные и статические проверки, а не запуск Unity. НЕ проверены в игре: внешний вид, физическая проходимость всех входов, взаимодействие с предметами/дверями/кузней, отображение значков, производительность, повторный вход и игра нескольких клиентов. На произвольном seed с реальными препятствиями размещение может быть отклонено. Сетевые контейнеры используют стандартное доверие Valheim к клиентскому инвентарю; отдельная античит-система не добавлялась. Аварийный откат нативного сохранения мира не является общей атомарной транзакцией с журналом рун — это прежнее ограничение проекта.
Изменённые файлы
В Roguenarok/Foundation:
- Новые: AuthoredIslandPlan.cs, AuthoredIslandPrefabs.cs, AuthoredIslandRuntime.cs, RaidResourcePoints.cs, StationMapIcons.cs.
- Генерация: CycleRuntime.cs, IslandPoints.cs, RaidLocations.cs, RecyclerBlueprintGeneration.cs, StationTorches.cs. Координаты прежних фиксированных природных ресурсов вынесены в общий helper, чтобы планировщик резервировал именно те позиции, где они создаются.
- Карта: StationDiscovery.cs, PersonalStations.cs, ExplorationTuning.cs.
- Версия/совместимость: RaidState.cs, RaidStore.cs, SystemCheck.cs, MeadowCommands.cs, Plugin.cs, RpgRules.cs, Roguenarok.Foundation.csproj.
- Четыре новых Assets/deBuilder_{House,Forge}_0{1,2}.blueprint.
- Отчёт: NOTES-0.27.0.md, authored-island-0.27.0-validation.json, диагностические логи.
В Roguenarok/Foundation.Tests: AuthoredIslandDiagnostics.cs, Foundation.Tests.csproj, Program.cs, MeadowTests.cs, FinalChangesTests.cs. Инструменты: Roguenarok/verify_0270.ps1 и package_0270.py. Исходные архивы распакованы в Roguenarok/Imported/poi-0270; оригиналы Downloads не изменены.
