Ремонтник: сначала то, на что есть материал; ячейка нехватки видна всегда

- Блоки без материалов откладываются (_lacking) и не держат очередь;
  к ним ремонтник возвращается, когда чинить больше нечего, и чинит, как
  только материал появился. Зона не останавливается, пока они есть.
- Кнопка жёлтая, только когда кроме ждущих чинить нечего; ячейка «не
  хватает» видна, пока хоть один блок ждёт.
- «Запустить» повторно отпускает старые взятые блоки (Claimed) - раньше
  они не попадали в обход заново.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-24 15:47:13 +03:00
co-authored by Claude Opus 5.5
parent 3d08511e5b
commit 5ebd09dacd
4 changed files with 82 additions and 19 deletions
+3 -2
View File
@@ -8,7 +8,8 @@ namespace NecromancerTome
/// нужен в данный момент? А то не угадать», «Пусть показывает в виде ячейки с материалом», «И восклицательный знак. Чтобы
/// было понятно что именно это требуется»). Ячейка дописана в окно игры windowBagStorage (Config/XUi_InGame/windows.xml)
/// под блоком лимита урн: иконка материала, сколько доложить в ящики с нитями, красный «!». Только показ - не ячейка
/// сумки, взять из неё нечего. Видна у ремонтника, пока он ждёт материал (TEFeatureCinerarium.LackType/LackCount).
/// сумки, взять из неё нечего. Видна у ремонтника, пока хоть один блок ждёт материал (TEFeatureCinerarium.LackType/LackCount) - и когда он чинит
/// остальное.
/// </summary>
[Preserve]
public class XUiC_NecroRepairNeed : XUiController
@@ -44,7 +45,7 @@ namespace NecromancerTome
{
_nextRefresh = Time.time + 0.5f;
TEFeatureCinerarium urn = CinerariumContents.Urn;
ItemClass ic = urn != null && urn.IsRepairer && urn.ZoneLacking && urn.LackType > 0 ? ItemClass.GetForId(urn.LackType) : null;
ItemClass ic = urn != null && urn.IsRepairer && urn.LackType > 0 ? ItemClass.GetForId(urn.LackType) : null;
ViewComponent.IsVisible = ic != null;
if (ic == null)
{