Территория торговца убивает одержимого зомби (не питомца): проверка раз в 2 с, подсказка на 13 языках
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
3da4435bca
commit
4e885bf624
@@ -1559,6 +1559,27 @@ namespace NecromancerTome
|
||||
}
|
||||
_bodyCheck = 0.5f;
|
||||
DropAllyTargets(_world, _z);
|
||||
// Территория торговца убивает одержимого зомби (указание 13.10: «пусть убивает одержимых, даже не сам, а
|
||||
// территория, на которой он находится»; питомцев не касается). GetTraderAreaAt - настоящая территория, не
|
||||
// IsWithinTraderArea (её мод подменяет внутри чертогов). Гибель - обычная: дух в тело, сумка мешком.
|
||||
// Раз в TraderCheckTime (указание 13.10: «проверяй реже»), только готовая территория (IsInitialized, как у игры).
|
||||
_traderCheck -= 0.5f;
|
||||
if (!IsPet && _traderCheck <= 0f)
|
||||
{
|
||||
_traderCheck = TraderCheckTime;
|
||||
TraderArea ta = _world.GetTraderAreaAt(World.worldToBlockPos(_z.position + Vector3.up * 0.5f));
|
||||
if (ta != null && ta.IsInitialized)
|
||||
{
|
||||
GameManager.ShowTooltip(_player, Localization.Get("necroPossessTraderArea"));
|
||||
Debug.Log("[NecromancerTome] Possession: " + _z.EntityName + " на территории торговца - гибнет");
|
||||
_z.DamageEntity(new DamageSource(EnumDamageSource.Internal, EnumDamageTypes.Suicide), 99999, false, 1f);
|
||||
if (!_z.IsDead())
|
||||
{
|
||||
_z.Kill(DamageResponse.New(true));
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
bool danger = false;
|
||||
Vector3 body = _player.position;
|
||||
float r2 = SnakeControl.BodyDangerRange * SnakeControl.BodyDangerRange;
|
||||
@@ -2183,6 +2204,8 @@ namespace NecromancerTome
|
||||
public const float UseReach = 6f;
|
||||
/// <summary>Ближе стольких метров зверь чует одержимого и не видя (Patch_EAIRunawayFromEntity_FindEnemy_Possession).</summary>
|
||||
public const float AnimalFearNear = 8f;
|
||||
public const float TraderCheckTime = 2f;
|
||||
static float _traderCheck;
|
||||
static float _promptNext;
|
||||
static string _prompt; // дальше луч не ищет; сама дальность - у блока (GetActivationDistanceSq)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user