package com.tiedup.remake.v2.bondage.movement;

import org.jetbrains.annotations.Nullable;

/**
 * Result of resolving the winning movement style from all equipped items.
 * Contains the final computed values (style defaults merged with item overrides).
 *
 * <p>A null instance or null style means no movement restriction applies.</p>
 */
public record ResolvedMovement(
    /** The winning movement style, or null if no styled items are equipped. */
    @Nullable MovementStyle style,

    /** Final speed multiplier (style default or item override). */
    float speedMultiplier,

    /** Final jump-disabled flag (style default or item override). */
    boolean jumpDisabled
) {
    /** Sentinel for "no movement style active". */
    public static final ResolvedMovement NONE = new ResolvedMovement(
        null,
        1.0f,
        false
    );
}
