[ENHANCEMENT] Strategy Pattern for zone behaviors — replace ad-hoc flags with IZoneBehavior #28

Open
opened 2026-03-12 00:04:05 +00:00 by lavarius · 0 comments
Owner

🟢 Low — Design Enhancement

Movement speed, animation layer weights, and other behaviours change per zone — currently handled ad-hoc via flags and conditionals spread across classes.

Fix: Create a IZoneBehavior strategy interface:

public interface IZoneBehavior
{
    float MoveSpeed { get; }
    int AnimationLayer { get; }
    void OnEnter(CharacterController character);
    void OnExit(CharacterController character);
}

With concrete implementations per zone type: LoungeZoneBehavior, StageZoneBehavior, etc.

## 🟢 Low — Design Enhancement Movement speed, animation layer weights, and other behaviours change per zone — currently handled ad-hoc via flags and conditionals spread across classes. **Fix:** Create a `IZoneBehavior` strategy interface: ```csharp public interface IZoneBehavior { float MoveSpeed { get; } int AnimationLayer { get; } void OnEnter(CharacterController character); void OnExit(CharacterController character); } ``` With concrete implementations per zone type: `LoungeZoneBehavior`, `StageZoneBehavior`, etc.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lavarius/ProjectOverlay#28
No description provided.