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.BuildDamagepostfix diagnostics is now always on. - Fix/diagnostics: added Rage scaling via
WeaponDamage.DamageMultto cover basic-attack paths that bypassBuildDamage.
1.7.5
- Version bump.
- Debug: enabled full logging for
WeaponDamage.BuildDamagepostfix diagnostics (removed the 40-sample cap).
1.7.4
- Version bump (plugin, Thunderstore manifest, package script).
1.7.3
- Diagnostics: Startup log for
WeaponDamage.BuildDamageHarmony resolution; first 40 postfix hits log weapon, attacker, eligibility,DamageListcounts, and scaled row count ([MeleeBuff]inLogOutput.log).
1.7.2
- Version bump (plugin, Thunderstore manifest, package script).
1.7.1
- Rage weapon damage:
+100%on each hit now scales Outward’sDamageList.List/DamageType.Damage(typed), fixing the old reflection path that never matched the game’sDamageListlayout. - 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, correctWeaponargument). - Incoming: Removed all Harmony incoming-damage / resistance tweaks.
- Rage sustain: +5 HP/s (replaces mana-tiered +1 / −2 HP/s).
- Rage start:
RestoreBurntHealthonStats/PlayerStatsso 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; flatDamageListscalars only when there are no damage rows. - Build:
WeaponDamage.BuildDamagepostfix ispublicso Harmony can bind reliably.
1.6.0
- Breaking: Buff is gated only by vanilla boons
RageandRage 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.UpdateHarmony postfix (noLocalCharacterlookup). - 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 inBepInEx/config/com.leona.meleebuff.cfgafter 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:
AddStatusEffectoverloads scanned by reflection;RemoveStatusWithIdentifierNametried on remove; warns if StatusEffect manager is missing.
1.5.0
- SideLoader: Registers a real custom status
MeleeBuff_Active(clone template + optionalIcons/MeleeBuff_Status.png) so the vanilla buff bar can show an icon when eligible. Uses reflection — noSideLoader.dllreference at compile time. - Thunderstore: Declares
sinai-dev-SideLoaderdependency; package includes the status icon PNG next to the plugin DLL underplugins/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
CustomStatusIdentifierconstant for SideLoader + buff sync; removed periodic eligibility Info log; clearer damage-list entry updates; dropped redundantTryGetBoolMemberoverload; README log troubleshooting text updated.
1.4.2
- HUD: use a DontDestroyOnLoad
MonoBehaviourhelper 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::GetDamageoverride 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.dllwith a freshly built 1.3.1 (or newer) DLL. - Fix:
WeaponDamage.BuildDamageis void +ref DamageList— invalid postfix using__resultremoved; 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 patchingCharacter.Update). - Fix: If static
LocalCharacterisn’t resolved, fallbackGameObjecttagPlayer+Charactercomponent.
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 UIUpdatespam; fewer Harmony warnings). - Removed
BuildDamageoutgoing patch (fixes IL compile error on some builds). - Visible buff: cyan [ Melee Buff — Active ] label bottom-left when eligible (vanilla buff bar needs real
StatusEffectassets; 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.