Skip to content

Releases: 2228293026/JipperOverlayer

v1.1.1

04 Jun 11:22

Choose a tag to compare

Features

  • ComboLineReversed: new toggle to swap the vertical order of the combo number and combo title label; animation anchor adapts to both orientations (3 Tr keys: EN/KO/CN)
  • ShowAutoInXPerfect: when XPerfect mode is active, optionally show the auto-tile perfect count in orange (#FF8000) after the −Perfect value

Refactors

  • Jongyeol State/Death/PurePerfect via IOverlayTextManager: moved all three Jongyeol-mode helper methods (UpdateDeath, UpdateState, CheckPurePerfect, GetTooJudgement) out of JongyeolModule and into IOverlayTextManager; both OverlayTextManagerNormal and OverlayTextManagerCoop now implement them, enabling full coop-aware Jongyeol display
  • Coop Jongyeol Death/State: OverlayTextManagerCoop now renders per-player death counts and state labels in each player's color, with IsPurePerfect checked independently per player
  • _mono field cache: OverlayMono component reference stored as _mono field at construction; replaces repeated GetComponent<OverlayMono>() calls in UpdateCombo, Show(), and Hide()
  • Static StringBuilder pools: _judgementSb, _attemptSb, _bpmSb, _comboSb, _timingSb declared as static fields; eliminates per-frame heap allocations across BuildJudgementString, UpdateAttempts, BuildBpmText, UpdateCombo, and UpdateTimingScale
  • UpdateTimingScale early-exit: value cached in _lastTimingScale; text rebuild skipped when scale changes less than 0.001%
  • OutExpoChange lookup table: combo animation easing replaced with a 31-entry pre-built float array (_expTable), removing Math.Pow calls per animation frame
  • OverlayMono.Update guard: added !Overlay.GameObject.activeSelf check to skip update loop when overlay is hidden

Full Changelog: v1.1.0...v1.1.1

v1.1.0

02 Jun 14:48

Choose a tag to compare

Features

  • Full Jongyeol color customization: 3 gradients (JCombo/JDeath/JTiming) + 11 static colors (8 states + FPS/Author/Start)
  • Display order: reorder main stack elements with ▲▼ (General 7 items, Jongyeol 13 items)
  • BPM line order: reorder TBPM/CBPM/KPS lines independently
  • BPM line visibility: per-line ✓ toggle to show/hide each BPM line
  • Attempt line order: swap Attempt/Full Attempt display order
  • 14 new Tr keys for state colors + 23 keys for display order (EN/KO/CN)

Refactors

  • Settings folder namespace: JipperOverlayer.Overlayer.Settings → JipperOverlayer.Overlayer (fixes Settings type collision)
  • DrawReorderList helper: unified ▲▼/✓ UI for all order lists, 3 callers share 1 implementation (-45 lines)
  • BPM text building: extracted shared BuildBpmText() static method, used by both General and Jongyeol mode

Bug Fixes

  • ColorPerDictionary.GetColor cache: added noCache parameter for static color updates
  • EnsureDefaults() migration: detect stale colors.json and reset transparent (a==0) colors
  • FPS/Author/Start text: label white via <color=white>, value takes configured color
  • BPM/Combo colors: added missing reset buttons in General section
  • State colors: all 8 conditions fully translated with "Color"/"색상"/"颜色" suffix
  • Empty reference guard: null-check in SetupLocationMain to prevent NRE from stale config
  • Config migration: auto-filter invalid IDs from display order arrays on load
  • BPM cache: DirtyBpmCache() forces text rebuild when visibility/order changes

Full Changelog: v1.0.8...v1.1.0

v1.0.8

01 Jun 19:09

Choose a tag to compare

feat: integrate XPerfect counter into judgement display

Add optional integration with XPerfect mod:

  • Detect XPerfect availability via UnityModManager and cache delegates
  • Replace perfect counts in judgement line with +Perfect / X-Perfect / -Perfect
  • Ensure correct execution order with HarmonyAfter
  • Handle dynamic enable/disable of XPerfect via OnToggle event
  • Add settings toggle "Show XPerfect in Judgement"

Full Changelog: v1.0.7...v1.0.8

v1.0.7

30 May 23:45

Choose a tag to compare

  • All custom positions changed to pixel offsets (position += offset), not affected by alignment

  • New PosSlide2: XY on the same line, -2000~2000 range, integer pixel values

  • Tr.cs: Added Coop and 11 position tags Key, trilingual translation

  • Position grouping fold: Main/BPM, Judge(P1~P4), Others

  • FPS refresh rate slider indented below ShowFPS, hidden when turned off

  • DecimalPrecision remove extra {} blocks, indentation alignment

  • Attempt added Coop independent offset field

  • ApplyFontToAll remove redundant try-catch

  • Configuration migration: ConfigVersion 0→2, old PX/PY converted to offset

  • Change JudgementText/_judgementObject to [4] array

  • SetupLocationJudgement: P1/P3 x=-250, P2/P4 x=250 First row y=35, Second row y=5 (same as single-player default height)

  • UpdateJudgement: Read per-player marginTrackers in coop mode

  • Settings: P1~P4 JudgePX/PY sliders, default values aligned with two-column layout

  • Move Attempt text to x=550 in multiplayer mode to avoid overlap

  • In Show(), set up SetupLocationJudgement first, then UpdateJudgement

  • Title text updates in real time, pausing switching Jongyeol does not lose text, DecimalPrecision injection, code cleanup

Full Changelog: v1.0.6...v1.0.7

v1.0.6

30 May 14:37

Choose a tag to compare

Bug Fixes

  • Fix version detection for game API changes: detect v141+ via scrMarginTracker and ADOBase.playerManager instead of removed scrController.playerManager
  • Fix percentAcc/percentXAcc delegate bindings: use ADOBase.playerManager (static) instead of scrController.instance.playerManager (removed property)

Full Changelog: v1.0.5...v1.0.6

v1.0.5

30 May 13:37

Choose a tag to compare

Features

  • Customizable text labels: all overlay labels can be customized via Custom Labels settings panel
  • Label presets: English / Korean / Chinese one-click presets
  • FPS refresh rate slider (0.05~1.0s) for Jongyeol mode
  • Settings UI reorganized with collapsible panels (General/Display/Jongyeol/Alignment/Labels)

Refactors

  • Replaced JOverlay inheritance with JongyeolModule composition (-405 lines)
  • Removed all unused virtual keywords (Overlay 13, OverlayTextManagerCoop 4, OverlayTextManagerNormal 3)
  • Renamed YellowCombo → AllowELCombo for accurate naming (EL = Early/Late judgment)
  • Settings.OnGUI split into 5 collapsible sections with sub-folders

Bug Fixes

  • PlanetMoveToNextFloorPatch: include Jongyeol settings in registration condition
  • JCombo patches: require ShowCombo guard
  • Show(): call SetupLocationMain when Jongyeol is active regardless of standard settings
  • RefreshVisibility: actively refresh BPM/Combo/Judgement/TimingScale/ProgressBar when toggled on
  • Fix UpdateDeath division-by-zero when currentSeqID == StartTile
  • Fix GUI.changed false-positive triggering unnecessary overlay updates
  • Fix time label cache not refreshing when edited in Custom Labels panel

Full Changelog: v1.0.4...v1.0.5

v1.0.4

30 May 09:22

Choose a tag to compare

Refactors

  • Replaced JOverlay inheritance with JongyeolModule composition (-405 lines)
    • Deleted JOverlay.cs, JOverlayTextManagerNormal.cs, JOverlayTextManagerCoop.cs, IJOverlayTextManager.cs
    • Created JongyeolModule.cs as composable module
    • Overlay fields changed from protected to internal for module access
    • PurePerfectColor changed to public static readonly
  • Removed all unused virtual keywords (Overlay 13, OverlayTextManagerCoop 4, OverlayTextManagerNormal 3)
  • Removed redundant Jbpm.BpmColorMax wrapper; callers use Main.Settings.BpmColorMax directly
  • Renamed YellowCombo → AllowELCombo for accurate naming (EL = Early/Late judgment)
  • Removed redundant UpdateState() call in RdcSetAutoPatch

v1.0.4.2-preview

30 May 11:25

Choose a tag to compare

v1.0.4.2-preview Pre-release
Pre-release
  • Fix Chinese translations
  • Fix value update issues when toggling settings

Full Changelog: v1.0.4.1-preview...v1.0.4.2-preview

v1.0.4.1-preview

30 May 10:55

Choose a tag to compare

v1.0.4.1-preview Pre-release
Pre-release

Same as v1.0.4, preview release for testing.

Full Changelog: v1.0.4...v1.0.4.1-preview

v1.0.3

29 May 17:14

Choose a tag to compare

See CHANGELOG.md for details.