맵 기믹들은 GameManager의 글로벌 상태와 유기적으로 연동됩니다.
ADoorControlPanel / AControllableDoor):
ADoorControlPanel이 배터리(CurrentBattery)와 잠금 상태(bIsLocked)를 Tick()에서 직접 관리합니다.OnInteract)하면, 패널은 먼저 GameManager->IsBlackoutActive()를 확인하여 정전 시 작동을 거부합니다.UnlockAllDoors()를 호출합니다.
AStimInjector):
AStimInjector는 단순한 버튼 역할만 합니다.BeginPlay 시 GameManager의 OnStimStateChanged 델리게이트에 자신의 OnGlobalStimStateChanged 함수를 구독(Bind)합니다.GameManager->UseStim()을 호출하고 해당 Effect를 부여받습니다.GameManager가 글로벌 쿨다운을 확인하고 OnStimStateChanged.Broadcast(true)를 방송하면, 맵에 있는 모든 AStimInjector가 이 신호를 받아 UpdateVisuals를 동시에 실행하여 비활성화 상태로 변경됩니다.
GameManager):
BeginCombatPhase 시 확률적으로 발동하는 맵 이벤트 입니다.StartBlackoutEvent()가 호출되면, StartGame()에서 ManagedLight/SpecialMesh 태그로 미리 찾아둔 컴포넌트 배열을 순회하며 조명을 끄고 머티리얼을 변경합니다.AllControlPanelsInLevel 배열을 순회하며 UnlockAllDoors()를 강제 호출하여 모든 문을 엽니다.