feat(core/slice-1): Begin() sets EnterTunnel pending for portal/login/death entry; all sequencer tests pass

EnterTunnel fires on the first Tick after Begin for Portal/Login/Death kinds
(which enter directly at Tunnel). Already implemented in Task 1.2 via
_enterTunnelPending = _state == TeleportAnimState.Tunnel.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-06-21 20:01:17 +02:00
parent c3d6eccf51
commit 8b5002791a

View file

@ -452,4 +452,19 @@ public sealed class TeleportAnimSequencerTests
Assert.False(seq.IsActive);
Assert.Equal(TeleportAnimState.Off, seq.State);
}
// --- Task 1.6: EnterTunnel fired for Portal path via Begin() ---
[Fact]
public void Portal_EmitsEnterTunnel_OnFirstTick()
{
// Portal begins directly in Tunnel; EnterTunnel signals "world is now hidden".
var seq = new TeleportAnimSequencer();
seq.Begin(TeleportEntryKind.Portal);
// First tick: should emit PlayEnterSound AND EnterTunnel (both on entry)
var (_, evts) = seq.Tick(0f, worldReady: false);
Assert.Contains(TeleportAnimEvent.PlayEnterSound, evts);
Assert.Contains(TeleportAnimEvent.EnterTunnel, evts);
}
}