# 🎯 Key Changes

## 📢 Summary

**1.7.x**: Hazardous Pull reporting? Neglected Heals reporting? Yes please! Oh, and more replacement tags, revamped reports config, new off-heals report, etc!

**1.6.x**: Lots of new replacement tags and condition subjects. Added a `Flag Friends as Nemeses` option -- if anyone in your group is on your friends list, they'll be flagged as a Nemesis.

**1.5.x**: Group and raid join/leave events have been split for a higher degree of granularity. More replacements added. Group and raid join/leave events will be exempt from the message interval limit, however it will be capped at 3 per trigger (imagine inviting large groups into a raid and firing off join messages for each player 🤢).

## 🩹 Patches

- **1.7.3**: Fixed and improved health check in player state for healing callouts.
- **1.7.2**: 
   - Updated Affix logic to be more reliable. It's still in beta, but reports should be a bit more reliable now. WIP.
   - Refactored reports logic. It's not as clean as I'd prefer, but we're getting there.
- **1.7.1**: Fixed an issue with some configurations being incorrect.

## ⭐ Latest Versions

### 1.7.0

- New `Flag Guildmates as Nemeses` option
- Two new conditions, `is guildmate` and `NOT guildmate`
- More enhancements across the configuration screen
- New Off-Heals reports
- New dungeon completion Deaths report
   - Includes the amount of avoidable damage they took throughout the dungeon
   - If the amount of avoidable damage taken is excessive, the report will also include an amount relative to their life ("*6.25M avoidable damage (10.88x their max health)*") 😈
- Report channel selection in configuration
- Revamped all segments, normalized all data, and exposed a few more replacements in the process
- **(Beta) pull reporting**: This feature will announce seemingly unintentional / hazardous pulls
   - Tanks are not included
   - This is not precise as Blizzard does not expose great ways of doing this
   - It currently only reports in real-time, and as a yell
   - More options to come as this feature matures
- **(Beta) neglected heals reporting**: This feature will announce when (non-healer) players have been at or below 60% health without receiving a (non-self) heal
   - This feature also only reports in real-time, and as a yell
   - Once again, more options to come as this feature matures
- **(Beta) affix tracking and reporting**: This feature contains both announcements and reports:
   - Announce when affix mobs begin casting (if enabled)
   - Announce when affix mobs successfully cast (if enabled)
   - Announce when affix mobs are interrupted **but not incapacitated/dead** (if enabled)
   - Top and bottom affixes handled reporting for boss fights and end of dungeon (if enabled)

### 1.6.0

- Added new option, `Flag Friends as Nemeses`: When enabled, anyone in your group who is on your friends list will be flagged as a Nemesis.
- Normalized all replacement tags by adding missing Bystander replacement tags
- New condition subjects
   - Nemesis
   - Bystander
   - Boss Name
   - Keystone Level
- New condition operators:
   - Is friend (currently only available on Bystander, Nemesis, and Spell Target)
   - NOT friend (currently only available on Bystander, Nemesis, and Spell Target)
- Migration from hardcoded core functionality to new API flow
- UI clean up

### 1.5.0

- Refined `SELF` join events versus inviting a player and forming a group. No configuration updates are necessary.
- Group `JOIN` and `LEAVE` events are now exclusive to non-raid groups.
- Added raid `JOIN` and `LEAVE` events to allow for more granular configuration.
- Group/raid `JOIN` and `LEAVE` events are now exempt from the minimum message interval.
   - There is a hardcoded cap of 3 to guardrail against spam.
- Added the following replacement tags:
   - `[ROLE]`: Your role
   - `[BYSTANDERROLE]`: The/a Bystander's role (on events triggered by a Bystander, that'll be the triggering Bystander, otherwise a random one is chosen)
      - Keep in mind random Bystanders are chosen once so all Bystander replacement tags will refer to a singular Bystander.
   - `[NEMESISROLE]`: The/a Nemesis's role (on events triggered by a Nemesis, that'll be the triggering Nemesis, otherwise a random one is chosen)
      - Keep in mind random Nemeses are chosen once so all Nemesis replacement tags will refer to a singular Nemesis.
      - As always, these are described in the `Reference` tab of the NC Configuration screen.
- Minor updates to information presented in some configuration screens, such as `About`.

# ⏱️ Coming Soon

## ✅ Confirmed

- Nemesis configuration within reports (more work was done on this in 1.7.0, it's close):
   - Exclude Nemeses from shout-outs 😈
   - Replacements for Nemeses; Example, your Nemesis would get a shout-out for lowest damage dealt -- instead, you set a message that reads, `Shout out to [NEMESIS], who sat around doing nothing and consequently took 0 avoidable damage. Yaaaay.`

## 💭 Under Consideration

> **Note:** If you think any of the following features would be beneficial, *please* reach out in Discord and voice your opinion! I am a solo developer, and there is no possible way I can think of all scenarios. Your input would be greatly appreciated 😁

- Player context menu -- `Add Nemesis` and `Remove Nemesis`:
   - Major considerations are ensuring this does not break anything else, as hooking into the context menu has a high propensity for this.
   - One prospective downside is NC is not designed for setting a PUG player as a Nemesis and this could potentially lead to abuse.
   - On the flip side, the addon itself could always be abused anyway, and one can only realistically provide guard rails for prevention of abuse.
- UI element for tracking Interrupts and Avoidable Damage.
   - This will need to be non-intrusive, and configurable / disableable.
   - Clicking on one would allow sending (customizable) reports.
- Other potential "leaderboard-esque" UI elements
   - Same as above -- non-intrusive, etc.
- AI configuration screen
   - Granular control over which (praise | taunt) messages to send based on whether it's a Bystander or Nemesis, and based on event.
   - Custom overrides
   - More AI choices (possibly a scale, 1-10, from taunt (1) to praise (10))
