feat(CS-P3): throne registration via Sinior/Crown talk (223/216) after defenses down + both switches held; reachable defense positions
Some checks failed
.NET Core / build (push) Has been cancelled

This commit is contained in:
Acentech Dev
2026-07-15 02:49:27 +03:00
parent db8bdd394f
commit 72ebc96e28
4 changed files with 122 additions and 30 deletions

View File

@@ -30,12 +30,14 @@ public sealed class CastleSiegeEventPlugIn : IPeriodicTaskPlugIn, ISupportCustom
private const int SwitchHoldRange = 3;
// Castle defenses spawned at siege start — destructibles the attackers must break: (number, x, y).
// Positions are in the throne-room area (near the crown ~176,212 and the switches ~167-184,194-195),
// where players can actually reach and hit them (the earlier statue spot 170/182,206 was confirmed reachable).
private static readonly (short Number, byte X, byte Y)[] DefenseSpawns =
{
(CastleGateNumber, 160, 180),
(CastleGateNumber, 190, 180),
(GuardianStatueNumber, 170, 206),
(GuardianStatueNumber, 182, 206),
(CastleGateNumber, 168, 200),
(CastleGateNumber, 184, 200),
(GuardianStatueNumber, 170, 208),
(GuardianStatueNumber, 182, 208),
};
// Crown Switch positions on Valley of Loren (from the map init) — held by standing on them: (number, x, y).
@@ -209,12 +211,6 @@ public sealed class CastleSiegeEventPlugIn : IPeriodicTaskPlugIn, ISupportCustom
context.SetSwitchHolder(switchNumber, holder);
}
var captured = context.EvaluateCapture();
if (captured is not null)
{
await AnnounceAsync(gameContext, $"Guild '{captured}' has CAPTURED THE THRONE! They win the castle if they hold it until the siege ends.").ConfigureAwait(false);
}
}
catch (Exception ex)
{