Decay is calculated here, and it seems like it would be relatively straightforward to short circuit and not apply decay in the case of a ladder being inaccessible, the main challenge I see is being able to tell which ladders are inaccessible at this place in the code? If I'm not mistaken, whether or not a ladder is accessible depends on what is in
config/formats.js (specially, which formats have
searchShow), which is hard to access from the ladder update code? The naive solution would be to simply hardcode specific formats where decay is calculated (similar to how
gen7randombattle and
gen7ou are hardcoded, though for a different reason) and remember to update the ladder logic when updates to formats occur, though somewhat kludgey and error prone, not to mention complicated by the fact that the decay logic is in the client codebase and the formats are defined in the server codebase.