Режим змеи для Ножа некроманта и чёрный разрыв

Ночью по R с ножом - дух змеи: тело падает (-95% HP), игрок управляет
призрачной змеёй от первого лица. Свободный ход по миру (свой наблюдатель
чанков, отрисовка, звук, спавн и спящие считаются от змеи), прыжок,
атака на ЛКМ - рывок сквозь препятствия и чёрный разрыв, ПКМ - выбраться
из текстур. Тёмное чутьё, тревога у тела, отсчёт в радиации края карты,
пурпурный фильтр зрения (necrovision). Утром змея развеивается.

Чёрный разрыв (NecroBurst.cs): клон частиц confetti в чёрном, команда
necroburst. Проверено в игре 28.09.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-09-28 15:31:37 +03:00
co-authored by Claude Opus 5.5
parent 4cdd315b98
commit 6ff76d174e
13 changed files with 2289 additions and 1 deletions
+15
View File
@@ -116,6 +116,21 @@
It reads green/energy rather than "necromantic purple", but it's a real full-body
glow, not just a floating cloud; RemoveParticleEffectFromEntity on death/removal so it
doesn't linger on the corpse. -->
<!-- Зрение змеи: враг рядом со змеёй светится по контуру гнилостно-зелёным (указание
2026-09-28: «подсвети, а не перекрась», «по контуру, особенно ярким»). То же свечение
RadiatedParticlesOnMesh, что у девиантов и Жертвы; цвет, размер и яркость задаёт
HarmonySrc/ParticlePatch.cs (SnakeSightGlow). Вешает и снимает SnakeControl.Sense;
оставшиеся после сейва снимает SnakeMode при следующей загрузке. -->
<buff name="buffNecroSnakeSight" hidden="true">
<stack_type value="ignore"/>
<duration value="0"/>
<effect_group>
<triggered_effect trigger="onSelfBuffStart" action="AttachParticleEffectToEntity" particle="RadiatedParticlesOnMesh" local_offset="0,0.75,0"/>
<triggered_effect trigger="onSelfBuffRemove" action="RemoveParticleEffectFromEntity" particle="RadiatedParticlesOnMesh"/>
<triggered_effect trigger="onSelfDied" action="RemoveParticleEffectFromEntity" particle="RadiatedParticlesOnMesh"/>
</effect_group>
</buff>
<buff name="buffNecroDeviatorCharm" hidden="true">
<stack_type value="ignore"/>
<duration value="0"/>