Красные трупы горят последние 30 с (рядом с игроком, до 6, обжигают); necroheld - только для своего предмета

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-10 22:32:23 +03:00
co-authored by Claude Opus 5.5
parent 0efa1b8db4
commit bf4b1819da
2 changed files with 168 additions and 3 deletions
+15 -2
View File
@@ -17,6 +17,9 @@ namespace NecromancerTome
public static Vector3 Pos; // метры, в осях модели
public static Vector3 Rot; // градусы, добавка к исходному повороту
public static float Scale = 1f;
/// <summary>Предмет, для которого подбирается посадка (тот, что был в руке при первой команде). Другие предметы
/// не трогаются: 10.10 без этого поворот черепа применился и к книге, взятой следом.</summary>
public static string Item;
/// <summary>Исходные локальные значения детей модели (по экземпляру узла).</summary>
static readonly Dictionary<int, (Vector3 p, Quaternion r, Vector3 s)> _base = new Dictionary<int, (Vector3, Quaternion, Vector3)>();
@@ -27,10 +30,16 @@ namespace NecromancerTome
return pl?.inventory?.GetHoldingItemTransform();
}
public static string HeldName()
{
EntityPlayerLocal pl = GameManager.Instance?.World?.GetPrimaryPlayer();
return pl?.inventory?.holdingItem?.Name;
}
public static void Apply()
{
Transform m = Model();
if (m == null)
if (m == null || (Enabled && HeldName() != Item))
{
return;
}
@@ -123,10 +132,14 @@ namespace NecromancerTome
}
if (cmd != "show")
{
if (!HeldTweak.Enabled)
{
HeldTweak.Item = HeldTweak.HeldName();
}
HeldTweak.Enabled = true;
}
Transform m = HeldTweak.Model();
Out("модель " + (m != null ? m.name : "нет") + ": сдвиг (см) " + HeldTweak.F(HeldTweak.Pos * 100f) + ", поворот " +
Out("предмет " + HeldTweak.Item + ", модель " + (m != null ? m.name : "нет") + ": сдвиг (см) " + HeldTweak.F(HeldTweak.Pos * 100f) + ", поворот " +
HeldTweak.F(HeldTweak.Rot) + ", масштаб " + HeldTweak.F(HeldTweak.Scale) + (HeldTweak.Enabled ? "" : " (выключено)"));
}