@buzzr/dfs-engine
    Preparing search index...

    Function recalcMultiplierAfterDnp

    • Recompute a bet's effective multiplier after one or more legs go DNP / void. Demotion math:

      1. Look up the standard multiplier at the original (pickCount, hits=pickCount) - i.e. the all-hit payout for the original tier.
      2. Look up the standard at the surviving (pickCount-dnpCount, survivingHits).
      3. Scale the slip's displayed multiplier by (surviving / original).

      The scaling preserves any Demon/Goblin or boost adjustment baked into the displayed multiplier. When either lookup fails (unknown play type or missing schedule entry), fall back to the original multiplier and surface usedFallback=true so the caller can warn the user.

      Handles multi-DNP correctly: caller passes the current surviving pick count and hits, not always pickCount-1.

      Parameters

      • opts: {
            app: DfsApp;
            originalMultiplier: number;
            originalPickCount: number;
            playType: DfsPlayType;
            survivingHits: number;
            survivingPickCount: number;
        }
        • app: DfsApp
        • originalMultiplier: number

          Multiplier as displayed on the original slip (post-boost, pre-DNP).

        • originalPickCount: number

          Pick count when the slip was originally placed.

        • playType: DfsPlayType
        • survivingHits: number

          Hits among the surviving (non-DNP) legs.

        • survivingPickCount: number

          Pick count after removing all DNP legs. Must be ≥ 1 and ≤ originalPickCount.

      Returns { newMultiplier: number; usedFallback: boolean }