﻿Vikings for Hire (Valheim NPC)
==============================

1.3.0: навигация в поселениях переписана с нуля (на неё ушла большая часть работы). Старая шла по сетке путей
       игры, а та сделана для монстров на открытой местности: не связывает лестницы через проём в полу и стремянки
       (второй этаж недоступен), считает двери стенами (застревали в комнатах), даёт резкие углы (кружились) и не
       всегда перестраивается после стройки (лезли по убранной лестнице). Своя «карта поселения»: всё поселение прощупывается лучами (земля, полы всех
       этажей, лестницы, дверные проёмы), викинги ищут путь по ней и идут ровно, без кружения; поставил или сломал
       постройку — кусок перемеряется сразу. Лестницы (и крутые стремянки) связывают этажи; на высокую ступень
       викинг подпрыгивает. Тропы: где прошёл ты, там проход точно есть — викинги охотнее ходят по натоптанному
       (тропы хранятся между запусками). Вне поселения и если путь по карте не нашёлся — как раньше, с переносом.
       Отладка: ShowNavMap в «8 - Отладка» — карта вокруг тебя и пути викингов прямо в мире.
       Фермер сеет на вскопанном и лён с ячменём из сундуков без запаса (сколько оставлять — FarmSeedReserve);
       пока сеять нечем, так и пишет, а не «нечего делать».
       Двери: закрытая — проход (викинг открывает её, даже если сам недавно открывал), открытая створка — препятствие
       (раньше шёл прямо в неё); при открытии и закрытии карта у двери перемеряется. Поставил или убрал постройку —
       карта перемеряется по всему её размеру, а тропы через это место забываются (раньше убранная лестница оставалась).
       Ночью рабочие, застывшие вне загруженного мира, переносятся к кроватям. Проснувшись, викинг встаёт с кровати на пол.
       Фермер засевает вскопанное на всей территории базы: круг знамени, а если знамя держит мир загруженным дальше —
       весь этот радиус; поле, выходящее за край, — целиком. Статус работы называет, чего не хватает («нечего
       загрузить: лён», «нечем топить: уголь», «не может дойти до сундука»). Викинг, застрявший в позе сидя, встаёт,
       прежде чем идти. На выделенном сервере больше нет тысяч предупреждений Unity «kinematic body» в логе.
1.3.0: settlement navigation rewritten from scratch (most of the work went into it). The old one used the game's
       navmesh, which is made for monsters on open terrain: it does not connect stairs through a floor opening or
       stepladders (no second floor), treats doors as walls (stuck in rooms), makes sharp corners (spinning) and is
       not always rebuilt after building (climbing a removed ladder). A "settlement map": the whole settlement is probed with raycasts (ground, every
       floor, stairs, doorways); Vikings path over it and walk smoothly, no spinning; building or removing a piece
       re-measures that spot at once. Stairs (even steep stepladders) connect floors; Vikings hop onto high steps.
       Trails: wherever you walked is surely passable, and Vikings prefer trodden ways (trails are saved).
       Outside settlements, or if no map path is found, it works as before, teleport included.
       Debug: ShowNavMap in "8 - Debug" draws the map around you and the Vikings' paths.
       Farmers sow tilled ground with flax and barley from chests with no reserve (setting FarmSeedReserve);
       while there is nothing to sow they say so instead of "nothing to do".
       Doors: a closed door is passable (the Viking opens it, even if it opened it a minute ago), an open door leaf is an
       obstacle (they used to walk into it); toggling a door re-measures the map there. Building or removing a piece
       re-measures its whole size and forgets trails through it (a removed ladder used to linger).
       At night, workers frozen outside the loaded world are moved to their beds. Waking up, a Viking steps off the bed.
       Farmers sow tilled ground over the whole base: the banner ring, or the banner's keep-alive radius if larger; a
       field running past the edge is sown whole. Work status names what is missing ("nothing to load: flax",
       "nothing to burn: coal", "can't get to the chest"). A Viking stuck sitting stands up before walking.
       Dedicated servers no longer log thousands of Unity "kinematic body" warnings.
1.2.5 (хотфикс): профессия над именем стоит ровно по центру имени (была сдвинута вправо).
       Окно «Торговать»/«Заказать» больше не закрывается сразу, если торговец стоит выше или ниже тебя (помост,
       этаж): закрывается только если отойти дальше 8 м.
       Стража ночью больше не крутится на месте: стражник шарахался от собственного факела в руке (обход костров
       считал его огнём). Смены — строго день/ночь (раньше «сова» в дневной смене спала днём, и днём спали оба);
       смена видна в разговоре со стражником. Ночная смена пьёт свой мёд ночью (раньше не пила никогда и ворчала).
       Викинг, который топчется у кровати и не может подойти вплотную, ложится через 4 с.
       Стража быстрее реагирует на врагов: раз в секунду оглядывает поселение и гонится за врагом по всему кругу
       обхода (раньше бросала врага дальше 20 м от своей кровати и пробегала мимо). На крик рабочего бежит туда,
       где враг сейчас, а не к месту прошлой драки.
       Двое на одной кровати: после загрузки мира кровать могла казаться свободной (игра перенумеровывает объекты),
       и её занимал второй. Теперь свободна только та кровать, что ни у кого не записана домом, а из двух хозяев
       одной кровати второй уступает и ищет другую.
       Фермер засевает вскопанную землю: сам находит в поселении вскопанные клетки и сажает семена из сумки или из
       сундука (как у соседей по грядке; ячмень и лён берёт, только если их в сундуках больше 20). Нечего сеять — скажет.
       Лесоруб берёт семена деревьев (шишки, семена бука и берёзы, жёлуди) из сундуков и сажает лес за поселением.
       Собиратель не собирает смолу (список — настройка GathererSkip).
1.2.5 (hotfix): the job tag is centered above the name (it was shifted to the right).
       The Trade/Order window no longer closes right away when the trader stands above or below you (a platform,
       another floor): it closes only beyond 8 m.
       Night guards no longer spin in place: a guard kept fleeing from the torch in his own hand (fire avoidance
       treated it as a campfire). Shifts are strictly day/night (a night-owl guard on the day shift used to sleep by day,
       so both slept); the shift is shown in the guard's dialog. The night shift drinks its mead at night.
       A Viking lingering beside the bed who cannot step right up to it lies down after 4 s.
       Guards react faster: they scan the settlement every second and chase enemies across the whole patrol ring
       (they used to drop any enemy farther than 20 m from their bed and run past it). When a worker calls for help,
       they run to where the enemy is now, not to the spot of the previous fight.
       Two Vikings on one bed: after loading the world a bed could look free (the game renumbers objects) and a
       second Viking took it. Now only a bed that is nobody's home counts as free, and of two owners of one bed the
       second gives it up and finds another.
       Farmers sow tilled ground: they find tilled cells in the settlement and plant seeds from the bag or a chest
       (matching the neighbours in the bed; barley and flax only if chests hold more than 20). No seeds - they say so.
       Woodcutters take tree seeds (cones, beech and birch seeds, acorns) from chests and plant forest outside.
       Gatherers leave tar alone (list: setting GathererSkip).
1.2.4: награда за убитых изгоев — монеты с тела (5 за уровень, у вожака втрое) и доверие: бонды благодарны.
       Только если убил ты или твой викинг. Размер — настройки OutlawBounty и OutlawBountyTrust.
       Стража: в свою смену сна стражник снова идёт к кровати и спит (раньше стоял и крутился на месте ночью,
       и оба стражника будто работали круглые сутки).
       Над именем рабочего — значок и название профессии, у торговца — монета (настройка JobOverName).
       Окна «Торговать» и «Заказать» больше не закрываются сами сразу после открытия (запас по дальности);
       если окно закрылось, игра говорит почему.
1.2.4: bounty for killed outlaws — coins dropped on the body (5 per level, chiefs triple) and trust from the freeholders.
       Only when you or your Viking killed it. Settings: OutlawBounty, OutlawBountyTrust.
       Guards: on their sleep shift they walk to bed and sleep again (they used to stand and spin at night,
       so both guards seemed to work around the clock).
       Workers show their job (icon and title) above the name, traders a coin (setting JobOverName).
       The Trade and Order windows no longer close right after opening (more distance slack); if a window closes,
       the game tells you why.
1.2.3: убраны регулярные подёргивания игры: списки викингов и знамён по всему миру собираются понемногу, а не разом.
       Стража больше не крутится на месте и не телепортируется по поселению. Шахтёры не лезут за камнями на дно.
       Совместимость с Path of Valheiman: он больше не делает викингов «редкими монстрами» (прыжки за спину, ядовитая
       аура, отражение урона).
       Новая профессия «Рыбак»: с удочкой в сумке ловит рыбу с ближайшего берега (наживка — чаще клюёт).
       «Живых» поселений по умолчанию до 4 (лимит только на «живые», обычных — сколько угодно; на знамени это видно).
1.2.3: removed periodic stutters (world-wide lists of Vikings and banners are built gradually, not in one frame);
       guards no longer spin in place or teleport around the settlement; miners ignore rocks on the sea floor.
       Path of Valheiman compatibility: it no longer turns Vikings into "rare monsters" (blink, poison aura, reflect).
       New job "Fisher": with a fishing rod in the bag, fishes from the nearest shore (matching bait bites more often).
       Up to 4 live settlements by default (the limit counts only live ones; ordinary settlements are unlimited).
1.2.2: исправлена физика посадки спутников — пассажиры не толкают корпус и не «плывут» на палубе.
1.2.2: fixed companion boarding physics — passengers no longer push the hull or swim on deck.

Установка: распакуй архив в BepInEx\plugins (получится папка ValheimNpc). Обновление — просто распакуй поверх
старой версии. Нужны BepInEx и Jotunn.

ValheimNpc.dll — ЯДРО, нужно всегда: сами викинги, найм, характеры, настроение, уровни, реестр (J), окна.

Модули — ставь только нужные, остальные удали из папки. Работают независимо друг от друга, в любом наборе.
Если модулей нет совсем (лежит одно ядро), работает всё сразу — как раньше, одной DLL.

  ValheimNpc.Companions.dll  Спутники: викинги идут с тобой и дерутся рядом, приказы и колесо (Y), панель отряда,
                             корабли и порталы, роли в бою.
  ValheimNpc.Settlement.dll  Своё поселение: знамя в молоте, профессии и работа, дома и кровати, жизнь поселения
                             («живёт без тебя», пиры, стража, просьбы жителей).
  ValheimNpc.Factions.dll    Чужие поселения: хутора вольных бондов и стоянки изгоев, фракции, сдача изгоев,
                             разбойники на дорогах.
  ValheimNpc.Traders.dll     Торговцы: бродячие и в поселении, торговля, заказы, долги.
  ValheimNpc.World.dll       События мира: охотники за головами, поручения, отшельник, поединки, беженцы,
                             кузнец-странник, северное сияние.

Без «Спутников» новые наёмники сразу становятся рабочими; без «Поселения» — только спутниками;
без обоих нанимать некуда (найм выключен).
В мультиплеере набор модулей должен совпадать у сервера и всех игроков.

--------------------------------------------------------------------------------------------------------------

ValheimNpc.dll is the CORE and is always required: the vikings themselves, hiring, traits, mood, levels, roster (J).

Modules are optional and independent — keep only the ones you want. With no modules at all, everything is enabled.

  ValheimNpc.Companions.dll  Companions: vikings follow and fight with you, orders and the Y wheel, squad panel,
                             ships and portals, combat roles.
  ValheimNpc.Settlement.dll  Your settlement: the banner, jobs and work, homes and beds, settlement life.
  ValheimNpc.Factions.dll    Foreign settlements: freeholder farmsteads, outlaw camps, factions, bandits.
  ValheimNpc.Traders.dll     Traders: wandering and settled traders, trading, orders, debts.
  ValheimNpc.World.dll       World events: bounty hunters, quests, the hermit, duels, refugees, the wandering smith,
                             the aurora.

In multiplayer the server and all players must have the same set of modules.
