P14-02: Split warps into guest FRONT and staff BACK service warp (A08)

The FRONT Mana warp is guest-only: its connectors carry the "!staff" access,
which path access checks treat as open to everyone except staff. A new 2x2
BACK service warp links only to other service warps for staff, with A07
values. Registry and palette now hold 25 definitions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Takeshi
2026-10-20 13:48:14 +09:00
co-authored by Claude Opus 5.5
parent 619b5e07ed
commit 8917c190cf
16 changed files with 102 additions and 25 deletions
+5 -1
View File
@@ -2099,7 +2099,11 @@ func _edge_meets_vertical_policy(from_cell: Vector3i, edge: Dictionary) -> bool:
func _edge_is_accessible(edge: Dictionary, allowed_access_ids: Array[StringName]) -> bool:
var required_access: StringName = edge[&"access_id"]
if not required_access.is_empty() and required_access not in allowed_access_ids:
# "!id" is open to everyone except actors that carry id (guest-only warp).
if String(required_access).begins_with("!"):
if StringName(String(required_access).substr(1)) in allowed_access_ids:
return false
elif not required_access.is_empty() and required_access not in allowed_access_ids:
return false
var connector_id: StringName = edge[&"connector_id"]
if connector_id.is_empty():