diff --git a/standalone/devour_unlocker.py b/standalone/devour_unlocker.py index 0cc30e8..0e5add3 100755 --- a/standalone/devour_unlocker.py +++ b/standalone/devour_unlocker.py @@ -94,17 +94,18 @@ def cmd_status(args): def _patch_collectables_all(): """Directly patch Steam Cloud collectables.json for every local user — makes robes unlock without needing DLL hook.""" - # Known full sets from observing global-metadata + user files (union of all seen) + # Exact full sets observed from most-complete user (1265096955 has BarbedWires 6, 919954036 has Tickets 7 etc) + # All*Found checks count == expected, so we must set exact, not superset full = { - "Collectables": ["T","H","B","Y","A","S","M","G","D","X","A","B","Y"], # will dedupe - "Patches": ["MX","MN","MF","ST","SA","SP","SQ","SG","SF"], - "CherryBlossom": ["SA","SV","SK","ST","SP","SQ","SG","SF","CX","CU"], # placeholder — game will treat any superset as unlocked (AllCherryBlossomFound checks count) - "Horseshoes": ["ST","SA","SP","SQ","SG","SF","SA","SV","SK"], - "Pumpkins": ["SA","SV","SK"], - "Presents": ["SA","SV","SK"], - "BarbedWires": ["SA","SV","SK","ST","SA","SP","SQ","SG","SF","SV","SK"], - "Feathers": ["MAX","MAT","ST","SA","SP","SQ","SG","SF"], - "Tickets": ["CX","CU","CF","CD","CA","CM","CH","ST","SA"], + "Collectables": ["A","B","D","G","H","M","S","T","X","Y"], + "Patches": ["MF","MN","MX"], + "CherryBlossom": ["SA","SV","SK","ST","SP","SQ"], + "Horseshoes": ["SA","SF","SG","SK","SP","SQ"], + "Pumpkins": ["SA","SK","SV"], + "Presents": ["SA","SK","SV"], + "BarbedWires": ["ST","SA","SP","SQ","SG","SF"], + "Feathers": ["MAX","MAT"], + "Tickets": ["CA","CD","CF","CH","CM","CU","CX"], } # Also ensure each is deduped and full for unlock checks (All*Found checks count == expected) # For safety, set each to the union of observed + 20 dummy entries so count check passes @@ -113,10 +114,7 @@ def _patch_collectables_all(): try: j=json.loads(base.read_text()) for k,v in full.items(): - j[k] = sorted(set(v + j.get(k,[]))) - if k in ["BarbedWires","Feathers","Tickets","CherryBlossom","Horseshoes"]: - if len(j[k]) < 6: - j[k] = sorted(set(j[k] + ["SA","SV","SK","ST","SP","SQ","SG","SF","MAX","MAT","CX","CU","CF","CD","CA","CM","CH"])) + j[k] = sorted(set(v)) txt=json.dumps(j) base.write_text(txt) # Update remotecache.vdf so Steam doesn't overwrite with cloud (must update size/sha/time)