Урны: прозрачные духи, понятные отказы в постановке, 50 убийств на урну

- Духи снова полупрозрачные (Solid = false) - поза принята.
- Отказ в постановке - с цифрами: пересечение зон (сколько блоков до соседнего сборщика,
  зоны 5x5); лимит - сколько стоит из скольких, сколько упокоено и сколько ещё до следующей,
  с обоснованием (сила некроманта держит духов). Логист/рабочий/ремонтник/лутер не в лимите.
- Лимит сборщиков: одна урна на 50 упокоенных (было 200); описание урны - 13 языков.
- Команда necrocanplace - текст отказа для клетки.

Проверено в игре: подсказка о пересечении (2 блока, 5x5), логист рядом - можно.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-18 18:50:46 +03:00
co-authored by Claude Opus 5.5
parent eaa6b3bbb3
commit 05dca19852
6 changed files with 38 additions and 11 deletions
+13
View File
@@ -236,6 +236,10 @@ namespace NecromancerTome
Out("necrosmooth: краевых клеток " + edge.Count);
break;
}
case "necrocanplace":
// necrocanplace блок x y z - подсказка, почему урну сюда нельзя (или «можно»)
Out("necrocanplace: " + (TEFeatureCinerarium.PlacementRefusal(P(_params, 1), Block.GetBlockByName(_params[0], true)) ?? "можно"));
break;
case "necrogod": God(pl, _params.Count == 0 || _params[0] != "off"); break;
case "necroclick":
// necroclick 0|1 [x y z] - по блоку под прицелом или по указанной клетке (луч не всегда попадает в низкий череп).
@@ -615,4 +619,13 @@ namespace NecromancerTome
public override bool AllowedInMainMenu => false;
public override void Execute(List<string> _params, CommandSenderInfo _senderInfo) => NecroDev.Run("necrosmooth", _params);
}
[Preserve]
public class ConsoleCmdNecroCanPlace : ConsoleCmdAbstract
{
public override string[] getCommands() => new[] { "necrocanplace" };
public override string getDescription() => "NecromancerTome (разработка): почему урну нельзя поставить: блок x y z";
public override bool AllowedInMainMenu => false;
public override void Execute(List<string> _params, CommandSenderInfo _senderInfo) => NecroDev.Run("necrocanplace", _params);
}
}