Одержимость: питомцы не бьют одержимого, бег по Shift у всех, прыжок паука на E
- Охрана питомцев (SnakeControl.IsFoe) и их ИИ (префикс SetAttackTarget) больше не берут одержимого зомби целью. - Shift днём: скорость - ночная ярость (moveSpeedAggroMax), дневная у многих равна шагу. - E у прыгунов (паук) - дальний прыжок, как пробел; подсказка на 13 языках. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
bbe1b52ea4
commit
5b69e0c04f
@@ -220,6 +220,13 @@ namespace NecromancerTome
|
||||
{
|
||||
return;
|
||||
}
|
||||
// Питомцы мода не трогают одержимого зомби (13.10: «питомцы нападают на одержимых») - ни своим
|
||||
// ИИ, ни в ответ на удар; охрана (SnakeControl.IsFoe) его тоже не выбирает.
|
||||
if (Possession.IsPossessed(_attackTarget) && SnakeControl.IsNecroEntity(__instance))
|
||||
{
|
||||
_attackTarget = null;
|
||||
return;
|
||||
}
|
||||
if (!NecroCharmSide.IsCharmed(__instance) ||
|
||||
!NecroCharmSide.IsCharmed(_attackTarget) && !Possession.IsPossessed(_attackTarget))
|
||||
{
|
||||
|
||||
@@ -684,12 +684,20 @@ namespace NecromancerTome
|
||||
z.rotation.x = -_pitch; // наклон головы - для луча удара
|
||||
if (moving)
|
||||
{
|
||||
z.SetMoveForwardWithModifiers(run ? z.GetMoveSpeedAggro() : z.GetMoveSpeed(), 1f, 0f, false);
|
||||
// Бег - ночная скорость ярости (moveSpeedAggroMax) в любое время: днём GetMoveSpeedAggro отдаёт
|
||||
// дневную, а у многих зомби она равна шагу (13.10: «не все зомби бегают по Shift»).
|
||||
z.SetMoveForwardWithModifiers(run ? Mathf.Max(z.GetMoveSpeedAggro(),
|
||||
EffectManager.GetValue(PassiveEffects.RunSpeed, null, z.moveSpeedAggroMax, z)) : z.GetMoveSpeed(), 1f, 0f, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
z.SetMoveForwardWithModifiers(0f, 0f, 0f, false);
|
||||
}
|
||||
// E у прыгунов (паук, jumpMaxDistance от 5 м) - тот же дальний прыжок (13.10: «спайдер не прыгает по E»).
|
||||
if (detonate && z.jumpMaxDistance >= 5f)
|
||||
{
|
||||
jump = true;
|
||||
}
|
||||
if (jump && z.onGround && !z.Jumping)
|
||||
{
|
||||
z.Jumping = true;
|
||||
|
||||
@@ -616,11 +616,12 @@ namespace NecromancerTome
|
||||
|
||||
/// <summary>Враг для змеи: живой EntityEnemy, не питомец (призрачный) и не девиант - зомби под
|
||||
/// баффом Девиатора на стороне некроманта (указание 28.09: «если под бафом девианта, то это
|
||||
/// не враг»). Общее для тревоги у тела и для прицела.</summary>
|
||||
/// не враг»). Общее для тревоги у тела и для прицела. Одержимый зомби - тоже не враг (13.10: «питомцы
|
||||
/// нападают на одержимых»), охрана питомцев выбирает цель отсюда же.</summary>
|
||||
public static bool IsFoe(EntityAlive _e, EntityAlive _snake)
|
||||
{
|
||||
return _e != null && _e != _snake && _e is EntityEnemy && !_e.IsDead() &&
|
||||
!IsNecroEntity(_e) &&
|
||||
!IsNecroEntity(_e) && !Possession.IsPossessed(_e) &&
|
||||
!GhostTraderPatch.ShouldBeGhost(_e) && !NecroCharmSide.IsCharmed(_e);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user