getGearReduction

public static double getGearReduction(double gearScore, int mobLevel)

Calculates the gear reduction percentage from gear score vs mob level.

Uses a two-part linear curve:

Below matching (gearScore ≤ mobLevel):

reduction = 0.50 × (gearScore / mobLevel)
Scales linearly from 0% (naked) to 50% (matching). The slope is ratio-based, meaning the rate depends on mob level: against a level 5 mob, each gear level gives 10% reduction; against level 50, each gives 1%. This naturally makes low-level vanilla armor effective against low-level mobs but irrelevant against high-level ones.

Above matching (gearScore > mobLevel):

reduction = 0.50 + (gearScore - mobLevel) × 0.025
Flat 2.5% per gear level above mob. Reaches the 75% hard cap at +10 levels.

Key reduction values:

0any0%
mobLevel/2any25%
mobLevelany50%
mobLevel + 4any60%
mobLevel + 10any75% (cap)
mobLevel + 20any75% (still capped)

Return

Gear reduction as a fraction in [0.0, 0.75]

Parameters

gearScore

The player's computed gear score

mobLevel

The attacking mob's level (clamped to min 1 internally)