Ремонтник: в «Содержимом» урны ячейка с недостающим материалом и «!»

Пока ремонтник ждёт материал, под блоком лимита урн видна ячейка: иконка
материала, сколько доложить в ящики с нитями, красный «!» и подпись.
Только показ, не ячейка сумки.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-24 15:32:22 +03:00
co-authored by Claude Opus 5.5
parent c208e3b9f9
commit 7452eba0d9
6 changed files with 83 additions and 0 deletions
+1
View File
@@ -187,6 +187,7 @@ necroCinerariumTrunk,UI,XUI,,,,Contents,,Inhalt,Contenido,Contenu,Contenuto,中
necroCinerariumPlaced,UI,XUI,,,,Cineraria placed: {0},,Aufgestellte Cinerarien: {0},Cinerarios colocados: {0},Cinéraires posés : {0},Cinerari posati: {0},設置した骨壺:{0},설치한 유골함: {0},Postawione cineraria: {0},Cinerários colocados: {0},Всего цинерариев: {0},Kurulan küllükler: {0},已放置骨灰瓮:{0},已放置骨灰甕:{0} necroCinerariumPlaced,UI,XUI,,,,Cineraria placed: {0},,Aufgestellte Cinerarien: {0},Cinerarios colocados: {0},Cinéraires posés : {0},Cinerari posati: {0},設置した骨壺:{0},설치한 유골함: {0},Postawione cineraria: {0},Cinerários colocados: {0},Всего цинерариев: {0},Kurulan küllükler: {0},已放置骨灰瓮:{0},已放置骨灰甕:{0}
necroCinerariumAvailable,UI,XUI,,,,Available to place: {0},,Noch aufstellbar: {0},Disponibles para colocar: {0},Encore disponibles : {0},Ancora disponibili: {0},まだ置ける骨壺:{0},더 설치 가능: {0},Można jeszcze postawić: {0},Ainda disponíveis: {0},Доступно цинерариев: {0},Daha kurulabilir: {0},还可放置:{0},還可放置:{0} necroCinerariumAvailable,UI,XUI,,,,Available to place: {0},,Noch aufstellbar: {0},Disponibles para colocar: {0},Encore disponibles : {0},Ancora disponibili: {0},まだ置ける骨壺:{0},더 설치 가능: {0},Można jeszcze postawić: {0},Ainda disponíveis: {0},Доступно цинерариев: {0},Daha kurulabilir: {0},还可放置:{0},還可放置:{0}
necroCinerariumNext,UI,XUI,,,,One more unlocks after {0} more dead put to rest,,Eine weitere nach {0} weiteren zur Ruhe gebrachten Toten,Otra más tras dar descanso a {0} muertos más,Une de plus après {0} morts de plus mis au repos,Un'altra dopo aver messo a riposo altri {0} morti,あと{0}体の死者を眠らせると、もう1つ置ける,망자를 {0}명 더 안식시키면 하나 더 열린다,Kolejne po ukojeniu jeszcze {0} zmarłych,Mais uma após pôr em descanso mais {0} mortos,До разблокировки ещё одного: упокоить {0},{0} ölü daha huzura erdirince bir tane daha,再让{0}名死者安息即可解锁下一座,再讓{0}名死者安息即可解鎖下一座 necroCinerariumNext,UI,XUI,,,,One more unlocks after {0} more dead put to rest,,Eine weitere nach {0} weiteren zur Ruhe gebrachten Toten,Otra más tras dar descanso a {0} muertos más,Une de plus après {0} morts de plus mis au repos,Un'altra dopo aver messo a riposo altri {0} morti,あと{0}体の死者を眠らせると、もう1つ置ける,망자를 {0}명 더 안식시키면 하나 더 열린다,Kolejne po ukojeniu jeszcze {0} zmarłych,Mais uma após pôr em descanso mais {0} mortos,До разблокировки ещё одного: упокоить {0},{0} ölü daha huzura erdirince bir tane daha,再让{0}名死者安息即可解锁下一座,再讓{0}名死者安息即可解鎖下一座
necroCinerariumRepairNeed,UI,XUI,,,,"Not enough for repairs - put it in a box with a thread to the urn",,"Fehlt für Reparaturen - in eine Kiste mit Faden zur Urne legen","Falta para reparar: ponlo en un cofre con hilo a la urna","Manque pour réparer - mettez-le dans un coffre relié à l'urne","Manca per le riparazioni: mettilo in una cassa con filo verso l'urna",修理に足りない - 骨壺と糸でつながった箱に入れる,수리에 부족함 - 유골함과 실로 이어진 상자에 넣기,"Brakuje do napraw - włóż do skrzyni z nicią do urny","Falta para reparos - coloque num baú com fio até a urna","Не хватает для ремонта - положите в ящик с нитью к урне","Onarım için eksik - urneye iplikle bağlı sandığa koyun",修理所缺 - 放进与骨灰瓮有丝线相连的箱子,修理所缺 - 放進與骨灰甕有絲線相連的箱子
blockcommand_TEFeatureCinerarium:bounds_show,blocks,Block,,,,Show Zone,,Zone anzeigen,Mostrar zona,Afficher la zone,Mostra zona,範囲を表示,구역 표시,Pokaż strefę,Mostrar zona,Показать зону,Bölgeyi göster,显示区域,顯示區域 blockcommand_TEFeatureCinerarium:bounds_show,blocks,Block,,,,Show Zone,,Zone anzeigen,Mostrar zona,Afficher la zone,Mostra zona,範囲を表示,구역 표시,Pokaż strefę,Mostrar zona,Показать зону,Bölgeyi göster,显示区域,顯示區域
blockcommand_bounds_show,blocks,Block,,,,Show Zone,,Zone anzeigen,Mostrar zona,Afficher la zone,Mostra zona,範囲を表示,구역 표시,Pokaż strefę,Mostrar zona,Показать зону,Bölgeyi göster,显示区域,顯示區域 blockcommand_bounds_show,blocks,Block,,,,Show Zone,,Zone anzeigen,Mostrar zona,Afficher la zone,Mostra zona,範囲を表示,구역 표시,Pokaż strefę,Mostrar zona,Показать зону,Bölgeyi göster,显示区域,顯示區域
blockcommand_TEFeatureCinerarium:bounds_hide,blocks,Block,,,,Hide Zone,,Zone ausblenden,Ocultar zona,Masquer la zone,Nascondi zona,範囲を非表示,구역 숨기기,Ukryj strefę,Ocultar zona,Скрыть зону,Bölgeyi gizle,隐藏区域,隱藏區域 blockcommand_TEFeatureCinerarium:bounds_hide,blocks,Block,,,,Hide Zone,,Zone ausblenden,Ocultar zona,Masquer la zone,Nascondi zona,範囲を非表示,구역 숨기기,Ukryj strefę,Ocultar zona,Скрыть зону,Bölgeyi gizle,隐藏区域,隱藏區域
1 Key File Type UsedInMainMenu NoTranslate KeepLoaded english Context / Alternate Text german spanish french italian japanese koreana polish brazilian russian turkish schinese tchinese
187 necroCinerariumPlaced UI XUI Cineraria placed: {0} Aufgestellte Cinerarien: {0} Cinerarios colocados: {0} Cinéraires posés : {0} Cinerari posati: {0} 設置した骨壺:{0} 설치한 유골함: {0} Postawione cineraria: {0} Cinerários colocados: {0} Всего цинерариев: {0} Kurulan küllükler: {0} 已放置骨灰瓮:{0} 已放置骨灰甕:{0}
188 necroCinerariumAvailable UI XUI Available to place: {0} Noch aufstellbar: {0} Disponibles para colocar: {0} Encore disponibles : {0} Ancora disponibili: {0} まだ置ける骨壺:{0} 더 설치 가능: {0} Można jeszcze postawić: {0} Ainda disponíveis: {0} Доступно цинерариев: {0} Daha kurulabilir: {0} 还可放置:{0} 還可放置:{0}
189 necroCinerariumNext UI XUI One more unlocks after {0} more dead put to rest Eine weitere nach {0} weiteren zur Ruhe gebrachten Toten Otra más tras dar descanso a {0} muertos más Une de plus après {0} morts de plus mis au repos Un'altra dopo aver messo a riposo altri {0} morti あと{0}体の死者を眠らせると、もう1つ置ける 망자를 {0}명 더 안식시키면 하나 더 열린다 Kolejne po ukojeniu jeszcze {0} zmarłych Mais uma após pôr em descanso mais {0} mortos До разблокировки ещё одного: упокоить {0} {0} ölü daha huzura erdirince bir tane daha 再让{0}名死者安息即可解锁下一座 再讓{0}名死者安息即可解鎖下一座
190 necroCinerariumRepairNeed UI XUI Not enough for repairs - put it in a box with a thread to the urn Fehlt für Reparaturen - in eine Kiste mit Faden zur Urne legen Falta para reparar: ponlo en un cofre con hilo a la urna Manque pour réparer - mettez-le dans un coffre relié à l'urne Manca per le riparazioni: mettilo in una cassa con filo verso l'urna 修理に足りない - 骨壺と糸でつながった箱に入れる 수리에 부족함 - 유골함과 실로 이어진 상자에 넣기 Brakuje do napraw - włóż do skrzyni z nicią do urny Falta para reparos - coloque num baú com fio até a urna Не хватает для ремонта - положите в ящик с нитью к урне Onarım için eksik - urneye iplikle bağlı sandığa koyun 修理所缺 - 放进与骨灰瓮有丝线相连的箱子 修理所缺 - 放進與骨灰甕有絲線相連的箱子
191 blockcommand_TEFeatureCinerarium:bounds_show blocks Block Show Zone Zone anzeigen Mostrar zona Afficher la zone Mostra zona 範囲を表示 구역 표시 Pokaż strefę Mostrar zona Показать зону Bölgeyi göster 显示区域 顯示區域
192 blockcommand_bounds_show blocks Block Show Zone Zone anzeigen Mostrar zona Afficher la zone Mostra zona 範囲を表示 구역 표시 Pokaż strefę Mostrar zona Показать зону Bölgeyi göster 显示区域 顯示區域
193 blockcommand_TEFeatureCinerarium:bounds_hide blocks Block Hide Zone Zone ausblenden Ocultar zona Masquer la zone Nascondi zona 範囲を非表示 구역 숨기기 Ukryj strefę Ocultar zona Скрыть зону Bölgeyi gizle 隐藏区域 隱藏區域
+13
View File
@@ -282,6 +282,19 @@
<label depth="7" name="next" pos="10,-50" width="404" height="22" font_size="20" color="200,200,205" /> <label depth="7" name="next" pos="10,-50" width="404" height="22" font_size="20" color="200,200,205" />
</rect> </rect>
</append> </append>
<!-- Чего не хватает ремонтнику (24.10.2026): ячейка с материалом и «!» под блоком лимита урн, только показ
(HarmonySrc/CinerariumRepairNeed.cs). -->
<append xpath="/windows/window[@name='windowBagStorage']">
<rect name="necroRepairNeed" pos="87,-132" width="420" height="75" depth="6" controller="NecromancerTome.NecroRepairNeed, NecromancerHarmony">
<sprite depth="6" pos="0,0" width="420" height="75" color="0,0,0,190" sprite="menu_empty2px" type="sliced" />
<sprite depth="7" pos="0,0" width="75" height="75" sprite="menu_empty3px" color="[black]" type="sliced" fillcenter="false" />
<sprite depth="7" pos="2,-2" width="71" height="71" sprite="menu_empty3px" color="200,40,40,255" type="sliced" fillcenter="false" />
<sprite depth="8" name="icon" pos="37,-37" width="64" height="64" atlas="ItemIconAtlas" pivot="center" foregroundlayer="true" />
<label depth="9" name="excl" pos="5,-1" width="20" height="34" font_size="34" color="230,40,40,255" text="!" effect="outline" />
<label depth="9" name="count" pos="4,-50" width="66" height="22" font_size="22" justify="right" color="[white]" effect="outline" />
<label depth="7" pos="85,-14" width="330" height="48" font_size="20" color="[white]" text_key="necroCinerariumRepairNeed" />
</rect>
</append>
<!-- Вкладка «Некромантия» (ui_display.xml): в рюкзаке и на верстаке 10 вкладок вместо 9 - шаг значков 43 -> 39, значки прежние (28). --> <!-- Вкладка «Некромантия» (ui_display.xml): в рюкзаке и на верстаке 10 вкладок вместо 9 - шаг значков 43 -> 39, значки прежние (28). -->
<set xpath="/windows/window[@name='windowCraftingList']//grid[@name='categories']/@cols">10</set> <set xpath="/windows/window[@name='windowCraftingList']//grid[@name='categories']/@cols">10</set>
<set xpath="/windows/window[@name='windowCraftingList']//grid[@name='categories']/@cell_width">39</set> <set xpath="/windows/window[@name='windowCraftingList']//grid[@name='categories']/@cell_width">39</set>
+64
View File
@@ -0,0 +1,64 @@
using UnityEngine;
using UnityEngine.Scripting;
namespace NecromancerTome
{
/// <summary>
/// Чего не хватает ремонтнику (24.10.2026, пользователь: «сделать в его урне блок текста, который показывает какой материал
/// нужен в данный момент? А то не угадать», «Пусть показывает в виде ячейки с материалом», «И восклицательный знак. Чтобы
/// было понятно что именно это требуется»). Ячейка дописана в окно игры windowBagStorage (Config/XUi_InGame/windows.xml)
/// под блоком лимита урн: иконка материала, сколько доложить в ящики с нитями, красный «!». Только показ - не ячейка
/// сумки, взять из неё нечего. Видна у ремонтника, пока он ждёт материал (TEFeatureCinerarium.LackType/LackCount).
/// </summary>
[Preserve]
public class XUiC_NecroRepairNeed : XUiController
{
XUiV_Sprite _icon;
XUiV_Label _count;
float _nextRefresh;
public override void Init()
{
base.Init();
_icon = GetChildById("icon")?.ViewComponent as XUiV_Sprite;
_count = GetChildById("count")?.ViewComponent as XUiV_Label;
}
public override void OnOpen()
{
base.OnOpen();
_nextRefresh = 0f;
Refresh();
}
public override void Update(float _dt)
{
base.Update(_dt);
if (Time.time >= _nextRefresh)
{
Refresh();
}
}
void Refresh()
{
_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;
ViewComponent.IsVisible = ic != null;
if (ic == null)
{
return;
}
if (_icon != null)
{
_icon.SpriteName = ic.GetIconName();
_icon.Color = ic.GetIconTint();
}
if (_count != null)
{
_count.Text = urn.LackCount.ToString();
}
}
}
}
+5
View File
@@ -75,6 +75,9 @@ namespace NecromancerTome
public int ZonePressedBy = -1; public int ZonePressedBy = -1;
/// <summary>Не хватает материалов / ящик полон - кнопка мигает жёлтым.</summary> /// <summary>Не хватает материалов / ящик полон - кнопка мигает жёлтым.</summary>
public bool ZoneLacking; public bool ZoneLacking;
/// <summary>Ремонтник: какого материала и сколько не хватило последней проверке (ячейка в «Содержимом»,
/// XUiC_NecroRepairNeed). Не сохраняется.</summary>
public int LackType, LackCount;
public static float RepairSeconds = 2.5f; public static float RepairSeconds = 2.5f;
public static float LootSeconds = 1.5f; public static float LootSeconds = 1.5f;
@@ -403,6 +406,8 @@ namespace NecromancerTome
} }
if (have < n) if (have < n)
{ {
LackType = iv.type;
LackCount = n - have;
return false; return false;
} }
} }
Binary file not shown.
Binary file not shown.