ROUNDS
This package has been deprecated and may no longer be maintained. We recommend looking for an alternative.
Install with App

Details

Latest version
1.0.0
Last Updated
First Uploaded
Downloads
370
Likes
0
Size
70KB
Dependants

Categories

Tags

Deprecated

Info Overhaul

Adds a pick-phase stats panel and a card delta preview bar to ROUNDS. See your current stats at a glance during any card pick, and instantly know how each draft option will change your build before you commit.


Features

Show Stats Button

A Show Stats button appears in the bottom-left corner during card picks — for both players' turns, not just yours.

Clicking it opens a fully opaque dual-column popup showing your stats (regardless of whose turn it is):

Column 1 Column 2
HP DMG
Lives Knockback
Block CD Life Steal
Block Count Damage Grow
Shield Health* Bullet Slow
Poison Resistance* Move SPD

All stats from Infoholic are included. Shield Health and Poison Resistance appear automatically if ShieldsMod is also installed.

The popup refreshes live while open. It closes automatically when the pick sequence ends (before the battle starts).

Card Delta Preview Bar

A thin panel sits above the deck HUD at the bottom of the screen during picks. As you scroll through draft cards, it shows how your stats will change if you pick the highlighted card:

If Big Mag:
DMG: 55 --> 82     Ammo: 3 --> 5
  • After-values are green when the stat increases, red when it decreases
  • Up to 3 stat changes per column; extra stats overflow into additional columns to the right (supports up to 15 lines)
  • Cards with no registered delta show N/A
  • Effect notes (custom mechanics that can't be expressed numerically) appear as plain text lines

Card Delta Coverage

Automatic (Tier 1)

Any card — vanilla or from a mod — that sets its stats in the standard SetupCard() method is picked up and simulated automatically when the game loads. This covers the majority of all cards in the base game and most card packs on Thunderstore.

Explicit (Tier 1 opt-in)

Cards with custom OnAddCard() logic register their own deltas. ShieldsMod's shield upgrade and poison resistance cards are fully supported out of the box.

Effect Notes (Tier 2)

Cards that change stats and have a special mechanic can register an effect note that appends below the numeric lines:

If Thunder Core:
DMG: 55 --> 70
+ Arc lightning on hit

Unregistered

Cards that do everything in OnAddCard() with no standard stat template show N/A. This is intentional — a missing preview is always more honest than a wrong one.


Mod Compatibility

Mod Status Notes
UnboundLib Required
ModdingUtils Required
RoundsTheGathering Optional Deck name and remaining card count shown in the HUD; pick-phase lifecycle hooks used for show/hide timing
ShieldsMod Optional Shield Health and Poison Resistance stats appear in the stats popup and pick delta preview
MFM Automatic Most MFM stat cards (Calibrate: *, Ammo +N, etc.) are auto-detected as Tier 1

Modder API

Info Overhaul exposes a public API so any mod can register delta previews for its own cards.

Simple registration (compile reference)

using InfoOverhaul.Delta;

// Numeric before/after
CardDeltaRegistry.RegisterSimple("My Card", (player, card) => new[]
{
    ("DMG", "55", "82"),
    ("Ammo", "3", "5"),
});

// Effect note only
CardDeltaTier2.RegisterEffectNotes("My Fancy Card", "+ Explodes on hit");

// Numeric stats + effect note (Tier 2 addon — merges onto top of auto stats)
CardDeltaTier2.RegisterEffectNotes("Thunder Core", "+ Arc lightning on hit");

// Override auto-detected stats if they're wrong for a specific card
CardDeltaTier2.RegisterOverrideSimple("My Card", (player, card) => new[]
{
    ("Custom Stat", "10", "20"),
});

Via reflection (no compile dependency)

var asm = AppDomain.CurrentDomain.GetAssemblies()
    .FirstOrDefault(a => a.GetName().Name == "InfoOverhaul");

var registry = asm?.GetType("InfoOverhaul.Delta.CardDeltaRegistry");
var registerSimple = registry?.GetMethod("RegisterSimple",
    BindingFlags.Public | BindingFlags.Static);

// The SimpleDeltaProvider delegate type lives on CardDeltaRegistry
var delegateType = registry?.GetNestedTypes(BindingFlags.Public)
    .FirstOrDefault(t => t.Name == "SimpleDeltaProvider");

Func<Player, CardInfo, IReadOnlyList<(string, string, string)>> myProvider = (player, card) =>
    new[] { ("My Stat", "10", "20") };

var del = Delegate.CreateDelegate(delegateType, myProvider.Target, myProvider.Method);
registerSimple?.Invoke(null, new object[] { "My Card Name", del });

Registrations can be made at any time before or after the main menu first loads — the auto-scan runs once at first main menu open, but manual registrations are always respected first.


Credits

Stat formulas adapted from Infoholic by PenialJackson.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.