Девять новых испытаний некромантии
Вселиться в зомби и в своего питомца, подорвать одержимого копа, 25 убийств змеёй, войти в чертоги (ChallengeStatAwarded: счёт шлёт NecroChallenges.cs), найти череп (Gather), сок чёрной розы, мод «Мёртвая буря», гримуар медведя (Craft). Тексты намёком, 13 языков. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
47a4b345af
commit
cb2a4f19b4
@@ -978,6 +978,7 @@ namespace NecromancerTome
|
||||
LogCell(world, _origin + KnifeAt, "нож");
|
||||
LogCell(world, _origin + BookAt, "книга");
|
||||
MindControl.Begin(player, spawn, SpawnYaw);
|
||||
NecroChallenges.Award(NecroChallenges.MindPalace);
|
||||
player.ScreenEffectManager?.SetScreenEffect("FadeToBlack", 0f, 1.5f);
|
||||
}
|
||||
else if (Time.time > _deadline)
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace NecromancerTome
|
||||
{
|
||||
/// <summary>
|
||||
/// Испытания вкладки «Некромантия» на действия, а не на крафт (12.10.2026): код мода засчитывает
|
||||
/// событие, игра ведёт счёт сама - цель challenges.xml type="ChallengeStatAwarded" с тем же
|
||||
/// challenge_stat (как ванильное «попить из озера» - AwardChallenge drinkwater). Счёт - у локального
|
||||
/// игрока (QuestEventManager.Current), поэтому звать там, где действие делает он сам.
|
||||
/// </summary>
|
||||
public static class NecroChallenges
|
||||
{
|
||||
public const string PossessZombie = "necroStatPossessZombie";
|
||||
public const string PossessPet = "necroStatPossessPet";
|
||||
public const string LivingBomb = "necroStatLivingBomb";
|
||||
public const string SnakeKill = "necroStatSnakeKill";
|
||||
public const string MindPalace = "necroStatMindPalace";
|
||||
|
||||
public static void Award(string _stat, int _count = 1)
|
||||
{
|
||||
QuestEventManager.Current?.ChallengeAwardCredited(_stat, _count);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -321,6 +321,7 @@ namespace NecromancerTome
|
||||
_zombie.motion = Vector3.zero;
|
||||
}
|
||||
Debug.Log("[NecromancerTome] Possession: вселение в " + (_pet ? "питомца " : "") + _zombie.EntityName + " (" + _zombie.entityId + ")" + (Flying ? ", полёт" : ""));
|
||||
NecroChallenges.Award(_pet ? NecroChallenges.PossessPet : NecroChallenges.PossessZombie);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -555,6 +556,7 @@ namespace NecromancerTome
|
||||
{
|
||||
Debug.Log("[NecromancerTome] Possession: подрыв " + z.EntityName);
|
||||
cop.HandlePrimingDetonator();
|
||||
NecroChallenges.Award(NecroChallenges.LivingBomb);
|
||||
}
|
||||
Ranged(z, ranged, rangedHeld);
|
||||
|
||||
|
||||
@@ -471,7 +471,11 @@ namespace NecromancerTome
|
||||
NecroBurst.Pending.Add(target.entityId);
|
||||
target.DamageEntity(new DamageSourceEntity(EnumDamageSource.External, EnumDamageTypes.Piercing, _player.entityId),
|
||||
99999, false);
|
||||
if (!target.IsDead())
|
||||
if (target.IsDead())
|
||||
{
|
||||
NecroChallenges.Award(NecroChallenges.SnakeKill);
|
||||
}
|
||||
else
|
||||
{
|
||||
NecroBurst.Pending.Remove(target.entityId);
|
||||
NoLoot.Remove(target.entityId);
|
||||
|
||||
Reference in New Issue
Block a user