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

Bloodlock Demo

Main Responsibilities

  • Triggers when the player enters a FN_DoorwayTrigger zone.
  • 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
← Return to Arc of the Isles