Releases: ing-gom/sts2-potion-drop-chance
v0.5.1 — 맵을 가리는 모든 화면에서 배지 숨김
수정
포션 드롭 확률 배지가 맵 화면이 아닌 곳에서도 비쳐 보이던 문제를 수정했습니다.
기존에는 일시정지·설정 같은 모달/서브메뉴에서만 배지를 숨겼는데, 카드 보상 · 카드 목록 · 덱 보기 · 상점 · 이벤트 화면은 모달도 서브메뉴도 아니라 배지가 그 위로 비쳐 보였습니다.
이제 엔진의 ActiveScreenContext(현재 최상위 화면)를 기준으로 맵이 실제로 화면 맨 위에 있을 때만 배지를 표시합니다. 맵을 덮는 모든 화면에서 배지가 자동으로 사라집니다.
엔진 타입을 찾지 못하는 빌드에서는 기존 모달/서브메뉴 숨김 방식으로 자동 폴백하여 회귀를 방지합니다.
설치
Sts2PotionDropChance-v0.5.1.zip 의 압축을 풀어 게임 mods/ 폴더에 Sts2PotionDropChance/ 폴더째 넣으세요.
v0.5.0 — SmallerMap 등 맵 축소 모드 호환
SmallerMap (및 다른 맵 축소 형 모드) 호환
이전까지 SmallerMap 같은 맵 노드 축소 모드와 함께 쓰면 배지가 원래 크기 그대로 표시돼서 노드 옆에 비대하게 떠 있고, 위치도 어긋나 보이는 문제가 있었습니다.
변경사항
- 아이콘 스케일 미러링 —
NNormalMapPoint._iconContainer.Scale을 읽어 배지 컨테이너에 동일하게 적용. 노드 아이콘이 줄면 배지도 비례해서 줄어듦. - 앵커 기준 변경 — 배지 위치를 부모 Control rect의 가장자리가 아닌 중심 + (노드 절반 너비 × 아이콘 스케일) + 갭 으로 계산. 아이콘이 작아져도 배지가 시각적 가장자리에 붙어 있음.
- base scale 캡처 —
_iconContainer.Scale은_Process에서 sin 함수로 매 프레임 진동하는데, 이 값을 그대로 읽으면 노드별로 위상이 달라 배지 사이즈가 다르게 보임.RefreshStatepostfix 에서 진동 전 base 값을 캡처해 사용. - mod-agnostic — SmallerMap 의 config 를 직접 reflect 하지 않음. native 게임 필드만 읽으므로 다른 사이즈 변경 모드에도 자동 호환.
알려진 사항
- SmallerMap (v1.3.1) 매니페스트의
dependencies가 게임 로더 schema 와 안 맞아 로드 실패할 수 있음. 그 경우mods/smallerMap/SmallerMap.json의dependencies를["BaseLib"]로 수정 필요 (이건 SmallerMap 측 이슈).
v0.4.9 — 배지 위치 선택 가능 (Right / Left / Above / Below)
Feature release.
Changes
🆕 배지 위치 선택 옵션 (ModConfig)
- ModConfig (Nexus #27)이 설치된 환경에서 게임 설정의 Mods → Potion Drop Chance 에 Badge position 드롭다운이 추가되었습니다.
- 선택 가능 위치: Right (기본값) / Left / Above / Below — 노드 기준 오른쪽, 왼쪽, 위, 아래.
- 변경은 즉시 반영됩니다. 게임 재시작 불필요.
- 기존에 만들어진 배지도 옵션 변경 시 anchor/offset 이 자동으로 재적용되어 새 위치로 이동합니다.
기타
MapBadgeService.ApplyPosition으로 anchor/offset/grow direction 일원화 — 컨테이너 신규 생성 시 + 옵션 변경에 따른 갱신 시 모두 같은 경로 사용.- ModConfig 영구 저장 값 (hideUnknown + badgePosition) 을
GetValue<T>로 모드 시작 시 동기화 — 사용자 선택이 게임 재시작 후에도 유지.
Adds a "Badge position" dropdown (Right / Left / Above / Below) to the optional ModConfig integration. The badge can now sit on any of the four sides of each map node, and the selection applies immediately to existing badges.
Installation
- Download `Sts2PotionDropChance-v0.4.9.zip` below.
- Extract `Sts2PotionDropChance/` into `<Slay the Spire 2 install>/mods/` (overwrites the v0.4.8 files).
- (Optional) install ModConfig to access the in-game settings.
- Launch the game.
v0.4.8 — ModConfig 지원 + 정지/옵션 메뉴에서 배지 자동 숨김
Feature release.
Changes
🆕 선택적 ModConfig 지원
- ModConfig (Nexus #27)이 설치되어 있으면 게임 설정의 Mods 탭에 Hide on ? (Unknown) nodes 토글이 노출됩니다.
- ModConfig 미설치 환경에서도 모드는 정상 작동합니다 (토글 UI 만 숨김 — 의존성 강제 없음).
- 토글 변경은 즉시 반영됩니다. 게임 재시작 불필요.
- 구현:
ModConfig.ModConfigApi.Register를 reflection 으로 호출하는 soft dependency 패턴. ModConfig 어셈블리가 로드되어 있을 때만 동작.
🛡️ 정지/옵션 메뉴에서 배지 자동 숨김
- 정지(pause) 메뉴, 옵션(settings) 메뉴, 통계, 런 히스토리, 모딩 메뉴, 타임라인, 카드/유물 보기 등 인게임 서브메뉴가 떠있는 동안 배지가 자동으로 사라집니다. 닫으면 다시 표시됩니다.
- 모든 modal popup (Settings 확인 다이얼로그 등) 도 함께 처리.
- 구현: STS2 의
NSubmenu베이스 클래스를 detect 하는 generic 검사 +NModalContainer.OpenModal검사. SceneTree.Root 에 watcher 노드 1 개를 두어 매 frame 상태를 폴링하고 상태 변경 엣지 에서만 컨테이너 visibility 를 토글. NMapScreen자체는NSubmenu가 아닌Control직접 상속이라 자기 자신을 잘못 hide 하지 않습니다.
기타
- 배지
ZIndex100 → 1 로 하향 (방어적 레이어 조정). - modal 이 닫힐 때 일괄
Visible=true대신 각 NMapPoint 의EnsureBadgeUpdated를 재호출하여 per-node 결정 (Unknown 토글, Travelable 상태 등) 이 보존되도록 수정.
Optional ModConfig support: when ModConfig is installed, a Hide on ? (Unknown) nodes toggle appears in the in-game Mods tab and applies immediately. Mod runs unchanged without ModConfig.
Badges now hide whenever any in-game submenu (Pause, Settings, Stats, Modding, RunHistory, Timeline, etc.) or modal popup is open. Generic detection on the
NSubmenubase class — covers every STS2 submenu screen.
Installation
- Download `Sts2PotionDropChance-v0.4.8.zip` below.
- Extract `Sts2PotionDropChance/` into `<Slay the Spire 2 install>/mods/` (overwrites the v0.4.2 files).
- (Optional) install ModConfig to expose the in-game settings toggle.
- Launch the game.
v0.4.2 — Hide badges immediately on path selection
Patch release.
Change
- 맵에서 경로(노드)를 선택하면 화면 전환을 기다리지 않고 다른 노드들의 포션 확률 배지가 즉시 사라집니다. 기존에는 트래블 애니메이션이 끝날 때까지 다른 경로의 배지가 남아 있었습니다.
- 구현:
NMapPoint.OnReleasePostfix에서NMapScreen.IsTraveling이 true 가 되는 순간 화면 전체의Sts2PotionDropChance_Badge컨테이너를 모두 숨김. - 멀티플레이 안전 — 투표가 진행 중일 때는
IsTraveling이 false 이므로 합의가 끝나 실제로 트래블이 시작되어야 배지가 사라집니다.
The other-path potion badges now disappear the instant you commit to a path, instead of lingering until the travel animation finishes. Multiplayer-safe — vote-pending state keeps
IsTravelingfalse, so badges only hide when travel actually starts.
Installation
- Download `Sts2PotionDropChance-v0.4.2.zip` below.
- Extract `Sts2PotionDropChance/` into `<Slay the Spire 2 install>/mods/` (overwrites the v0.4.1 files).
- Launch the game.
For the full feature list, see v0.4.0 release notes or the README (한국어).
v0.4.1 — author identifier
Patch release.
Change
- Manifest `author` field updated from `kl95` → `inggom` to match the public identity used in LICENSE / GitHub / Nexus listings. No functional changes.
Installation
- Download `Sts2PotionDropChance-v0.4.1.zip` below.
- Extract `Sts2PotionDropChance/` into `<Slay the Spire 2 install>/mods/` (overwrites the v0.4.0 files).
- Launch the game.
For the full feature list, see v0.4.0 release notes or the README (한국어).
v0.4.0 — Potion icon + dual badges for Unknown nodes
First public release.
What it does
Show the potion drop probability for each travelable Monster / Elite / Unknown (?) node directly on the map screen — as a colored badge on the node icon.
- Pity-aware — same math as the game's
PotionRewardOdds.Roll(): base 40%, ±10% per drop / miss - Elite bonus folded in — Elite shows
pity + 12.5% - Relic-aware — White Beast Statue → 100%, Sozu → 0%
- Unknown (
?) nodes show two stacked badges: one for the Monster outcome and one for the Elite outcome, each with its respective type icon - Travelable nodes only — badges only on nodes you can advance to next
- Local + read-only — no game state mutation, no network sync, manifest declares
affects_gameplay: false
Visual
Every badge: [potion icon] [%], color-scaled (red → orange → yellow → lime → teal). Anchored to the right-center of the node, 10px gap.
Installation
- Download
Sts2PotionDropChance-v0.4.0.zipbelow. - Extract
Sts2PotionDropChance/into<Slay the Spire 2 install>/mods/. - Launch the game.
You should end up with:
<Slay the Spire 2>/mods/Sts2PotionDropChance/Sts2PotionDropChance.dll
<Slay the Spire 2>/mods/Sts2PotionDropChance/Sts2PotionDropChance.json
Configuration
Set STS2_POTION_DROP_CHANCE_DISABLED=1 before launching the game to suppress all badges without uninstalling.
Notes
- Boss nodes are intentionally not annotated — fixed path, badge wouldn't change your decision.
- Unknown displays both Monster + Elite hypotheses. The actual game internally has Elite disabled for Unknowns (
UnknownMapPointOddsElite=-1) but both are shown for completeness. - The mod never patches
PotionRewardOdds.Roll()itself — only reads inputs. If MegaCrit changes the formula in a future patch, this mod's display may need a source update.