Одержимость: плевок мутанта на E, ошибочный подрыв мутанта убран

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-13 11:57:00 +03:00
co-authored by Claude Opus 5.5
parent 37ad57f1bc
commit bbe1b52ea4
5 changed files with 20 additions and 3 deletions
+12 -2
View File
@@ -562,7 +562,8 @@ namespace NecromancerTome
Crouching = input != null && !gui && (input.Crouch.IsPressed || _crouchToggled);
// E у питомца больше не отзыв (указание 08.10: «R - всегда вернуться в тело у всех одержимых,
// E - для других целей»). Отозвать питомца - E с книгой в руке, уже из тела.
if (detonate && z is EntityZombieCop cop && !cop.isPrimed)
// Мутант тоже EntityZombieCop, но в игре не взрывается (ExplodeHealthThreshold 0) - у него E плевок.
if (detonate && z is EntityZombieCop cop && !cop.isPrimed && PossessionPowers.Current != PossessionPowers.Kind.Mutant)
{
Debug.Log("[NecromancerTome] Possession: подрыв " + z.EntityName);
cop.HandlePrimingDetonator();
@@ -590,6 +591,9 @@ namespace NecromancerTome
PossessionPowers.Scream(_player, z);
}
break;
case PossessionPowers.Kind.Mutant:
Ranged(z, detonate, detonate); // E - плевок веером вокруг себя (указание 13.10)
break;
default:
Ranged(z, ranged, rangedHeld);
break;
@@ -1423,6 +1427,9 @@ namespace NecromancerTome
case PossessionPowers.Kind.Screamer:
text += ", " + Localization.Get("necroPossessHintScream");
break;
case PossessionPowers.Kind.Mutant:
text += ", " + Localization.Get("necroPossessHintSpitE");
break;
default:
if (_hasRanged)
{
@@ -1465,7 +1472,7 @@ namespace NecromancerTome
{
text += ", " + Localization.Get("necroPossessHintLeap");
}
if (_z is EntityZombieCop)
if (_z is EntityZombieCop && PossessionPowers.Current != PossessionPowers.Kind.Mutant)
{
text += ", " + Localization.Get("necroPossessHintDetonate");
}
@@ -1756,6 +1763,9 @@ namespace NecromancerTome
case PossessionPowers.Kind.Screamer:
_out[n++] = new Cooldown { Rmb = false, Left = PossessionPowers.HordeCooldownLeft, Total = PossessionPowers.HordeCooldown };
break;
case PossessionPowers.Kind.Mutant:
_out[n++] = new Cooldown { Rmb = false, Left = Mathf.Max(0f, _rNext - now), Total = _rCooldown };
break;
default:
if (_hasRanged)
{