necrourn budget [N]: учёт и лимит общего бюджета шагов урн; necrourn info - состояние работы урны

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-23 16:42:44 +03:00
co-authored by Claude Opus 5.5
parent ecae8eb6a7
commit 054897eb78
4 changed files with 60 additions and 5 deletions
+10 -1
View File
@@ -741,6 +741,15 @@ namespace NecromancerTome
bool _pending;
float _actAt;
/// <summary>Состояние работы для necrourn info (23.10: «стою в 19 м - не работают», проба находит урожай, дела нет).</summary>
public string WorkState()
{
float now = Time.time;
return "дело ждёт " + _pending + (_pending ? " (через " + (_actAt - now).ToString("0.0") + " с)" : "") +
", следующий шаг через " + (_nextWork - now).ToString("0.0") + " с, прилив " + CinerariumLoad.Tide +
", дух " + (_genie != null);
}
/// <summary>Работа духа (CinerariumWork): раз в StepSeconds одно дело, только с черепом и только на сервере.
/// Сначала пробный шаг (ничего не меняет) - куда лететь; само дело - когда дух долетел и машет руками. Если за это
/// время что-то поменялось, настоящий шаг сделает то, что нужно на тот момент.</summary>
@@ -773,7 +782,7 @@ namespace NecromancerTome
_nextWork = Time.time + CinerariumWork.StepSeconds;
return;
}
if (Time.time < _nextWork || !CinerariumLoad.TryTakeStep())
if (Time.time < _nextWork || !CinerariumLoad.TryTakeStep(ToWorldPos()))
{
return; // не время или бюджет кадра на дела духов выбран - в следующем кадре
}