LockerLogic.java

package io.github.some_example_name;

/**
 * Pure logic for Locker interaction and timers.
 */
public class LockerLogic {

    private boolean searched = false;
    private boolean showMessage = false;

    private float messageTimer = 0f;

    private float speedBoostTimer = 0f;

    /**
     * Called when the player successfully interacts with the locker.
     */
    public void searchLocker() {
        if (!searched) {
            searched = true;
            showMessage = true;
            messageTimer = 0f;
            speedBoostTimer = 10f;
        }
    }

    /**
     * Update timers.
     */
    public void update(float delta) {
        if (speedBoostTimer > 0f) {
            speedBoostTimer -= delta;
        }

        if (showMessage) {
            messageTimer += delta;
            float messageDuration = 5f;
            if (messageTimer >= messageDuration) {
                showMessage = false;
            }
        }
    }

    public boolean isSearched() {
        return searched;
    }

    public boolean isBoostActive() {
        return speedBoostTimer > 0f;
    }

    public boolean shouldShowMessage() {
        return showMessage;
    }
}