Portal made visible: cyan beacon pillar + always-on RoomExplore steer prompt (DR-046 follow-up)
The room-exit portal was invisible in the first playtest - players loitered out the 30s ExploreGrace timeout. Adds RegionMath.ExpeditionPortalPos as the single client-derivable portal-position authority (HUD prompt + beacon can't drift), a pooled breathing HDR pillar in CombatFeedbackSystem shown only during RoomExplore, and an in-range/out-of-range two-stage prompt. Also repairs the comment-swallowed _portalMat initialization (NRE in OnStartRunning killed ALL combat feedback each session and auto-paused the editor via Error Pause). 456/456 EditMode. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -53,7 +53,18 @@ namespace ProjectM.Simulation
|
||||
return baseCenter + new float3(ExpeditionOffsetX + subSlot * RoomStrideX, 0f, 0f);
|
||||
}
|
||||
|
||||
/// <summary>World-space origin of <paramref name="region"/>, given the base center (BaseGridMath.PlotCenter).
|
||||
/// <summary>World-space position of the room-exit PORTAL for sub-slot <paramref name="subSlot"/> — the single
|
||||
/// client-derivable authority the HUD prompt AND the presentation beacon both resolve through (DR-046), so they
|
||||
/// can't drift. = the room origin nudged by <see cref="Tuning.PortalOffsetZ"/> in Z.</summary>
|
||||
public static float3 ExpeditionPortalPos(float3 baseCenter, byte subSlot)
|
||||
{
|
||||
float3 p = ExpeditionRoomOrigin(baseCenter, subSlot);
|
||||
p.z += Tuning.PortalOffsetZ;
|
||||
return p;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>World-space origin of <paramref name="region"/>, given the base center (BaseGridMath.PlotCenter).
|
||||
/// The expedition resolves to room sub-slot 0 (legacy call sites; room-aware systems pass the ACTIVE
|
||||
/// sub-slot to <see cref="ExpeditionRoomOrigin"/> directly).</summary>
|
||||
public static float3 RegionOrigin(byte region, float3 baseCenter)
|
||||
|
||||
Reference in New Issue
Block a user