Руки одержимого: кулак в момент урона зомби, сжатие под угол рук 45°, скрыты только ячейки пояса персонажа
- Удар рук откладывается на замеренную задержку урона зомби (ItemActionMelee.OnHoldingUpdate) минус ход кулака. - Руки сжимаются по экранным осям как при FOV 45 (как у персонажа), сдвиг - родной -1.7. - От первого лица прячется только windowToolbelt: полоски персонажа (та же группа окон) остаются. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
7b63f91a3b
commit
f03c018204
@@ -368,6 +368,7 @@ namespace NecromancerTome
|
||||
FirstPerson = false;
|
||||
HideBody(null);
|
||||
FpArms.Hide(_player);
|
||||
ShowPlayerBelt(true);
|
||||
RatLoot.CloseIfViewing();
|
||||
WolfBag.CloseWindow();
|
||||
RatPhase.Stop(GameManager.Instance?.World, Zombie, "выход из одержимости");
|
||||
@@ -596,13 +597,12 @@ namespace NecromancerTome
|
||||
if (FirstPerson)
|
||||
{
|
||||
FpArms.Show(_player, z);
|
||||
// Пояс персонажа в виде от первого лица скрыт (13.10); обратно игра откроет его сама (OnHUD).
|
||||
_player.PlayerUI?.windowManager.Close(SnakeControl.ToolbeltWindow);
|
||||
}
|
||||
else
|
||||
{
|
||||
HideBody(null);
|
||||
FpArms.Hide(_player);
|
||||
ShowPlayerBelt(true);
|
||||
}
|
||||
Debug.Log("[NecromancerTome] Possession: вид от " + (FirstPerson ? "первого" : "третьего") + " лица");
|
||||
}
|
||||
@@ -845,7 +845,7 @@ namespace NecromancerTome
|
||||
if (z.Attack(false))
|
||||
{
|
||||
z.Attack(true);
|
||||
FpArms.Punch(); // руки от первого лица бьют вместе с зомби (13.10)
|
||||
FpArms.QueuePunch(); // руки от первого лица бьют вместе с зомби (13.10), кулак - в момент урона
|
||||
if (IsPet && BearControl.Is(z))
|
||||
{
|
||||
BearControl.Smash(world, _player, z); // удар лапой и по блоку (решено 09.10)
|
||||
@@ -2110,6 +2110,18 @@ namespace NecromancerTome
|
||||
_flyZoomHeld = false;
|
||||
}
|
||||
|
||||
/// <summary>Ячейки пояса персонажа (окно windowToolbelt) - скрыты в виде от первого лица (указание 13.10: «пояс игрока
|
||||
/// нужно прятать», у зомби свой пояс). Только это окно: группа toolbelt держит и полоски здоровья и сытости персонажа
|
||||
/// (тест 13.10 - пропали вместе с поясом). Ставится каждый кадр - игра может показать окно снова.</summary>
|
||||
static void ShowPlayerBelt(bool _show)
|
||||
{
|
||||
XUiV_Window w = _player?.PlayerUI?.xui?.GetWindow("windowToolbelt");
|
||||
if (w != null && w.IsVisible != _show)
|
||||
{
|
||||
w.IsVisible = _show;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Тело одержимого в виде от первого лица - только тень (тест 13.10: изнутри видно тело, у паука на
|
||||
/// бегу лапы и череп в кадре; сжатие одной головы не спасало). Видимость - дело своего экрана: другие игроки
|
||||
/// рисуют этого зомби сами и видят его как обычно; так же игра прячет тело персонажа от первого лица.
|
||||
@@ -2171,6 +2183,8 @@ namespace NecromancerTome
|
||||
: Vector3.Lerp(_fpEye, want, 1f - Mathf.Exp(-FpSmooth * Time.deltaTime));
|
||||
HideBody(z);
|
||||
_camera.SetPositionAndRotation(_fpEye, rot);
|
||||
FpArms.Tick(_player?.playerCamera);
|
||||
ShowPlayerBelt(false);
|
||||
return;
|
||||
}
|
||||
Vector3 eye = anchor + Vector3.up * CamUp - rot * Vector3.forward * CamBack;
|
||||
|
||||
Reference in New Issue
Block a user