diff --git a/README.md b/README.md new file mode 100644 index 0000000..3366f20 --- /dev/null +++ b/README.md @@ -0,0 +1,198 @@ +# ๐Ÿฉบ HealerProtection + +A lightweight healer alert addon for **Octo WoW / Vanilla WoW 1.12.1**. + +HealerProtection automatically warns your group when you are: + +* ๐Ÿ’ง Running low on mana +* ๐Ÿซ— Out of mana +* โค๏ธ Close to death +* ๐Ÿ’€ Dead +* ๐Ÿ‘น Taking aggro + +The addon was adapted and optimized specifically for the **Vanilla 1.12.1 client used by Octo WoW**. + +## โœจ Features + +* ๐Ÿ’ง Low Mana warning +* ๐Ÿซ— Out of Mana warning +* โค๏ธ Near Death warning +* ๐Ÿ’€ Death notification +* ๐Ÿ‘น Aggro warning +* ๐Ÿ’ฌ Optional chat messages +* ๐ŸŽญ Optional emotes +* ๐ŸŽš๏ธ Configurable mana and health thresholds +* ๐Ÿ“ข Configurable announcement channel +* ๐Ÿ‘€ Optional Line of Sight warning +* ๐ŸŒ Optional announcements outside instances +* โš”๏ธ Battleground filtering +* ๐Ÿ›ก๏ธ Raid filtering +* โœ๏ธ Custom message prefix and suffix + +Open the settings panel with: + +```text +/hp +``` + +or: + +```text +/healerprotection +``` + +## ๐Ÿ™ Octo WoW Compatibility + +HealerProtection is designed for: + +```text +World of Warcraft 1.12.1 +Octo WoW +``` + +The addon does **not require** ClassicAPI, SuperWoW or Nampower. + +If additional APIs such as `UnitThreatSituation()` are available through the client or another extension, HealerProtection can automatically use them to improve aggro detection. + +## ๐Ÿ‘น Aggro Detection + +Vanilla WoW does not provide the same threat API available in modern versions of the game. + +HealerProtection therefore uses several methods: + +* `UnitThreatSituation()` when available +* Your current hostile target +* The hostile targets selected by party members +* The hostile targets selected by raid members + +This improves aggro detection while keeping the addon compatible with the Vanilla 1.12.1 client. + +## โšก Performance + +HealerProtection is designed to be extremely lightweight. + +Mana, health and death monitoring are **event-driven**, which means the addon only reacts when the relevant game state changes. + +Aggro detection uses a small periodic check because Vanilla does not provide a reliable native threat event. + +When Aggro alerts are disabled, the aggro check is effectively skipped. + +## ๐Ÿ“ฆ Installation + +1. Download the addon. +2. Extract the archive. +3. Place the `HealerProtection` folder inside: + +```text +World of Warcraft\Interface\AddOns\ +``` + +Your folder structure should look like: + +```text +Interface +โ””โ”€โ”€ AddOns + โ””โ”€โ”€ HealerProtection + โ”œโ”€โ”€ HealerProtection.toc + โ””โ”€โ”€ core.lua +``` + +4. Restart the game. +5. Enable **HealerProtection** in the AddOns menu. +6. Type `/hp` to configure the addon. + +## โš™๏ธ Default Settings + +```text +Out of Mana: Enabled +OOM threshold: 10% + +Low Mana: Enabled +Low Mana threshold: 30% + +Near Death: Enabled +Near Death threshold: 30% + +Death message: Enabled + +Aggro warning: Disabled + +Show in raids: Enabled +Show outside instances: Disabled +Show in battlegrounds: Disabled + +Announcement channel: AUTO +``` + +`AUTO` automatically selects the most appropriate group channel: + +```text +PARTY โ†’ while in a party +RAID โ†’ while in a raid +``` + +The addon will not attempt to send invalid PARTY, RAID or GUILD messages when the corresponding channel is unavailable. + +## ๐Ÿ”‡ Anti-Spam + +Mana and health alerts include a reset margin. + +For example, after triggering a Low Mana warning, your mana must recover above the configured threshold before the warning can trigger again. + +This prevents repeated messages when your mana or health constantly moves around the alert threshold. + +## ๐Ÿ†• Version 1.1 + +### Improvements + +* โค๏ธ Restored the Near Death alert +* ๐ŸŽš๏ธ Added configurable Near Death threshold +* ๐Ÿ‘น Improved aggro detection +* ๐Ÿ‘ฅ Added party and raid target scanning +* โšก Converted mana and health monitoring to event-driven checks +* ๐Ÿงน Reduced unnecessary polling +* ๐Ÿ”‡ Added anti-spam logic for mana and health alerts +* ๐Ÿ’ฌ Centralized chat channel validation +* ๐Ÿ™ Improved Octo WoW / Vanilla 1.12.1 compatibility +* ๐Ÿ”“ Removed unnecessary `InCombatLockdown()` dependency +* ๐Ÿงฝ Removed obsolete setup and bootstrap code +* ๐Ÿ—‘๏ธ Removed obsolete `SETOOMP` handling +* ๐Ÿ”Œ Removed unnecessary ClassicAPI, SuperWoW and Nampower dependencies +* ๐Ÿ‘€ Added Line of Sight warning to the settings menu +* ๐Ÿง  Improved Lua 5.0 / Vanilla event compatibility +* ๐Ÿ’พ Preserved compatibility with existing `HPTABPC` saved variables + +## โŒจ๏ธ Commands + +```text +/hp +/healerprotection +``` + +Both commands open or close the configuration window. + +## ๐Ÿ’พ Saved Variables + +Settings are stored per character using: + +```text +HPTABPC +``` + +Existing settings from older versions are preserved whenever possible. + +## ๐Ÿ‘ค Author + +HealerProtection is maintained by **Dusk92** and adapted for the **Octo WoW / Vanilla 1.12.1** environment. + +## ๐Ÿ› Bug Reports + +If you encounter a bug or unexpected behavior on Octo WoW, feel free to open an issue on GitHub. + +Please include: + +* ๐Ÿ“ What happened +* ๐ŸŽฏ What you expected to happen +* โš™๏ธ Your enabled HealerProtection settings +* ๐Ÿ”Œ Whether you use SuperWoW / ClassicAPI +* โ— Any Lua error message you received