Bloodlock System
The bloodlock system controls major progression gates in Arc of the Isles.
Once triggered, it locks the player inside an area until all enemies are defeated.
It works alongside FN_DoorwayTrigger and enemy tracking logic.
GIF Preview
Main Responsibilities
- Triggers when the player enters a
FN_DoorwayTriggerzone. - Locks nearby doors to block escape.
- Monitors enemy deaths and unlocks progression.
Core Trigger Logic
public void ActivateBloodlock()
{
if (bl_alreadyTriggered) return;
bl_alreadyTriggered = true;
doorToLock.LockDoor();
foreach (GameObject enemy in enemiesToTrack)
{
if (enemy.TryGetComponent(out FN_NPC_Health health))
{
health.onDeath.AddListener(CheckBloodlockClear);
}
}
}
triggers lock and begins enemy tracking
Unlock Check Logic
private void CheckBloodlockClear()
{
foreach (GameObject enemy in enemiesToTrack)
{
if (enemy != null && enemy.activeInHierarchy)
return;
}
doorToLock.UnlockDoor();
}
unlocks once all enemies are cleared