DreamWaves-MeleeBuff icon

MeleeBuff

Rage: +100% weapon BuildDamage; +1 HP/s; clear burnt (grey) max HP on Rage start; +25% stam; mana forced to 0.

CHANGELOG

Changelog

2.2.4

  • Stop applying movement speed while Rage is active (docs/Thunderstore description updated to match).
  • Version bump (plugin + Thunderstore manifest/package script).

2.2.3

  • Version bump (plugin + Thunderstore manifest/package script).

2.2.2

  • Version bump (plugin + Thunderstore manifest/package script).

2.1.0

  • Version bump (plugin + Thunderstore manifest/package script).
  • Debug: runtime reflection dump toggle (Debug.DumpReflectionEnabled) to remove reflection fallbacks.

2.0.0

  • Version bump.

2.0.1

  • Version bump (plugin + Thunderstore manifest/package script).

1.9.0

  • Version bump.

1.8.0

  • Version bump.

1.7.9

  • Version bump.

1.7.8

  • Version bump.

1.7.7

  • Version bump.

1.7.6

  • Version bump.
  • Debug: full logging for WeaponDamage.BuildDamage postfix diagnostics is now always on.
  • Fix/diagnostics: added Rage scaling via WeaponDamage.DamageMult to cover basic-attack paths that bypass BuildDamage.

1.7.5

  • Version bump.
  • Debug: enabled full logging for WeaponDamage.BuildDamage postfix diagnostics (removed the 40-sample cap).

1.7.4

  • Version bump (plugin, Thunderstore manifest, package script).

1.7.3

  • Diagnostics: Startup log for WeaponDamage.BuildDamage Harmony resolution; first 40 postfix hits log weapon, attacker, eligibility, DamageList counts, and scaled row count ([MeleeBuff] in LogOutput.log).

1.7.2

  • Version bump (plugin, Thunderstore manifest, package script).

1.7.1

  • Rage weapon damage: +100% on each hit now scales Outward’s DamageList.List / DamageType.Damage (typed), fixing the old reflection path that never matched the game’s DamageList layout.
  • Removed the Rage-start <80 base damage permanent weapon tweak; only per-hit doubling while the boon is active remains.

1.7.0

  • Outgoing: WeaponDamage.BuildDamage(Weapon, Character, bool, ref DamageList, ref float) patched via [HarmonyPatch] + PatchAll (typed postfix, correct Weapon argument).
  • Incoming: Removed all Harmony incoming-damage / resistance tweaks.
  • Rage sustain: +5 HP/s (replaces mana-tiered +1 / −2 HP/s).
  • Rage start: RestoreBurntHealth on Stats / PlayerStats so grey (burnt) health is cleared when the boon becomes active.

1.6.2

  • Rage HP: +1 HP/s when resolved max mana ≤ 60 (or max mana cannot be read). −2 HP/s when max mana > 60 (tall mana pool + Rage). Uses same max-mana reflection as before; health applied via stats fields only for DoT (heal still tries methods).

1.6.1

  • Incoming (Rage): Replaced ×0.5 on damage with +50 to Outward-style row fields (m_damageResistance, m_impactResistance, m_damageProtection, etc. from game assembly strings) when present; otherwise −50 per damage row amount or per-type scalars (Physical, Fire, … / m_physical, …). Row path preferred; flat DamageList scalars only when there are no damage rows.
  • Build: WeaponDamage.BuildDamage postfix is public so Harmony can bind reliably.

1.6.0

  • Breaking: Buff is gated only by vanilla boons Rage and Rage Amplified (exact identifier strings). Removed local-player resolver, melee/mana requirements, IMGUI HUD, SideLoader custom status, and all BepInEx config for the old gate.
  • Rage: Passives + mana drain run from a Character.Update Harmony postfix (no LocalCharacter lookup).
  • Mana: While the boon is active, current/burnt mana fields are zeroed every frame and SetMana(0) is attempted.

1.5.1

  • Debug: Startup lines name the DLL path and where to find BepInEx/LogOutput.log (profile installs use the profile’s BepInEx folder).
  • Debug: Config Debug.LogEligibility (default on) prints eligibility every few seconds (MeleeEquipped, resolved MaxMana, threshold, ELIGIBLE). Turn off in BepInEx/config/com.leona.meleebuff.cfg after troubleshooting.
  • Balance: Config TreatUnreadableMaxManaAsBelowThreshold (default true) — if max mana cannot be read via reflection, the mana requirement is satisfied (melee still required). Fixes “dead” installs where mana fields didn’t match.
  • Balance: Expanded max-mana reflection (BaseMaxMana, ActiveMaxMana, ManaPoint, etc.) for Outward/DE.
  • Status bar: AddStatusEffect overloads scanned by reflection; RemoveStatusWithIdentifierName tried on remove; warns if StatusEffect manager is missing.

1.5.0

  • SideLoader: Registers a real custom status MeleeBuff_Active (clone template + optional Icons/MeleeBuff_Status.png) so the vanilla buff bar can show an icon when eligible. Uses reflection — no SideLoader.dll reference at compile time.
  • Thunderstore: Declares sinai-dev-SideLoader dependency; package includes the status icon PNG next to the plugin DLL under plugins/Icons/.
  • Note: Clone source defaults to vanilla Warm (Plugin.SideLoaderCloneTargetStatusId). If your build errors or you get unwanted stats from the template, change that constant or follow SideLoader docs to use a different target / clear sub-effects.
  • Internal: Single CustomStatusIdentifier constant for SideLoader + buff sync; removed periodic eligibility Info log; clearer damage-list entry updates; dropped redundant TryGetBoolMember overload; README log troubleshooting text updated.

1.4.2

  • HUD: use a DontDestroyOnLoad MonoBehaviour helper so IMGUI (OnGUI) runs reliably; cyan MELEE BUFF ACTIVE box bottom-left when eligible (still not on the vanilla buff icon row).

1.4.1

  • Harmony: only patch virtual method slot declarations for incoming/outgoing auto-damage patches (drops Weapon::GetDamage override warning).

1.4.0

  • While the buff is active: +25% stamina regen rate (writable stamina-regen fields on character/stats via reflection; restores when buff ends).
  • On-screen label updated to mention stamina regen.
  • Internal: shared FloatStatSnap / delegate for move speed and stamina regen scaling.

1.3.1

  • Fix: Log showed Melee Buff 1.2.0 when issues appear — replace BepInEx/plugins/MeleeBuff.dll with a freshly built 1.3.1 (or newer) DLL.
  • Fix: WeaponDamage.BuildDamage is void + ref DamageList — invalid postfix using __result removed; added a dedicated postfix with matching parameters.
  • Fix: Auto outgoing patches exclude void methods (avoids “Cannot get result from void method”).
  • Fix: Passive regen, move speed, and status sync run from Plugin.Update (no dependency on patching Character.Update).
  • Fix: If static LocalCharacter isn’t resolved, fallback GameObject tag Player + Character component.

1.3.0

  • While the buff is active: +1 HP/s passive regeneration (health fields / heal methods via reflection).
  • While the buff is active: +15% movement speed (writable speed fields on character/stats via reflection; restores when buff ends).
  • On-screen label updated to mention regen and move speed.

1.2.1

  • Tick/status sync only patches LocalCharacter / Character (no UI Update spam; fewer Harmony warnings).
  • Removed BuildDamage outgoing patch (fixes IL compile error on some builds).
  • Visible buff: cyan [ Melee Buff — Active ] label bottom-left when eligible (vanilla buff bar needs real StatusEffect assets; string IDs do not show there).

1.2.0

  • Improved player detection (types containing Player).
  • Improved melee weapon detection (spears, halberds, display names, keyword fallbacks).
  • Improved max mana detection (GetMaxMana-style methods on character/stats).
  • Added periodic eligibility debug logging to BepInEx log.

1.1.0

  • Added buff condition requiring both melee weapon equipped and Max Mana below 50.
  • Added persistent active status marker while conditions are met.
  • Added logo asset and Thunderstore packaging metadata.

1.0.0

  • Initial release.
  • Doubles physical damage dealt while melee is equipped.
  • Reduces all damage taken by 50% while melee is equipped.